From e4e188f06bfbff0ad56d227c255dba3e400d844b Mon Sep 17 00:00:00 2001 From: Marley Powell Date: Wed, 30 Mar 2022 14:30:26 +0100 Subject: [PATCH 1/4] fix: Stop loading all teams when plugin is initialized Signed-off-by: Marley Powell --- .../src/api/PullRequestsDashboardProvider.ts | 9 ++------- plugins/azure-devops-backend/src/service/router.ts | 6 ++++-- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts b/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts index 0f6dbe5b04..230922ef0b 100644 --- a/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts +++ b/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts @@ -35,16 +35,11 @@ export class PullRequestsDashboardProvider { private readonly azureDevOpsApi: AzureDevOpsApi, ) {} - public static async create( + public static create( logger: Logger, azureDevOpsApi: AzureDevOpsApi, - ): Promise { + ): PullRequestsDashboardProvider { const provider = new PullRequestsDashboardProvider(logger, azureDevOpsApi); - try { - await provider.readTeams(); - } catch (error) { - logger.warn(`Failed to load azure team information, ${error}`); - } return provider; } diff --git a/plugins/azure-devops-backend/src/service/router.ts b/plugins/azure-devops-backend/src/service/router.ts index f41209e4ff..bb4baabfd3 100644 --- a/plugins/azure-devops-backend/src/service/router.ts +++ b/plugins/azure-devops-backend/src/service/router.ts @@ -53,8 +53,10 @@ export async function createRouter( const azureDevOpsApi = options.azureDevOpsApi || new AzureDevOpsApi(logger, webApi); - const pullRequestsDashboardProvider = - await PullRequestsDashboardProvider.create(logger, azureDevOpsApi); + const pullRequestsDashboardProvider = PullRequestsDashboardProvider.create( + logger, + azureDevOpsApi, + ); const router = Router(); router.use(express.json()); From 236245d9f8d7894ee5d02a0067b8a3296e98a48b Mon Sep 17 00:00:00 2001 From: Marley Powell Date: Wed, 30 Mar 2022 14:38:58 +0100 Subject: [PATCH 2/4] chore: Created changeset Signed-off-by: Marley Powell --- .changeset/poor-pumpkins-fly.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/poor-pumpkins-fly.md diff --git a/.changeset/poor-pumpkins-fly.md b/.changeset/poor-pumpkins-fly.md new file mode 100644 index 0000000000..d4462d0010 --- /dev/null +++ b/.changeset/poor-pumpkins-fly.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-azure-devops-backend': patch +--- + +Stop loading all teams when plugin is initialized From a8280a56003b731b92cc097bbbafcc09469cbfd7 Mon Sep 17 00:00:00 2001 From: Marley Powell Date: Wed, 30 Mar 2022 14:42:01 +0100 Subject: [PATCH 3/4] fix: Make sure team members are loaded before loading pull requests Signed-off-by: Marley Powell --- .../src/api/PullRequestsDashboardProvider.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts b/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts index 230922ef0b..655dfe5041 100644 --- a/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts +++ b/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts @@ -110,6 +110,8 @@ export class PullRequestsDashboardProvider { const dashboardPullRequests = await this.azureDevOpsApi.getDashboardPullRequests(projectName, options); + await this.getAllTeams(); // Make sure team members are loaded + return dashboardPullRequests.map(pr => { if (pr.createdBy?.id) { const teamIds = this.teamMembers.get(pr.createdBy.id)?.memberOf; From 5710e3ee8a72255d8cc19764523a0dd96626b207 Mon Sep 17 00:00:00 2001 From: Marley Powell Date: Wed, 30 Mar 2022 15:31:21 +0100 Subject: [PATCH 4/4] refactor: Small code review change Signed-off-by: Marley Powell --- .../src/api/PullRequestsDashboardProvider.ts | 4 ++-- plugins/azure-devops-backend/src/service/router.ts | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts b/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts index 655dfe5041..43b4807e7d 100644 --- a/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts +++ b/plugins/azure-devops-backend/src/api/PullRequestsDashboardProvider.ts @@ -35,10 +35,10 @@ export class PullRequestsDashboardProvider { private readonly azureDevOpsApi: AzureDevOpsApi, ) {} - public static create( + public static async create( logger: Logger, azureDevOpsApi: AzureDevOpsApi, - ): PullRequestsDashboardProvider { + ): Promise { const provider = new PullRequestsDashboardProvider(logger, azureDevOpsApi); return provider; } diff --git a/plugins/azure-devops-backend/src/service/router.ts b/plugins/azure-devops-backend/src/service/router.ts index bb4baabfd3..f41209e4ff 100644 --- a/plugins/azure-devops-backend/src/service/router.ts +++ b/plugins/azure-devops-backend/src/service/router.ts @@ -53,10 +53,8 @@ export async function createRouter( const azureDevOpsApi = options.azureDevOpsApi || new AzureDevOpsApi(logger, webApi); - const pullRequestsDashboardProvider = PullRequestsDashboardProvider.create( - logger, - azureDevOpsApi, - ); + const pullRequestsDashboardProvider = + await PullRequestsDashboardProvider.create(logger, azureDevOpsApi); const router = Router(); router.use(express.json());