关于 openclaw-ghsa-maintainer
OpenClaw GHSA Maintainer 是用于处理 openclaw 仓库 GitHub 安全公告的技能,涵盖公告审查、安全准备补丁、发布检查和发布后验证。
主要功能
- 01获取公告及 npm 版本状态
- 02检查私有分支的拉取请求
- 03准备 Markdown 和 JSON 载荷
- 04按顺序执行公告 PATCH 操作
- 05验证发布状态和公告描述
适用场景
- 01审查仓库安全公告
- 02准备公告更新载荷
- 03发布前检查必要条件
- 04确认公告已正确发布
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openclaw/ openclaw --skill openclaw-ghsa-maintainer安装后在 Claude Code 中输入/openclaw-ghsa-maintainer确认已加载。
详细介绍
OpenClaw GHSA 维护者
此技能仅用于仓库安全公告工作流。常规发布工作请使用 release-openclaw-maintainer。
遵守公告防护规则
- 审查或发布仓库公告前,请阅读
SECURITY.md。 - 执行任何发布操作前,请征得许可。
- 此技能仅适用于 GHSA。不要将其用于稳定版或 Beta 版发布工作。
获取并检查公告状态
获取当前公告和最新发布的 npm 版本:
gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
npm view openclaw version --userconfig "$(mktemp)"
修补前,请使用获取结果确认公告状态、关联的私有 Fork 和漏洞载荷结构。
确认私有 Fork 中的 PR 已关闭
发布前,请验证公告的私有 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 列表必须为空。
安全地准备公告 Markdown 和 JSON
- 使用 heredoc 将公告 Markdown 写入临时文件。不要使用转义的
\n字符串。 - 使用
jq构建 PATCH 载荷 JSON,不要手工转义 shell JSON。
示例模式:
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
按正确顺序执行 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
发布并验证成功
发布后,重新获取公告并确认:
state=publishedpublished_at已设置- 描述中不包含字面转义形式
\\n
验证模式:
gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
jq -r .description < /tmp/ghsa.refetch.json | rg '\\\\n'
GHSA 常见陷阱
- 如果缺少必填字段,或私有 Fork 中仍有未关闭的 PR,发布将失败并返回 HTTP 422。
- 如果 Markdown 使用转义的新行字符串组装,即使载荷在 shell 中看起来正确,也可能仍然有误。
- 公告 PATCH 的调用顺序很重要;当 GHSA API 约束要求时,应分别更新字段。
- 公开的加固或无需发布的评论以及草稿文本应避免包含原始提交哈希、PR 标题或编号,以及修复机制摘要。优先使用已修补版本字段或仅涉及发布的措辞;将 SHA、PR 和实现说明保留在内部证据中。
评论
支持 Markdown