Your Forgejo stays private.
Your code goes public, instantly.
forgemirror listens for Forgejo push webhooks and mirrors the repository
to GitHub, Codeberg, GitLab or any other Git forge within seconds.
Push-driven
No polling and no cron. Every push triggers one clone and a parallel push to all targets, and pushes that arrive during a run are coalesced.
Works behind a firewall
Forgejo only has to reach forgemirror. Nothing on the internet needs access to your instance.
One target, many repositories
Target URLs are templates, so a single entry like https://github.com/acme/{{ .Name }}.git covers every repository.
Filters
Include and exclude repositories by pattern, restrict branches, skip private repositories and forks, or opt in per repository with a topic.
Secrets stay secret
Tokens never touch disk, argv or logs. Credentials can come from mounted files, as Kubernetes expects.
Ready to operate
Prometheus metrics, structured logs, health probes, graceful shutdown, a Helm chart and signed multi-arch images.