summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLadislav Thon <lthon@redhat.com>2018-03-06 14:50:54 +0100
committerSergii Kipot <kipot.sergey@gmail.com>2019-01-31 17:08:34 +0000
commita2ad875fd755ee93654c07e3649ace72bc4a4727 (patch)
treed2ed11b364138b1569ccb577742ac40a8fb24973
parentc59b5a5258c875d814b1ada82fd7bbaf7de97a26 (diff)
downloadpython-jenkins-job-builder-a2ad875fd755ee93654c07e3649ace72bc4a4727.tar.gz
python-jenkins-job-builder-a2ad875fd755ee93654c07e3649ace72bc4a4727.tar.xz
python-jenkins-job-builder-a2ad875fd755ee93654c07e3649ace72bc4a4727.zip
add the "honorRefspec" option to the Git SCM
Taken from github pull request https://github.com/openstack-infra/jenkins-job-builder/pull/64/files Change-Id: Ib051a46daa4a3e2d6add74cc9c1c3c1eb766672a
-rw-r--r--jenkins_jobs/modules/scm.py8
-rw-r--r--tests/scm/fixtures/git-cloneoptions01.xml1
-rw-r--r--tests/scm/fixtures/git-cloneoptions01.yaml1
3 files changed, 9 insertions, 1 deletions
diff --git a/jenkins_jobs/modules/scm.py b/jenkins_jobs/modules/scm.py
index 519550ce..87429f8d 100644
--- a/jenkins_jobs/modules/scm.py
+++ b/jenkins_jobs/modules/scm.py
@@ -172,6 +172,8 @@ def git(registry, xml_parent, data):
* **depth** (`int`) - Set shallow clone depth (default 1)
* **do-not-fetch-tags** (`bool`) - Perform a clone without tags
(default false)
+ * **honor-refspec** (`bool`) - Perform initial clone using the refspec
+ defined for the repository (default false)
* **sparse-checkout** (`dict`)
* **paths** (`list`) - List of paths to sparse checkout. (optional)
* **submodule** (`dict`)
@@ -443,7 +445,8 @@ def git_extensions(xml_parent, data):
clone_options = (
"shallow-clone",
"timeout",
- "do-not-fetch-tags"
+ "do-not-fetch-tags",
+ "honor-refspec",
)
if any(key in data for key in clone_options):
ext_name = impl_prefix + 'CloneOption'
@@ -465,6 +468,9 @@ def git_extensions(xml_parent, data):
data.get('do-not-fetch-tags', False)).lower()
if 'timeout' in data:
XML.SubElement(ext, 'timeout').text = str(data['timeout'])
+ if 'honor-refspec' in data:
+ XML.SubElement(ext, 'honorRefspec').text = str(
+ data.get('honor-refspec', False)).lower()
if not trait and 'sparse-checkout' in data:
ext_name = impl_prefix + 'SparseCheckoutPaths'
ext = XML.SubElement(xml_parent, ext_name)
diff --git a/tests/scm/fixtures/git-cloneoptions01.xml b/tests/scm/fixtures/git-cloneoptions01.xml
index 722f773a..f4e0c78b 100644
--- a/tests/scm/fixtures/git-cloneoptions01.xml
+++ b/tests/scm/fixtures/git-cloneoptions01.xml
@@ -28,6 +28,7 @@
<shallow>false</shallow>
<depth>1</depth>
<noTags>true</noTags>
+ <honorRefspec>true</honorRefspec>
</hudson.plugins.git.extensions.impl.CloneOption>
<hudson.plugins.git.extensions.impl.WipeWorkspace/>
</extensions>
diff --git a/tests/scm/fixtures/git-cloneoptions01.yaml b/tests/scm/fixtures/git-cloneoptions01.yaml
index 5a6a8f3d..5aced6c5 100644
--- a/tests/scm/fixtures/git-cloneoptions01.yaml
+++ b/tests/scm/fixtures/git-cloneoptions01.yaml
@@ -4,3 +4,4 @@ scm:
branches:
- master
do-not-fetch-tags: true
+ honor-refspec: true