diff options
author | Unknwon <u@gogs.io> | 2017-03-11 18:41:32 -0500 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2017-03-11 18:41:32 -0500 |
commit | b615d670b3c49c077731d3b2fe28ba267bd1b83a (patch) | |
tree | ee3cf7fa10397df57b1109bae9c98be73d523eda /models/webhook_discord.go | |
parent | b9bb4a62d60c0e8b863f160e5f35e67b94c18e6c (diff) |
webhook: add Release event (#2387)
Diffstat (limited to 'models/webhook_discord.go')
-rw-r--r-- | models/webhook_discord.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/models/webhook_discord.go b/models/webhook_discord.go index 0e9a36f2..e403399a 100644 --- a/models/webhook_discord.go +++ b/models/webhook_discord.go @@ -353,6 +353,22 @@ func getDiscordPullRequestPayload(p *api.PullRequestPayload, slack *SlackMeta) ( }, nil } +func getDiscordReleasePayload(p *api.ReleasePayload) (*DiscordPayload, error) { + repoLink := DiscordLinkFormatter(p.Repository.HTMLURL, p.Repository.Name) + refLink := DiscordLinkFormatter(p.Repository.HTMLURL+"/src/"+p.Release.TagName, p.Release.TagName) + content := fmt.Sprintf("Published new release %s of %s", refLink, repoLink) + return &DiscordPayload{ + Embeds: []*DiscordEmbedObject{{ + Description: content, + URL: setting.AppUrl + p.Sender.UserName, + Author: &DiscordEmbedAuthorObject{ + Name: p.Sender.UserName, + IconURL: p.Sender.AvatarUrl, + }, + }}, + }, nil +} + func GetDiscordPayload(p api.Payloader, event HookEventType, meta string) (payload *DiscordPayload, err error) { slack := &SlackMeta{} if err := json.Unmarshal([]byte(meta), &slack); err != nil { @@ -374,6 +390,8 @@ func GetDiscordPayload(p api.Payloader, event HookEventType, meta string) (paylo payload, err = getDiscordIssueCommentPayload(p.(*api.IssueCommentPayload), slack) case HOOK_EVENT_PULL_REQUEST: payload, err = getDiscordPullRequestPayload(p.(*api.PullRequestPayload), slack) + case HOOK_EVENT_RELEASE: + payload, err = getDiscordReleasePayload(p.(*api.ReleasePayload)) } if err != nil { return nil, fmt.Errorf("event '%s': %v", event, err) |