#!/usr/bin/env bash # Git-specific common functions for the git extension. # Extracted from scripts/bash/common.sh — contains only git-specific # branch validation and detection logic. # Check if we have git available has_git() { git rev-parse --show-toplevel >/dev/null 2>&1 } # Validate that a branch name matches the expected feature branch pattern. # Accepts sequential (###-*) or timestamp (YYYYMMDD-HHMMSS-*) formats. check_feature_branch() { local branch="$1" local has_git_repo="$2" # For non-git repos, we can't enforce branch naming but still provide output if [[ "$has_git_repo" != "true" ]]; then echo "[specify] Warning: Git repository not detected; skipped branch validation" >&2 return 0 fi if [[ ! "$branch" =~ ^[0-9]{3}- ]] && [[ ! "$branch" =~ ^[0-9]{8}-[0-9]{6}- ]]; then echo "ERROR: Not on a feature branch. Current branch: $branch" >&2 echo "Feature branches should be named like: 001-feature-name or 20260319-143022-feature-name" >&2 return 1 fi return 0 }