rudra496/codevista

GitHub: rudra496/codevista

一款支持80+语言的静态代码分析与安全扫描工具,可生成精美的单页HTML报告并检测代码异味、架构腐化和安全风险。

Stars: 1 | Forks: 0

Python 3.9+ MIT License Tests Coverage Languages Stars Forks Issues


 ██████╗ ██████╗ ███╗   ██╗ ██████╗ ███████╗██╗ ██████╗ ██╗  ██╗████████╗

██╔═══██╗██╔══██╗████╗  ██║██╔════╝ ██╔════╝██║██╔════╝ ██║  ██║╚══██╔══╝

██║   ██║██████╔╝██╔██╗ ██║██║  ███╗███████╗██║██║  ███╗███████║   ██║

██║   ██║██╔══██╗██║╚██╗██║██║   ██║╚════██║██║██║   ██║██╔══██║   ██║

╚██████╔╝██║  ██║██║ ╚████║╚██████╔╝███████║██║╚██████╔╝██║  ██║   ██║

 ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝  ╚═╝   ╚═╝

  

CodeVista — 代码分析与安全扫描器

代码的 Google Analytics — 终极静态分析工具

精美的交互式代码库可视化 — 单个 HTML 文件,零依赖。

## ✨ 什么是 CodeVista? CodeVista 分析您的代码库并生成**精美的单页 HTML 报告** — 无需服务器、无需网络、无需外部依赖。只需分享一个文件,每个人都可以直观地探索您的代码。 ![CodeVista 演示](https://img.shields.io/badge/🎬_Demo_Screenshot-Coming_Soon-8b5cf6?style=for-the-badge) ## 🚀 快速开始 ``` pip install codevista codevista analyze ./my-project/ ``` 就是这样。在任何浏览器中打开 `report.html`。无需服务器。 ## 📦 安装 ``` pip install codevista ``` 零外部依赖 — 纯 Python 标准库。 ## 🎯 命令 | 命令 | 描述 | |---------|-------------| | `codevista analyze ./project/` | 完整分析,包含所有功能 | | `codevista analyze ./project/ -o report.html` | 自定义输出路径 | | `codevista analyze ./project/ --no-git` | 跳过 git 分析 | | `codevista analyze ./project/ --depth 3` | 限制目录深度 | | `codevista quick ./project/` | 快速分析(约 3 秒) | | `codevista serve ./project/ --port 8080` | 在 HTTP 服务器上提供报告 | | `codevista compare ./v1/ ./v2/` | 比较两个代码库 | | `codevista watch ./project/` | 文件更改时重新分析 | | `codevista smells ./project/` | 检测代码异味和反模式 | | `codevista architecture ./project/` | 检测架构模式 | | `codevista code-age ./project/` | 分析文件年龄、变更和风险 | | `codevista export ./project/ -f sarif` | 导出为 SARIF 用于 CI | | `codevista export ./project/ --all` | 导出为所有格式 | | `codevista health ./project/` | 仅健康评分 | | `codevista security ./project/` | 仅安全扫描 | | `codevista deps ./project/` | 依赖分析 | | `codevista git-stats ./project/` | Git 仓库统计 | | `codevista languages ./project/` | 语言分布细分 | | `codevista complexity ./project/` | 复杂度分析和顶级函数 | | `codevista snapshot ./project/` | 保存分析快照用于趋势跟踪 | | `codevista trends ./project/` | 显示项目健康趋势随时间的变化 | | `codevista diff-snapshots ./project/ 1 2` | 比较两个快照 | | `codevista team ./project/` | 团队生产力与协作分析 | | `codevista ci-output ./project/ -f sarif` | CI/CD 输出(SARIF、Checkstyle 等) | | `codevista decay ./project/` | 架构腐化分析 | | `codevista dna ./project/` | 生成 CodeDNA 指纹 | | `codevista lint ./project/` | 语言特定的 lint 规则 | ## 📊 分析内容 ### 🏗️ 架构图 - 文件依赖图 — 谁导入了谁 - 带行数统计的交互式目录树 - 模块聚类检测 ### 📈 代码指标 - 每个文件的代码行数(交互式柱状图) - 圈复杂度(热点检测) - 代码重复检测(基于哈希) - 注释覆盖率跟踪 - 文件大小分布 ### 🧩 技术检测 - 语言检测(50+ 种语言) - 框架检测(React、Django、Flask、Express 等) - 带版本的依赖清单 ### 🏥 健康评分 - 总体健康:0-100(综合评分) - 分类评分:可读性、复杂度、重复率、覆盖率、安全性、依赖 - 颜色编码指示(绿色/黄色/红色) - 具体改进建议 ### 🔒 安全扫描 - 硬编码的密钥(AWS、GitHub、Stripe、API 密钥、密码、令牌) - 危险函数(eval、exec、shell=True、pickle) - 私钥检测 - 严重程度评分(严重/高/中/低) ### 👥 Git 洞察 - 贡献热力图(52 周日历) - 顶级贡献者及提交份额 - 最活跃的文件 - 提交统计 ### 👃 代码异味检测 CodeVista 检测**19 类代码异味**,超越典型的 linter: | 异味 | 描述 | |-------|-------------| | **上帝类** | 方法/字段/职责过多的类 | | **过长参数列表** | 参数过多的函数,尤其是带 `=None` 的 | | **特性依恋** | 使用其他类数据多于自己类的数据的方法 | | **发散式变更** | 因多个不相关原因修改的类 | | **霰弹式修改** | 单个逻辑变更需要在多个文件中编辑 | | **平行继承** | 添加 A 的子类总是需要创建 B 的子类 | | **投机性通用** | 未使用的抽象、从不被重写的抽象方法 | | **临时字段** | 仅在某些方法中设置的实例变量 | | **消息链** | 长的点链:`a.b.c.d.e.f` | | **中间人** | 仅委托给另一个类的类 | | **注释异味** | 描述代码做什么的注释,而不是为什么 | | **死代码** | 赋值但从未读取的变量、从未调用的函数 | | **魔数** | 代码中散布的未命名数字文字 | | **复制粘贴代码** | 文件内和文件间的近似重复块 | | **缺失错误处理** | 没有 try/catch 或错误检查的 I/O 操作 | | **命名不一致** | 混合使用 camelCase 和 snake_case 约定 | | **布尔参数** | 表明方法应该拆分的标志 | | **isinstance 链** | 建议缺少多态的类型检查链 | 每种异味都带有严重程度、位置和**可操作的修复建议**。 ``` codevista smells ./my-project/ ``` ### 🏗️ 架构模式检测 根据项目结构和代码自动识别架构模式: - **MVC / MVVM / MVP** — UI 模式 - **分层架构** — 表示层、业务层、数据层 - **清洁架构** — 实体、用例、控制器、适配器 - **六边形** — 端口和适配器模式 - **仓库模式** — 数据访问中介 - **服务层** — 协调操作的应用程序边界 - **CQRS** — 命令/查询分离 - **事件驱动** — 事件发布者、订阅者、处理器 - **微** — 独立服务架构 - **单例 / 工厂 / 策略 / 观察者 / 装饰器** — 设计模式 - **依赖注入** — DI 框架和手动注入 包含架构质量评分(组织、耦合、模块化、平衡)和基于文本的架构图。 ``` codevista architecture ./my-project/ ``` ### 📅 代码年龄与风险分析 跟踪文件年龄、变更频率,识别最可能有 bug 的文件: | 类别 | 描述 | |----------|-------------| | 🔥 **热门** | 最近 7 天内变更 | | 🌤️ **温热** | 最近 30 天内变更 | | ❄️ **冷门** | 30-365 天前变更 | | 🧊 **冷稳定** | 旧但变更少(稳定) | | 💀 **死亡** | 超过 1 年未变更 | **风险分析** 将年龄 × 复杂度 × 变更频率关联起来,以识别最可能有 bug 的文件: - 年龄高、复杂度高、变更频率高的文件获得最高风险分数 - 年龄、复杂度和变更之间的统计分析 - 针对高风险文件的可操作建议 ``` codevista code-age ./my-project/ ``` ## 📈 趋势分析 通过快照和趋势可视化跟踪代码质量随时间的变化。 ### 工作原理 1. **保存快照** 每次分析运行后 2. **比较快照** 看看您的代码库如何演变 3. **获取警报** 当指标超过关键阈值时 4. **跟踪技术债务** 比率随时间的变化 ``` # 保存当前状态的快照 codevista snapshot ./my-project/ # 带标签保存 codevista snapshot ./my-project/ --label "before-refactor" # 查看趋势 codevista trends ./my-project/ # 比较两个特定快照 codevista diff-snapshots ./my-project/ 1 2 ``` ### ASCII 时间线示例 ``` 📈 Health Score Timeline 100 ┤████████████████████ │████████████████████ │████████████████████ │████████████████████ │████████████████████ │████████████████████ │████████████████████ │████████████████████ │████████████████████ │████████████████████ │████████████████████ │████████████████████ 0 ┤───────────────────── Current: 78/100 ↑ ``` ### 功能 - **趋势箭头**:↑ 改善,↓ 下降,→ 稳定 - **阈值警报**:当健康度下降或安全问题激增时获得警告 - **技术债务跟踪**:随时间监控债务比率 - **审查节奏**:根据变更率建议最佳审查频率 - **代码年龄分布**:跟踪您的代码库如何老化 ## 👥 团队指标 分析开发人员生产力和协作模式。 ``` codevista team ./my-project/ ``` ### 分析内容 | 指标 | 描述 | |--------|-------------| | **每人代码行数** | 每个开发人员的添加/删除/净增 | | **提交频率** | 每天提交数、突发与稳定模式 | | **修改的文件** | 每个作者的唯一文件 | | **总线因子** | 理解 50% 代码所需的人数 | | **代码所有权** | 饼图数据显示贡献份额 | | **审查覆盖率** | 从提交消息估算 | | **结对编程** | 共同创作提交检测 | | **时区分布** | 团队何时提交 | | **入职复杂度** | 新贡献者上手的难度 | ### 🏚️ 架构腐化检测器 使用 git 历史跟踪您的代码库如何随时间退化。检测复杂度增长、耦合增加、代码重复,并预测未来状态。 ``` codevista decay ./my-project/ ``` **分析内容:** | 指标 | 描述 | |--------|-------------| | **复杂度增长** | 圈复杂度如何随提交变化 | | **耦合增长** | 模块相互依赖如何随时间增长 | | **重复增长** | 代码重复率变化 | | **债务速度** | 每周技术债务累积率 | | **腐化热点** | 退化最快的文件(按腐化分数排名) | | **预测** | 12 周前瞻的线性回归预测 | | **拐点** | 质量显著变化的关键提交 | | **干预措施** | 优先的重构建议 | **ASCII 报告示例:** ``` ╔═══════════════════════════════════════════════════════════╗ ║ 🏚️ ARCHITECTURAL DECAY ANALYSIS ║ ╠═══════════════════════════════════════════════════════════╣ ║ Repository: my-project ║ ║ Is Git: Yes ║ ╚═══════════════════════════════════════════════════════════╝ 📈 COMPLEXITY GROWTH ──────────────────────────────────────────────────────── 2026-01-15 avg CC: 8.2 [████░░░░░░░░░░░░░░░░░░] 2026-02-01 avg CC: 9.5 [█████░░░░░░░░░░░░░░░░░] 2026-02-15 avg CC: 11.3 [██████░░░░░░░░░░░░░░░░] 2026-03-01 avg CC: 13.8 [████████░░░░░░░░░░░░░░] Trend: 📈 GROWING 🔥 DECAY HOTSPOTS (top 10) ──────────────────────────────────────────────────────── 🔴 1. 45.2 [████████████████████░░] src/core/engine.py 🟠 2. 28.7 [█████████████░░░░░░░░░] src/api/handler.js 🟡 3. 12.4 [██████░░░░░░░░░░░░░░░░] src/utils/parser.py 🔮 PREDICTIONS (12 weeks forward) ──────────────────────────────────────────────────────── Avg complexity: 18.5 Debt lines: 2450 Confidence: moderate 💡 RECOMMENDED INTERVENTIONS ──────────────────────────────────────────────────────── 🔴 [CRITICAL] src/core/engine.py Action: refactor break into smaller functions/modules; stabilize — changes are volatile ``` ### 🧬 CodeDNA 指纹生成器 为代码库创建独特的 DNA 指纹 — 识别项目、检测分支、发现克隆代码。 ``` # 生成带ASCII条形码的指纹 codevista dna ./my-project/ # 保存指纹以便后续比较 codevista dna ./my-project/ --save fingerprint.json # 比较两个项目 codevista dna ./project-a/ --compare fingerprint.json # 检测克隆文件 codevista dna ./my-project/ --clones ``` **捕获内容:** | 组件 | 描述 | |-----------|-------------| | **哈希模式** | 代码结构模式的 SHA 配置文件 | | **语言分布** | 语言混合特征 | | **复杂度分布** | 复杂度桶指纹 | | **依赖拓扑** | 导入图拓扑哈希 | | **命名约定** | camelCase/snake_case/PascalCase 比率 | | **注释密度** | 文档覆盖指纹 | | **函数大小** | 函数大小分布 | | **文件大小** | 文件大小分布 | | **克隆检测** | 通过块哈希进行精确和近似克隆检测 | **条形码示例:** ``` ┌─────────────────────────────────────────────────────┐ │ 🧬 CodeDNA Barcode │ ├─────────────────────────────────────────────────────┤ │ ▓▓▒▒░░████▓▓▒░████░▒▒▓▓████░░▒▒▓▓░░████▒▒░░████│ │ ██▓▓░░▒▒████░░▓▓██▒▒░░▓▓▒▒████░░▓▓██▒▒░░▓▓▒▒░░░│ │ ░░▒▒██▓▓░░▒▒████░░▓▓██▒▒████░░▓▓░░▒▒████░░▓▓██▓▓│ │ ░░████░░▓▓▒▒██▓▓░░▒▒████░░▓▓░░████░░▒▒██▓▓░░▒▒░░│ ├─────────────────────────────────────────────────────┤ │ Project: my-project files: 42│ │ Languages: Python 45.2%, JS 30.1%, HTML 15.3% │ │ Naming: snake_case │ │ Hash: a3f7c2b1e9d04586 │ └─────────────────────────────────────────────────────┘ Compact: [█████░░████░░░░████████░░██░░░░████░░████░░] a3f7c2b1e9d045867f2a9c3d1e8b4f6a... ``` ## 📏 Lint 规则 CodeVista 包含**38 条语言特定的 lint 规则**,涵盖 5 种语言,执行流行的样式指南: ``` # Lint整个项目 codevista lint ./my-project/ # Lint特定文件 codevista lint ./src/app.py # 按语言筛选 codevista lint ./project/ -l python -l javascript # 按严重程度筛选 codevista lint ./project/ -s error -s warning # 包含/排除特定规则 codevista lint ./project/ --include-rule PY001 --exclude-rule PY010 # CI的JSON输出 codevista lint ./project/ --json # 列出所有可用规则 codevista lint --rules ``` ### 支持的语言和规则 | 语言 | 样式指南 | 规则 | 严重程度 | |----------|------------|-------|----------| | **Python** | PEP 8 / Black | PY001–PY011(11 条规则) | error/warning/info | | **JavaScript** | Airbnb | JS001–JS009(9 条规则) | error/warning/info | | **TypeScript** | Airbnb(共享) | JS001–JS009(9 条规则) | error/warning/info | | **Go** | gofmt | GO001–GO005(5 条规则) | error/warning | | **Rust** | clippy-lite | RS001–RS005(5 条规则) | error/warning/info | | **Java** | Google Style | JA001–JA006(6 条规则) | error/warning/info | ### Python(PEP 8 / Black) | 规则 | 严重程度 | 描述 | |------|----------|-------------| | PY001 | warning | 最大行长度(Black 为 88) | | PY002 | error | 禁止通配符导入(`from x import *`) | | PY003 | info | 导入顺序:stdlib → 第三方 → 本地,按字母排序 | | PY004 | info | 顶级定义前两行空行 | | PY005 | info | 方法前一行空行 | | PY006 | info | 运算符周围空格 | | PY007 | info | 优先使用 f-strings 而非 `.format()` / %-格式化 | | PY008 | info | 公共函数的类型提示 | | PY009 | warning | 命名约定(snake_case、PascalCase、UPPER_CASE) | | PY010 | info | 无尾随空格 | | PY011 | warning | 一行不包含多条语句 | ### JavaScript/TypeScript(Airbnb) | 规则 | 严重程度 | 描述 | |------|----------|-------------| | JS001 | error | 禁止 `var` — 使用 `const` 或 `let` | | JS002 | info | 优先使用模板字符串而非字符串连接 | | JS003 | info | 回调函数使用箭头函数 | | JS004 | warning | 使用 `===` 而非 `==` | | JS005 | warning | 2 空格缩进(无制表符) | | JS006 | warning | 无未使用变量 | | JS007 | info | 重复属性访问优先使用解构 | | JS008 | info | 使用对象简写语法 | | JS009 | info | 尾随逗号约定 | ### Go(gofmt) | 规则 | 严重程度 | 描述 | |------|----------|-------------| | GO001 | error | 需要制表符缩进 | | GO002 | error | 无未使用的导入 | | GO003 | warning | 导出的名称必须有文档注释 | | GO004 | error | 错误处理 — 不要丢弃错误 | | GO005 | warning | 内部作用域无变量遮蔽 | ### Rust(clippy-lite) | 规则 | 严重程度 | 描述 | |------|----------|-------------| | RS001 | error | 生产代码中无 `.unwrap()` | | RS002 | warning | 正确使用 Option/Result(无 `is_some().unwrap()`) | | RS003 | error | 无可变静态 | | RS004 | info | 应避免使用 lint 抑制 | | RS005 | error | 命名约定(snake_case 函数/变量) | ### Java(Google Style) | 规则 | 严重程度 | 描述 | |------|----------|-------------| | JA001 | error | 4 空格缩进(无制表符) | | JA002 | warning | 公共方法需要 Javadoc | | JA003 | error | 禁止通配符导入 | | JA004 | error | 控制语句需要大括号 | | JA005 | warning | 捕获特定异常 | | JA006 | info | 使用日志器而非 `System.out.print` | ### 退出码 | | 含义 | |------|---------| | `0` | 清洁 — 无违规 | | `2` | 发现错误 | ## 📤 导出格式 以多种格式导出分析结果,适用于不同用例: | 格式 | 用例 | 命令 | |--------|----------|---------| | **HTML** | 浏览器中的交互式报告 | `codevista export . -f html` | | **JSON** | 编程访问、API | `codevista export . -f json` | | **Markdown** | 文档、README、wiki | `codevista export . -f markdown` | | **SARIF** | GitHub 代码扫描、CI/CD | `codevista export . -f sarif` | | **CSV** | 电子表格、数据分析 | `codevista export . -f csv` | | **YAML** | CODE_METRICS 格式 | `codevista export . -f yaml` | | **PDF** | 可打印报告 | `codevista export . -f pdf` | | **所有格式** | 一次性获取所有 | `codevista export . --all` | ``` # CI与GitHub Code Scanning集成 codevista export ./project/ -f sarif -o results.sarif.json # 导出所有内容 codevista export ./project/ -o ./reports/codevista --all ``` ## 🔌 CI/CD 集成 CodeVista 提供专用的 CI 输出格式,具有基于阈值的通过/失败。 ### 支持的格式 | 格式 | 平台 | 命令 | |--------|----------|---------| | **SARIF** | GitHub 代码扫描 | `codevista ci-output . -f sarif` | | **GitLab 代码质量** | GitLab | `codevista ci-output . -f gitlab` | | **Checkstyle XML** | Jenkins、GitHub Actions | `codevista ci-output . -f checkstyle` | | **JUnit XML** | 任何支持 JUnit 的 CI | `codevista ci-output . -f junit` | | **Markdown** | PR 评论 | `codevista ci-output . -f markdown` | | **Terminal** | 快速终端输出 | `codevista ci-output . -f terminal` | ### 退出码 | 代码 | 含义 | 描述 | |------|---------|-------------| | `0` | 清洁 | 所有阈值通过 | | `1` | 警告 | 中等严重程度阈值违规 | | `2` | 错误 | 严重违规(健康、复杂度) | | `3` | 严重 | 关键安全问题或严重退化 | ### 阈值配置 在项目根目录创建 `.codevista.json`: ``` { "max_security_critical": 0, "max_security_high": 0, "max_security_medium": 5, "max_security_total": 10, "max_avg_complexity": 10, "max_technical_debt_ratio": 0.25, "min_health_score": 60, "max_duplicates": 10, "max_circular_deps": 0, "max_todo_count": 50 } ``` ``` # 使用退出代码运行(如果违反阈值,CI将失败) codevista ci-output ./project/ -f sarif -o results.sarif.json echo "Exit code: $?" # 0=clean, 1=warnings, 2=errors, 3=critical ``` ## 🐳 Docker ``` # 构建 docker build -t codevista . # 分析项目 docker run --rm -v $(pwd):/workspace codevista analyze /workspace # 使用docker-compose docker-compose up ``` Docker 镜像使用多阶段构建以最小化大小,以非 root 用户运行,并包含用于 PDF 导出的 `wkhtmltopdf`。 ## 🎨 报告功能 - **单个 HTML 文件** — 随时分享,离线永久可用 - **深色/浅色模式** 切换 - **交互式表格** — 按任意列排序、按语言筛选、搜索 - **内联 SVG 图表** — 无外部 JS 库 - **可折叠部分** - **打印友好** - **响应式** — 移动端可用 ## 🏆 对比 | 功能 | CodeVista | SonarQube | CodeClimate | lizard | |---------|-----------|-----------|-------------|--------| | 安装 | `pip install` | Docker/服务器 | SaaS | `pip install` | | 依赖 | **零** | 繁重 | 无 | 无 | | 输出 | **单个 HTML** | Web UI | Web UI | CLI | | 离线 | ✅ | ❌ | ❌ | 不适用 | | 安全扫描 | ✅ | ✅ | ✅ | ❌ | | Git 分析 | ✅ | ✅ | ✅ | ❌ | | 可视化图表 | ✅ | ✅ | ✅ | ❌ | | 代码异味检测 | ✅ **19 种** | 有限 | 有限 | ❌ | | 架构模式 | ✅ **12+ 种** | ❌ | ❌ | ❌ | | 代码年龄分析 | ✅ | ❌ | ❌ | ❌ | | SARIF 导出 | ✅ | ✅ | ✅ | ❌ | | 成本 | **免费** | 免费/付费 | 付费 | 免费 | | 需要服务器 | **否** | 是 | 是 | 否 | ## 💎 CodeVista 的独特之处 1. **零依赖** — 纯 Python 标准库,无 pip 安装烦恼 2. **单个 HTML 输出** — 分享一个文件,离线永久可用,无需服务器 3. **深度代码异味检测** — 19 种异味类别,基于 AST 级别分析,而不仅仅是正则表达式 4. **架构模式检测** — 根据结构和代码识别 12+ 种模式 5. **代码年龄 × 风险关联** — 年龄、复杂度和变更的统计分析 6. **多格式导出** — HTML、JSON、Markdown、SARIF、CSV、YAML、PDF 7. **Docker 支持** — 多阶段构建、非 root 用户、PDF 就绪 8. **精美设计** — 深色模式、玻璃态效果、内联 SVG 图表、动画 9. **适用于任何代码库** — 50+ 语言,无需配置 10. **CI/CD 就绪** — SARIF 导出用于 GitHub 代码扫描集成 ## 🏗️ 架构 ``` codevista/ ├── cli.py # CLI interface (argparse) ├── analyzer.py # Core analysis engine ├── report.py # HTML report generator ├── metrics.py # Health scores & recommendations ├── smells.py # Code smell detection (19 categories) ├── architecture.py # Architecture pattern detector ├── code_age.py # Code age & risk analysis ├── export.py # Multi-format export (HTML/JSON/MD/SARIF/CSV/YAML/PDF) ├── security.py # Secret/vulnerability scanning ├── dependencies.py # Dependency parsing & analysis ├── git_analysis.py # Git stats extraction ├── trends.py # Trend analysis & snapshot tracking ├── team.py # Team metrics & collaboration analysis ├── integrations.py # CI/CD output (SARIF, Checkstyle, JUnit, GitLab) ├── decay.py # Architectural decay detector ├── codedna.py # CodeDNA fingerprinter ├── lint_rules.py # Language-specific lint rules (PEP 8, Airbnb, gofmt, clippy, Google) ├── languages.py # Language definitions & colors ├── config.py # Configuration & ignore patterns ├── utils.py # Utilities & color schemes └── templates/ # HTML templates ``` ## 🛠️ 技术栈 - **Python 3.7+**(仅标准库) - **内联 SVG** 用于所有图表 - **CSS 自定义属性** 用于主题 - **原生 JavaScript** 用于交互 - **AST 解析** 用于深度代码分析(Python) ## 🤝 贡献 1. Fork 它 2. 创建您的功能分支(`git checkout -b feature/amazing`) 3. 提交您的更改(`git commit -m 'Add amazing feature'`) 4. 推送到分支(`git push origin feature/amazing`) 5. 打开 Pull Request ## ⭐ Star 历史 Star History ## 📄 许可证 MIT © 2026 — 参见 [LICENSE](LICENSE) ## 💡 为什么选择 CodeVista? - **零依赖** — 纯 Python,无需 Node.js,无需数据库,无需外部工具 - **80+ 种语言** — 开箱即用,适用于几乎任何代码库 - **精美的 HTML 报告** — 精美、交互式的报告,您会真的想看 - **安全优先** — 30+ 种密钥检测模式,包括 Stripe、AWS、GitHub 令牌 - **独特功能** — CodeDNA 指纹和架构腐化检测(其他工具没有) - **CI/CD 就绪** — SARIF、Checkstyle 和 JUnit XML 输出格式 ## 👥 用例 | 用例 | 如何使用 | |----------|-----| | **个人开发者** | 获取项目的健康评分,发现安全问题 | | **工程团队** | 跟踪代码质量趋势,比较团队成员指标 | | **CI/CD 管道** | 为 GitHub 代码扫描生成 SARIF 报告 | | **开源维护者** | 分析 PR 质量,自动检测代码异味 | | **代码审查** | 获取关于架构、复杂度和重复率的可自动反馈 | | **教育** | 使用可视化、交互式报告教授代码质量概念 | ## 🌐 连接 - [![GitHub](https://img.shields.io/badge/GitHub-rudra496-181717?logo=github)](https://github.com/rudra496) - [![LinkedIn](https://img.shields.io/badge/LinkedIn-rudrasarker-0A66C2?logo=linkedin)](https://www.linkedin.com/in/rudrasarker) - [![X/Twitter](https://img.shields.io/badge/X-@Rudra496-000000?logo=x)](https://x.com/Rudra496) - [![Facebook](https://img.shields.io/badge/Facebook-rudrasarker130-1877F2?logo=facebook)](https://www.facebook.com/rudrasarker130) - [![YouTube](https://img.shields.io/badge/YouTube-@rudrasarker9732-FF0000?logo=youtube)](https://youtube.com/@rudrasarker9732) - [![Dev.to](https://img.shields.io/badge/Dev.to-rudra__sarker-000000?logo=devdotto)](https://dev.to/rudra_sarker) - [![ResearchGate](https://img.shields.io/badge/ResearchGate-Rudra_Sarker-00CCBB?logo=researchgate)](https://www.researchgate.net/profile/Rudra-Sarker-3)

rudra496 用 ❤️ 构建 · LinkedIn
MIT 许可证 · 永久免费开源

标签:HTML报告, IPv6支持, lint规则, Python, SARIF, SOC Prime, 云安全监控, 代码分析, 代码审查, 代码指标, 代码指纹, 代码气味, 代码腐化, 健康评分, 凭证管理, 多语言支持, 子域名暴力破解, 安全扫描, 安全测试框架, 开发工具, 技术债务, 无后门, 时序注入, 架构检测, 自动化检测, 请求拦截, 逆向工具, 错误基检测, 静态代码分析, 静态分析