From 3f5ad53af65e8140d6fc45d0d6e975e2756e07fa Mon Sep 17 00:00:00 2001 From: Luke Kysow Date: Fri, 30 Mar 2018 12:59:22 -0700 Subject: [PATCH] Make repo whitelist case insensitive. This is okay to do because it's a better user experience and because GitLab and GitHub project names are case insensitive as well. --- server/events/repo_whitelist.go | 4 ++++ server/events/repo_whitelist_test.go | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/server/events/repo_whitelist.go b/server/events/repo_whitelist.go index b11a31cfe..06c500f48 100644 --- a/server/events/repo_whitelist.go +++ b/server/events/repo_whitelist.go @@ -42,6 +42,10 @@ func (r *RepoWhitelist) IsWhitelisted(repoFullName string, vcsHostname string) b } func (r *RepoWhitelist) matchesRule(rule string, candidate string) bool { + // Case insensitive compare. + rule = strings.ToLower(rule) + candidate = strings.ToLower(candidate) + wildcardIdx := strings.Index(rule, Wildcard) if wildcardIdx == -1 { // No wildcard so can do a straight up match. diff --git a/server/events/repo_whitelist_test.go b/server/events/repo_whitelist_test.go index 05674be35..21e358572 100644 --- a/server/events/repo_whitelist_test.go +++ b/server/events/repo_whitelist_test.go @@ -133,6 +133,20 @@ func TestIsWhitelisted(t *testing.T) { "github.com", false, }, + { + "should be case insensitive", + "github.com/owner/repo", + "OwNeR/rEpO", + "github.com", + true, + }, + { + "should be case insensitive for wildcards", + "github.com/owner/*", + "OwNeR/rEpO", + "github.com", + true, + }, } for _, c := range cases {