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/statusHTTP 头部:
| 头部 | 类型 | 必需 | 描述 |
|---|---|---|---|
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"
}