LoginSignup
3
0

Dependabotを利用していると、1つのライブラリアップデートに対して、1つのプルリクエストが作成されていました。
Renovateなどを用いると、複数のライブラリの更新を1つのプルリクエストにまとめることができました。

最近、Dependabotを調べていたら、2023年8月のアップデートで、「ベータ版」としてGroup Dependabot Version Updates という機能ができていました。

この機能により、Dependabotでも複数のライブラリアップデートを、1つのプルリクエストにまとめることができるので、早速それを試してみました。

使い方

主に以下の5つを使って書いていきます。

オプション 説明
applies-to version-updates か security-updates を記載します。つまり、バージョンのアップデートか、セキュリティのアップデートかを指定します。
dependency-type development か productionを指定します。 指定した環境のライブラリに制限したアップデートになります。
patterns この正規表現でマッチしたライブラリを更新します。
exclude-patterns この正規表現にマッチしたライブラリは更新しません。
update-types セマンティックバージョニングのmajor、minor、patchのどのレベルの高sんを対象にするか指定します

例えば

以下がgrouping機能を使ったdependabot.ymlです。
gropus: 以下が特に上記で説明した機能を使ったものです。

version: 2
updates:
  - package-ecosystem: bundler
    directory: /
    schedule:
      interval: daily
      time: "04:00"
      timezone: Asia/Tokyo
    reviewers:
      - hatsu38
    open-pull-requests-limit: 10
    groups:
      minor-and-patch:
        applies-to: version-updates
        patterns:
          - "*"
        update-types:
          - "minor"
          - "patch"
        exclude-patterns:
          - "rails"

minor-and-patch という名前のグルーピングを作成しました。

applies-to: version-updates とかいたので、セキュリティアップデートではなく、バージョンアップデートを対象にしています。

pattenrs:には、 *を書きました。つまり、すべての名前のライブラリを対象にしています。

がその内、update-types で書いた minor, patch のバージョンアップのみに絞り込んだアップデートです。

さらに rails gemのアップデートは、パッチバージョンのアップデートでも対象外にしています。

以下は、npmの場合のバージョンアップデートで作成されたプルリクエストです。

スクリーンショット 2024-03-24 18.11.28.png

便利ですね。

今まではライブラリごとにプルリクエストが作成されていたため、CIの時間もそのプルリクエストごとにかかっていました。
が、このグルーピング機能によって、1つにまとめられるので、CI時間の短縮にもなりそうです!

ドキュメントはこちらです↓

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0