From d4333eb043945f7a044d6fc1d57ff80dfeb632fd Mon Sep 17 00:00:00 2001 From: Mitrahsoft Date: Fri, 7 Aug 2026 20:36:16 +0530 Subject: [PATCH] fix(release): allow publishing drafts without target #35569 (#38800) ### Issue Fully publishing a draft release fails when the release does not have a target set. A draft release can be created without a target because the Git tag is not created while the release remains a draft. However, when the draft is published, Gitea attempts to resolve the release target to create the tag. If the target is empty, the publish operation fails. ### Solution Use the repository's default branch as the target when a draft release is published without an explicitly configured target. Also add a regression test to verify that a draft release without a target can be successfully published. Fixes #35569 --------- Signed-off-by: wxiaoguang Co-authored-by: wxiaoguang --- services/release/release.go | 3 ++- services/release/release_test.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/services/release/release.go b/services/release/release.go index 7c1eb18052..149eb0321c 100644 --- a/services/release/release.go +++ b/services/release/release.go @@ -102,7 +102,8 @@ func createTag(ctx context.Context, gitRepo *git.Repository, rel *repo_model.Rel } } - commit, err := gitRepo.GetCommit(ctx, rel.Target) + target := util.IfZero(rel.Target, rel.Repo.DefaultBranch) + commit, err := gitRepo.GetCommit(ctx, target) if err != nil { return false, err } diff --git a/services/release/release_test.go b/services/release/release_test.go index 434e65ab43..5dfaed384d 100644 --- a/services/release/release_test.go +++ b/services/release/release_test.go @@ -228,7 +228,7 @@ func TestRelease_Update(t *testing.T) { PublisherID: user.ID, Publisher: user, TagName: "v1.1.2", - Target: "master", + Target: "", Title: "v1.1.2 is released", Note: "v1.1.2 is released", IsDraft: true,