You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Github Webhook投递列表为空但仍有代码推送操作?

Github Webhook无投递记录排查要点(Jenkins场景)

针对你遇到的「代码推送后Github Webhook投递列表为空,curl测试Jenkins可接收,Webhook激活且订阅推送事件,测试API返回204但无记录」的问题,按以下方向排查:

1. 核对Webhook的分支过滤规则

检查Webhook的「Which events would you like to trigger this webhook?」配置:

  • 确认已勾选Push events,且未设置过于严格的分支过滤(比如默认仅监听main/master分支,但你推送的是其他分支)。如果设置了分支匹配规则,确保你推送的分支符合规则(比如规则是release/*,但你推的是feature/*)。

2. 验证Webhook的Secret一致性

如果Webhook配置了Secret,务必确认Github侧填写的Secret和Jenkins的Github插件中配置的完全一致:

  • 一旦Secret不匹配,Github会静默丢弃推送事件,不会生成投递记录,但测试API可能仍返回204(因为测试请求的校验逻辑不同)。

3. 检查组织级别的Webhook限制

如果是组织仓库,排查组织设置中的Webhook限制:

  • 查看组织是否开启了IP白名单,确保Github的IP段未被拦截(Github的Webhook请求来自其官方IP范围)。
  • 确认组织是否强制所有Webhook使用统一代理或Secret,导致仓库级的Webhook配置被覆盖。

4. 确认Webhook的实际状态

即使Webhook显示「Active」,也可能因之前的多次请求失败被Github静默禁用:

  • 查看Webhook页面顶部是否有「Disabled due to repeated failures」的提示,若有,手动重新激活并检查网络连通性。

5. 排查网络层面的静默拦截

虽然你用curl测试成功,但curl是从本地发起的,而Github的Webhook请求来自其公网IP:

  • 检查Jenkins服务器的防火墙、WAF、反向代理是否拦截了Github的IP请求。可以在Jenkins服务器上抓包,验证是否收到Github的Webhook请求。

6. 尝试重建Webhook

如果以上都没问题,可能是Github后台的缓存或Webhook配置异常:

  • 删除当前Webhook,重新创建一个,配置相同的URL、事件和Secret,再测试代码推送。

内容的提问来源于stack exchange,提问作者Patlatus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 07:42:45