在我公司,我们有一个Github Enterprise实例,使所有源代码保持 一致,而Jenkins服务器可以进行持续集成。我在 Jenkins上使用Jenkins github插件,并在Github上安装了一个服务来调用 MYJENKINS / github-webhook。
我会看到POST从jenkins服务器上的github到达,但是什么也不会发生。访问日志报告一个400错误返回给github。
为了找出返回的内容,我在端口上放置了tcpdump。现在,我看到Jenkins返回“错误400挂钩应包含事件类型”。它为所有存储库事件返回该值。
我可能可以使用tcpdump捕获github POST有效负载,但是还没有做到这一点。
目前,我唯一的猜测是我们的Github Enterprise安装版本比Jenkins github插件预期的版本早。
更新:作为一个实验,在Github上,我将调用从Service(“ Jenkins github插件”)更改为Webhook,但使用相同的URLMY_JENKINS / github-webhook /。成功完成,由github插件成功解析,并触发了正在监视项目/分支的作业。
Github Enterprise应该内置了Webhook功能,所以 当您说要在Github上安装服务时,我有点不确定。
您可以转到以下标签来设置新的Webhooks
https://github-enterprise.com/my-org/myrepo >> Settings >> Webhooks & services
另一个要检查的地方是詹金斯(Jenkins)中的设置,以确保将其 设置为可与Github一起使用。
Jenkins >> Manage Jenkins >> Configure System >> Find: GitHub Plugin Configuration
api URL:
https://<github-enterprise.com>/api/v3/
(您可以取消选中“自定义Github API URL”,但在此方面 还没有取得很好的成功。)
这是屏幕截图: 在此处输入图片说明
“凭据”将是来自Github的访问令牌。
Github >> Personal settings >> Personal access tokens
自从我完成这样的设置已经有一段时间了,所以 如果我对任何事情都不对,请随时纠正我。