#!/usr/bin/env bash set -euo pipefail MSG_FILE="${1}" FIRST_LINE="$(head -n 1 "$MSG_FILE" | tr -d '\r')" # Autoriser commits auto-générés par git if [[ "$FIRST_LINE" =~ ^Merge\ ]]; then exit 0 fi # Types autorisés (MINUSCULES uniquement) # Optionnel: scope => feat(auth) : ... REGEX='^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test|wip)(\([a-z0-9._-]+\))?\ :\ .+' if [[ ! "$FIRST_LINE" =~ $REGEX ]]; then echo "❌ Message de commit invalide." echo "" echo "➡️ Format attendu : () : " echo "➡️ Types autorisés (minuscules uniquement) :" echo " build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test" echo "" echo "✅ Exemples :" echo " feat : add login page" echo " fix(auth) : prevent null token crash" echo " docs : update README" echo "" echo "❌ Exemple refusé :" echo " Feat : add login page" exit 1 fi