diff options
Diffstat (limited to 'models/webhook.go')
-rw-r--r-- | models/webhook.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/models/webhook.go b/models/webhook.go index feabf03b..a55fcfa7 100644 --- a/models/webhook.go +++ b/models/webhook.go @@ -63,6 +63,7 @@ func IsValidHookContentType(name string) bool { type HookEvents struct { Create bool `json:"create"` + Delete bool `json:"delete"` Push bool `json:"push"` PullRequest bool `json:"pull_request"` } @@ -156,6 +157,12 @@ func (w *Webhook) HasCreateEvent() bool { (w.ChooseEvents && w.HookEvents.Create) } +// HasDeleteEvent returns true if hook enabled delete event. +func (w *Webhook) HasDeleteEvent() bool { + return w.SendEverything || + (w.ChooseEvents && w.HookEvents.Delete) +} + // HasPushEvent returns true if hook enabled push event. func (w *Webhook) HasPushEvent() bool { return w.PushOnly || w.SendEverything || @@ -337,6 +344,7 @@ type HookEventType string const ( HOOK_EVENT_CREATE HookEventType = "create" + HOOK_EVENT_DELETE HookEventType = "delete" HOOK_EVENT_PUSH HookEventType = "push" HOOK_EVENT_PULL_REQUEST HookEventType = "pull_request" ) @@ -462,6 +470,10 @@ func prepareWebhooks(repo *Repository, event HookEventType, p api.Payloader, web if !w.HasCreateEvent() { continue } + case HOOK_EVENT_DELETE: + if !w.HasDeleteEvent() { + continue + } case HOOK_EVENT_PUSH: if !w.HasPushEvent() { continue |