When Deleting Repository only explicitly close PRs whose base is not this repository (#14823)
When Deleting Repository only explicitly close PRs whose base is not this repository Fix #14775 Signed-off-by: Andrew Thornton <art27@cantab.net>release/v1.15
parent
85e6e07346
commit
59fd641d1f
|
@ -480,7 +480,7 @@ func CloseBranchPulls(doer *models.User, repoID int64, branch string) error {
|
||||||
return nil
|
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 {
|
func CloseRepoBranchesPulls(doer *models.User, repo *models.Repository) error {
|
||||||
branches, _, err := git.GetBranchesByPath(repo.RepoPath(), 0, 0)
|
branches, _, err := git.GetBranchesByPath(repo.RepoPath(), 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -499,6 +499,11 @@ func CloseRepoBranchesPulls(doer *models.User, repo *models.Repository) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, pr := range prs {
|
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) {
|
if err = issue_service.ChangeStatus(pr.Issue, doer, true); err != nil && !models.IsErrPullWasClosed(err) {
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue