git secretsを削除する時の注意

aws謹製のgit-secretsの削除で色々と困ったので共有。

awsの鍵などを誤ってgitリポジトリにプッシュしてしまうのを防ぐ「git-secrets」というツールがある。

GitHub - awslabs/git-secrets: Prevents you from committing secrets and credentials into git repositories

クラウド破産を起こさないようにするために必要なことではあるが、現在僕はaws環境を使っていないし、必要なくなったので削除することにした。
HomeBrewで入れていた場合、ツールの削除は簡単にできる。

$ brew remove git-secrets

問題は「ただ削除しただけではgit commitができなくなることがある」ということ。

この状態でコミットを作ろうとすると、「git: 'secrets' is not a git command. See 'git --help'.」と言われてコミットに失敗した。
これは、リポジトリがコミット時にgit-secretsを利用するように設定されており、それを削除したこと上手く行かなくなっているということ。

これを解消するために、各リポジトリの「.git/hooks」にある「commit-msg, pre-commit, prepare-commit-msg」という実行ファイルを削除する。
こいつらの中身を見ればわかるが、確かにコミット実行時にsecretsを利用するように書かれている。

個別にgit-secretsを有効にしていたらこれで対応すればいいが、git-templatesを設定していた場合はこの設定も削除しておこう。


参考: https://github.com/awslabs/git-secrets/issues/37

——

2018/02/03 git-secretsの説明が間違えていたので修正