logo

dependabotで関連するアップデートをまとめたい

2026-02-23
9 days ago

開発環境

  • GitHub
  • npm(Node.jsプロジェクト)
  • Dependabot version: 2

前提

Dependabotを有効にしていると、依存関係のアップデートごとにPull Request(PR)が作成されます。

例えば以下のようなケースです。

  • react
  • react-dom
  • @types/react
  • @types/react-dom

これらが個別にPRとして作成されると、次のような問題が発生します。

  • バージョンの不整合によりビルドエラーが発生する
  • 型定義だけ更新されてコンパイルエラーになる
  • 依存パッケージ間のpeer dependencyエラーが出る
  • PRの数が増え、レビューコストが上がる

特にReactやPrismaのように密接に関連するパッケージ群では、「まとめて更新しないと壊れる」ケースが多くあります。

この課題を解決するのが、Dependabot の groups 機能です。

本題

groups 機能とは

groups は、特定の条件に一致する依存関係を1つのPRにまとめる機能です。

これにより、

  • 関連ライブラリを同時に更新できる
  • ビルドの整合性を保てる
  • PR数を削減できる
  • レビュー単位を論理的なまとまりにできる

といったメリットがあります。

なぜまとめないとビルドが壊れるのか?

React系

  • reactreact-dom はバージョン整合性が重要
  • @types/react も同時に更新しないと型エラーになることがある

個別PRで @types/react だけ上がると、CIで型エラーが発生するケースがあります。


Prisma系

  • prisma
  • @prisma/client

この2つは基本的に同一バージョンである必要があります。

どちらか片方だけ更新されると、

  • generateエラー
  • runtimeエラー

が発生することがあります。

設定例

以下は実際の設定例です。

version: 2
updates:
  - package-ecosystem: 'npm'
    directory: '/'
    schedule:
      interval: 'weekly'
      timezone: 'Asia/Tokyo'
      day: 'saturday'
      time: '10:00'
    cooldown:
      default-days: 7

    groups:
      # React 関連の依存関係をまとめる
      react:
        applies-to: version-updates
        patterns:
          - "react"
          - "react-dom"
          - "@types/react"
          - "@types/react-dom"

      # Prisma 関連の依存関係をまとめる
      prisma:
        applies-to: version-updates
        patterns:
          - "prisma"
          - "@prisma/*"

設定のポイント

1. applies-to

  • security-updates
  • version-updates

用途に応じて分けることができます。

セキュリティアップデートを1PRにまとめることで、対応を迅速にできます。


2. patterns

ワイルドカードが利用できます。

例:

  • "@prisma/*"
  • "@conform-to/*"

スコープ単位でまとめられるため、メンテナンス性が高いです。

さいごに

Dependabotは便利ですが、そのまま使うとPRが大量に生成され、逆にメンテナンス負荷が上がることがあります。

groups を活用することで、

  • 技術的に意味のある単位で更新できる
  • ビルドエラーを防げる
  • レビュー効率が向上する
  • PRのノイズを減らせる

というメリットがあります。

依存関係が増えてきたプロジェクトほど、早めに導入することをおすすめします。

参照