2014-03-01 31 views
3

我使用Git客戶端插件將Jenkins連接到我的存儲庫(理論上)。我無法使用基本HTTP身份驗證連接到回購站。當我手動輸入用戶名:密碼時,我可以連接。我嘗試了許多不同的方式進行連接,沒有任何東西看起來像預期的那樣工作。如果我關閉了我的HTTP身份驗證,Jenkins成功連接並構建而沒有問題。我使用...Jenkins憑證插件和GIT客戶端不工作

  • 憑據1.10
  • 詹金斯Git的客戶端插件1.6.3
  • 詹金斯的Git插件2.0.3
  • 阿帕奇,在服務器上的Git 1.7.1

如果我嘗試通過像http://username:[email protected]這樣的東西來設置作業配置中的路徑,它似乎自動檢查路徑的有效性並且不會抱怨。但是,當我真正構建作業時使用這種方法,我的服務器報告了一個密碼不匹配錯誤(它顯示了用戶名,但沒有顯示錯誤中的密碼,我假設實際上使用了密碼,儘管我很想知道) 。這是在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] 

我沒有看到--local git手冊,也許有我需要的一個模塊?

回答

3

我有同樣的問題。問題是Jenkins Git插件預計在Jenkins服務器上安裝了git版本1.8或更高版本 - 但不檢查或警告您使用的是過期版本。 (git 1.8支持git config被指定--local選項; git 1.7不。)

有許多可用的選項給你來解決此:

  1. 更新的Git版本上安裝你的服務器。
  2. 讓Jenkins根據需求下載git,並使用該版本構建項目。 (這需要相當多的配置。)該選項不使用服務器上安裝的git副本。
  3. 讓詹金斯使用JGit(純Java版本的git,它不需要將git安裝在您的服務器上) - 這就使用了Jenkins Git Client附帶的JGit,據我所知。

選項2 & 3都可以通過添加上的Git按鈕管理詹金斯/配置系統頁面在的Git/Git的安裝部分。

我的服務器運行的是Ubuntu 10.4 LTS,因爲標準存儲庫中沒有可用的git 1.8軟件包,我更喜歡不在我的服務器上安裝非打包軟件,所以排除了我的選項1。我發現選項2的配置過於繁瑣,並沒有給我一種溫暖的感覺,它會繼續爲新的git發佈工作。所以給我留下了選項3,這對我來說一直工作正常。