使用POST请求触发Jenkins构建

使用POST请求触发Jenkins构建,jenkins,gitlab-7,Jenkins,Gitlab 7,这似乎是一个非常简单的问题,但我还没有找到一个有效的解决方案。基本上,我从Gitlab创建了一个web钩子,以便在每次提交时触发Jenkins中的构建。但是,Jenkins希望web钩子请求使用GET方法,而Gitlab web钩子使用POST方法发出请求。有没有办法解决这个问题 从我所做的搜索来看,詹金斯似乎曾经想要一个POST请求,但现在已经不是这样了。我将Jenkins 1.610与Gitlab 7.9.4一起使用。您尝试过这个吗 我在NodeJS中提出了自己的解决方案。从Gitlab捕获

这似乎是一个非常简单的问题,但我还没有找到一个有效的解决方案。基本上,我从Gitlab创建了一个web钩子,以便在每次提交时触发Jenkins中的构建。但是,Jenkins希望web钩子请求使用GET方法,而Gitlab web钩子使用POST方法发出请求。有没有办法解决这个问题

从我所做的搜索来看,詹金斯似乎曾经想要一个POST请求,但现在已经不是这样了。我将Jenkins 1.610与Gitlab 7.9.4一起使用。

您尝试过这个吗


我在NodeJS中提出了自己的解决方案。从Gitlab捕获一个web钩子POST请求,并将该请求作为GET请求转发给Jenkins,这几乎是一种黑客行为

代码如下:


我制作了两个版本,第一个版本希望您在字符串查询中包含项目名称和令牌。第二个将只需将您拥有的任何url传递给Jenkins,并返回Jenkins的响应。

结果表明,由于我启用了CSRF保护,任何未获取Jenkins的请求都会被拒绝。禁用CSRF,我可以通过POST请求触发Jenkins。

这需要Gitlab EE版本。您将webhook发送到哪个地址?
/git/notifyCommit
端点接受POST请求。您尝试过Jenkins的GitLab插件吗?我只是检查了/git/notifyCommit端点,它不接受POST请求。不过,它确实接受GET。我尝试了GitLab插件,但无法正确设置身份验证令牌,因此,我甚至无法访问我的作业配置:(
/git/notifyCommit
端点确实接受POST请求。您可以看到它在这里工作:
curl-v-X POSThttps://ci.jenkins-ci.org/git/notifyCommit?url=git@github.com:jenkinsci/jenkins.git