GitHub Webhook仓库URL变更致Jenkins构建失败,如何修改相关配置?
GitHub Webhook URL变更导致Jenkins构建触发失败的解决方案
问题根源
GitHub在2025年4月7日调整了推送webhook中仓库对象的url字段值:原格式为https://github.com/[our-company]/[our-repo],现改为API端点格式https://api.github.com/repos/[our-company]/[our-repo]。Jenkins的GitHub Webhook插件(DefaultPushGHEventSubscriber组件)无法识别新格式,抛出Malformed repo url警告,导致构建触发流程在初始回调阶段就失败。
解决步骤
1. 更新GitHub插件(推荐方案)
这是官方修复的最优解:
- 进入Jenkins管理界面 → 插件管理 → 已安装插件,搜索
GitHub或GitHub Integration插件,查看当前版本。 - 若版本早于2025年4月7日发布的修复版本,点击更新,完成后重启Jenkins。更新后的插件会自动适配新的
url字段格式,或切换使用payload中保留原格式的html_url字段。
2. 临时绕过方案(无法立即更新插件时)
通过Jenkins脚本控制台临时修改解析逻辑:
- 进入Jenkins → 管理Jenkins → 脚本控制台。
- 执行以下Groovy脚本,强制插件使用
html_url字段获取仓库地址:
import org.jenkinsci.plugins.github.webhook.subscriber.DefaultPushGHEventSubscriber import org.kohsuke.github.GHRepository DefaultPushGHEventSubscriber.metaClass.getRepoUrl = { GHRepository repo -> return repo.getHtmlUrl().toString() } println "临时替换仓库URL解析逻辑完成,重启Jenkins后失效"
关于脚本位置的说明
你找不到相关脚本是因为该逻辑封装在Jenkins的github-plugin插件的Java类(DefaultPushGHEventSubscriber)中,并非独立的服务器脚本文件。因此无法直接修改源码脚本,只能通过更新插件或临时脚本覆盖的方式解决。
内容的提问来源于stack exchange,提问作者GoodLooking
相关产品推荐
相关产品推荐

