From 9ced52ab5006564b0c20e0efbef21548ccab0003 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Mon, 22 Apr 2019 16:54:25 -0400 Subject: [PATCH 1/5] Refresh Gitea Oauth2 token --- cmd/drone-server/inject_login.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index c3115fa3a..ba4bd2a45 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -172,5 +172,13 @@ func provideRefresher(config config.Config) *oauth2.Refresher { Source: oauth2.ContextTokenSource(), } } + if config.Gitea.ClientID != "" { + return &oauth2.Refresher{ + ClientID: config.Gitea.ClientID, + ClientSecret: config.Gitea.ClientSecret, + Endpoint: config.Server.Addr + "/login/oauth/access_token", + Source: oauth2.ContextTokenSource(), + } + } return nil } From b7fc433b31a9c4d766effc749a9ced774e7d0b3b Mon Sep 17 00:00:00 2001 From: Matti Ranta Date: Mon, 22 Apr 2019 19:36:47 -0400 Subject: [PATCH 2/5] use switch case --- cmd/drone-server/inject_login.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index ba4bd2a45..0c61e16d5 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -164,15 +164,15 @@ func provideStashLogin(config config.Config) login.Middleware { // provideRefresher is a Wire provider function that returns // an oauth token refresher for Bitbucket. func provideRefresher(config config.Config) *oauth2.Refresher { - if config.Bitbucket.ClientID != "" { + switch { + case config.Bitbucket.ClientID != "": return &oauth2.Refresher{ ClientID: config.Bitbucket.ClientID, ClientSecret: config.Bitbucket.ClientSecret, Endpoint: "https://bitbucket.org/site/oauth2/access_token", Source: oauth2.ContextTokenSource(), } - } - if config.Gitea.ClientID != "" { + case config.Gitea.Server != "": return &oauth2.Refresher{ ClientID: config.Gitea.ClientID, ClientSecret: config.Gitea.ClientSecret, From 18b0959bbff52b16a924e993eb8ff2f178685826 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Mon, 22 Apr 2019 19:50:31 -0400 Subject: [PATCH 3/5] update per feedback --- cmd/drone-server/inject_login.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index 0c61e16d5..c8ab7c796 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -172,11 +172,11 @@ func provideRefresher(config config.Config) *oauth2.Refresher { Endpoint: "https://bitbucket.org/site/oauth2/access_token", Source: oauth2.ContextTokenSource(), } - case config.Gitea.Server != "": + case config.Gitea.ClientID != "": return &oauth2.Refresher{ ClientID: config.Gitea.ClientID, ClientSecret: config.Gitea.ClientSecret, - Endpoint: config.Server.Addr + "/login/oauth/access_token", + Endpoint: config.Gitea.Server + "/login/oauth/access_token", Source: oauth2.ContextTokenSource(), } } From 6adbacd11c95a09d595de968e38f661169ad2ff7 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Mon, 22 Apr 2019 19:52:37 -0400 Subject: [PATCH 4/5] update docs per feedback --- cmd/drone-server/inject_login.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index c8ab7c796..caadae391 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -162,7 +162,7 @@ func provideStashLogin(config config.Config) login.Middleware { } // provideRefresher is a Wire provider function that returns -// an oauth token refresher for Bitbucket. +// an oauth token refresher for Bitbucket and Gitea func provideRefresher(config config.Config) *oauth2.Refresher { switch { case config.Bitbucket.ClientID != "": From b2d850f16f87a19800ab339cc3174a57d76a7d60 Mon Sep 17 00:00:00 2001 From: Matti Ranta Date: Mon, 22 Apr 2019 20:09:40 -0400 Subject: [PATCH 5/5] add refresh to client as well --- cmd/drone-server/inject_client.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/cmd/drone-server/inject_client.go b/cmd/drone-server/inject_client.go index 8ab383ebc..b3113556c 100644 --- a/cmd/drone-server/inject_client.go +++ b/cmd/drone-server/inject_client.go @@ -117,10 +117,25 @@ func provideGiteaClient(config config.Config) *scm.Client { if config.Gitea.Debug { client.DumpResponse = httputil.DumpResponse } + if config.Gitea.ClientID == "" { + client.Client = &http.Client{ + Transport: &oauth2.Transport{ + Scheme: oauth2.SchemeToken, + Source: oauth2.ContextTokenSource(), + Base: defaultTransport(config.Gitea.SkipVerify), + }, + } + return client + } client.Client = &http.Client{ Transport: &oauth2.Transport{ - Scheme: oauth2.SchemeToken, - Source: oauth2.ContextTokenSource(), + Scheme: oauth2.SchemeBearer, + Source: &oauth2.Refresher{ + ClientID: config.Gitea.ClientID, + ClientSecret: config.Gitea.ClientSecret, + Endpoint: config.Gitea.Server + "/login/oauth/access_token", + Source: oauth2.ContextTokenSource(), + }, Base: defaultTransport(config.Gitea.SkipVerify), }, }