在 Flashduty On-call
- 进入 Flashduty 控制台,选择 集成中心 → 变更事件
- 选择 Expo EAS,填写集成名称
- 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如
project、platform、kind)配置规则 - 点击 保存,复制生成的 推送地址
在 Expo EAS 中配置
1
为构建创建 Webhook
在项目目录下运行(需已安装并登录 EAS CLI):命令会提示输入签名密钥(Secret),至少 16 个字符。Flashduty 通过推送地址中的集成 key 鉴权,不校验
expo-signature,密钥可填任意满足长度的值。推送地址把集成 key 放在路径里(.../event/push/change/expo-eas/<integration_key>),而不是 ?integration_key= 查询参数,因为 EAS 投递时会丢弃 Webhook 地址中的查询参数。请原样粘贴 Flashduty 显示的推送地址。2
为提交创建 Webhook
如需同步 EAS Submit 的结果,再运行一次,事件类型改为 两种事件使用同一个推送地址,Flashduty 根据推送内容区分构建和提交。
SUBMIT:3
验证
Webhook 按项目配置,需要在每个要同步的项目中分别创建,可用
eas webhook:list 查看。EAS 没有测试推送:运行一次 eas build 或 eas submit,结束后即可在 Flashduty 变更列表中看到记录。一条变更是什么
状态映射
EAS 文档只列出这三种结束状态。出现其他状态值时推送返回 InvalidParameter,不生成变更。
变更内容
标签可用于路由和在变更列表中筛选:
常见问题
为什么看不到构建的运行中状态?
为什么看不到构建的运行中状态?
EAS Webhook 只在构建或提交结束时推送,不推送排队和运行中的状态。变更在结束时以最终状态出现。
EAS 重试推送会重复记录吗?
EAS 重试推送会重复记录吗?
不会。EAS 收到 200–399 以外的响应后会按退避策略重试,重试内容相同,Flashduty 以结束时间去重,只记录一次。
需要校验 expo-signature 吗?
需要校验 expo-signature 吗?
不需要。Flashduty 通过推送地址路径中的集成 key 鉴权,不校验
expo-signature。创建 Webhook 时 EAS 要求填写至少 16 个字符的密钥,填任意值即可。推送返回 InvalidParameter 错误?
推送返回 InvalidParameter 错误?
id is missing:推送内容不完整,请确认推送来自 EAS Webhookunknown status:出现了未收录的状态值,请联系我们补充映射delivery is neither a build nor a submission:推送中既没有构建页面地址(buildDetailsPageUrl)也没有提交页面地址(submissionDetailsPageUrl)invalid completedAt或invalid updatedAt:推送中的时间字段格式不正确