feat: implement blog project with CI pipeline
This commit is contained in:
64
scripts/commit-msg
Executable file
64
scripts/commit-msg
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
COMMIT_MSG_FILE="$1"
|
||||
if [ -z "$COMMIT_MSG_FILE" ]; then
|
||||
echo "Checking for cache files in staged changes..."
|
||||
|
||||
CACHE_FILES=$(git diff --cached --name-only | grep -E "__pycache__|\.pyc$|\.pyo$" || true)
|
||||
|
||||
if [ -n "$CACHE_FILES" ]; then
|
||||
echo "❌ Attempting to commit Python cache files!"
|
||||
echo ""
|
||||
echo "Files:"
|
||||
echo "$CACHE_FILES"
|
||||
echo ""
|
||||
echo "Run: bash scripts/clean_cache.sh"
|
||||
echo "Or: git reset HEAD <files>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✓ No cache files in staged changes"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
|
||||
|
||||
if ! echo "$COMMIT_MSG" | grep -qE "^(feat|fix|docs|style|refactor|test|chore): [a-z].{0,49}$"; then
|
||||
echo "❌ Invalid commit message format!"
|
||||
echo ""
|
||||
echo "Current message: $COMMIT_MSG"
|
||||
echo ""
|
||||
echo "Expected format: <type>: <short description>"
|
||||
echo ""
|
||||
echo "Types:"
|
||||
echo " feat - New feature"
|
||||
echo " fix - Bug fix"
|
||||
echo " docs - Documentation"
|
||||
echo " style - Code style"
|
||||
echo " refactor - Refactoring"
|
||||
echo " test - Tests"
|
||||
echo " chore - Maintenance"
|
||||
echo ""
|
||||
echo "Rules:"
|
||||
echo " - Max 50 characters"
|
||||
echo " - Lowercase after type"
|
||||
echo " - Imperative mood (add, not added)"
|
||||
echo " - No period at end"
|
||||
echo ""
|
||||
echo "Good examples:"
|
||||
echo " feat: add user authentication"
|
||||
echo " fix: resolve database timeout"
|
||||
echo " docs: update API docs"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if echo "$COMMIT_MSG" | grep -qE "\.$"; then
|
||||
echo "❌ Commit message should not end with a period"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✓ Commit message valid: $COMMIT_MSG"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user