Dependabot v2と自動マージについて
Dependabot は依存ライブラリのアップデートを監視し、自動的に更新用のプルリクエストを作ってくれるボットです。 以前バージョン1についてここで紹介しました。バージョン2でGitHubネイティブな機能になり、設定が変わったので紹介します。
バージョン1との違い
Githubネイティブになったことで、GithubのInsightsにDepdendabotのステータスが表示されるようになりました。
ただし、バージョン1からいくつか機能削除が行われています。
例えば、dependency_type
でproduction用の依存関係とdevelopment用の依存関係を分けて記述できていましたが、バージョン2では使えません。
また、プルリクエストを自動でマージする機能も削除されています。後述する Mergery と組み合わせて自動マージすることができます。
設定
Dependabotの設定は.github/dependabot.yml
に設定ファイルを作成するだけです。
例えば次のような設定をします。
その他の設定項目はここ を参照してください。
# 2 つのパッケージマネージャーの最低限の設定を含む
# 基本的な dependabot.yml ファイル
version: 2
updates:
# npm のバージョン更新を有効にする
- package-ecosystem: "npm"
# 「root」ディレクトリで「package.json」と「lock」ファイルを探す
directory: "/"
# npm レジストリの更新を毎日(平日)チェックする
schedule:
interval: "daily"
# Docker のバージョン更新を有効にする
- package-ecosystem: "docker"
# 「root」ディレクトリで「Dockerfile」を探す
directory: "/"
# 週に 1 回更新を確認する
schedule:
interval: "weekly"
自動マージの設定
dependabot v2には自動マージの機能がありませんが、Mergery と組み合わせることで自動マージすることができます。
手順は次の2つです。
- Mergery をインストールする。
- dependabotでプルリクを作るときに
automerge
のラベルを追加されるようにする
version: 2
updates:
# npm のバージョン更新を有効にする
- package-ecosystem: "npm"
# 「root」ディレクトリで「package.json」と「lock」ファイルを探す
directory: "/"
# npm レジストリの更新を毎日(平日)チェックする
schedule:
interval: "daily"
labels:
- "dependencies"
- "automerge"