# securegit-workflows.conf — Default configuration for SecureGit workflow scripts
#
# Loading order (later overrides earlier):
# 1. workflows/securegit-workflows.conf (this file — shipped defaults)
# 2. ~/.config/securegit/workflows.conf (user global)
# 3. .securegit/workflows.conf (per-project)
# 4. Environment variables (runtime override)
#
# All settings are optional. Uncomment and modify as needed.
# ─── Branch conventions ─────────────────────────────────────────────────────
# Space-separated list of branches that cannot be deleted or force-pushed
SG_PROTECTED_BRANCHES="${SG_PROTECTED_BRANCHES:-main master develop staging production}"
# Valid branch name prefixes (used by branch manager for suggestions)
SG_BRANCH_PREFIXES="${SG_BRANCH_PREFIXES:-feature bugfix hotfix release experiment refactor docs test chore}"
# Default branch name (auto-detected from remote if empty)
SG_DEFAULT_BRANCH="${SG_DEFAULT_BRANCH:-}"
# ─── Commit conventions ─────────────────────────────────────────────────────
# Conventional commit types (space-separated)
SG_COMMIT_TYPES="${SG_COMMIT_TYPES:-feat fix docs style refactor perf test build ci chore revert}"
# Allowed scopes (empty = any scope accepted)
SG_COMMIT_SCOPES="${SG_COMMIT_SCOPES:-}"
# Require a ticket reference in commit messages
SG_REQUIRE_TICKET="${SG_REQUIRE_TICKET:-false}"
# Regex pattern for ticket references (e.g., JIRA-123, GH-42)
SG_TICKET_PATTERN="${SG_TICKET_PATTERN:-[A-Z]+-[0-9]+}"
# ─── Merge preferences ──────────────────────────────────────────────────────
# Default merge strategy: merge, squash, rebase, ff-only
SG_DEFAULT_MERGE_STRATEGY="${SG_DEFAULT_MERGE_STRATEGY:-squash}"
# Days before a branch is considered stale
SG_STALE_BRANCH_DAYS="${SG_STALE_BRANCH_DAYS:-30}"
# ─── Remote ──────────────────────────────────────────────────────────────────
# Primary remote name
SG_PRIMARY_REMOTE="${SG_PRIMARY_REMOTE:-origin}"
# ─── Quality gates ──────────────────────────────────────────────────────────
# Run securegit scan before committing
SG_PRE_COMMIT_SCAN="${SG_PRE_COMMIT_SCAN:-true}"
# Run securegit scan before pushing
SG_PRE_PUSH_SCAN="${SG_PRE_PUSH_SCAN:-true}"
# Maximum diff lines before suggesting a split
SG_MAX_DIFF_LINES="${SG_MAX_DIFF_LINES:-200}"
# ─── Project (auto-detected if empty) ───────────────────────────────────────
# Override auto-detected language: rust, go, python, js, java, ruby, php, c, generic
SG_LANGUAGE="${SG_LANGUAGE:-}"
# Override auto-detected commands (empty = auto-detect)
SG_TEST_CMD="${SG_TEST_CMD:-}"
SG_LINT_CMD="${SG_LINT_CMD:-}"
SG_FMT_CMD="${SG_FMT_CMD:-}"
SG_BUILD_CMD="${SG_BUILD_CMD:-}"
# ─── Release ─────────────────────────────────────────────────────────────────
# Release branch pattern (regex)
SG_RELEASE_BRANCH_PATTERN="${SG_RELEASE_BRANCH_PATTERN:-^release/}"
# Version file paths to update (space-separated, auto-detected if empty)
SG_VERSION_FILES="${SG_VERSION_FILES:-}"
# ─── Environment pipeline ───────────────────────────────────────────────────
# Space-separated ordered list of environments
SG_ENVIRONMENTS="${SG_ENVIRONMENTS:-development staging production}"
# Branch mapping: environment=branch (space-separated pairs)
SG_ENV_BRANCHES="${SG_ENV_BRANCHES:-development=develop staging=staging production=main}"
# ─── Multi-repo ──────────────────────────────────────────────────────────────
# Base directory for related repos (empty = parent directory)
SG_WORKSPACE_DIR="${SG_WORKSPACE_DIR:-}"
# Space-separated list of repo directories to manage together
SG_REPO_GROUP="${SG_REPO_GROUP:-}"
# ─── Worktree ────────────────────────────────────────────────────────────────
# Base directory for worktrees (relative to repo root)
SG_WORKTREE_DIR="${SG_WORKTREE_DIR:-.worktrees}"