시스템 후크 API


Tier: Free, Premium, Ultimate
Offering: Self-Managed

모든 메소드는 관리자 인가를 필요로 합니다.

시스템 후크의 URL 엔드포인트는 GitLab 사용자 인터페이스에서 구성할 수 있습니다.

  1. 왼쪽 사이드바에서 하단에 있는 Admin을 선택합니다.
  2. 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": "Hook name",
    "description": "Hook 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 정수 후크의 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": "Hook name",
    "description": "Hook 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 문자열 후크 URL
name 문자열 아니요 후크 이름 (GitLab 17.1에서 추가됨)
description 문자열 아니요 후크 설명 (GitLab 17.1에서 추가됨)
token 문자열 아니요 받은 페이로드를 유효성 검사하기 위한 비밀 토큰; 이는 응답에서 반환되지 않음
push_events 불린 아니요 참일 경우, 후크는 푸시 이벤트에서 작동함
tag_push_events 불린 아니요 참일 경우, 후크는 태그 푸시 이벤트에서 작동함
merge_requests_events 불린 아니요 후크를 병합 요청 이벤트에서 트리거함
repository_update_events 불린 아니요 후크를 저장소 업데이트 이벤트에서 트리거함
enable_ssl_verification 불린 아니요 후크를 트리거할 때 SSL 검증을 수행함
push_events_branch_filter 문자열 아니요 일치하는 브랜치에 대한 푸시 이벤트에 후크를 트리거함
branch_filter_strategy 문자열 아니요 브랜치별 푸시 이벤트를 필터링함. 가능한 값은 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": "Hook name",
    "description": "Hook 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 불린 아니요 참일 경우, 후크는 푸시 이벤트에서 작동함
tag_push_events 불린 아니요 참일 경우, 후크는 태그 푸시 이벤트에서 작동함
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 integer yes 후크의 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 integer Yes 시스템 후크의 ID
key string Yes URL 변수의 키
value string Yes URL 변수의 값

성공 시, 이 엔드포인트는 응답 코드 204 No Content를 반환합니다.

URL 변수 삭제

DELETE /hooks/:hook_id/url_variables/:key

지원되는 속성:

속성 타입 필수 설명
hook_id integer Yes 시스템 후크의 ID
key string Yes URL 변수의 키

성공 시, 이 엔드포인트는 응답 코드 204 No Content를 반환합니다.