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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue