File tree 2 files changed +5
-7
lines changed 2 files changed +5
-7
lines changed Original file line number Diff line number Diff line change @@ -413,7 +413,7 @@ func RepoRefForAPI(next http.Handler) http.Handler {
413
413
return
414
414
}
415
415
ctx .Repo .CommitID = ctx .Repo .Commit .ID .String ()
416
- } else if len (refName ) = = 40 {
416
+ } else if len (refName ) >= 7 && len ( refName ) < = 40 {
417
417
ctx .Repo .CommitID = refName
418
418
ctx .Repo .Commit , err = ctx .Repo .GitRepo .GetCommit (refName )
419
419
if err != nil {
Original file line number Diff line number Diff line change @@ -693,11 +693,8 @@ func getRefName(ctx *Context, pathType RepoRefType) string {
693
693
if refName := getRefName (ctx , RepoRefTag ); len (refName ) > 0 {
694
694
return refName
695
695
}
696
- // For legacy and API support only full commit sha
697
- parts := strings .Split (path , "/" )
698
- if len (parts ) > 0 && len (parts [0 ]) == 40 {
699
- ctx .Repo .TreePath = strings .Join (parts [1 :], "/" )
700
- return parts [0 ]
696
+ if refName := getRefName (ctx , RepoRefCommit ); len (refName ) > 0 {
697
+ return refName
701
698
}
702
699
if refName := getRefName (ctx , RepoRefBlob ); len (refName ) > 0 {
703
700
return refName
@@ -710,7 +707,8 @@ func getRefName(ctx *Context, pathType RepoRefType) string {
710
707
return getRefNameFromPath (ctx , path , ctx .Repo .GitRepo .IsTagExist )
711
708
case RepoRefCommit :
712
709
parts := strings .Split (path , "/" )
713
- if len (parts ) > 0 && len (parts [0 ]) >= 7 && len (parts [0 ]) <= 40 {
710
+ hasShaLength := len (parts [0 ]) >= 7 && len (parts [0 ]) <= 40
711
+ if len (parts ) > 1 && hasShaLength && ctx .Repo .GitRepo .IsCommitExist (parts [0 ]) {
714
712
ctx .Repo .TreePath = strings .Join (parts [1 :], "/" )
715
713
return parts [0 ]
716
714
}
You can’t perform that action at this time.
0 commit comments