在 Flashduty On-call
- 进入 Flashduty 控制台,选择 集成中心 → 变更事件
- 选择 JFrog Artifactory,填写集成名称
- 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如
repo、path)配置规则 - 点击 保存,复制生成的 推送地址
在 JFrog Artifactory 中配置
1
新建 Webhook
- 登录 JFrog Platform,选择 All Projects 或某个项目
- 进入 Platform → Integrations → Webhooks,点击 New Webhook
- 保持 Predefined 开关选中(不要使用 Custom)
2
填写推送地址
- Name:例如
flashduty-changes - URL:粘贴 Flashduty 集成的完整推送地址
- Secret token:留空即可,Flashduty 通过推送地址中的
integration_key鉴权
3
选择事件和仓库
- 在事件列表中选择 Artifacts 下的 Artifact was deployed、Artifact was deleted、Artifact was moved 和 Artifact was copied
- 选择要监听的仓库:可选择全部本地仓库,也可以指定仓库或用包含/排除规则按路径筛选
- 点击 Test 检查连通性,再点击 Create
sample_checksum),Flashduty 返回成功但不会生成变更。一条变更是什么
JFrog 的推送内容里没有变更 ID,Flashduty 用制品所在位置加内容校验和标识一个制品:
对 moved 和 copied,
<仓库>/<路径> 是制品原来的位置,<目标> 是推送中的 target_repo_path。
状态映射
Artifactory 的制品事件都在操作完成后推送,因此每条变更收到第一个事件时就已结束。
以下推送返回成功但不生成变更:制品以外的事件域(Artifact Properties、Docker、Builds、Release Bundles 等)、
cached(远程仓库缓存了一个下载的制品,不是变更)、Test 按钮发送的示例数据。
变更内容
链接由推送中的
jpd_origin 生成;推送中没有该字段时变更没有链接。
标签可用于路由和在变更列表中筛选:
常见问题
为什么没有收到变更?
为什么没有收到变更?
- 确认 Webhook 是 Predefined 类型,并勾选了 Artifacts 下的事件
- 确认上传的仓库在 Webhook 选择的仓库范围内
- 在 Webhook 的 Troubleshooting 页查看推送记录和 Flashduty 的响应(JFrog Cloud 需要实例开启该功能)
重复上传同一个文件会怎样?
重复上传同一个文件会怎样?
把内容完全相同的文件再次上传到同一路径,会在原来那条变更上追加一个事件,不会生成新变更。内容不同则生成新变更。
Artifactory 重试推送会重复记录吗?
Artifactory 重试推送会重复记录吗?
会追加一个事件,但不会生成新变更。JFrog 的推送内容不带事件时间,Flashduty 以收到推送的时间记录每个事件,因此无法识别重试。
推送返回 InvalidParameter 错误?
推送返回 InvalidParameter 错误?
unsupported event_type:收到了 Flashduty 尚未支持的制品事件,请联系我们data.repo_key is missing、data.path is missing、data.sha256 is missing或data.target_repo_path is missing:推送内容不完整,请确认使用的是 Predefined Webhook,而不是自定义了推送内容的 Custom Webhook