- 流水线运行(Pipeline run):一次运行对应一条 Flashduty 变更,从开始运行到成功、失败或取消。
- 经典发布的阶段部署(Release deployment):一个 Release 在某个阶段(Stage)的一次部署对应一条变更,从部署开始到完成。
在 Flashduty On-call
- 进入 Flashduty 控制台,选择 集成中心 → 变更事件
- 选择 Azure DevOps,填写集成名称
- 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如
pipeline、project、environment)配置规则 - 点击 保存,复制生成的 推送地址
在 Azure DevOps 中配置
1
创建 Service Hooks 订阅
- 进入项目,打开 Project settings → Service hooks
- 点击 Create subscription,选择服务 Web Hooks,点击 Next
2
选择触发事件
按需为每个事件各创建一个订阅:
可以用 Filters 限定流水线、Release 定义或阶段。不要订阅 Build completed 和 Run stage state changed,Flashduty 会忽略它们。
3
填写推送地址
- URL:粘贴 Flashduty 集成的完整推送地址
- Basic authentication username / password:留空,Flashduty 通过推送地址中的
integration_key鉴权 - Resource details to send:选择 All。选择 Minimal 或 None 时推送内容缺少运行 ID、Release 和阶段名称,Flashduty 会返回 400
- Messages to send、Detailed messages to send:保持默认即可。Flashduty 用消息的 Text 作为变更描述,用 Markdown 消息中的链接作为 Release 事件的链接(Release 事件没有单独的链接字段);未发送对应格式时,描述或链接为空
- 点击 Test 验证,再点击 Finish
一条变更是什么
Azure DevOps 的运行 ID 只在组织内唯一。多个 Azure DevOps 组织请分别创建 Flashduty 集成。
状态映射
流水线运行(Run state changed)
发布阶段部署
无法识别的状态值会让推送返回 400(
unknown run state、unknown run result、unknown deployment status),原始状态保留在变更事件的 state 标签中。
以下推送返回成功但不生成变更:
- Build completed、Run stage state changed 以及其他事件类型
- Service Hooks 的 Test 推送
变更内容
标签可用于路由和在变更列表中筛选:
流水线运行的事件不包含项目名称,因此没有
project 标签。
常见问题
重复推送会重复记录吗?
重复推送会重复记录吗?
不会。Azure DevOps 重试推送时内容与原推送相同,Flashduty 只记录一次。
为什么 Build completed 没有生成变更?
为什么 Build completed 没有生成变更?
Flashduty 只记录 Pipelines 的运行状态事件(Run state changed)和 Release 的部署事件。经典(Classic)构建流水线不发送 Run state changed,如需记录请改用 YAML 流水线。
同一个 Release 重新部署到同一阶段,为什么没有新的变更?
同一个 Release 重新部署到同一阶段,为什么没有新的变更?
Release 部署事件不带部署 ID,Flashduty 用 Release ID 和阶段 ID 标识一次部署,重新部署会更新同一条变更。
推送返回 InvalidParameter 错误?
推送返回 InvalidParameter 错误?
resource.run.id is missing、resource.release.id is missing、resource.environment.name is missing、resource.environment.definitionEnvironmentId is missing(完成事件为resource.deployment.environment.id is missing、resource.deployment.environment.name is missing):Resource details to send 没有选择 All,或推送不是来自 Azure DevOps Service Hooksunknown run state、unknown run result、unknown deployment status:出现了 Flashduty 尚未识别的状态值invalid createdDate:推送中的时间字段格式不正确