Git Hooksでmainへのコミットを防止するアレと付き合っていく

Git Hooksでmainへのコミットを防止するアレとの上手い付き合い方を思いしついたのでメモ。

GitHubの無料Organizationだとprivateリポジトリに対してBranch protection rulesが設定できないので、運用でカバーするしかなかった。そこで、GitHooksを使って、コミット前にmainっぽいリポジトリへのコミットを防ぐように設定したけど、リポジトリごとにGitHooksを書いて周るのはやや面倒なので、グローバルにhooksを設定するようにした。

ところが、ブランチを切って作業するほどでもないリポジトリでもコミットが弾かれてやや面倒。そこで、git config --local pre-commit.allow-mainpushがtrueなら確認せずにコミットを通すようにした。これで、「俺がここにmainにpushしても止めてくれるな!!」という場合にも対応できる。

「これでmainにpushしちゃった」事故は根絶できるだろう。

実際のコード↓ github.com