diff options
author | zeripath <art27@cantab.net> | 2020-03-09 07:06:38 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-09 07:06:38 +0000 |
commit | 3fc4f3670cb748e02d786111d2029ef1e23a9640 (patch) | |
tree | f92527a6e0699eb4092eebd1b4ec6db1462bb0d1 | |
parent | ec4d0cdd56387a49c9c20f238768ea292c6b1222 (diff) | |
download | gitea-3fc4f3670cb748e02d786111d2029ef1e23a9640.tar.gz gitea-3fc4f3670cb748e02d786111d2029ef1e23a9640.zip |
Fix panic in API pulls when headbranch does not exist (#10676)
* Fix panic in API pulls when headbranch does not exist
* refix other reference to plumbing.ErrReferenceNotFound
Signed-off-by: Andrew Thornton <art27@cantab.net>
-rw-r--r-- | modules/convert/pull.go | 2 | ||||
-rw-r--r-- | modules/git/repo_commit.go | 5 | ||||
-rw-r--r-- | routers/repo/branch.go | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/modules/convert/pull.go b/modules/convert/pull.go index ccf64ef3ea..6ff88c4d8a 100644 --- a/modules/convert/pull.go +++ b/modules/convert/pull.go @@ -114,7 +114,7 @@ func ToAPIPullRequest(pr *models.PullRequest) *api.PullRequest { if git.IsErrBranchNotExist(err) { headCommitID, err := headGitRepo.GetRefCommitID(apiPullRequest.Head.Ref) if err != nil && !git.IsErrNotExist(err) { - log.Error("GetCommit[%s]: %v", headBranch.Name, err) + log.Error("GetCommit[%s]: %v", pr.HeadBranch, err) return nil } if err == nil { diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go index d20c6540eb..618b89438c 100644 --- a/modules/git/repo_commit.go +++ b/modules/git/repo_commit.go @@ -21,6 +21,11 @@ import ( func (repo *Repository) GetRefCommitID(name string) (string, error) { ref, err := repo.gogitRepo.Reference(plumbing.ReferenceName(name), true) if err != nil { + if err == plumbing.ErrReferenceNotFound { + return "", ErrNotExist{ + ID: name, + } + } return "", err } diff --git a/routers/repo/branch.go b/routers/repo/branch.go index ea4f68948d..7127d50ed8 100644 --- a/routers/repo/branch.go +++ b/routers/repo/branch.go @@ -17,7 +17,6 @@ import ( "code.gitea.io/gitea/modules/repofiles" repo_module "code.gitea.io/gitea/modules/repository" "code.gitea.io/gitea/modules/util" - "gopkg.in/src-d/go-git.v4/plumbing" ) const ( @@ -253,7 +252,7 @@ func loadBranches(ctx *context.Context) []*Branch { repoIDToGitRepo[pr.BaseRepoID] = baseGitRepo } pullCommit, err := baseGitRepo.GetRefCommitID(pr.GetGitRefName()) - if err != nil && err != plumbing.ErrReferenceNotFound { + if err != nil && !git.IsErrNotExist(err) { ctx.ServerError("GetBranchCommitID", err) return nil } |