Skip to content

Commit d8583ed

Browse files
GiteaBotjolheiser
andauthored
Fix release URL in webhooks (#27182) (#27184)
Backport #27182 by @jolheiser Resolves #27180 `URL` points to the API URL, `HTMLURL` points to the web page. Notably, however, for PRs they are the same URL. I switched them to use HTMLURL to match the rest of the codebase terminology. Co-authored-by: John Olheiser <[email protected]>
1 parent d99479c commit d8583ed

9 files changed

+9
-9
lines changed

services/webhook/dingtalk.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ func (d *DingtalkPayload) Repository(p *api.RepositoryPayload) (api.Payloader, e
170170
func (d *DingtalkPayload) Release(p *api.ReleasePayload) (api.Payloader, error) {
171171
text, _ := getReleasePayloadInfo(p, noneLinkFormatter, true)
172172

173-
return createDingtalkPayload(text, text, "view release", p.Release.URL), nil
173+
return createDingtalkPayload(text, text, "view release", p.Release.HTMLURL), nil
174174
}
175175

176176
func createDingtalkPayload(title, text, singleTitle, singleURL string) *DingtalkPayload {

services/webhook/dingtalk_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func TestDingTalkPayload(t *testing.T) {
238238
assert.Equal(t, "[test/repo] Release created: v1.0 by user1", pl.(*DingtalkPayload).ActionCard.Text)
239239
assert.Equal(t, "[test/repo] Release created: v1.0 by user1", pl.(*DingtalkPayload).ActionCard.Title)
240240
assert.Equal(t, "view release", pl.(*DingtalkPayload).ActionCard.SingleTitle)
241-
assert.Equal(t, "http://localhost:3000/api/v1/repos/test/repo/releases/2", parseRealSingleURL(pl.(*DingtalkPayload).ActionCard.SingleURL))
241+
assert.Equal(t, "http://localhost:3000/test/repo/releases/tag/v1.0", parseRealSingleURL(pl.(*DingtalkPayload).ActionCard.SingleURL))
242242
})
243243
}
244244

services/webhook/discord.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ func (d *DiscordPayload) Wiki(p *api.WikiPayload) (api.Payloader, error) {
253253
func (d *DiscordPayload) Release(p *api.ReleasePayload) (api.Payloader, error) {
254254
text, color := getReleasePayloadInfo(p, noneLinkFormatter, false)
255255

256-
return d.createPayload(p.Sender, text, p.Release.Note, p.Release.URL, color), nil
256+
return d.createPayload(p.Sender, text, p.Release.Note, p.Release.HTMLURL, color), nil
257257
}
258258

259259
// GetDiscordPayload converts a discord webhook into a DiscordPayload

services/webhook/discord_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ func TestDiscordPayload(t *testing.T) {
270270
assert.Len(t, pl.(*DiscordPayload).Embeds, 1)
271271
assert.Equal(t, "[test/repo] Release created: v1.0", pl.(*DiscordPayload).Embeds[0].Title)
272272
assert.Equal(t, "Note of first stable release", pl.(*DiscordPayload).Embeds[0].Description)
273-
assert.Equal(t, "http://localhost:3000/api/v1/repos/test/repo/releases/2", pl.(*DiscordPayload).Embeds[0].URL)
273+
assert.Equal(t, "http://localhost:3000/test/repo/releases/tag/v1.0", pl.(*DiscordPayload).Embeds[0].URL)
274274
assert.Equal(t, p.Sender.UserName, pl.(*DiscordPayload).Embeds[0].Author.Name)
275275
assert.Equal(t, setting.AppURL+p.Sender.UserName, pl.(*DiscordPayload).Embeds[0].Author.URL)
276276
assert.Equal(t, p.Sender.AvatarURL, pl.(*DiscordPayload).Embeds[0].Author.IconURL)

services/webhook/general_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ func pullReleaseTestPayload() *api.ReleasePayload {
228228
Target: "master",
229229
Title: "First stable release",
230230
Note: "Note of first stable release",
231-
URL: "http://localhost:3000/api/v1/repos/test/repo/releases/2",
231+
HTMLURL: "http://localhost:3000/test/repo/releases/tag/v1.0",
232232
},
233233
}
234234
}

services/webhook/matrix.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ func (m *MatrixPayload) PullRequest(p *api.PullRequestPayload) (api.Payloader, e
177177
func (m *MatrixPayload) Review(p *api.PullRequestPayload, event webhook_module.HookEventType) (api.Payloader, error) {
178178
senderLink := MatrixLinkFormatter(setting.AppURL+url.PathEscape(p.Sender.UserName), p.Sender.UserName)
179179
title := fmt.Sprintf("#%d %s", p.Index, p.PullRequest.Title)
180-
titleLink := MatrixLinkFormatter(p.PullRequest.URL, title)
180+
titleLink := MatrixLinkFormatter(p.PullRequest.HTMLURL, title)
181181
repoLink := MatrixLinkFormatter(p.Repository.HTMLURL, p.Repository.FullName)
182182
var text string
183183

services/webhook/msteams.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ func (m *MSTeamsPayload) Release(p *api.ReleasePayload) (api.Payloader, error) {
290290
p.Sender,
291291
title,
292292
"",
293-
p.Release.URL,
293+
p.Release.HTMLURL,
294294
color,
295295
&MSTeamsFact{"Tag:", p.Release.TagName},
296296
), nil

services/webhook/msteams_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ func TestMSTeamsPayload(t *testing.T) {
429429
}
430430
assert.Len(t, pl.(*MSTeamsPayload).PotentialAction, 1)
431431
assert.Len(t, pl.(*MSTeamsPayload).PotentialAction[0].Targets, 1)
432-
assert.Equal(t, "http://localhost:3000/api/v1/repos/test/repo/releases/2", pl.(*MSTeamsPayload).PotentialAction[0].Targets[0].URI)
432+
assert.Equal(t, "http://localhost:3000/test/repo/releases/tag/v1.0", pl.(*MSTeamsPayload).PotentialAction[0].Targets[0].URI)
433433
})
434434
}
435435

services/webhook/slack.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ func (s *SlackPayload) PullRequest(p *api.PullRequestPayload) (api.Payloader, er
223223
attachments = append(attachments, SlackAttachment{
224224
Color: fmt.Sprintf("%x", color),
225225
Title: issueTitle,
226-
TitleLink: p.PullRequest.URL,
226+
TitleLink: p.PullRequest.HTMLURL,
227227
Text: attachmentText,
228228
})
229229
}

0 commit comments

Comments
 (0)