pritpatel2412/CodeGuard

GitHub: pritpatel2412/CodeGuard

一款基于 GPT-4o 的自动化 AI 代码审查与风险分析平台,能够自动审查 PR、检测安全漏洞,并生成附带修复的补丁请求。

Stars: 7 | Forks: 0

# CodeGuard 面向 Pull/Merge Request 的自动化安全与代码质量审查平台,提供 AI 分析、可选的 AI 修复、自定义策略执行以及面向开发者的分流 UI。 ## CodeGuard 的功能 CodeGuard 连接代码仓库,接收 webhook 事件,分析代码变更,存储审查结果,并在仪表盘中展示可操作的审查输出。 核心成果: - 检测 PR/MR 变更中的安全、Bug、性能和可维护性风险。 - 通过 `.codeguard.yml` 执行特定于组织的规则。 - 生成带有安全检查的、可选的 AI 辅助修复 PR/MR。 - 提供污点传播视图,用于展示跨文件风险路径和语义流。 - 追踪审查历史、风险趋势,并提供可下载的报告。 ## 功能覆盖 ### 1) AI 审查流水线 - 使用 GPT-4o 进行 diff 分析,并生成带有类型/经过验证的审查响应。 - 分类发现问题(`bug`、`security`、`performance`、`readability`、`maintainability`)。 - 为每次审查生成风险评分和摘要。 - 将评论发布到源代码控制系统,并在仪表盘级别记录历史。 ### 2) 策略即提示词 (`.codeguard.yml`) - 在 PR head SHA 处从仓库根目录获取 `.codeguard.yml`。 - YAML 解析 + 严格的 schema 验证(`js-yaml` + `zod`)。 - 将验证后的策略规则注入到专门的 GPT-4o 策略执行提示词中。 - 持久化策略定义以及每次审查中的策略违规记录。 - UI 支持: - 审查详情中的策略标签页 - 仓库页面上的策略查看器和执行开关 - 新增 API: - `GET /api/policy/:repositoryId` - `GET /api/policy/violations/:reviewId` - `PUT /api/policy/:repositoryId/toggle` 规范文档:[docs/codeguard-yml-spec.md](docs/codeguard-yml-spec.md) ### 3) 跨文件污点分析 - 针对变更代码范围进行图构建和污点路径传播。 - 可选的 AI 增强,用于提供解释/修复上下文。 - 持久化图和路径产物,并提供专用的 API 端点。 - UI 支持: - 污点路径标签页 - 语义图标签页 ### 4) AI 自动修复工作流 - 从可操作的审查评论中触发修复。 - 获取文件上下文,生成完整文件的修复,并创建分支和 PR/MR。 - 包含针对敏感文件系列的安全拦截机制。 - 在 UI 中展示进度流程,并提供指向已创建 PR/MR 的链接。 ### 5) 开发者用户体验增强 - 安全修复指示器徽章(基于图标,无 emoji)。 - 审查页面高级过滤: - 风险 - 状态 - 平台 - 审查类型(安全修复 vs 常规审查) - 排序 + 重置过滤器 - 更新了法律页面,包含了与平台行为一致的详细条款/隐私说明。 - 设置页面重构,具备更好的可靠性: - 基于查询的加载 - 脏状态追踪 - 重置/保存控件 - 更清晰的 webhook/安全指导 ## 已实施的安全加固 CodeGuard 现在包含了更强的生产环境安全防护: - 在生产环境中强制执行会话密钥(需要 `SESSION_SECRET`,并具有最小长度策略)。 - 净化 `/api/user` 响应(不暴露 token)。 - 对改变状态的 API 路由进行 CSRF 保护(具有定义的豁免)。 - 在处理仓库 webhook 时,强制进行 GitHub webhook 签名验证。 - 对 webhook 负载进行仓库身份检查。 - 针对敏感键对 API 响应日志进行脱敏处理。 - 在生产环境中通过 `APP_ORIGIN` 白名单进行更严格的 CORS 处理。 - 收紧生产环境 CSP(特别是移除了 `unsafe-eval`)。 - 在前端安全处理 PR/MR 链接的外部 URL。 - 在 UI 中掩码 webhook 密钥(提供明确的显示/复制流程)。 - 事件响应指南和安全的 env 模板: - [.env.example](.env.example) - [docs/SECURITY_INCIDENT_RESPONSE.md](docs/SECURITY_INCIDENT_RESPONSE.md) ## 技术栈 | 层级 | 技术 | | :--- | :--- | | 前端 | React 18, Vite, TypeScript, TanStack Query, Tailwind, Radix UI, Framer Motion | | 后端 | Node.js, Express, Passport (GitHub OAuth), Socket.io | | AI | OpenAI GPT-4o | | 数据库 | PostgreSQL, Drizzle ORM, Drizzle Kit | | 集成 | GitHub Webhooks/API,部分支持 GitLab 工作流 | | 可视化 | Recharts, XYFlow, Dagre | ## 项目结构 | 路径 | 用途 | | :--- | :--- | | `client/` | 前端应用(仪表盘、审查、设置、策略/污点视图) | | `server/` | API 路由、身份验证、集成、AI 编排、污点 + 策略引擎 | | `shared/` | 共享 schema/类型 (Drizzle + Zod) | | `api/` | Serverless 入口配置 | | `script/`, `scripts/` | 构建和实用工具脚本 | | `docs/` | 产品/文档规范(包括 `.codeguard.yml` 规范和事件响应) | ## 快速开始 ### 前置条件 - Node.js 20+ - PostgreSQL 数据库 - OpenAI API key - GitHub OAuth app 凭据 ### 环境配置 使用 [.env.example](.env.example) 作为您的基准配置。 本地最少需要的变量: ``` DATABASE_URL=postgresql://user:pass@localhost:5432/codeguard OPENAI_API_KEY=... GITHUB_CLIENT_ID=... GITHUB_CLIENT_SECRET=... GITHUB_CALLBACK_URL=http://localhost:5000/auth/github/callback SESSION_SECRET=your_long_random_secret_min_32_chars APP_ORIGIN=http://localhost:5000 ``` 可选配置: ``` TAINT_ENGINE_ENABLED=true ENABLE_DEBUG_GITHUB_AUTH=false ``` ### 安装并运行 ``` npm install npm run db:push npm run dev ``` ### 构建并启动 ``` npm run build npm run start ``` ## 部署检查清单 在发布到生产环境之前: 1. 设置强 `SESSION_SECRET` 和有效的 `APP_ORIGIN`。 2. 轮换任何之前暴露的密钥/token。 3. 确保已配置仓库 webhook 密钥。 4. 运行类型检查:`npm run check`。 5. 验证 webhook 签名验证失败会被拒绝。 6. 验证 `/api/user` 不会暴露 token 字段。 7. 确保 CI 工作流处于激活状态(`.github/workflows/ci.yml`)。 ## CI 与质量门禁 当前的 CI 工作流包括: - 安装依赖项 - 类型检查 - 依赖项审计(高危及以上) 路径:[.github/workflows/ci.yml](.github/workflows/ci.yml) ## 关于 GitLab 的说明 GitHub webhook 流程是主要的生产路径。代码中包含了用于部分修复流程的 GitLab 辅助逻辑,而 webhook 功能的对齐仍在不断完善中。 ## 发布说明 ### 最新版本 (2026-04) #### 安全与策略版本 - 通过仓库 `.codeguard.yml` 添加了策略即提示词支持: - YAML 加载/验证 - 将规则注入 GPT 策略执行 - 策略违规持久化和 API - 仓库策略查看器和审查级别的策略标签页 UI - 添加了跨文件污点分析流水线集成和 UI: - 污点路径标签页 - 语义图可视化标签页 - 改进了审查体验: - 安全修复指示器徽章(基于图标) - 高级审查过滤(风险/状态/平台/类型/排序/重置) - 关键审查界面使用无 emoji 的专业标签 - 完成了部署前的强化检查: - 对修改状态的 API 路由进行 CSRF 保护 - 严格的 webhook 签名和仓库身份检查 - 净化后的 `/api/user` 响应模型 - 敏感日志脱敏 - 生产环境 CORS 白名单 + 更严格的 CSP 策略 - 针对已创建的 PR/MR 链接进行安全的外部 URL 验证 - UI 中掩码 webhook 密钥,并提供明确的显示/复制流程 - 升级了法律和设置内容: - 详细的条款和隐私页面,与当前平台行为保持一致 - 设置页面可靠性改进(基于查询的加载、脏状态追踪、重置/保存控件) - 添加了运营准备就绪的产物: - `.env.example` - `docs/SECURITY_INCIDENT_RESPONSE.md` - 位于 `.github/workflows/ci.yml` 的基准 CI 工作流 ### 早期版本 - 初始平台发布:AI 驱动的 PR 审查流水线、仪表盘、仓库管理和风险追踪基础。
标签:AI代码分析, DevSecOps, GitHub集成, MITM代理, 上游代理, 代码安全, 代码质量审查, 测试用例, 漏洞枚举, 自动化攻击, 静态应用安全测试