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 overlaneBehavior
- 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.