Gitlab Webhook和Jenkins:没有数据收到

Dev*_*irl 10 jenkins gitlab

我一直在关注以下链接,以便使用Web钩子将Gitlab与Jenkins集成.以下所有链接都提到在Jenkins端接收'JSON'或'payload'或令牌,但是当我尝试在Jenkins配置的Shell脚本中回显或打印这些参数时,我什么也看不到.

在shell脚本中我有这个,但我从来没有收到任何有效载荷:

回声"构建工作!有效载荷是$ payload"

我确实在/var/log/Jenkins/Jenkins.logs上看到了一些JSON,但是我希望在"控制台输出"中看到消息,这样我就可以使用Gitlab中的消息来触发是否建立.

大多数这些链接提到的选项不能通过Gitlab获得.有一篇文章提到将Web钩子格式转换为application/json,但Gitlab UI上没有这样的选项. 如何在Jenkins中处理github webhook有效负载? http://chloky.com/github-json-payload-in-jenkins/

詹金斯设置: 詹金斯设置

Gitlab webhook:

http://xx.xx.xx.xxx:8080/job/Interim_Build/buildWithParameters?token=TOKEN_NAME

任何帮助都会很棒.谢谢.

小智 1

我建议您尝试两种解决方案(都对我有用):

  1. 使用这个用 Go 编写的优雅代理从 Gitlab webhook 转换 json 数据https://github.com/akira/githookproxy。它将接受 webhook 请求,并将其转换为以下target_url格式的请求:

    • payload: JSON 正文
    • START:开始提交哈希
    • END: 结束提交哈希
    • REFNAME: 参考名称
  2. 使用此 Jenkins 插件将 jenkins 模拟为 Gitlab CI https://github.com/jenkinsci/gitlab-plugin

对我来说最好的是第一个,因为它简单且更透明。