gitgithubjenkins.netrc

jenkins git plugin http auth .netrc


since the last update of jenkins and the git plugin the http auth via .netrc does not work anymore. I really checked many many threads about this issue.

I tried to use also the variant http://user:pass@url.tld/repo.git which works. But internally we are providing a vm which contains all needed jobs for development. Before the update we just edited the .netrc file in jenkins home folder and jenkins works perfectly.

I also tried already via console git clone http://url.tld/repo.git which works fine, even on the jenkins user.

Here are some details:

The .netrc

machine url
        login user
        password pass

Here the error of jenkins in the configuration mask: Failed to connect to repository : Failed to connect to http:// ....git (status = 401)

Would be fine if someone has an idea.


Solution

  • This issue was initially detected with the Git client plugin 1.4.3, and supposed to be fixed in 1.4.4 by Nicolas De Loof:
    See issue 20175.

    Try and downgrade the git client plugin to 1.4.4.
    If 1.4.5 introduced a regression, then re-open issue 20175.

    Florian's answer (upvoted) suggest a possible cause for git client plugin to 1.4.5, regarding the .netrc format.

    machine hostname login user password secret
    

    (one line only, instead of several lines)

    Florian insists in the comments about the presence of some bugs:

    • If you have multiple hosts defined in the .netrc file, the first one will be taken, no matter if it is the correct one or not.
    • Also, under windows a _netrc file will most probably not be found as it is not searched in the Jenkins user's home directory.
      It (a _netrc file) isn't read by the git client plugin (right now, November 2013) to retrieve the credentials.
      It works correctly with .netrc, but not with _netrc, no matter if Windows or Unix.
      So I would suggest to have an identical .netrc file in the home directory under Windows, in addition to the _netrc, until this bug (JENKINS-20688) is fixed.

    He mentions the presence of a jenkinsci/git-client-plugin patch on GitHub.