28 lines
802 B
Bash
Executable File
28 lines
802 B
Bash
Executable File
#!/bin/bash
|
|
# Commit message hook: validate commit message format
|
|
|
|
COMMIT_MSG_FILE=$1
|
|
MSG=$(head -n1 "$COMMIT_MSG_FILE")
|
|
|
|
# Skip validation for merge commits
|
|
if echo "$MSG" | grep -q "^Merge"; then
|
|
exit 0
|
|
fi
|
|
|
|
# Check message length
|
|
if [ ${#MSG} -lt 5 ]; then
|
|
echo "❌ Commit message too short (min 5 characters)"
|
|
exit 1
|
|
fi
|
|
|
|
# Optional: enforce conventional commits format
|
|
# Uncomment if you want to enforce prefixes like "feat:", "fix:", etc.
|
|
# if ! echo "$MSG" | grep -qE "^(feat|fix|docs|style|refactor|test|chore|backend|frontend|deploy)(\(.+\))?:"; then
|
|
# echo "❌ Commit message should follow format: type: description"
|
|
# echo " Allowed types: feat, fix, docs, style, refactor, test, chore, backend, frontend, deploy"
|
|
# exit 1
|
|
# fi
|
|
|
|
echo "✅ Commit message OK"
|
|
exit 0
|