]> source.dussan.org Git - gitea.git/commitdiff
When Deleting Repository only explicitly close PRs whose base is not this repository...
authorzeripath <art27@cantab.net>
Mon, 1 Mar 2021 17:39:44 +0000 (17:39 +0000)
committerGitHub <noreply@github.com>
Mon, 1 Mar 2021 17:39:44 +0000 (18:39 +0100)
When Deleting Repository only explicitly close PRs whose base is not this repository

Fix #14775

Signed-off-by: Andrew Thornton <art27@cantab.net>
services/pull/pull.go

index 4f742f5a1a6a8345b095de688347d859c8333116..cadb317472ddb39d6aff78e7304a5a2de3256651 100644 (file)
@@ -480,7 +480,7 @@ func CloseBranchPulls(doer *models.User, repoID int64, branch string) error {
        return nil
 }
 
-// CloseRepoBranchesPulls close all pull requests which head branches are in the given repository
+// CloseRepoBranchesPulls close all pull requests which head branches are in the given repository, but only whose base repo is not in the given repository
 func CloseRepoBranchesPulls(doer *models.User, repo *models.Repository) error {
        branches, _, err := git.GetBranchesByPath(repo.RepoPath(), 0, 0)
        if err != nil {
@@ -499,6 +499,11 @@ func CloseRepoBranchesPulls(doer *models.User, repo *models.Repository) error {
                }
 
                for _, pr := range prs {
+                       // If the base repository for this pr is this repository there is no need to close it
+                       // as it is going to be deleted anyway
+                       if pr.BaseRepoID == repo.ID {
+                               continue
+                       }
                        if err = issue_service.ChangeStatus(pr.Issue, doer, true); err != nil && !models.IsErrPullWasClosed(err) {
                                errs = append(errs, err)
                        }