| @@ -104,7 +104,7 @@ func SlackLinkToRef(repoURL, ref string) string { | |||||
| } | } | ||||
| func getSlackCreatePayload(p *api.CreatePayload, slack *SlackMeta) (*SlackPayload, error) { | func getSlackCreatePayload(p *api.CreatePayload, slack *SlackMeta) (*SlackPayload, error) { | ||||
| repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name) | |||||
| repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.FullName) | |||||
| refLink := SlackLinkToRef(p.Repo.HTMLURL, p.Ref) | refLink := SlackLinkToRef(p.Repo.HTMLURL, p.Ref) | ||||
| text := fmt.Sprintf("[%s:%s] %s created by %s", repoLink, refLink, p.RefType, p.Sender.UserName) | text := fmt.Sprintf("[%s:%s] %s created by %s", repoLink, refLink, p.RefType, p.Sender.UserName) | ||||
| @@ -119,7 +119,7 @@ func getSlackCreatePayload(p *api.CreatePayload, slack *SlackMeta) (*SlackPayloa | |||||
| // getSlackDeletePayload composes Slack payload for delete a branch or tag. | // getSlackDeletePayload composes Slack payload for delete a branch or tag. | ||||
| func getSlackDeletePayload(p *api.DeletePayload, slack *SlackMeta) (*SlackPayload, error) { | func getSlackDeletePayload(p *api.DeletePayload, slack *SlackMeta) (*SlackPayload, error) { | ||||
| refName := git.RefEndName(p.Ref) | refName := git.RefEndName(p.Ref) | ||||
| repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name) | |||||
| repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.FullName) | |||||
| text := fmt.Sprintf("[%s:%s] %s deleted by %s", repoLink, refName, p.RefType, p.Sender.UserName) | text := fmt.Sprintf("[%s:%s] %s deleted by %s", repoLink, refName, p.RefType, p.Sender.UserName) | ||||
| return &SlackPayload{ | return &SlackPayload{ | ||||
| Channel: slack.Channel, | Channel: slack.Channel, | ||||
| @@ -146,35 +146,36 @@ func getSlackIssuesPayload(p *api.IssuePayload, slack *SlackMeta) (*SlackPayload | |||||
| senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | ||||
| titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index), | titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index), | ||||
| fmt.Sprintf("#%d %s", p.Index, p.Issue.Title)) | fmt.Sprintf("#%d %s", p.Index, p.Issue.Title)) | ||||
| repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName) | |||||
| var text, title, attachmentText string | var text, title, attachmentText string | ||||
| switch p.Action { | switch p.Action { | ||||
| case api.HookIssueOpened: | case api.HookIssueOpened: | ||||
| text = fmt.Sprintf("[%s] Issue submitted by %s", p.Repository.FullName, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue submitted by %s", repoLink, senderLink) | |||||
| title = titleLink | title = titleLink | ||||
| attachmentText = SlackTextFormatter(p.Issue.Body) | attachmentText = SlackTextFormatter(p.Issue.Body) | ||||
| case api.HookIssueClosed: | case api.HookIssueClosed: | ||||
| text = fmt.Sprintf("[%s] Issue closed: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue closed: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueReOpened: | case api.HookIssueReOpened: | ||||
| text = fmt.Sprintf("[%s] Issue re-opened: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue re-opened: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueEdited: | case api.HookIssueEdited: | ||||
| text = fmt.Sprintf("[%s] Issue edited: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue edited: %s by %s", repoLink, titleLink, senderLink) | |||||
| attachmentText = SlackTextFormatter(p.Issue.Body) | attachmentText = SlackTextFormatter(p.Issue.Body) | ||||
| case api.HookIssueAssigned: | case api.HookIssueAssigned: | ||||
| text = fmt.Sprintf("[%s] Issue assigned to %s: %s by %s", p.Repository.FullName, | |||||
| text = fmt.Sprintf("[%s] Issue assigned to %s: %s by %s", repoLink, | |||||
| SlackLinkFormatter(setting.AppURL+p.Issue.Assignee.UserName, p.Issue.Assignee.UserName), | SlackLinkFormatter(setting.AppURL+p.Issue.Assignee.UserName, p.Issue.Assignee.UserName), | ||||
| titleLink, senderLink) | titleLink, senderLink) | ||||
| case api.HookIssueUnassigned: | case api.HookIssueUnassigned: | ||||
| text = fmt.Sprintf("[%s] Issue unassigned: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue unassigned: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueLabelUpdated: | case api.HookIssueLabelUpdated: | ||||
| text = fmt.Sprintf("[%s] Issue labels updated: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue labels updated: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueLabelCleared: | case api.HookIssueLabelCleared: | ||||
| text = fmt.Sprintf("[%s] Issue labels cleared: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue labels cleared: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueSynchronized: | case api.HookIssueSynchronized: | ||||
| text = fmt.Sprintf("[%s] Issue synchronized: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue synchronized: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueMilestoned: | case api.HookIssueMilestoned: | ||||
| text = fmt.Sprintf("[%s] Issue milestoned: #%s %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue milestoned: #%s %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueDemilestoned: | case api.HookIssueDemilestoned: | ||||
| text = fmt.Sprintf("[%s] Issue milestone cleared: #%s %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Issue milestone cleared: #%s %s", repoLink, titleLink, senderLink) | |||||
| } | } | ||||
| return &SlackPayload{ | return &SlackPayload{ | ||||
| @@ -194,18 +195,19 @@ func getSlackIssueCommentPayload(p *api.IssueCommentPayload, slack *SlackMeta) ( | |||||
| senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | ||||
| titleLink := SlackLinkFormatter(fmt.Sprintf("%s/issues/%d#%s", p.Repository.HTMLURL, p.Issue.Index, models.CommentHashTag(p.Comment.ID)), | titleLink := SlackLinkFormatter(fmt.Sprintf("%s/issues/%d#%s", p.Repository.HTMLURL, p.Issue.Index, models.CommentHashTag(p.Comment.ID)), | ||||
| fmt.Sprintf("#%d %s", p.Issue.Index, p.Issue.Title)) | fmt.Sprintf("#%d %s", p.Issue.Index, p.Issue.Title)) | ||||
| repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName) | |||||
| var text, title, attachmentText string | var text, title, attachmentText string | ||||
| switch p.Action { | switch p.Action { | ||||
| case api.HookIssueCommentCreated: | case api.HookIssueCommentCreated: | ||||
| text = fmt.Sprintf("[%s] New comment created by %s", p.Repository.FullName, senderLink) | |||||
| text = fmt.Sprintf("[%s] New comment created by %s", repoLink, senderLink) | |||||
| title = titleLink | title = titleLink | ||||
| attachmentText = SlackTextFormatter(p.Comment.Body) | attachmentText = SlackTextFormatter(p.Comment.Body) | ||||
| case api.HookIssueCommentEdited: | case api.HookIssueCommentEdited: | ||||
| text = fmt.Sprintf("[%s] Comment edited by %s", p.Repository.FullName, senderLink) | |||||
| text = fmt.Sprintf("[%s] Comment edited by %s", repoLink, senderLink) | |||||
| title = titleLink | title = titleLink | ||||
| attachmentText = SlackTextFormatter(p.Comment.Body) | attachmentText = SlackTextFormatter(p.Comment.Body) | ||||
| case api.HookIssueCommentDeleted: | case api.HookIssueCommentDeleted: | ||||
| text = fmt.Sprintf("[%s] Comment deleted by %s", p.Repository.FullName, senderLink) | |||||
| text = fmt.Sprintf("[%s] Comment deleted by %s", repoLink, senderLink) | |||||
| title = SlackLinkFormatter(fmt.Sprintf("%s/issues/%d", p.Repository.HTMLURL, p.Issue.Index), | title = SlackLinkFormatter(fmt.Sprintf("%s/issues/%d", p.Repository.HTMLURL, p.Issue.Index), | ||||
| fmt.Sprintf("#%d %s", p.Issue.Index, p.Issue.Title)) | fmt.Sprintf("#%d %s", p.Issue.Index, p.Issue.Title)) | ||||
| attachmentText = SlackTextFormatter(p.Comment.Body) | attachmentText = SlackTextFormatter(p.Comment.Body) | ||||
| @@ -225,7 +227,7 @@ func getSlackIssueCommentPayload(p *api.IssueCommentPayload, slack *SlackMeta) ( | |||||
| } | } | ||||
| func getSlackReleasePayload(p *api.ReleasePayload, slack *SlackMeta) (*SlackPayload, error) { | func getSlackReleasePayload(p *api.ReleasePayload, slack *SlackMeta) (*SlackPayload, error) { | ||||
| repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.Name) | |||||
| repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName) | |||||
| refLink := SlackLinkFormatter(p.Repository.HTMLURL+"/src/"+p.Release.TagName, p.Release.TagName) | refLink := SlackLinkFormatter(p.Repository.HTMLURL+"/src/"+p.Release.TagName, p.Release.TagName) | ||||
| var text string | var text string | ||||
| @@ -264,7 +266,7 @@ func getSlackPushPayload(p *api.PushPayload, slack *SlackMeta) (*SlackPayload, e | |||||
| commitString = commitDesc | commitString = commitDesc | ||||
| } | } | ||||
| repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name) | |||||
| repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.FullName) | |||||
| branchLink := SlackLinkToRef(p.Repo.HTMLURL, p.Ref) | branchLink := SlackLinkToRef(p.Repo.HTMLURL, p.Ref) | ||||
| text := fmt.Sprintf("[%s:%s] %s pushed by %s", repoLink, branchLink, commitString, p.Pusher.UserName) | text := fmt.Sprintf("[%s:%s] %s pushed by %s", repoLink, branchLink, commitString, p.Pusher.UserName) | ||||
| @@ -294,43 +296,44 @@ func getSlackPullRequestPayload(p *api.PullRequestPayload, slack *SlackMeta) (*S | |||||
| senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | ||||
| titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index), | titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index), | ||||
| fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title)) | fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title)) | ||||
| repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName) | |||||
| var text, title, attachmentText string | var text, title, attachmentText string | ||||
| switch p.Action { | switch p.Action { | ||||
| case api.HookIssueOpened: | case api.HookIssueOpened: | ||||
| text = fmt.Sprintf("[%s] Pull request submitted by %s", p.Repository.FullName, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request submitted by %s", repoLink, senderLink) | |||||
| title = titleLink | title = titleLink | ||||
| attachmentText = SlackTextFormatter(p.PullRequest.Body) | attachmentText = SlackTextFormatter(p.PullRequest.Body) | ||||
| case api.HookIssueClosed: | case api.HookIssueClosed: | ||||
| if p.PullRequest.HasMerged { | if p.PullRequest.HasMerged { | ||||
| text = fmt.Sprintf("[%s] Pull request merged: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request merged: %s by %s", repoLink, titleLink, senderLink) | |||||
| } else { | } else { | ||||
| text = fmt.Sprintf("[%s] Pull request closed: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request closed: %s by %s", repoLink, titleLink, senderLink) | |||||
| } | } | ||||
| case api.HookIssueReOpened: | case api.HookIssueReOpened: | ||||
| text = fmt.Sprintf("[%s] Pull request re-opened: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request re-opened: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueEdited: | case api.HookIssueEdited: | ||||
| text = fmt.Sprintf("[%s] Pull request edited: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request edited: %s by %s", repoLink, titleLink, senderLink) | |||||
| attachmentText = SlackTextFormatter(p.PullRequest.Body) | attachmentText = SlackTextFormatter(p.PullRequest.Body) | ||||
| case api.HookIssueAssigned: | case api.HookIssueAssigned: | ||||
| list := make([]string, len(p.PullRequest.Assignees)) | list := make([]string, len(p.PullRequest.Assignees)) | ||||
| for i, user := range p.PullRequest.Assignees { | for i, user := range p.PullRequest.Assignees { | ||||
| list[i] = SlackLinkFormatter(setting.AppURL+user.UserName, user.UserName) | list[i] = SlackLinkFormatter(setting.AppURL+user.UserName, user.UserName) | ||||
| } | } | ||||
| text = fmt.Sprintf("[%s] Pull request assigned to %s: %s by %s", p.Repository.FullName, | |||||
| text = fmt.Sprintf("[%s] Pull request assigned to %s: %s by %s", repoLink, | |||||
| strings.Join(list, ", "), | strings.Join(list, ", "), | ||||
| titleLink, senderLink) | titleLink, senderLink) | ||||
| case api.HookIssueUnassigned: | case api.HookIssueUnassigned: | ||||
| text = fmt.Sprintf("[%s] Pull request unassigned: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request unassigned: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueLabelUpdated: | case api.HookIssueLabelUpdated: | ||||
| text = fmt.Sprintf("[%s] Pull request labels updated: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request labels updated: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueLabelCleared: | case api.HookIssueLabelCleared: | ||||
| text = fmt.Sprintf("[%s] Pull request labels cleared: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request labels cleared: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueSynchronized: | case api.HookIssueSynchronized: | ||||
| text = fmt.Sprintf("[%s] Pull request synchronized: %s by %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request synchronized: %s by %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueMilestoned: | case api.HookIssueMilestoned: | ||||
| text = fmt.Sprintf("[%s] Pull request milestoned: #%s %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request milestoned: #%s %s", repoLink, titleLink, senderLink) | |||||
| case api.HookIssueDemilestoned: | case api.HookIssueDemilestoned: | ||||
| text = fmt.Sprintf("[%s] Pull request milestone cleared: #%s %s", p.Repository.FullName, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request milestone cleared: #%s %s", repoLink, titleLink, senderLink) | |||||
| } | } | ||||
| return &SlackPayload{ | return &SlackPayload{ | ||||
| @@ -350,6 +353,7 @@ func getSlackPullRequestApprovalPayload(p *api.PullRequestPayload, slack *SlackM | |||||
| senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | ||||
| titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index), | titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index), | ||||
| fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title)) | fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title)) | ||||
| repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName) | |||||
| var text, title, attachmentText string | var text, title, attachmentText string | ||||
| switch p.Action { | switch p.Action { | ||||
| case api.HookIssueSynchronized: | case api.HookIssueSynchronized: | ||||
| @@ -358,7 +362,7 @@ func getSlackPullRequestApprovalPayload(p *api.PullRequestPayload, slack *SlackM | |||||
| return nil, err | return nil, err | ||||
| } | } | ||||
| text = fmt.Sprintf("[%s] Pull request review %s : %s by %s", p.Repository.FullName, action, titleLink, senderLink) | |||||
| text = fmt.Sprintf("[%s] Pull request review %s : %s by %s", repoLink, action, titleLink, senderLink) | |||||
| } | } | ||||
| return &SlackPayload{ | return &SlackPayload{ | ||||
| @@ -376,13 +380,14 @@ func getSlackPullRequestApprovalPayload(p *api.PullRequestPayload, slack *SlackM | |||||
| func getSlackRepositoryPayload(p *api.RepositoryPayload, slack *SlackMeta) (*SlackPayload, error) { | func getSlackRepositoryPayload(p *api.RepositoryPayload, slack *SlackMeta) (*SlackPayload, error) { | ||||
| senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName) | ||||
| repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName) | |||||
| var text, title, attachmentText string | var text, title, attachmentText string | ||||
| switch p.Action { | switch p.Action { | ||||
| case api.HookRepoCreated: | case api.HookRepoCreated: | ||||
| text = fmt.Sprintf("[%s] Repository created by %s", p.Repository.FullName, senderLink) | |||||
| text = fmt.Sprintf("[%s] Repository created by %s", repoLink, senderLink) | |||||
| title = p.Repository.HTMLURL | title = p.Repository.HTMLURL | ||||
| case api.HookRepoDeleted: | case api.HookRepoDeleted: | ||||
| text = fmt.Sprintf("[%s] Repository deleted by %s", p.Repository.FullName, senderLink) | |||||
| text = fmt.Sprintf("[%s] Repository deleted by %s", repoLink, senderLink) | |||||
| } | } | ||||
| return &SlackPayload{ | return &SlackPayload{ | ||||