🚀

Renovateで特定のライブラリのみ自動アップデートの対象にしたい話

2023/03/31に公開

はじめに

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