# 项目回调钩子
如果使用 project_full_path,确保 project_full_path 编码过,例子:/api/v3/projects/tencent/code--> /api/v3/projects/tencent%2Fcode (/ 编码 %2F)
# 新增项目回调钩子
POST /api/v3/svn/projects/:id/hooks
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| path | string | 目录路径 如:/tags |
| url | string | 回调钩子 地址 |
| svn_pre_commit_events | boolean | 提交时,这个钩子将被触发,根据返回值决定是否提交成功。默认 false |
| svn_post_commit_events | boolean | 提交完成后,触发回调钩子。默认false |
| svn_pre_shelve_events | boolean | shelve时,这个钩子将被触发,根据返回值决定是否shelve成功。默认 false |
| svn_post_shelve_events | boolean | shelve完成后,触发回调钩子。默认false |
| svn_pre_lock_events | boolean | 锁定文件或解锁前,这个钩子将被触发,根据返回值决定是否操作成功。默认 false |
| svn_post_lock_events | boolean | 锁定文件或解锁后,这个钩子将被触发。默认 false |
| url_mask_variables | array of hash (可选) | 用于隐藏对外展示的 URL 例如:url_mask_variables: [{variable: "123456", mask:"token"} ] variable 需要隐藏的字符,mask 隐藏后对外显示的字符 |
返回值:
{
"id": 2248062,
"url": "http://www.qq.com",
"created_at": "2023-04-20T07:04:28+0000",
"project_id": 11242475,
"svn_post_commit_events": false,
"svn_pre_commit_events": false,
"svn_post_shelve_events": false,
"svn_pre_shelve_events": false,
"svn_pre_lock_events": true,
"svn_post_lock_events": true,
"active": true,
"path": "/tags"
}
# 编辑项目回调钩子
PUT /api/v3/svn/projects/:id/hooks/:hooks_id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| hooks_id | integer | 回调钩子 id |
| path | string | 目录路径 如:/tags |
| url | string | 回调钩子 地址 |
| svn_pre_commit_events | boolean | 提交时,这个钩子将被触发,根据返回值决定是否提交成功。默认 false |
| svn_post_commit_events | boolean | 提交完成后,触发回调钩子。默认false |
| svn_pre_shelve_events | boolean | shelve时,这个钩子将被触发,根据返回值决定是否shelve成功。默认 false |
| svn_post_shelve_events | boolean | shelve完成后,触发回调钩子。默认false |
| svn_pre_lock_events | boolean | 锁定文件或解锁前,这个钩子将被触发,根据返回值决定是否操作成功。默认 false |
| svn_post_lock_events | boolean | 锁定文件或解锁后,这个钩子将被触发。默认 false |
| url_mask_variables | array of hash (可选) | 用于隐藏对外展示的 URL 例如:url_mask_variables: [{variable: "123456", mask:"token"} ] variable 需要隐藏的字符,mask 隐藏后对外显示的字符 |
返回值:
{
"id": 2248062,
"url": "http://www.qq.com",
"created_at": "2023-04-20T07:04:28+0000",
"project_id": 11242475,
"svn_post_commit_events": false,
"svn_pre_commit_events": false,
"svn_post_shelve_events": false,
"svn_pre_shelve_events": false,
"svn_pre_lock_events": true,
"svn_post_lock_events": true,
"active": true,
"path": "/tags"
}
# 查询项目回调钩子列表
GET /api/v3/svn/projects/:id/hooks
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
返回值:
[
{
"id": 2242103,
"url": "http://www.hooks.com",
"created_at": "2023-04-18T07:00:54+0000",
"project_id": 11242475,
"svn_post_commit_events": true,
"svn_pre_commit_events": true,
"svn_post_shelve_events": false,
"svn_pre_shelve_events": false,
"svn_pre_lock_events": true,
"svn_post_lock_events": true,
"active": true,
"path": "/document"
},
{
"id": 2248061,
"url": "http://www.qq.com",
"created_at": "2023-04-20T07:02:34+0000",
"project_id": 11242475,
"svn_post_commit_events": false,
"svn_pre_commit_events": false,
"svn_post_shelve_events": false,
"svn_pre_shelve_events": false,
"lock_events": true,
"active": true,
"path": "/tags"
}
]
# 查询项目单个回调钩子
GET /api/v3/svn/projects/:id/hooks/:hooks_id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| hooks_id | integer | 回调钩子 id |
返回值:
{
"id": 2248060,
"url": "http://www.qq.com",
"created_at": "2023-04-20T07:02:17+0000",
"project_id": 11242475,
"svn_post_commit_events": false,
"svn_pre_commit_events": false,
"svn_post_shelve_events": false,
"svn_pre_shelve_events": false,
"active": true,
"path": "/tags"
}
# 删除项目回调钩子
DELETE /api/v3/svn/projects/:id/hooks/:hooks_id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| hooks_id | integer | 回调钩子 id |
返回值:
200或相关状态码
# 回调钩子发送历史
# 查询项目回调钩子发送历史列表
在项目中查询某个指定的回调钩子发送历史列表
GET /api/v3/svn/projects/:id/hooks/:hook_id/logs
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| hook_id | integer | 回调钩子 id |
| response_status | string(可选) | 响应状态,可选success, error(默认全选) |
| created_after | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之后新增的发送历史;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
| created_before | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之前新增的发送历史;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
| order_by | integer(可选) | 排序字段:created_at |
| sort | string(可选) | 排序方式,允许asc,desc(默认desc) |
| page | integer(可选) | 页数(默认值:1) |
| per_page | integer(可选) | 默认页面大小(默认值:20,最大值:100) |
返回值:
[
{
"id": 2985997991,
"project_id": 11242475,
"web_hook_id": 2357118,
"url": "https://www.xxx.com",
"trigger": "System Hook",
"request_headers": "{\"X-Gitlab-Event\":\"System Hook\",\"X-Event\":\"System Hook\",\"X-Token\":null,\"X-Send-Timestamp\":\"1691494410329\",\"X-TRACE-ID\":\"c4209016da-332ef571513e4e76a3889167e0456433\",\"X-Gitlab-Token\":null}",
"request_data": "{\"project_id\":11242475,\"visibility_level\":0,\"project_visibility\":\"private\",\"created_at\":\"2023-04-17T02:38:40+0000\",\"updated_at\":\"2023-08-01T06:41:11+0000\",\"event_name\":\"project_update\",\"name\":\"svn0417\",\"path\":\"svn0417\",\"path_with_namespace\":\"svngroup/svn0417\"}",
"response_headers": null,
"response_body": null,
"response_status": "error",
"execution_duration": 11010.0,
"internal_error_message": "I/O error on POST request for \"https://www.xxx.com\": connect timed out; nested exception is java.net.SocketTimeoutException: connect timed out",
"created_at": "2023-08-08T11:33:41+0000",
"updated_at": "2023-08-08T11:33:41+0000"
}
]
# 查询项目回调钩子中指定的发送历史
在项目中查询某个回调钩子中指定的发送历史
GET /api/v3/svn/projects/:id/hooks/:hook_id/logs/:hook_log_id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| hook_id | integer | 回调钩子 id |
| hook_log_id | integer | 回调钩子发送历史的 id |
返回值:
{
"id": 2985997991,
"project_id": 11242475,
"web_hook_id": 2357118,
"url": "https://www.xxx.com",
"trigger": "System Hook",
"request_headers": "{\"X-Gitlab-Event\":\"System Hook\",\"X-Event\":\"System Hook\",\"X-Token\":null,\"X-Send-Timestamp\":\"1691494410329\",\"X-TRACE-ID\":\"c4209016da-332ef571513e4e76a3889167e0456433\",\"X-Gitlab-Token\":null}",
"request_data": "{\"project_id\":11242475,\"visibility_level\":0,\"project_visibility\":\"private\",\"created_at\":\"2023-04-17T02:38:40+0000\",\"updated_at\":\"2023-08-01T06:41:11+0000\",\"event_name\":\"project_update\",\"name\":\"svn0417\",\"path\":\"svn0417\",\"path_with_namespace\":\"svngroup/svn0417\"}",
"response_headers": null,
"response_body": null,
"response_status": "error",
"execution_duration": 11010.0,
"internal_error_message": "I/O error on POST request for \"https://www.xxx.com\": connect timed out; nested exception is java.net.SocketTimeoutException: connect timed out",
"created_at": "2023-08-08T11:33:41+0000",
"updated_at": "2023-08-08T11:33:41+0000"
}
# 重放项目回调钩子中指定的发送历史
在项目中重放某个回调钩子中指定的发送历史
POST /api/v3/svn/projects/:id/hooks/:hook_id/logs/:hook_log_id/retry
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| hook_id | integer | 回调钩子 id |
| hook_log_id | integer | 回调钩子发送历史的 id |
返回值:
200 或相关状态码
# 激活回调钩子
# 激活项目回调钩子
在项目中激活某个回调钩子
POST /api/v3/svn/projects/:id/hooks/:hook_id/activate
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| hook_id | integer | 回调钩子 id |
返回值:
true 或 false