GitHub to Gitea Mirror Sync

Runtime sequence of sync_mirrors.py: config, repository mirroring, release sync, streamed asset copy, orphan check, and exit status

GitHub to Gitea Mirror Sync Runtime sequence of sync_mirrors.py: config, repository mirroring, release sync, streamed asset copy, orphan check, and exit status start sync run load defaults, mirror.env, environment normalized settings list owned repositories repos + token expiry header query matching repository existing mirror or 404 migrate missing mirror or patch interval mirror created or updated list repository releases source release metadata list releases and tags target releases, assets, tags create or patch changed release stream missing asset multipart upload list mirrors for orphan warning summary log and exit code Startup Mirror loop Release sync Finish Runner · cron or shell · Sequence participant Runner cron or shell Sync Script · mirror coordinator · Sequence participant Sync Script mirror coordinator Config · mirror.env + env · Sequence participant Config mirror.env + env GitHub API · repos, releases · Sequence participant GitHub API repos, releases Gitea API · mirrors and releases · Sequence participant Gitea API mirrors and releases Temp File · streamed asset buffer · Sequence participant Temp File streamed asset buffer Legend request return security async trace default message

Mirror ownership

  • • GitHub repositories drive the run; Gitea state is reconciled per repository
  • • Existing non-mirror repositories are warned about and left untouched
  • • Deleted or renamed upstream repositories are reported as orphaned mirrors

Release policy

  • • Release metadata is created or patched only when fields differ
  • • Draft handling waits until the mirrored tag exists in Gitea
  • • No Gitea-side release or asset is deleted by the script

Asset streaming

  • • GitHub assets download in chunks into a temporary file
  • • Multipart upload streams the temporary file to Gitea
  • • Existing same-name assets are preserved, with size mismatch warnings