一尘不染

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

jenkins

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


阅读 322

收藏
2020-07-25

共1个答案

一尘不染

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

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

2020-07-25