Files
cn-rdms/githooks/commit-msg

41 lines
946 B
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
set -eu
MSG_FILE="$1"
FIRST_LINE="$(sed -n '1p' "$MSG_FILE" | tr -d '\r')"
# Allow Git-generated merge commits and revert commits to pass through.
case "$FIRST_LINE" in
Merge\ *|Revert\ \"*)
exit 0
;;
esac
PATTERN='^(feat|feat-wip|fix|docs|typo|style|refactor|perf|optimize|test|build|ci|chore|revert)\([a-z][a-z0-9-]*\): .+$'
if printf '%s\n' "$FIRST_LINE" | grep -Eq "$PATTERN"; then
exit 0
fi
cat <<'EOF' >&2
ERROR: commit message must follow Conventional Commits.
Required format:
type(scope): 描述
Examples:
fix(system): 修复组织树查询空指针问题
refactor(framework): 拆分权限上下文装配逻辑
docs(other): 补充后端提交规范说明
Allowed types:
feat, feat-wip, fix, docs, typo, style, refactor, perf,
optimize, test, build, ci, chore, revert
Tip:
优先使用贴近模块的 scope例如 system、gateway、framework、security、sql、deps、other。
EOF
exit 1