Renovateおすすめ設定
Renovateの設定をチューニングしたので共有 & 解説をする。
Renovateをより快適に使いこなせ。
- 最終的に設定ファイルはこうなった
- $schema
- timezone
- prHourlyLimitNone
- automergePatch
- schedule
- dependencyDashboard
- ignorePaths
- pip_requirements
- packageRules
- renovateのデバッグ方法
- 参考
最終的に設定ファイルはこうなった
それぞれの設定について解説する。
{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:base", ":timezone(Asia/Tokyo)", ":prHourlyLimitNone", ":automergePatch" ], "schedule": ["after 9am on monday", "before 12am on monday"], "dependencyDashboard": true, "ignorePaths": [ "src/i_want_to_ignore/*", "Dockerfile", "docker-compose.yml", ], "pip_requirements": { "fileMatch": [ "src/i_want_to_check/requirements_dev.txt", "src/mee_too/requirements_dev.txt" ] }, "packageRules": [ { "groupName": "boto3", "matchPackagePatterns": [ "boto3", "botocore" ] } ] }
$schema
https://docs.renovatebot.com/config-presets/#organization-level-presets
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
VSCodeで補完が効くようになる。地味に便利。
timezone
https://docs.renovatebot.com/presets-default/#timezoneltarg0gt
https://docs.renovatebot.com/configuration-options/#timezone
"extends": [ ":timezone(Asia/Tokyo)", ]
デフォルトはUTCになっている。
prHourlyLimitNone
https://docs.renovatebot.com/presets-default/#prhourlylimitnone
"extends": [ ":prHourlyLimitNone", ]
1時間で作成できるPR数の上限を無くす。
デフォルトだと1時間に2個までしかPRが作成されない。
単発で来るよりも、一気に来て一気に捌きたいのでこの設定に。
(好みに合わせて設定しよう)
また、renovateが作成できるPR数(リポジトリ単位)にも上限があり、デフォルトでは20個まで。
https://docs.renovatebot.com/configuration-options/#prconcurrentlimit
automergePatch
https://docs.renovatebot.com/presets-default/#automergepatch
"extends": [ ":automergePatch" ]
パッチなら自動でマージする。
最低でも1人のApproverが必要な場合、renovate-approveを入れておくと良い。
CODEOWNERS
でApproverを自動設定している場合renovate-approveは動かないので、CODEOWNERS
からrenovateがみているファイルの設定を外すとおそらく動く(未検証)
Due to a GitHub limitation, it is not possible to assign any app like this one as a CODEOWNER, so unfortunately this bot won't work that way if you have CODEOWNERS set up.
CODEOWNERS
からrenovateがみているファイルの設定を外す
- * @<username> # ホワイト形式の記載しかできない + *.py @<username>
schedule
https://docs.renovatebot.com/configuration-options/#schedule
"schedule": ["after 9am on monday", "before 12am on monday"],
月曜の9am ~ 12amにPRが作成される。 (通知が来ることやautomergeされることも考えて、営業時間内にしている)
ここも好みに合わせて、日曜夜などに設定するのもアリ。
デフォルトでUTCになっているので注意。(timezoneを設定せよ)
dependencyDashboard
https://docs.renovatebot.com/configuration-options/#dependencydashboard
"dependencyDashboard": true,
issueにrenovateのダッシュボードが作成される。
溜まっているPRや、表面化していないアップデートなど一覧化できる。
↓ 作成されるダッシュボードの例
https://github.com/shibayu36/typescript-cli-project/issues/17
Edited/Blocked
手動で編集したPRの一覧
チェックボックスにチェックすることで、最初からやり直すことができる
Open
作成されたPR一覧
チェックボックスにチェックすることで、retry/rebaseすることができる
Ignored or Blocked
クローズされたPR一覧
チェックボックスにチェックすることで、再作成できる
Awaiting Schedule
スケジュールによる作成を待っているPR一覧
チェックボックスにチェックすることで、スケジュール時に作成されないようにすることができる
renovate再実行
一番下のチェックボックスにチェックすることで、renovateのクロールを再度実行できる
ignorePaths
https://docs.renovatebot.com/configuration-options/#ignorepaths
"ignorePaths": [ "src/i_want_to_ignore/*", "Dockerfile", "docker-compose.yml", ]
renovateがチェックしないようにする。
パス指定、ファイル名指定などできる。
pip_requirements
https://docs.renovatebot.com/modules/manager/pip_requirements/
"pip_requirements": { "fileMatch": [ "src/i_want_to_check/requirements_dev.txt", "src/mee_too/requirements_dev.txt" ] }
requirements.txt
からファイル名を変更した場合、pip_requirements
で指定できる。
fileMatch
では正規表現が使える。
https://docs.renovatebot.com/modules/manager/#file-matching
packageRules
https://docs.renovatebot.com/configuration-options/#packagerules
"packageRules": [ { "groupName": "boto3", "matchPackagePatterns": [ "boto3", "botocore" ] } ]
いくつかのパッケージをまとめてPRを作成して欲しい場合、この設定をすると良い。
renovateのデバッグ方法
設定したけどなんか動いてないかも?という時に見るべきもの
https://app.renovatebot.com/dashboard
ここからrenovateのログを確認できる。