Skip to content

参考

基于 Renovate · 核于 2026-07

速查

  • 一行起步{ "extends": ["config:recommended"] };更严用 config:best-practices
  • 配置文件renovate.json / .json5 / .github/renovate.json / .renovaterc.jsonpackage.json 字段已废弃)
  • 校验npx --yes --package renovate -- renovate-config-validator --strict
  • 自托管跑一轮RENOVATE_TOKEN=xxx npx --yes renovate owner/repo
  • 演练调试LOG_LEVEL=debug renovate --dry-run=full owner/repo
  • rangeStrategy 默认 auto;应用用 pin、库用 replace / widen
  • 匹配包名matchPackageNames 支持精确 / glob(@types/**)/ 正则(/^eslint/)/ 取反(!x
  • 限流默认prConcurrentLimit=10prHourlyLimit=2branchConcurrentLimit=null
  • 稳定期minimumReleaseAge + internalChecksFilter(默认 strict
  • 面板config:recommended 自带 Dependency Dashboard
  • 别和 Dependabot 对同一生态同时开,会重复提 PR
  • 文档https://docs.renovatebot.com/

配置文件位置(按查找顺序)

text
renovate.json
renovate.json5
.github/renovate.json / .github/renovate.json5
.gitlab/renovate.json / .gitlab/renovate.json5
.renovaterc / .renovaterc.json / .renovaterc.json5
package.json 的 "renovate" 字段(已废弃)

自定义位置用全局选项 configFileNames

运行 / CLI 命令

命令用途
npx --yes renovate owner/repo自托管,跑一个仓库
renovate --autodiscover跑遍所有有权限的仓库
renovate --dry-run=full owner/repo演练,不真的建 PR
renovate-config-validator [--strict]校验配置文件
docker run --rm -e RENOVATE_TOKEN=... renovatebot/renovateDocker 方式运行

常用环境变量:RENOVATE_TOKEN(平台 token)、RENOVATE_GITHUB_COM_TOKEN(拉 changelog)、RENOVATE_CONFIG_FILERENOVATE_AUTODISCOVERLOG_LEVEL

常用配置选项(含默认值)

选项默认说明
extends[]继承的预设数组,后者覆盖前者
packageRules[]规则数组,规则内 match* 为 AND
rangeStrategyauto版本范围更新策略
scheduleat any time创建 PR / 分支的时间窗口
timezoneUTCIANA 时区名
automergefalse是否自动合并
automergeTypeprpr / branch / pr-comment
platformAutomergetrue用平台原生自动合并
prConcurrentLimit10并发开着的 PR 上限(0 不限)
prHourlyLimit2每小时新建 PR 上限(0 不限)
branchConcurrentLimitnull并发分支上限,null 继承 prConcurrentLimit
minimumReleaseAgenull新版本冷静期(如 "3 days"
internalChecksFilterstrictstrict 不建早产 PR / none 建但挂 pending
lockFileMaintenance定期重建 lock 文件
dependencyDashboardfalseconfig:recommended 已开)依赖面板
ignoreDeps[]按名忽略的依赖
labels / addLabels[]替换 / 追加 PR 标签
reviewers / assignees[]审阅人 / 指派人
semanticCommitsauto语义化提交:auto 探测 / enabled / disabled
rebaseWhenauto何时 rebase:auto / behind-base-branch / conflicted / never
separateMajorMinortrue大版本与次要 / 补丁分开成不同 PR
separateMinorPatchfalse次要与补丁再拆开

预设速查

预设作用
config:recommended官方推荐基线(旧名 config:base
config:best-practicesrecommended + pin digest + 稳定期 + 配置迁移
config:js-apprecommended + 锁死应用依赖
config:js-librecommended + 只锁 devDependencies
:dependencyDashboard开启依赖面板
:dependencyDashboardApprovalPR 需先在面板勾选批准
:enableVulnerabilityAlerts开启漏洞告警更新
:pinAllExceptPeerDependencies除 peerDeps 外全部 pin
:maintainLockFilesWeekly每周维护 lock 文件
group:monorepos关联 monorepo 包分组(recommended 已含)
group:allNonMajor所有非大版本合一个 PR
schedule:weekly / schedule:nonOfficeHours排期预设
helpers:pinGitHubActionDigests把 Actions 锁到 commit SHA
docker:pinDigests把镜像锁到 digest
mergeConfidence:all-badges显示全部 Merge Confidence 徽章

预设族:config:*group:*schedule:*docker:*helpers:*workarounds:*replacements:*security:*monorepo:*npm:*,以及 : 开头的内置默认预设。

rangeStrategy 速查(以 ^1.0.0 为例)

策略遇范围内 1.1.0遇超范围 2.0.0适用
auto(默认)由 Renovate 决定由 Renovate 决定通用
pin1.1.02.0.0应用
bump^1.0.0^1.1.0^1.0.0^2.0.0想让清单永远追最新
replace只更新 lock^2.0.0库 / 保守
widen保持^1.0.0 || ^2.0.0peerDependencies
update-lockfile只更新 lock^2.0.0lock 优先
in-range-only只更新 lock跳过只动 lock

matchUpdateTypes 常用值:majorminorpatchpindigestpinDigestlockFileMaintenancerollbackbumpreplacement

踩坑清单

  • config:base 已改名:v36 起用 config:recommended,校验器会提示迁移。
  • matchPackagePatterns / matchPackagePrefixes 已废弃:v38 起统一并入 matchPackageNames(自身支持 glob / 正则 / 取反)。正则要用一对斜杠 /.../ 包起来,且默认区分大小写
  • fileMatch 改名 managerFilePatterns:写 customManagers 用新名。
  • timezone 默认 UTC:跨时区团队务必显式设,否则「凌晨」窗口错位。
  • schedule 只限创建、不限合并:窗口外已有 PR 仍会被 rebase / 更新。
  • prHourlyLimit 默认是 2(不是 0):首次接入若嫌慢,是它在限速;prConcurrentLimit 默认 10,多数仓库调到 3~5 更顺。
  • 自动合并需约 2 小时窗口:不会「测试一过立刻合」;且每轮每基线只合一个分支。
  • minimumReleaseAge 要配合 internalChecksFilter:默认 strict 才会「不建早产 PR」;设成 none 会先建 PR 挂 pending。
  • 别和 Dependabot 对同一生态同时开:会重复提 PR、互相打架,二选一。
  • fork 与无清单文件的仓库会被忽略:托管 App 默认跳过它们。
  • package.jsonrenovate 字段已废弃:新项目用独立 renovate.json
  • 自托管缺工具链会失败:CLI 方式需自备 Ruby / Python / Composer 等;或用 Docker -full 镜像。

链接