diff options
Diffstat (limited to 'modules/validation/binding.go')
-rw-r--r-- | modules/validation/binding.go | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/modules/validation/binding.go b/modules/validation/binding.go index 783499e69a..3f671890b6 100644 --- a/modules/validation/binding.go +++ b/modules/validation/binding.go @@ -44,12 +44,18 @@ func addGitRefNameBindingRule() { } // Additional rules as described at https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html if strings.HasPrefix(str, "/") || strings.HasSuffix(str, "/") || - strings.HasPrefix(str, ".") || strings.HasSuffix(str, ".") || - strings.HasSuffix(str, ".lock") || - strings.Contains(str, "..") || strings.Contains(str, "//") { + strings.HasSuffix(str, ".") || strings.Contains(str, "..") || + strings.Contains(str, "//") { errs.Add([]string{name}, ErrGitRefName, "GitRefName") return false, errs } + parts := strings.Split(str, "/") + for _, part := range parts { + if strings.HasSuffix(part, ".lock") || strings.HasPrefix(part, ".") { + errs.Add([]string{name}, ErrGitRefName, "GitRefName") + return false, errs + } + } return true, errs }, |