mirror of
https://github.com/github/spec-kit.git
synced 2026-03-25 14:53:08 +00:00
Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/spec-kit/sessions/809a1dbf-1301-4312-b4d2-e18f9b3e8b2f
31 lines
1.0 KiB
Bash
31 lines
1.0 KiB
Bash
#!/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
|
|
}
|