Skip to content

Git Configuration

Anthony Bible edited this page Aug 25, 2025 · 1 revision

Git Configuration

The git section controls how repositories are cloned and managed. It is optional — sensible defaults are used if omitted.

Defaults (from code)

  • default_depth: 1
  • shallow_clone_threshold_mb: 100
  • default_timeout: 30m
  • max_concurrent_clones: 3
  • retry_attempts: 2
  • retry_backoff_duration: 5s
  • enable_progress_tracking: true
  • enable_performance_monitoring: true
  • auto_select_strategy: true
  • workspace_cleanup_enabled: true
  • workspace_cleanup_interval: 24h

Keys

  • git.default_depth (int): Depth for shallow clones
  • git.shallow_clone_threshold_mb (int): Use shallow clone above this repo size (MB)
  • git.default_timeout (duration): Base timeout for clone operations
  • git.max_concurrent_clones (int): Parallel clone limit (must be > 0)
  • git.retry_attempts (int): Retry count for clone operations (≥ 0)
  • git.retry_backoff_duration (duration): Delay between retries (≥ 0)
  • git.enable_progress_tracking (bool): Emit progress updates
  • git.enable_performance_monitoring (bool): Enable performance metrics
  • git.auto_select_strategy (bool): If true, use threshold to pick shallow vs full
  • git.workspace_cleanup_enabled (bool): Enable workspace cleanup
  • git.workspace_cleanup_interval (duration): Cleanup interval (> 0)

Behavior

  • Shallow clone decision: if auto_select_strategy is true, shallow clone when repositoryMB > shallow_clone_threshold_mb. If false, always shallow clone.
  • Clone timeout scales with repository size: timeout = default_timeout * max(1, repoMB / thresholdMB), capped at 180m.
  • Retry configuration exposed via MaxAttempts, BackoffDuration, BackoffMultiplier=2.0.

Validation

  • default_timeout must be > 0
  • max_concurrent_clones must be > 0
  • retry_attempts ≥ 0
  • retry_backoff_duration ≥ 0
  • workspace_cleanup_interval > 0
  • Negative values for depths/threshold are invalid

Example (YAML)

git:
  shallow_clone_threshold_mb: 200
  default_depth: 2
  default_timeout: 45m
  max_concurrent_clones: 5
  retry_attempts: 3
  retry_backoff_duration: 10s
  enable_progress_tracking: true
  enable_performance_monitoring: true
  auto_select_strategy: true
  workspace_cleanup_enabled: true
  workspace_cleanup_interval: 12h

Notes

  • This section is read via Viper key git. If absent, the defaults above apply.

See also

Source files

  • internal/config/git_config.go (GitConfig, defaults, behavior, validation)

Clone this wiki locally