产品简介
Service Hook 能够对服务、事件、过滤条件、发送行为等要素进行管理,具备多服务、多事件、条件过滤、发送配置等能力。它支持将您在 CODING 中操作所产生的事件,以标准 HTTP 协议发送给第三方平台,平台在接收到 HTTP 请求后进行响应以实现自定义功能需求。
服务类型
服务是指第三方应用服务,比如 HTTP Server、钉钉、飞书、Jenkins 等。CODING 目前主要支持的服务类型有:Web Hook、钉钉、飞书、Jenkins。点击阅读服务类型介绍了解更多详情。
CODING IP
如果您的服务器设置了防火墙,请放行 CODING IP:
212.129.144.0/24
212.64.105.0/24
49.234.127.0/24
49.235.224.0/24
49.234.65.0/24
81.69.101.0/24
# 如果使用了 LDAP,还需放行以下 IP 地址:
1.117.230.76
129.211.2.239
122.51.126.69
事件
事件是指用户在某一个功能产生的操作,事件将包括基本的事件数据。目前 CODING 支持事件的功能模块有:
- 迭代
- 事项
- 代码推送
- 合并请求
- 制品
- 制品仓库
- 持续集成
- 文件网盘
- Wiki
- 项目成员
点击阅读事件介绍了解更多详情。
过滤条件
过滤条件是指操作触发时产生的事件,是否在指定条件满足的情况下再发送。点击阅读过滤器了解更多详情。
发送行为
发送行为是指第三方应用服务支持的发送方式,比如支持发送到群聊机器人。Service Hook 支持分页列表、筛选、新建、编辑、测试、事件开关、发送记录、复制等操作。
快速开始
查看列表
Service Hook 列表支持分页查看,支持搜索过滤,可通过如下条件过滤列表:
- 服务
- 事件
- 状态
- 事件开关
批量操作
Service Hook 列表支持删除、启用/禁用等分页批量操作。
新建
点击新建 Service Hook按钮,将会弹出新建弹窗,按照提示进行操作。
编辑
选择需要编辑的 Service Hook 记录,点击服务列名称,将会弹出 Service Hook 编辑侧滑框。
支持自定义备注名,可以通过自定备注名展示每条 Service Hook 的用途等信息。
测试
在新增和编辑 Service Hook 的时候,填写好必要信息之后,点击测试按钮,可以发送一条测试消息到第三方平台。
事件开关
如某些场景下,暂时不需要开启 Service Hook,可以选择将某条 Service Hook 记录禁用,如下图操作即可。
发送记录
在事件被触发时,发送的消息记录将会被系统记录下来,可以通过查看发送记录了解发送的详情信息。选中某条记录,可以展开查看发送记录的详细信息。
复制
支持通过复制一条 Service Hook 记录创建新的 Service Hook,只需要选中需要复制的记录,点击复制按钮,新建弹窗将自动填充被复制的记录内容,按需修改内容即可保存为新的记录。
模板
Service Hook 支持使用模板自定义发送内容,主要支持文本、Markdown、自定义等三种方式,支持通过 JsonPath 的方式读取事件消息填充模板。
Markdown 模板
如下图,当用户选择文本或者 Markdown 时,输入自定义模板后,发送内容将以文本或者 Markdown 的格式发送,内容为填充模板后的内容。
以下为代码推送默认模板示例:
#### CODING Service Hook 事件消息
**项目标识**:[${project.name}](${project.url})
**项目名**:[${project.display_name}](${project.url})
**触发成员**:${sender.name}
**事件**:${eventName}
**事件内容**:
> 仓库:[${repository.name}](${repository.html_url})
推送者:${pusher.name}
分支:${ref}
Commit:${head_commit.id}
提交记录:${head_commit.message}
提交时间:${head_commit.timestamp}
代码推送默认模板示例配置:
代码推送默认模板示例发送消息结果:
模板函数
除支持模板外,还提供了一些简单的模板函数以方便处理数据输出。目前支持的模板函数如下:
- 日期格式化
// 示例:使用 org.apache.commons.lang3.time.FastDateFormat 支持的日期格式进行格式化日期输出
提交时间:${head_commit.timestamp|date:yyyy-MM-dd HH:mm:ss}
- 提取纯文本
// 示例:使用 jsoup 提供 HTML 中的纯文本
提交记录:${head_commit.message|text} \n\
自定义模板
除 Markdown 和文本类型外,任何符合第三方平台标准的消息 JSON 格式的模板,都可以通过填充 JSON 格式内容实现模板内容的自定义。下文将展示添加项目成员时的自定义图文消息示例。
通过 JsonPath 填充内容的 JSON 格式模板:
{
"msgtype": "news",
"news": {
"articles": [
{
"title": "欢迎使用 CODING",
"description": "欢迎项目成员 ${member.name} 加入 CODING",
"url": "www.qq.com",
"picurl": "https://help-assets.codehub.cn/enterprise/20210416165040.png"
}
]
}
}
配置自定义模板内容:
自定义模板消息发送结果:
其他信息
- 自定义 JSON 模板将无法支持 @ 某人、自定义签名等功能,如有需求,请在 JSON 模板中补充相关字段。
- 因官方对 Markdown 模板支持问题,暂时不支持 userid 和手机号的方式 @某人。
- 若团队成员绑定的 CODING 手机号与钉钉、飞书相同,那么在事项评论中进行 @ 操作时将支持 @ 成员。
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。