Renovateとは
Renovateを使って依存しているパッケージのバージョンを簡単に最新状態に保つことができます。
Repoごとに設定するときに毎回どっかのRepoからコピーしたりしてるので、一度最低限の情報を書いておこうと思います。
Settings
私が個人プロジェクトでよく使う設定は以下になります。
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
"github>aquaproj/aqua-renovate-config#2.8.1"
],
"automergeStrategy": "squash"
}
設定項目
extends
- すぐに便利に使いたい/特にこだわりがない場合 → config:recommended (defaultではこちらが設定される)
- 細かくカスタマイズしたい/既存のポリシーがある場合 →
config:base
-
config:best-practices: recommendedにプラスして pinDigestsなどが追加されている
{ "extends": [ "config:recommended", "docker:pinDigests", "helpers:pinGitHubActionDigests", ":configMigration", ":pinDevDependencies", "abandonments:recommended" ] }
- aqua を使ってる場合は
"github>aquaproj/aqua-renovate-config#2.8.1"
をいれる (ref)
Use the config:best-practices preset, instead of the config:recommended preset
General Recommendationには、recommendよりもbest-practicesを使うのが推奨されていて recommendedとは?となる
ignorePaths
バージョン変更したくない場合などは、以下のように書いています。
"ignorePaths": [
"scripts/.python-version"
]
automerge
By default, Renovate raises PRs but leaves them to someone or something else to merge them.
デフォルトでは、RenovateはPRを作成して誰かがマージするのを待つ。
renovateを使う醍醐味の一つであるauto merge。特に個人プロジェクトなどは全部Auto Mergeでもいいくらいだと思います。
もう少し慎重に運用する場合は、以下のようにminor, patch, pin, digestのタイプならautomergeを設定するなど、対象を絞ってautomergeを設定することができます。
{
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch", "pin", "digest"],
"automerge": true
}
]
}
その他にも"matchDepTypes": ["devDependencies"],
を設定することでdev dependencyの場合のみauto mergeするなどすることができます。
Tipsとして、 Wait two weeks before automerging third-party dependencies 新しいバージョンをすぐにマージせず 2週間待ってからマージするというOptionもあるので、合わせて活用するとより安全になります。
If you enable automerge and minimumReleaseAge, Renovate will create PRs immediately, but only automerge them when the minimumReleaseAge time-duration has passed.
automergeを有効化して、minimumReleaseAgeも設定した場合は、PRは即座に作成されるがautomergeはminimumReleaseAgeの時間待ってからマージされる