正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

システムフックAPI

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

このAPIを使用して、システムフックを管理します。システムフックは、グループ内のすべてのプロジェクトとサブグループに影響を与えるグループWebhook 、および単一のプロジェクトに限定されるプロジェクトWebhookとは異なります。

前提要件:

  • 管理者である必要があります。

システムフックのURLエンドポイントを設定する

システムフックのURLエンドポイントを設定するには、次の手順を実行します:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. システムフック/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を返します。