GitHubのdependabotの挙動をカスタマイズする

GitHubにセキュリティ機能として付いているdependabotを有効にしておくと、依存関係にセキュリティホールが見つかったときに更新のPRを上げてくれて便利です。 デフォルトでもそれっぽい挙動をしてくれるので楽なのですが、設定ファイルを用意すれば細かいカスタマイズが出来るみたいです。

dependabotで検索するとnative版のdependabotってやつのドキュメントが出てくるのですが、現在はGitHub版の方が正です。

設定ファイルを用意する

.github/dependabot.yml に設定を書き込むことでdependabotの挙動をカスタマイズ出来るみたいです。 最小限必須な項目を書くと以下のような感じ。

version: 2

updates:
  - package-ecosystem: npm
    directory: /
    schedule:
      interval: daily

package-ecosystem は文字通り対象のパッケージマネージャです。 公式ドキュメントに対応するパッケージマネージャのリストがあります。

schedule.intervaldailyweeklymonthly などの実行間隔を指定出来ます。

PRを送るブランチを指定する

初期状態ではデフォルトブランチに対してPRが送信されますが、 target-branch を指定すると対象ブランチを設定出来ます。 masterブランチの他にdevelopブランチが別にある場合とか、そんな用途で。

version: 2

updates:
  - package-ecosystem: npm
    directory: /
    schedule:
      interval: daily
    target-branch: develop

アサイン/レビュアーを指定する

assigneesreviewers を設定することで、PRのアサインやレビュアーを指定することが出来ます。 レビュアーはチーム相手にも設定出来ます。

以下の例だと、macratにアサインして、some-orgって組織のnode-teamにレビューしてもらうようになっています。

version: 2

updates:
  - package-ecosystem: npm
    directory: /
    schedule:
      interval: daily
    assignees:
      - macrat
    reviewers:
      - some-org/node-team

ラベルを指定する

labels を指定すると、PRに付くラベルを指定することが出来ます。 デフォルトだと dependencies が付きますが、これを変えたいときに使います。

以下は node依存関係 の2つのラベルを付ける例です。

version: 2

updates:
  - package-ecosystem: npm
    directory: /
    schedule:
      interval: daily
    labels:
      - node
      - 依存関係

参考: Configuration options for dependency updates - GitHub Docs