Gitlab Jenkins Webhook 集成

Gitlab Jenkins Webhook integration

所以目的是在推送到 Gitlab Repo 后触发 Jenkins 作业的构建,简单吧?

下载Gitlab插件后,设置项目,还是不行。我收到 403 错误。

经过反复试验,我是这样解决问题的:

我尝试的事情:
Web hook fails when Jenkins Anonymous user does not have job/build permission
Need to document GitLab -> Jenkins authentication setup 如何解决 GitLab 集成 Webhook 错误 "Permission you need to have (but didn't) hudson.model.Hudson"?

这是我修复此错误所遵循的步骤

"Hook executed successfully but returned HTTP 403... You are authenticated as anonymous Groups that you are in: Permission you need to have (but didn't) hudson.model.Hudson.Read...which is implied by hudson.security.Permission.GenericRead..."

转到 Jenkins>管理 Jenkins>配置
转到 Gitlab 部分并确保是这样的: 设置所有这些后,测试您的连接并确保成功。

在您的 Jenkins 项目上,转到 配置 > 构建触发器 和 select
在将更改推送到 Gitlab 时构建。 Gitlab 网络钩子 URL...
另外,确保在高级设置中生成令牌


现在在 Gitlab 中转到 Project>Settings>Integrations 粘贴你在Jenkins项目中得到的URL,以及Gitlab Build Triggers部分生成的token,去掉ssl验证

现在点击保存并测试你的钩子

您应该在 Gitlab 和 Jenkins 上收到 200 条成功消息,触发作业:


如果不是这种情况并且您仍然收到 403,您可以执行以下操作:

在 Gitlab 中,将一个 Jenkins 用户添加到您的项目(您试图从中触发 webhook 的用户)。这次应该可以了!!!

疑难解答

如果它仍然无法正常工作,您可以使用的另一个助手是向 Jenkins 添加一个记录器 转到 Jenkins > 管理 Jenkins > 系统日志

  • 添加一个新的日志记录器。输入记录器的名称
  • 在输入字段中添加记录器。开始输入 gitlab 或 webhooks,
    任何与 Gitlab 或 webhooks 相关的东西:)
    当你从 Gitlab 中命中时,点击保存并开始查看发生了什么