Files
quick-dataset/.githooks/commit-msg
T
2026-03-26 14:24:20 +08:00

36 lines
977 B
Bash
Executable File

#!/usr/bin/env sh
set -eu
MSG_FILE="$1"
HEADER="$(sed -n '1p' "$MSG_FILE" | tr -d '\r')"
# Allow merge commits and auto-generated revert headers.
case "$HEADER" in
"Merge "*|"Revert "*)
exit 0
;;
esac
PATTERN='^(feat|enhance|fix|refactor|perf|docs|test|build|ci|chore|revert)(\([a-zA-Z0-9._/-]+\))?: .+$'
if ! printf '%s\n' "$HEADER" | grep -Eq "$PATTERN"; then
echo "提交信息格式不符合规范。" >&2
echo "要求: <type>(<scope>): <subject> 或 <type>: <subject>" >&2
echo "示例: enhance(ui): 优化首页按钮交互反馈与提示文案" >&2
exit 1
fi
# Ensure subject contains at least one Chinese character.
if ! printf '%s\n' "$HEADER" | grep -Eq '[一-龥]'; then
echo "提交信息必须使用中文(subject 至少包含一个中文字符)。" >&2
exit 1
fi
# Reject sentence-ending Chinese period in header.
if printf '%s\n' "$HEADER" | grep -Eq '。$'; then
echo "subject 不要以句号结尾。" >&2
exit 1
fi
exit 0