Git/GitHub: 秘密情報を push してしまったら、最初にやるのは「無効化」。rebase+force push だけでは足りない
履歴を書き換えても、GitHub 上ではフォーク・PR の参照・キャッシュから古いコミットが SHA 経由で見えることがある。漏れた時点で第三者に取得されたと考え、まず鍵を失効させる。
対応の順番
- すぐに失効・ローテーション(API キー、トークン、パスワード)。これが最優先
- 漏れた鍵が使われていないか、各サービスのアクセスログや監査ログを確認
- 必要なら履歴から削除(
git filter-repoなど)して force push - GitHub 上のキャッシュ(PR 差分など)を消すには GitHub サポートに依頼する。フォークされていれば、そちらにも残る
- 再発防止: push protection(secret scanning)を有効にする、
.gitignore、pre-commit で秘密を検出するツールを入れる
注意点
- 「消したからセーフ」ではない。公開リポジトリなら、自動の収集ボットが数分で拾うこともある。
- 社内ルールに従ってインシデントとして報告する。メルカリの公開事例が参考になる(出典参照)。