Advanced

Migrate to konnos

Already have your code on someone else's platform? Bring it home. konnos can mirror a repository in — every branch, tag, and commit — so nothing is left behind. This is the whole point: your code, your continent.

Option A · Mirror-push with git

The plain-git way, with no special tooling. You make a mirror clone of the old repo (which grabs the complete history and all refs) and push that mirror straight into a fresh konnos repository.

  1. 1

    Create the destination repo on konnos

    Make an empty repository on konnos to receive the code — see Repositories. (Don't seed a README; you want it empty.)

  2. 2

    Mirror-clone the old repo

    git clone --mirror https://old-host.com/you/project.git
    cd project.git

    --mirror pulls down everything — all branches, tags, and history — not just the default branch.

  3. 3

    Push the mirror to konnos

    git push --mirror https://code.konnos.org/<you>/project.git

    When prompted, use your username and a Personal Access Token. That's it — the full repo now lives on konnos.

Option B · The import flow

Rather than run git yourself, you can point konnos at the source clone URL and let it pull the repository in for you. The easiest way is the in-app wizard: open Import a repository, paste the clone address, pick a name and visibility, and konnos copies the full history over. Under the hood the MCP phone line exposes the same path as the import_repo tool, so an agent can migrate a repo as part of a larger job:

{
  "tool": "import_repo",
  "arguments": {
    "clone_addr": "https://old-host.com/you/project.git",
    "repo_name": "project",
    "private": true
  }
}

Importing a private source

If the old repository is private, pass auth_username and auth_password (a token works as the password) so konnos can read it. Set mirror: true if you want konnos to keep it synced with the source rather than take a one-time copy.

Leave Codeberg → konnos (click-by-click)

This is the path most people need first — especially if Codeberg warned that a repository is too large or may be disabled.

  1. 1

    Copy the Codeberg clone URL

    On Codeberg open the repository → green clone button → copy the HTTPS URL. It looks like https://codeberg.org/you/project.git.

  2. 2

    Sign in to konnos and open Import

    Go to Import a repository (or Repositories → Import from Codeberg).

  3. 3

    Paste URL, name it, import

    Paste the Codeberg URL. Konnos fills the name. Leave visibility private unless you want it public. If the Codeberg repo is private, paste a Codeberg access token in the token field. Click import and wait — large histories take longer.

  4. 4

    Point your laptop at konnos

    git remote set-url origin https://code.konnos.org/<you>/project.git
    git remote -v
    # then push as usual
    git push -u origin main

    Use a personal access token as the password over HTTPS, or set up SSH.

  5. 5

    Confirm, then retire Codeberg when ready

    On konnos check branches, commits, and a fresh clone. When you are happy, archive or delete the Codeberg copy on your own timeline — konnos does not touch Codeberg for you.

Big repositories

Large histories are why konnos exists. Prefer the import wizard or a local git clone --mirror + git push --mirror if the wizard times out. Never interrupt a mirror push mid-way if you can help it.

After the move

Update your local checkout to point at konnos so your next push goes to the right place:

git remote set-url origin https://code.konnos.org/<you>/project.git

Then browse the repo on konnos to confirm your branches and history came across intact. Welcome home.