Skip to content

feat: add github device flow for authentication #8232

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

Merged
merged 17 commits into from
Jun 29, 2023
Merged

Conversation

kylecarbs
Copy link
Member

@kylecarbs kylecarbs commented Jun 27, 2023

This refactors git auth to support the GitHub OAuth device flow and adds a few nice UI features.

The short-term objective is to ship a built-in GitHub App that uses device authentication with the Coder GitHub App. This enables zero-configuration private repository clones in Coder!

The long-term objective is to private a deeper Git integration with templates allowing users to one-click integrate a repository with the Coder app and update their template automatically 🪄.

This also adds E2E tests for the device and web flows for git auth. It started to get complex, and I wanted to be very cautious of regressions with this change.

If a GitHub App is used to configure the OAuth provider, we display a button to configure it if the user has permission to read the deployment config. We also display all authorized organizations for the user (so they know where they can clone from).

image

A warning will be displayed if a GitHub App is used and it hasn't been installed on any organization.

image

If device auth is used, we display the one-time code and a button for the user to be redirected.

image

This will allow us to add a GitHub OAuth provider out-of-the-box
to reduce setup requirements.
@kylecarbs kylecarbs marked this pull request as ready for review June 28, 2023 18:58
@bpmct bpmct mentioned this pull request Jun 28, 2023
4 tasks
Copy link
Contributor

@coadler coadler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just looked at the Go files.

@kylecarbs kylecarbs enabled auto-merge (squash) June 29, 2023 18:55
@kylecarbs kylecarbs merged commit 34467a3 into main Jun 29, 2023
@kylecarbs kylecarbs deleted the git-device-flow branch June 29, 2023 18:58
@github-actions github-actions bot locked and limited conversation to collaborators Jun 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants