I am running bitbucket pipeline where I need to run a script from master. I have to fetch few details from the PR source branch. Hence I need the name for source branch on which we create the pull request. Bitbucket provides the default parameter for the destination but not for the source branch.
Please help if someone knows the way to find source branch name. Thanks
Hi @Prashantanu Singh Rathore _Temp_ and welcome to the community!
I assume that this is for a Pipelines build that is running when a pull request is created?
If so, you can get the source branch of the PR with the variable BITBUCKET_BRANCH.
This is a default variable, like BITBUCKET_PR_DESTINATION_BRANCH.
Please feel free to let me know if this works for you and if you need anything further.
Hi Theodora, Thanks for your reply.
I am merging from 'feature/ABCD' to 'master' branch.
This merge will initiate the pipeline automatically on master branch.
I want to know the source branch of PR(feature/ABCD) using any command or variable after the merge.
So in my case , $BITBUCKET_BRANCH will give me result as 'master' because I am running master configuration.
Thank you for the reply and info.
This information is available via default variables only for builds that run on pull requests.
If you have a pipeline that runs on master, there is no PR info available for such builds.
You may be able to retrieve this info with Git commands, however please keep in mind that this will essentially be guesswork, as Git itself doesn't store any PR info.
First, you'll need to execute this command:
git fetch origin "+refs/heads/*:refs/remotes/origin/*"
Then, the following command will give you the two parents of the merge commit:
git show --format="%P" $BITBUCKET_COMMIT
Then, you can execute the following command on the second commit hash (which is the parent commit from the source branch) returned by the previous command:
git branch -a --contains commit_hash
All this assumes that you have merged the PR with merge commit as strategy.
The output of the above command will show you all branches that contain that parent commit, including the source branch (if it still exists and hasn't been deleted).
You can also filter out master by
git branch -a --contains commit_hash | grep -v master
Keep in mind though that if there are more than one branches that contain this commit (and not only the source branch of the PR), they will all be returned by this command.
Hey Community! We’re willing to wager that quite a few of you not only use Bitbucket, but administer it too. Our team is excited to share that we’ll be releasing improvements throughout this month of...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events