Skip to content

Commit 8f8c250

Browse files
authored
Make consistent links to repository in the Slack/Mattermost notificiations (#9205)
1 parent 15a5c10 commit 8f8c250

File tree

1 file changed

+38
-33
lines changed

1 file changed

+38
-33
lines changed

modules/webhook/slack.go

Lines changed: 38 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func SlackLinkToRef(repoURL, ref string) string {
104104
}
105105

106106
func getSlackCreatePayload(p *api.CreatePayload, slack *SlackMeta) (*SlackPayload, error) {
107-
repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name)
107+
repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.FullName)
108108
refLink := SlackLinkToRef(p.Repo.HTMLURL, p.Ref)
109109
text := fmt.Sprintf("[%s:%s] %s created by %s", repoLink, refLink, p.RefType, p.Sender.UserName)
110110

@@ -119,7 +119,7 @@ func getSlackCreatePayload(p *api.CreatePayload, slack *SlackMeta) (*SlackPayloa
119119
// getSlackDeletePayload composes Slack payload for delete a branch or tag.
120120
func getSlackDeletePayload(p *api.DeletePayload, slack *SlackMeta) (*SlackPayload, error) {
121121
refName := git.RefEndName(p.Ref)
122-
repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name)
122+
repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.FullName)
123123
text := fmt.Sprintf("[%s:%s] %s deleted by %s", repoLink, refName, p.RefType, p.Sender.UserName)
124124
return &SlackPayload{
125125
Channel: slack.Channel,
@@ -146,35 +146,36 @@ func getSlackIssuesPayload(p *api.IssuePayload, slack *SlackMeta) (*SlackPayload
146146
senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName)
147147
titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index),
148148
fmt.Sprintf("#%d %s", p.Index, p.Issue.Title))
149+
repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName)
149150
var text, title, attachmentText string
150151
switch p.Action {
151152
case api.HookIssueOpened:
152-
text = fmt.Sprintf("[%s] Issue submitted by %s", p.Repository.FullName, senderLink)
153+
text = fmt.Sprintf("[%s] Issue submitted by %s", repoLink, senderLink)
153154
title = titleLink
154155
attachmentText = SlackTextFormatter(p.Issue.Body)
155156
case api.HookIssueClosed:
156-
text = fmt.Sprintf("[%s] Issue closed: %s by %s", p.Repository.FullName, titleLink, senderLink)
157+
text = fmt.Sprintf("[%s] Issue closed: %s by %s", repoLink, titleLink, senderLink)
157158
case api.HookIssueReOpened:
158-
text = fmt.Sprintf("[%s] Issue re-opened: %s by %s", p.Repository.FullName, titleLink, senderLink)
159+
text = fmt.Sprintf("[%s] Issue re-opened: %s by %s", repoLink, titleLink, senderLink)
159160
case api.HookIssueEdited:
160-
text = fmt.Sprintf("[%s] Issue edited: %s by %s", p.Repository.FullName, titleLink, senderLink)
161+
text = fmt.Sprintf("[%s] Issue edited: %s by %s", repoLink, titleLink, senderLink)
161162
attachmentText = SlackTextFormatter(p.Issue.Body)
162163
case api.HookIssueAssigned:
163-
text = fmt.Sprintf("[%s] Issue assigned to %s: %s by %s", p.Repository.FullName,
164+
text = fmt.Sprintf("[%s] Issue assigned to %s: %s by %s", repoLink,
164165
SlackLinkFormatter(setting.AppURL+p.Issue.Assignee.UserName, p.Issue.Assignee.UserName),
165166
titleLink, senderLink)
166167
case api.HookIssueUnassigned:
167-
text = fmt.Sprintf("[%s] Issue unassigned: %s by %s", p.Repository.FullName, titleLink, senderLink)
168+
text = fmt.Sprintf("[%s] Issue unassigned: %s by %s", repoLink, titleLink, senderLink)
168169
case api.HookIssueLabelUpdated:
169-
text = fmt.Sprintf("[%s] Issue labels updated: %s by %s", p.Repository.FullName, titleLink, senderLink)
170+
text = fmt.Sprintf("[%s] Issue labels updated: %s by %s", repoLink, titleLink, senderLink)
170171
case api.HookIssueLabelCleared:
171-
text = fmt.Sprintf("[%s] Issue labels cleared: %s by %s", p.Repository.FullName, titleLink, senderLink)
172+
text = fmt.Sprintf("[%s] Issue labels cleared: %s by %s", repoLink, titleLink, senderLink)
172173
case api.HookIssueSynchronized:
173-
text = fmt.Sprintf("[%s] Issue synchronized: %s by %s", p.Repository.FullName, titleLink, senderLink)
174+
text = fmt.Sprintf("[%s] Issue synchronized: %s by %s", repoLink, titleLink, senderLink)
174175
case api.HookIssueMilestoned:
175-
text = fmt.Sprintf("[%s] Issue milestoned: #%s %s", p.Repository.FullName, titleLink, senderLink)
176+
text = fmt.Sprintf("[%s] Issue milestoned: #%s %s", repoLink, titleLink, senderLink)
176177
case api.HookIssueDemilestoned:
177-
text = fmt.Sprintf("[%s] Issue milestone cleared: #%s %s", p.Repository.FullName, titleLink, senderLink)
178+
text = fmt.Sprintf("[%s] Issue milestone cleared: #%s %s", repoLink, titleLink, senderLink)
178179
}
179180

180181
return &SlackPayload{
@@ -194,18 +195,19 @@ func getSlackIssueCommentPayload(p *api.IssueCommentPayload, slack *SlackMeta) (
194195
senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName)
195196
titleLink := SlackLinkFormatter(fmt.Sprintf("%s/issues/%d#%s", p.Repository.HTMLURL, p.Issue.Index, models.CommentHashTag(p.Comment.ID)),
196197
fmt.Sprintf("#%d %s", p.Issue.Index, p.Issue.Title))
198+
repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName)
197199
var text, title, attachmentText string
198200
switch p.Action {
199201
case api.HookIssueCommentCreated:
200-
text = fmt.Sprintf("[%s] New comment created by %s", p.Repository.FullName, senderLink)
202+
text = fmt.Sprintf("[%s] New comment created by %s", repoLink, senderLink)
201203
title = titleLink
202204
attachmentText = SlackTextFormatter(p.Comment.Body)
203205
case api.HookIssueCommentEdited:
204-
text = fmt.Sprintf("[%s] Comment edited by %s", p.Repository.FullName, senderLink)
206+
text = fmt.Sprintf("[%s] Comment edited by %s", repoLink, senderLink)
205207
title = titleLink
206208
attachmentText = SlackTextFormatter(p.Comment.Body)
207209
case api.HookIssueCommentDeleted:
208-
text = fmt.Sprintf("[%s] Comment deleted by %s", p.Repository.FullName, senderLink)
210+
text = fmt.Sprintf("[%s] Comment deleted by %s", repoLink, senderLink)
209211
title = SlackLinkFormatter(fmt.Sprintf("%s/issues/%d", p.Repository.HTMLURL, p.Issue.Index),
210212
fmt.Sprintf("#%d %s", p.Issue.Index, p.Issue.Title))
211213
attachmentText = SlackTextFormatter(p.Comment.Body)
@@ -225,7 +227,7 @@ func getSlackIssueCommentPayload(p *api.IssueCommentPayload, slack *SlackMeta) (
225227
}
226228

227229
func getSlackReleasePayload(p *api.ReleasePayload, slack *SlackMeta) (*SlackPayload, error) {
228-
repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.Name)
230+
repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName)
229231
refLink := SlackLinkFormatter(p.Repository.HTMLURL+"/src/"+p.Release.TagName, p.Release.TagName)
230232
var text string
231233

@@ -264,7 +266,7 @@ func getSlackPushPayload(p *api.PushPayload, slack *SlackMeta) (*SlackPayload, e
264266
commitString = commitDesc
265267
}
266268

267-
repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.Name)
269+
repoLink := SlackLinkFormatter(p.Repo.HTMLURL, p.Repo.FullName)
268270
branchLink := SlackLinkToRef(p.Repo.HTMLURL, p.Ref)
269271
text := fmt.Sprintf("[%s:%s] %s pushed by %s", repoLink, branchLink, commitString, p.Pusher.UserName)
270272

@@ -294,43 +296,44 @@ func getSlackPullRequestPayload(p *api.PullRequestPayload, slack *SlackMeta) (*S
294296
senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName)
295297
titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index),
296298
fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title))
299+
repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName)
297300
var text, title, attachmentText string
298301
switch p.Action {
299302
case api.HookIssueOpened:
300-
text = fmt.Sprintf("[%s] Pull request submitted by %s", p.Repository.FullName, senderLink)
303+
text = fmt.Sprintf("[%s] Pull request submitted by %s", repoLink, senderLink)
301304
title = titleLink
302305
attachmentText = SlackTextFormatter(p.PullRequest.Body)
303306
case api.HookIssueClosed:
304307
if p.PullRequest.HasMerged {
305-
text = fmt.Sprintf("[%s] Pull request merged: %s by %s", p.Repository.FullName, titleLink, senderLink)
308+
text = fmt.Sprintf("[%s] Pull request merged: %s by %s", repoLink, titleLink, senderLink)
306309
} else {
307-
text = fmt.Sprintf("[%s] Pull request closed: %s by %s", p.Repository.FullName, titleLink, senderLink)
310+
text = fmt.Sprintf("[%s] Pull request closed: %s by %s", repoLink, titleLink, senderLink)
308311
}
309312
case api.HookIssueReOpened:
310-
text = fmt.Sprintf("[%s] Pull request re-opened: %s by %s", p.Repository.FullName, titleLink, senderLink)
313+
text = fmt.Sprintf("[%s] Pull request re-opened: %s by %s", repoLink, titleLink, senderLink)
311314
case api.HookIssueEdited:
312-
text = fmt.Sprintf("[%s] Pull request edited: %s by %s", p.Repository.FullName, titleLink, senderLink)
315+
text = fmt.Sprintf("[%s] Pull request edited: %s by %s", repoLink, titleLink, senderLink)
313316
attachmentText = SlackTextFormatter(p.PullRequest.Body)
314317
case api.HookIssueAssigned:
315318
list := make([]string, len(p.PullRequest.Assignees))
316319
for i, user := range p.PullRequest.Assignees {
317320
list[i] = SlackLinkFormatter(setting.AppURL+user.UserName, user.UserName)
318321
}
319-
text = fmt.Sprintf("[%s] Pull request assigned to %s: %s by %s", p.Repository.FullName,
322+
text = fmt.Sprintf("[%s] Pull request assigned to %s: %s by %s", repoLink,
320323
strings.Join(list, ", "),
321324
titleLink, senderLink)
322325
case api.HookIssueUnassigned:
323-
text = fmt.Sprintf("[%s] Pull request unassigned: %s by %s", p.Repository.FullName, titleLink, senderLink)
326+
text = fmt.Sprintf("[%s] Pull request unassigned: %s by %s", repoLink, titleLink, senderLink)
324327
case api.HookIssueLabelUpdated:
325-
text = fmt.Sprintf("[%s] Pull request labels updated: %s by %s", p.Repository.FullName, titleLink, senderLink)
328+
text = fmt.Sprintf("[%s] Pull request labels updated: %s by %s", repoLink, titleLink, senderLink)
326329
case api.HookIssueLabelCleared:
327-
text = fmt.Sprintf("[%s] Pull request labels cleared: %s by %s", p.Repository.FullName, titleLink, senderLink)
330+
text = fmt.Sprintf("[%s] Pull request labels cleared: %s by %s", repoLink, titleLink, senderLink)
328331
case api.HookIssueSynchronized:
329-
text = fmt.Sprintf("[%s] Pull request synchronized: %s by %s", p.Repository.FullName, titleLink, senderLink)
332+
text = fmt.Sprintf("[%s] Pull request synchronized: %s by %s", repoLink, titleLink, senderLink)
330333
case api.HookIssueMilestoned:
331-
text = fmt.Sprintf("[%s] Pull request milestoned: #%s %s", p.Repository.FullName, titleLink, senderLink)
334+
text = fmt.Sprintf("[%s] Pull request milestoned: #%s %s", repoLink, titleLink, senderLink)
332335
case api.HookIssueDemilestoned:
333-
text = fmt.Sprintf("[%s] Pull request milestone cleared: #%s %s", p.Repository.FullName, titleLink, senderLink)
336+
text = fmt.Sprintf("[%s] Pull request milestone cleared: #%s %s", repoLink, titleLink, senderLink)
334337
}
335338

336339
return &SlackPayload{
@@ -350,6 +353,7 @@ func getSlackPullRequestApprovalPayload(p *api.PullRequestPayload, slack *SlackM
350353
senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName)
351354
titleLink := SlackLinkFormatter(fmt.Sprintf("%s/pulls/%d", p.Repository.HTMLURL, p.Index),
352355
fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title))
356+
repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName)
353357
var text, title, attachmentText string
354358
switch p.Action {
355359
case api.HookIssueSynchronized:
@@ -358,7 +362,7 @@ func getSlackPullRequestApprovalPayload(p *api.PullRequestPayload, slack *SlackM
358362
return nil, err
359363
}
360364

361-
text = fmt.Sprintf("[%s] Pull request review %s : %s by %s", p.Repository.FullName, action, titleLink, senderLink)
365+
text = fmt.Sprintf("[%s] Pull request review %s : %s by %s", repoLink, action, titleLink, senderLink)
362366
}
363367

364368
return &SlackPayload{
@@ -376,13 +380,14 @@ func getSlackPullRequestApprovalPayload(p *api.PullRequestPayload, slack *SlackM
376380

377381
func getSlackRepositoryPayload(p *api.RepositoryPayload, slack *SlackMeta) (*SlackPayload, error) {
378382
senderLink := SlackLinkFormatter(setting.AppURL+p.Sender.UserName, p.Sender.UserName)
383+
repoLink := SlackLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName)
379384
var text, title, attachmentText string
380385
switch p.Action {
381386
case api.HookRepoCreated:
382-
text = fmt.Sprintf("[%s] Repository created by %s", p.Repository.FullName, senderLink)
387+
text = fmt.Sprintf("[%s] Repository created by %s", repoLink, senderLink)
383388
title = p.Repository.HTMLURL
384389
case api.HookRepoDeleted:
385-
text = fmt.Sprintf("[%s] Repository deleted by %s", p.Repository.FullName, senderLink)
390+
text = fmt.Sprintf("[%s] Repository deleted by %s", repoLink, senderLink)
386391
}
387392

388393
return &SlackPayload{

0 commit comments

Comments
 (0)