From ec35af470c8cbed9f32b68e1a2c43e0f71c5f97b Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Sun, 16 Jul 2023 07:10:49 +0900 Subject: [PATCH] Avoid opening/closing PRs which are already merged (#25883) 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 --- 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 31bcbd7c21c..bd8959846c0 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -2762,7 +2762,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) {