网关职责、TLS 与健康探针
Jira 从 Atlassian 管理的出口访问你的 URL,应视为互联网入站:仅网关终止 TLS 并验头;MeshMac 构建机走内网队列,避免「每台 Mac 各登记一条 Webhook」。部署形态与扩容节奏见 多节点部署与配置同步。
- 步骤一 固定
OPENCLAW_CONFIG_ROOT,用 systemd 或同类监督常驻进程,避免 Xcode 升级滚动时网关静默退出。 - 步骤二 对外只发布例如
https://gateway.example/jira/openclaw;反代 body 大小、WebSocket 与长连接注意点见 Nginx/Caddy TLS 决策矩阵。 - 步骤三 健康探针不仅 ping 端口:应串联「进程存活 + 能连队列」;发布期配合 LB 摘流量,基线见 技能预热与健康探针。
- 步骤四 并发与限流按 网关限流与会话并发 调参,每条请求打
correlation_id、路由与入队耗时。
Jira Automation:发送 Web 请求逐步配置
在 项目设置 → Automation 新建规则,用 JQL 收窄(例如仅「待构建」列)。添加发送 Web 请求:POST,Content-Type: application/json,JSON 含 issue.key、稳定流转或标签元数据、可选操作者字段,便于网关审计是谁拖动了卡片。
- 自定义头 如
X-Meshmac-Jira-Token,值为离线生成的 32 字节以上随机串;轮换时复制规则做双读窗口。 - 门禁 要求特定标签或组件后才执行「发送 Web 请求」,避免无关工单误触发编译。
- 演练 用金丝雀工单流转一次,核对 Automation 审计与网关访问日志各出现单次 POST。
通用 Webhook 形态还可对照 OpenClaw 专栏 内其他集成文。
入站验签、幂等与多节点交接
先验签再解析业务。 期望值从磁盘以 0440 读取,常量时间比较,失败 401;细节见 密钥与最小权限。通过后再解析 JSON,必要时保留原始 body 字节供日后扩展签名。
- 规范化 为
issue_key、transition_id(或标签哈希)、repo_ref、请求者与idempotency_key;推荐issue + 规范化流转 + 5 分钟桶,抑制拖列抖动与 Jira 自动重试。 - 持久入队(Redis Stream、RabbitMQ 或 OpenClaw 任务,见 任务队列与重试)后再返回
200,避免「审计成功但未入队」的假阳性;顺序与多消费者见 队列同步指南。 - 工作节点 出队后写入
mesh_node_id,只向内网回报完成事件;仅网关持有出站 Jira REST 与聊天 Webhook。 - 快速忽略:JQL 过宽时记录后返回 200 空操作,保持 Automation 绿色但不污染队列。
网关高可用切换见 负载均衡与故障转移,DNS 漂移时不必改 Jira URL。
状态广播与失败摘要回传
成功路径应合并聊天时间线:同一 idempotency_key 窗口内「已排队→运行中→完成」去重。Teams、Google Chat、Slack 等仍只由网关持有 URL:Teams、Google Chat、Slack。
失败时网关调用 Jira REST 添加短评论:工单键、提交缩写、失败 target、日志末段(脱敏)、mesh_node_id;敏感信息只链到内部构建查看器。服务账号仅「浏览 + 评论」目标项目,禁用全局管理员令牌。出站凭据轮换节奏可与 频道告警与令牌轮换 对齐。
出站重试模板(Jira REST)
将下列结构并入网关 worker 或 OpenClaw 任务清单,按站点限流微调:指数退避 + 抖动、硬封顶、区分 429 与 401(凭证错误勿狂重试)。
jira_comment_retry:
max_attempts: 6
base_delay_ms: 400
max_delay_ms: 30000
jitter_ratio: 0.25
retry_on_status: [408, 409, 425, 429, 500, 502, 503, 504]
no_retry_on_status: [400, 401, 403, 404]
respect_retry_after: true
dedupe_key: "{{ issue_key }}:{{ idempotency_key }}:comment"
多令牌最小权限清单
- 入站头密钥:长随机、
0440、日志不全量打印,人员变动即轮换。 - Jira REST:Cloud API Token 配对专用邮箱,权限仅限目标项目浏览与评论。
- 聊天入站 Webhook:频道级 URL,避免不必要的用户 OAuth。
- 构建机:SSH/网格凭据不含 Jira 能力,降低镜像泄露半径。
FAQ
| 现象 | 要点 |
|---|---|
| 收不到事件 / 网关无日志 | 查规则启用、JQL、条件动作链;URL 子域拼写与公网 DNS;HTTPS 证书链;审计时间戳与网关日志对齐;用测试工单手工流转隔离 JQL 与网络。 |
| 边缘或网关 403 | WAF、地域、IP 白名单、CDN 丢自定义头、mTLS;curl 带同款头从跳板复现;若来自 Jira 侧 403,核对自动化角色仍可调外部 URL。 |
| 重复触发 / 双构建 | 收紧 JQL 与专用标签;幂等键含流转与短桶;debounce 描述类 issueUpdated;仅入队提交后 200;宽触发时映射层 200 空操作。 |
| staging 能评论、prod 401 | Cloud 站点与令牌邮箱必须同对;管理员吊销后重发;401 禁止 tight loop,先修凭据再重放。 |
下一步(公开页)
闭环跑通后,扩容优先加构建位与队列容量,而不是再加对外 Webhook。购买页、帮助中心、首页、OpenClaw 专栏均可免登录浏览。
加节点,不必改 Webhook
固定单网关与队列后,MeshMac 池化扩容只增消费者;选型请用购买页对比套餐,排障请查帮助中心与博客索引。