Stops scheduled and manual promotions into the channel until the hold is released, and records who held it and why. The build already on the channel keeps serving.
Usage
overlane channel hold channel [--reason TEXT] [--dry-run]Arguments
| Argument | Required | Description |
|---|---|---|
channel |
yes | internal, nightly, beta, stable or lts |
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--reason |
string | no | Why; kept in the promotion history (required) | |
--dry-run |
boolean | no | Print the requests and file changes this command would make, then stop. Needs no credentials. |
Examples
overlane channel hold stable --reason "checkout errors under investigation"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 channel hold.
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": {
"tenantId": {
"type": "string"
},
"projectId": {
"type": "string"
},
"channel": {
"type": "object",
"properties": {
"channel": {
"type": "string",
"enum": [
"internal",
"nightly",
"beta",
"stable",
"lts"
]
},
"build": {
"anyOf": [
{
"type": "object",
"properties": {
"commitSha": {
"type": "string"
},
"version": {
"type": "string"
},
"enteredAt": {
"type": "string"
}
},
"required": [
"commitSha",
"version",
"enteredAt"
],
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"held": {
"type": "boolean"
},
"holdReason": {
"type": [
"string",
"null"
]
},
"heldBy": {
"type": [
"string",
"null"
]
},
"updatedAt": {
"type": "string"
}
},
"required": [
"channel",
"build",
"held",
"holdReason",
"heldBy",
"updatedAt"
],
"additionalProperties": {}
},
"promotion": {
"type": "object",
"properties": {
"promotionId": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "string",
"enum": [
"internal",
"nightly",
"beta",
"stable",
"lts"
]
},
{
"type": "null"
}
]
},
"to": {
"type": "string",
"enum": [
"internal",
"nightly",
"beta",
"stable",
"lts"
]
},
"version": {
"type": [
"string",
"null"
]
},
"commitSha": {
"type": [
"string",
"null"
]
},
"at": {
"type": "string"
},
"actor": {
"type": "string"
},
"outcome": {
"type": "string",
"enum": [
"promoted",
"refused",
"rolled_back"
]
},
"gates": {
"type": "object",
"properties": {
"failed": {
"type": "array",
"items": {
"type": "object",
"properties": {
"gate": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"gate",
"reason"
],
"additionalProperties": {}
}
}
},
"required": [
"failed"
],
"additionalProperties": {}
}
},
"required": [
"promotionId",
"from",
"to",
"version",
"commitSha",
"at",
"actor",
"outcome",
"gates"
],
"additionalProperties": {}
}
},
"required": [
"tenantId",
"projectId"
],
"additionalProperties": {}
},
{
"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.