From aeccaba570c2f052226f654529cc936c889828b5 Mon Sep 17 00:00:00 2001 From: Flora Thiebaut Date: Mon, 10 Jun 2024 13:13:45 +0200 Subject: [PATCH 1/2] feat: add support for bitbucket --- git_services/git_services/init/cloner.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git_services/git_services/init/cloner.py b/git_services/git_services/init/cloner.py index 8752d5f1..19eba2d0 100644 --- a/git_services/git_services/init/cloner.py +++ b/git_services/git_services/init/cloner.py @@ -270,6 +270,8 @@ def run_helper(self, repository: Repository, *, storage_mounts: list[str]): # TODO: Is this something else for non-GitLab providers? git_user = "oauth2" + if repository.provider == "bitbucket.org": + git_user = "x-token-auth" git_access_token = ( self._get_access_token(repository.provider) if repository.provider else None ) From 78a63df780d83689e5f7a1297740f62ebc30cd89 Mon Sep 17 00:00:00 2001 From: Flora Thiebaut Date: Mon, 10 Jun 2024 13:32:53 +0200 Subject: [PATCH 2/2] update git-proxy --- git-https-proxy/tokenstore/main.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/git-https-proxy/tokenstore/main.go b/git-https-proxy/tokenstore/main.go index 674b3074..29127de8 100644 --- a/git-https-proxy/tokenstore/main.go +++ b/git-https-proxy/tokenstore/main.go @@ -89,7 +89,8 @@ func (s *TokenStore) GetGitAccessToken(provider string, encode bool) (string, er s.gitAccessTokensLock.RLock() defer s.gitAccessTokensLock.RUnlock() if encode { - return encodeGitCredentials(s.gitAccessTokens[provider].AccessToken), nil + gitUser := getGitUser(provider) + return encodeGitCredentials(gitUser, s.gitAccessTokens[provider].AccessToken), nil } return s.gitAccessTokens[provider].AccessToken, nil } @@ -228,6 +229,13 @@ func (s *TokenStore) periodicTokenRefresh() { } } -func encodeGitCredentials(token string) string { - return base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("oauth2:%s", token))) +func encodeGitCredentials(user string, token string) string { + return base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", user, token))) +} + +func getGitUser(provider string) string { + if provider == "bitbucket.org" { + return "x-token-auth" + } + return "oauth2" }