Browse Source
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>
mj-v1.14.3
zeripath
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
6 additions and
1 deletions
services/pull/pull.go
@ -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 )
}