GitHub to Forgejo migration workflow
Move a GitHub org to Forgejo in one repeatable run.
joflux exports a GitHub inventory, starts Forgejo or Codeberg imports, monitors progress, verifies the target repositories, and archives the originals — writing JSON state you can inspect, retry, and keep as an audit trail.
What it does
A migration with a paper trail.
Review the exported GitHub repository list and filter forks or archived repos before any target-side import starts.
Start migrations into Codeberg or self-hosted Forgejo, then monitor queued jobs until every import settles.
Each step writes readable state files for verification, retries, reporting, and clean handoff between operators.
Install paths
Get started with your preferred install method.
macOS and Linux. Tracks stable releases through the Netspeedy tap.
brew tap netspeedy/joflux
brew install jofluxInstall from source into a virtualenv. Works on any host with Python 3.11 or newer.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install .Keep tokens out of config files. Export them as environment variables before each run.
export JOFLUX_GITHUB_TOKEN="ghp_..."
export JOFLUX_FORGEJO_TOKEN="forgejo_..."