From 146e41b9962fd86fef3e70b3f076d07f88f571bf Mon Sep 17 00:00:00 2001 From: Benjamin Janssens Date: Wed, 26 Mar 2025 11:36:05 +0100 Subject: [PATCH 1/2] fix(discovery): fix bug in event-based discovery that causes unnecessary API calls to Bitbucket Cloud Signed-off-by: Benjamin Janssens --- .changeset/tame-worms-do.md | 5 +++++ .../src/providers/BitbucketCloudEntityProvider.ts | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 .changeset/tame-worms-do.md diff --git a/.changeset/tame-worms-do.md b/.changeset/tame-worms-do.md new file mode 100644 index 0000000000..21872b9106 --- /dev/null +++ b/.changeset/tame-worms-do.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch +--- + +Fixed bug in event-based discovery that caused unnecessary API calls to Bitbucket Cloud diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.ts index e4ba2f2dc0..5beb98ac08 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.ts +++ b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.ts @@ -326,6 +326,8 @@ export class BitbucketCloudEntityProvider implements EntityProvider { const optRepoFilter = repoSlug ? ` repo:${repoSlug}` : ''; const query = `"${catalogFilename}" path:${catalogPath}${optRepoFilter}`; + if (repoSlug) return this.processQuery(workspace, query); + const projects = this.client .listProjectsByWorkspace(workspace) .iterateResults(); From 425df052b4a2d137177886ffef032e9dc4dd82c8 Mon Sep 17 00:00:00 2001 From: Benjamin Janssens Date: Wed, 26 Mar 2025 11:53:04 +0100 Subject: [PATCH 2/2] test(discovery): update tests Signed-off-by: Benjamin Janssens --- .../BitbucketCloudEntityProvider.test.ts | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts index 489578e853..5b2f9992c9 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts +++ b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts @@ -542,31 +542,11 @@ describe('BitbucketCloudEntityProvider', () => { })[0]; server.use( - rest.get( - `https://api.bitbucket.org/2.0/workspaces/test-ws/projects`, - (_req, res, ctx) => { - const response = { - values: [ - { - key: 'TEST', - }, - { - key: 'TEST2', - }, - ], - }; - return res(ctx.json(response)); - }, - ), rest.get( `https://api.bitbucket.org/2.0/workspaces/test-ws/search/code`, (req, res, ctx) => { const query = req.url.searchParams.get('search_query'); - if ( - !query || - !query.includes('repo:test-repo') || - !query.includes('project:TEST') - ) { + if (!query || !query.includes('repo:test-repo')) { return res(ctx.json({ values: [] })); } @@ -643,10 +623,6 @@ describe('BitbucketCloudEntityProvider', () => { entity: addedModule, locationKey: 'bitbucketCloud-provider:myProvider', }, - { - entity: addedModule, - locationKey: 'bitbucketCloud-provider:myProvider', - }, ]; const removedEntities = [ {