From 6a59ea777f2a33333004e469ec409d1123acbcc5 Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Tue, 7 Jan 2020 13:59:15 +0000 Subject: [PATCH 1/3] manager: send webhook after build finishes add an additional and final webhook that notifies of the build status after completion (success/failure) --- operator/manager/manager.go | 1 + operator/manager/teardown.go | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/operator/manager/manager.go b/operator/manager/manager.go index 67c18ebef..07caaa740 100644 --- a/operator/manager/manager.go +++ b/operator/manager/manager.go @@ -437,6 +437,7 @@ func (m *Manager) AfterAll(ctx context.Context, stage *core.Stage) error { Stages: m.Stages, Status: m.Status, Users: m.Users, + Webhook: m.Webhook, } return t.do(ctx, stage) } diff --git a/operator/manager/teardown.go b/operator/manager/teardown.go index c34eff73f..684ca60b2 100644 --- a/operator/manager/teardown.go +++ b/operator/manager/teardown.go @@ -37,6 +37,7 @@ type teardown struct { Status core.StatusService Stages core.StageStore Users core.UserStore + Webhook core.WebhookSender } func (t *teardown) do(ctx context.Context, stage *core.Stage) error { @@ -167,6 +168,17 @@ func (t *teardown) do(ctx context.Context, stage *core.Stage) error { Warnln("manager: cannot publish build event") } + payload := &core.WebhookData{ + Event: core.WebhookEventBuild, + Action: core.WebhookActionUpdated, + Repo: repo, + Build: build, + } + err = t.Webhook.Send(noContext, payload) + if err != nil { + logger.WithError(err).Warnln("manager: cannot send global webhook") + } + user, err := t.Users.Find(noContext, repo.UserID) if err != nil { logger.WithError(err). From a035dfb0c2bec9bfb9f707053c10230847ddd50e Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Tue, 7 Jan 2020 17:50:01 +0000 Subject: [PATCH 2/3] webhook: log when sending webhook event --- plugin/webhook/webhook.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugin/webhook/webhook.go b/plugin/webhook/webhook.go index 60eff999d..269a3d1d9 100644 --- a/plugin/webhook/webhook.go +++ b/plugin/webhook/webhook.go @@ -19,6 +19,7 @@ import ( "github.com/drone/drone/core" "github.com/99designs/httpsignatures-go" + "github.com/sirupsen/logrus" ) // required http headers @@ -64,6 +65,21 @@ func (s *sender) Send(ctx context.Context, in *core.WebhookData) error { if s.match(in.Event, in.Action) == false { return nil } + + logger := logrus. + WithField("event", in.Event). + WithField("action", in.Action) + if in.Repo != nil { + logger = logger.WithField("repo", in.Repo.Name) + } + if in.Build != nil { + logger = logger. + WithField("build.id", in.Build.ID). + WithField("build.number", in.Build.Number). + WithField("build.status", in.Build.Status) + } + logger.Debugln("webhook: sending global webhook") + wrapper := payload{ WebhookData: in, System: s.System, From 11dbf7cc3e4299920ebb392c58be90986d7553ed Mon Sep 17 00:00:00 2001 From: Brad Rydzewski Date: Mon, 13 Jan 2020 21:51:24 -0800 Subject: [PATCH 3/3] Update webhook.go --- plugin/webhook/webhook.go | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/plugin/webhook/webhook.go b/plugin/webhook/webhook.go index 269a3d1d9..60eff999d 100644 --- a/plugin/webhook/webhook.go +++ b/plugin/webhook/webhook.go @@ -19,7 +19,6 @@ import ( "github.com/drone/drone/core" "github.com/99designs/httpsignatures-go" - "github.com/sirupsen/logrus" ) // required http headers @@ -65,21 +64,6 @@ func (s *sender) Send(ctx context.Context, in *core.WebhookData) error { if s.match(in.Event, in.Action) == false { return nil } - - logger := logrus. - WithField("event", in.Event). - WithField("action", in.Action) - if in.Repo != nil { - logger = logger.WithField("repo", in.Repo.Name) - } - if in.Build != nil { - logger = logger. - WithField("build.id", in.Build.ID). - WithField("build.number", in.Build.Number). - WithField("build.status", in.Build.Status) - } - logger.Debugln("webhook: sending global webhook") - wrapper := payload{ WebhookData: in, System: s.System,