用途:分析 Git 仓库,构建人员到文件的安全归属拓扑,评估巴士因子与敏感代码归属风险,并导出图数据用于 Neo4j/Gephi 持久化与可视化。同时构建文件共变图(基于共享提交的 Jaccard 相似度)以聚类共动文件,并忽略大型噪声提交。
依赖:Python 3;必需 networkx(社区检测默认开启),安装:pip install networkx。
主要能力:生成 people.csv、files.csv、edges.csv、cochange_edges.csv、summary.json,可选 commits.jsonl 与 graphml;默认计算社区(communities.json、cochange.graph.json),people.csv 含基于作者提交偏移的时区字段。默认标记常见认证/加密/密钥路径,可用 CSV 规则覆盖。默认忽略锁文件、.github/*、编辑器配置等“胶水”文件,且排除 Dependabot 与合并提交(可用参数覆盖)。
用法:仓库根目录运行 scripts/run_ownership_map.py,常用参数 --repo、--out、--since/--until、--emit-commits、--graphml、--no-communities、--cochange-exclude、--no-default-cochange-excludes。查询用 scripts/query_ownership.py,支持 people、files、person、file、cochange、summary、community 等子命令与 --limit、--tag、--bus-factor-max 等过滤,返回小体积 JSON 切片,避免加载全图。常见安全查询包括孤儿敏感代码、隐藏所有者、低巴士因子热点、敏感代码触碰者排行、共变邻居与社区维护者。community_maintainers.py 可按月或季度输出社区维护者,支持 --min-share、--window-days、--weight recency。
适用场景:安全归属审计、巴士因子评估、与 CODEOWNERS 对比发现归属漂移、敏感代码孤岛识别、社区聚类分析。
限制:无必需 MCP 服务器;仅提供回退提示。跨 GitHub Copilot、Claude Code、Codex 使用需按各自技能目录放置,Codex 需同步至 $CODEX_HOME/skills/security-ownership-map。git log 过大时需用时间窗口收窄。不要在文档任务边界外激活;不得无证据宣称成功。