概述
renovate 是什么?
renovate 是一个开源的工具,旨在自动化以下问题:
- 检测 repository 中的依赖是否有新版本(包括开源和闭源 repository)
- 为新版本的依赖创建升级 PR(包含 release note)
renovate 的目标
renovate 可以解决 repository 中过时的依赖关系。过时的依赖可能产生以下问题。
- 使用已废弃的 API 所带来的“技术债务”问题
- 跨版本升级会产生较高风险和解决升级所带来问题的时间问题
renovate 自动更新流程
- repository 有一个 package.json 和 package-lock.json 包含 1.0.0 依赖项的版本
- Renovate 确定版本 1.1.0 可用
- package.json 将依赖项的版本从 1.0.0 更改为 1.1.0
- Renovate 再运行 npm install,触发其 npm 更新 package-lock.json
- Renovate 然后创建 PR 一起提交 package.json 和 package-lock.json 文件
如何使用 renovate
使用方式
- 自行托管 renovate,例如:Docker
- 使用 WhiteSource 托管的 renovate,在 repository 中安装
下面以 GitHub 为例,介绍 renovate 的使用。
将 renovate 作为 App 安装到 repository 中
- 打开 https://github.com/apps/renovate 并单击安装按钮
- 选择为所有 repository 安装还是指定的 repository 安装
- 在安装成功后,你会在该 repository 看见一个“configuration renovate”的 PR
- 此 PR 将在 repository 的根目录下创建一个基础的配置,你也可以修改这些配置
- merge 此 PR 后会自动进行如下操作
- 在 repository 中创建一个记录需要升级依赖的 issues,以及对应的依赖
- 创建一个“Pin dependencies”的 PR,修改 package.json 中的版本号前缀
- 在一定的时间内 renovate 会检查项目中的依赖项,并为有更新的依赖创建 PR
重新配置 renovate
- 创建一个新的 git 分支
- 全局安装 renovate 以获取 renovate-config-validator 包
- 编辑 renovate 配置文件
- 运行 renovate-config-validator 校验配置
- 将新配置合并至 master