きっかけ
Dependabotは、依存パッケージに脆弱性が見つかると自動で検知し、アラートやPR上げてくれる便利な仕組みです。ただ、社内のリポジトリ数が増え、歴史の長いリポジトリも増えてくると、そのアラートを全部きちんと追うのはなかなか大変になってきます。
特に、もう誰も触っていない休眠リポジトリにPRが飛んでくると、「これ対応すべき?無視していい?」と地味に判断コストがかかりますし、通知のノイズにもなってしまいます。
そこで、社内組織のリポジトリでは休眠状態のリポジトリはDependabotの検知対象から外す、という仕組みを作って運用しています。
やっていること
- GitHub Actionsで定期実行
- 毎週自動的にチェックが走ります
- 一定期間コミットがないリポジトリを検出し、Dependabotを止める
- 「動いていない」と判断されたリポジトリは、Dependabotの検知対象から除外されます
- また、除外中のリポジトリがアクティブになった際は有効にします
- 停止中・除外対象のリポジトリをIssueで管理
- どのリポジトリが今止まっているのか、「休眠判定だけどアラートは有効にしたい」対象があるのかを、Issue上で管理しています
効果
- 動いていないリポジトリからのアラートが減り、本当に見るべき通知に集中しやすくなった
- 管理がIssueベースなので、状況の把握や運用の調整がしやすい
さいごに
依存関係の管理は、最近のセキュリティ事情を考えると軽視できない部分だと感じています。一方で、休眠リポジトリまで含めて全部を人力で追い続けるのも現実的ではありません。
こういった通知やリポジトリの管理、皆さんはどうされているでしょうか?
似たような悩みは多くの組織で発生していると思います。必要なアラートを見逃さないようにちゃんと管理していきたいですね。