Migrating from GitHub

Import your repositories from GitHub to OpenCommit.

OpenCommit can migrate existing repositories from GitHub.

A migration can copy the Git repository itself, including branches and commit history. Depending on the source repository and the permissions you provide, it may also migrate metadata such as issues, pull requests, labels, milestones, releases, and wiki pages.

Tip:
This page is geared towards GitHub but migrating from other services can be achieved in a similar fashion.

What can be migrated?#

When migrating from GitHub, OpenCommit can import:

  • Git history
  • Branches and tags
  • Issues
  • Pull requests
  • Labels
  • Milestones
  • Releases
  • Wiki pages

The exact result depends on the GitHub repository, the access token permissions, and the migration options you select.

Step 1 – Create a GitHub access token#

For public repositories, you may be able to migrate the Git repository using only the repository URL.

To migrate private repositories or metadata such as issues and pull requests, create a GitHub access token first.

  1. In GitHub, open Settings → Developer settings
  2. Go to Personal access tokens
  3. Create a token with read access to the repository and metadata you want to migrate
  4. Copy the token

Treat your GitHub access token like a password.

Delete the token from GitHub after the migration is complete if you no longer need it.

Step 2 – Start a new migration#

  1. In OpenCommit, click the “+” (Create) button in the top navigation
  2. Select New migration
  3. Choose GitHub as the source service
  4. Enter the GitHub repository clone URL
  5. Paste your GitHub access token, if you have one
  6. Select the items you want to migrate
  7. Choose the new owner on OpenCommit
  8. Choose the repository name and visibility
  9. Click Migrate repository

Migration may take a while, depending on the size of the repository and the amount of metadata being imported.

When the repository contents appear on OpenCommit, the migration is complete.

Step 3 – Update your local Git remote#

After migration, update your local repository so future pushes go to OpenCommit.

For SSH:

git remote set-url origin git@opencommit.eu:YOUR_USERNAME/REPOSITORY.git

For HTTPS:

git remote set-url origin https://opencommit.eu/YOUR_USERNAME/REPOSITORY.git

Check the result:

git remote -v

Step 4 – Review your repository#

After the migration completes, check:

  • Branches and tags
  • Issues and pull requests
  • Labels and milestones
  • Releases
  • Wiki pages
  • Repository visibility
  • Collaborators and permissions

Some settings, such as the description or repository topics, may need to be recreated manually on OpenCommit.

✅ Done#

At this point you are essentially migrated over. Since GitHub Actions and OpenCommit’s Actions are not 100% the same, there will be some work to port your workflows over.

GitHub Actions and Forgejo Actions#

OpenCommit uses Forgejo Actions.

Forgejo Actions are similar to GitHub Actions, but workflow files live in a different directory.

  • GitHub: .github/workflows/
  • OpenCommit: .forgejo/workflows/

If you migrate a repository that uses GitHub Actions, review your workflow files before relying on them in OpenCommit.

You may need to:

  • Move workflow files from .github/workflows/ to .forgejo/workflows/
  • Recreate secrets in the OpenCommit repository settings
  • Replace GitHub-specific references, URLs, actions, or assumptions

For details, see the CI/CD Actions guide.

If migration fails#

A migration can fail because of:

  • Missing or insufficient token permissions
  • A repository URL typo
  • A private repository that cannot be accessed
  • Source repository data that cannot be imported
  • Timeouts on large repositories

If a failed migration leaves behind an incomplete repository, delete the incomplete repository and start the migration again.

To delete it:

  1. Open the repository settings
  2. Scroll to the Danger zone section
  3. Click Delete this repository
  4. Confirm deletion
  5. Start a new migration

If migration fails repeatedly, try migrating only the Git repository first. You can then decide whether to retry metadata migration separately.

Inaccessible repo after failed migration#

Sometimes a migration might fail for no obvious reasons like timeouts or invalid data in the source repo, leaving you with an inaccessible repo on OpenCommit. When you try to navigate to your repo on OpenCommit, e.g. https://opencommit.eu/YOUR_USERNAME/REPOSITORY/, you are welcomed with a 500 Internal Server Error.

In this case it might be worthwhile to retry the migration. First you need to remove the inaccessible repo. To do so, go to the settings page of your repo by appending /settings to the URI, e.g. https://opencommit.eu/YOUR_USERNAME/REPOSITORY/settings. You can delete the repo from here like normal and start over with a new migration.

If this doesn’t work out, feel free to open an issue in OpenCommit Support.