diff --git a/jenkins_jobs/modules/project_multibranch.py b/jenkins_jobs/modules/project_multibranch.py index ba8a43c45..35f65e034 100644 --- a/jenkins_jobs/modules/project_multibranch.py +++ b/jenkins_jobs/modules/project_multibranch.py @@ -302,6 +302,9 @@ def bitbucket_scm(xml_parent, data): :arg bool discover-tags: Discovers tags on the repository. (default false) :arg str server-url: The address of the bitbucket server. (optional) + :arg str head-filter-regex: A regular expression for filtering + discovered source branches. Requires the :jenkins-wiki:`SCM API Plugin + `. Minimal Example: @@ -336,6 +339,10 @@ def bitbucket_scm(xml_parent, data): if data.get('discover-tags', False): XML.SubElement(traits, 'com.cloudbees.jenkins.plugins.bitbucket.TagDiscoveryTrait') + if data.get('head-filter-regex', None): + rshf = XML.SubElement(traits, + 'jenkins.scm.impl.trait.RegexSCMHeadFilterTrait') + XML.SubElement(rshf, 'regex').text = data.get('head-filter-regex') def gerrit_scm(xml_parent, data): diff --git a/tests/multibranch/fixtures/scm_bitbucket_full.xml b/tests/multibranch/fixtures/scm_bitbucket_full.xml index 9351cfe7b..388b87c46 100644 --- a/tests/multibranch/fixtures/scm_bitbucket_full.xml +++ b/tests/multibranch/fixtures/scm_bitbucket_full.xml @@ -39,6 +39,9 @@ https://bitbucket.example.com:8080 + + master|\d+\.\d+ + diff --git a/tests/multibranch/fixtures/scm_bitbucket_full.yaml b/tests/multibranch/fixtures/scm_bitbucket_full.yaml index 7852c0bb0..10f665f2a 100644 --- a/tests/multibranch/fixtures/scm_bitbucket_full.yaml +++ b/tests/multibranch/fixtures/scm_bitbucket_full.yaml @@ -8,3 +8,4 @@ scm: repo: 'test' server-url: https://bitbucket.example.com:8080 discover-tags: true + head-filter-regex: 'master|\d+\.\d+'