#!/bin/sh # Husky pre-push hook to validate tags # Strictly enforces that all pushed tags start with 'v' (e.g., v1.0.0) z40=0000000000000000000000000000000000000000 while read local_ref local_sha remote_ref remote_sha do # Check if we are pushing a tag case "$local_ref" in refs/tags/*) tag_name="${local_ref#refs/tags/}" if ! echo "$tag_name" | grep -q "^v[0-9]"; then echo "" echo "❌ ERROR: Invalid tag name '$tag_name'" echo "--------------------------------------------------" echo "Consistency check failed: All tags MUST start with 'v'." echo "Example: v1.0.10" echo "" echo "Please delete the invalid tag and create a new one:" echo " git tag -d $tag_name" echo " git tag v$tag_name" echo "--------------------------------------------------" echo "" exit 1 fi ;; esac done exit 0