2015-04-23 364 views
0

這似乎是一個非常簡單的問題,但我還沒有找到可行的解決方案。基本上我創建了一個來自Gitlab的web鉤子來觸發Jenkins中的每一次提交構建。但是,Jenkins需要GET方法的Web鉤子請求,並且Gitlab Web鉤子使用POST方法發出請求。無論如何要解決這個問題嗎?觸發器Jenkins使用POST請求構建

從我所做的搜索看來,詹金斯曾經想要一個POST請求,但它不再是這種情況。我正在使用Jenkins 1.610和Gitlab 7.9.4。

+0

你發送webhook的地址是? '/ git/notifyCommit'端點接受POST請求。你有沒有試過Jenkins的GitLab插件? –

+0

我只是檢查/ git/notifyCommit端點,它不接受POST請求。它確實接受GET。我嘗試了GitLab插件,但是我無法正確設置身份驗證令牌,因此我甚至無法訪問我的作業配置:( – Khanetor

+0

'/ git/notifyCommit'端點確實接受POST請求,您可以在這裏看到它:'' curl -v -X POST https://ci.jenkins-ci.org/git/notifyCommit?[email protected]:jenkinsci/jenkins.git' –

回答

0

事實證明,因爲我啓用了CSRF保護,所以拒絕任何對Jenkins的非GET請求。禁用CSRF,我可以用POST請求觸發Jenkins。

0

我做了我自己的一個的NodeJS解決方案。從Gitlab獲取Web鉤子POST請求並將該請求作爲GET請求轉發給Jenkins幾乎是一種攻擊。

下面是代碼:http://git.myladybug.co/khanetor/githook-jenkins-trigger.git

我做了2個版本,第一個會要你包括項目名稱,並在你的查詢字符串令牌。第二個將簡單地傳遞你有任何網址給詹金斯,並返回詹金斯的迴應。