renovate.json
基本の設定
timezone
"timezone": "Asia/Tokyo"にする
設定項目多すぎてメンドクセーーーmrsekut.icon
設定項目多すぎて読む気しないので、そのへんのブログを眺める
頻度の設定
schedule
PRを作成する頻度を指定する
defaultだとat any timeなので頻繁に来て鬱陶しい
automergeするなら良いのだろうけど
prHourlyLimit
1時間に作るPR数の上限
defaultだと無制限
libraryごとにPRが作られるので、無制限にしておくと良い(?)
rebaseWhen
無駄にrebaseするのを避ける
例えばdevelopが更新されるたびにrebaseされるとCI時間を消費してしまう
rebaseWhen: conflictedとすれば、conflicしたときのみrebaseしてくれる
packageRules
個別のpackage時に対して任意の設定できる
例えば、aws-sdkはやたら頻繁にupgradeされるので、これだけ月1で見る、とか
code:renovate.json
{
"packageRules": [
{
}
]
}
patch,minorを1個のPRにまとめる
code:renovate.json
"packageRules": [
{
"groupName": "update all minor and patch dependencies",
}
]
ブランチとプルリクエストの設定
addLabels: プルリクエストに追加するラベル。
branchName: ブランチ名のテンプレート。
branchPrefix: ブランチ名のプレフィックス。
branchTopic: ブランチのトピック。
prTitle: プルリクエストのタイトル。
prBodyTemplate: プルリクエストの本文のテンプレート。
自動マージの設定
automerge: 依存関係の更新を自動的にマージするかどうか。
automergeComment: 自動マージをトリガーするためのコメント。
automergeSchedule: 自動マージを行うスケジュール。
automergeStrategy: 自動マージの戦略。
automergeType: 自動マージのタイプ。
レビュアーと承認者の設定
assignees: プルリクエストのアサイン先。
reviewers: プルリクエストのレビュアー。
assigneesFromCodeOwners: CODEOWNERSからアサインを行うかどうか。
reviewersFromCodeOwners: CODEOWNERSからレビュアーを指定するかどうか。
コミットメッセージの設定
commitMessage: コミットメッセージのテンプレート。
commitMessagePrefix: コミットメッセージのプレフィックス。
semanticCommitType: セマンティックコミットのタイプ。
依存関係の更新設定
updateLockFiles: ロックファイルを更新するかどうか。
pinDigests: 依存関係のダイジェストを固定するかどうか。
スケジュールとタイミング
schedule: 依存関係の更新を行うスケジュール。
timezone: スケジュールのタイムゾーン。
その他の設定
labels: プルリクエストに追加するラベル。
enabled: Renovateが有効かどうか。
fileMatch: ファイルのマッチングパターン。
ignorePaths: 更新を無視するパス。
vulnerabilityAlerts: 脆弱性のアラートを有効にするかどうか。
これにより、以下のことが苦も無く行えるようになりました。
- モノレポ系パッケージのグルーピング
これ、例えばexpoとかみたいに、「AとBとCは同時にupgradeする」みたいなのが決まってる時に有用ってこと?
- 対象としたいパッケージの指定
- PR descriptionから差分情報が辿れる
- 追加で更新が来た場合の同一PR内での追従
- コンフリクトした場合の自動rebase/retry
- PR発行数のコントロール
code:json
{
"timezone": "Asia/Tokyo",
"dependencyDashboard": false,
"automerge": true,
"branchConcurrentLimit": 0
}
かなり強めに自動化しようとしてる設定
1 時間あたりに 2 Pull Request までに抑える処理を無効化
タイムゾーンを Asia/Tokyo に指定
Dependency Dashboard (こういうやつ) を無効化 オートマージを有効化
ブランチに対して作成する Pull Request 数の制限を無効化