系统钩子 API
所有 API 都需要进行管理员认证。
您可以从极狐GitLab 用户界面配置系统钩子中的 URL 地址:
- 在左侧导航栏底部,选择 管理员。
- 选择 系统钩子 (
/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",
"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
}
]
获取一个系统钩子
通过 ID 获取系统钩子。
GET /hooks/:id
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
integer | yes | 系统钩子的 ID |
请求示例:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks/1"
响应示例:
[
{
"id": 1,
"url": "https://gitlab.example.com/hook",
"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
}
]
添加一个新的系统钩子
添加一个新的系统钩子。
POST /hooks
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
url |
string | yes | 系统钩子的地址 |
name |
string | no | 勾子的名称(引入于极狐GitLab 17.1) |
description |
string | no | 勾子的描述(引入于极狐GitLab 17.1) |
token |
string | no | 用来验证接受数据的令牌,令牌不会响应中返回。 |
push_events |
boolean | no | 该值为真时,推送事件触发系统钩子。 |
tag_push_events |
boolean | no | 该值为真时,推送新标签事件触发系统钩子。 |
merge_requests_events |
boolean | no | 该值为真时,合并请求事件触发系统钩子。 |
repository_update_events |
boolean | no | 该值为真时,仓库更新事件触发系统钩子。 |
enable_ssl_verification |
boolean | no | 触发系统钩子时进行 SSL 验证。 |
push_events_branch_filter |
string | no | 仅为匹配的分支在推送事件上触发勾子 |
branch_filter_strategy |
string | no | 通过分支过滤推送事件。可能的值是 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",
"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
}
]
Update system hook
Update an existing system hook.
PUT /hooks/:hook_id
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
hook_id |
integer | Yes | 系统勾子的 ID |
url |
string | yes | 系统钩子的地址 |
token |
string | no | 用来验证接受数据的令牌,令牌不会响应中返回。 |
push_events |
boolean | no | 该值为真时,推送事件触发系统钩子。 |
tag_push_events |
boolean | no | 该值为真时,推送新标签事件触发系统钩子。 |
merge_requests_events |
boolean | no | 该值为真时,合并请求事件触发系统钩子。 |
repository_update_events |
boolean | no | 该值为真时,仓库更新事件触发系统钩子。 |
enable_ssl_verification |
boolean | no | 触发系统钩子时进行 SSL 验证。 |
push_events_branch_filter |
string | no | 仅为匹配的分支在推送事件上触发勾子 |
branch_filter_strategy |
string | no | 通过分支过滤推送事件。可能的值是 wildcard (默认)、regex 和 all_branches
|
测试系统钩子
使用模拟数据执行系统钩子。
POST /hooks/:id
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
integer | yes | 系统钩子的 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 | 删除系统钩子 |
请求示例:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks/2"
设置 URL 变量
- 引入于极狐GitLab 15.2。
PUT /hooks/:hook_id/url_variables/:key
支持的参数:
属性 | 类型 | 是否必需 | 描述 |
---|---|---|---|
hook_id |
integer | Yes | 系统勾子的 ID。 |
key |
string | Yes | URL 变量的键。 |
value |
string | Yes | URL 变量的值。 |
如若成功,则此端点返回响应代码 204 No Content
。
删除 URL 变量
- 引入于极狐GitLab 15.2。
DELETE /hooks/:hook_id/url_variables/:key
支持的参数:
Attribute | Type | Required | Description |
---|---|---|---|
hook_id |
integer | Yes | 系统勾子的 ID。 |
key |
string | Yes | URL 变量的键。 |
如若成功,则此端点返回响应代码 204 No Content
。