Jenkins未被GitHub Webhook触发。

9
我已经采取了以下步骤:
  • 检查“GitHub项目”并设置项目
  • 检查“GitHub钩子触发器用于GITScm轮询”
  • 使用用户名/密码设置与私人存储库的连接
  • 如果我手动构建,它可以工作
  • 在GitHub上,在推送到http://my_jenkins_url/github-webhook/时创建一个webhook
  • 每当我提交内容时,都会显示已发送webhook,并获得200个响应代码(在github上)

但是Jenkins没有触发任何构建。 GitHub Hook日志显示:“尚未运行轮询”。如何让它“启动”?我应该如何进一步调试这个问题?

编辑:我在Manage Jenkins -> Configure -> GitHub中没有添加GitHub服务器,因为我遇到了身份验证问题(但这将是一个不同的问题)。这是否需要用于github webhooks?

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


希望你没有将Jenkins作为本地主机运行?那样是行不通的。我知道我不应该发布链接,但这里有一篇非常简单的博客文章,介绍了一种实现Webhooks的最简单方法之一。对我来说,它非常好用。https://dzone.com/articles/adding-a-github-webhook-in-your-jenkins-pipeline - chrillelundmark
你解决过这个问题吗? - dim_user
卡在解决问题上了,跳过 {ProjectName} 因为它没有匹配的代码库。 - saumilsdk
1个回答

16

我找到了正确修复它的方法。

首先,在Jenkins管理>系统日志中设置Jenkins记录器。

添加日志记录器,使用以下配置。

hudson.plugins.git.GitStatus - All
com.cloudbees.jenkins.GitHubWebHook - All
org.jenkinsci.plugins.github - All

第二步。再次触发钩子。

检查日志记录器。在我的情况下,记录器显示:

Skipped {ProjectName} because it doesn't have a matching repository.

第三步。检查Webhook请求确切来源的Webhook URL。

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

Received PushEvent for https://github.com/{username}/{reponame} from {ip} ⇒ http://{your jenkins url}/github-webhook/

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

检查在第三步中的GitHub URL是否完全与https://github.com/{username}/{reponame}相同。

末尾不要加 .git。

希望这个答案能够帮助到您。谢谢。


2
这是调试 Webhooks 的最佳方法。在 Webhook 触发之前,需要手动至少运行一次 Jenkins 作业。 - AbhishekK
非常感谢。最终解决了我的Jenkins-Github webhook问题。 - Slashr
@blue-hope,请问在任务中项目的配置在哪里?我看到有“GitHub 项目”和“SCM”两个位置。 - saumilsdk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接