trigger merge of bitbucket branch from bamboo build plan stage
Asked by UserName GoesHere:

A Bamboo Build Plan has several stages. Each of the stages is triggered by a specific branch of a linked remote Bitbucket repository. After the stage of the Bamboo build plan completes successfully, the linked Bamboo deployment environment tasks are triggered.

What specifically do I need to do in order to get the completed deployment environment tasks in Bamboo to trigger a merge of the remote Bitbucket repository code to the next highest branch?

If a merge to the next highest branch in the remote Bitbucket can be triggered from Bamboo at the end of the deployment environment tasks, then that would trigger the running of the next stage of the Bamboo build plan. So that the Bamboo build plan pipeline could continue.

Surely this functionality has been developed and tested, because this auto-merging to the next highest level is an essential enabling technology for a continuous delivery pipeline.


Answers:
author: Foong
body: Please try using this [REST API](https://docs.atlassian.com/bitbucket-server/rest/5.9.0/bitbucket-rest.html#idm45328868529456) to trigger Pull Request Merge.

Since it require Pull Request ID, please use the workaround in this feature request:

<https://jira.atlassian.com/browse/BAM-18350> (replace *bamboo_repository_revision_number* with *bamboo_planRepository_revision* for deployment)


author: Jeyanthan I
body: Hi Username,

Did you try this variable to print the branch name of the linked repository

```
${bamboo.planRepository.<position>.branchName}
```

as described in the [default variables page](https://confluence.atlassian.com/bamboo/bamboo-variables-289277087.html)?

*where position is the name of the branch in the repository*

if your intention is to just print the repository URL, this might help.

```
${bamboo.planRepository.<position>.repositoryUrl}
```

Otherwise what error do you get when you use it?

comments: author: UserName GoesHere
body: If a developer already knows the value of the \<position\> variable, then the user already knows the information required to successfully merge. The question above assumes that the developer does NOT know the value of the \<position\> variable. The solution to this problem seems to involve using raw git commands because the Bitbucket layer does not seem to model this. Also note that the merging is being done from a remote git repo on the build server to a central git repo on the Bitbucket server. Your answer does not address these aspects.


author: Jeyanthan I
body: For your use case, is it possible for you to utilise one of the bamboo's [automatic merge strategies](https://confluence.atlassian.com/bamboo/using-plan-branches-289276872.html#Usingplanbranches-Automaticbranchmanagement) to do the merge instead of relying on automatic merge in Bitbucket?


author: UserName GoesHere
body: You will see why your suggestion would not apply if you re-read the first paragraph of the question above.
> "A Bamboo Build Plan has several stages. Each of the stages is triggered by a specific branch of a linked remote Bitbucket repository. After the stage of the Bamboo build plan completes successfully, the linked Bamboo deployment environment tasks are triggered."

As you can read in the first paragraph, this implementation needs a release pipeline, and the Build Plan Stages are being used to implement the release pipeline. In the past, we did examine plan branching, but none of the Atlassian documentation indicated that a pipeline could be created using plan branching. The only logical way to organize a pipeline using the objects available in Bamboo seems to be to utilize Plan Stages as the model for Pipeline Stages, and to have success at each Plan Stage trigger deployment to a specified environment.

At the moment, we are focusing on raw git commands and the Bitbucket REST API.

If you can show how to implement a release pipeline with clear stages using plan branching, for the use case described in this question, then it would make sense to explore automatic merging strategies again in more detail.


Tags: bitbucket

bitbucket-server