Get Jenkins Working with Private Repo

73 views
Skip to first unread message

Pratik Dhandharia

unread,
Aug 24, 2015, 3:45:38 PM8/24/15
to Jenkins Users
Hi All,

I am comparatively new to Jenkins and I am trying to troubleshoot a Jenkins issue where we are trying to fetch a public repository which has multiple private sub-modules. It is due to legal reasons we cannot keep the private sub-modules public.

So I have most of the plugin's installed in Jenkins. I have configured Jenkins to store the jenkins user credential using the credential plugin.

What I am really trying to do is, fetching the private sub-modules using credentials (username and password). I don't want to switch to using SSH key of the jenkins user for pulling the private sub-modules. And here is the error that I get:

 > /usr/bin/git submodule sync # timeout=10
 > /usr/bin/git config --get remote.origin.url # timeout=10
 > /usr/bin/git submodule update --init --recursive
FATAL: Command "/usr/bin/git submodule update --init --recursive" returned status code 1:
stdout: 
stderr: fatal: Authentication failed
Unable to fetch in submodule path

Can someone please help point out if the Jenkins Git Client Plugin, work with fetching private repositories using credentials(username and password)?

Thanks

Ginga, Dick

unread,
Aug 24, 2015, 3:52:47 PM8/24/15
to jenkins...@googlegroups.com

I solved this problem on Windows by adding this as a buildstep before the SCM runs:

 

git.exe config --global credential.helper wincred

 

it is specifically needed for sub-modules. The local cred store does not handle sub-modules (I think)

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/f7c231e9-fce6-4d7f-b420-109ce6fe5cf9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Pratik Dhandharia

unread,
Aug 25, 2015, 10:53:27 AM8/25/15
to Jenkins Users
So this means, that Jenkins invokes shell git command, when it is trying to poll SCM?

I am in middle of testing this approach of using credential.helper.

Thanks!

Ginga, Dick

unread,
Aug 25, 2015, 10:57:12 AM8/25/15
to jenkins...@googlegroups.com

Not before a POLL but in the job before it pulls from git. Something else polls or triggers the build.

 

I also think it can be done once but does not hurt to do again so I just always do it

Pratik Dhandharia

unread,
Aug 25, 2015, 11:18:17 AM8/25/15
to Jenkins Users
Also the command you suggested,

git.exe config --global credential.helper wincred

Here, wincred is your windows credential right? on the man page, I could see the credential.helper accepting only two arguments,

git config --global credential.helper store
git config --global credential.helper cache

I did not find any manual page suggesting your command option of wincred.

Can you please elaborate more on the "wincred"?

Thanks.

Ginga, Dick

unread,
Aug 25, 2015, 11:21:33 AM8/25/15
to jenkins...@googlegroups.com

Wincred is the Windows Credential store. You probably want something else for your host OS

jcsirot

unread,
Aug 26, 2015, 10:53:13 AM8/26/15
to Jenkins Users
I faced the same issue and I decided to recompile the git plugin (actually the git-client plugin which is a dependency of the git plugin) with the patch submited in that Pull Request: https://github.com/jenkinsci/git-client-plugin/pull/180/files (Note I'm not the author of this patch)

It handles the single sub-case where all git submodules are using the same credentials (and this is probably why it has not been merged yet) but it works for me.

-- 
JC
Reply all
Reply to author
Forward
0 new messages