Files
gitea-mirror/docs
TomRoylsandGitHub 2c394bb722 feat: mirror public organizations without a source (#409)
Public organizations can be mirrored from GitHub, GitLab and Gitea/Forgejo without configuring a source.

- The Add Organization dialog offers a Public only mode (the default when no source is connected): pick a provider, optionally an instance URL, and the organization is imported anonymously.
- A tokenless source row is found or created for that provider and host, and the organization is pinned to it, so attribution, locks, the scheduler and cleanup keep working per source.
- New createPublicGitHubClient: a throttled anonymous Octokit for tokenless GitHub sources, used by the org mirror job, per-repo mirror and retry, the sync metadata client and the source provider. An empty token never reaches createGitHubClient.
- GitHub organization listings degrade to public repositories when the source is tokenless or the token cannot see the private and member listings.
- The scheduler gates on the destination token only, skips personal discovery for tokenless sources, and re-lists pinned organizations each tick so newly published upstream repositories appear.
- The Sources card can save a row with no username and no token and marks it Public only; the organizations and repositories pages work with no configured source.

Thanks to @TomRoyls. (#409)
2026-09-09 11:09:59 +05:30
..

Gitea Mirror Documentation

This folder contains engineering and operations references for the open-source Gitea Mirror project. Each guide focuses on the parts of the system that still require bespoke explanation beyond the in-app help and the main README.md.

Available Guides

Core workflow

Reliability & recovery

Authentication

  • SSO-OIDC-SETUP.md – Configure OIDC/SSO providers through the admin UI.
  • SSO_TESTING.md – Recipes for local and staging SSO testing (Google, Keycloak, mock providers).

API

  • API.md – Create API keys and call the app from scripts, CI pipelines and workflow tools.

Sources and destinations

  • SOURCE_PROVIDERS.md – GitHub, GitLab and Gitea/Forgejo as sources: tokens, what each can mirror, the source lock.
  • PUSH_TARGETS.md – GitHub and GitLab as destinations: how the push engine works, token scopes, disk usage, what is not mirrored.

The user-facing documentation lives on the website at https://gitea-mirror.raylabs.io/docs/, with its sources under www/src/pages/docs/. If you are looking for playbooks, see the MDX use cases under www/src/pages/use-cases/.

Quick start for local development

git clone https://github.com/RayLabsHQ/gitea-mirror.git
cd gitea-mirror
bun run setup           # installs deps and seeds the SQLite DB
bun run dev             # starts the Astro/Bun app on http://localhost:4321

The first user you create locally becomes the administrator. All other configuration—GitHub owners, Gitea targets, scheduling, cleanup—is done through the Configuration screen in the UI.

Contributing & support