Combines three repositories into a single workspace: - go-agent → pkg/orchestrator (Clotho), pkg/jobrunner, pkg/loop, cmd/ - go-agentic → pkg/lifecycle (allowance, sessions, plans, dispatch) - php-devops → repos.yaml, setup.sh, scripts/, .core/ Module path: forge.lthn.ai/core/agent All packages build, all tests pass. Co-Authored-By: Virgil <virgil@lethean.io>
37 lines
1.1 KiB
Bash
Executable file
37 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
# This script validates a git branch name based on a naming convention.
|
|
|
|
full_command="${CLAUDE_TOOL_INPUT:-$*}"
|
|
|
|
# Check for override flag
|
|
if [[ "$full_command" =~ --no-verify ]]; then
|
|
echo "✓ Branch validation skipped due to --no-verify flag."
|
|
exit 0
|
|
fi
|
|
|
|
branch_name=""
|
|
|
|
# Regex to find branch name from 'git checkout -b <branch> ...'
|
|
if [[ "$full_command" =~ git\ checkout\ -b\ ([^[:space:]]+) ]]; then
|
|
branch_name="${BASH_REMATCH[1]}"
|
|
# Regex to find branch name from 'git branch <branch> ...'
|
|
elif [[ "$full_command" =~ git\ branch\ ([^[:space:]]+) ]]; then
|
|
branch_name="${BASH_REMATCH[1]}"
|
|
fi
|
|
|
|
if [[ -z "$branch_name" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
convention_regex="^(feat|fix|refactor|docs|test|chore)/.+"
|
|
|
|
if [[ ! "$branch_name" =~ $convention_regex ]]; then
|
|
echo "❌ Invalid branch name: '$branch_name'"
|
|
echo " Branch names must follow the convention: type/description"
|
|
echo " Example: feat/new-login-page"
|
|
echo " (To bypass this check, use the --no-verify flag)"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Branch name '$branch_name' is valid."
|
|
exit 0
|