Skip to content
Ditchly
Menu

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

  1. 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.

  2. 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

  1. 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.

  2. 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.

  3. 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
Buy now

Opens Stripe to pay.

Free alternatives to GitHub·Gitea

https://ditchly.co/migrate/github-to-gitea