あるリポジトリのDependabot設定をする場合、Settings
の中のCode security and analysis
をクリックする。クリックすると次のような設定オプションの一覧が表示される。
Dependabotについての設定用ボタンは3つある。それぞれ有効化する目的は次の通り。
-
Dependabot alerts
: 依存関係に影響を与える脆弱性があるときアラートを受け取る。脆弱性の解決には問題FixのためのDependabotのPull Request (以下、PR)を手動で生成する -
Dependabot security updates
: Dependabotが問題FixのためのPRを自動で生成することを許可する -
Dependabot version update
: 依存関係のあるパッケージで新しいバージョンが利用可能になったことが検知されたら最新の状態に保つためにDependabotがPRを自動生成することを許可する
依存関係のあるコードの脆弱性Fixは最低限やりたいところなのでの上記 1 + 2はとりあえず有効化してよいだろう。
3の依存関係のあるコードを最新状態に保つ設定について、もし最新状態に保ちたいならば次の手順で有効化する
3-1. Dependabot version update
ボタンをクリックし有効化する
ボタンクリックしただけではEnabledにならない。下記設定ファイルの追加が必要となる。
3-2. dependabot.yml
ファイルを.github配下に設置
dependabot.yml
でDependabotのリポジトリスキャンの振る舞いを定義する。例えばGo言語ベースのリポジトリならば次のような内容になる。
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
ref: Dependabot for Golang based repositories
dependabot.yml
は追加されるとDependabot version update
が有効化される。
なお、dependabot.ymlの詳細な設定オプションについてはdependabot.yml ファイルの構成オプションが参考になる。
一時的にversion updatesを停止する方法
次のようにopen-pull-requests-limit: 0
の一行を追加することで一時的にversion updatesを停止できる。
理由: デフォルトでDependabotはバージョン更新に対して最大5つのプルリクエストをオープンする。Dependabot からの未解決のPRが5つあると、Dependabotは未解決の要求の一部がマージまたは閉じられるまで新しい要求を開けない。この制限を変更するにはopen-pull-requests-limitを使う。この設定を活用し0にすることで一時的にversion updatesを停止できる。
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 0
See also: dependabot.yml ファイルの構成オプション - open-pull-requests-limit
最後に、Dependabotで検知されたアラートはリポジトリメニューのSecurity
から確認できる。詳しくは、Dependabot アラートの表示と更新が参考になる。
以上、たったこれだけ。