Merges when the protection rules allow: approvals on the current head, required checks passed, no changes requested, a merge method the branch allows. An agent’s merge into a protected branch waits for an approval; the answer names each blocker. Exit 5 when blocked, 6 when waiting for an approval.
Usage
overlane repo pr merge repo number [--method METHOD] [--approval ID] [--dry-run]Arguments
| Argument | Required | Description |
|---|---|---|
repo |
yes | The repository name or ID |
number |
yes | The pull request number |
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--method |
one of merge, squash, rebase |
no | How to merge (default: squash) | |
--approval |
string | no | Run an action that an approval covers; get the ID from overlane guard approvals list |
|
--dry-run |
boolean | no | Print the requests and file changes this command would make, then stop. Needs no credentials. |
Examples
overlane repo pr merge app 7 --method squash
overlane repo pr merge app 7 --dry-runBehavior
- 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 pr merge.
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",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
"description": "tenant identifier"
},
"pull": {
"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}$"
},
"provider": {
"type": "string",
"enum": [
"overlane",
"github",
"gitlab"
]
},
"number": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"body": {
"type": "string",
"maxLength": 60000
},
"state": {
"type": "string",
"enum": [
"open",
"merged",
"closed"
]
},
"draft": {
"type": "boolean"
},
"head": {
"type": "object",
"properties": {
"branch": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[A-Za-z0-9._/-]+$"
},
"sha": {
"type": "string",
"pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
}
},
"required": [
"branch",
"sha"
],
"additionalProperties": false
},
"base": {
"type": "object",
"properties": {
"branch": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[A-Za-z0-9._/-]+$"
},
"sha": {
"type": "string",
"pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
}
},
"required": [
"branch",
"sha"
],
"additionalProperties": false
},
"author": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"user",
"agent"
]
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false
},
"fork": {
"type": "boolean"
},
"mergeMethod": {
"anyOf": [
{
"type": "string",
"enum": [
"merge",
"squash",
"rebase"
]
},
{
"type": "null"
}
]
},
"mergedSha": {
"anyOf": [
{
"type": "string",
"pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
},
{
"type": "null"
}
]
},
"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)))$"
},
"updatedAt": {
"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": [
"schemaVersion",
"tenantId",
"projectId",
"repoId",
"provider",
"number",
"title",
"body",
"state",
"draft",
"head",
"base",
"author",
"fork",
"mergeMethod",
"mergedSha",
"createdAt",
"updatedAt"
],
"additionalProperties": false
},
"mergeSha": {
"type": "string",
"pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
},
"replay": {
"type": "boolean"
}
},
"required": [
"tenantId",
"pull",
"mergeSha",
"replay"
],
"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.