From 9f5b8bcad6c54bb29af5ab97fc14705e3e3dcbc6 Mon Sep 17 00:00:00 2001 From: Markus Date: Tue, 13 Feb 2024 10:34:28 +0100 Subject: [PATCH 1/6] feat: Add gitlab group visibility to group entity via annotation Signed-off-by: Markus --- .changeset/silent-insects-invent.md | 5 +++++ .../src/lib/defaultTransformers.ts | 1 + plugins/catalog-backend-module-gitlab/src/lib/types.ts | 1 + .../src/providers/GitlabOrgDiscoveryEntityProvider.test.ts | 1 + 4 files changed, 8 insertions(+) create mode 100644 .changeset/silent-insects-invent.md diff --git a/.changeset/silent-insects-invent.md b/.changeset/silent-insects-invent.md new file mode 100644 index 0000000000..8389f76a01 --- /dev/null +++ b/.changeset/silent-insects-invent.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-gitlab': patch +--- + +Add gitlab group visibility to group entity via annotation diff --git a/plugins/catalog-backend-module-gitlab/src/lib/defaultTransformers.ts b/plugins/catalog-backend-module-gitlab/src/lib/defaultTransformers.ts index d7a6bf76e9..ebdf91cf42 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/defaultTransformers.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/defaultTransformers.ts @@ -49,6 +49,7 @@ export function defaultGroupEntitiesTransformer( const annotations: { [annotationName: string]: string } = {}; annotations[`${options.providerConfig.host}/team-path`] = group.full_path; + annotations[`${options.providerConfig.host}/visibility`] = group.visibility; const entity: GroupEntity = { apiVersion: 'backstage.io/v1alpha1', diff --git a/plugins/catalog-backend-module-gitlab/src/lib/types.ts b/plugins/catalog-backend-module-gitlab/src/lib/types.ts index 25c9a4a232..635b7d4d6a 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/types.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/types.ts @@ -76,6 +76,7 @@ export type GitLabGroup = { name: string; full_path: string; description?: string; + visibility: string; parent_id?: number; }; diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts index 669abc69b6..c86c9f52d4 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts @@ -452,6 +452,7 @@ describe('GitlabOrgDiscoveryEntityProvider', () => { 'backstage.io/managed-by-origin-location': 'url:https://test-gitlab/group1/group2', 'test-gitlab/team-path': 'group1/group2', + 'test-gitlab/visibility': 'internal', }, description: 'Group2', name: 'group1-group2', From edb1e853f6d9bfa56703aed4c5d52f82aa7dea95 Mon Sep 17 00:00:00 2001 From: Markus Date: Tue, 13 Feb 2024 12:43:47 +0100 Subject: [PATCH 2/6] feat: Add gitlab group visibility to group entity via annotation part2 Signed-off-by: Markus --- plugins/catalog-backend-module-gitlab/src/lib/client.ts | 2 ++ plugins/catalog-backend-module-gitlab/src/lib/types.ts | 1 + .../src/providers/GitlabOrgDiscoveryEntityProvider.test.ts | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/plugins/catalog-backend-module-gitlab/src/lib/client.ts b/plugins/catalog-backend-module-gitlab/src/lib/client.ts index 65c3898d06..d69c99c777 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/client.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/client.ts @@ -136,6 +136,7 @@ export class GitLabClient { name description fullPath + visibility parent { id } @@ -170,6 +171,7 @@ export class GitLabClient { name: groupItem.name, description: groupItem.description, full_path: groupItem.fullPath, + visibility: groupItem.visibility, parent_id: Number( groupItem.parent.id.replace(/^gid:\/\/gitlab\/Group\//, ''), ), diff --git a/plugins/catalog-backend-module-gitlab/src/lib/types.ts b/plugins/catalog-backend-module-gitlab/src/lib/types.ts index 635b7d4d6a..6566d8d19e 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/types.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/types.ts @@ -116,6 +116,7 @@ export type GitLabDescendantGroupsResponse = { name: string; description: string; fullPath: string; + visibility: string; parent: { id: string; }; diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts index c86c9f52d4..8dffdf1d7b 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts @@ -526,6 +526,7 @@ describe('GitlabOrgDiscoveryEntityProvider', () => { name: 'group2', description: 'Group2', fullPath: 'group1/group2', + visibility: 'private', parent: { id: 'gid://gitlab/Group/123', }, @@ -535,6 +536,7 @@ describe('GitlabOrgDiscoveryEntityProvider', () => { name: 'group3', description: 'Group3', fullPath: 'group1/group3', + visibility: 'public', parent: { id: 'gid://gitlab/Group/123', }, @@ -704,6 +706,7 @@ describe('GitlabOrgDiscoveryEntityProvider', () => { 'backstage.io/managed-by-origin-location': 'url:https://gitlab.com/group1/group2', 'gitlab.com/team-path': 'group1/group2', + 'gitlab.com/visibility': 'private', }, description: 'Group2', name: 'group2', @@ -729,6 +732,7 @@ describe('GitlabOrgDiscoveryEntityProvider', () => { 'backstage.io/managed-by-origin-location': 'url:https://gitlab.com/group1/group3', 'gitlab.com/team-path': 'group1/group3', + 'gitlab.com/visibility': 'public', }, description: 'Group3', name: 'group3', From a4b1c1b3a0e56422ceef1244fb4bff114c1f3826 Mon Sep 17 00:00:00 2001 From: Markus Siebert Date: Tue, 13 Feb 2024 13:11:52 +0100 Subject: [PATCH 3/6] Update .changeset/silent-insects-invent.md Co-authored-by: Philipp Hugenroth Signed-off-by: Markus Siebert --- .changeset/silent-insects-invent.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/silent-insects-invent.md b/.changeset/silent-insects-invent.md index 8389f76a01..6c0dd358d7 100644 --- a/.changeset/silent-insects-invent.md +++ b/.changeset/silent-insects-invent.md @@ -2,4 +2,4 @@ '@backstage/plugin-catalog-backend-module-gitlab': patch --- -Add gitlab group visibility to group entity via annotation +Add GitLab `visibility` to group entity annotations. From ac4e50f47bf93e2d502a13c3ee7f969f9f06409f Mon Sep 17 00:00:00 2001 From: Markus Date: Tue, 13 Feb 2024 13:41:26 +0100 Subject: [PATCH 4/6] feat: Add gitlab group visibility to group entity via annotation part3 Signed-off-by: Markus --- plugins/catalog-backend-module-gitlab/api-report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/catalog-backend-module-gitlab/api-report.md b/plugins/catalog-backend-module-gitlab/api-report.md index bb52d8908a..1f177e8b69 100644 --- a/plugins/catalog-backend-module-gitlab/api-report.md +++ b/plugins/catalog-backend-module-gitlab/api-report.md @@ -63,6 +63,7 @@ export type GitLabGroup = { name: string; full_path: string; description?: string; + visibility: string; parent_id?: number; }; From dc37f3fe213d825461640bc2726382e51ce89d64 Mon Sep 17 00:00:00 2001 From: Markus Date: Tue, 27 Feb 2024 16:21:38 +0100 Subject: [PATCH 5/6] fix: make visibility optional Signed-off-by: Markus --- plugins/catalog-backend-module-gitlab/src/lib/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-gitlab/src/lib/types.ts b/plugins/catalog-backend-module-gitlab/src/lib/types.ts index 6566d8d19e..123515ccf3 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/types.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/types.ts @@ -76,7 +76,7 @@ export type GitLabGroup = { name: string; full_path: string; description?: string; - visibility: string; + visibility?: string; parent_id?: number; }; From 1a82d7e56bdba13ababbdac35d9a1c6e4a39b051 Mon Sep 17 00:00:00 2001 From: Markus Date: Tue, 27 Feb 2024 21:40:19 +0100 Subject: [PATCH 6/6] chore: api report Signed-off-by: Markus --- plugins/catalog-backend-module-gitlab/api-report.md | 2 +- .../src/lib/defaultTransformers.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend-module-gitlab/api-report.md b/plugins/catalog-backend-module-gitlab/api-report.md index 1f177e8b69..6c26e28604 100644 --- a/plugins/catalog-backend-module-gitlab/api-report.md +++ b/plugins/catalog-backend-module-gitlab/api-report.md @@ -63,7 +63,7 @@ export type GitLabGroup = { name: string; full_path: string; description?: string; - visibility: string; + visibility?: string; parent_id?: number; }; diff --git a/plugins/catalog-backend-module-gitlab/src/lib/defaultTransformers.ts b/plugins/catalog-backend-module-gitlab/src/lib/defaultTransformers.ts index ebdf91cf42..912e5a0502 100644 --- a/plugins/catalog-backend-module-gitlab/src/lib/defaultTransformers.ts +++ b/plugins/catalog-backend-module-gitlab/src/lib/defaultTransformers.ts @@ -49,7 +49,10 @@ export function defaultGroupEntitiesTransformer( const annotations: { [annotationName: string]: string } = {}; annotations[`${options.providerConfig.host}/team-path`] = group.full_path; - annotations[`${options.providerConfig.host}/visibility`] = group.visibility; + if (group.visibility !== undefined) { + annotations[`${options.providerConfig.host}/visibility`] = + group.visibility; + } const entity: GroupEntity = { apiVersion: 'backstage.io/v1alpha1',