status.name)更新。适合用 Jira Issue 管理变更单、发布单的团队。
本集成适用于 Jira Cloud 和 Jira Data Center / Server。
本页把 Jira Issue 作为变更事件接入。如需在 Flashduty 故障发生时自动创建 Jira Issue 并双向同步状态,请使用 Jira 同步。
在 Flashduty On-call
- 进入 Flashduty 控制台,选择 集成中心 → 变更事件
- 选择 Jira,填写集成名称
- 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如
project)配置规则 - 点击 保存,复制生成的 推送地址
在 Jira 中配置
1
确认权限与网络
- 创建 Webhook 需要 Jira 管理员权限(Jira Cloud 为站点管理员,Data Center / Server 为 Jira 系统管理员)
- Jira Data Center / Server 需要能访问推送地址所在的域名(
api.flashcat.cloud)
2
创建 Webhook
- Jira Cloud:进入 设置(齿轮图标)→ 系统 → WebHooks;Data Center / Server:进入 管理 → 系统 → WebHooks
- 点击 创建 WebHook,URL 填写 Flashduty 集成的完整推送地址
- 事件 中勾选 Issue 的 已创建(created)、已更新(updated)、已删除(deleted)
- 可在 JQL 中限定范围,例如
project = OPS AND issuetype = Change,只同步变更单 - 不要勾选 排除正文(Exclude body),Flashduty 需要读取推送内容
- 点击 创建 保存
integration_key 鉴权,Webhook 的密钥(Secret)不会被校验,留空即可。3
验证
在 JQL 范围内新建一个 Issue,或修改已有 Issue 的状态,即可在 Flashduty 变更列表中看到对应的变更。
一条变更是什么
Issue 已更新推送不区分更新类型(
issue_event_type_name):状态流转、解决(Resolve)、重新打开(Reopen)、分配、评论等推送都按推送中 Issue 的当前状态更新同一条变更。
以下推送返回成功但不生成变更:Issue 的创建、更新、删除之外的事件,例如评论、工作日志、Sprint、版本、项目事件。
状态映射
Flashduty 读取推送中 Issue 的
status.name,不区分大小写,按下表转换:
状态名称不在上表中时(例如自定义的
Waiting for Approval,或中文状态名),推送返回 InvalidParameter,该 Issue 的这次推送不会生成或更新变更。如您的工作流使用其他状态名称,请联系我们为集成配置自定义映射。
Issue 被删除时,Flashduty 按推送中 Issue 删除前的状态更新变更,不会自动将变更置为已取消。
变更内容
标题和描述取自这条变更的第一次推送,之后不再更新;状态和标签随之后的推送更新,事件时间早于已记录推送的推送(延迟或重发)不会覆盖它们。
标签可用于路由和在变更列表中筛选:
常见问题
修改 Issue 状态后没有看到变更更新?
修改 Issue 状态后没有看到变更更新?
- 确认 Issue 在 Webhook 的 JQL 范围内,且 Webhook 勾选了 已更新 事件
- 确认新状态名称在状态映射表中。状态名称不在表中时推送返回
InvalidParameter,可在 Jira Webhook 的投递记录中看到该错误 - 确认 Webhook 没有勾选 排除正文
推送返回 InvalidParameter 错误?
推送返回 InvalidParameter 错误?
issue status "<名称>" is not mapped to a change status:Issue 的状态名称不在映射表中,请联系我们配置自定义映射issue is empty/issue.key is empty/issue.fields is empty/issue.fields.status is empty:推送内容不完整,请确认推送来自 Jira 原生 Webhook,且未勾选排除正文request payload is empty或 JSON 解析错误:推送内容为空或不是合法 JSON
评论 Issue 会生成变更吗?
评论 Issue 会生成变更吗?
单独订阅的评论事件(comment created 等)不生成变更。Jira 在 Issue 被评论时也会发送一条 Issue 已更新推送,这条推送会刷新变更的状态和标签,不会新建变更。