jenkins git plugin http auth .netrc

时间:2013-10-26 10:45:37

标签: git github jenkins .netrc

自上次更新jenkins和git插件以来,http auth via .netrc不再起作用了。关于这个问题我真的检查了很多线程。

我尝试使用可行的变体http://user:pass@url.tld/repo.git。但在内部我们提供的vm包含了开发所需的所有工作。在更新之前,我们刚刚在jenkins主文件夹中编辑了.netrc文件,jenkins工作得很好。

我也已经通过控制台git clone http://url.tld/repo.git尝试了,即使在jenkins用户上也能正常工作。

以下是一些细节:

  • Jenkins:v1.536
  • GIT插件:v2.0
  • GIT客户端插件:v1.4.5
  • GIT:1.8.4.GIT
  • Centos:6.4
  • Java:1.6.0

.netrc

machine url
        login user
        password pass

此处配置掩码中jenkins的错误:无法连接到存储库:无法连接到http:// .... git(status = 401)

如果有人有想法会好的。

5 个答案:

答案 0 :(得分:2)

使用Git客户端插件1.4.5,您需要为.netrc文件使用不同的格式。 Git客户端插件需要.netrc文件中主机的信息全部在一行中。所以改变这个

machine hostname
    login user
    password secret

到这个

machine hostname login user password secret

应该让它再次运作。

当然不是插件方面的最佳实现,但不幸的是目前的情况。请注意,行中的单词之间只能有一个空格。避免尾随空格。

除此之外,由于存在错误,无论主机名是否匹配,都将获取文件中的第一行。因此,如果您需要在.netrc文件中拥有多个主机,那么这将无效。或者更确切地说只列出第一个。没有已知的解决方法。

请注意,如果您在Windows下使用_netrc文件,很可能无法找到它,因为git客户端插件(版本1.4.6)不会在Jenkins用户的家中搜索它目录。解决办法是在Windows下有一个.netrc文件。

答案 1 :(得分:1)

最初使用Git客户端插件1.4.3检测到此问题,并且应该通过Nicolas De Loof在1.4.4中修复:
请参阅issue 20175

尝试将git客户端插件降级到1.4.4 如果1.4.5引入了回归,则重新开放20175年。

Floriananswer(upvoted)建议git客户端插件的可能原因为1.4.5,关于.netrc格式。

machine hostname login user password secret

(仅限一行,而不是几行)

Florian坚持in the comments存在一些错误:

  
      
  • 如果您在.netrc文件中定义了多个主机,则无论是否正确,都将采用第一个主机。
  •   
  • 此外,在Windows下,很可能找不到_netrc文件,因为它未在Jenkins用户的主目录中搜索。
      git客户端插件(现在,2013年11月)无法读取它(_netrc文件)以检索凭据。
      它适用于.netrc,但不适用于_netrc,无论是Windows还是Unix   所以除了.netrc之外,我建议在Windows下的主目录中有一个相同的_netrc文件,直到修复了这个错误(JENKINS-20688)。
  •   

He mentions存在 jenkinsci/git-client-plugin patch on GitHub

答案 2 :(得分:1)

此处为所有其他人添加:

下载降级文件的链接:

Git客户端插件1.0.7:http://mirrors.jenkins-ci.org/plugins/git-client/1.0.7/git-client.hpi

Git Plugin 1.4.0:http://mirrors.jenkins-ci.org/plugins/git/1.4.0/git.hpi

答案 3 :(得分:0)

我不得不将Git客户端插件降级到1.3.0版本,以使其再次运行。

以下是下载链接:http://mirrors.jenkins-ci.org/plugins/git-client/1.3.0/git-client.hpi

答案 4 :(得分:0)

FWIW,对我来说,issue 21015

提到了解决方法