## 概要
[[commit-msgフック]]を使って、コミットメッセージが[[Conventional Commits]]形式になっていなければエラーとしてコミットを中断させたい。
> [!caution]
>
> [[Conventional Commits]]と言っているが、正確には [[📕Conventional Commitsベースのコミットルール]] における1行目に限る。
## スクリプト
`hooks/commit-msg`を作成し、実行権限をつける。
```bash
#!/bin/bash
commit_message_first_line="$(cat "$1")"
if [[ "${commit_message_first_line}" == "fixup! "* ]]; then
exit 0
fi
commit_message_regex='^([^(:!]+)\(?([^():!]*)\)?!?:\ (.+)