Get Merge Checks

Returns comprehensive information about merge requirements:

  • Code review status and approval rules
  • Merge conflicts detection
  • CI workflow execution status
  • Configuration validation results

Request

GET

https://api.sourcecraft.tech/repos/{org_slug}/{repo_slug}/pulls/{pull_request_slug}/merge-checks

Path parameters

Name

Description

org_slug

Type: string

Example: ``

pull_request_slug

Type: string

Example: ``

repo_slug

Type: string

Example: ``

Query parameters

Name

Description

pull_request_id

Type: string

Example: ``

Responses

200 OK

A successful response.

Body

application/json
{
  "code_review": {
    "status": "in_progress",
    "disabled": true,
    "total_approves": 0,
    "need_approves": 0,
    "rules": [
      {
        "approves": 0,
        "need_approves": 0,
        "completed": true,
        "reviewers": [
          {}
        ]
      }
    ]
  },
  "conflicts": {
    "status": null,
    "created_at": "2025-01-01T00:00:00Z",
    "conflicts": [
      {
        "conflict_type": "example",
        "path": "example",
        "message": "example"
      }
    ],
    "error": "example"
  },
  "ci_workflows": [
    {
      "status": "created",
      "disabled": true,
      "created_at": "2025-01-01T00:00:00Z",
      "run_id": "example",
      "run_slug": "example",
      "workflow_id": "example",
      "workflow_slug": "example"
    }
  ],
  "config_validations": [
    {
      "status": null,
      "created_at": "2025-01-01T00:00:00Z",
      "file_path": "example",
      "error_message": "example"
    }
  ],
  "status": null
}

Name

Description

ci_workflows

Type: CIWorkflowCheck[]

Example
[
  {
    "status": "created",
    "disabled": true,
    "created_at": "2025-01-01T00:00:00Z",
    "run_id": "example",
    "run_slug": "example",
    "workflow_id": "example",
    "workflow_slug": "example"
  }
]

code_review

Type: CodeReviewCheck

Example
{
  "status": "in_progress",
  "disabled": true,
  "total_approves": 0,
  "need_approves": 0,
  "rules": [
    {
      "approves": 0,
      "need_approves": 0,
      "completed": true,
      "reviewers": [
        {
          "id": "example",
          "slug": "example"
        }
      ]
    }
  ]
}

config_validations

Type: ConfigValidationCheck[]

Example
[
  {
    "status": "in_progress",
    "created_at": "2025-01-01T00:00:00Z",
    "file_path": "example",
    "error_message": "example"
  }
]

conflicts

Type: ConflictsCheck

Example
{
  "status": "in_progress",
  "created_at": "2025-01-01T00:00:00Z",
  "conflicts": [
    {
      "conflict_type": "example",
      "path": "example",
      "message": "example"
    }
  ],
  "error": "example"
}

status

Type: MergeChecks.Status

Enum: in_progress, success, failure

MergeChecks.Status

Type: string

Enum: in_progress, success, failure

UserEmbedded

Name

Description

id

Type: string

Example: example

slug

Type: string

Example: example

Example
{
  "id": "example",
  "slug": "example"
}

ReviewRule

Name

Description

approves

Type: integer

completed

Type: boolean

need_approves

Type: integer

reviewers

Type: UserEmbedded[]

Example
[
  {
    "id": "example",
    "slug": "example"
  }
]
Example
{
  "approves": 0,
  "need_approves": 0,
  "completed": true,
  "reviewers": [
    {
      "id": "example",
      "slug": "example"
    }
  ]
}

CodeReviewCheck

Name

Description

disabled

Type: boolean

need_approves

Type: integer

rules

Type: ReviewRule[]

Example
[
  {
    "approves": 0,
    "need_approves": 0,
    "completed": true,
    "reviewers": [
      {
        "id": "example",
        "slug": "example"
      }
    ]
  }
]

status

Type: MergeChecks.Status

Enum: in_progress, success, failure

total_approves

Type: integer

Example
{
  "status": "in_progress",
  "disabled": true,
  "total_approves": 0,
  "need_approves": 0,
  "rules": [
    {
      "approves": 0,
      "need_approves": 0,
      "completed": true,
      "reviewers": [
        {
          "id": "example",
          "slug": "example"
        }
      ]
    }
  ]
}

Conflict

Name

Description

conflict_type

Type: string

Example: example

message

Type: string

Example: example

path

Type: string

Example: example

Example
{
  "conflict_type": "example",
  "path": "example",
  "message": "example"
}

ConflictsCheck

Name

Description

conflicts

Type: Conflict[]

Example
[
  {
    "conflict_type": "example",
    "path": "example",
    "message": "example"
  }
]

created_at

Type: string<date-time>

Example: 2025-01-01T00:00:00Z

error

Type: string

Example: example

status

Type: MergeChecks.Status

Enum: in_progress, success, failure

Example
{
  "status": "in_progress",
  "created_at": "2025-01-01T00:00:00Z",
  "conflicts": [
    {
      "conflict_type": "example",
      "path": "example",
      "message": "example"
    }
  ],
  "error": "example"
}

Run.Status

  • prepared: Status prepared may only appear as a Run status.
    It's a stage between creation and startup during which the Run is populated with workflows.

Type: string

Enum: created, prepared, processing, success, failed, canceled, timeout

CIWorkflowCheck

Different CI workflows may have different corresponding CI runs due to restarts.
To get detailed information about each workflow, use /{org_slug}/{repo_slug}/cicd/runs/{run_slug}/{workflow_slug}.

Name

Description

created_at

Type: string<date-time>

Example: 2025-01-01T00:00:00Z

disabled

Type: boolean

run_id

Type: string

Example: example

run_slug

Type: string

Example: example

status

Type: Run.Status

  • prepared: Status prepared may only appear as a Run status.
    It's a stage between creation and startup during which the Run is populated with workflows.

Enum: created, prepared, processing, success, failed, canceled, timeout

workflow_id

Type: string

Example: example

workflow_slug

Type: string

Example: example

Example
{
  "status": "created",
  "disabled": true,
  "created_at": "2025-01-01T00:00:00Z",
  "run_id": "example",
  "run_slug": "example",
  "workflow_id": "example",
  "workflow_slug": "example"
}

ConfigValidationCheck

Name

Description

created_at

Type: string<date-time>

Example: 2025-01-01T00:00:00Z

error_message

Type: string

Example: example

file_path

Type: string

Example: example

status

Type: MergeChecks.Status

Enum: in_progress, success, failure

Example
{
  "status": "in_progress",
  "created_at": "2025-01-01T00:00:00Z",
  "file_path": "example",
  "error_message": "example"
}

default

Both Client Errors (4xx) and Server Errors (5xx) are serialized into this scheme

Body

application/json
{
  "error_code": "example",
  "message": "example",
  "request_id": "example",
  "details": {}
}

Name

Description

details

Type: Optional details. Exact structure depends on error_code

[additional]

Type: string

Example: example

Example
{}

error_code

Type: string

Example: example

message

Type: string

Example: example

request_id

Type: string

Example: example