From 665398fb4f6c3af1ac4d5173bf1593c89b3f9ca5 Mon Sep 17 00:00:00 2001 From: Matti Ranta Date: Fri, 8 Mar 2019 12:22:20 -0500 Subject: [PATCH 01/10] Add Gitea Oauth With fallback to basic auth if Gitea server does not support oauth --- cmd/drone-server/config/config.go | 8 +++++--- cmd/drone-server/inject_login.go | 9 +++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cmd/drone-server/config/config.go b/cmd/drone-server/config/config.go index 64a4ba69..5923ed7a 100644 --- a/cmd/drone-server/config/config.go +++ b/cmd/drone-server/config/config.go @@ -293,9 +293,11 @@ type ( // Gitea provides the gitea client configuration. Gitea struct { - Server string `envconfig:"DRONE_GITEA_SERVER"` - SkipVerify bool `envconfig:"DRONE_GITEA_SKIP_VERIFY"` - Debug bool `envconfig:"DRONE_GITEA_DEBUG"` + ClientID string `envconfig:"DRONE_GITEA_CLIENT_ID"` + ClientSecret string `envconfig:"DRONE_GITEA_CLIENT_SECRET"` + Server string `envconfig:"DRONE_GITEA_SERVER"` + SkipVerify bool `envconfig:"DRONE_GITEA_SKIP_VERIFY"` + Debug bool `envconfig:"DRONE_GITEA_DEBUG"` } // Github provides the github client configuration. diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index 949542a1..8832ba42 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -91,6 +91,15 @@ func provideGiteaLogin(config config.Config) login.Middleware { if config.Gitea.Server == "" { return nil } + if config.Gitea.ClientID != "" { + return &gitea.Config { + ClientID: config.Gitea.ClientID, + ClientSecret: config.Gitea.ClientSecret, + Server: config.Gitea.Server, + Client: defaultClient(config.Gitea.SkipVerify), + Logger: logrus.StandardLogger(), + } + } return &gogs.Config{ Label: "drone", Login: "/login/form", From 63ba489310272edd41c77e1401cafba83a98bf14 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Fri, 8 Mar 2019 13:38:20 -0500 Subject: [PATCH 02/10] Update inject_login.go --- cmd/drone-server/inject_login.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index 8832ba42..87b42615 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -18,6 +18,7 @@ import ( "github.com/drone/drone/cmd/drone-server/config" "github.com/drone/go-login/login" "github.com/drone/go-login/login/bitbucket" + "github.com/drone/go-login/login/gitea" "github.com/drone/go-login/login/github" "github.com/drone/go-login/login/gitlab" "github.com/drone/go-login/login/gogs" From 33044a1f38f86c27fe086310fcb4242f62e44111 Mon Sep 17 00:00:00 2001 From: Matti Ranta Date: Fri, 8 Mar 2019 13:40:56 -0500 Subject: [PATCH 03/10] update gomod --- go.mod | 2 +- go.sum | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index c731ecb2..be74e46c 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/drone/drone-yaml v1.0.1 github.com/drone/envsubst v1.0.1 github.com/drone/go-license v1.0.2 - github.com/drone/go-login v1.0.3 + github.com/drone/go-login v1.0.4-0.20190308175602-213d1719faed github.com/drone/go-scm v1.2.0 github.com/drone/signal v1.0.0 github.com/dustin/go-humanize v1.0.0 diff --git a/go.sum b/go.sum index 6da97201..935e1ce7 100644 --- a/go.sum +++ b/go.sum @@ -56,6 +56,8 @@ github.com/drone/go-license v1.0.2 h1:7OwndfYk+Lp/cGHkxe4HUn/Ysrrw3WYH2pnd99yrko github.com/drone/go-license v1.0.2/go.mod h1:fGRHf+F1cEaw3YVYiJ6js3G3dVhcxyS617RnNRUMsms= github.com/drone/go-login v1.0.3 h1:YmZMUoWWd3QrgmobC1DcExFjW7w2ZEBO1R1VeeobIRU= github.com/drone/go-login v1.0.3/go.mod h1:FLxy9vRzLbyBxoCJYxGbG9R0WGn6OyuvBmAtYNt43uw= +github.com/drone/go-login v1.0.4-0.20190308175602-213d1719faed h1:Y0qiKFf6gsgTRTQS1roMh7kKVyrx+HSQmFsIgcZsHsM= +github.com/drone/go-login v1.0.4-0.20190308175602-213d1719faed/go.mod h1:FLxy9vRzLbyBxoCJYxGbG9R0WGn6OyuvBmAtYNt43uw= github.com/drone/go-scm v1.0.9 h1:Bn8K4YZa4P7jgJCGs8SJwPeefIGrj8oe4UGeM7KBgP8= github.com/drone/go-scm v1.0.9/go.mod h1:YT4FxQ3U/ltdCrBJR9B0tRpJ1bYA/PM3NyaLE/rYIvw= github.com/drone/go-scm v1.1.0 h1:5Cy7eb+s2JriPMlhuDPxyeeaTszxZ6Sve4sr4RPnnfs= @@ -110,6 +112,8 @@ github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uP github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-retryablehttp v0.0.0-20180718195005-e651d75abec6 h1:qCv4319q2q7XKn0MQbi8p37hsJ+9Xo8e6yojA73JVxk= github.com/hashicorp/go-retryablehttp v0.0.0-20180718195005-e651d75abec6/go.mod h1:fXcdFsQoipQa7mwORhKad5jmDCeSy/RCGzWA08PO0lM= +github.com/hashicorp/go-rootcerts v1.0.0 h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/nomad v0.0.0-20190125003214-134391155854 h1:L7WhLZt2ory/kQWxqkMwOiBpIoa4BWoadN7yx8LHEtk= From e4f549885000927036880a0955e612f26587ec4b Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Fri, 8 Mar 2019 14:35:41 -0500 Subject: [PATCH 04/10] pass redirect URL to Gitea --- cmd/drone-server/inject_login.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index 87b42615..977a1f2b 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -99,6 +99,7 @@ func provideGiteaLogin(config config.Config) login.Middleware { Server: config.Gitea.Server, Client: defaultClient(config.Gitea.SkipVerify), Logger: logrus.StandardLogger(), + RedirectURL: config.Server.Addr + "/login", } } return &gogs.Config{ From b0f3ee3ce0600813965032e60a6c92a761b48d05 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Fri, 8 Mar 2019 21:55:43 -0500 Subject: [PATCH 05/10] update per @appleboy feedback --- cmd/drone-server/config/config.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cmd/drone-server/config/config.go b/cmd/drone-server/config/config.go index 5923ed7a..cecfb0ef 100644 --- a/cmd/drone-server/config/config.go +++ b/cmd/drone-server/config/config.go @@ -293,11 +293,12 @@ type ( // Gitea provides the gitea client configuration. Gitea struct { - ClientID string `envconfig:"DRONE_GITEA_CLIENT_ID"` - ClientSecret string `envconfig:"DRONE_GITEA_CLIENT_SECRET"` - Server string `envconfig:"DRONE_GITEA_SERVER"` - SkipVerify bool `envconfig:"DRONE_GITEA_SKIP_VERIFY"` - Debug bool `envconfig:"DRONE_GITEA_DEBUG"` + Server string `envconfig:"DRONE_GITEA_SERVER" default:"https://try.gitea.io"` + ClientID string `envconfig:"DRONE_GITEA_CLIENT_ID"` + ClientSecret string `envconfig:"DRONE_GITEA_CLIENT_SECRET"` + SkipVerify bool `envconfig:"DRONE_GITEA_SKIP_VERIFY"` + Scope []string `envconfig:"DRONE_GITEA_SCOPE" default:"repo,repo:status,user:email,read:org"` + Debug bool `envconfig:"DRONE_GITEA_DEBUG"` } // Github provides the github client configuration. From 911f7c1e64045ffcaebbffa58fc550fd32a220dd Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Fri, 8 Mar 2019 21:56:45 -0500 Subject: [PATCH 06/10] update per @appleboy feedback --- cmd/drone-server/inject_login.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/drone-server/inject_login.go b/cmd/drone-server/inject_login.go index 977a1f2b..992ee734 100644 --- a/cmd/drone-server/inject_login.go +++ b/cmd/drone-server/inject_login.go @@ -100,6 +100,7 @@ func provideGiteaLogin(config config.Config) login.Middleware { Client: defaultClient(config.Gitea.SkipVerify), Logger: logrus.StandardLogger(), RedirectURL: config.Server.Addr + "/login", + Scope: config.Gitea.Scope, } } return &gogs.Config{ From 39df2ffbad30369990b629685f9a16f46ef08103 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Wed, 13 Mar 2019 18:27:21 -0400 Subject: [PATCH 07/10] Update config.go --- cmd/drone-server/config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/drone-server/config/config.go b/cmd/drone-server/config/config.go index cecfb0ef..c881ca2d 100644 --- a/cmd/drone-server/config/config.go +++ b/cmd/drone-server/config/config.go @@ -293,7 +293,7 @@ type ( // Gitea provides the gitea client configuration. Gitea struct { - Server string `envconfig:"DRONE_GITEA_SERVER" default:"https://try.gitea.io"` + Server string `envconfig:"DRONE_GITEA_SERVER"` ClientID string `envconfig:"DRONE_GITEA_CLIENT_ID"` ClientSecret string `envconfig:"DRONE_GITEA_CLIENT_SECRET"` SkipVerify bool `envconfig:"DRONE_GITEA_SKIP_VERIFY"` From c797df0d9ed7ae24c43a1012f5491c599dbeb99a Mon Sep 17 00:00:00 2001 From: Matti Ranta Date: Wed, 13 Mar 2019 18:33:58 -0400 Subject: [PATCH 08/10] update gomod --- go.mod | 2 +- go.sum | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index be74e46c..a7fc06ea 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/drone/drone-yaml v1.0.1 github.com/drone/envsubst v1.0.1 github.com/drone/go-license v1.0.2 - github.com/drone/go-login v1.0.4-0.20190308175602-213d1719faed + github.com/drone/go-login v1.0.4-0.20190311170324-2a4df4f242a2 github.com/drone/go-scm v1.2.0 github.com/drone/signal v1.0.0 github.com/dustin/go-humanize v1.0.0 diff --git a/go.sum b/go.sum index 935e1ce7..db769699 100644 --- a/go.sum +++ b/go.sum @@ -58,6 +58,7 @@ github.com/drone/go-login v1.0.3 h1:YmZMUoWWd3QrgmobC1DcExFjW7w2ZEBO1R1VeeobIRU= github.com/drone/go-login v1.0.3/go.mod h1:FLxy9vRzLbyBxoCJYxGbG9R0WGn6OyuvBmAtYNt43uw= github.com/drone/go-login v1.0.4-0.20190308175602-213d1719faed h1:Y0qiKFf6gsgTRTQS1roMh7kKVyrx+HSQmFsIgcZsHsM= github.com/drone/go-login v1.0.4-0.20190308175602-213d1719faed/go.mod h1:FLxy9vRzLbyBxoCJYxGbG9R0WGn6OyuvBmAtYNt43uw= +github.com/drone/go-login v1.0.4-0.20190311170324-2a4df4f242a2/go.mod h1:FLxy9vRzLbyBxoCJYxGbG9R0WGn6OyuvBmAtYNt43uw= github.com/drone/go-scm v1.0.9 h1:Bn8K4YZa4P7jgJCGs8SJwPeefIGrj8oe4UGeM7KBgP8= github.com/drone/go-scm v1.0.9/go.mod h1:YT4FxQ3U/ltdCrBJR9B0tRpJ1bYA/PM3NyaLE/rYIvw= github.com/drone/go-scm v1.1.0 h1:5Cy7eb+s2JriPMlhuDPxyeeaTszxZ6Sve4sr4RPnnfs= From a98e3184c3e1968f37a653e9a66f16ae12e9d48e Mon Sep 17 00:00:00 2001 From: Matti Ranta Date: Wed, 13 Mar 2019 22:07:20 -0400 Subject: [PATCH 09/10] update gomod --- go.sum | 1 - 1 file changed, 1 deletion(-) diff --git a/go.sum b/go.sum index af3eadb5..c7869a50 100644 --- a/go.sum +++ b/go.sum @@ -117,7 +117,6 @@ github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uP github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-retryablehttp v0.0.0-20180718195005-e651d75abec6 h1:qCv4319q2q7XKn0MQbi8p37hsJ+9Xo8e6yojA73JVxk= github.com/hashicorp/go-retryablehttp v0.0.0-20180718195005-e651d75abec6/go.mod h1:fXcdFsQoipQa7mwORhKad5jmDCeSy/RCGzWA08PO0lM= -github.com/hashicorp/go-rootcerts v1.0.0 h1:ueI78wUjYExhCvMLow4icJnayNNFRgy0d9EGs/a1T44= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= From 1e44ae494a5bf7d51e6557eda0e4024bef045207 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Sat, 13 Apr 2019 11:37:09 -0400 Subject: [PATCH 10/10] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6d7043c..18d7453a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - specify a user for the pipeline step, by [@bradrydzewski](https://github.com/bradrydzewski). [#2651](https://github.com/drone/drone/issues/2651). - update drone-yaml to version 1.0.7. - update drone-runtime to version 1.0.5. +- add sign in with Gitea OAuth, by [@techknowlogick](https://github.com/techknowlogick). [#2622](https://github.com/drone/drone/pull/2622). ## [1.0.1] - 2019-04-10 ### Added