TL;DR
-
aws_iam_policy_attachment
を追加差分に含むコミットを reject する pre-commit hook を作った
経緯
-
aws_iam_policy_attachment
をうっかりコミットしてしまうメンバーが後を絶たない - CI とか作ってサーバ側で防ぎたいんだけど、時間もないのでとりあえずローカルで機械的に防ぎたい
aws_iam_policy_attachment
がいかに悪事を働くかについては以下の記事を参照:
コード
.git/hooks/pre-commit
#!/bin/sh
TABOO_WORD=aws_iam_policy_attachment
# 最新のコミットとの差分を比較し、タブー語を追加差分に含む場合は reject する
git diff HEAD -U0 "*.tf" | grep '^+[^+]' | grep "$TABOO_WORD" 1>/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
echo "[pre-commit FAILED..] 🔥 $TABOO_WORD は見つけ次第撲滅します!!!🔥"
exit 1
fi
仕込み方
- プロジェクトのフォルダに移動して、上記のコードを
.git/hooks/pre-commit
にコピーする - 実行属性を与える
chmod +x .git/hooks/pre-commit
実行例
hoge/main.tf
aws_iam_policy_attachment
$ git add hoge/main.tf
$ git commit
[pre-commit FAILED..] 🔥 aws_iam_policy_attachment は見つけ次第撲滅します!!!🔥