关于 safe-repo
用于仓库安全审计的技能,可检查已跟踪文件中的凭据、公司专属信息和个人信息。它支持结合历史记录的完整扫描,也可仅扫描变更文件。
主要功能
- 01扫描凭据模式
- 02检查敏感文件名
- 03审查 Git 历史
- 04仅扫描变更文件
- 05检查 Gitignore 规则
- 06报告中隐藏密钥值
适用场景
- 01发布前审计仓库
- 02提交前检查待提交变更
- 03查找历史记录中已删除的密钥
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ helderberto/ agent-skills --skill safe-repo安装后在 Claude Code 中输入/safe-repo确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/report-template.mdscripts/scan-secrets.shscan-secrets.test.sh详细介绍
安全仓库检查
背景
审计仓库中的敏感数据。检查凭据、API 密钥、公司专属信息和个人身份信息(PII)。
模式
- 默认(全量扫描):扫描所有 Git 跟踪文件及历史记录。适用于定期审计或首次检查仓库。
--diff [<base>]:仅扫描变更内容:分支自<base>以来的提交,以及已暂存和未暂存的变更。未指定<base>→ 仅扫描已暂存和未暂存的变更。适用于提交前、从review执行或从to-pr --safe执行。速度快,不会因已有文件产生误报。
工作流
默认(全量扫描)
- 运行
bash ${CLAUDE_SKILL_DIR}/scripts/scan-secrets.sh,扫描所有受跟踪文件中的凭据模式 - 按名称检查敏感的受跟踪文件:
.env*(.env.example除外)、*.pem、*.key、*_rsa*、*secret*、*credential* - 分析 Git 历史记录中已删除的密钥:
git log --all --full-history -- "*.env" "*.pem" "*.key" "*secret*" "*credential*" - 检查
.gitignore中的模式是否适当 - 报告发现的问题(参见 assets/report-template.md)
--diff 模式
- 计算变更文件:指定基准时运行
git diff --name-only <base>...HEAD,并加上git diff --name-only HEAD和git diff --name-only --cached - 仅使用
${CLAUDE_SKILL_DIR}/scripts/scan-secrets.sh中的正则表达式扫描这些文件(直接 grep),并执行上述文件名检查 - 跳过历史分析(与正在进行的变更无关)
- 仅报告变更文件范围内的问题
规则
- 仅检查 Git 跟踪文件(
git ls-files)——忽略本地配置 - 检查当前受跟踪文件和 Git 历史记录
- 过滤误报:压缩后的 JS、node_modules、测试夹具、文档
- 验证
.gitignore是否涵盖敏感模式 - 报告包含密钥的受跟踪文件及相关历史提交
- 切勿在报告中输出实际密钥值
错误处理
- 如果 Git 历史扫描速度较慢 → 使用
git log --oneline -100限制为最近 100 次提交
评论
支持 Markdown