在我的公司,我们有一个Github Enterprise实例保持我们所有的源代码,并且Jenkins服务器可以进行持续集成。我在Jenkins上使用Jenkins github插件,并在Github上安装一个服务来调用MYJENKINS / github-webhook。
我会在jenkins服务器上看到来自github的POST,但什么都不会发生。访问日志报告向github返回400错误。
为了找出返回的内容,我将tcpdump放在端口上。我现在看到Jenkins正在返回“Error 400 Hook应该包含事件类型”。它返回所有存储库事件。
我可以使用tcpdump捕获github POST有效负载,但还没有这样做。
目前我唯一的猜测是我们的Github Enterprise安装版本是早于Jenkins github插件所期望的版本。
更新:作为一项实验,在Github上,我将来自服务(“Jenkins github插件”)的调用更改为Webhook,但使用相同的URL MY_JENKINS / github-webhook /。成功,由github插件成功解析,并触发正在观看项目/分支的作业。
答案 0 :(得分:2)
Github Enterprise应该内置webhook功能,所以当你说你在Github上安装服务时,我有点不确定你的意思。
您可以转到以下标签设置新的网络连接:
https://github-enterprise.com/my-org/myrepo >> Settings >> Webhooks & services
要检查的另一个地方是Jenkins中的设置,以确保它已设置为与Github一起使用。
Jenkins >> Manage Jenkins >> Configure System >> Find: GitHub Plugin Configuration
的 在这里,您需要提供Github以及Github api url的凭据:
https://<github-enterprise.com>/api/v3/
的
(您可以保留&#39;自定义Github API网址&#39;未经检查,但我没有取得好成绩。)
证书&#39;将是来自Github的访问令牌。
Github >> Personal settings >> Personal access tokens
已经有一段时间了,因为我已经完成了这样的设置,所以如果我对任何事情都不对,请随时纠正我。< / p>