diff options
Diffstat (limited to 'models/webhook.go')
-rw-r--r-- | models/webhook.go | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/models/webhook.go b/models/webhook.go index c8e0559e..c68c82bd 100644 --- a/models/webhook.go +++ b/models/webhook.go @@ -292,6 +292,7 @@ type HookTaskType int const ( GOGS HookTaskType = iota + 1 SLACK + DISCORD ) var hookTaskTypes = map[string]HookTaskType{ @@ -458,6 +459,10 @@ func PrepareWebhooks(repo *Repository, event HookEventType, p api.Payloader) err var payloader api.Payloader for _, w := range ws { + if !w.IsActive { + continue + } + switch event { case HOOK_EVENT_CREATE: if !w.HasCreateEvent() { @@ -476,12 +481,15 @@ func PrepareWebhooks(repo *Repository, event HookEventType, p api.Payloader) err // Use separate objects so modifcations won't be made on payload on non-Gogs type hooks. switch w.HookTaskType { case SLACK: - // FIXME: dirty fix for buggy support of Discord for Slack-type webhook. - // Should remove this if we want to support Discord fully as its own. - payloader, err = GetSlackPayload(strings.Contains(w.URL, ".discordapp.com/"), p, event, w.Meta) + payloader, err = GetSlackPayload(p, event, w.Meta) if err != nil { return fmt.Errorf("GetSlackPayload: %v", err) } + case DISCORD: + payloader, err = GetDiscordPayload(p, event, w.Meta) + if err != nil { + return fmt.Errorf("GetDiscordPayload: %v", err) + } default: p.SetSecret(w.Secret) payloader = p |