Help us learn about your current experience with the documentation. Take the survey.

外部控制 API

  • 版本:Ultimate
  • 产品形态:GitLab.com, GitLab Self-Managed, GitLab Dedicated

您可以使用外部控制 API 来设置由外部服务执行的检查的状态。

设置外部控制的状态

对于单个外部控制,您可以使用此 API 来通知 GitLab,该项控制已通过或未通过外部服务的检查。

身份验证

出于安全考虑,外部控制 API 要求进行 HMAC、时间戳和 Nonce 身份验证。

端点

POST /api/v4/projects/:id/compliance_external_controls/:external_control_id/status

HTTP 头部:

头部 类型 必需 描述
X-Gitlab-Timestamp string 当前的 Unix 时间戳。
X-Gitlab-Nonce string 用于防止重放攻击的随机字符串或令牌。
X-Gitlab-Hmac-Sha256 string 请求的 HMAC-SHA256 签名。

支持的属性:

属性 类型 必需 描述
id integer 项目的 ID。
external_control_id integer 外部控制的 ID。
status string 设置为 pass 表示控制已通过,或设置为 fail 表示未通过。

如果成功,将返回 200 OK 状态码以及以下响应属性:

属性 类型 描述
status string 为该控制设置的状态。

请求示例:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "X-Gitlab-Timestamp: <X-Gitlab-Timestamp>" \
  --header "X-Gitlab-Nonce: <X-Gitlab-Nonce>" \
  --header "X-Gitlab-Hmac-Sha256: <X-Gitlab-Hmac-Sha256>" \
  --header "Content-Type: application/json" \
  --data '{"status": "pass"}' \
  --url "https://gitlab.example.com/api/v4/projects/<id>/compliance_external_controls/<external_control_id>/status"

响应示例:

{
    "status":"pass"
}

相关主题