Skip to content

Migrate from GitHub

Codebahn runs GitHub Actions-compatible workflows, supports the same SSH keys, and uses standard Git operations. Migration is straightforward.

Use Codebahn’s built-in migration tool to import repositories from GitHub, including issues, pull requests, and releases.

  1. Sign in to your Codebahn instance
  2. Click New Migration (or the + menu > New Migration)
  3. Select GitHub as the source
  4. Enter the repository URL and a personal access token with repo scope
  5. Choose what to import (code, issues, pull requests, releases, labels)

For full migration options, see the upstream migration documentation.

Your .github/workflows/ files work on Codebahn without changes. Actions are resolved from GitHub by default, so uses: actions/checkout@v4 works as-is.

Codebahn also reads workflows from .codebahn/workflows/, .forgejo/workflows/, and .gitea/workflows/. See Workflow directories for the full precedence order.

Add your SSH keys under Settings > SSH / GPG Keys. The process is identical to GitHub.

If you want to keep GitHub as a read-only backup while using Codebahn as your primary remote, configure origin to push to both:

Terminal window
git remote set-url --push origin git@codebahn.net:your-org/your-repo.git
git remote set-url --add --push origin git@github.com:your-org/your-repo.git

The first command sets Codebahn as the push URL. The second adds GitHub alongside it. Every git push origin main now pushes to both.

Once you are confident in Codebahn, remove the GitHub push URL or set up the built-in push mirror under Repository Settings > Mirror.

To migrate multiple repositories at once:

  1. Create your organisation on Codebahn first (+ > New Organisation)
  2. Run individual migrations for each repository, selecting the org as the owner
  3. Invite your team members to the org after migration

There is no bulk-import tool yet. Migrate repositories one at a time through the UI, or script it using the migration API.