🚀 远程 MacOpenClaw 网关承接 CircleCI Webhook,在 workflow / job 完成后拉修订做 lockfile 漂移扫描构建摘要可推 Slack、Discord 或 VCS status;网关回环收口,避免管理面与密钥暴露公网。步骤见 docs.openclaw.ai。延伸阅读:GitHub Checks lockfile 扫描Jenkins Webhook 预检跨境 Git/npm CI 优化

前置条件(Node / openclaw CLI、令牌与最小权限)

环境与 CLINode 22.16+ 或 24 LTS;安装 openclaw 后跑 openclaw doctorPATH 与证书在 launchd 与登录 shell 一致。

令牌:Dashboard 令牌存本机(plist / Keychain / 0600);CircleCI Project API Token 或 OIDC 最小 scopeWebhook 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 revisionpipeline / workflow id,写入幂等键,防止重复 delivery。
  • 4. 将耗时扫描丢进队列或子进程,HTTP 层尽快返回 200,降低 CircleCI 侧重试压力。

OpenClaw 技能 / 脚本模板(解析 lockfile、生成摘要)

技能将验签后 JSON 交给 shell/Node:取修订 → 隔离目录 git fetch → 对 package-lock.jsongit diffnpm ci --dry-run;输出 Markdown/JSON 摘要并带 pipeline 链接。

# stdin 读 Webhook JSON → 检出修订 → diff lock REV=$(jq -r '.pipeline.vcs.revision // .revision // empty' </dev/stdin) git fetch --depth=1 origin "$REV" && git checkout -q FETCH_HEAD git diff --exit-code -- package-lock.json pnpm-lock.yaml 2>/dev/null || SUMMARY="lockfile_changed"

常见报错(签名 / 超时 / 权限)排查 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_BINARYNODE_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 指南;更多见 技术博客

CircleCI × OpenClaw 网关

远程 Mac 托管 Webhook 网关与 CI 同源出口

帮助中心(含 SSH 指南)选购节点 / 购买首页 均免登录;OpenClaw 专题见 技术博客

多地域可选
SSH 访问
弹性租期
支持渠道