前置条件(Node / openclaw CLI、令牌与最小权限)
环境与 CLI:Node 22.16+ 或 24 LTS;安装 openclaw 后跑 openclaw doctor,PATH 与证书在 launchd 与登录 shell 一致。
令牌:Dashboard 令牌存本机(plist / Keychain / 0600);CircleCI Project API Token 或 OIDC 最小 scope;Webhook Secret 与 token 不入库。
1)0.0.0.0 暴露管理面风险高。2)未过滤 workflow 在矩阵下重复投递耗资源。3)共用克隆目录时 node_modules 残留致 diff 失真。
决策矩阵:网关面 × CircleCI × 工作副本
| 维度 | 推荐(生产) | 避免 |
|---|---|---|
| 网关监听 | 127.0.0.1 + SSH -R / 边缘反代仅转发 Webhook 路径 |
Dashboard 与 handler 同口暴露在 WAN |
| CircleCI 身份 | Project API Token 最小 scope;优先机器用户 + 定期轮换 | 个人主账号全权限 token 写入 Runner 环境明文 |
| Webhook | 仅订阅 workflow-completed 等必要事件 + Secret 验签 |
全事件、关闭 TLS 校验、handler 同步跑重型 git |
| 工作副本 | 每 delivery 独立目录或 git worktree,--depth=1 拉修订 |
并行任务共享 WORK_DIR |
CircleCI Webhook 与校验配置步骤
CircleCI 项目设置新建 Outbound Webhook:URL 指隧道后的网关路径;保存 Secret;HMAC 算法与请求头以官方文档为准,用原始 body 字节验签。
- 1. 先用手动
curl向网关发送样例 payload,确认 2xx 与日志落盘。 - 2. 打开 Webhook 后仅勾选 workflow 完成或 job 完成,在代码里忽略
canceled/ 非目标分支。 - 3. 验签通过后解析 VCS revision、pipeline / workflow id,写入幂等键,防止重复 delivery。
- 4. 将耗时扫描丢进队列或子进程,HTTP 层尽快返回 200,降低 CircleCI 侧重试压力。
OpenClaw 技能 / 脚本模板(解析 lockfile、生成摘要)
技能将验签后 JSON 交给 shell/Node:取修订 → 隔离目录 git fetch → 对 package-lock.json 等 git diff 或 npm ci --dry-run;输出 Markdown/JSON 摘要并带 pipeline 链接。
常见报错(签名 / 超时 / 权限)排查 FAQ
签名或 Secret 校验总失败?
核对 CircleCI 控制台 Secret 与进程环境是否一致;反代是否改写了 JSON 空格或编码;是否在验签前就读取了 body 流导致后续解析为空。可先对样例 payload 做本地 HMAC 对照排除实现偏差。
delivery 超时或连续 5xx?
将克隆与 diff 移出请求热路径;缩小 --depth;为本机出口设合理超时与重试;观察 CircleCI Webhook 投递历史中的 latency。
Project API 403 / read-only?
确认 token 绑定在正确项目下、scope 含所需只读接口;组织是否限制第三方 token;必要时改用 OIDC 与最小角色绑定。
openclaw doctor 仍报 Node 或证书?
在 plist 写明 NODE_BINARY 与 NODE_EXTRA_CA_CERTS;对 circleci.com API 做 curl -v 复现 TLS。
与 CI 拉取场景的衔接
同机常兼跑 网关与 CircleCI Runner:Webhook 与主 Job 共享镜像/代理(跨境拉取优化),依赖缓存与网关克隆分根目录;并发见 构建池磁盘 FAQ。
- 网关 handler 建议 P99 响应 < 3s,重活异步化。
- lockfile 扫描目录与 Runner
working_directory禁止混用。 - 摘要 outbound 与 CircleCI API 调用应分令牌,缩小泄露面。
总结:回环网关安全接入自动化;CircleCI Webhook 验签可靠触发;隔离目录保证 lockfile 结论可审计。需常驻 Apple Silicon 托管网关与 Runner 可免登录看 购买/节点、定价、帮助中心 SSH 指南;更多见 技术博客。
远程 Mac 托管 Webhook 网关与 CI 同源出口
帮助中心(含 SSH 指南)、选购节点 / 购买、首页 均免登录;OpenClaw 专题见 技术博客。