aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/repo_commit_gogit.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/git/repo_commit_gogit.go')
-rw-r--r--modules/git/repo_commit_gogit.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/modules/git/repo_commit_gogit.go b/modules/git/repo_commit_gogit.go
index 84580be9a5..993013eef7 100644
--- a/modules/git/repo_commit_gogit.go
+++ b/modules/git/repo_commit_gogit.go
@@ -14,9 +14,16 @@ import (
"github.com/go-git/go-git/v5/plumbing/object"
)
-// GetRefCommitID returns the last commit ID string of given reference (branch or tag).
+// GetRefCommitID returns the last commit ID string of given reference.
func (repo *Repository) GetRefCommitID(name string) (string, error) {
- ref, err := repo.gogitRepo.Reference(plumbing.ReferenceName(name), true)
+ if plumbing.IsHash(name) {
+ return name, nil
+ }
+ refName := plumbing.ReferenceName(name)
+ if err := refName.Validate(); err != nil {
+ return "", err
+ }
+ ref, err := repo.gogitRepo.Reference(refName, true)
if err != nil {
if err == plumbing.ErrReferenceNotFound {
return "", ErrNotExist{