시스템 훅 API
Tier: Free, Premium, Ultimate
Offering: Self-managed
모든 메서드는 관리자 권한이 필요합니다.
GitLab 사용자 인터페이스에서 시스템 훅의 URL 엔드포인트를 구성할 수 있습니다:
- 왼쪽 사이드바에서, 아래쪽에 있는 Admin를 선택합니다.
-
System hooks (
/admin/hooks
)를 선택합니다.
시스템 훅에 대한 자세한 내용을 읽어보세요.
시스템 훅 목록
모든 시스템 훅의 목록을 가져옵니다.
GET /hooks
예제 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks"
예제 응답:
[
{
"id":1,
"url":"https://gitlab.example.com/hook",
"name": "훅 이름",
"description": "훅 설명",
"created_at":"2016-10-31T12:32:15.192Z",
"push_events":true,
"tag_push_events":false,
"merge_requests_events": true,
"repository_update_events": true,
"enable_ssl_verification":true,
"url_variables": []
}
]
시스템 훅 가져오기
ID로 시스템 훅을 가져옵니다.
GET /hooks/:id
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id |
integer | 예 | 훅의 ID |
예제 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks/1"
예제 응답:
[
{
"id": 1,
"url": "https://gitlab.example.com/hook",
"name": "훅 이름",
"description": "훅 설명",
"created_at": "2016-10-31T12:32:15.192Z",
"push_events": true,
"tag_push_events": false,
"merge_requests_events": true,
"repository_update_events": true,
"enable_ssl_verification": true,
"url_variables": []
}
]
새 시스템 훅 추가
새 시스템 훅을 추가합니다.
POST /hooks
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
url |
string | 예 | 훅 URL |
name |
string | 아니오 | 훅의 이름 (도입됨 in GitLab 17.1) |
description |
string | 아니오 | 훅의 설명 (도입됨 in GitLab 17.1) |
token |
string | 아니오 | 수신된 페이로드를 검증하기 위한 비밀 토큰; 응답에 포함되지 않음 |
push_events |
boolean | 아니오 | true일 때, 훅이 푸시 이벤트에서 트리거됨 |
tag_push_events |
boolean | 아니오 | true일 때, 훅이 새로운 태그가 푸시될 때 트리거됨 |
merge_requests_events |
boolean | 아니오 | 머지 요청 이벤트에서 훅 트리거 |
repository_update_events |
boolean | 아니오 | 저장소 업데이트 이벤트에서 훅 트리거 |
enable_ssl_verification |
boolean | 아니오 | 훅 트리거 시 SSL 검증 수행 |
push_events_branch_filter |
string | 아니오 | 일치하는 브랜치에 대해서만 푸시 이벤트에서 훅 트리거 |
branch_filter_strategy |
string | 아니오 | 브랜치에 따라 푸시 이벤트 필터링. 가능한 값: wildcard (기본값), regex , all_branches
|
예제 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks?url=https://gitlab.example.com/hook"
예제 응답:
[
{
"id":1,
"url":"https://gitlab.example.com/hook",
"name": "훅 이름",
"description": "훅 설명",
"created_at":"2016-10-31T12:32:15.192Z",
"push_events":true,
"tag_push_events":false,
"merge_requests_events": true,
"repository_update_events": true,
"enable_ssl_verification":true,
"url_variables": []
}
]
시스템 훅 업데이트
기존 시스템 훅을 업데이트합니다.
PUT /hooks/:hook_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
hook_id |
정수 | 예 | 시스템 훅의 ID |
url |
문자열 | 예 | 훅 URL |
token |
문자열 | 아니오 | 수신된 페이로드를 검증하는 비밀 토큰; 응답에서 반환되지 않음 |
push_events |
불리언 | 아니오 | true일 때, 툭 푸시 이벤트에서 훅이 실행됨 |
tag_push_events |
불리언 | 아니오 | true일 때, 새로운 태그가 푸시될 때 훅이 실행됨 |
merge_requests_events |
불리언 | 아니오 | 병합 요청 이벤트에서 훅을 트리거함 |
repository_update_events |
불리언 | 아니오 | 저장소 업데이트 이벤트에서 훅을 트리거함 |
enable_ssl_verification |
불리언 | 아니오 | 훅을 트리거할 때 SSL 검증을 수행함 |
push_events_branch_filter |
문자열 | 아니오 | 일치하는 브랜치에 대해서만 푸시 이벤트에서 훅을 트리거함 |
branch_filter_strategy |
문자열 | 아니오 | 브랜치별로 푸시 이벤트를 필터링함. 가능한 값은 wildcard (기본), regex , 및 all_branches
|
시스템 훅 테스트
모의 데이터로 시스템 훅을 실행합니다.
POST /hooks/:id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 훅의 ID |
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks/1"
응답은 항상 모의 데이터입니다:
{
"project_id" : 1,
"owner_email" : "example@gitlabhq.com",
"owner_name" : "Someone",
"name" : "Ruby",
"path" : "ruby",
"event_name" : "project_create"
}
시스템 훅 삭제
시스템 훅을 삭제합니다.
DELETE /hooks/:id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 훅의 ID |
예시 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks/2"
URL 변수 설정
PUT /hooks/:hook_id/url_variables/:key
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
hook_id |
정수 | 예 | 시스템 훅의 ID. |
key |
문자열 | 예 | URL 변수의 키. |
value |
문자열 | 예 | URL 변수의 값. |
성공하면, 이 엔드포인트는 응답 코드 204 No Content
를 반환합니다.
URL 변수 삭제
DELETE /hooks/:hook_id/url_variables/:key
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
hook_id |
정수 | 예 | 시스템 훅의 ID. |
key |
문자열 | 예 | URL 변수의 키. |
성공하면, 이 엔드포인트는 응답 코드 204 No Content
를 반환합니다.