Skip to content

overlane repo import

Import or mirror a GitHub repository

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Copies a GitHub repository’s history, branches and tags into a native repository. By default it is a mirror: GitHub stays the only writable side and a push to the Overlane copy is refused with a message saying where to push. With –copy Overlane becomes the origin. A repository over the 1 GB limit is refused with guidance to keep it on GitHub.

Usage

overlane repo import source [--name NAME] [--copy] [--dry-run]

Arguments

Argument Required Description
source yes OWNER/NAME (or github:OWNER/NAME)

Flags

Flag Type Required Default Description
--name string no The native repository’s name (default: the source name)
--copy boolean no A one-time copy that makes Overlane the origin instead of a mirror
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane repo import acme/app
overlane repo import acme/app --copy --name app-native --dry-run

Behavior

  • Effect: write (changes local or hosted state).
  • Needs credentials: yes. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: no.
  • Machine-readable description: overlane schema repo import.

Result

With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "1"
        },
        "tenantId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "description": "tenant identifier"
        },
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "description": "project identifier"
        },
        "repoId": {
          "type": "string",
          "pattern": "^repo_[A-Za-z0-9]{6,40}$"
        },
        "name": {
          "type": "string",
          "pattern": "^[a-z0-9][a-z0-9._-]{0,62}$"
        },
        "provider": {
          "type": "string",
          "enum": [
            "overlane",
            "github",
            "gitlab"
          ]
        },
        "mode": {
          "type": "string",
          "enum": [
            "native",
            "github-only"
          ]
        },
        "defaultBranch": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "pattern": "^[A-Za-z0-9._/-]+$"
        },
        "sizeBytes": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "capBytes": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "remote": {
          "type": "string",
          "maxLength": 500
        },
        "mirror": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "external": {
                  "type": "object",
                  "properties": {
                    "provider": {
                      "type": "string",
                      "enum": [
                        "github",
                        "gitlab"
                      ]
                    },
                    "owner": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    }
                  },
                  "required": [
                    "provider",
                    "owner",
                    "name"
                  ],
                  "additionalProperties": false
                },
                "writableSide": {
                  "type": "string",
                  "enum": [
                    "overlane",
                    "external"
                  ]
                },
                "lastSyncedAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "lastSyncedSha": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "external",
                "writableSide",
                "lastSyncedAt",
                "lastSyncedSha"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "createdBy": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "user",
                "agent"
              ]
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "required": [
            "kind",
            "id"
          ],
          "additionalProperties": false
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "deletedAt": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "schemaVersion",
        "tenantId",
        "projectId",
        "repoId",
        "name",
        "provider",
        "mode",
        "defaultBranch",
        "sizeBytes",
        "capBytes",
        "remote",
        "mirror",
        "createdBy",
        "createdAt",
        "deletedAt"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "requests": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "body": {},
              "note": {
                "type": "string"
              }
            },
            "required": [
              "method",
              "path"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "writes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "action": {
                "type": "string",
                "enum": [
                  "write",
                  "append",
                  "delete"
                ]
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "path",
              "action",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "dryRun",
        "requests",
        "commands",
        "writes",
        "notes"
      ],
      "additionalProperties": false
    }
  ]
}

See exit codes for the status the process returns.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.