Fjord

From GitHub to Forgejo.

Your history, issues, and pull requests import over the GitHub API. Plan Actions and the GitHub-only surfaces deliberately, and keep an exit door open.

Check a public repository

Paste a public GitHub repository URL and Fjord will show the same migration preflight used before a managed import. This does not sign you in, connect your GitHub account, or create a repository.

What moves for you

Git history, branches, tags

The whole repository, not a shallow copy. Every branch, tag, and commit comes across through Forgejo’s built-in migrator over the GitHub API.

Issues and pull requests

Issues, pull requests, comments, labels, and milestones import with their metadata, so the conversation history moves with the code.

Releases and wiki

Tagged releases and wiki pages transfer where the GitHub API exposes them, so published artifacts and docs are not left behind.

What needs manual steps

The repository content moves cleanly. The GitHub-specific scaffolding around it is configuration, not content, so you recreate it on the new forge. None of it is a surprise if you plan for it before cutover.

Actions workflows

Forgejo Actions uses a format close to GitHub Actions, so workflows keep their shape. Upstream builds for familiarity, not compatibility, and names where the two diverge: a smaller default runner image, missing github context keys, ignored job subkeys like permissions and continue-on-error, and a different way to enable OIDC. The porting work is per workflow, so move the repository first, leave CI running where it is, and cut over once each workflow is proven on Forgejo. See the CI page for the detail.

Org-level settings

Branch protection, required checks, environments, and CODEOWNERS enforcement are recreated on the new forge. They are configuration, not repository content, so the import does not carry them.

GitHub-only surfaces

Projects (boards), Discussions, code scanning, Dependabot, and Pages are GitHub features with no one-to-one import. Plan replacements or exports for the ones you rely on.

Integrations and webhooks

OAuth apps, GitHub Apps, deploy keys, and webhooks point at github.com. Repoint or re-create each against your Fjord instance after cutover.

Why teams make the move

A dedicated forge you own, priced per instance rather than per seat, with written no-AI-training terms and single-tenant isolation. The Forgejo REST API is what the fj CLI speaks, so your tooling has a clean target. Team and Pro add dedicated runners so CI runs on capacity that is yours.

And if you ever leave

Your data exports in the upstream Forgejo format any time, per-repository or as a full forgejo dump. The same openness that lets you come in lets you go out. No lock-in is the point.