我一直在关注以下链接,以便使用 Web Hook 将 Gitlab 与 Jenkins 集成。以下所有链接都提到在 Jenkins 端接收“JSON”或“有效负载”或 token ,但当我尝试在 Jenkins 配置的 Shell 脚本中回显或打印这些参数时,我什么也没看到。
在 shell 脚本中我有这个,但我从来没有收到任何有效载荷:
echo "the build worked! The payload is $payload"
我确实在/var/log/Jenkins/Jenkins.logs 上看到了一些 JSON,但我想看到进入我的“控制台输出”中的消息,以便我可以使用来自 Gitlab 的消息来确定是否触发 build 与否。
大多数这些链接提到的选项都不能通过 Gitlab 获得。一篇文章提到将 web hook 格式转换为 application/json,但 Gitlab UI 上没有这样的选项。
How to process a github webhook payload in Jenkins?
http://chloky.com/github-json-payload-in-jenkins/
Jenkins 设置:
Gitlab 网络钩子(Hook):
http://xx.xx.xx.xxx:8080/job/Interim_Build/buildWithParameters?token=TOKEN_NAME
任何帮助都会很棒。谢谢。
最佳答案
我建议您尝试两种解决方案(都为我工作):
它将接受 webhook 请求,并将其转换为对
target_url
的请求。格式为:payload
: JSON 正文 START
: 开始提交哈希 END
: 结束提交哈希 REFNAME
: 引用名称 对我来说最好的是第一个,因为它简单且更透明。
关于jenkins - Gitlab Webhook 和 Jenkins : No Data Received,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723864/