diff --git a/cmd/drone-server/server.go b/cmd/drone-server/server.go index 597f8147..f36527bd 100644 --- a/cmd/drone-server/server.go +++ b/cmd/drone-server/server.go @@ -316,6 +316,12 @@ var flags = []cli.Flag{ Usage: "gitea server address", Value: "https://try.gitea.io", }, + cli.StringFlag{ + EnvVar: "DRONE_GITEA_CONTEXT", + Name: "gitea-context", + Usage: "gitea status context", + Value: "continuous-integration/drone", + }, cli.StringFlag{ EnvVar: "DRONE_GITEA_GIT_USERNAME", Name: "gitea-git-username", diff --git a/cmd/drone-server/setup.go b/cmd/drone-server/setup.go index 90f28310..248b49a4 100644 --- a/cmd/drone-server/setup.go +++ b/cmd/drone-server/setup.go @@ -115,6 +115,7 @@ func setupGogs(c *cli.Context) (remote.Remote, error) { func setupGitea(c *cli.Context) (remote.Remote, error) { return gitea.New(gitea.Opts{ URL: c.String("gitea-server"), + Context: c.String("gitea-context"), Username: c.String("gitea-git-username"), Password: c.String("gitea-git-password"), PrivateMode: c.Bool("gitea-private-mode"), diff --git a/remote/gitea/gitea.go b/remote/gitea/gitea.go index 1172f370..1773007f 100644 --- a/remote/gitea/gitea.go +++ b/remote/gitea/gitea.go @@ -29,6 +29,7 @@ import ( // Opts defines configuration options. type Opts struct { URL string // Gitea server url. + Context string // Context to display in status check Username string // Optional machine account username. Password string // Optional machine account password. PrivateMode bool // Gitea is running in private mode. @@ -37,6 +38,7 @@ type Opts struct { type client struct { URL string + Context string Machine string Username string Password string @@ -111,6 +113,7 @@ func New(opts Opts) (remote.Remote, error) { } return &client{ URL: opts.URL, + Context: opts.Context, Machine: url.Host, Username: opts.Username, Password: opts.Password, @@ -266,7 +269,7 @@ func (c *client) Status(u *model.User, r *model.Repo, b *model.Build, link strin State: status, TargetURL: link, Description: desc, - Context: "", + Context: c.Context, }, ) diff --git a/remote/gitea/gitea_test.go b/remote/gitea/gitea_test.go index 9c14b8ba..17f3610f 100644 --- a/remote/gitea/gitea_test.go +++ b/remote/gitea/gitea_test.go @@ -44,12 +44,14 @@ func Test_gitea(t *testing.T) { g.It("Should return client with specified options", func() { remote, _ := New(Opts{ URL: "http://localhost:8080", + Context: "continuous-integration/test", Username: "someuser", Password: "password", SkipVerify: true, PrivateMode: true, }) g.Assert(remote.(*client).URL).Equal("http://localhost:8080") + g.Assert(remote.(*client).Context).Equal("continuous-integration/test") g.Assert(remote.(*client).Machine).Equal("localhost") g.Assert(remote.(*client).Username).Equal("someuser") g.Assert(remote.(*client).Password).Equal("password") diff --git a/server/stream.go b/server/stream.go index 2e202989..6dd19a9b 100644 --- a/server/stream.go +++ b/server/stream.go @@ -78,7 +78,7 @@ func EventStreamSSE(c *gin.Context) { go func() { // TODO remove this from global config - Config.Services.Pubsub.Subscribe(c, "topic/events", func(m pubsub.Message) { + Config.Services.Pubsub.Subscribe(ctx, "topic/events", func(m pubsub.Message) { name := m.Labels["repo"] priv := m.Labels["private"] if repo[name] || priv == "false" {