diff --git a/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts b/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts index 28c5eb2775..2bb1f713b5 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts @@ -437,7 +437,7 @@ describe('GitLabClient', () => { }); const saasMembers = ( - await client.getGroupMembers('group1', 'DIRECT, DESCENDANTS') + await client.getGroupMembers('group1', ['DIRECT, DESCENDANTS']) ).items; const expectedSaasMember = [ { @@ -473,7 +473,7 @@ describe('GitLabClient', () => { }); const saasMembers = ( - await client.getGroupMembers('group1', 'DIRECT, DESCENDANTS') + await client.getGroupMembers('group1', ['DIRECT, DESCENDANTS']) ).items; expect(saasMembers).toEqual([]); @@ -497,7 +497,7 @@ describe('GitLabClient', () => { }); await expect(() => - client.getGroupMembers('group1', 'DIRECT, DESCENDANTS'), + client.getGroupMembers('group1', ['DIRECT, DESCENDANTS']), ).rejects.toThrow( 'GraphQL errors: [{"message":"Unexpected end of document","locations":[]}]', ); @@ -554,7 +554,7 @@ describe('GitLabClient', () => { }); const saasMembers = ( - await client.getGroupMembers('group1', 'DIRECT, DESCENDANTS') + await client.getGroupMembers('group1', ['DIRECT, DESCENDANTS']) ).items; const expectedSaasMember1 = { @@ -787,7 +787,7 @@ describe('GitLabClient', () => { logger: getVoidLogger(), }); - const members = await client.getGroupMembers('group1', 'DIRECT'); + const members = await client.getGroupMembers('group1', ['DIRECT']); const user = { id: 1, @@ -819,7 +819,7 @@ describe('GitLabClient', () => { logger: getVoidLogger(), }); - const members = await client.getGroupMembers('group1', 'DIRECT'); + const members = await client.getGroupMembers('group1', ['DIRECT']); expect(members.items).toEqual([]); }); @@ -842,7 +842,7 @@ describe('GitLabClient', () => { }); await expect(() => - client.getGroupMembers('group1', 'DIRECT'), + client.getGroupMembers('group1', ['DIRECT']), ).rejects.toThrow( 'GraphQL errors: [{"message":"Unexpected end of document","locations":[]}]', ); @@ -875,7 +875,7 @@ describe('GitLabClient', () => { logger: getVoidLogger(), }); - const members = await client.getGroupMembers('group1', 'DIRECT'); + const members = await client.getGroupMembers('group1', ['DIRECT']); expect(members.items[0].id).toEqual(1); expect(members.items[1].id).toEqual(2); diff --git a/plugins/catalog-backend-module-gitlab/src/lib/client.ts b/plugins/catalog-backend-module-gitlab/src/lib/client.ts index 006a345c4a..e2c4914979 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/client.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/client.ts @@ -173,7 +173,7 @@ export class GitLabClient { async getGroupMembers( groupPath: string, - relations: string, + relations: string[], ): Promise> { const items: GitLabUser[] = []; let hasNextPage: boolean = false; @@ -189,9 +189,9 @@ export class GitLabClient { }, body: JSON.stringify({ variables: { group: groupPath, relations: relations, endCursor }, - query: `query getGroupMembers($group: ID!, $relations: GroupMemberRelation!, $endCursor: String) { + query: `query getGroupMembers($group: ID!, $relations: [GroupMemberRelation!], $endCursor: String) { group(fullPath: $group) { - groupMembers(first: 100, relations: [$relations], after: $endCursor) { + groupMembers(first: 100, relations: $relations, after: $endCursor) { nodes { user { id diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts index 5c4624c43a..0ef0e2b23c 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts @@ -191,7 +191,10 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider { } else { groups = (await client.listDescendantGroups(this.config.group)).items; users = ( - await client.getGroupMembers(this.config.group.split('/')[0], 'DIRECT') + await client.getGroupMembers(this.config.group.split('/')[0], [ + 'DIRECT', + 'DESCENDANTS', + ]) ).items; } @@ -237,10 +240,9 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider { groupRes.scanned++; groupRes.matches.push(group); - const groupUsers = await client.getGroupMembers( - group.full_path, + const groupUsers = await client.getGroupMembers(group.full_path, [ 'DIRECT', - ); + ]); for (const groupUser of groupUsers.items) { const user = idMappedUser[groupUser.id];