Jenkins凭据插件和GIT客户端无法正常工作

时间:2014-03-01 20:34:56

标签: git apache authentication jenkins continuous-integration

我正在使用Git Client插件将Jenkins连接到我的存储库(理论上)。我无法使用基本HTTP身份验证连接到repo。当我输入用户名:手动密码我能够连接。我已尝试了许多不同的连接方式,似乎没有任何工作按预期工作。如果我关闭我的HTTP身份验证,Jenkins成功连接并构建没有问题。我正在使用......

  • 证书1.10
  • Jenkins Git客户端插件1.6.3
  • Jenkins Git插件2.0.3
  • Apache,服务器上的Git 1.7.1

如果我尝试通过诸如http://username:password@git.mydomain.com之类的东西设置作业配置中的路径,它似乎会自动检查路径的有效性并且不会抱怨。但是,当我实际构建作业时使用此方法我的服务器报告密码不匹配错误(它显示用户名但不显示错误中的密码,我假设密码实际上已用,但我很想知道) 。这是Apache error_log中的错误:

user jenkins: authentication failure for "/info/refs": Password Mismatch

如果我在凭据框中输入相同的凭据,则它不会连接并吐出:

Failed to connect to repository : Command "git config --local credential.helper store --file=/var/lib/jenkins/tmp/git4177869325176518383.credentials" returned status code 129:
stdout: 
stderr: error: unknown option `local'
usage: git config [options]

我没有在git手册中看到--local,也许我需要一个模块?

1 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。问题是Jenkins Git插件期望在git服务器上安装Jenkins版本1.8或更高版本 - 但不检查或警告您使用的是发布日期。 (git 1.8支持为--local指定git config选项; git 1.7不支持。{/ p>

您可以使用多种方法来解决此问题:

  1. 更新服务器上安装的git版本。
  2. 让Jenkins根据需要下载git,并使用该版本来构建项目。 (这需要相当多的配置。)此选项不使用服务器上安装的git副本。
  3. Jenkins使用JGit(git的纯Java版本,不需要在服务器上安装git) - 据我所知,这使用了Jenkins Git Client附带的JGit。
  4. 选项2&可以通过 Git / Git安装部分的管理Jenkins /配置系统页面上的添加Git 按钮获得3个。

    我的服务器运行Ubuntu 10.4 LTS,标准存储库中没有可用的git 1.8软件包,我不想在我的服务器上安装非打包软件,所以我排除了选项1。我发现选项2的配置过于繁琐,并没有给我一种温暖的感觉,它会继续适用于新的git版本。所以这给我留下了选项3,这对我来说一直很好。