[GitHub] Dependabot Grouped version updates で Production と Development の依存関係を分けてグループ化する機能が追加されました
こんにちは、CX 事業本部 Delivery 部の若槻です。
以前のアップデートで、Dependabot version updates によりオープンされる Pull Request をグループ化する機能(Grouped version updates)が公開ベータで利用可能となりました。
これにより、複数の依存関係を更新する Pull Request をグループ化して、レビューの負荷を軽減することができます。
そしてさらに直近のアップデートで、Grouped version updates で Production と Development の依存関係を分けてグループ化する機能が追加されました。
試してみた
dependabot.yml の設定
Grouped version updates のドキュメントは下記となります。
Use to specify a dependency type to be included in the group.
dependency-type
can bedevelopment
orproduction
dependency-type
オプションでdevelopment
とproduction
のいずれかを指定することで、グループ化する依存関係を分けることができます。
version: 2 updates: - package-ecosystem: npm directory: / schedule: interval: daily groups: prod-dependency: dependency-type: production dev-dependency: dependency-type: development
動作確認
package.json
で最新でない依存関係をdependencies
とdevDependencies
にそれぞれ指定します。
{ "devDependencies": { "eslint": "8.46.0", "typescript": "4.1.6" }, "dependencies": { "@aws-sdk/client-athena": "3.387.0", "constructs": "10.2.68" } }
コミットを push すると、下記のようにdev-dependency
とprod-dependency
の 2 つのグループに分けられて Pull Request が作成されました。
それぞれの Pull Request の変更を確認すると、dependencies
とdevDependencies
でグルーピングされていることがわかります。
patterns および exclude-patterns と組み合わせて使用する
dependency-type
はさらにpatterns
またはexclude-patterns
オプションと組み合わせて使用することができます。
dependabot.yml
を次のように変更します。
version: 2 updates: - package-ecosystem: npm directory: / schedule: interval: daily groups: prod-dependency: dependency-type: production patterns: - '@aws-sdk/*' dev-dependency: dependency-type: development exclude-patterns: - esbuild
package.json
でdevDependencies
およびdependencies
に最新でないバージョンで依存関係を追加します。それぞれpatterns
およびexclude-patterns
にマッチするものを 1 つずつ追加しています。
{ "devDependencies": { "esbuild": "0.19.0", "husky": "7.0.4" }, "dependencies": { "@aws-sdk/client-s3": "3.387.0", "dayjs": "1.11.8" } }
変更を push すると、patterns
にマッチしexclude-patterns
にマッチしない依存関係がグループ化されて Pull Request が作成されました。またそれ以外の依存関係のアップデートは個別に Pull Request が作成されています。
おわりに
Dependabot Grouped version updates で Production と Development の依存関係を分けてグループ化する機能が追加されたのでご紹介しました。
Production と Development で依存関係のアップデートのライフサイクルを分けたい場合に役に立ちそうですね。
以上