From 76b6e94b5b9c3d4414e8d5edf6316ed642411565 Mon Sep 17 00:00:00 2001 From: Giteabot Date: Sat, 3 Jan 2026 11:06:10 +0800 Subject: [PATCH] Always honor user's choice for "delete branch after merge" (#36281) (#36286) Backport #36281 by wxiaoguang Fix #36280 Co-authored-by: wxiaoguang --- routers/web/repo/pull.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go index f55f0b6007..ecc0ffc9c8 100644 --- a/routers/web/repo/pull.go +++ b/routers/web/repo/pull.go @@ -32,6 +32,7 @@ import ( "code.gitea.io/gitea/modules/graceful" issue_template "code.gitea.io/gitea/modules/issue/template" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/optional" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/templates" "code.gitea.io/gitea/modules/util" @@ -1100,11 +1101,9 @@ func MergePullRequest(ctx *context.Context) { message += "\n\n" + form.MergeMessageField } - deleteBranchAfterMerge, err := pull_service.ShouldDeleteBranchAfterMerge(ctx, form.DeleteBranchAfterMerge, ctx.Repo.Repository, pr) - if err != nil { - ctx.ServerError("ShouldDeleteBranchAfterMerge", err) - return - } + // There is always a checkbox on the UI (the DeleteBranchAfterMerge is nil if the checkbox is not checked), + // just use the user's choice, don't use pull_service.ShouldDeleteBranchAfterMerge to decide + deleteBranchAfterMerge := optional.FromPtr(form.DeleteBranchAfterMerge).Value() if form.MergeWhenChecksSucceed { // delete all scheduled auto merges