From 27a40aeb6bb5b63696555499e9a14005b57de780 Mon Sep 17 00:00:00 2001 From: Giteabot Date: Mon, 17 Jul 2023 08:14:22 -0400 Subject: [PATCH] Avoid opening/closing PRs which are already merged (#25883) (#25903) Backport #25883 by @yp05327 We can select PRs to open/close them by one click, but we forgot to check whether it is merged. You can get an opening merged PR: ![image](https://github.com/go-gitea/gitea/assets/18380374/22c2e747-4bb9-4742-a9aa-ef39d5308bc5) You can confirm this in: https://try.gitea.io/yp05327/testrepo/pulls/5 Co-authored-by: yp05327 <576951401@qq.com> (cherry picked from commit 9159964ada44951ba5ee2a41e7bf2fe6f7f7993f) --- routers/web/repo/issue.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 140b437574..9b01068e34 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -2729,7 +2729,15 @@ func UpdateIssueStatus(ctx *context.Context) { ctx.ServerError("LoadRepositories", err) return } + if err := issues.LoadPullRequests(ctx); err != nil { + ctx.ServerError("LoadPullRequests", err) + return + } + for _, issue := range issues { + if issue.IsPull && issue.PullRequest.HasMerged { + continue + } if issue.IsClosed != isClosed { if err := issue_service.ChangeStatus(issue, ctx.Doer, "", isClosed); err != nil { if issues_model.IsErrDependenciesLeft(err) {