From cf716d4a25cefc234fde179df64e4fac97fc059b Mon Sep 17 00:00:00 2001 From: Rogerio Angeliski Date: Thu, 1 Dec 2022 19:49:53 +0000 Subject: [PATCH] refct(events,catalog/github): use team-id instead node-id Signed-off-by: Rogerio Angeliski --- docs/integrations/github/org.md | 2 +- .../api-report.md | 2 +- .../src/lib/defaultTransformers.ts | 5 ++++- .../src/lib/github.test.ts | 20 +++++++++---------- .../src/lib/github.ts | 4 ++-- .../providers/GithubOrgEntityProvider.test.ts | 1 + .../src/providers/GithubOrgEntityProvider.ts | 12 ++++++++--- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md index 234004073a..bfda79d1f2 100644 --- a/docs/integrations/github/org.md +++ b/docs/integrations/github/org.md @@ -167,7 +167,7 @@ transformation if you only need to change a few properties. **Attention:** When you use the Events Support with a `TeamTransformer`, you need to ensure your entity will have the -annotation `github.com/node-id` with the value from `team.id`. Without this, the `team.edit` event could fail to update +annotation `github.com/team-id` with the value from `team.databaseId`. Without this, the `team.edit` event could fail to update ### Resolving GitHub users via organization email diff --git a/plugins/catalog-backend-module-github/api-report.md b/plugins/catalog-backend-module-github/api-report.md index 4cb70cf065..bdf42aa6b3 100644 --- a/plugins/catalog-backend-module-github/api-report.md +++ b/plugins/catalog-backend-module-github/api-report.md @@ -253,7 +253,7 @@ export class GithubOrgReaderProcessor implements CatalogProcessor { // @public export type GithubTeam = { - id: string; + databaseId: number; slug: string; combinedSlug: string; name?: string; diff --git a/plugins/catalog-backend-module-github/src/lib/defaultTransformers.ts b/plugins/catalog-backend-module-github/src/lib/defaultTransformers.ts index 3563b4cbc4..361942543b 100644 --- a/plugins/catalog-backend-module-github/src/lib/defaultTransformers.ts +++ b/plugins/catalog-backend-module-github/src/lib/defaultTransformers.ts @@ -88,9 +88,12 @@ export const defaultOrganizationTeamTransformer: TeamTransformer = async team => { const annotations: { [annotationName: string]: string } = { 'github.com/team-slug': team.combinedSlug, - 'github.com/node-id': team.id, }; + if (team.databaseId) { + annotations['github.com/team-id'] = `${team.databaseId}`; + } + if (team.editTeamUrl) { annotations['backstage.io/edit-url'] = team.editTeamUrl; } diff --git a/plugins/catalog-backend-module-github/src/lib/github.test.ts b/plugins/catalog-backend-module-github/src/lib/github.test.ts index 0c0038f6d7..593450aeda 100644 --- a/plugins/catalog-backend-module-github/src/lib/github.test.ts +++ b/plugins/catalog-backend-module-github/src/lib/github.test.ts @@ -209,7 +209,7 @@ describe('github', () => { pageInfo: { hasNextPage: false }, nodes: [ { - id: 'node-id-1', + databaseId: 1, slug: 'team', combinedSlug: 'blah/team', name: 'Team', @@ -217,7 +217,7 @@ describe('github', () => { avatarUrl: 'http://example.com/team.jpeg', editTeamUrl: 'http://example.com/orgs/blah/teams/team/edit', parentTeam: { - id: 'node-id-parent', + databaseId: 2, slug: 'parent', combinedSlug: '', members: [], @@ -242,7 +242,7 @@ describe('github', () => { description: 'The one and only team', annotations: { 'github.com/team-slug': 'blah/team', - 'github.com/node-id': 'node-id-1', + 'github.com/team-id': '1', 'backstage.io/edit-url': 'http://example.com/orgs/blah/teams/team/edit', }, @@ -312,7 +312,7 @@ describe('github', () => { pageInfo: { hasNextPage: false }, nodes: [ { - id: 'node-id-1', + databaseId: 1, slug: 'team', combinedSlug: 'blah/team', name: 'Team', @@ -320,7 +320,7 @@ describe('github', () => { avatarUrl: 'http://example.com/team.jpeg', editTeamUrl: 'http://example.com/orgs/blah/teams/team/edit', parentTeam: { - id: 'node-id-parent', + databaseId: 3, slug: 'parent', combinedSlug: '', members: [], @@ -379,7 +379,7 @@ describe('github', () => { pageInfo: { hasNextPage: false }, nodes: [ { - id: 'node-id-1', + databaseId: 1, slug: 'team', combinedSlug: 'blah/team', name: 'Team', @@ -387,7 +387,7 @@ describe('github', () => { avatarUrl: 'http://example.com/team.jpeg', editTeamUrl: 'http://example.com/orgs/blah/teams/team/edit', parentTeam: { - id: 'node-id-parent', + databaseId: 3, slug: 'parent', combinedSlug: '', members: [], @@ -398,7 +398,7 @@ describe('github', () => { }, }, { - id: 'node-id-2', + databaseId: 2, slug: 'team', combinedSlug: 'blah/team', name: 'aa', @@ -406,7 +406,7 @@ describe('github', () => { avatarUrl: 'http://example.com/team.jpeg', editTeamUrl: 'http://example.com/orgs/blah/teams/team/edit', parentTeam: { - id: 'node-id-parent', + databaseId: 3, slug: 'parent', combinedSlug: '', members: [], @@ -467,7 +467,7 @@ describe('github', () => { const input: QueryResponse = { organization: { team: { - id: 'node-id-1', + databaseId: 1, slug: '', combinedSlug: '', members: { diff --git a/plugins/catalog-backend-module-github/src/lib/github.ts b/plugins/catalog-backend-module-github/src/lib/github.ts index b643075966..22c405d7d3 100644 --- a/plugins/catalog-backend-module-github/src/lib/github.ts +++ b/plugins/catalog-backend-module-github/src/lib/github.ts @@ -72,7 +72,7 @@ export type GithubUser = { * @public */ export type GithubTeam = { - id: string; + databaseId: number; slug: string; combinedSlug: string; name?: string; @@ -187,7 +187,7 @@ export async function getOrganizationTeams( teams(first: 100, after: $cursor) { pageInfo { hasNextPage, endCursor } nodes { - id + databaseId slug combinedSlug name diff --git a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts index 2775da7228..a13215d91b 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts @@ -592,6 +592,7 @@ describe('GithubOrgEntityProvider', () => { eventPayload: { action: 'deleted', team: { + databaseId: 1, name: 'New Team', slug: 'new-team', description: 'description from the new team', diff --git a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts index d3fa6ae17f..7d7941f5ec 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts @@ -368,7 +368,13 @@ export class GithubOrgEntityProvider const organizationTeamTransformer = this.options.teamTransformer || defaultOrganizationTeamTransformer; - const { node_id: id, name, html_url: url, description, slug } = event.team; + const { + id: databaseId, + name, + html_url: url, + description, + slug, + } = event.team; const org = event.organization.login; const { headers } = await this.credentialsProvider.getCredentials({ url: this.options.orgUrl, @@ -380,7 +386,7 @@ export class GithubOrgEntityProvider const group = (await organizationTeamTransformer( { - id, + databaseId, name, slug, editTeamUrl: `${url}/edit`, @@ -423,7 +429,7 @@ export class GithubOrgEntityProvider filter: [ { kind: 'Group', - [`metadata.annotations.github.com/node-id`]: event.team.node_id, + [`metadata.annotations.github.com/team-id`]: `${event.team.id}`, }, ], fields: ['apiVersion', 'kind', 'metadata', 'spec'],