Gitlab Webhook 无法启动 Jenkins 作业(通过 Build Token Root 插件)

Gitlab Webhook cant launch Jenkins job (via Build Token Root Plugin)

我想在提交到 GitLab(git 面板)后自动开始 Jenkins 构建。

所以我设置了这个插件 https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin 并配置了它:

然后我将 webhook 添加到 GitLab:

现在我可以通过 http 请求(例如来自浏览器)启动 Jenkins 任务,但是 w/o 从 Gitlab 成功(通过按钮 "Test Hook")。为什么?

GitLab的webhook和http-request不一样吗?

我可以通过 https://wiki.jenkins-ci.org/display/JENKINS/Gitlab+Hook+Plugin 自动启动这个 Jenkins 作业,但是不能,因为 Jenkins 标准 git 插件的限制。

你说你已经配置了 Build Token Root Plugin,但是你的 webhook URL 以 /build?token=test.

结尾

虽然如果你阅读插件文档,它会说:

This plugin offers an alternate URI pattern which is not subject to the usual overall or job read permissions. Just ping buildByToken/build?job=NAME&token=SECRET.

您正在使用的 URL 在具有身份验证的 Jenkins 设置中将不起作用——因此存在 Build Token Root 插件的原因——您需要使用该插件的 URL 模式。

即在你的情况下,它应该是这样的:
https://jenkins.example.com/buildByToken/build?job=Config+Generator+Launch+UAT+PP+PROD&token=test

我觉得你在工作名称中有两层 /job/ 有点奇怪,但也许你正在使用文件夹插件或其他东西?所以也许 job 参数必须是 Configuration+Delivery/job/Config+Generator+Launch+UAT+PP+PROD 左右。

在任何情况下,您都可以通过直接从浏览器调用这些 URL 来玩,而不必更改 GitLab 挂钩 URL 并点击 Test Hook 每次.