From de226ad79afd92d0316b769e9ff47b759080b38f Mon Sep 17 00:00:00 2001 From: ZeroDeng Date: Tue, 21 Oct 2025 13:14:55 +0800 Subject: [PATCH] Fix Bark webhook payload formatting and test adjustments Refine string formatting in Bark webhook handler for repo events, handle cases with nil repository in package payloads, and update related test assertions for clarity. --- services/webhook/bark.go | 13 +++++++++---- services/webhook/bark_test.go | 7 ++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/services/webhook/bark.go b/services/webhook/bark.go index 00d9a2d9e4..2742891aee 100644 --- a/services/webhook/bark.go +++ b/services/webhook/bark.go @@ -230,10 +230,10 @@ func (bc barkConvertor) Repository(p *api.RepositoryPayload) (BarkPayload, error switch p.Action { case api.HookRepoCreated: title = fmt.Sprintf("[%s] Repository created", p.Repository.FullName) - body = p.Sender.UserName + "created repository" + body = p.Sender.UserName + " created repository" case api.HookRepoDeleted: title = fmt.Sprintf("[%s] Repository deleted", p.Repository.FullName) - body = p.Sender.UserName + "deleted repository" + body = p.Sender.UserName + " deleted repository" default: return BarkPayload{}, nil } @@ -266,7 +266,12 @@ func (bc barkConvertor) Release(p *api.ReleasePayload) (BarkPayload, error) { // Package implements PayloadConvertor Package method func (bc barkConvertor) Package(p *api.PackagePayload) (BarkPayload, error) { - title := fmt.Sprintf("[%s] Package %s", p.Repository.FullName, p.Action) + repoFullName := "" + if p.Repository != nil { + repoFullName = p.Repository.FullName + } + + title := fmt.Sprintf("[%s] Package %s", repoFullName, p.Action) body := fmt.Sprintf("%s %s package %s:%s", p.Sender.UserName, p.Action, p.Package.Name, p.Package.Version) @@ -274,7 +279,7 @@ func (bc barkConvertor) Package(p *api.PackagePayload) (BarkPayload, error) { Title: title, Body: body, URL: p.Package.HTMLURL, - Group: bc.getGroup(p.Repository.FullName), + Group: bc.getGroup(repoFullName), Sound: bc.Sound, }, nil } diff --git a/services/webhook/bark_test.go b/services/webhook/bark_test.go index 5d5eea0de2..821f8974cc 100644 --- a/services/webhook/bark_test.go +++ b/services/webhook/bark_test.go @@ -124,6 +124,7 @@ func TestBarkPayload(t *testing.T) { t.Run("Review", func(t *testing.T) { p := pullRequestTestPayload() p.Action = api.HookIssueReviewed + p.Review = nil // Remove review content for clean test pl, err := bc.Review(p, webhook_module.HookEventPullRequestReviewApproved) require.NoError(t, err) @@ -152,9 +153,9 @@ func TestBarkPayload(t *testing.T) { pl, err := bc.Package(p) require.NoError(t, err) - assert.Equal(t, "[test/repo] Package published", pl.Title) - assert.Contains(t, pl.Body, "user1 published package") - assert.Equal(t, "test/repo", pl.Group) + assert.Equal(t, "[] Package created", pl.Title) + assert.Contains(t, pl.Body, "user1 created package") + assert.Empty(t, pl.Group) }) t.Run("Wiki", func(t *testing.T) {