From a6486b7823ac38bc7fb9d69a316ec7045ed577a9 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Thu, 30 Mar 2017 12:57:41 -0400 Subject: [PATCH] Gitlab validation must allow unspecified endpoint Gitlab config validator currently requires the gitlab endpoint to be specified, even though we support leaving it unspecified for non-enterprise installs. Fix the validator to allow this case. --- .../validators/test/test_validate_gitlab_trigger.py | 4 +--- util/config/validators/validate_gitlab_trigger.py | 8 +++----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/util/config/validators/test/test_validate_gitlab_trigger.py b/util/config/validators/test/test_validate_gitlab_trigger.py index eaa855db8..88c3babab 100644 --- a/util/config/validators/test/test_validate_gitlab_trigger.py +++ b/util/config/validators/test/test_validate_gitlab_trigger.py @@ -8,7 +8,6 @@ from util.config.validators.validate_gitlab_trigger import GitLabTriggerValidato @pytest.mark.parametrize('unvalidated_config', [ ({}), - ({'GITLAB_TRIGGER_CONFIG': {}}), ({'GITLAB_TRIGGER_CONFIG': {'GITLAB_ENDPOINT': 'foo'}}), ({'GITLAB_TRIGGER_CONFIG': {'GITLAB_ENDPOINT': 'http://someendpoint', 'CLIENT_ID': 'foo'}}), ({'GITLAB_TRIGGER_CONFIG': {'GITLAB_ENDPOINT': 'http://someendpoint', 'CLIENT_SECRET': 'foo'}}), @@ -19,7 +18,7 @@ def test_validate_invalid_gitlab_trigger_config(unvalidated_config): with pytest.raises(ConfigValidationException): validator.validate(unvalidated_config, None, None) -def test_validate_gitlab_trigger(): +def test_validate_gitlab_enterprise_trigger(): url_hit = [False] @urlmatch(netloc=r'somegitlab', path='/oauth/token') @@ -38,4 +37,3 @@ def test_validate_gitlab_trigger(): }, None, None) assert url_hit[0] - diff --git a/util/config/validators/validate_gitlab_trigger.py b/util/config/validators/validate_gitlab_trigger.py index d507d8ad6..7f9e8c28e 100644 --- a/util/config/validators/validate_gitlab_trigger.py +++ b/util/config/validators/validate_gitlab_trigger.py @@ -13,11 +13,9 @@ class GitLabTriggerValidator(BaseValidator): raise ConfigValidationException('Missing GitLab client id and client secret') endpoint = github_config.get('GITLAB_ENDPOINT') - if not endpoint: - raise ConfigValidationException('Missing GitLab Endpoint') - - if endpoint.find('http://') != 0 and endpoint.find('https://') != 0: - raise ConfigValidationException('GitLab Endpoint must start with http:// or https://') + if endpoint: + if endpoint.find('http://') != 0 and endpoint.find('https://') != 0: + raise ConfigValidationException('GitLab Endpoint must start with http:// or https://') if not github_config.get('CLIENT_ID'): raise ConfigValidationException('Missing Client ID')