Ori Wiesel
Ori Wiesel

Reputation: 536

bitbucket webhook to jenkins with branch name

i have a bitbucket repo that sends webhook to trigger jenkins job. bitbucket webhook

http://:8080/buildByToken/buildWithParameters?job=webhook_me&token=t i want to send with the webhook the bitbucket branch name, so i search the web for the right way to use Environment variables on bit bucket and i've found this site: The way to use the variable, and the variable i need

so i've edited the url with an "&branch=$BITBUCKET_BRANCH" at the end, but it won't work. The Jenkins job that was triggered and the attempt to echo the branch name

any ideas what should i do in order to send the webhook with the branch name?

*******EDIT*******

i saw that there is something called Bitbucket event payload. which is a json that contains all of the details about the webhook: https://confluence.atlassian.com/bitbucket/event-payloads-740262817.html

but i can't figure a way how to use it and pull it's data from jenkins.

i think that, this is the way to solve this, but i don't know how to use it.

Upvotes: 7

Views: 16090

Answers (3)

Ori Wiesel
Ori Wiesel

Reputation: 536

i've found a way to do it, it works for me. you need to use the bitbucket plugin: Bitbucket Plugin

then inside the job you need to specify the branch that will trigger the job after a push and check the marked checkbox: enter image description here

then on the bitbucket create a webhook with the following URL: http://:/bitbucket-hook/ Like so: enter image description here

then push something to this repository and that branch, and there you go! if you try to push to a different branch, the job won't be triiggered

Upvotes: 4

hopetds
hopetds

Reputation: 475

Have you tried using jenkins-like variable ${BITBUCKET_BRANCH} instead of $BITBUCKET_BRANCH which is more shell-like variable?

Upvotes: 0

Rob Hales
Rob Hales

Reputation: 5321

The $BITBUCKET_BRANCH is only available in the Jenkins job. You are just literally passing the text "$BITBUCKET_BRANCH as the "branch" parameter. You can't pass in an environment variable like that.

$BITBUCKET_BRANCH may simply be available in the job, depending on the version of Jenkins and type of job you are using. In a pipeline job, this would be easy to access (if you have the right version of things). You don't need to pass it in unless you are trying to give it some other branch. In that case, you will need to see if you can get the branch on the bitbucket side to pass in to Jenkins.

Upvotes: 0

Related Questions