From 670a2dd6f4e1a423994981c65f13d74d735b27cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 2 May 2023 13:11:37 +0200 Subject: [PATCH] improve support for branches with slashes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/honest-countries-deny.md | 5 +++++ plugins/jenkins-backend/src/service/jenkinsApi.test.ts | 5 +++++ plugins/jenkins-backend/src/service/jenkinsApi.ts | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/honest-countries-deny.md diff --git a/.changeset/honest-countries-deny.md b/.changeset/honest-countries-deny.md new file mode 100644 index 0000000000..14c9094592 --- /dev/null +++ b/.changeset/honest-countries-deny.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-jenkins-backend': patch +--- + +Fix handling of slashes in branch names diff --git a/plugins/jenkins-backend/src/service/jenkinsApi.test.ts b/plugins/jenkins-backend/src/service/jenkinsApi.test.ts index 57ce2dbed4..c89a3866c7 100644 --- a/plugins/jenkins-backend/src/service/jenkinsApi.test.ts +++ b/plugins/jenkins-backend/src/service/jenkinsApi.test.ts @@ -173,6 +173,7 @@ describe('JenkinsApi', () => { 'foo', 'bar', 'catpants', + 'with-a/slash', ]); expect(mockedJenkins).toHaveBeenCalledWith({ @@ -192,6 +193,10 @@ describe('JenkinsApi', () => { name: `${jenkinsInfo.jobFullName}/catpants`, tree: expect.anything(), }); + expect(mockedJenkinsClient.job.get).toHaveBeenCalledWith({ + name: `${jenkinsInfo.jobFullName}/with-a%2Fslash`, + tree: expect.anything(), + }); expect(result).toHaveLength(1); }); }); diff --git a/plugins/jenkins-backend/src/service/jenkinsApi.ts b/plugins/jenkins-backend/src/service/jenkinsApi.ts index ef4ddc47b0..e14437fa68 100644 --- a/plugins/jenkins-backend/src/service/jenkinsApi.ts +++ b/plugins/jenkins-backend/src/service/jenkinsApi.ts @@ -80,7 +80,7 @@ export class JenkinsApiImpl { const job = await Promise.any( branches.map(branch => client.job.get({ - name: `${jenkinsInfo.jobFullName}/${branch}`, + name: `${jenkinsInfo.jobFullName}/${encodeURIComponent(branch)}`, tree: JenkinsApiImpl.jobTreeSpec.replace(/\s/g, ''), }), ),