외부 제어 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
외부 제어 API를 사용하여 외부 서비스를 사용하는 검사의 상태를 설정합니다. 주기적인 ping 기능으로 외부 제어를 구성할 수 있습니다. 지정된 외부 제어의 상태를 설정합니다. HMAC-SHA256 서명을 계산하려면: 성공하면 200 OK와 다음 응답 속성을 반환합니다:
외부 제어 API를 사용하여 외부 서비스를 사용하는 검사의 상태를 설정합니다.
주기적인 ping 기능으로 외부 제어를 구성할 수 있습니다. ping이 활성화된 경우(기본값), GitLab은 12시간마다 제어 상태를 자동으로 pending으로 재설정합니다. ping이 비활성화된 경우 제어 상태는 API 호출을 통해서만 업데이트됩니다.
외부 제어 상태 설정#
히스토리
- GitLab 17.11에서 도입되었습니다.
지정된 외부 제어의 상태를 설정합니다. 이 작업을 사용하여 외부 서비스의 검사를 제어가 통과 또는 실패했음을 GitLab에 알립니다.
전제 조건
- 보안을 위해 HMAC, Timestamp, Nonce 인증을 사용해야 합니다.
PATCH /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 서명. |
HMAC-SHA256 서명을 계산하려면:
- 다음 순서로 값을 연결합니다:
X-Gitlab-TimestampX-Gitlab-Nonce- 요청의 전체 경로
status=<status>형식으로 포맷된status속성 값
- 비밀 키를 사용하여 연결된 문자열의 HMAC-SHA256을 계산합니다.
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 프로젝트 ID. |
external_control_id |
integer | 예 | 외부 제어 ID. |
status |
string | 예 | 제어를 통과로 표시하려면 pass, 실패로 표시하려면 fail로 설정합니다. |
성공하면 200 OK와 다음 응답 속성을 반환합니다:
| 속성 | 유형 | 설명 |
|---|---|---|
status |
string | 제어에 설정된 상태. |
예시 요청:
curl --request PATCH \
--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"
}
