Release Please Action合并PR后重复创建版本递增发布PR求助
Release Please Action无限发布循环问题修复方向
合并Release Please创建的发布PR后,工具持续生成仅版本号递增(如1.14.0→1.15.0)但变更日志完全相同的PR,形成近乎无限循环。结合你观察到的仓库差异,以下是具体修复方向:
核心排查点与修复建议
1. 合并提交方式的影响
出问题的仓库启用了allow merge commits,而正常仓库仅允许squash merging。Release Please依赖线性、清晰的提交历史追踪已发布变更,合并提交会引入额外的PR合并记录,且Release Please会将这类合并提交(包括发布PR的合并提交)识别为chore类型变更,触发新的版本迭代。
修复步骤:
- 将出问题仓库的合并规则改为仅允许 squash 合并,和正常仓库保持一致
- 后续合并PR时使用squash方式,确保主分支提交为单个、独立的记录,避免合并提交干扰版本追踪
- 修改后手动触发Release Please工作流,验证是否仍生成重复PR
2. 变更日志类型配置的优化
你的工作流中changelog-types包含chore且hidden: false,导致Release Please将发布标记提交(如main: release 1.13.0)纳入Chores部分,每次发布后该提交被重复识别为新变更,触发版本递增。
修复步骤:
- 修改
changelog-types配置,给chore类型添加过滤规则,排除发布相关提交:changelog-types: '[{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"chore","section":"Chores","hidden":false,"messagePattern":"^(?!main: release)"},{"type":"revert","section":"Reverts","hidden":false}]' - 若不需要展示chore类变更,可直接将
chore的hidden设为true,避免发布提交被纳入变更日志
3. 提交历史的验证与清理
虽然另一个仓库也有不规范提交,但出问题仓库的提交历史可能存在未被正确识别的循环记录或冗余提交。
修复步骤:
- 本地运行
npx release-please --release-type node生成变更日志预览,定位被重复纳入的提交 - 若仓库允许,通过
git rebase整理历史提交,合并或修改不规范的提交记录,确保提交历史线性清晰
4. 仓库权限与配置验证
检查出问题仓库的权限设置,确认是否影响Release Please的正常运行:
- 确认
GITHUB_TOKEN拥有完整的repo权限,能够创建标签、读取提交历史 - 检查仓库是否有自定义标签规则,是否与Release Please的版本命名规则冲突
内容的提问来源于stack exchange,提问作者ege
相关产品推荐
相关产品推荐

