cloudenv / git-hooks /commit-msg
Vishvam10
initial space commit
b404de3
Raw History Blame Contribute Delete
1.01 kB
#!/bin/bash
printf "\nRunning commit-msg hook...\n" >&2
commit_msg_file="$1"
commit_msg=$(head -n1 "$commit_msg_file")
# Skip merge commits
if [[ "$commit_msg" =~ ^Merge\ ]]; then
echo "Skipping merge commit"
exit 0
fi
types="add|chore|refactor|test|fix|docs|wip|vapt|debug"
modules="server|common|services|misc|client|inference|actions|providers|engines"
# Pattern:
# type: (module) [optional_submodule] message
pattern="^(${types}): \(${modules}\)( \[[a-z_]+\])? [a-z0-9].+$"
if ! echo "$commit_msg" | grep -Eq "$pattern"; then
cat <<EOF
Invalid commit message format.
Expected:
<type>: (<module>) [optional_submodule] message
Rules:
- type: one of ${types}
- module: one of ${modules}
- optional_submodule: lowercase inside []
- message: lowercase, no leading caps
Valid examples:
add: (server) [engines] add build engine
fix: (common) dockerfile issue
chore: (client) update models
add: (server) [providers] add s3 reset
EOF
exit 1
fi
echo "Commit message OK"
exit 0