外部状态检查 API

  • 引入于极狐GitLab 14.0,在 :ff_external_status_checks 功能标志后禁用。
  • 功能标志移除于极狐GitLab 14.1。

列出合并请求的状态检查

对于单个合并请求,列出适用于它的外部状态检查及其状态。

GET /projects/:id/merge_requests/:merge_request_iid/status_checks

参数:

参数 类型 是否必需 描述
id integer yes 项目 ID
merge_request_iid integer yes 合并请求 IID
[
  {
    "id": 2,
    "name": "Rule 1",
    "external_url": "https://gitlab.com/test-endpoint",
    "status": "passed"
  },
  {
    "id": 1,
    "name": "Rule 2",
    "external_url": "https://gitlab.com/test-endpoint-2",
    "status": "pending"
  }
]

设置外部状态检查的状态

  • 引入于极狐GitLab 14.9,passed 状态表示传递外部状态检查。带有 status_checks_add_status_field 功能标志。默认禁用。
  • 引入于极狐GitLab 14.9,failed 状态表示外部状态检查失败。带有 status_checks_add_status_field 功能标志。默认禁用。
  • 传递检查的 pass 状态已废弃于极狐GitLab 14.9,用 passed 代替。
  • failedpassed 默认启用于极狐GitLab 15.0 并移除了功能标志。

对于单个合并请求,使用 API 通知极狐GitLab 合并请求已通过外部服务的检查。 要设置外部检查的状态,使用的个人访问令牌必须属于在合并请求的目标项目中至少具有 Developer 角色的用户。

以任何有权批准合并请求本身的用户身份执行此 API 调用。

POST /projects/:id/merge_requests/:merge_request_iid/status_check_responses

参数:

参数 类型 是否必需 描述
id integer yes 项目 ID
merge_request_iid integer yes 合并请求 IID
sha string yes 源分支 HEAD 的 SHA
external_status_check_id integer yes 外部状态检查 ID
status string no passed:传递状态;failed:传递状态失败
notesha 必须是合并请求源分支 HEAD 的 SHA。

获取项目外部状态检查

您可以使用以下端点请求项目外部状态检查的信息:

GET /projects/:id/external_status_checks

参数:

参数 类型 是否必需 描述
id integer yes 项目 ID
[
  {
    "id": 1,
    "name": "Compliance Check",
    "project_id": 6,
    "external_url": "https://gitlab.com/example/test.json",
    "protected_branches": [
      {
        "id": 14,
        "project_id": 6,
        "name": "master",
        "created_at": "2020-10-12T14:04:50.787Z",
        "updated_at": "2020-10-12T14:04:50.787Z",
        "code_owner_approval_required": false
      }
    ]
  }
]

创建外部状态检查

您可以使用以下端点创建项目的外部状态检查:

POST /projects/:id/external_status_checks
caution外部状态检查将有关所有适用合并请求的信息发送到定义的外部服务,包括私密合并请求。
参数 类型 是否必需 描述
id integer yes 项目 ID
name string yes 显示状态检查名称
external_url string yes 状态检查资源 URL
protected_branch_ids array<Integer> no 确定规则范围的受保护分支的 ID

删除外部状态检查

您可以使用以下端点删除项目的外部状态检查:

DELETE /projects/:id/external_status_checks/:check_id
参数 类型 是否必需 描述
rule_id integer yes 状态检查 ID
id integer yes 项目 ID

更新外部状态检查

您可以使用以下端点更新现存的项目外部状态检查:

PUT /projects/:id/external_status_checks/:check_id
参数 类型 是否必需 描述
id integer yes 项目 ID
rule_id integer yes 外部状态检查 ID
name string no 显示状态检查名称
external_url string no 外部状态检查资源 URL
protected_branch_ids array<Integer> no 确定规则范围的受保护分支的 ID

相关主题