设置通用Webhook订阅
|
分类 |
事件类型 |
|---|---|
|
原始需求 |
新建/提交 |
|
编辑 |
|
|
删除 |
|
|
变更 |
|
|
状态更新 |
|
|
催单 |
|
|
评论 |
|
|
系统特性 |
新建 |
|
编辑 |
|
|
删除 |
|
|
变更 |
|
|
基线/取消基线 |
|
|
状态更新 |
|
|
催单 |
|
|
评论 |
|
|
研发需求 |
新建 |
|
编辑 |
|
|
删除 |
|
|
变更 |
|
|
基线/取消基线 |
|
|
迁移 |
|
|
评论 |
|
|
催单 |
|
|
状态更新 |
|
|
任务 |
新建 |
|
编辑 |
|
|
删除任务 |
|
|
评论 |
|
|
催单 |
|
|
状态更新 |
|
|
缺陷 |
新建/提交 |
|
编辑 |
|
|
删除 |
|
|
迁移 |
|
|
状态更新 |
|
|
催单 |
|
|
评论 |
|
|
评审单 |
提交 |
|
转他人处理 |
|
|
撤销/驳回 |
|
|
变更对象评审完成 |
|
|
变更对象决策完成 |
|
|
评审/决策阶段完成 |
|
|
删除 |
|
|
评论 |
|
分类 |
事件类型 |
|---|---|
|
仓库 |
容量预警 |
|
删除仓库 |
|
|
合并请求 |
开启合并请求 |
|
更新合并请求 |
|
|
合并合并请求 |
|
|
检视合并请求 |
|
|
审核合并请求 |
|
|
新建评审意见 |
|
|
解决评审意见 |
|
分类 |
事件类型 |
|---|---|
|
流水线 |
已完成 |
|
失败 |
|
|
暂停 |
|
|
挂起 |
|
|
忽略 |
|
分类 |
事件类型 |
|---|---|
|
代码检查任务 |
检查完成
|
|
分类 |
事件类型 |
|---|---|
|
编译构建任务 |
任务构建成功 |
|
任务构建失败 |
|
|
任务被禁用 |
|
|
任务被删除 |
|
|
任务配置被更新 |
|
分类 |
事件类型 |
|---|---|
|
应用 |
应用部署成功 |
|
应用部署失败 |
|
|
应用部署中止 |
约束与限制
- 仅“亚太-新加坡”区域支持本功能。
- 仅IPD类项目支持本功能。
前提条件
已新建CodeArts项目,在项目中的角色为“项目管理员”或“项目经理”。
新建Webhook订阅
- 进入CodeArts首页。
- 登录CodeArts控制台,单击
,根据需要选择已开通CodeArts的区域。 - 单击“前往工作台”。
如果当前账号采用的是历史计费模式(详情请参考历史计费模式说明),则单击“立即使用”。
- 登录CodeArts控制台,单击
- 单击目标项目名称,进入项目。
- 在导航中依次单击“设置 > 通用设置 > 通知设置”,进入通知设置页面。
- 选择“通用Webhook”页签。
- 选择需要配置通知的服务,单击“新建Webhook订阅”。
- 根据实际需要完成参数配置,单击“确定”。
操作成功后,页面中显示新建的Webhook订阅记录。
图1 新建webhook(以流水线服务为例)
表7 新建Webhook订阅 参数
说明
订阅事件名称
通用Webhook的名称。
URL
HTTP Server的接收请求的URL地址,当前只支持使用POST方式接收。
事件类型
触发通用Webhook通知的事件类型,支持的事件类型参考操作场景。
HTTP请求头
通用Webhook通知的HTTP请求头。此参数为可选参数。
HTTP请求头是HTTP协议中定义的一种规范。
服务在对应的事件发生时,会调用用户配置的URL。调用URL时,有可能会需要同时携带HTTP请求头(例如用来鉴权)。
HTTP请求头的格式一般为“key: value”,例如:Content-Type: application/json。
一次请求可以发送多个请求头,当发送多个请求头时,通过换行分隔,每一行代表一个请求头。
单个请求头最大长度100,最多可输入20个请求头。
了解更多HTTP请求头相关知识,请参考HTTP官网文档。
自定义模板
通过自定义模板设置请求Body,可使用“${}”动态定义参数(例如“${eventName}”表示事件名),可支持参数请参考事件数据结构说明。
事件数据结构说明
- 需求管理:
表8 需求管理服务动态定义参数表 动态参数
说明
${project.id}
项目ID
${project.url}
项目url
${issue.id}
工作项ID
${issue.title}
工作项名称
${issue.url}
工作项URL
${operator.username}
操作用户名
${operator.id}
操作人ID
${review.id}
评审单ID
${review.title}
评审单标题
${review.url}
评审单URL
${operation}
事件名称
${event.id}
事件ID
${event.time}
事件时间
- 代码托管
- 仓库
订阅事件
事件名
事件编码
删除仓库
删除仓库
CodeArtsRepo-Repository-Delete
容量预警
容量预警
CodeArtsRepo-Repository-CapacityWarning
{ "eventCode": "", // 事件编码 "eventName": "", // 事件名 "project": { "id": "", //项目 ID "url": "" // 项目 URL }, "repo": { "id": 0, // 仓库ID "webUrl": "", // 仓库访问地址 "httpUrl": "", // 仓库http地址 "sshUrl": "", // 仓库ssh地址 "name": "", // 仓库名称 "groupName": "" // 组织名 } "operator": { "id": 0, // 操作人用户ID "nickName": "", // 操作人用户昵称 "name": "", // 操作人用户名 "username": "", // 操作人用户IAM ID "tenantName":"" // 操作人租户名 } } - 合并请求
订阅事件
事件名
事件编码
开启合并请求
开启合并请求
CodeArtsRepo-MergeRequest-Create
更新合并请求
更新合并请求
CodeArtsRepo-MergeRequest-Update
合并合并请求
合并合并请求
CodeArtsRepo-MergeRequest-Merge
检视合并请求
合并请求检视通过
CodeArtsRepo-MergeRequest-ReviewPass
合并请求检视撤销
CodeArtsRepo-MergeRequest-ReviewRevoke
审核合并请求
合并请求审核拒绝
CodeArtsRepo-MergeRequest-ApprovalReject
合并请求审核通过
CodeArtsRepo-MergeRequest-ApprovalPass
合并请求审核撤销
CodeArtsRepo-MergeRequest-ApprovalRevoke
新建评审意见
新建评审意见
CodeArtsRepo-MergeRequest-CreateComment
解决评审意见
解决评审意见
CodeArtsRepo-MergeRequest-Resolve
{ "eventCode": "", // 事件 ID "eventName": "", // 事件名 "project": { "id": "", //项目 ID "url": "" // 项目 URL }, "repo": { "id": 0, // 仓库 ID "webUrl": "", // 仓库访问地址 "httpUrl": "", // 仓库http地址 "sshUrl": "", // 仓库ssh地址 "name": "", // 仓库名称 "groupName": "" // 组织名 } "operator": { "id": 0, // 操作人用户ID "nickName": "", // 操作人用户昵称 "name": "", // 操作人用户名 "username": "", // 操作人用户IAM ID "tenantName":"" // 操作人租户名 }, "mergeRequest": { "id": 0, // 合并请求ID "iid": 0, // 合并请求序列ID "url":"", // 合并请求访问地址 "createdAt": "", // 合并请求创建时间 "updatedAt": "",// 合并请求更新时间 "title": "", // 合并请求标题 "description": "", // 合并请求描述 "sourceBranch": "", // 合并请求源分支 "targetBranch": "", // 合并请求目标分支 "state": "",// 合并请求状态:opened、closed、merged、locked "author": { "id": 0, // 合并请求创建人用户ID "nickName": "", // 合并请求创建人用户昵称 "name": "", // 合并请求创建人用户名 "username": "" // 合并请求创建人用户IAM ID "tenantName":"" // 合并请求创建人租户名 } }, "mergeRequestReview": { "id": 0, // 评审意见 ID "body": "", // 评审意见内容 "url": "", // 评审意见访问地址 "author": { "id": 0, // 评审意见创建人用户ID "nickName": "", // 评审意见创建人用户昵称 "name": "", // 评审意见创建人用户名 "username": "" // 评审意见创建人用户IAM ID "tenantName":"" // 评审意见创建人租户名 }, "createdAt": "", // 评审意见创建时间 "updatedAt": "",// 评审意见更新时间 } }
- 仓库
- 代码检查
{ "eventName": "检查完成", //事件名 "eventCode": "taskExecuteCompleted", //事件编码 "project": { "id": "", //项目 ID "url": "" // 代码检查项目地址 }, "task" : { "id": "", // 任务 ID "name": "", // 任务名称 "gitUrl": "", // 仓库地址 "creator": "" // 任务创建人 }, "job": { "id": "", // 执行 ID "startTime": "", // 任务执行开始时间 "finishTime": "", // 任务执行结束时间 "status": "", // 任务状态(成功、失败、终止) "gateResult": "", // 门禁结果(通过、不通过) "executor": "", // 执行人 "url": "" // 执行记录跳转地址 }, "issues": { "critical": "", // 致命问题数 "major": "", // 严重问题数 "minor": "", // 一般问题数 "suggestion": "" // 提示问题数 } } - 编译构建
表9 编译构建服务动态定义参数表 动态参数
说明
${BUILD.TITLE}
标题,如“编译构建通知”。
${BUILD.URL}
构建任务链接。
${BUILD.EVENT}
任务事件,如“编辑了构建任务”。
${BUILD.EXECUTOR_NAME}
事件执行人,如“路人甲”。
${BUILD.EXECUTOR_ID}
事件执行人ID,如“路人甲的ID”。
${BUILD.EXECUTE_TIME}
事件执行时间,如“2025-02-06 11:11:11”。
${BUILD.TASK_NAME}
构建任务名,如“测试构建任务1”。
${BUILD.PROJECT_NAME}
构建任务所在项目名,如“测试项目1”。
${BUILD.PROJECT_ID}
构建任务所在项目的ID,如“测试项目1的ID”。
- 部署
事件名
事件编码
应用部署成功
success
应用部署失败
failure
应用部署中止
stop
{ "eventName": "应用部署成功", //事件名 "eventCode": "success", //事件编码 "taskName": "", //应用名称 "projectName": "", //项目名称 "result": "", //执行结果 "sort": "", //执行序号 "startUser": "", //执行人 "startTime": "", //执行时间 "link":""//部署详情链接 } - 流水线
流水线服务参数的调用方式为“${pipeline.参数名}”,例如:调用流水线ID“${pipeline.pipeline_id}”。
流水线服务提供的可调用参数如下。{ "pipeline": { "pipeline_id": "", //流水线ID "run_number": "", //流水线执行编号 "project_id": "", //流水线所属项目ID "run_id": "", //流水线执行ID "timestamp": "", //流水线执行时间戳 "trigger_type": "", //流水线触发类型 "name": "" //流水线名称 } }