camirian/repo-preflight-drift-scanner

GitHub: camirian/repo-preflight-drift-scanner

一个用于AI辅助开发流程的确定性仓库预检扫描器,在合并或发布前识别潜在的发布阻碍因素和AI过程漂移。

Stars: 0 | Forks: 0

# Repo 预检漂移扫描器 状态:公开的 GitHub Action 和本地 CLI Repo Preflight Drift Scanner 是一款用于 AI 辅助开发工作流的确定性本地 CLI 和 GitHub Action。 它在您合并、演示或发布之前,回答一个实际的问题: ``` Is this repo carrying obvious release blockers, risky claims, private-publication surfaces, or AI-process drift? ``` 它会生成涵盖以下内容的 Markdown、JSON、HTML 和 SARIF 报告: - 缺失的流程文件 - 未检查的发布关卡 - 存在风险的公开声明 - 包含敏感信息的文件名 - 生成的构件 - 未完成工作和草稿内容的偏移信号 - 面向公共代码库和包的公开导出规范 ## 在 GitHub Actions 中安装 ``` name: Repo Preflight on: pull_request: workflow_dispatch: jobs: repo-preflight: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: camirian/repo-preflight-drift-scanner@v0.3.3 with: repo: "." profile: public-export paranoid: true out-html: REPO_PREFLIGHT_REPORT.html out-sarif: REPO_PREFLIGHT_REPORT.sarif ``` ## 本地运行 ``` python3 repo_preflight.py \ --repo . \ --out-md REPO_PREFLIGHT_REPORT.md \ --out-json REPO_PREFLIGHT_REPORT.json \ --out-html REPO_PREFLIGHT_REPORT.html \ --out-sarif REPO_PREFLIGHT_REPORT.sarif ``` 配置文件: ``` python3 repo_preflight.py --repo . --profile strict python3 repo_preflight.py --repo . --profile docs python3 repo_preflight.py --repo . --profile public-export --paranoid ``` 在处理发布构件时请使用 `strict`。当扫描包含大量模板的文档时(此时未勾选的复选框、声明示例和旧的生成构件会产生大量干扰信息),请使用 `docs`。在发布代码库、包、Action 或公开构件之前,请使用 `public-export`;它会增加对私有规划路径、被追踪的报告输出、被追踪的包含敏感信息的文件名、高置信度敏感信息字面量以及敏感的公开导出术语的检查。 ## 规则包 规则包是通过 `--config` 传入的 JSON 文件。 ``` python3 repo_preflight.py --repo . --config configs/founder-strict.json ``` 包含的示例: - [configs/founder-strict.json](configs/founder-strict.json) - [configs/team-policy.json](configs/team-policy.json) ## 基线差异 将新的运行结果与之前的 JSON 报告进行比较: ``` python3 repo_preflight.py \ --repo . \ --baseline-json previous/REPO_PREFLIGHT_REPORT.json \ --out-json REPO_PREFLIGHT_REPORT.json ``` ## 隐私控制 在将私有代码库的报告分享到外部之前,请使用 paranoid 模式: ``` python3 repo_preflight.py \ --repo . \ --paranoid \ --out-md REPO_PREFLIGHT_REPORT.md \ --out-json REPO_PREFLIGHT_REPORT.json ``` 与隐私相关的选项: - `--paranoid`:仅显示文件名(不包含路径),并且不显示证据片段 - `--no-evidence`:省略证据片段 - `--max-evidence-chars 80`:缩短证据片段 - `--redact-pattern REGEX`:对匹配的证据文本进行脱敏处理 - `--path-mode relative|basename|hash`:控制报告中路径的详细程度 ## GitHub Action 请参阅 [examples/github-action.yml](examples/github-action.yml) 以获取将报告作为构件上传的更完整的工作流。 ## 演示 ``` python3 repo_preflight.py \ --repo examples/sample-repo \ --include-fixtures \ --out-md REPORT.md \ --out-json REPORT.json \ --out-html REPORT.html \ --out-sarif REPORT.sarif ``` 该合成样本会故意触发阻止,以便用户无需使用私有项目数据即可检查报告格式。 ## 60 秒演示 1. 针对合成样本运行扫描器: python3 repo_preflight.py --repo examples/sample-repo --include-fixtures 2. 扫描器阻止了该代码库,因为它包含缺失的流程文档、未检查的发布关卡、存在风险的声明、生成的构件以及偏移标记。 3. 打开 `REPO_PREFLIGHT_REPORT.md` 查看修复列表。 4. 在发布前使用 `--profile public-export --paranoid` 对您的代码库运行扫描。 该扫描器被有意设计得较为严格。其目的是在这些问题演变为公开的清理工作之前,让明显的发布阻碍因素清晰可见。 ## 验证 ``` python3 verify_scanner.py ``` ## 边界 这不是一个安全扫描器、合规性扫描器、漏洞扫描器,也不能替代人工审查。 它是一个用于发布规范的确定性预检报告生成器。
标签:AI辅助开发, CI/CD安全, DevSecOps, GitHub Actions, Llama, Python, SARIF报告, 上游代理, 云安全监控, 代码漂移检测, 代码质量管理, 发布风险检测, 安全助手, 无后门, 机密检测, 自动笔记, 逆向工具, 静态分析, 预提交检查