20 lines
586 B
Bash
20 lines
586 B
Bash
#!/bin/sh
|
|
|
|
# Path to the commit message file
|
|
COMMIT_MSG_FILE=$1
|
|
|
|
# Read the commit message
|
|
COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
|
|
|
|
# Regex pattern for Conventional Commits
|
|
# Example: "feat: add new feature" or "fix!: break everything"
|
|
PATTERN='^(feat|fix|docs|style|refactor|perf|test|chore|revert|build|ci|wip|workflow)([!]?): .{1,}$'
|
|
|
|
if ! echo "$COMMIT_MSG" | grep -Eq "$PATTERN"; then
|
|
echo "❌ Invalid commit message format."
|
|
echo "Please follow the Conventional Commits specification: https://www.conventionalcommits.org/"
|
|
echo "Example: 'feat: add new feature'"
|
|
exit 1
|
|
fi
|
|
|