mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	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>
This commit is contained in:
		@@ -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 != "" {
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user