- 프로젝트 외부 상태 확인 서비스 가져오기
- 외부 상태 확인 서비스 생성
- 외부 상태 확인 서비스 업데이트
- 외부 상태 확인 서비스 삭제
- 병합 요청의 상태 확인 목록
- 외부 상태 확인의 상태 설정
- 병합 요청에서 실패한 상태 확인 다시 시도
- 응답
- 외부 서비스로 전송된 페이로드 예시
- 관련 주제
외부 상태 확인 API
- GitLab 14.0에서 소개,
:ff_external_status_checks
피쳐 플래그로 비활성화됨- GitLab 14.1에서 피쳐 플래그 제거
프로젝트 외부 상태 확인 서비스 가져오기
다음 엔드포인트를 사용하여 프로젝트의 외부 상태 확인 서비스에 대한 정보를 요청할 수 있습니다.
GET /projects/:id/external_status_checks
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 프로젝트 ID |
[
{
"id": 1,
"name": "Compliance Tool",
"project_id": 6,
"external_url": "https://gitlab.com/example/compliance-tool",
"protected_branches": [
{
"id": 14,
"project_id": 6,
"name": "main",
"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
경고: 외부 상태 확인은 모든 적용 가능한 병합 요청에 대한 정보를 정의된 외부 서비스로 전송합니다. 이는 기밀 병합 요청을 포함합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 프로젝트 ID |
name
| 문자열 | 예 | 외부 상태 확인 서비스의 표시 이름 |
external_url
| 문자열 | 예 | 외부 상태 확인 서비스의 URL |
protected_branch_ids
| array<Integer>
| 아니요 | 적용 범위를 나타내기 위한 보호된 브랜치의 ID |
외부 상태 확인 서비스 업데이트
다음 엔드포인트를 사용하여 프로젝트의 기존 외부 상태 확인 서비스를 업데이트할 수 있습니다.
PUT /projects/:id/external_status_checks/:check_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 프로젝트 ID |
check_id
| 정수 | 예 | 외부 상태 확인 서비스의 ID |
name
| 문자열 | 아니요 | 외부 상태 확인 서비스의 표시 이름 |
external_url
| 문자열 | 아니요 | 외부 상태 확인 서비스의 URL |
protected_branch_ids
| array<Integer>
| 아니요 | 적용 범위를 나타내기 위한 보호된 브랜치의 ID |
외부 상태 확인 서비스 삭제
다음 엔드포인트를 사용하여 프로젝트의 외부 상태 확인 서비스를 삭제할 수 있습니다.
DELETE /projects/:id/external_status_checks/:check_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
check_id
| 정수 | 예 | 외부 상태 확인 서비스의 ID |
id
| 정수 | 예 | 프로젝트 ID |
병합 요청의 상태 확인 목록
단일 병합 요청에 대해 해당하는 외부 상태 확인 서비스 및 상태를 나열합니다.
GET /projects/:id/merge_requests/:merge_request_iid/status_checks
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 프로젝트 ID |
merge_request_iid
| 정수 | 예 | 병합 요청의 IID |
[
{
"id": 2,
"name": "Service 1",
"external_url": "https://gitlab.com/test-endpoint",
"status": "passed"
},
{
"id": 1,
"name": "Service 2",
"external_url": "https://gitlab.com/test-endpoint-2",
"status": "pending"
}
]
외부 상태 확인의 상태 설정
- GitLab 14.9에서
passed
상태로 외부 상태 확인을 통과시키는 게시되었습니다. 기본적으로 비활성화됨- GitLab 14.9에서
failed
상태로 외부 상태 확인을 실패시키는 게시되었습니다. 기본적으로 비활성화됨pass
상태로 확인을 통과하는 것은 GitLab 14.9에서 폐기되었습니다.passed
로 대체됨failed
및passed
지원은 GitLab 15.0에서 기본적으로 활성화됨 및 피쳐 플래그가 제거되었습니다.pending
지원은 GitLab 16.5에서 기본적으로 활성화됨 및 기능 플래그가 제거되었습니다.
단일 병합 요청에 대해 외부 서비스의 확인을 통과했음을 GitLab에 알리기 위해 API를 사용합니다. 외부 확인의 상태를 설정하려면 사용된 개인 액세스 토큰은 병합 요청의 대상 프로젝트에서 적어도 ‘Developer’ 역할을 가진 사용자에게 속해야 합니다.
이 API 호출은 병합 요청 자체를 승인할 권한이 있는 모든 사용자로 실행합니다.
POST /projects/:id/merge_requests/:merge_request_iid/status_check_responses
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 프로젝트 ID |
merge_request_iid
| 정수 | 예 | 병합 요청의 IID |
sha
| 문자열 | 예 | 소스 브랜치의 HEAD 에서의 SHA
|
external_status_check_id
| 정수 | 예 | 외부 상태 확인의 ID |
status
| 문자열 | 아니요 |
pending 로 확인을 대기 중으로 표시, passed 로 확인을 통과, failed 로 실패로 표시합니다
|
참고:
sha
는 병합 요청의 소스 브랜치의 HEAD
의 SHA여야 합니다.
병합 요청에서 실패한 상태 확인 다시 시도
- GitLab 15.7에서 도입되었습니다.
단일 병합 요청에 대해 지정된 실패한 외부 상태 확인을 다시 시도합니다. 병합 요청이 변경되지 않았더라도, 이 엔드포인트는 현재의 병합 요청 상태를 정의된 외부 서비스로 다시 보냅니다.
POST /projects/:id/merge_requests/:merge_request_iid/status_checks/:external_status_check_id/retry
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수 | 예 | 프로젝트 ID |
merge_request_iid
| 정수 | 예 | 병합 요청 IID |
external_status_check_id
| 정수 | 예 | 실패한 외부 상태 확인 ID |
응답
성공할 경우 상태 코드는 202입니다.
{
"message": "202 Accepted"
}
상태 확인이 이미 통과된 경우 상태 코드는 422입니다.
{
"message": "외부 상태 확인이 실패해야 합니다"
}
외부 서비스로 전송된 페이로드 예시
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"email": "[REDACTED]"
},
...
}