feat(copilot): adds github copilot login support #469
+229
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As mentioned in #426, currently, we require an external program to generate the Github Copilot oAuthToken.
This PR adds all necessary structures to do this first login within mods.
How to test
~/.config/github-copilot
)PR Summary
Authentication Refactor:
copilot.go
).CopilotDeviceCodeResponse
,CopilotDeviceTokenResponse
,CopilotFailedRequestResponse
,copilotGithubOAuthTokenWrapper
,copilotOAuthToken
) (copilot.go
).New Functions:
copilotLogin
function to initiate device code authentication and fetch the OAuth token (copilot.go
).fetchCopilotRefreshToken
function to poll for the OAuth token using the device code (copilot.go
).saveCopilotOAuthToken
andcopilotRegisterApp
functions to save the OAuth token and register the app version (copilot.go
).Refactoring Existing Functions:
getCopilotRefreshToken
to use the newcopilotLogin
function for obtaining the OAuth token (copilot.go
).getCopilotAccessToken
to fetch the OAuth token instead of the refresh token (copilot.go
).