mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 01:34:27 +00: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 1f47ccfacd.
* 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.),
 | 
						// If payload has no associated branch (e.g. it's a new tag, issue, etc.),
 | 
				
			||||||
	// branch filter has no effect.
 | 
						// branch filter has no effect.
 | 
				
			||||||
	if branch := getPayloadBranch(p); branch != "" {
 | 
						if branch := getPayloadBranch(p); branch != "" {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,7 +34,7 @@ func TestPrepareWebhooks(t *testing.T) {
 | 
				
			|||||||
	for _, hookTask := range hookTasks {
 | 
						for _, hookTask := range hookTasks {
 | 
				
			||||||
		models.AssertNotExistsBean(t, hookTask)
 | 
							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 {
 | 
						for _, hookTask := range hookTasks {
 | 
				
			||||||
		models.AssertExistsAndLoadBean(t, hookTask)
 | 
							models.AssertExistsAndLoadBean(t, hookTask)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -51,7 +51,7 @@ func TestPrepareWebhooksBranchFilterMatch(t *testing.T) {
 | 
				
			|||||||
		models.AssertNotExistsBean(t, hookTask)
 | 
							models.AssertNotExistsBean(t, hookTask)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	// this test also ensures that * doesn't handle / in any special way (like shell would)
 | 
						// 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 {
 | 
						for _, hookTask := range hookTasks {
 | 
				
			||||||
		models.AssertExistsAndLoadBean(t, hookTask)
 | 
							models.AssertExistsAndLoadBean(t, hookTask)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user