From 197e761471be17eb78700957f535c4b840fbc1c6 Mon Sep 17 00:00:00 2001 From: Giteabot Date: Wed, 21 Oct 2026 00:05:55 -0700 Subject: [PATCH] enhance(webhook): mention release assets in notifications (#39631) (#39912) Backport #39631 by @stackedbyaradhya Release webhook notifications never mention attached files, although the payload carries them. The summary shared by all webhook providers now appends an asset count like `(assets: 2)` for created and updated releases. Closes https://github.com/go-gitea/gitea/issues/39630 Co-authored-by: Aradhya Jain Co-authored-by: silverwind --- services/webhook/general.go | 4 ++++ services/webhook/general_test.go | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/services/webhook/general.go b/services/webhook/general.go index 82d56d03556..eb9ff483ff8 100644 --- a/services/webhook/general.go +++ b/services/webhook/general.go @@ -225,6 +225,10 @@ func getReleasePayloadInfo(p *api.ReleasePayload, linkFormatter linkFormatter, w text += " by " + linkFormatter(setting.AppURL+url.PathEscape(p.Sender.UserName), p.Sender.UserName) } + if p.Action != api.HookReleaseDeleted && len(p.Release.Attachments) > 0 { + text += fmt.Sprintf(" (assets: %d)", len(p.Release.Attachments)) + } + return text, color } diff --git a/services/webhook/general_test.go b/services/webhook/general_test.go index 879f0f620b7..bedc7b3b52f 100644 --- a/services/webhook/general_test.go +++ b/services/webhook/general_test.go @@ -579,6 +579,7 @@ func TestGetWikiPayloadInfo(t *testing.T) { func TestGetReleasePayloadInfo(t *testing.T) { p := pullReleaseTestPayload() + p.Release.Attachments = []*api.Attachment{{}, {}} cases := []struct { action api.HookReleaseAction @@ -587,12 +588,12 @@ func TestGetReleasePayloadInfo(t *testing.T) { }{ { api.HookReleasePublished, - "[test/repo] Release created: v1.0 by user1", + "[test/repo] Release created: v1.0 by user1 (assets: 2)", greenColor, }, { api.HookReleaseUpdated, - "[test/repo] Release updated: v1.0 by user1", + "[test/repo] Release updated: v1.0 by user1 (assets: 2)", yellowColor, }, {