帮助维护者分诊、清理并解决 GitHub 中的 OpenClaw 密钥泄露告警。
整体风险较低。该技能面向 GitHub Secret Scanning 处置流程,主要涉及仓库内告警与评论/正文清理;虽具备维护者级操作和脚本化 API 调用能力,但材料显示其开源、社区信任度高,未见向无关端点外发或明显凭证滥用红旗。
材料声明无额外密钥/环境变量,但 README 明确要求仓库 admin/maintainer 权限,意味着实际运行需依赖高权限 GitHub 身份上下文来删除评论、重建评论和关闭告警。未见要求收集第三方凭证,但应注意高权限仓库操作的误用面。
README 描述会对 GitHub Secret Scanning/评论相关接口执行 fetch、notify、resolve 等 API 操作,并将通知评论发布回 GitHub。数据外发对象与声明功能相关,未见连接不明或无关端点,因此属常规网络交互需留意。
文档明确引用本地 Node 脚本 `secret-scanning.mjs` 执行机械操作,并提到 `mktemp`、文件上传参数和多条命令,说明会在本机起进程并执行脚本。此类本地执行是该技能实现的一部分,但未见申请与用途无关的系统权限。
该技能会读取 secret scanning 告警对应的 issue/PR/comment 内容,并将正文保存到临时文件后进行删改、重建或就地脱敏;因此可访问仓库内敏感文本与编辑历史相关信息。README 提到 `hide_secret=true`、不在 stdout 打印 secret/body,有一定最小暴露控制,但访问范围仍需按最小权限使用。
来源为 GitHub 开源仓库,且社区采用度极高(约 37.7 万 star),这是明显的降风险因素。许可证与维护状态在材料中未明确,存在一定治理信息缺口,但基于当前信息未见闭源、失真来源或可疑投递迹象。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "openclaw-secret-scanning-maintainer" 技能: 1. 下载 https://raw.githubusercontent.com/openclaw/openclaw/main/.agents/skills/openclaw-secret-scanning-maintainer/SKILL.md 2. 保存为 ~/.claude/skills/openclaw-secret-scanning-maintainer/SKILL.md 3. 装好后重载技能,告诉我可以用了
请检查这个 GitHub PR 的 OpenClaw Secret Scanning 告警,判断是否为真实泄露;如果是,请给出需要打码、撤销密钥、修改提交历史和关闭告警的处理步骤。
一份告警分诊结论,以及修复、打码、密钥轮换和告警处置步骤清单。
这个 GitHub issue 中疑似暴露了访问令牌。请说明如何确认风险、编辑或打码内容、通知相关人员,并记录后续修复措施。
针对 issue 泄露场景的处置方案,包括风险确认、内容清理、通知流程和记录模板。
请帮我整理仓库里最近的 OpenClaw Secret Scanning 告警,按误报、已修复、待处理分类,并为每类给出下一步建议。
一份分类后的告警清单,以及每类对应的处置建议和优先级说明。
Maintainer-only. This skill requires repo admin / maintainer permissions to edit or delete other users' comments and resolve secret scanning alerts.
Use this skill when processing alerts from https://github.com/openclaw/openclaw/security/secret-scanning.
Language rule: All notification comments and replacement comments MUST be written in English.
All mechanical operations (API calls, temp file management, security enforcements) are handled by:
$REPO_ROOT/.agents/skills/openclaw-secret-scanning-maintainer/scripts/secret-scanning.mjs
The script enforces:
hide_secret=true on all alert fetches (no plaintext secrets in stdout)mktemp with random UUIDs for all temp files-F body=@file for all body uploads (no inline shell quoting).secret or .body to stdoutSupports single or multiple alerts. For multiple alerts, process in ascending order.
For each alert:
fetch-alert + fetch-content to get metadata and bodyredact-body-if-needed for issue/PR body; skip for comments (delete directly)delete-comment + recreate-comment for comments; cannot purge body historynotify posts the right template per location type, unless the current issue/PR body is already redactedresolve closes the alertsummary prints formatted results# List all open alerts
node secret-scanning.mjs list-open
# Fetch specific alert metadata + locations
node secret-scanning.mjs fetch-alert <NUMBER>
# Fetch content for each location (saves body to temp file)
node secret-scanning.mjs fetch-content '<location-json>'
The fetch-content output includes:
body_file: path to temp file with full body contentauthor: who posted itissue_number / pr_number: where it isedit_history_count: number of existing editstype: location type for routingdiscussion_comment, it also includes comment_node_id, discussion_node_id, and reply_to_node_id when the original comment was a reply.| type | Flow |
|---|---|
issue_comment | Comment: delete+recreate |
pull_request_comment | Comment: delete+recreate |
pull_request_review_comment | Comment: delete+recreate |
discussion_comment | Discussion comment: delete+recreate (GraphQL) |
issue_body | Body: redact in place |
pull_request_body | Body: redact in place |
commit | Notify only |
| other | Skip and report |
The agent reads the body file from fetch-content output and:
[REDACTED <secret_type>] — no partial values, no prefix/suffixThis is the only step that requires semantic understanding. Everything else is mechanical.
For issue_body and pull_request_body: if the current body has already been redacted by the author and no plaintext credential remains, do not post a public notification comment. Resolve the alert with a maintainer-only resolution comment such as:
…
使用 sherpa-onnx 在本地离线将文本快速转换为语音,无需云服务。
帮助你自动控制网页流程,处理多步骤操作、登录检查与标签页管理。
快速生成概念、架构、流程与白板图,支持 SVG、HTML 或 Excalidraw 格式
帮助用户对收件箱消息进行分流、跟进等待回复并生成后续摘要。
通过命令行控制飞利浦 Hue 灯光与场景,便捷实现智能照明操作自动化。
帮助你用 node inspect 与性能分析工具定位 Node.js 调试与性能问题。
帮助维护者检查、修复并验证 OpenClaw 的 GHSA 安全公告与私有分叉状态。
帮助开发与运维团队快速分诊安全通告、草稿和 GHSA 报告并给出可信依据。
用于处理 ClawSweeper 的巡检报告、修复任务、合并流程与运维监控。
帮助维护者快速审查、分诊并处理 OpenClaw 的 Issue 与 PR。
帮助开发与运维团队运行、排查并总结 OpenClaw 发布 CI 与发布前检查流程
帮助维护者准备并核验 OpenClaw 稳定版或测试版发布与发布说明。