From b6053394efe4338764163df4044bdea6f9ccb3de Mon Sep 17 00:00:00 2001 From: Endymion Wight <96110339+EndymionWight@users.noreply.github.com> Date: Tue, 14 Jun 2022 21:46:35 +1200 Subject: [PATCH] Added OAuth2 token refresher for Gitlab (#3215) --- cmd/drone-server/inject_client.go | 8 +++++++- cmd/drone-server/inject_login.go | 8 ++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cmd/drone-server/inject_client.go b/cmd/drone-server/inject_client.go index ad8cda37..93fab947 100644 --- a/cmd/drone-server/inject_client.go +++ b/cmd/drone-server/inject_client.go @@ -180,7 +180,13 @@ func provideGitlabClient(config config.Config) *scm.Client { } client.Client = &http.Client{ Transport: &oauth2.Transport{ - Source: oauth2.ContextTokenSource(), + Scheme: oauth2.SchemeBearer, + Source: &oauth2.Refresher{ + ClientID: config.GitLab.ClientID, + ClientSecret: config.GitLab.ClientSecret, + Endpoint: strings.TrimSuffix(config.GitLab.Server, "/") + "/oauth/token", + Source: oauth2.ContextTokenSource(), + }, Base: defaultTransport(config.GitLab.SkipVerify), }, } diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index 4360246b..00dc1c26 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -197,6 +197,14 @@ func provideRefresher(config config.Config) *oauth2.Refresher { Source: oauth2.ContextTokenSource(), Client: defaultClient(config.Gitea.SkipVerify), } + case config.GitLab.ClientID != "": + return &oauth2.Refresher{ + ClientID: config.GitLab.ClientID, + ClientSecret: config.GitLab.ClientSecret, + Endpoint: strings.TrimSuffix(config.GitLab.Server, "/") + "/oauth/token", + Source: oauth2.ContextTokenSource(), + Client: defaultClient(config.GitLab.SkipVerify), + } case config.Gitee.ClientID != "": return &oauth2.Refresher{ ClientID: config.Gitee.ClientID,