Bug Fixes
- Releases no longer fail with "The target couldn't be found" on some Gitea/Forgejo instances (#331). Release creation always sent a
targetbranch (target_commitish, e.g.main). When a release's git tag wasn't yet present in the Gitea mirror — which happens while Gitea's own git-mirror clone is still catching up — Gitea tried to create the tag from that target and returned a generic404 "The target couldn't be found", so the release (and its assets) was never created and re-syncing never recovered. gitea-mirror now verifies the git tag exists in Gitea before creating a release: if it isn't synced yet it skips and retries on the next sync (never creating a tag from a target), and it no longer sends thetargetfield at all — Gitea attaches the release to the existing tag. Skipped-because-not-synced releases are now reported in the logs. Reproduced and verified against the reporter's exact stack (Forgejo 15 rootless + read-only) and Gitea 1.20–1.26 / Forgejo 1.21–15. Builds on the idempotent asset reconciliation from v3.20.1, so once a release is created its assets self-heal on the next sync. Thanks @RikudouGoku for the detailed reports and logs.
Full Changelog: v3.20.1...v3.20.2