Jenkins github插件返回错误400“Hook应该包含事件类型”

时间:2016-04-13 21:10:45

标签: github jenkins jenkins-plugins

在我的公司,我们有一个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插件成功解析,并触发正在观看项目/分支的作业。

1 个答案:

答案 0 :(得分:2)

Github Enterprise应该内置webhook功能,所以当你说你在Github上安装服务时,我有点不确定你的意思。

您可以转到以下标签设置新的网络连接:

https://github-enterprise.com/my-org/myrepo >> Settings >> Webhooks & services

以下是截图: enter image description here

要检查的另一个地方是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;未经检查,但我没有取得好成绩。)

以下是截图: enter image description here

证书&#39;将是来自Github的访问令牌。

Github >> Personal settings >> Personal access tokens

已经有一段时间了,因为我已经完成了这样的设置,所以如果我对任何事情都不对,请随时纠正我。< / p>