Jenkins与GitLab集成时URL路径不匹配触发404错误如何解决
问题根源
你遇到的404问题是因为GitLab默认集成Jenkins时使用的/project/路径前缀,和Jenkins原生任务的/job/路径前缀不匹配导致的,可通过以下两种方案解决:
方案一:修改GitLab侧配置(无需调整Jenkins,推荐优先使用)
- 进入GitLab对应项目的「设置」-「集成」页面
- 直接手动配置自定义Webhook,不要使用GitLab预设的Jenkins集成模板
- Webhook的URL填写你的Jenkins任务实际触发地址:
http://JenkinsIP:8080/job/JOBNAME/build(如果是参数化构建可补充对应参数后缀) - 按需配置触发事件、Jenkins授权Secret Token后保存,点击测试按钮验证请求是否返回200即可
方案二:修改Jenkins侧配置适配GitLab路径格式
- 进入Jenkins控制台的「插件管理」页面,搜索并安装GitLab Plugin
- 插件安装完成后会自动适配
/project/前缀的请求路径,你只需要将GitLab侧配置的Jenkins地址设置为http://JenkinsIP:8080/project/JOBNAME即可,插件会自动转发请求到对应/job/JOBNAME的任务地址 - 打开Jenkins对应任务的配置页,勾选「GitLab」相关的触发选项,配置允许触发的GitLab实例IP白名单
注意事项
- 若Jenkins开启了CSRF保护,需要在GitLab Webhook的请求头中配置Jenkins Crumb,或者在Jenkins全局安全配置中为GitLab的服务IP配置Crumb豁免规则
- 配置完成后务必在GitLab集成页面发起测试请求,确认返回状态为200代表配置生效

内容的提问来源于stack exchange,提问作者Asm Point
相关产品推荐
相关产品推荐

