2015-04-23 363 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个版本,第一个会要你包括项目名称,并在你的查询字符串令牌。第二个将简单地传递你有任何网址给詹金斯,并返回詹金斯的回应。