From 90c87f28e8f65a4046f117a744f4c68788a71b9a Mon Sep 17 00:00:00 2001 From: Carlo Giuseppe Sergi Date: Wed, 6 Jul 2022 16:57:39 +0200 Subject: [PATCH 1/2] fix the getLastCommitShortHash and changed the endpoint Signed-off-by: Carlo Giuseppe Sergi --- .changeset/mean-berries-kick.md | 5 ++++ .../reading/BitbucketServerUrlReader.test.ts | 12 +++----- .../src/reading/BitbucketServerUrlReader.ts | 30 ++++++++----------- 3 files changed, 22 insertions(+), 25 deletions(-) create mode 100644 .changeset/mean-berries-kick.md diff --git a/.changeset/mean-berries-kick.md b/.changeset/mean-berries-kick.md new file mode 100644 index 0000000000..70400b80b8 --- /dev/null +++ b/.changeset/mean-berries-kick.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Moving to endpoint of bitbucket from https://docs.atlassian.com/bitbucket-server/rest/7.9.0/bitbucket-rest.html#idp222 to https://docs.atlassian.com/bitbucket-server/rest/7.9.0/bitbucket-rest.html#idp224, to have the last commit in function of different branch, and not only the list of default branch diff --git a/packages/backend-common/src/reading/BitbucketServerUrlReader.test.ts b/packages/backend-common/src/reading/BitbucketServerUrlReader.test.ts index 1417752494..4584ba75f8 100644 --- a/packages/backend-common/src/reading/BitbucketServerUrlReader.test.ts +++ b/packages/backend-common/src/reading/BitbucketServerUrlReader.test.ts @@ -83,13 +83,11 @@ describe('BitbucketServerUrlReader', () => { ), ), rest.get( - 'https://api.bitbucket.mycompany.net/rest/api/1.0/projects/backstage/repos/mock/commits', + 'https://api.bitbucket.mycompany.net/rest/api/1.0/projects/backstage/repos/mock/commits/*', (_, res, ctx) => res( ctx.status(200), - ctx.json({ - values: [{ id: '12ab34cd56ef78gh90ij12kl34mn56op78qr90st' }], - }), + ctx.json({ id: '12ab34cd56ef78gh90ij12kl34mn56op78qr90st' }), ), ), ); @@ -132,13 +130,11 @@ describe('BitbucketServerUrlReader', () => { ), ), rest.get( - 'https://api.bitbucket.mycompany.net/rest/api/1.0/projects/backstage/repos/mock/commits', + 'https://api.bitbucket.mycompany.net/rest/api/1.0/projects/backstage/repos/mock/commits/*', (_, res, ctx) => res( ctx.status(200), - ctx.json({ - values: [{ id: '12ab34cd56ef78gh90ij12kl34mn56op78qr90st' }], - }), + ctx.json({ id: '12ab34cd56ef78gh90ij12kl34mn56op78qr90st' }), ), ), ); diff --git a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts index b4e1e62327..31894cf823 100644 --- a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts +++ b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts @@ -186,33 +186,29 @@ export class BitbucketServerUrlReader implements UrlReader { } private async getLastCommitShortHash(url: string): Promise { - const { name: repoName, owner: project } = parseGitUrl(url); + const { name: repoName, owner: project, ref: branch } = parseGitUrl(url); - // Bitbucket Server https://docs.atlassian.com/bitbucket-server/rest/7.9.0/bitbucket-rest.html#idp222 - const commitsApiUrl = `${this.integration.config.apiBaseUrl}/projects/${project}/repos/${repoName}/commits`; + // Bitbucket Server https://docs.atlassian.com/bitbucket-server/rest/7.9.0/bitbucket-rest.html#idp224 + const commitApiUrl = `${this.integration.config.apiBaseUrl}/projects/${project}/repos/${repoName}/commits/${branch}`; - const commitsResponse = await fetch( - commitsApiUrl, + const commitResponse = await fetch( + commitApiUrl, getBitbucketServerRequestOptions(this.integration.config), ); - if (!commitsResponse.ok) { - const message = `Failed to retrieve commits from ${commitsApiUrl}, ${commitsResponse.status} ${commitsResponse.statusText}`; - if (commitsResponse.status === 404) { + if (!commitResponse.ok) { + const message = `Failed to retrieve commits from ${commitApiUrl}, ${commitResponse.status} ${commitResponse.statusText}`; + if (commitResponse.status === 404) { throw new NotFoundError(message); } throw new Error(message); } - const commits = await commitsResponse.json(); - if ( - commits && - commits.values && - commits.values.length > 0 && - commits.values[0].id - ) { - return commits.values[0].id.substring(0, 12); + const commits = await commitResponse.json(); + + if (commits && commits.id) { + return commits.id.substring(0, 12); } - throw new Error(`Failed to read response from ${commitsApiUrl}`); + throw new Error(`Failed to read response from ${commitApiUrl}`); } } From 7fae72614c5480fa328919ec6db04aa97cd60243 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 11 Jul 2022 15:12:16 +0200 Subject: [PATCH 2/2] Fix code review comments Signed-off-by: Ben Lambert --- .changeset/mean-berries-kick.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/mean-berries-kick.md b/.changeset/mean-berries-kick.md index 70400b80b8..7726c2c79e 100644 --- a/.changeset/mean-berries-kick.md +++ b/.changeset/mean-berries-kick.md @@ -2,4 +2,4 @@ '@backstage/backend-common': patch --- -Moving to endpoint of bitbucket from https://docs.atlassian.com/bitbucket-server/rest/7.9.0/bitbucket-rest.html#idp222 to https://docs.atlassian.com/bitbucket-server/rest/7.9.0/bitbucket-rest.html#idp224, to have the last commit in function of different branch, and not only the list of default branch +Moving from Bitbucket Server endpoint from https://docs.atlassian.com/bitbucket-server/rest/7.9.0/bitbucket-rest.html#idp222 to https://docs.atlassian.com/bitbucket-server/rest/7.9.0/bitbucket-rest.html#idp224, to have the last commit in function of different branch, and not only the list of default branch