合并含错误Jira工单的PR后,Jenkins发布失败该如何修复?
问题描述
合并标题带错误Jira工单编号的PR到GitHub默认分支后,Jenkins部署失败,报错如下:
ReleasePrePublishCheck
No smart commit Jira issues found in the PR title for PR #5
注意:代码已经合并到默认分支,我没有该分支的删除权限。
试过下面两种操作,但都没解决问题:
- 用
git reset --hard 1234从默认分支切出了包含PR合并前代码的beta分支,这个分支能正常部署,但把它通过新PR(标题带正确工单编号)合并回默认分支时,还是触发同样的报错。 - 用
git commit --fixup=amend:4567配合VIM修改了提交信息,提交历史已经更新,但重新跑Jenkins构建还是报相同错误。
解决方案
1. 直接修改已合并PR的标题(最快方案)
如果你有GitHub仓库的编辑权限,找到已经合并的PR#5,直接修改它的标题,加上正确的Jira工单编号(比如格式改成[PROJ-XXXX] 原PR标题内容)。很多Jenkins的Jira集成插件是读取PR的标题信息,哪怕PR已经合并,改完标题后重新触发部署,一般就能识别到正确的工单编号,解决报错。
2. 修改默认分支上的合并提交信息
要是没法改PR标题,就直接修改默认分支上对应PR#5的合并提交信息:
- 先拉取默认分支最新代码:
git pull origin main(把main换成你的默认分支名) - 用
git log --oneline查看提交历史,找到那条Merge pull request #5 from xxx/xxx的合并提交,记下它的父提交哈希(合并提交的上一条提交) - 执行交互式变基:
git rebase -i <父提交哈希>,在VIM界面里把该合并提交行的pick改成reword - 保存退出后,VIM会打开提交信息编辑框,把内容改成带正确Jira工单编号的格式(比如
Merge pull request #5 from xxx/xxx [PROJ-XXXX]) - 强制推送到远程:
git push origin main --force(注意:强制推送会覆盖远程分支历史,操作前一定要确认团队里没人正在同步这个分支的代码,避免影响他人) - 重新触发Jenkins构建
3. 联系管理员绕过检查
如果上面两种方法都走不通,就找Jenkins管理员说明情况,请求临时绕过这次部署的Jira工单检查,或者调整规则让这次合并的提交通过验证。
内容的提问来源于stack exchange,提问作者sam sergiy klok
相关产品推荐
相关产品推荐

