ファイルを外部に共有する前に、うっかり混入したAPIキーやパスワードを検出する——。そんなシンプルかつ重要な目的のCLIツール「scan-for-secrets」が、バージョン0.2へとアップデートされた。開発者Simon Willisonによるリリースで、大規模ディレクトリへの対応強化とPython APIの追加が目玉だ。AIエージェントやCI/CDパイプラインへの組み込みを見据えた設計が随所に見える。
バージョン0.2の主な変更点
最も注目すべき変更はストリーミング出力への対応だ。従来は全ファイルのスキャンが終わるまで結果が表示されなかったが、0.2からは発見次第リアルタイムで出力される。数千ファイルを抱えるモノリポやレガシーコードベースをスキャンする際、途中で止めて対応できるようになり、実際の開発現場での使い勝手が格段に上がる。
-d/--directoryオプションの複数指定も地味に便利だ。フロントエンドとバックエンドのリポジトリを別ディレクトリで管理しているチームは多いが、これまでは個別に実行する必要があった。複数ディレクトリをまとめてスキャンできることで、リリース前の最終チェックをスクリプト一発で完結させられる。
個別ファイル指定の**-f/--fileオプション**は、Gitのpre-commitフックとの組み合わせで威力を発揮する。コミット対象ファイルだけをピンポイントで検査するフローが簡単に組めるようになった。
Python APIとしてはscan_directory_iter()・scan_file()・scan_file_iter()の3関数が追加された。CLIとしての利用に留まらず、Pythonスクリプトや自動化ツールから組み込める設計は、AIエージェントのツールとして呼び出すユースケースも意識しているように見える。
実務での活用ポイント
pre-commitフックへの組み込みが最もすぐに試せる活用法だ。.git/hooks/pre-commitに以下のような記述を追加するだけで、コミット時に自動検査が走る:
出典: この記事は scan-for-secrets 0.2 の内容をもとに、筆者の見解を加えて独自に執筆したものです。