mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Only send webhook events to active system webhooks and only deliver to active hooks (#19234)
There is a bug in the system webhooks whereby the active state is not checked when webhooks are prepared and there is a bug that deactivating webhooks do not prevent queued deliveries. * Only add SystemWebhooks to the prepareWebhooks list if they are active * At the time of delivery if the underlying webhook is not active mark it as "delivered" but with a failed delivery so it does not get delivered. Fix #19220 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		@@ -11,6 +11,7 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/base"
 | 
			
		||||
	"code.gitea.io/gitea/modules/context"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
@@ -34,7 +35,7 @@ func DefaultOrSystemWebhooks(ctx *context.Context) {
 | 
			
		||||
 | 
			
		||||
	sys["Title"] = ctx.Tr("admin.systemhooks")
 | 
			
		||||
	sys["Description"] = ctx.Tr("admin.systemhooks.desc")
 | 
			
		||||
	sys["Webhooks"], err = webhook.GetSystemWebhooks()
 | 
			
		||||
	sys["Webhooks"], err = webhook.GetSystemWebhooks(util.OptionalBoolNone)
 | 
			
		||||
	sys["BaseLink"] = setting.AppSubURL + "/admin/hooks"
 | 
			
		||||
	sys["BaseLinkNew"] = setting.AppSubURL + "/admin/system-hooks"
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user