You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In order to improve usability of Git repos, we want to have a way to quickly signal to the user if
a Git repo they attempt to clone does not exist,
the branch of the repo they attempted to clone does not exist,
the user does not have the permission to clone the remote repo
Currently this is only detected when building the workspace, but ideally we should detect this up-front while the user is creating a workspace.
Add an endpoint in coderd to query a remote Git repo and return the list of branches on the remote:
GET /api/v2/users/{user}/git_repo/branches?repo={repo}&provider={provider_id}
git_repo (required) should be the git URL of a remote repo to be queried
If provider is set, authenticate with the provider using the logged in user's OAuth2 credentials. Otherwise assume no authentication.
Implementation notes:
To query the remote branches, we can use an approach similar to https://github.com/go-git/go-git/blob/main/_examples/ls-remote/main.go
We can also perform a basic syntax check of the Git repo URL using e.g. github.com/chainguard-dev/git-urls. We should only warn and not block if the URL syntax appears incorrect; the likelihood of false positives is non-zero.
Success criterion: we should be able to list remote branches of both Linux and Chromium without exploding 🙈
The text was updated successfully, but these errors were encountered:
johnstcn
changed the title
Git flow: coder/coder: implement endpoint to query branches from git remote
Git Flow: coder/coder: implement endpoint to query branches from git remote
Feb 24, 2025
Related to #404
In order to improve usability of Git repos, we want to have a way to quickly signal to the user if
Currently this is only detected when building the workspace, but ideally we should detect this up-front while the user is creating a workspace.
Add an endpoint in
coderd
to query a remote Git repo and return the list of branches on the remote:git_repo
(required) should be the git URL of a remote repo to be queriedprovider
is set, authenticate with the provider using the logged in user's OAuth2 credentials. Otherwise assume no authentication.Implementation notes:
https://github.com/go-git/go-git/blob/main/_examples/ls-remote/main.go
The text was updated successfully, but these errors were encountered: