虎の穴開発室ブログ

虎の穴ラボ株式会社所属のエンジニアが書く技術ブログです

MENU

よりセキュアな開発に向けて! Dependabotのご紹介

f:id:toranoana-lab:20220311174133p:plain

こんにちは、虎の穴ラボのT.Kです。主にFantiaを担当しています。
今回はGitHubでの開発において便利な、Dependabotについて紹介します。

Dependabotとは

GitHubで管理している自身のリポジトリにおいて、脆弱性があったり古かったりするパッケージへの依存関係を検出し、その解消を手助けしてくれるツールです。 以下の3つの機能からなります。

  • Dependabot alerts
  • Dependabot security updates
  • Dependabot version updates

対応しているエコシステムについては下記を参照のこと。

docs.github.com

以下、少し古いパッケージを使用したプロジェクトを作成し、実際の内容を確認します。

Dependabot alerts

Dependabot alertsは、脆弱性のある依存関係を検出し、アラートとして一覧表示化したり通知を出してくれる機能です。
リポジトリトップのSecurityタブから移動することができ、そこでは検出された脆弱性の一覧が表示されています。

f:id:toranoana-lab:20220303163919p:plain

この一覧は、つい先日のアップデートまではパッケージ単位だったのですが、現在は脆弱性ごとの表示となっています。
github.blog

詳細を表示させると、その脆弱性の重大度やどのバージョン以降なら解消されているか、などの情報が表示されます。
また、「Create Dependabot security update」ボタンからパッケージ更新のプルリクエストを作成することができます。

f:id:toranoana-lab:20220303163958p:plain

Dependabot security updates

上述したように、脆弱性のあるパッケージを更新するプルリクエストを作成する機能です。
作成されたプルリクエストは以下のようになり、通常のプルリクエストと同じようにコメントしたりマージしたりが可能です。

f:id:toranoana-lab:20220303164025p:plain

上記Dependabot alertsおよびDependabot security updatesは、いずれもGitHubのSettingsタブ内で画面上からEnableとDisableを切り替えることができます。

Dependabot version updates

こちらは脆弱性の有無にかかわらず、パッケージを最新の状態に保つための機能です。
Dependabot security updatesなどとは異なり、画面上からではなく/.github/dependabot.ymlというファイルをリポジトリに追加することで動作するようになります。
一応、画面上からファイル作成をすることも可能となっています。

f:id:toranoana-lab:20220303164104p:plain

動作させると、以下のようになりました。

f:id:toranoana-lab:20220303164123p:plain

dependabot.ymlではチェックするサイクルや自動作成するプルリクエストの上限数なども設定できるので、必要に応じて設定することをおすすめします。

まとめ

各パッケージは依存関係も複雑で、セキュリティアップデートについての情報を手動で集めるのは大変な作業となります。
Dependabotをうまく活用して、よりセキュアなソフトウェア開発を心がけていきましょう。

P.S.

虎の穴ラボでは、私たちと一緒に新しいオタク向けサービスを作る仲間を募集しています。
詳しい採用情報は以下をご覧ください。
yumenosora.co.jp