* Add --protect-local to skip dirty repos
Introduce a --protect-local flag (GHORG_PROTECT_LOCAL) to skip updating repositories that have uncommitted changes or unpushed commits. Adds detection logic (hasLocalChanges) and tracks protected repos/stats (ProtectedCount, protectedRepos), updates status output/printing to include protected counts, and registers the flag in root command and sample-conf.yaml. Includes changelog entry and a suite of tests exercising dirty, unpushed, clean, backup/no-clean bypass, and new-repo behavior.
* Bump GitHub Actions Go to 1.25.0
Update the ghorgVersion constant to v1.11.10 and add an unreleased [1.11.10] section to CHANGELOG.md with placeholder subsections. Prepares repository for the upcoming release.
The handleNoCleanMode function now only performs fetch-all operations if GHORG_FETCH_ALL is set to true, improving control over repository processing. Added tests to verify behavior when fetch-all is enabled and disabled.
* Add clone delay option with auto concurrency adjustment
Introduces GHORG_CLONE_DELAY_SECONDS to control delay between cloning repositories for rate limiting. When set to a value greater than 0, concurrency is automatically set to 1 for predictable behavior. Updates CLI flags, environment variable defaults, config printing, and sample config documentation. Applies delay before cloning or pulling repositories.
* Refactor clone delay logic and add helper functions
Introduced helper functions for parsing and applying clone delay configuration, improving code reuse and readability. Centralized delay logic in repository processing and removed duplicate environment variable checks. Now, clone delay is consistently applied and concurrency is auto-adjusted when necessary.
* Normalize path separators in repo matching logic
Updated sliceContainsNamedRepo to normalize both forward and back slashes for cross-platform compatibility. Added tests to verify correct matching behavior with various path separator combinations, addressing issues with Windows and GitLab API inconsistencies.