SuperAPI AI 工具集

public-repo-guard

通用与其它

查看项目

更新于 10-15 22:12

技能介绍

用途:public-repo-guard 面向公开 GitHub 仓库且会被安装到用户机器的插件项目,在每次 commit、push、PR 或发布前检查是否泄露敏感信息。因为 git 历史在 fork、缓存和镜像中会长期留存,预防是唯一低成本的时机。

主要能力:识别凭证(API key、token、私钥、密码,含 test 或已过期者)、个人与员工数据(邮箱、/Users/<name>/ 路径、非维护者真实姓名)、内部工作区链接(Notion、Slack、Discord、Linear、Google Docs、Datadog;公开 GitHub 链接与 app.heptabase.com 占位模式允许)、真实标识符(卡片/工作区/聊天 UUID,文档应使用 <cardId>、<workspaceId> 等占位符)、基础设施细节(非回环 IP、内部主机名、未发布产品信息)。

使用方式:提交前扫描暂存改动:node .claude/skills/public-repo-guard/scripts/scan-sensitive.mjs --staged;发布或审计时扫描全部文件:node .claude/skills/public-repo-guard/scripts/scan-sensitive.mjs --all;也可传入路径扫描指定文件。扫描器支持 --staged(默认)、--all、<paths...>,退出码 0 干净、1 有待判断发现、2 用法错误,凭证类匹配会打码输出。内置放行 example.com、noreply@、users.noreply.github.com 邮箱、git@ SSH 克隆地址、回环/任意 IP、合成重复数字 UUID 占位符及带 public-ok 标记的行。

强制拦截:每个克隆安装一次 git pre-commit 钩子:node .claude/skills/public-repo-guard/scripts/install-git-hook.mjs,之后每次提交(含 gt/Graphite)都会运行暂存扫描并阻止有发现的提交;使用 --no-verify 绕过应作为有说明的例外并在 PR 中注明。

限制:扫描器只是网,不是保证,仅识别模式;截图、真实用户数据、支持对话摘录、未获同意的人名或账号等需人工判断,评审时应阅读 git diff --cached 而非只看扫描输出。若敏感信息已提交,应立即轮换/撤销凭证(清理历史不是缓解措施),立刻告知维护者;用 BFG 或 git filter-repo 加 force-push 清理历史会破坏克隆与已安装插件缓存,需先协调,且公开 fork 与镜像可能仍保留数据。