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报告, 上游代理, 云安全监控, 代码漂移检测, 代码质量管理, 发布风险检测, 安全助手, 无后门, 机密检测, 自动笔记, 逆向工具, 静态分析, 预提交检查