fix pulls broken when fork repository deleted (#6754)
* fix pulls broken when fork repository deleted * fix lint
This commit is contained in:
		
					parent
					
						
							
								ec2d489d15
							
						
					
				
			
			
				commit
				
					
						4c34bc111c
					
				
			
		
					 3 changed files with 28 additions and 1 deletions
				
			
		| 
						 | 
					@ -1091,6 +1091,24 @@ func (err ErrPullRequestAlreadyExists) Error() string {
 | 
				
			||||||
		err.ID, err.IssueID, err.HeadRepoID, err.BaseRepoID, err.HeadBranch, err.BaseBranch)
 | 
							err.ID, err.IssueID, err.HeadRepoID, err.BaseRepoID, err.HeadBranch, err.BaseBranch)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ErrPullRequestHeadRepoMissing represents a "ErrPullRequestHeadRepoMissing" error
 | 
				
			||||||
 | 
					type ErrPullRequestHeadRepoMissing struct {
 | 
				
			||||||
 | 
						ID         int64
 | 
				
			||||||
 | 
						HeadRepoID int64
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// IsErrErrPullRequestHeadRepoMissing checks if an error is a ErrPullRequestHeadRepoMissing.
 | 
				
			||||||
 | 
					func IsErrErrPullRequestHeadRepoMissing(err error) bool {
 | 
				
			||||||
 | 
						_, ok := err.(ErrPullRequestHeadRepoMissing)
 | 
				
			||||||
 | 
						return ok
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Error does pretty-printing :D
 | 
				
			||||||
 | 
					func (err ErrPullRequestHeadRepoMissing) Error() string {
 | 
				
			||||||
 | 
						return fmt.Sprintf("pull request head repo missing [id: %d, head_repo_id: %d]",
 | 
				
			||||||
 | 
							err.ID, err.HeadRepoID)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ErrInvalidMergeStyle represents an error if merging with disabled merge strategy
 | 
					// ErrInvalidMergeStyle represents an error if merging with disabled merge strategy
 | 
				
			||||||
type ErrInvalidMergeStyle struct {
 | 
					type ErrInvalidMergeStyle struct {
 | 
				
			||||||
	ID    int64
 | 
						ID    int64
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -299,6 +299,10 @@ func (pr *PullRequest) GetLastCommitStatus() (status *CommitStatus, err error) {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if pr.HeadRepo == nil {
 | 
				
			||||||
 | 
							return nil, ErrPullRequestHeadRepoMissing{pr.ID, pr.HeadRepoID}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	headGitRepo, err := git.OpenRepository(pr.HeadRepo.RepoPath())
 | 
						headGitRepo, err := git.OpenRepository(pr.HeadRepo.RepoPath())
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -223,7 +223,12 @@ func issues(ctx *context.Context, milestoneID int64, isPullOption util.OptionalB
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if isPullOption == util.OptionalBoolTrue {
 | 
							if issues[i].IsPull {
 | 
				
			||||||
 | 
								if err := issues[i].LoadPullRequest(); err != nil {
 | 
				
			||||||
 | 
									ctx.ServerError("LoadPullRequest", err)
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			commitStatus[issues[i].PullRequest.ID], _ = issues[i].PullRequest.GetLastCommitStatus()
 | 
								commitStatus[issues[i].PullRequest.ID], _ = issues[i].PullRequest.GetLastCommitStatus()
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue