aboutsummaryrefslogtreecommitdiffstats
path: root/models/git/protected_branch.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/git/protected_branch.go')
-rw-r--r--models/git/protected_branch.go22
1 files changed, 14 insertions, 8 deletions
diff --git a/models/git/protected_branch.go b/models/git/protected_branch.go
index 0033a42d4e..37d933a982 100644
--- a/models/git/protected_branch.go
+++ b/models/git/protected_branch.go
@@ -84,14 +84,20 @@ func IsRuleNameSpecial(ruleName string) bool {
}
func (protectBranch *ProtectedBranch) loadGlob() {
- if protectBranch.globRule == nil {
- var err error
- protectBranch.globRule, err = glob.Compile(protectBranch.RuleName, '/')
- if err != nil {
- log.Warn("Invalid glob rule for ProtectedBranch[%d]: %s %v", protectBranch.ID, protectBranch.RuleName, err)
- protectBranch.globRule = glob.MustCompile(glob.QuoteMeta(protectBranch.RuleName), '/')
- }
- protectBranch.isPlainName = !IsRuleNameSpecial(protectBranch.RuleName)
+ if protectBranch.isPlainName || protectBranch.globRule != nil {
+ return
+ }
+ // detect if it is not glob
+ if !IsRuleNameSpecial(protectBranch.RuleName) {
+ protectBranch.isPlainName = true
+ return
+ }
+ // now we load the glob
+ var err error
+ protectBranch.globRule, err = glob.Compile(protectBranch.RuleName, '/')
+ if err != nil {
+ log.Warn("Invalid glob rule for ProtectedBranch[%d]: %s %v", protectBranch.ID, protectBranch.RuleName, err)
+ protectBranch.globRule = glob.MustCompile(glob.QuoteMeta(protectBranch.RuleName), '/')
}
}