Skip to content

Renovate

1. 什么是 Renovate?

Renovate 是一个开源的 依赖更新自动化工具。 它能帮你在项目中自动检测过期的依赖,并通过 PR(Pull Request)的形式提交更新建议。

👉 简单来说:

  • 你不需要手动检查 package.jsonrequirements.txt 等文件里的依赖是否过期。
  • Renovate 会帮你自动发现并发起更新。

2. Renovate 有什么用?

🚀 核心价值

  1. 自动化依赖升级

    • 自动扫描项目依赖(支持 Node.js、Python、Java、Go、Docker 等)。
    • 自动检测新版本。
    • 自动提交 PR。
  2. 降低维护成本

    • 避免依赖长期不升级,导致一次性大版本升级困难。
    • 减少安全漏洞(及时更新安全补丁版本)。
  3. 可控性强

    • 你可以配置哪些依赖自动升级,哪些只做提醒。
    • 可以选择自动合并 patch/minor 版本更新,而 major 版本需要人工 review。
  4. 支持 Monorepo

    • 非常适合 monorepo 项目,能分别更新各个子包的依赖。

3. Renovate 怎么用?

方式一:作为 GitHub App

  1. 打开 Renovate GitHub App 并安装到你的仓库。
  2. 它会自动在项目根目录生成一个配置文件 renovate.json(或 renovate.json5)。
  3. Renovate 就会定期检查依赖,并创建 PR。

方式二:自托管

如果你不想用 GitHub App,可以自己部署 Renovate(适用于 GitLab、Bitbucket 等环境)。

bash
npx renovate

配置示例

在项目根目录添加 renovate.json

json
{
  "extends": ["config:base"],
  "packageRules": [
    {
      "matchUpdateTypes": ["minor", "patch"],
      "automerge": true
    },
    {
      "matchUpdateTypes": ["major"],
      "automerge": false
    }
  ]
}

解释:

  • 使用基础配置 "extends": ["config:base"]
  • minor/patch 更新 自动合并。
  • major 更新 需要人工 review。

实际效果

  • Renovate 会创建类似这样的 PR:

    • chore(deps): update dependency react from 18.2.0 to 18.3.0
    • fix(deps): update dependency lodash from 4.17.20 to 4.17.21
  • 你可以选择直接合并,或者再测试后手动处理。

4. 总结

  • Renovate = 自动依赖升级管家
  • 主要用途:自动检测依赖更新、自动生成 PR、降低维护成本
  • 使用方式:安装 GitHub App(最简单),或者自托管运行。
  • 适用场景:
    • 需要长期维护的项目。
    • 对安全性敏感的项目(及时更新补丁)。
    • Monorepo 项目,依赖多而复杂。