このエントリーをはてなブックマークに追加

[macOS] git-secret が動かなかった

ご存じ git-secret とても便利ですが、ふとちゃんと使っていたところ、git commit 時に、次のように失敗していました。


$ git commit -m "foo" foo.txt
[ERROR] Matched one or more prohibited patterns

Possible mitigations:
– Mark false positives as allowed using: git config –add secrets.allowed …
– Mark false positives as allowed by adding regular expressions to .gitallowed at repository’s root directory
– List your configured patterns: git config –get-all secrets.patterns
– List your configured allowed patterns: git config –get-all secrets.allowed
– List your configured allowed patterns in .gitallowed at repository’s root directory
– Use –no-verify if this is a one-time false positive

よくよく原因を調べてみると、git-secret の commit_msg_hook フックの grep コマンドに失敗しているのが分かりました。
macOS の grep は、BSD 由来の grep だったことが原因でした。


/usr/bin/grep --version
grep (BSD grep) 2.5.1-FreeBSD
83242 (prj/github/github-practic

GNU grep で切り替えて、無事対処しました。いちお、issue をこっそり本家に投稿しておきました。
alias grep=ggrep だとうまくいなかったので、思い切って gnu grep に入れ替えてみました。


$ brew tap homebrew/dupes
$ brew install grep --with-default-names

これで無事 git-secret が動作しているので、クラウド破産の危機が減ったかと思います。

あと、この情報を参考に、ついでにいくつか GNU のものにまとめて差し替えてみました。BSD 系のものを使うときには /usr/bin/ を指定すればよいので忘れないでおきます。