diff options
author | S7evinK <tfaelligen@gmail.com> | 2020-09-03 04:46:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-02 22:46:02 -0400 |
commit | 7af2ccd5115caf8889ba20b61881c44694c82cb1 (patch) | |
tree | 57a12a4250dbc168bc2b2ae267ee3a58cf6a54ae /modules/webhook | |
parent | 514201af5d2e81182c86306f414ced27c8602eb6 (diff) | |
download | gitea-7af2ccd5115caf8889ba20b61881c44694c82cb1.tar.gz gitea-7af2ccd5115caf8889ba20b61881c44694c82cb1.zip |
Avoid sending "0 new commits" webhooks (#12212)
* Avoid sending "0 new commits" webhook
Signed-off-by: Till Faelligen <tfaelligen@gmail.com>
* Revert "Avoid sending "0 new commits" webhook"
This reverts commit 1f47ccfacd81470e2c33a02bb8d255172aa4ec08.
* Move commit count check to more central place
* Make tests pass
* Update modules/webhook/webhook.go
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'modules/webhook')
-rw-r--r-- | modules/webhook/webhook.go | 8 | ||||
-rw-r--r-- | modules/webhook/webhook_test.go | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/modules/webhook/webhook.go b/modules/webhook/webhook.go index 9748721450..2ef150210e 100644 --- a/modules/webhook/webhook.go +++ b/modules/webhook/webhook.go @@ -76,6 +76,14 @@ func prepareWebhook(w *models.Webhook, repo *models.Repository, event models.Hoo } } + // Avoid sending "0 new commits" to non-integration relevant webhooks (e.g. slack, discord, etc.). + // Integration webhooks (e.g. drone) still receive the required data. + if pushEvent, ok := p.(*api.PushPayload); ok && + w.HookTaskType != models.GITEA && w.HookTaskType != models.GOGS && + len(pushEvent.Commits) == 0 { + return nil + } + // If payload has no associated branch (e.g. it's a new tag, issue, etc.), // branch filter has no effect. if branch := getPayloadBranch(p); branch != "" { diff --git a/modules/webhook/webhook_test.go b/modules/webhook/webhook_test.go index e88e67e9bf..10c32a9485 100644 --- a/modules/webhook/webhook_test.go +++ b/modules/webhook/webhook_test.go @@ -34,7 +34,7 @@ func TestPrepareWebhooks(t *testing.T) { for _, hookTask := range hookTasks { models.AssertNotExistsBean(t, hookTask) } - assert.NoError(t, PrepareWebhooks(repo, models.HookEventPush, &api.PushPayload{})) + assert.NoError(t, PrepareWebhooks(repo, models.HookEventPush, &api.PushPayload{Commits: []*api.PayloadCommit{{}}})) for _, hookTask := range hookTasks { models.AssertExistsAndLoadBean(t, hookTask) } @@ -51,7 +51,7 @@ func TestPrepareWebhooksBranchFilterMatch(t *testing.T) { models.AssertNotExistsBean(t, hookTask) } // this test also ensures that * doesn't handle / in any special way (like shell would) - assert.NoError(t, PrepareWebhooks(repo, models.HookEventPush, &api.PushPayload{Ref: "refs/heads/feature/7791"})) + assert.NoError(t, PrepareWebhooks(repo, models.HookEventPush, &api.PushPayload{Ref: "refs/heads/feature/7791", Commits: []*api.PayloadCommit{{}}})) for _, hookTask := range hookTasks { models.AssertExistsAndLoadBean(t, hookTask) } |