diff --git a/buildtrigger/gitlabhandler.py b/buildtrigger/gitlabhandler.py index 5f31e2252..d49606e73 100644 --- a/buildtrigger/gitlabhandler.py +++ b/buildtrigger/gitlabhandler.py @@ -312,9 +312,14 @@ class GitLabBuildTrigger(BuildTriggerHandler): def _get_namespace(self, gl_client, gl_namespace, lazy=False): try: if gl_namespace.attributes['kind'] == 'group': - return gl_client.groups.get(gl_namespace.attributes['name'], lazy=lazy) + return gl_client.groups.get(gl_namespace.attributes['id'], lazy=lazy) - return gl_client.users.get(gl_namespace.attributes['name'], lazy=lazy) + if gl_namespace.attributes['name'] == gl_client.user.attributes['username']: + return gl_client.users.get(gl_client.user.attributes['id'], lazy=lazy) + + # Note: This doesn't seem to work for IDs retrieved via the namespaces API; the IDs are + # different. + return gl_client.users.get(gl_namespace.attributes['id'], lazy=lazy) except gitlab.GitlabGetError: return None diff --git a/buildtrigger/test/gitlabmock.py b/buildtrigger/test/gitlabmock.py index aedc08f5f..4f2506634 100644 --- a/buildtrigger/test/gitlabmock.py +++ b/buildtrigger/test/gitlabmock.py @@ -268,7 +268,7 @@ def namespaces_handler(_, request): def get_projects_handler(add_permissions_block): - @urlmatch(netloc=r'fakegitlab', path=r'/api/v4/groups/someorg/projects$') + @urlmatch(netloc=r'fakegitlab', path=r'/api/v4/groups/2/projects$') def projects_handler(_, request): if not request.headers.get('Authorization') == 'Bearer foobar': return {'status_code': 401} @@ -317,7 +317,7 @@ def get_projects_handler(add_permissions_block): def get_group_handler(null_avatar): - @urlmatch(netloc=r'fakegitlab', path=r'/api/v4/groups/someorg$') + @urlmatch(netloc=r'fakegitlab', path=r'/api/v4/groups/2$') def group_handler(_, request): if not request.headers.get('Authorization') == 'Bearer foobar': return {'status_code': 401} @@ -546,7 +546,7 @@ def delete_deploykey_handker(_, request): } -@urlmatch(netloc=r'fakegitlab', path=r'/api/v4/users/knownuser/projects$') +@urlmatch(netloc=r'fakegitlab', path=r'/api/v4/users/2/projects$') def user_projects_list_handler(_, request): if not request.headers.get('Authorization') == 'Bearer foobar': return {'status_code': 401} diff --git a/static/js/directives/ui/manage-trigger/manage-trigger.component.html b/static/js/directives/ui/manage-trigger/manage-trigger.component.html index 7eec1ff63..913beb3c9 100644 --- a/static/js/directives/ui/manage-trigger/manage-trigger.component.html +++ b/static/js/directives/ui/manage-trigger/manage-trigger.component.html @@ -81,7 +81,7 @@ - {{ $ctrl.local.selectedNamespace.id }} + {{ $ctrl.local.selectedNamespace.title }}
@@ -198,7 +198,7 @@ - {{ $ctrl.local.selectedNamespace.id }}/{{ $ctrl.local.selectedRepository.name }} + {{ $ctrl.local.selectedNamespace.title }}/{{ $ctrl.local.selectedRepository.name }}
@@ -334,7 +334,7 @@ There was an error when verifying the state of - {{ $ctrl.local.selectedNamespace.id }}/{{ $ctrl.local.selectedRepository.name }} + {{ $ctrl.local.selectedNamespace.title }}/{{ $ctrl.local.selectedRepository.name }} {{ $ctrl.local.triggerAnalysis.message }}