From 5a6aca26b17d49412fca5fe5b9a603e9230422c1 Mon Sep 17 00:00:00 2001 From: mbruhin <47482924+mbruhin@users.noreply.github.com> Date: Tue, 2 Dec 2025 11:35:26 -0700 Subject: [PATCH] Update missing target branch error message Signed-off-by: mbruhin <47482924+mbruhin@users.noreply.github.com> --- .changeset/tall-ideas-lead.md | 5 ++++ .../bitbucketServerPullRequest.test.ts | 29 +++++++++++++++++++ .../src/actions/bitbucketServerPullRequest.ts | 6 ++++ 3 files changed, 40 insertions(+) create mode 100644 .changeset/tall-ideas-lead.md diff --git a/.changeset/tall-ideas-lead.md b/.changeset/tall-ideas-lead.md new file mode 100644 index 0000000000..60bef903d8 --- /dev/null +++ b/.changeset/tall-ideas-lead.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch +--- + +Improve error message when provided target branch is missing diff --git a/plugins/scaffolder-backend-module-bitbucket-server/src/actions/bitbucketServerPullRequest.test.ts b/plugins/scaffolder-backend-module-bitbucket-server/src/actions/bitbucketServerPullRequest.test.ts index 37df535fec..1c7b0372f3 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/src/actions/bitbucketServerPullRequest.test.ts +++ b/plugins/scaffolder-backend-module-bitbucket-server/src/actions/bitbucketServerPullRequest.test.ts @@ -399,4 +399,33 @@ describe('publish:bitbucketServer:pull-request', () => { 'https://hosted.bitbucket.com/projects/project/repos/repo/pull-requests/1', ); }); + + it('should throw an error when the target branch is not found', async () => { + server.use( + rest.get( + 'https://hosted.bitbucket.com/rest/api/1.0/projects/project/repos/repo/branches', + (_, res, ctx) => { + return res( + ctx.status(200), + ctx.set('Content-Type', 'application/json'), + ctx.json(responseOfBranches), + ); + }, + ), + ); + + await expect( + action.handler({ + ...mockContext, + input: { + ...mockContext.input, + repoUrl: 'hosted.bitbucket.com?project=project&repo=repo', + targetBranch: 'non-existent-branch', + sourceBranch: 'develop', + }, + }), + ).rejects.toThrow( + /Target branch 'non-existent-branch' not found in repository project\/repo/, + ); + }); }); diff --git a/plugins/scaffolder-backend-module-bitbucket-server/src/actions/bitbucketServerPullRequest.ts b/plugins/scaffolder-backend-module-bitbucket-server/src/actions/bitbucketServerPullRequest.ts index 8717a76ae1..ecafe4434c 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/src/actions/bitbucketServerPullRequest.ts +++ b/plugins/scaffolder-backend-module-bitbucket-server/src/actions/bitbucketServerPullRequest.ts @@ -380,6 +380,12 @@ export function createPublishBitbucketServerPullRequestAction(options: { apiBaseUrl, }); + if (!toRef) { + throw new InputError( + `Target branch '${finalTargetBranch}' not found in repository ${project}/${repo}. Please ensure the branch exists before creating a pull request.`, + ); + } + let fromRef = await findBranches({ project, repo,