diff --git a/awscli/customizations/codeartifact/login.py b/awscli/customizations/codeartifact/login.py index ff8818b0ba8a..b6f1e2a376fe 100644 --- a/awscli/customizations/codeartifact/login.py +++ b/awscli/customizations/codeartifact/login.py @@ -469,7 +469,7 @@ def _run_command(self, tool, command): @classmethod def get_scope(cls, namespace): # Regex for valid scope name - valid_scope_name = re.compile('^(@[a-z0-9-~][a-z0-9-._~]*)') + valid_scope_name = re.compile('^(@[a-zA-Z0-9-~][a-zA-Z0-9-._~]*)') if namespace is None: return namespace diff --git a/tests/unit/customizations/codeartifact/test_adapter_login.py b/tests/unit/customizations/codeartifact/test_adapter_login.py index 553d977647c2..13fd3970977e 100644 --- a/tests/unit/customizations/codeartifact/test_adapter_login.py +++ b/tests/unit/customizations/codeartifact/test_adapter_login.py @@ -1083,6 +1083,11 @@ def test_get_scope_without_prefix(self): scope = self.test_subject.get_scope(f'@{self.namespace}') self.assertEqual(scope, expected_value) + def test_get_scope_with_uppercase(self): + expected_value = '@Transform9' + scope = self.test_subject.get_scope('Transform9') + self.assertEqual(scope, expected_value) + def test_get_commands(self): commands = self.test_subject.get_commands( self.endpoint, self.auth_token