aboutsummaryrefslogtreecommitdiff
path: root/models/webhook_slack.go
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2017-02-25 03:35:26 -0500
committerUnknwon <u@gogs.io>2017-02-27 22:48:18 -0500
commitb06f2997489d58cc5a4375044e378c0565ea09d4 (patch)
treefd02710adc4ed574fe28aa173b2f02ac68bd6568 /models/webhook_slack.go
parentbeea014343251fc9f379f996553c0b8030723464 (diff)
webhook: add fork event
Diffstat (limited to 'models/webhook_slack.go')
-rw-r--r--models/webhook_slack.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/models/webhook_slack.go b/models/webhook_slack.go
index f785bb68..6f81c1c0 100644
--- a/models/webhook_slack.go
+++ b/models/webhook_slack.go
@@ -90,6 +90,16 @@ func getSlackDeletePayload(p *api.DeletePayload) (*SlackPayload, error) {
}, nil
}
+// getSlackForkPayload composes Slack payload for forked by a repository.
+func getSlackForkPayload(p *api.ForkPayload) (*SlackPayload, error) {
+ baseLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name)
+ forkLink := SlackLinkFormatter(p.Forkee.HTMLURL, p.Forkee.FullName)
+ text := fmt.Sprintf("%s is forked to %s", baseLink, forkLink)
+ return &SlackPayload{
+ Text: text,
+ }, nil
+}
+
func getSlackPushPayload(p *api.PushPayload, slack *SlackMeta) (*SlackPayload, error) {
// n new commits
var (
@@ -194,6 +204,8 @@ func GetSlackPayload(p api.Payloader, event HookEventType, meta string) (payload
payload, err = getSlackCreatePayload(p.(*api.CreatePayload))
case HOOK_EVENT_DELETE:
payload, err = getSlackDeletePayload(p.(*api.DeletePayload))
+ case HOOK_EVENT_FORK:
+ payload, err = getSlackForkPayload(p.(*api.ForkPayload))
case HOOK_EVENT_PUSH:
payload, err = getSlackPushPayload(p.(*api.PushPayload), slack)
case HOOK_EVENT_PULL_REQUEST: