Last checked October 16, 2026
Migrate from GitHub to Gitea
Use Gitea's migration form on one repository first. Git history comes across. Issues and pull requests need your GitHub username. Actions are a second job.
How long: An hour for one public repo. Longer for private repos, Actions, and a team.
Take it out
Step 1
Keep a Git copy
While you still have access, run git clone --bare on the repository and keep that folder. GitHub's docs say a bare clone, then git push --mirror, copies branches and tags. It does not copy issues, pull requests, or stars.
Step 2
List what is not in Git
Write down which repos use Actions, a wiki, or private issues. Those need Gitea's migration form, not only the bare clone. Recreate secrets on the new side. Do not paste them into a ticket.
Put it in
Step 1
Migrate one repository
In Gitea, open the Create menu and choose New Migration. Pick the remote service, paste the GitHub URL, and fill in auth if the repo is private. The migration page says you need at least your GitHub username to bring issues and pull requests. Leave the mirror box unchecked. That box keeps pulling from GitHub.
Step 2
Turn on Actions only if you still want CI
On Gitea 1.21 and later, Actions are on for the instance and off for each repository until you enable Enable Repository Actions in that repo's settings. Gitea reads workflow files in .gitea/workflows and in .github/workflows. You still register a runner and start it. A uses line with no host, such as actions/checkout, downloads from github.com unless the instance is set to use itself.
Step 3
Then do the rest
If the sample looks right, migrate the other repos. If it does not, stop. Do not delete the GitHub repos in the middle.
What you lose
Actions are not the marketplace
Gitea Actions follows GitHub Actions syntax, with gaps. GitHub-only token scopes such as checks, deployments, id-token, security-events, and pages are not supported. The environment key on a job is ignored. You run your own runner. The marketplace does not move with the repo.
Stars, alerts, and people
Stars, the dependency graph, and GitHub-only security alerts do not come with the copy. Accounts on Gitea are new accounts. Sharing has to be set up again.
The wiki is not promised
The migration help page names issues and pull requests. It does not promise the wiki. This site's checklist marks a Gitea wiki as partial. Check the first repo before you count on it.
Forgejo is the top score on the GitHub page. Pick Gitea when you want the MIT license. Actions on either one are partial, and they do not run every Action from the GitHub marketplace.
Sponsored migration guide
$299 once
A guide for one switch: what to take out, how to put it in, and what you lose. The page is labeled sponsored. It does not change which free app ranks #1.
- One pair, written from public pages
- Sponsored label on the guide
- The real top pair keeps its own guide
Opens Stripe to pay.
Free alternatives to GitHub·Gitea
https://ditchly.co/migrate/github-to-gitea