核心用法
wip-repo-permissions-hook 是一款针对 GitHub 组织的仓库可见性管控工具,通过强制"双仓库策略"保护内部开发信息:
执行机制:运行 node cli.js check <org>/<repo> 验证目标仓库能否转为公开——系统会检测是否存在 {name}-private 对应仓库。若缺失则阻断操作,并输出合规提示。
批量审计:node cli.js audit <org> 扫描整个组织,列出所有不符合"公开必有私有镜像"规则的仓库,生成整改清单。
集成形态:
- CLI 工具:直接命令行调用
- MCP 服务:通过
.mcp.json配置,向 Claude 等 AI 客户端暴露repo_permissions_check/repo_permissions_audit工具 - Claude Code Hook:注入
~/.claude/settings.json的PreToolUse阶段,在 Bash 工具执行前自动拦截危险操作 - OpenClaw 插件:放置于
~/.ldm/extensions/作为网关扩展
双仓库内容分工:
-private仓库:存放ai/目录(计划、待办、开发日志、敏感笔记)- 公开仓库:同源代码,剔除
ai/目录
显著优点
1. 合规前置:在仓库转公开前强制校验,而非事后补救,从根本上杜绝敏感信息泄露
2. 零配置接入:支持 npm 全局安装,依赖仅为 Node.js 18+ 和 GitHub CLI
3. 多场景覆盖:CLI 适合 CI/CD 流水线,MCP/Hook 适合 AI 辅助开发场景
4. 开源豁免:自动识别外部项目 Fork,避免误拦截
5. 组织级视野:audit 命令可批量扫描整个 GitHub 组织,适合安全合规团队
潜在缺点与局限性
- 命名约定依赖:强制要求
{name}-private严格匹配,拼写错误或连字符差异会导致验证失败 - 无法检测内容:仅校验仓库存在性,不扫描实际文件内容,
-private仓库本身若配置错误仍可能泄露 - GitHub 专属:深度依赖
ghCLI 和 GitHub API,不适用于 GitLab、Bitbucket 等平台 - Hook 覆盖有限:Claude Code Hook 仅拦截
Bash工具调用,若通过其他 MCP 工具或外部脚本操作则无法感知 - 单点故障:若
gh凭证失效或 API 限流,校验可能静默失败或阻塞正常流程
适合人群
- AI 原生开发团队:使用 Claude Code、Cursor 等工具且担心
ai/提示词/计划泄露的开发者 - 开源合规负责人:管理组织 GitHub 仓库,需强制执行"公开前审查"政策的 DevOps/安全工程师
- 多仓库项目负责人:同时维护公私双版本仓库,需要自动化校验避免配置失误
常规风险
- 凭证泄露:
ghCLI 依赖环境变量或配置文件中的 GitHub Token,若权限配置不当(如使用具有 org:write 的 token)可能扩大攻击面 - 供应链风险:npm 包
@wipcomputer/wip-repo-permissions-hook的完整性和作者可信度需额外验证 - Hook 注入风险:修改
~/.claude/settings.json若被恶意篡改,可能拦截合法操作或植入后门 - 误拦截风险:紧急 hotfix 场景下,严格的私有镜像要求可能延缓公开发布流程