【ディペンダボット】

Dependabot とは?

💡 GitHubに住む番人ロボ!脆弱なライブラリを見つけて自動修正
📌 このページのポイント
Dependabot の2つの機能 バージョン更新 v1.2.0 → v1.3.0 新機能あり 自動PR作成 dependabot.yml で設定 セキュリティ更新 脆弱性 CVE検知 自動アラート 自動修正PR 設定不要で デフォルト有効 対応エコシステム npm JavaScript pip Python Maven Java Docker コンテナ Go modules Go
Dependabot の2つの機能のイメージ
ひよこ ひよこ

Dependabotってどうやって使うの?

ペンギン先生 ペンギン先生

GitHubリポジトリに `.github/dependabot.yml` というファイルを置くだけだよ。更新したいパッケージエコシステムとチェック頻度を書けば、Dependabotが自動でPRを作ってくれるんだ。GitHubに標準搭載だから追加のインストールも不要だよ

ひよこ ひよこ

セキュリティアラートって何なの?

ペンギン先生 ペンギン先生

GitHubCVEデータベース(世界的な脆弱性情報のデータベース)と連携して、リポジトリが使っている依存パッケージに既知の脆弱性がないか常にチェックしているんだ。見つかるとDependabot Alertsとして通知してくれて、自動で修正PRまで作ってくれるよ

ひよこ ひよこ

RenovateとDependabot、どっちを使えばいいの?

ペンギン先生 ペンギン先生

GitHubだけで完結するプロジェクトならDependabotが手軽でおすすめだよ。設定も少なくてすぐ使える。一方、GitLab も使っていたり、更新ルールを細かくカスタマイズしたかったりする場合はRenovateのほうが柔軟性が高いんだ

ひよこ ひよこ

自動更新PRって、テストが通らないこともあるよね?

ペンギン先生 ペンギン先生

あるある。だからCI/CDと組み合わせるのが大事なんだ。DependabotのPRに対して自動テストが走るように設定しておけば、テストが通ったものだけマージすればいい。GitHub Actionsとの連携が簡単なのもDependabotの強みだよ

ひよこ ひよこ

Dependabotを使うときに気をつけることってあるの?

ペンギン先生 ペンギン先生

意外と知られていないけど、Dependabotはモノレポ(複数パッケージが1リポジトリにある構成)だと設定が複雑になるんだ。パッケージごとに更新設定を書く必要があるよ。あと、Dependabotのバージョン更新PRとセキュリティ更新PRは別の仕組みで動いていて、セキュリティ更新は設定ファイルがなくてもデフォルトで有効になっているんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Dependabot」って出てきたら「GitHubの依存パッケージ自動更新・脆弱性対策ボット」と思えればだいたいOK!
📖 おまけ:英語の意味
「Dependency Robot」 = 依存関係ロボット
💬 「Dependency(依存関係)」と「Robot(ロボット)」を組み合わせた造語で、依存パッケージを自動管理するロボットという意味だよ
← 用語集にもどる