Renovate 怎么配置 prCreation 让测试通过后再创建 PR
2026/9/14 19:41:51 网站建设 项目流程

Renovate 怎么配置 prCreation 让测试通过后再创建 PR

【免费下载链接】renovateHome of the Renovate CLI: Cross-platform Dependency Automation by Mend.io项目地址: https://gitcode.com/GitHub_Trending/re/renovate

Renovate 自动更新仓库依赖时,默认的prCreation=immediate会在分支创建后立即开出 PR,你得自己等 CI 结果出来才能判断是否合并。如果希望"测试通过之后才出现 PR",可以把配置项prCreation设为status-success。本文说明这个配置的写法,以及如何验证配置生效,并给出测试未全部通过时not-pending的替代行为。

选择 prCreation 的取值

prCreation决定 Renovate "何时"创建 PR,共有四个取值(见 configuration-options.md):

取值行为
immediate(默认)分支创建后立即创建 PR
status-success所有测试通过后才创建 PR
not-pending等所有 status check 出结果(通过或失败)后创建 PR
approval分支立即创建,PR 等 Dependency Dashboard 批准后创建

对应"测试通过后再创建 PR"这个目标,FAQ 给出两种选法:

  • 只要测试全部通过才想要 PR:设prCreationstatus-success。测试失败的分支会留在 Git 里、按需更新,Renovate 只在测试通过后创建 PR。
  • 测试跑完(无论成败)就想要 PR、拿到通知时能直接看到完整测试结果:设prCreationnot-pending

在哪里配置

Renovate 会从配置文件(如renovate.json)以及每个package.json中查找配置选项。在仓库的renovate.json中加入prCreation字段:

{ "prCreation": "status-success" }

如果你接受"测试出结果(含失败)后再开 PR",则改为:

{ "prCreation": "not-pending" }

验证配置

所有 Renovate 发行版都包含独立的校验程序renovate-config-validator,运行方式见 config-validation.md:

$ npx --yes --package renovate -- renovate-config-validator

校验通过时文档给出的示例输出为:

INFO: Validating renovate.json INFO: Config validated successfully

测试结束后的实际行为

对所有非immediate的 PR 创建模式,Renovate 并不会在测试完成的瞬间立刻动作,而是在相关测试完成后的下一次运行时创建 PR,因此存在一定的延迟。

如果status-success模式下某个分支的测试失败,该分支不会关联 PR,但会保留在 Git 中并在需要时更新。你要把修复推送到该分支时,操作路径是:从 Dependency Dashboard 选中对应的 PR,然后把修复推送到分支。这条路径依赖 Dependency Dashboard,若未开启可配置启用(见 dashboard.md):

{ "dependencyDashboard": true }

边界与已知限制

  • not-pending可能一直不创建 PR:没有任何外部 status check 的分支会一直被报告为pending,于是not-pending永远等不到检查"完成",只能回退到prNotPendingHours(默认 25 小时)。该计时从分支的最新 commit起算,rebase、重新锁定等操作都会重置计时;如果仓库的分支被 rebase 或 re-lock 的频率高于这个阈值,PR 会被无限推迟。这在 CI 只在pull_request事件上运行时尤其常见,因为裸 Renovate 分支上根本没有检查。文档给出的应对:如果你依赖minimumReleaseAge/internalChecksFilter来实现"等待"行为,设internalChecksAsSuccess=true让绿色的内部稳定性检查也算作成功;否则改用prCreation=immediate
  • minimumReleaseAge非零时,prNotPendingHours功能会被禁用。
  • 避免同时设置rebaseWhen=neverprCreation=not-pending,文档指出该组合可能导致 PR 无法创建。
  • 若使用prCreation=approval,必须不要同时使用dependencyDashboardApproval=true

相关文档

  • prCreation选项说明
  • Minimum Release Age(说明internalChecksFilterprCreation的配合)
  • Dependency Dashboard

【免费下载链接】renovateHome of the Renovate CLI: Cross-platform Dependency Automation by Mend.io项目地址: https://gitcode.com/GitHub_Trending/re/renovate

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询