# 项目回调钩子

如果使用 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
lastUpdate: 4/18/2025, 5:16:30 PM