aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-03-09 07:06:38 +0000
committerGitHub <noreply@github.com>2020-03-09 07:06:38 +0000
commit3fc4f3670cb748e02d786111d2029ef1e23a9640 (patch)
treef92527a6e0699eb4092eebd1b4ec6db1462bb0d1
parentec4d0cdd56387a49c9c20f238768ea292c6b1222 (diff)
downloadgitea-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.go2
-rw-r--r--modules/git/repo_commit.go5
-rw-r--r--routers/repo/branch.go3
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
}