Bug fixes
- Starred repos no longer duplicate on every sync (#315). Mirrors are now reused by source identity instead of getting a new
-owner,-1,-2… suffix on each run. This also resolves the strategy-change duplicates and the "forks marked mirrored but never created" cases from #309.Note: this stops new duplicates from being created. Orphaned copies already in your Gitea instance still need to be removed manually.
- Release activity-log spam fixed (#310). Releases are now reconciled by tag set rather than by display order, so repositories whose git-tag commit order disagrees with their GitHub publish order no longer delete-and-recreate every release on each sync.
- Scheduler respects the disabled toggle (#309). A configured mirror interval no longer forces boot-time auto-start when scheduling is turned off.
- Pre-sync backup uses the configured Gitea URL (#309). Fixes clone failures when Gitea's
ROOT_URLdiffers from the address the app can actually reach (e.g. Tailscale MagicDNS deployments). - Clearer error for non-mirror repositories (#308). A Gitea
HTTP 405on sync now explains that the repository isn't a pull mirror, instead of surfacing a raw status code.
Features
- "Stop Pending Mirrors" action (#309) to actually halt queued work, alongside corrected "Clear Activity History" wording that no longer implies it cancels pending mirrors.
skipPersonalRepostoggle (#304) to mirror only organization repositories. The previously-inertONLY_MIRROR_ORGSenvironment variable now works and maps to this setting.
Full Changelog: v3.17.1...v3.18.0