Skip to content

overlane project merge

Merge a second project for the same code into this one

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Moves everything the other project holds (runs, reviews, issues, memory, settings and links) into this project, gives this project the other’s GitHub repository and connection, makes this project’s Overlane Git repository the mirror of that GitHub repository, and deletes the other project. This project keeps its ID. If the two hold records that clash, nothing changes. A person or agent token allowed to manage the project’s policy can run it.

Usage

overlane project merge from [--into PROJECT_ID] [--preview] [--dry-run]

Arguments

Argument Required Description
from yes The project to fold in and delete

Flags

Flag Type Required Default Description
--into string no The project that stays (default: the one this checkout is bound to)
--preview boolean no Ask the service how many rows of each kind would move, and change nothing
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane project merge overlane-2 --into overlane --preview
overlane project merge overlane-2 --into overlane

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 project merge.

Result

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

{
  "anyOf": [
    {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "preview": {
              "type": "boolean",
              "const": true
            },
            "into": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
              "description": "project identifier"
            },
            "from": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
              "description": "project identifier"
            },
            "repository": {
              "type": [
                "string",
                "null"
              ]
            },
            "rows": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              }
            },
            "total": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "preview",
            "into",
            "from",
            "repository",
            "rows",
            "total"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "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"
            },
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "provider": {
              "type": "string",
              "enum": [
                "overlane",
                "github",
                "gitlab"
              ]
            },
            "repository": {
              "type": "object",
              "properties": {
                "provider": {
                  "type": "string",
                  "enum": [
                    "overlane",
                    "github",
                    "gitlab"
                  ]
                },
                "host": {
                  "type": "string",
                  "enum": [
                    "github.com",
                    "gitlab.com",
                    "overlane"
                  ]
                },
                "owner": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "name": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9._-]{1,100}$"
                }
              },
              "required": [
                "owner",
                "name"
              ],
              "additionalProperties": false
            },
            "connection": {
              "type": "object",
              "properties": {
                "provider": {
                  "type": "string",
                  "enum": [
                    "overlane",
                    "github",
                    "gitlab"
                  ]
                },
                "installationId": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "externalId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                }
              },
              "required": [
                "provider"
              ],
              "additionalProperties": false
            },
            "overlaneGit": {
              "type": "object",
              "properties": {
                "mirror": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "overlane",
                        "external"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "mirror"
              ],
              "additionalProperties": false
            },
            "releaseVersion": {
              "type": "string",
              "minLength": 1
            },
            "releaseDigest": {
              "type": "string",
              "pattern": "^sha256:[0-9a-f]{64}$"
            },
            "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)))$"
            },
            "codeLayer": {
              "default": false,
              "type": "boolean"
            },
            "codeMapContext": {
              "type": "string",
              "enum": [
                "default",
                "on",
                "off"
              ]
            },
            "repoSignIn": {
              "default": true,
              "type": "boolean"
            },
            "archivedAt": {
              "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": {
              "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)))$"
            }
          },
          "required": [
            "tenantId",
            "projectId",
            "name",
            "provider",
            "releaseVersion",
            "releaseDigest",
            "createdAt",
            "codeLayer",
            "repoSignIn"
          ],
          "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.