Projects / feishu-notify-action
CASE 04 / ACTION
feishu-notify-action
飞书 PR / 评审通知 GitHub Action
- 角色
- 独立设计与实现
- 时间
- 2026
- 状态
- 已发布
Context
PR 与 review_requested 若只留在 GitHub 通知里,国内团队协作常希望同步到飞书群,并准确 @ 到评审人。
Role & Scope
独立实现 Action:action.yml + 组装/校验/发送分层;ncc 打包 dist/index.js。
Approach
- 两种模式:普通事件用 title/message/link;
review_requested强制走模板变量,避免半套逻辑。 - Fail-loud:zod 校验输入、事件与出站 payload;映射缺失即失败,不静默降级 @。
- 图片路径显式化:有飞书应用凭证则上传 inline;私有
user-attachments需github-token解析签名 URL。
Implementation
index.js 读输入 → 校验 → 组装 → 发送
src/validate/ zod schemas
src/assemble/ 模板 · review_requested 卡片 · img 解析
src/tool/ 飞书 webhook/签名/图床 · GitHub 私有图 · YAML map
Node 20 运行时;node --test 单测。
Outcome
- Workflow 一行
uses: z-ph/feishu-notify-action@v1可接入。 - 行为对运维友好:配置错误在 CI 日志里以
::error::暴露。
Learnings
对接群机器人时,错误可见性比「尽量发送成功」更重要——静默吞掉错误会变成线上幽灵故障。