- 프로젝트 웹훅 목록
- 프로젝트 웹훅 가져오기
- 프로젝트 웹훅 이벤트 목록 가져오기
- 프로젝트 웹훅 이벤트 다시 보내기
- 프로젝트에 웹훅 추가
- 프로젝트 웹훅 편집
- 프로젝트 웹훅 삭제
- 테스트 프로젝트 웹훅 트리거
- 사용자 정의 헤더 설정
- 사용자 정의 헤더 삭제
- URL 변수 설정
- URL 변수 삭제
프로젝트 웹훅
REST API를 사용하여 프로젝트 웹훅을 관리합니다. 프로젝트 웹훅은 시스템 전반에 걸친 시스템 훅(system hooks) 및 그룹 웹훅(group webhooks)과는 다릅니다.
필수 조건:
- 프로젝트의 관리자이거나 적어도 유지자(Maintainer) 역할이 있어야 합니다.
프로젝트 웹훅 목록
프로젝트 웹훅의 목록을 가져옵니다.
GET /projects/:id/hooks
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
프로젝트 웹훅 가져오기
특정 프로젝트 웹훅 가져오기.
GET /projects/:id/hooks/:hook_id
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
hook_id
| 정수 | 예 | 프로젝트 웹훅의 ID. |
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
예시 응답:
{
"id": 1,
"url": "http://example.com/hook",
"name": "Hook name",
"description": "Hook description",
"project_id": 3,
"push_events": true,
"push_events_branch_filter": "",
"issues_events": true,
...
}
프로젝트 웹훅 이벤트 목록 가져오기
지난 7일간 특정 프로젝트 웹훅의 이벤트 목록을 가져옵니다.
GET /projects/:id/hooks/:hook_id/events
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
hook_id
| 정수 | 예 | 프로젝트 웹훅의 ID. |
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
status
| 정수 또는 문자열 | 아니요 | 이벤트의 응답 상태 코드, 예: 200 또는 500 . 상태 범주로 검색할 수 있습니다: successful (200-299), client_failure (400-499), server_failure (500-599).
|
page
| 정수 | 아니요 | 가져올 페이지. 기본값은 1 입니다.
|
per_page
| 정수 | 아니요 | 페이지당 반환할 레코드 수. 기본값은 20 입니다.
|
예시 응답:
[
{
"id": 1,
"url": "https://example.net/",
"trigger": "push_hooks",
"request_headers": {
...
},
"request_data": {
...
},
"response_headers": {
...
},
"response_body": "{\"success\":true}",
"execution_duration": 1.0906479999999874,
"response_status": "200"
},
...
]
프로젝트 웹훅 이벤트 다시 보내기
- GitLab 17.4에서 도입되었습니다.
특정 프로젝트 웹훅 이벤트를 다시 보냅니다.
이 엔드포인트는 프로젝트 웹훅과 인증된 사용자마다 분당 다섯 번의 요청 제한을 가지고 있습니다.
셀프 매니지드 GitLab 및 GitLab Dedicated에서 이 제한을 해제하려면, 관리자는 web_hook_event_resend_api_endpoint_rate_limit
라는 기능 플래그를
비활성화할 수 있습니다.
POST /projects/:id/hooks/:hook_id/events/:hook_event_id/resend
지원되는 속성:
속성 | 타입 | 필수여부 | 설명 |
---|---|---|---|
hook_id
| integer | Yes | 프로젝트 웹훅의 ID. |
hook_event_id
| integer | Yes | 프로젝트 웹훅 이벤트의 ID. |
예시 응답:
{
"response_status": 200
}
프로젝트에 웹훅 추가
name
및description
속성은 GitLab 17.1에서 도입되었습니다.
지정된 프로젝트에 웹훅을 추가합니다.
POST /projects/:id/hooks
지원되는 속성:
속성 | 타입 | 필수여부 | 설명 |
---|---|---|---|
id
| integer 또는 string | Yes | 프로젝트의 ID 또는 URL-인코딩된 경로. |
url
| string | Yes | 프로젝트 웹훅 URL. |
name
| string | No | 프로젝트 웹훅 이름. |
description
| string | No | 웹훅 설명. |
confidential_issues_events
| boolean | No | 기밀 문제 이벤트에서 프로젝트 웹훅 트리거. |
confidential_note_events
| boolean | No | 기밀 노트 이벤트에서 프로젝트 웹훅 트리거. |
deployment_events
| boolean | No | 배포 이벤트에서 프로젝트 웹훅 트리거. |
enable_ssl_verification
| boolean | No | 웹훅을 트리거할 때 SSL 검증 수행. |
feature_flag_events
| boolean | No | 피처 플래그 이벤트에서 프로젝트 웹훅 트리거. |
issues_events
| boolean | No | 문제 이벤트에서 프로젝트 웹훅 트리거. |
job_events
| boolean | No | 작업 이벤트에서 프로젝트 웹훅 트리거. |
merge_requests_events
| boolean | No | 머지 요청 이벤트에서 프로젝트 웹훅 트리거. |
note_events
| boolean | No | 노트 이벤트에서 프로젝트 웹훅 트리거. |
pipeline_events
| boolean | No | 파이프라인 이벤트에서 프로젝트 웹훅 트리거. |
push_events_branch_filter
| string | No | 일치하는 브랜치에서의 푸시 이벤트에서 프로젝트 웹훅 트리거. |
branch_filter_strategy
| string | No | 브랜치별 푸시 이벤트 필터링 방법. 가능한 값은 wildcard (기본값), regex , all_branches .
|
push_events
| boolean | No | 푸시 이벤트에서 프로젝트 웹훅 트리거. |
releases_events
| boolean | No | 릴리즈 이벤트에서 프로젝트 웹훅 트리거. |
tag_push_events
| boolean | No | 태그 푸시 이벤트에서 프로젝트 웹훅 트리거. |
token
| string | No | 수신된 payloads를 유효성 검사하기 위한 비밀 토큰; 응답에는 토큰이 포함되지 않습니다. |
wiki_page_events
| boolean | No | 위키 페이지 이벤트에서 프로젝트 웹훅 트리거. |
resource_access_token_events
| boolean | No | 프로젝트 엑세스 토큰 만료 이벤트에서 프로젝트 웹훅 트리거. |
custom_webhook_template
| string | No | 프로젝트 웹훅에 대한 사용자 정의 웹훅 템플릿. |
custom_headers
| array | No | 프로젝트 웹훅을 위한 사용자 정의 헤더. |
프로젝트 웹훅 편집
name
및description
속성은 GitLab 17.1에서 도입되었습니다.
지정된 프로젝트의 웹훅을 편집합니다.
PUT /projects/:id/hooks/:hook_id
지원되는 속성:
속성 | 타입 | 필수여부 | 설명 |
---|---|---|---|
hook_id
| integer | Yes | 프로젝트 웹훅의 ID. |
id
| integer 또는 string | Yes | 프로젝트의 ID 또는 URL-인코딩된 경로. |
url
| string | Yes | 프로젝트 웹훅 URL. |
name
| string | No | 프로젝트 웹훅 이름. |
description
| string | No | 프로젝트 웹훅 설명. |
confidential_issues_events
| boolean | No | 기밀 문제 이벤트에서 프로젝트 웹훅 트리거. |
confidential_note_events
| boolean | No | 기밀 노트 이벤트에서 프로젝트 웹훅 트리거. |
deployment_events
| boolean | No | 배포 이벤트에서 프로젝트 웹훅 트리거. |
enable_ssl_verification
| boolean | No | 웹훅을 트리거할 때 SSL 검증 수행. |
feature_flag_events
| boolean | No | 피처 플래그 이벤트에서 프로젝트 웹훅 트리거. |
issues_events
| boolean | No | 문제 이벤트에서 프로젝트 웹훅 트리거. |
job_events
| boolean | No | 작업 이벤트에서 프로젝트 웹훅 트리거. |
merge_requests_events
| boolean | No | 머지 요청 이벤트에서 프로젝트 웹훅 트리거. |
note_events
| boolean | No | 노트 이벤트에서 프로젝트 웹훅 트리거. |
pipeline_events
| boolean | No | 파이프라인 이벤트에서 프로젝트 웹훅 트리거. |
push_events_branch_filter
| string | No | 일치하는 브랜치에서의 푸시 이벤트에서 프로젝트 웹훅 트리거. |
branch_filter_strategy
| string | No | 브랜치별 푸시 이벤트 필터링 방법. 가능한 값은 wildcard (기본값), regex , all_branches .
|
push_events
| boolean | No | 푸시 이벤트에서 프로젝트 웹훅 트리거. |
releases_events
| boolean | No | 릴리즈 이벤트에서 프로젝트 웹훅 트리거. |
tag_push_events
| boolean | No | 태그 푸시 이벤트에서 프로젝트 웹훅 트리거. |
token
| string | No | 수신된 payloads를 유효성 검사하기 위한 비밀 토큰. 응답에는 토큰이 반환되지 않습니다. 웹훅 URL을 변경하면 비밀 토큰이 초기화되고 유지되지 않습니다. |
wiki_page_events
| boolean | No | 위키 페이지 이벤트에서 프로젝트 웹훅 트리거. |
resource_access_token_events
| boolean | No | 프로젝트 엑세스 토큰 만료 이벤트에서 프로젝트 웹훅 트리거. |
custom_webhook_template
| string | No | 프로젝트 웹훅에 대한 사용자 정의 웹훅 템플릿. |
custom_headers
| array | No | 프로젝트 웹훅을 위한 사용자 정의 헤더. |
프로젝트 웹훅 삭제
프로젝트에서 웹훅을 제거합니다. 이 방법은 멱등성을 가지며 여러 번 호출할 수 있습니다. 프로젝트 웹훅은 사용 가능하거나 사용 불가능합니다.
DELETE /projects/:id/hooks/:hook_id
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
hook_id
| integer | 예 | 프로젝트 웹훅의 ID입니다. |
id
| integer or string | 예 | 프로젝트의 ID 또는 URL로 인코딩된 경로입니다. |
프로젝트 웹훅이 사용 가능하거나 사용 불가능한 경우 JSON 응답이 다릅니다. 웹훅이 사용 가능하면 JSON 응답에 나타나며, 그렇지 않으면 빈 응답이 반환됩니다.
테스트 프로젝트 웹훅 트리거
- GitLab 16.11에서 도입.
- 기본적으로 사용되는 특별한 속도 제한 GitLab 17.0에서 도입되었으며, 여기에는
web_hook_test_api_endpoint_rate_limit
라는 플래그가 있습니다.
지정된 프로젝트에 대해 테스트 프로젝트 웹훅을 트리거합니다.
GitLab 17.0 이상에서 이 엔드포인트는 특별한 속도 제한이 있습니다:
- GitLab 17.0에서는 각 프로젝트 웹훅에 대해 분당 세 개의 요청이 가능했습니다.
- GitLab 17.1에서는 이것이 각 프로젝트 및 인증된 사용자당 분당 다섯 개 요청으로 변경되었습니다.
자체 호스팅된 GitLab 및 GitLab Dedicated에서 이 제한을 해제하려면 관리자가 web_hook_test_api_endpoint_rate_limit
라는 기능 플래그를 비활성화할 수 있습니다.
POST /projects/:id/hooks/:hook_id/test/:trigger
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
hook_id
| integer | 예 | 프로젝트 웹훅의 ID입니다. |
id
| integer or string | 예 | 프로젝트의 ID 또는 URL로 인코딩된 경로입니다. |
trigger
| string | 예 |
push_events , tag_push_events , issues_events , confidential_issues_events , note_events , merge_requests_events , job_events ,pipeline_events , wiki_page_events , releases_events , emoji_events , 또는 resource_access_token_events 중 하나입니다.
|
예시 응답:
{ "message": "201 Created" }
사용자 정의 헤더 설정
PUT /projects/:id/hooks/:hook_id/custom_headers/:key
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer or string | 예 | 프로젝트의 ID 또는 URL로 인코딩된 경로입니다. |
hook_id
| integer | 예 | 프로젝트 웹훅의 ID입니다. |
key
| string | 예 | 사용자 정의 헤더의 키입니다. |
value
| string | 예 | 사용자 정의 헤더의 값입니다. |
성공 시, 이 엔드포인트는 응답 코드 204 No Content
를 반환합니다.
사용자 정의 헤더 삭제
DELETE /projects/:id/hooks/:hook_id/custom_headers/:key
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer or string | 예 | 프로젝트의 ID 또는 URL로 인코딩된 경로입니다. |
hook_id
| integer | 예 | 프로젝트 웹훅의 ID입니다. |
key
| string | 예 | 사용자 정의 헤더의 키입니다. |
성공 시, 이 엔드포인트는 응답 코드 204 No Content
를 반환합니다.
URL 변수 설정
PUT /projects/:id/hooks/:hook_id/url_variables/:key
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer or string | 예 | 프로젝트의 ID 또는 URL로 인코딩된 경로입니다. |
hook_id
| integer | 예 | 프로젝트 웹훅의 ID입니다. |
key
| string | 예 | URL 변수의 키입니다. |
value
| string | 예 | URL 변수의 값입니다. |
성공 시, 이 엔드포인트는 응답 코드 204 No Content
를 반환합니다.
URL 변수 삭제
DELETE /projects/:id/hooks/:hook_id/url_variables/:key
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer or string | 예 | 프로젝트의 ID 또는 URL로 인코딩된 경로입니다. |
hook_id
| integer | 예 | 프로젝트 웹훅의 ID입니다. |
key
| string | 예 | URL 변수의 키입니다. |
성공 시, 이 엔드포인트는 응답 코드 204 No Content
를 반환합니다.