SuperAPI AI 工具集

openclaw-ghsa-maintainer

安全与审计

查看项目

更新于 10-16 09:35

技能介绍

用途:该技能仅用于 OpenClaw 仓库的 GHSA 安全公告工作流,处理公告的检查、修补、验证、发布或确认,以及其私有 fork 状态。正式与测试版发布工作应使用 openclaw-release-maintainer,不适用本技能。

主要能力与用法:

  1. 遵守公告护栏:审查或发布前先阅读 SECURITY.md;任何发布动作前需获得许可。
  2. 获取并检查公告状态与最新已发布 npm 版本: gh api /repos/openclaw/openclaw/security-advisories/<GHSA> npm view openclaw version --userconfig "$(mktemp)" 据此确认公告状态、关联私有 fork 和漏洞载荷结构。
  3. 发布前确认私有 fork 没有开启的 PR: fork=$(gh api /repos/openclaw/openclaw/security-advisories/<GHSA> | jq -r .private_fork.full_name) gh pr list -R "$fork" --state open PR 列表必须为空。
  4. 安全准备公告 Markdown 与 JSON:用 heredoc 写入临时文件,不要用转义 \n 字符串;用 jq 而非手工转义构建 PATCH 载荷。示例模式: cat > /tmp/ghsa.desc.md <<'EOF' <markdown description> EOF jq -n --rawfile desc /tmp/ghsa.desc.md '{summary,severity,description:$desc,vulnerabilities:[...]}' > /tmp/ghsa.patch.json
  5. 按正确顺序应用 PATCH:不要在同一个 PATCH 调用中同时设置 severity 与 cvss_vector_string,需要时分开调用;发布通过 PATCH 公告并设 "state":"published",没有单独的 /publish 端点。示例: gh api -X PATCH /repos/openclaw/openclaw/security-advisories/<GHSA> --input /tmp/ghsa.patch.json
  6. 发布后复核:重新获取公告,确认 state=published、published_at 已设置、description 不含字面量转义的 \n。示例: gh api /repos/openclaw/openclaw/security-advisories/<GHSA> jq -r .description < /tmp/ghsa.refetch.json | rg '\\n'

常见问题:缺少必填字段或私有 fork 仍有开启 PR 时发布会返回 HTTP 422;shell 中看似正确的载荷可能因 Markdown 使用转义换行字符串而出错;公告 PATCH 的顺序很重要,API 约束要求时应分开更新字段。

限制:仅面向 GHSA 公告流程,不用于稳定版或测试版发布;发布需先获授权;其余细节资料未提供。