Jenkins 未由 github-webhook 触发

Jod*_*odo 9 github webhooks jenkins

我已采取以下步骤:

  • 勾选“GitHub项目”并设置项目
  • 检查“GITScm 轮询的 GitHub 挂钩触发器”
  • 使用用户/密码设置与私有存储库的连接
  • 如果我手动构建,它可以工作
  • 在 GitHub 中,创建一个推送到http://my_jenkins_url/github-webhook/ 的webhook
  • 每当我提交某些内容时,它都会显示已发送 webhook 并且我收到 200 响应代码(在 github 上)

但 Jenkins 上没有触发任何构建。GitHub Hook 日志显示:“轮询尚未运行。”。我怎样才能让它“开始”?我怎样才能进一步调试这个?

编辑:自从我遇到身份验证问题以来,我还没有在管理 Jenkins -> 配置 -> GitHub 中添加 GitHub 服务器(但这将是一个不同的问题)。github webhooks 需要这个吗?

EDIT2:我弄清楚了如何将 GitHub API 添加到 Jenkins 配置(使用启用了 git hook 访问的个人访问令牌)。但这似乎没有什么区别。

blu*_*ope 16

我找到了如何正确修复它。

\n\n

第一的。在 Jenkins 管理 > 系统日志中设置 Jenkins 记录器

\n\n

添加日志记录器,使用此配置

\n\n
hudson.plugins.git.GitStatus - All\ncom.cloudbees.jenkins.GitHubWebHook - All\norg.jenkinsci.plugins.github - All\n
Run Code Online (Sandbox Code Playgroud)\n\n

第二。再次扣动扳机。

\n\n

并再次检查记录器。就我而言,记录器说

\n\n
Skipped {ProjectName} because it doesn\'t have a matching repository.\n
Run Code Online (Sandbox Code Playgroud)\n\n

第三。检查 webhook 请求的确切来源的 webhook url。

\n\n

它将在记录器中指定,如下所示:

\n\n
Received PushEvent for https://github.com/{username}/{reponame} from {ip} \xe2\x87\x92 http://{your jenkins url}/github-webhook/\n
Run Code Online (Sandbox Code Playgroud)\n\n

第四。再次进入jenkins项目配置,

\n\n

检查整个 github url与步骤 3 中的https://github.com/ {username}/{reponame}完全相同。

\n\n

最后没有.git。

\n\n

我希望这个答案对你有帮助。谢谢

\n

  • 这是调试 Webhook 的最佳方法。Jenkins 作业在被 webhook 触发之前需要至少手动运行一次。 (2认同)