From 5ce594b62b3d0fdd4ead8ad21d0f133b364b44a3 Mon Sep 17 00:00:00 2001 From: Harri Date: Fri, 6 Mar 2026 10:41:26 +0200 Subject: [PATCH 1/2] fix(bbdc): resolve annotated tag object SHA to commit SHA before posting build status --- server/forge/bitbucketdatacenter/bitbucketdatacenter.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/forge/bitbucketdatacenter/bitbucketdatacenter.go b/server/forge/bitbucketdatacenter/bitbucketdatacenter.go index f182b3788d7..1d0c6863e00 100644 --- a/server/forge/bitbucketdatacenter/bitbucketdatacenter.go +++ b/server/forge/bitbucketdatacenter/bitbucketdatacenter.go @@ -579,6 +579,14 @@ func (c *client) updatePipelineFromCommits(ctx context.Context, u *model.User, r if err != nil { return nil, fmt.Errorf("unable to read commit: %w", err) } + + // Fix for https://github.com/woodpecker-ci/woodpecker/issues/6202: + // Update p.Commit so that build statuses are posted to the correct commit SHA. + if p.Event == model.EventTag && commit.ID != "" && commit.ID != p.Commit { + p.Commit = commit.ID + p.ForgeURL = fmt.Sprintf("%s/projects/%s/repos/%s/commits/%s", c.url, r.Owner, r.Name, commit.ID) + } + p.Message = commit.Message opts := &bb.CompareChangesOptions{} From 5c49ee3cf90fcd1b13bbae3dfe2ddd8c79886363 Mon Sep 17 00:00:00 2001 From: Harri Date: Fri, 6 Mar 2026 14:20:33 +0200 Subject: [PATCH 2/2] fix: update comment as per review --- server/forge/bitbucketdatacenter/bitbucketdatacenter.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/forge/bitbucketdatacenter/bitbucketdatacenter.go b/server/forge/bitbucketdatacenter/bitbucketdatacenter.go index 1d0c6863e00..ea36e8b2485 100644 --- a/server/forge/bitbucketdatacenter/bitbucketdatacenter.go +++ b/server/forge/bitbucketdatacenter/bitbucketdatacenter.go @@ -580,7 +580,7 @@ func (c *client) updatePipelineFromCommits(ctx context.Context, u *model.User, r return nil, fmt.Errorf("unable to read commit: %w", err) } - // Fix for https://github.com/woodpecker-ci/woodpecker/issues/6202: + // In Bitbucket Data Center, when using annotated tags, the webhook's ToHash is the tag object SHA, not the actual commit SHA. // Update p.Commit so that build statuses are posted to the correct commit SHA. if p.Event == model.EventTag && commit.ID != "" && commit.ID != p.Commit { p.Commit = commit.ID