用途:该技能面向 OpenClaw 仓库维护者,用于处理来自 https://github.com/openclaw/openclaw/security/secret-scanning 的密钥扫描告警,对 issue 或 PR 中的泄露内容进行甄别、脱敏、清理与解决,并通知原作者。需要仓库管理员/维护者权限才能编辑或删除他人评论并关闭告警。
主要能力:支持单条或多条告警(多条按升序处理)。机械操作(API 调用、临时文件管理、安全约束)由 $REPO_ROOT/.agents/skills/openclaw-secret-scanning-maintainer/scripts/secret-scanning.mjs 完成,脚本强制 hide_secret=true、临时文件使用随机 UUID 的 mktemp、上传体用 -F body=@file,且不向 stdout 打印密钥或正文。流程分七步:识别(list-open、fetch-alert、fetch-content)、判定(Agent 读取正文文件识别全部密钥并生成脱敏版本)、脱敏(redact-body)、清除(评论用 delete-comment/recreate-comment,讨论用 delete-discussion-comment/recreate-discussion-comment)、通知(notify)、解决(resolve,默认 revoked)、汇总(summary 输出 ---BEGIN SUMMARY--- 与 ---END SUMMARY--- 之间内容并原样呈现)。
按位置类型路由:issue_comment、pull_request_comment、pull_request_review_comment、discussion_comment 采用删除并重建;issue_body、pull_request_body 原地脱敏;commit 仅通知;other 跳过并报告。评论重建需加英文说明并附脱敏内容;通知模板按位置类型分支。
使用方式:依次执行上述命令;评论处理跳过 PATCH,直接删除重建;正文脱敏用 redact-body <issue|pr> <NUMBER> <redacted-body-file>;讨论评论重建时可选传入 reply_to_node_id 以保留原线程。所有公开评论必须使用英文。
限制:issue/PR 正文编辑历史无法通过 API 清除,需联系 GitHub Support 清理,且不得在公开评论中提及编辑历史或“edited”;无法清理提交,需要作者删除分支或强制推送未合并 PR;删除任何评论前需确认;除用户要求批量外一次处理一条告警。脱敏标记格式为 [REDACTED <secret_type>],不得保留任何密钥片段。