-
Notifications
You must be signed in to change notification settings - Fork 365
Add support for private github repos via git:directory #2856
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: trunk
Are you sure you want to change the base?
Conversation
cfa80bf to
4f2f5f3
Compare
0ce57bd to
06b1ae5
Compare
|
Thanks for the review, @adamziel. I have restructured this according to your feedback! I realize that we're modifying the parameters of the git:directory resource inside the blueprint but it seemed like the best way to trickle down the headers from the website to where we need it at the directory resource. |
adamziel
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good, I only have that one note I left last week! Do we know what happens if the user connects oauth and still has no rights to that repo?
|
It will display an Playground error that the repo doesn't exist (404). (The thing I wrote before about gh-request-auth was not correct) |
480186e to
71259a9
Compare
…b specific code in the git library
efecf68 to
9b7ef83
Compare
packages/playground/website/src/components/github-private-repo-auth-modal/index.tsx
Outdated
Show resolved
Hide resolved
packages/playground/website/src/components/github-private-repo-auth-modal/index.tsx
Outdated
Show resolved
Hide resolved
packages/playground/website/src/github/acquire-oauth-token-if-needed.tsx
Show resolved
Hide resolved
|
Thanks, @adamziel. Sorry for the repeated problems with the CORS URLs. They made me rethink the approach slightly: We now avoid dealing with CORS URLs in the first place by determining the need for the git auth headers earlier and rewrapping a thrown git authenticating error with the original URL. I added tests for that as well. |
ff58b42 to
075a72c
Compare
075a72c to
d23017d
Compare
Motivation for the change, related issues
Currently, WordPress Playground can only fetch git:directory resources from public Github repositories, private ones are not supported.
Related: #2182.
This PR adds Github OAuth authentication support for private repositories:
Note: Because it uses Github OAuth and thus requires a Github user, this is not intended for demoing plugins that reside in private repos, rather for developers to run code in Playground that resides in their own private repositories.
Implementation details
Authentication Flow
UI
Technical Details
Testing Instructions (or ideally a Blueprint)
Test with a private repository:
Expected: Modal prompts for GitHub auth → redirects to GitHub → returns and loads repo successfully without showing modal again.
Verify: Public repos still work without auth, token persists in dev mode (localStorage), no modal persistence issues.