mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-28 14:43:52 +03:00
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)
|
||||
}
|
||||
|
||||
// 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
|
||||
type ErrInvalidMergeStyle struct {
|
||||
ID int64
|
||||
|
|
|
@ -299,6 +299,10 @@ func (pr *PullRequest) GetLastCommitStatus() (status *CommitStatus, err error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if pr.HeadRepo == nil {
|
||||
return nil, ErrPullRequestHeadRepoMissing{pr.ID, pr.HeadRepoID}
|
||||
}
|
||||
|
||||
headGitRepo, err := git.OpenRepository(pr.HeadRepo.RepoPath())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -223,7 +223,12 @@ func issues(ctx *context.Context, milestoneID int64, isPullOption util.OptionalB
|
|||
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()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue