Skip to main content
版本要求:此功能需要 On-call 标准版及以上订阅。了解更多
通过 GrowthBook 的 Event Webhook,将 Feature(功能开关)的修订(Revision)同步到 Flashduty On-call。GrowthBook 中对 Feature 的每次修改都会形成一个修订,Flashduty 中一个修订对应一条变更:从提交审核、通过审核,到发布、回滚或被丢弃,都记录在这一条变更上。

在 Flashduty On-call


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

在 GrowthBook 中配置


1

新建 Event Webhook

  1. 以管理员身份登录 GrowthBook,进入 Settings → Webhooks
  2. 点击 New Event Webhook,填写 Webhook Name(必填)
2

填写推送地址

  1. Payload Type:选择 JSON。Raw (Legacy) 是旧格式,不会推送修订事件
  2. Method:保持 POST
  3. Endpoint URL:粘贴 Flashduty 集成的完整推送地址
  4. Headers:无需填写,Flashduty 通过推送地址中的 integration_key 鉴权。GrowthBook 会在请求头 X-GrowthBook-Signature 中附带签名,Flashduty 不校验该签名
3

选择事件和范围

  1. Events:勾选以下事件,其余事件会被忽略
    • feature.revision.reviewRequested、feature.revision.changesRequested、feature.revision.approved
    • feature.revision.published、feature.revision.reverted
    • feature.revision.discarded、feature.revision.publishFailed
  2. Environments、Projects、Tags:不选表示全部,也可以只选生产环境等需要关注的范围
  3. 点击 Create
请逐个勾选,不要使用 feature.revision.* 通配符:GrowthBook 以后新增的修订事件会被 Flashduty 拒绝(见下文常见问题)。feature.updated 等 Feature 自身的事件订阅了也会被忽略。
需要所用的 GrowthBook 版本支持 feature.revision.* 事件。保存前可在创建窗口中点击 Test Connection:它发送不含 event 字段的请求体,Flashduty 返回 200 且不生成变更。当前版本中,已保存的 Webhook 没有 Test 按钮。之后在任一 Feature 上发布一次修订,即可在 Flashduty 变更列表中看到记录。

一条变更是什么


Feature ID 创建后不可修改,修订版本号在同一个 Feature 内递增。如果删除某个 Feature 后又用相同的 ID 重新创建,版本号会从头开始,新的修订会与旧 Feature 中版本号相同的变更合并。

状态映射


未开启审核流程时,发布只推送 published,变更从出现起就是 Done。 以下推送返回成功但不生成变更:
  • 不改变修订进展的修订事件:created、updated、rebased、commented、reopened、recalled、reviewRetracted、publishScheduleChanged
  • feature.created、feature.updated、feature.deleted 等 Feature 自身的事件、安全发布(Safe Rollout)、渐进发布(Ramp Schedule)、实验(Experiment)、分群等其他资源的事件
  • Test Connection 发出的测试请求,以及缺少 event 的推送
GrowthBook 后续新增的 feature.revision.* 事件,在加入上表之前会返回 InvalidParameter,不会生成变更。

变更内容


标签可用于路由和在变更列表中筛选: state、actor、event_type 会随每个事件更新,不要用它们做路由;请使用每个事件都有的 feature_id。项目、环境等范围因事件而异,Flashduty 不记录。

常见问题


不会。GrowthBook 在返回非 200 时最多推送 3 次。Flashduty 使用事件自身的时间(created)作为变更时间,同一事件重复推送只记录一次,迟到的旧状态也不会覆盖已经结束的变更。
只有开启了审核流程的 Feature 才会产生 reviewRequested 和 approved。直接发布的修订只有一个 published 事件。
  • data.object.featureId is missing、data.object.version is missing:推送内容不完整。请确认 Payload Type 选择了 JSON
  • created is missing or invalid:推送缺少事件时间
  • unknown revision event:GrowthBook 推送了尚未支持的修订事件,请只勾选上文列出的事件
  • 请求体不是 JSON:请确认 Payload Type 选择了 JSON