그룹 웹훅 API

Tier: Premium, Ultimate

Offering: GitLab.com, Self-managed, GitLab Dedicated

REST API를 사용하여 그룹 웹훅과 상호 작용하세요. 그룹 훅이라고도 합니다.

이는 시스템 전체에 걸쳐 적용되는 시스템 훅 및 하나의 프로젝트에 제한된 프로젝트 웹훅와 다릅니다.

Prerequisites:

  • 관리자가 아니거나 그룹에 대한 소유자 역할을 가지고 있지 않아야 합니다.

그룹 훅 목록

그룹 훅의 목록을 가져옵니다.

GET /groups/:id/hooks

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로입니다.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks"

예시 응답:

[
  {
    "id": 1,
    "url": "http://example.com/hook",
    "name": "테스트 그룹 훅",
    "description": "이것은 테스트 그룹 훅입니다.",
    "created_at": "2024-09-01T09:10:54.854Z",
    "push_events": true,
    "tag_push_events": false,
    "merge_requests_events": false,
    "repository_update_events": false,
    "enable_ssl_verification": true,
    "alert_status": "executable",
    "disabled_until": null,
    "url_variables": [],
    "push_events_branch_filter": null,
    "branch_filter_strategy": "all_branches",
    "custom_webhook_template": "",
    "custom_headers": [],
    "group_id": 99,
    "issues_events": false,
    "confidential_issues_events": false,
    "note_events": false,
    "confidential_note_events": false,
    "pipeline_events": false,
    "wiki_page_events": false,
    "job_events": false,
    "deployment_events": false,
    "feature_flag_events": false,
    "releases_events": false,
    "subgroup_events": false,
    "emoji_events": false,
    "resource_access_token_events": false,
    "member_events": false,
    "custom_webhook_template": "{\"event\":\"{{object_kind}}\"}",
    "custom_headers": [
      {
        "key": "Authorization"
      }
    ]
  }
]

그룹 훅 가져오기

그룹의 특정 훅을 가져옵니다.

GET /groups/:id/hooks/:hook_id

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로입니다.
hook_id 정수 그룹 훅의 ID입니다.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1"

예시 응답:

{
  "id": 1,
  "url": "http://example.com/hook",
  "name": "훅 이름",
  "description": "훅 설명",
  "group_id": 3,
  "push_events": true,
  "push_events_branch_filter": "",
  "branch_filter_strategy": "wildcard",
  "issues_events": true,
  "confidential_issues_events": true,
  "merge_requests_events": true,
  "tag_push_events": true,
  "note_events": true,
  "confidential_note_events": true,
  "job_events": true,
  "pipeline_events": true,
  "wiki_page_events": true,
  "deployment_events": true,
  "feature_flag_events": false,
  "releases_events": true,
  "subgroup_events": true,
  "member_events": true,
  "enable_ssl_verification": true,
  "repository_update_events": false,
  "alert_status": "executable",
  "disabled_until": null,
  "url_variables": [],
  "created_at": "2012-10-12T17:04:47Z",
  "resource_access_token_events": true,
  "custom_webhook_template": "{\"event\":\"{{object_kind}}\"}",
  "custom_headers": [
    {
      "key": "Authorization"
    }
  ]
}

그룹 훅 이벤트 가져오기

시작일로부터 지난 7일간 특정 그룹 훅의 이벤트 목록을 가져옵니다.

GET /groups/:id/hooks/:hook_id/events

지원하는 속성:

속성 유형 필수 설명
id integer/string 그룹의 ID 또는 URL 인코딩된 경로.
hook_id integer 프로젝트 훅의 ID입니다.
status integer 또는 string 아니오 이벤트의 응답 상태 코드, 예: 200 또는 500. 상태 카테고리로 검색할 수 있습니다: successful (200-299), client_failure (400-499), 및 server_failure (500-599).
page integer 아니오 검색할 페이지. 기본값은 1입니다.
per_page integer 아니오 페이지당 반환할 레코드 수. 기본값은 20입니다.

예제 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1/events"

예제 응답:

[
  {
    "id": 1,
    "url": "https://example.net/",
    "trigger": "push_hooks",
    "request_headers": {
      "Content-Type": "application/json",
      "User-Agent": "GitLab/17.1.0-pre",
      "Idempotency-Key": "a5461c4d-9c7f-4af9-add6-cddebe3c426f",
      "X-Gitlab-Event": "Push Hook",
      "X-Gitlab-Webhook-UUID": "3c5c0404-c866-44bc-a5f6-452bb1bfc76e",
      "X-Gitlab-Instance": "https://gitlab.example.com",
      "X-Gitlab-Event-UUID": "9cebe914-4827-408f-b014-cfa23a47a35f",
      "X-Gitlab-Token": "[REDACTED]"
    },
    "request_data": {
      "object_kind": "push",
      "event_name": "push"
    }
      "after": "f15b32277d2c55c6c595845a87109b09c913c556",
      "ref": "refs/heads/master",
      "ref_protected": true,
      "checkout_sha": "f15b32277d2c55c6c595845a87109b09c913c556",
      "message": null,
      "user_id": 1,
      "user_name": "Administrator",
      "user_username": "root",
      "user_email": null,
      "user_avatar": "https://www.gravatar.com/avatar/13efe0d4559475ba84ecc802061febbdea6e224fcbffd7ec7da9cd431845299c?s=80&d=identicon",
      "project_id": 7,
      "project": {
        "id": 7,
        "name": "Flight",
        "description": "Incidunt ea ab officia a veniam.",
        "web_url": "https://gitlab.example.com/flightjs/Flight",
        "avatar_url": null,
        "git_ssh_url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "git_http_url": "https://gitlab.example.com/flightjs/Flight.git",
        "namespace": "Flightjs",
        "visibility_level": 10,
        "path_with_namespace": "flightjs/Flight",
        "default_branch": "master",
        "ci_config_path": null,
        "homepage": "https://gitlab.example.com/flightjs/Flight",
        "url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "ssh_url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "http_url": "https://gitlab.example.com/flightjs/Flight.git"
      },
      "commits": [
        {
          "id": "f15b32277d2c55c6c595845a87109b09c913c556",
          "message": "v1.5.2\n",
          "title": "v1.5.2",
          "timestamp": "2017-06-19T14:39:53-07:00",
          "url": "https://gitlab.example.com/flightjs/Flight/-/commit/f15b32277d2c55c6c595845a87109b09c913c556",
          "author": {
            "name": "Andrew Lunny",
            "email": "[REDACTED]"
          },
          "added": [],
          "modified": [
            "package.json"
          ],
          "removed": []
        },
        {
          "id": "8749d49930866a4871fa086adbd7d2057fcc3ebb",
          "message": "Merge pull request #378 from flightjs/alunny/publish_lib\n\npublish lib and index to npm",
          "title": "Merge pull request #378 from flightjs/alunny/publish_lib",
          "timestamp": "2017-06-16T10:26:39-07:00",
          "url": "https://gitlab.example.com/flightjs/Flight/-/commit/8749d49930866a4871fa086adbd7d2057fcc3ebb",
          "author": {
            "name": "angus croll",
            "email": "[REDACTED]"
          },
          "added": [],
          "modified": [
            "package.json"
          ],
          "removed": []
        },
        {
          "id": "468abc807a2b2572f43e72c743b76cee6db24025",
          "message": "publish lib and index to npm\n",
          "title": "publish lib and index to npm",
          "timestamp": "2017-06-16T10:23:04-07:00",
          "url": "https://gitlab.example.com/flightjs/Flight/-/commit/468abc807a2b2572f43e72c743b76cee6db24025",
          "author": {
            "name": "Andrew Lunny",
            "email": "[REDACTED]"
          },
          "added": [],
          "modified": [
            "package.json"
          ],
          "removed": []
        }
      ],
      "total_commits_count": 3,
      "push_options": {},
      "repository": {
        "name": "Flight",
        "url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "description": "Incidunt ea ab officia a veniam.",
        "homepage": "https://gitlab.example.com/flightjs/Flight",
        "git_http_url": "https://gitlab.example.com/flightjs/Flight.git",
        "git_ssh_url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "visibility_level": 10
      }
    },
    "response_headers": {
      "Date": "Sun, 26 May 2024 03:03:17 GMT",
      "Content-Type": "application/json; charset=utf-8",
      "Content-Length": "16",
      "Connection": "close",
      "X-Powered-By": "Express",
      "Access-Control-Allow-Origin": "*",
      "X-Pd-Status": "sent to primary"
    },
    "response_body": "{\"success\":true}",
    "execution_duration": 1.0906479999999874,
    "response_status": "200"
  },
  {
    "id": 2,
    "url": "https://example.net/",
    "trigger": "push_hooks",
    "request_headers": {
      "Content-Type": "application/json",
      "User-Agent": "GitLab/17.1.0-pre",
      "Idempotency-Key": "1f0a54f0-0529-408d-a5b8-a2a98ff5f94a",
      "X-Gitlab-Event": "Push Hook",
      "X-Gitlab-Webhook-UUID": "a753eedb-1d72-4549-9ca7-eac8ea8e50dd",
      "X-Gitlab-Instance": "https://gitlab.example.com:3000",
      "X-Gitlab-Event-UUID": "842d7c3e-3114-4396-8a95-66c084d53cb1",
      "X-Gitlab-Token": "[REDACTED]"
    },
    "request_data": {
      "object_kind": "push",
      "event_name": "push",
      "before": "468abc807a2b2572f43e72c743b76cee6db24025",
      "after": "f15b32277d2c55c6c595845a87109b09c913c556",
      "ref": "refs/heads/master",
      "ref_protected": true,
      "checkout_sha": "f15b32277d2c55c6c595845a87109b09c913c556",
      "message": null,
      "user_id": 1,
      "user_name": "Administrator",
      "user_username": "root",
      "user_email": null,
      "user_avatar": "https://www.gravatar.com/avatar/13efe0d4559475ba84ecc802061febbdea6e224fcbffd7ec7da9cd431845299c?s=80&d=identicon",
      "project_id": 7,
      "project": {
        "id": 7,
        "name": "Flight",
        "description": "Incidunt ea ab officia a veniam.",
        "web_url": "https://gitlab.example.com/flightjs/Flight",
        "avatar_url": null,
        "git_ssh_url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "git_http_url": "https://gitlab.example.com/flightjs/Flight.git",
        "namespace": "Flightjs",
        "visibility_level": 10,
        "path_with_namespace": "flightjs/Flight",
        "default_branch": "master",
        "ci_config_path": null,
        "homepage": "https://gitlab.example.com/flightjs/Flight",
        "url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "ssh_url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "http_url": "https://gitlab.example.com/flightjs/Flight.git"
      },
      "commits": [
        {
          "id": "f15b32277d2c55c6c595845a87109b09c913c556",
          "message": "v1.5.2\n",
          "title": "v1.5.2",
          "timestamp": "2017-06-19T14:39:53-07:00",
          "url": "https://gitlab.example.com/flightjs/Flight/-/commit/f15b32277d2c55c6c595845a87109b09c913c556",
          "author": {
            "name": "Andrew Lunny",
            "email": "[REDACTED]"
          },
          "added": [],
          "modified": [
            "package.json"
          ],
          "removed": []
        },
        {
          "id": "8749d49930866a4871fa086adbd7d2057fcc3ebb",
          "message": "Merge pull request #378 from flightjs/alunny/publish_lib\n\npublish lib and index to npm",
          "title": "Merge pull request #378 from flightjs/alunny/publish_lib",
          "timestamp": "2017-06-16T10:26:39-07:00",
          "url": "https://gitlab.example.com/flightjs/Flight/-/commit/8749d49930866a4871fa086adbd7d2057fcc3ebb",
          "author": {
            "name": "angus croll",
            "email": "[REDACTED]"
          },
          "added": [],
          "modified": [
            "package.json"
          ],
          "removed": []
        },
        {
          "id": "468abc807a2b2572f43e72c743b76cee6db24025",
          "message": "publish lib and index to npm\n",
          "title": "publish lib and index to npm",
          "timestamp": "2017-06-16T10:23:04-07:00",
          "url": "https://gitlab.example.com/flightjs/Flight/-/commit/468abc807a2b2572f43e72c743b76cee6db24025",
          "author": {
            "name": "Andrew Lunny",
            "email": "[REDACTED]"
          },
          "added": [],
          "modified": [
            "package.json"
          ],
          "removed": []
        }
      ],
      "total_commits_count": 3,
      "push_options": {},
      "repository": {
        "name": "Flight",
        "url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "description": "Incidunt ea ab officia a veniam.",
        "homepage": "https://gitlab.example.com/flightjs/Flight",
        "git_http_url": "https://gitlab.example.com/flightjs/Flight.git",
        "git_ssh_url": "ssh://git@gitlab.example.com:2222/flightjs/Flight.git",
        "visibility_level": 10
      }
    },
    "response_headers": {
      "Date": "Sun, 26 May 2024 03:03:19 GMT",
      "Content-Type": "application/json; charset=utf-8",
      "Content-Length": "16",
      "Connection": "close",
      "X-Powered-By": "Express",
      "Access-Control-Allow-Origin": "*",
      "X-Pd-Status": "sent to primary"
    },
    "response_body": "{\"success\":true}",
    "execution_duration": 1.0716120000000728,
    "response_status": "200"
  }
]

그룹 훅 이벤트 재전송

특정 훅 이벤트를 재전송합니다.

이 엔드포인트는 각 훅과 인증된 사용자에 대해 분당 5개의 요청으로 제한됩니다.

이 한도를 self-managed GitLab 및 GitLab Dedicated에서 비활성화하려면 관리자가 web_hook_event_resend_api_endpoint_rate_limit라는 기능 플래그를 비활성화 할 수 있습니다.

POST /groups/:id/hooks/:hook_id/events/:hook_event_id/resend

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로.
hook_id 정수 그룹 훅의 ID.
hook_event_id 정수 훅 이벤트의 ID.

예시 요청:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1/events/1/resend"

예시 응답:

{
  "response_status": 200
}

그룹 훅 추가

지정된 그룹에 훅을 추가합니다.

POST /groups/:id/hooks

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로.
url 문자열 훅 URL.
name 문자열 아니오 훅의 이름 (도입됨 GitLab 17.1).
description 문자열 아니오 훅의 설명 (도입됨 GitLab 17.1).
push_events 불리언 아니오 푸시 이벤트에서 훅을 트리거합니다.
push_events_branch_filter 문자열 아니오 일치하는 브랜치에 대해서만 푸시 이벤트에서 훅을 트리거합니다.
branch_filter_strategy 문자열 아니오 브랜치로 푸시 이벤트를 필터링합니다. 가능한 값은 wildcard (기본값), regex, 및 all_branches.
issues_events 불리언 아니오 이슈 이벤트에서 훅을 트리거합니다.
confidential_issues_events 불리언 아니오 기밀 이슈 이벤트에서 훅을 트리거합니다.
merge_requests_events 불리언 아니오 머지 요청 이벤트에서 훅을 트리거합니다.
tag_push_events 불리언 아니오 태그 푸시 이벤트에서 훅을 트리거합니다.
note_events 불리언 아니오 노트 이벤트에서 훅을 트리거합니다.
confidential_note_events 불리언 아니오 기밀 노트 이벤트에서 훅을 트리거합니다.
job_events 불리언 아니오 작업 이벤트에서 훅을 트리거합니다.
pipeline_events 불리언 아니오 파이프라인 이벤트에서 훅을 트리거합니다.
wiki_page_events 불리언 아니오 위키 페이지 이벤트에서 훅을 트리거합니다.
deployment_events 불리언 아니오 배포 이벤트에서 훅을 트리거합니다.
feature_flag_events 불리언 아니오 기능 플래그 이벤트에서 훅을 트리거합니다.
releases_events 불리언 아니오 릴리스 이벤트에서 훅을 트리거합니다.
subgroup_events 불리언 아니오 하위 그룹 이벤트에서 훅을 트리거합니다.
member_events 불리언 아니오 멤버 이벤트에서 훅을 트리거합니다.
enable_ssl_verification 불리언 아니오 훅을 트리거할 때 SSL 검증을 수행합니다.
token 문자열 아니오 수신된 페이로드를 검증하기 위한 비밀 토큰; 응답에서는 반환되지 않습니다.
resource_access_token_events 불리언 아니오 프로젝트 접근 토큰 만료 이벤트에서 훅을 트리거합니다.
custom_webhook_template 문자열 아니오 훅을 위한 사용자 정의 웹훅 템플릿.
custom_headers 배열 아니오 훅을 위한 사용자 정의 헤더.

예시 요청:

curl --request POST \
  --header "content-type: application/json" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/3/hooks" \
  --data '{"url": "https://example.com/hook", "name": "내 훅", "description": "훅 설명"}'

예시 응답:

{
  "id": 42,
  "url": "https://example.com/hook",
  "name": "내 훅",
  "description": "훅 설명",
  "group_id": 3,
  "push_events": true,
  "push_events_branch_filter": "",
  "branch_filter_strategy": "wildcard",
  "issues_events": true,
  "confidential_issues_events": true,
  "merge_requests_events": true,
  "tag_push_events": true,
  "note_events": true,
  "confidential_note_events": true,
  "job_events": true,
  "pipeline_events": true,
  "wiki_page_events": true,
  "deployment_events": true,
  "feature_flag_events": true,
  "releases_events": true,
  "subgroup_events": true,
  "member_events": true,
  "enable_ssl_verification": true,
  "repository_update_events": false,
  "alert_status": "executable",
  "disabled_until": null,
  "url_variables": [ ],
  "created_at": "2012-10-12T17:04:47Z",
  "resource_access_token_events": true,
  "custom_webhook_template": "{\"event\":\"{{object_kind}}\"}"
}

그룹 훅 수정

지정된 그룹의 훅을 수정합니다.

PUT /groups/:id/hooks/:hook_id

지원하는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-인코딩된 경로.
hook_id 정수 그룹 훅의 ID.
url 문자열 훅 URL.
name 문자열 아니오 훅의 이름 (GitLab 17.1에 도입됨).
description 문자열 아니오 훅의 설명 (GitLab 17.1에 도입됨).
push_events 부울 아니오 푸시 이벤트에서 훅을 트리거합니다.
push_events_branch_filter 문자열 아니오 일치하는 브랜치에 대해서만 푸시 이벤트에서 훅을 트리거합니다.
branch_filter_strategy 문자열 아니오 브랜치로 푸시 이벤트를 필터링합니다. 가능한 값은 wildcard (기본값), regex, 및 all_branches입니다.
issues_events 부울 아니오 문제 이벤트에서 훅을 트리거합니다.
confidential_issues_events 부울 아니오 기밀 문제 이벤트에서 훅을 트리거합니다.
merge_requests_events 부울 아니오 머지 요청 이벤트에서 훅을 트리거합니다.
tag_push_events 부울 아니오 태그 푸시 이벤트에서 훅을 트리거합니다.
note_events 부울 아니오 노트 이벤트에서 훅을 트리거합니다.
confidential_note_events 부울 아니오 기밀 노트 이벤트에서 훅을 트리거합니다.
job_events 부울 아니오 작업 이벤트에서 훅을 트리거합니다.
pipeline_events 부울 아니오 파이프라인 이벤트에서 훅을 트리거합니다.
wiki_page_events 부울 아니오 위키 페이지 이벤트에서 훅을 트리거합니다.
deployment_events 부울 아니오 배포 이벤트에서 훅을 트리거합니다.
feature_flag_events 부울 아니오 기능 플래그 이벤트에서 훅을 트리거합니다.
releases_events 부울 아니오 릴리즈 이벤트에서 훅을 트리거합니다.
subgroup_events 부울 아니오 하위 그룹 이벤트에서 훅을 트리거합니다.
member_events 부울 아니오 멤버 이벤트에서 훅을 트리거합니다.
enable_ssl_verification 부울 아니오 훅을 트리거할 때 SSL 검증을 수행합니다.
service_access_tokens_expiration_enforced 부울 아니오 서비스 계정 액세스 토큰에 만료일 필요.
token 문자열 아니오 수신된 페이로드를 검증하기 위한 비밀 토큰. 응답에서 반환되지 않습니다. 웹훅 URL을 변경할 때 비밀 토큰은 재설정되며 유지되지 않습니다.
resource_access_token_events 부울 아니오 프로젝트 액세스 토큰 만료 이벤트에서 훅을 트리거합니다.
custom_webhook_template 문자열 아니오 훅에 대한 사용자 정의 웹훅 템플릿.
custom_headers 배열 아니오 훅에 대한 사용자 정의 헤더.

예시 요청:

curl --request POST \
  --header "content-type: application/json" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/3/hooks/1" \
  --data '{"url": "https://example.com/hook", "name": "New hook name", "description": "Changed hook description"}'

예시 응답:

{
  "id": 1,
  "url": "https://example.com/hook",
  "name": "New hook name",
  "description": "Changed hook description",
  "group_id": 3,
  "push_events": true,
  "push_events_branch_filter": "",
  "branch_filter_strategy": "wildcard",
  "issues_events": true,
  "confidential_issues_events": true,
  "merge_requests_events": true,
  "tag_push_events": true,
  "note_events": true,
  "confidential_note_events": true,
  "job_events": true,
  "pipeline_events": true,
  "wiki_page_events": true,
  "deployment_events": true,
  "feature_flag_events": true,
  "releases_events": true,
  "subgroup_events": true,
  "member_events": true,
  "enable_ssl_verification": true,
  "repository_update_events": false,
  "alert_status": "executable",
  "disabled_until": null,
  "url_variables": [],
  "created_at": "2012-10-12T17:04:47Z",
  "resource_access_token_events": true,
  "custom_webhook_template": "{\"event\":\"{{object_kind}}\"}",
  "custom_headers": [
    {
      "key": "Authorization"
    }
  ]
}

그룹 훅 삭제

그룹에서 훅을 삭제합니다. 이는 멱등성 메서드이며 여러 번 호출할 수 있습니다.

훅이 존재할 수도 있고 아닐 수도 있습니다.

DELETE /groups/:id/hooks/:hook_id

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로입니다.
hook_id 정수 그룹 훅의 ID입니다.

예시 요청:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1"

성공하면 반환되는 메시지는 없습니다.

테스트 그룹 훅 트리거

  • GitLab 17.1에서 도입됨.
  • GitLab 17.1에서 도입된 특별 속도 제한이 있으며, web_hook_test_api_endpoint_rate_limit라는 플래그로 활성화됩니다. 기본적으로 활성화되어 있습니다.

지정된 그룹에 대한 테스트 훅을 트리거합니다.

이 엔드포인트는 각 그룹과 인증된 사용자에 대해 분당 5개의 요청 속도 제한이 있습니다.

자체 관리된 GitLab 및 GitLab Dedicated에서 이 제한을 비활성화하려면 관리자가 web_hook_test_api_endpoint_rate_limit라는 기능 플래그를 비활성화할 수 있습니다.

POST /groups/:id/hooks/:hook_id/test/:trigger
속성 유형 필수 설명
hook_id 정수 그룹 훅의 ID입니다.
id 정수 또는 문자열 그룹의 ID 또는 URL 인코딩된 경로입니다.
trigger 문자열 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 중 하나입니다.

예시 요청:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1/test/push_events"

예시 응답:

{"message":"201 Created"}

사용자 정의 헤더 설정

사용자 정의 헤더를 설정합니다.

PUT /groups/:id/hooks/:hook_id/custom_headers/:key

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL 인코딩된 경로입니다.
hook_id 정수 그룹 훅의 ID입니다.
key 문자열 사용자 정의 헤더의 키입니다.
value 문자열 사용자 정의 헤더의 값입니다.

예시 요청:

curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1/custom_headers/header_key?value='header_value'"

성공하면 반환되는 메시지는 없습니다.

사용자 정의 헤더 삭제

사용자 정의 헤더를 삭제합니다.

DELETE /groups/:id/hooks/:hook_id/custom_headers/:key

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-인코딩 경로.
hook_id 정수 그룹 훅의 ID.
key 문자열 사용자 정의 헤더의 키.

예제 요청:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1/custom_headers/header_key"

성공 시, 메시지가 반환되지 않습니다.

URL 변수 설정

PUT /groups/:id/hooks/:hook_id/url_variables/:key

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-인코딩 경로.
hook_id 정수 그룹 훅의 ID.
key 문자열 URL 변수의 키.
value 문자열 URL 변수의 값.

예제 요청:

curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1/url_variables/my_key?value='my_key_value'"

성공 시, 메시지가 반환되지 않습니다.

URL 변수 삭제

DELETE /groups/:id/hooks/:hook_id/url_variables/:key

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-인코딩 경로.
hook_id 정수 그룹 훅의 ID.
key 문자열 URL 변수의 키.

예제 요청:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/3/hooks/1/url_variables/my_key"

성공 시, 메시지가 반환되지 않습니다.