🚀
Renovateで特定のライブラリのみ自動アップデートの対象にしたい話
はじめに
Renovateでライブラリのアップデートを自動化する際、 package.json
内の一部のライブラリのみを管理対象にするのに少し詰まったのでまとめておく。
TL;DR
こんな感じでいけた。
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:base"],
"schedule": [
"after 6pm"
],
"includePaths": ["package.json"],
"packageRules": [
{
"matchPaths": ["package.json"],
"excludePackageNames": [
"@mui/icons-material",
"@mui/lab",
"@mui/material",
"react",
"react-dom"
],
"enabled": false
}
]
}
これで、 excludePackageNames
に入っている5つのライブラリのみが管理対象になる。
解説
packageRules
で "enabled": false
にすることで、そのpackageRulesにマッチするライブラリが全て「管理対象外」になる。その「管理対象外になるライブラリ」から「管理対象にしたいライブラリ」を除外することで、結果的に記述したライブラリのみを管理対象にすることができる。
要は否定の否定を行っている。
終わりに
もっとシンプルな書き方があっても良いはず、と思ったのだが、見つけられなかった。御存知の方はご教示ください。
Discussion