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.interval
で daily
や weekly
、 monthly
などの実行間隔を指定出来ます。
PRを送るブランチを指定する
初期状態ではデフォルトブランチに対してPRが送信されますが、 target-branch
を指定すると対象ブランチを設定出来ます。
masterブランチの他にdevelopブランチが別にある場合とか、そんな用途で。
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule:
interval: daily
target-branch: develop
アサイン/レビュアーを指定する
assignees
と reviewers
を設定することで、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