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