Skip to main content
版本要求:此功能需要 On-call 标准版及以上订阅。了解更多
通过 GitHub 仓库或组织的 Webhook,将部署(Deployment)和发布(Release)同步到 Flashduty On-call。每一次部署、每一个 Release 对应一条 Flashduty 变更;部署从创建、排队、执行到成功或失败的每个状态,都会更新同一条变更。 GitHub Actions 中声明了 environment 的任务会自动创建 Deployment,因此使用 Actions 发布的仓库无需改动流水线即可接入。

在 Flashduty On-call


  1. 进入 Flashduty 控制台,选择 集成中心 → 变更事件
  2. 选择 GitHub,填写集成名称
  3. 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如 repo、environment)配置规则
  4. 点击 保存,复制生成的 推送地址

在 GitHub 中配置


1

打开 Webhook 设置

  • 仓库级:进入仓库 Settings → Webhooks,点击 Add webhook
  • 组织级:进入组织 Settings → Webhooks,点击 Add webhook,组织下所有仓库的事件都会推送
需要仓库或组织的管理员权限。
2

填写推送地址

  1. Payload URL:粘贴 Flashduty 集成的完整推送地址
  2. Content type:选择 application/json(选择 application/x-www-form-urlencoded 同样可以接收)
  3. Secret:留空即可,Flashduty 通过推送地址中的 integration_key 鉴权
3

选择事件

  1. 选择 Let me select individual events
  2. 勾选 Deployments、Deployment statuses 和 Releases,取消默认勾选的 Pushes
  3. 保持 Active 勾选,点击 Add webhook
保存后 GitHub 会发送一次 ping,Flashduty 返回成功但不会生成变更。

一条变更是什么


状态映射


Done、Failed 和 Canceled 是结束状态,Flashduty 会记录变更结束时间。 以下推送返回成功但不生成变更:ping、未列出的其他事件类型、Release 的 created、edited、released、prereleased 动作(发布时 GitHub 会同时发送 published,以 published 为准)、部署状态 inactive(旧部署被新部署取代,不改变旧部署已有的结果)。

变更内容


标签可用于路由和在变更列表中筛选:

常见问题


  • 确认 Webhook 勾选了 Deployments 和 Deployment statuses。只勾选 Pushes 时不会产生变更
  • 在 GitHub Webhook 页面的 Recent Deliveries 查看推送记录和 Flashduty 的响应
  • 只有使用 GitHub Deployments 的发布才会产生部署事件,例如在 GitHub Actions 任务中声明 environment,或调用 Deployments API
不会。同一状态、同一时间的事件只记录一次。
  • unsupported deployment_status.state:收到了 Flashduty 尚未支持的部署状态,请联系我们
  • deployment.id is missing 或 release.id is missing:推送内容不完整,请确认推送来自 GitHub 原生 Webhook