こんにちは、虎の穴ラボのT.Kです。主にFantiaを担当しています。
今回はGitHubでの開発において便利な、Dependabotについて紹介します。
Dependabotとは
GitHubで管理している自身のリポジトリにおいて、脆弱性があったり古かったりするパッケージへの依存関係を検出し、その解消を手助けしてくれるツールです。 以下の3つの機能からなります。
- Dependabot alerts
- Dependabot security updates
- Dependabot version updates
対応しているエコシステムについては下記を参照のこと。
以下、少し古いパッケージを使用したプロジェクトを作成し、実際の内容を確認します。
Dependabot alerts
Dependabot alertsは、脆弱性のある依存関係を検出し、アラートとして一覧表示化したり通知を出してくれる機能です。
リポジトリトップのSecurityタブから移動することができ、そこでは検出された脆弱性の一覧が表示されています。
この一覧は、つい先日のアップデートまではパッケージ単位だったのですが、現在は脆弱性ごとの表示となっています。
github.blog
詳細を表示させると、その脆弱性の重大度やどのバージョン以降なら解消されているか、などの情報が表示されます。
また、「Create Dependabot security update」ボタンからパッケージ更新のプルリクエストを作成することができます。
Dependabot security updates
上述したように、脆弱性のあるパッケージを更新するプルリクエストを作成する機能です。
作成されたプルリクエストは以下のようになり、通常のプルリクエストと同じようにコメントしたりマージしたりが可能です。
上記Dependabot alertsおよびDependabot security updatesは、いずれもGitHubのSettingsタブ内で画面上からEnableとDisableを切り替えることができます。
Dependabot version updates
こちらは脆弱性の有無にかかわらず、パッケージを最新の状態に保つための機能です。
Dependabot security updatesなどとは異なり、画面上からではなく/.github/dependabot.ymlというファイルをリポジトリに追加することで動作するようになります。
一応、画面上からファイル作成をすることも可能となっています。
動作させると、以下のようになりました。
dependabot.ymlではチェックするサイクルや自動作成するプルリクエストの上限数なども設定できるので、必要に応じて設定することをおすすめします。
まとめ
各パッケージは依存関係も複雑で、セキュリティアップデートについての情報を手動で集めるのは大変な作業となります。
Dependabotをうまく活用して、よりセキュアなソフトウェア開発を心がけていきましょう。
P.S.
虎の穴ラボでは、私たちと一緒に新しいオタク向けサービスを作る仲間を募集しています。
詳しい採用情報は以下をご覧ください。
yumenosora.co.jp