diff --git a/jenkins_jobs/modules/project_multibranch.py b/jenkins_jobs/modules/project_multibranch.py index 49b5f8e39..fb0cf043b 100644 --- a/jenkins_jobs/modules/project_multibranch.py +++ b/jenkins_jobs/modules/project_multibranch.py @@ -367,6 +367,8 @@ def bitbucket_scm(xml_parent, data): :arg bool discover-tags: Discovers tags on the repository. (default false) + :arg bool lfs: Git LFS pull after checkout. + (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-plugins:`SCM API @@ -484,6 +486,17 @@ def bitbucket_scm(xml_parent, data): XML.SubElement( traits, "com.cloudbees.jenkins.plugins.bitbucket.TagDiscoveryTrait" ) + + if data.get("lfs", False): + gitlfspull = XML.SubElement( + traits, "jenkins.plugins.git.traits.GitLFSPullTrait", {"plugin": "git"} + ) + XML.SubElement( + gitlfspull, + "extension", + {"class": "hudson.plugins.git.extensions.impl.GitLFSPull"}, + ) + 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") diff --git a/tests/multibranch/fixtures/scm_bitbucket_full.xml b/tests/multibranch/fixtures/scm_bitbucket_full.xml index 19a0b8954..2313aefdc 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 06c7ece41..59c37db9d 100644 --- a/tests/multibranch/fixtures/scm_bitbucket_full.yaml +++ b/tests/multibranch/fixtures/scm_bitbucket_full.yaml @@ -8,6 +8,7 @@ scm: repo: 'test' server-url: https://bitbucket.example.com:8080 discover-tags: true + lfs: true head-filter-regex: 'master|\d+\.\d+' discover-pr-origin: headOnly discover-branch: all