Skip to content

Commit 4890434

Browse files
committed
some improvements
1 parent 0b44132 commit 4890434

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

modules/git/ref.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,19 @@ func RefNameFromCommit(shortName string) RefName {
8484
return RefName(shortName)
8585
}
8686

87+
func RefNameFromTypeAndShortName(tp RefType, shortName string) RefName {
88+
switch tp {
89+
case RefTypeBranch:
90+
return RefNameFromBranch(shortName)
91+
case RefTypeTag:
92+
return RefNameFromTag(shortName)
93+
case RefTypeCommit:
94+
return RefNameFromCommit(shortName)
95+
default:
96+
return ""
97+
}
98+
}
99+
87100
func (ref RefName) String() string {
88101
return string(ref)
89102
}

routers/web/repo/tree.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,12 @@ func isExcludedEntry(entry *git.TreeEntry) bool {
5656

5757
func Tree(ctx *context.Context) {
5858
treePath := ctx.PathParam("*")
59-
var refFullName git.RefName
60-
switch ctx.FormTrim("ref_type") {
61-
case "branch":
62-
refFullName = git.RefNameFromBranch(ctx.FormTrim("ref_name"))
63-
case "tag":
64-
refFullName = git.RefNameFromTag(ctx.FormTrim("ref_name"))
65-
default:
66-
refFullName = git.RefName(ctx.FormTrim("ref_name"))
67-
}
6859
recursive := ctx.FormBool("recursive")
60+
refFullName := git.RefNameFromTypeAndShortName(git.RefType(ctx.FormTrim("ref_type")), ctx.FormTrim("ref_name"))
61+
if refFullName == "" {
62+
ctx.Error(http.StatusBadRequest, "RefNameFromTypeAndShortName", "ref_type or ref_name is invalid")
63+
return
64+
}
6965

7066
var results []*files_service.TreeViewNode
7167
var err error

0 commit comments

Comments
 (0)