2011-08-05 62 views
9

我在測試服務器上設置了帶有Github插件的Jenkins。我已經通過只允許通過身份驗證的用戶(匿名用戶沒有任何權利)和安全連接來保護Jenkins。通過HTTP將Github連接到安全的Jenkins Post-Commit Hook

不幸的是,Github提供的post-commit hook在我的情況下似乎不起作用。我試圖手動訪問網址https://jenkins.on.my.server/github-webhook/,它給了我一個「net.sf.json.JSONException:null對象」錯誤,這很好,因爲我沒有發佈任何JSON以及我的請求。

我的問題:

我已獲得詹金斯與身份驗證的用戶,因此,我必須在格式https://[email protected]:jenkins.on.my.server/github-webhook/使用的網址,對不對?由於我不想通過網絡發佈證書,我可以使用安全連接作爲Github的post-commit鉤子嗎?

回答

2

有這個撥弄相當一段後當時,我最終使用Jenkins的優秀Github OAuth Plugin。引用文檔:

從版本0.4開始,有一種方法來授權使用github-webhook回調url從Github接收提交後的掛鉤。

隨着觸發構建的Github Plugin,這工作最優雅!

+0

你還必須設置在這種情況下,post-commit鉤子? –

+0

是的,從Github到Jenkins的通信仍然通過post-commit鉤子完成。 Github OAuth插件解決了我的問題,因爲我可以排除掛鉤的URL不受保護,從而允許Github通知我提交。 – r3nj1

+1

如果您使用Github OAuth,請不要忘記檢查'爲/ github-webhook授予讀取權限',這將允許webhook由Github服務器在未經身份驗證的情況下執行。當我安裝插件時,這並未默認啓用,並花了一些時間來挖掘爲什麼我的構建沒有被觸發。 – qnm

3

見我的博客文章對這個問題:

http://fourkitchens.com/blog/2011/09/20/trigger-jenkins-builds-pushing-github

我們成功地使用HTTPS URL中,並且是它支持你有沒有語法(這應該是用戶名:密碼@ JE nasa.on.my.server,正如Sasa Djolic指出的那樣)。

確保作業本身已正確配置,因此在構建時,它會正確連接到Github並克隆存儲庫。

請記住,Jenkins插件使用傳入的POST數據自動決定要構建哪些作業,因此在遠程觸發器工作之前需要正確設置和構建作業。

同時,保證了用戶在安裝在詹金斯具有正確的權限(總體看,工作創建和工作讀)的建議在這裏:

Jenkins and GitHub webhook: HTTP 403