]> source.dussan.org Git - gitea.git/commitdiff
Avoid opening/closing PRs which are already merged (#25883) (#25903)
authorGiteabot <teabot@gitea.io>
Mon, 17 Jul 2023 12:14:22 +0000 (08:14 -0400)
committerGitHub <noreply@github.com>
Mon, 17 Jul 2023 12:14:22 +0000 (12:14 +0000)
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>
routers/web/repo/issue.go

index d436abba2f06ec81cf4822b8a42039e65120d195..4cf319e9587b6586002dc05a9174ace2179caaee 100644 (file)
@@ -2726,7 +2726,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) {