Child pages
  • Bitbucket Push And Pull Request Plugin

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
titleRequirements

1) This plugin requires a Jenkins v2.138.2 or later and supports

  • Bitbucket Cloud rest api v2.x+ and later
  • Bitbucket Server 5.14+ and later

2) This plugin will not work if the previous Bitbucket plugin  (https://plugins.jenkins.io/bitbucket) is installed.

3) warning: After updating the plugin from a version prior to the 2.x.x, the jobs with a pull request need to be reconfigured, reselecting once again, from the plugin conf. pane, the pull request event, that will trigger the build.


Plugin for Jenkins v2.138.2 or later, that triggers builds on Bitbucket's push and pull requests. It's based on the Sazo's fork (https://github.com/sazo/bitbucket-plugin) of the official Bitbucket Plugin (https://plugins.jenkins.io/bitbucket).

The new features introduced by Bitbucket Push and Pull Request are:

  • improved support of pushs for Bitbucket cloud Cloud (rest api v2.x+ with git and mercurial) and Bitbucket server Server (5.14+ with git)
  • support of pull requests for Bitbucket cloud Cloud (rest api v2.x+ ) (thanks Sazo)
  • usage of Gson instead of net.sf.json.JSONObject (blacklisted starting from Jenkins 2.102+)
  • Introduction of Models and security improvements
The new features introduced by Bitbucket Push and Pull Request are:
  •  improved support of pushs for Bitbucket cloud (rest api v2.x+) and Bitbucket server with git and mercurial) and Bitbucket Server (5.14+ with git)
  • support of pull requests for Bitbucket cloud (rest api v2.x+) (thanks Sazo)
  • usage of Gson instead of net.sf.json.JSONObject (blacklisted starting from Jenkins 2.102+)
  • introduction Introduction of Models and security improvements

This plugin supports:
  • push and pull requests for Bitbucket cloud rest api v2.x+ and later push and for for Bitbucket server 5.14+ and later (Experimental)

Configuration

Before you start...

...

1.a. Configure the Bitbucket Repository under the Source Code Management with your credentials. For git:

Image Modified


1.b. In case you are using Mercurial instead of git, configure it as follows:


Image Modified

Please note: the plugin doesn't supports pull requests for Mercurial and the branch, which you want to trigger related to the events which trigger the builds, must be specified in the field Revision.


2. Now activate the plugin in your job selecting the "Build with Bitbucket Push and Pull Request Plugin" option in the Build Triggers pane.

Image RemovedImage Added


Environment variables

Environment variables for Bitbucket Cloud and Server pull requests

NAMEVALUE
BITBUCKET_SOURCE_BRANCHsource branch
BITBUCKET_TARGET_BRANCHtarget branch
BITBUCKET_PULL_REQUEST_LINKlink
BITBUCKET_PULL_REQUEST_IDid
BITBUCKET_PAYLOADpayload as json string

...

Code Block
languagegroovy
themeEclipse
titlePipeline script
properties([
    pipelineTriggers([
        [
            $class: 'BitBucketPPRTrigger',
            triggers : [
                [
                    $class: 'BitBucketPPRPullRequestTriggerFilter',
                    actionFilter: [
                        $class: 'BitBucketPPRPullRequestCreatedActionFilter'
                    ]
                ]
            ]
        ]
    ])
])
node {
	def sourceBranch = ""
        def targetBranch = ""
        try{
            sourceBranch = "${BITBUCKET_SOURCE_BRANCH}";
            targetBranch = "${BITBUCKET_TARGET_BRANCH}";
        }catch(e){}

        if(sourceBranch == ""){
            sourceBranch = 'development'
        }

        if(targetBranch == ""){
            targetBranch = 'master'
        }

        checkout changelog: true, poll: true, scm: [
            $class: 'GitSCM',
            branches: [
                [name: '*/'+sourceBranch]
            ],
            doGenerateSubmoduleConfigurations: false,
            extensions: [
                 [
                    $class: 'PreBuildMerge',
                    options: [
                        fastForwardMode: 'FF',
                        mergeRemote: 'origin',
                        mergeStrategy: 'recursive',
                        mergeTarget: ''+targetBranch
                    ]
                ]
            ],
            submoduleCfg: [],
            userRemoteConfigs: [
                [
                    url: 'https://[user]@bitbucket.org/[org]/[repo].git']
                ]
            ]


        echo 'Some build steps'

}


Change Log

2.2.0 (2019-10-14)

Full Changelog

Implemented enhancements:

  • Added checkbox to define if changes on the repos have to be confirmed through the git plugin before starting a job triggered by a push
  • Added pull request support for Mercurial on Bitbucket Cloud

Merged pull requests:

  • #60 change pull request #59 and reformatting by cdelmonte-zg
  • #59 adding logic to trigger target branch on merge by raghav-a
  • #58 an option for repository hasChange() conditional behaviour by cdelmonte-z
  • #55 workflows: implement isPipelineMultibranch check by macghriogair
  • #51 Job DSL multiple triggers by rhotau
  • #50 Support for multiple triggers from dsl by rhotau

2.0.0 (2019-06-25)

Full Changelog

Implemented enhancements:

  • Added pull request support for Bitbucket Server - Added pull request support for Mercurial on Bitbucket Cloud

Closed issues:

  • Issue #44 Branch expression matching before triggering the build: expecting fix for Bitbucket Server bug
  • Issue #37 Jenkins build triggered from push event with Mercurial instead of git enhancement

Merged pull requests: 

  • #49 Add warnings
  • #48 [Enhancement] Add pull request support for Bitbucket Server and Mercurial on Bitbucket Cloud

1.6.4 (2019-06-19)

Full Changelog

Closed issues:

  • Issue #38 BITBUCKETSOURCEBRANCH has wrong value for repo:push events 
  • Issue #36 Branch expression matching before triggering the build

Merged pull requests:

  • [fix] #47 Develop
  • [fix] #46 Improving tests for allowed branches 
  • [fix] #45 Develop

1.6.3 (2019-06-14)

Full Changelog

Closed issues: -

  • Issue #36 Branch expression matching before triggering the build

...

  • Issue #30 Version 1.6.2 throws exception after receiving PR payload bug

...

  • Issue #27 Builds not triggering with 1.6.1 and Bitbucket Server 7.0.1 bug

...

  • Issue #26 Add environment variable for git repository url

Merged pull requests: -

  • [fix] #41 BranchSpec pattern matching directions (by macghriogair)

...

  • [enhancement] #34 Create CODEOFCONDUCT.md (by eiriarte-mendez)

1.6.2 (2019-05-10)

Full Changelog

...

  • [dev] gitignore more project specific entries #13 by macghriogair


Issues

Jira
serverJenkins JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQuerycomponent = bitbucket-push-and-pull-request-plugin
serverIddd058dce-0c66-3b77-8b09-71b1d7728747