システムフックAPI
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
このAPIを使用して、システムフックを管理します。システムフックは、グループ内のすべてのプロジェクトとサブグループに影響を与えるグループWebhook 、および単一のプロジェクトに限定されるプロジェクトWebhookとは異なります。
前提要件:
- 管理者である必要があります。
システムフックのURLエンドポイントを設定する
システムフックのURLエンドポイントを設定するには、次の手順を実行します:
- 左側のサイドバーの下部で、管理者を選択します。
- システムフック(
/admin/hooks)を選択します。
システムフックを一覧表示
すべてのシステムフックのリストを取得します。
GET /hooksリクエスト例:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "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 --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "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。 |
branch_filter_strategy | 文字列 | いいえ | ブランチでプッシュイベントをフィルタリングします指定できる値は、wildcard(デフォルト)、regex、およびall_branchesです。 |
description | 文字列 | いいえ | フックの説明。(導入はGitLab 17.1からです。) |
enable_ssl_verification | ブール値 | いいえ | フックをトリガーするときにSSL検証を実行します。 |
merge_requests_events | ブール値 | いいえ | マージリクエストイベントでフックをトリガーします。 |
name | 文字列 | いいえ | フックの名前。(導入はGitLab 17.1からです。) |
push_events | ブール値 | いいえ | trueの場合、プッシュイベントでフックが起動します。 |
push_events_branch_filter | 文字列 | いいえ | 一致するブランチのプッシュイベントでのみフックをトリガーします。 |
repository_update_events | ブール値 | いいえ | リポジトリ更新イベントでフックをトリガーします。 |
tag_push_events | ブール値 | いいえ | trueの場合、新しいタグがプッシュされるとフックが起動します。 |
token | 文字列 | いいえ | 受信したペイロードを検証するためのシークレットトークン。レスポンスでは返されません。 |
リクエスト例:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "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。 |
branch_filter_strategy | 文字列 | いいえ | ブランチでプッシュイベントをフィルタリングします指定できる値は、wildcard(デフォルト)、regex、およびall_branchesです。 |
enable_ssl_verification | ブール値 | いいえ | フックをトリガーするときにSSL検証を実行します。 |
merge_requests_events | ブール値 | いいえ | マージリクエストイベントでフックをトリガーします。 |
push_events | ブール値 | いいえ | trueの場合、プッシュイベントでフックが起動します。 |
push_events_branch_filter | 文字列 | いいえ | 一致するブランチのプッシュイベントでのみフックをトリガーします。 |
repository_update_events | ブール値 | いいえ | リポジトリ更新イベントでフックをトリガーします。 |
tag_push_events | ブール値 | いいえ | trueの場合、新しいタグがプッシュされるとフックが起動します。 |
token | 文字列 | いいえ | 受信したペイロードを検証するためのシークレットトークン。これはレスポンスで返されません。 |
url | 文字列 | いいえ | フックのURL。 |
システムフックをテスト
モッキングデータでシステムフックを実行します。
POST /hooks/:id| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数 | はい | フックのID。 |
リクエスト例:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "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>" \
--url "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を返します。