summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAzat Khuzhin <a3at.mail@gmail.com>2017-03-31 20:44:35 +0300
committerAzat Khuzhin <a3at.mail@gmail.com>2017-04-04 14:00:16 +0300
commit9e51beb8044367fe46ca9636a715ebcb683703c5 (patch)
tree55835cb3ec7edb4cb212f698f9ffdf021bdc912e
parent4f77324feae72a0663441a6b47591409b4fb0396 (diff)
downloadpython-jenkins-job-builder-9e51beb8044367fe46ca9636a715ebcb683703c5.tar.gz
python-jenkins-job-builder-9e51beb8044367fe46ca9636a715ebcb683703c5.tar.xz
python-jenkins-job-builder-9e51beb8044367fe46ca9636a715ebcb683703c5.zip
scm: introduce parent-credentials for git submodules
Jenkins Git plugin does not use your configured credentials for cloning submodules, but you can told it to use credentials from parent repository, by checking "Use credentials from default remote of parent repository", and this "parent-credentials" will set that option. So without this option jenkins git plugin will not be able to clone submodules, if they are not public available. The default value is "false", like in jenkins git plugin. See-also: https://issues.jenkins-ci.org/browse/JENKINS-20941 Change-Id: I1cfb3f45bb082f538eff1a9e64a03be27f759a5f Signed-off-by: Azat Khuzhin <a3at.mail@gmail.com>
-rw-r--r--jenkins_jobs/modules/scm.py4
-rw-r--r--tests/macros/fixtures/scm/obj-in-scm-macro001.xml1
-rw-r--r--tests/scm/fixtures/git-submodule01.xml1
-rw-r--r--tests/scm/fixtures/git-submodule01.yaml1
4 files changed, 7 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/scm.py b/jenkins_jobs/modules/scm.py
index d5dbe0c2..dbbfc8e9 100644
--- a/jenkins_jobs/modules/scm.py
+++ b/jenkins_jobs/modules/scm.py
@@ -181,6 +181,8 @@ def git(registry, xml_parent, data):
* **tracking** (`bool`) - Retrieve the tip of the configured
branch in .gitmodules (Uses '\-\-remote' option which requires
git>=1.8.2)
+ * **parent-credentials** (`bool`) - Use credentials from default
+ remote of parent repository (default false).
* **reference-repo** (`str`) - Path of the reference repo to use
during clone (optional)
* **timeout** (`int`) - Specify a timeout (in minutes) for
@@ -396,6 +398,8 @@ def git(registry, xml_parent, data):
data['submodule'].get('recursive', False)).lower()
XML.SubElement(ext, 'trackingSubmodules').text = str(
data['submodule'].get('tracking', False)).lower()
+ XML.SubElement(ext, 'parentCredentials').text = str(
+ data['submodule'].get('parent-credentials', False)).lower()
XML.SubElement(ext, 'reference').text = str(
data['submodule'].get('reference-repo', ''))
XML.SubElement(ext, 'timeout').text = str(
diff --git a/tests/macros/fixtures/scm/obj-in-scm-macro001.xml b/tests/macros/fixtures/scm/obj-in-scm-macro001.xml
index 0dd63a6b..e382ff61 100644
--- a/tests/macros/fixtures/scm/obj-in-scm-macro001.xml
+++ b/tests/macros/fixtures/scm/obj-in-scm-macro001.xml
@@ -42,6 +42,7 @@
<disableSubmodules>false</disableSubmodules>
<recursiveSubmodules>true</recursiveSubmodules>
<trackingSubmodules>false</trackingSubmodules>
+ <parentCredentials>false</parentCredentials>
<reference/>
<timeout>10</timeout>
</hudson.plugins.git.extensions.impl.SubmoduleOption>
diff --git a/tests/scm/fixtures/git-submodule01.xml b/tests/scm/fixtures/git-submodule01.xml
index 9aac9a46..3d36a714 100644
--- a/tests/scm/fixtures/git-submodule01.xml
+++ b/tests/scm/fixtures/git-submodule01.xml
@@ -26,6 +26,7 @@
<disableSubmodules>true</disableSubmodules>
<recursiveSubmodules>true</recursiveSubmodules>
<trackingSubmodules>true</trackingSubmodules>
+ <parentCredentials>true</parentCredentials>
<reference>/jenkins_home/.gitcache/submodules</reference>
<timeout>15</timeout>
</hudson.plugins.git.extensions.impl.SubmoduleOption>
diff --git a/tests/scm/fixtures/git-submodule01.yaml b/tests/scm/fixtures/git-submodule01.yaml
index 014518d0..dc2ab720 100644
--- a/tests/scm/fixtures/git-submodule01.yaml
+++ b/tests/scm/fixtures/git-submodule01.yaml
@@ -5,5 +5,6 @@ scm:
disable: true
recursive: true
tracking: true
+ parent-credentials: true
reference-repo: /jenkins_home/.gitcache/submodules
timeout: 15