Skip to main content

基于大模型的智能代码分析工具,支持代码审查、文档生成、架构分析和安全扫描

Project description

Code Analysis - 智能代码分析工具

Python 3.8+ License: MIT

基于私有化部署大模型的智能代码分析工具,支持代码审查、文档生成、架构分析和安全扫描。

✨ 核心特性

特性 描述
🔍 代码审查 自动分析代码质量,识别问题和安全漏洞
📝 文档生成 自动生成模块文档、API 文档
🏗️ 架构分析 分析项目结构、依赖关系、代码度量
🔒 安全扫描 检测常见安全漏洞和风险代码
📦 批量操作 批量克隆、批量 Git 操作、多仓库管理
📂 目录分析 扫描项目结构、识别技术栈
🌐 多语言支持 Python, Java, Kotlin, C, JavaScript, TypeScript 等
🤖 私有化部署 兼容 OpenAI API 格式,支持任何私有化 LLM

🚀 快速开始

安装

# 克隆项目
git clone https://gitcode.com/wellchang/code-analysis.git
cd code-analysis

# 安装依赖
pip install httpx docopt pyyaml

配置

# 初始化配置文件
python cli.py config --init

# 编辑配置文件
# ~/.code-analysis/config.yaml

使用

# 代码审查
python cli.py review ./src

# 架构分析
python cli.py arch ./src

# 安全扫描
python cli.py security ./src --deep

# 目录扫描
python cli.py scan-dir ./project

📖 命令概览

Commands:
    review          代码审查
    review-commit   审查指定提交
    doc             生成文档
    arch            架构分析
    security        安全漏洞扫描
    clone           克隆仓库并分析
    batch-clone     批量克隆仓库
    batch-pull      批量拉取更新
    git-status      查看多仓库状态
    scan-dir        扫描目录结构
    config          配置管理

🌍 支持的语言

语言 文件扩展名 解析模式
Python .py AST
Java .java AST
Kotlin .kt, .kts 双模式
C .c, .h 双模式
JavaScript .js, .jsx 正则
TypeScript .ts, .tsx 正则

📚 文档

🔧 项目结构

code-analysis/
├── cli.py                 # CLI 入口
├── core/
│   ├── analyzer.py        # 分析引擎核心
│   ├── llm_client.py      # LLM 客户端
│   ├── git_handler.py     # Git 操作 + 批量操作
│   └── config.py          # 配置管理
├── analyzers/
│   ├── code_review.py     # 代码审查
│   ├── documentation.py   # 文档生成
│   ├── architecture.py    # 架构分析
│   ├── security.py        # 安全扫描
│   └── directory.py       # 目录分析
└── parsers/
    ├── python_parser.py   # Python AST 解析器
    ├── java_parser.py     # Java AST 解析器
    ├── kotlin_parser.py   # Kotlin 解析器(双模式)
    ├── c_parser.py        # C 语言解析器(双模式)
    └── ...

💡 使用示例

代码审查

# 审查整个项目
python cli.py review ./src --output report.md

# 审查最新提交
python cli.py review-commit HEAD

安全扫描

# 深度安全扫描
python cli.py security ./src --deep --output security.md

批量操作

# 批量克隆(从文件读取 URL 列表)
python cli.py batch-clone repos.txt ./projects --parallel

# 查看多仓库状态
python cli.py git-status ~/projects

⚙️ 配置示例

# ~/.code-analysis/config.yaml
llm:
  base_url: http://localhost:8000/v1
  api_key: sk-your-api-key
  model: qwen3.5-35b-a3b
  temperature: 0.7
  max_tokens: 4096

analysis:
  max_file_size: 102400
  ignore_patterns:
    - node_modules
    - .git
    - __pycache__
    - venv

🤝 扩展开发

添加新的分析器

from core import Analyzer

class CustomAnalyzer:
    def __init__(self, analyzer: Analyzer):
        self.analyzer = analyzer

    def analyze(self, file_path: str) -> dict:
        content = self.analyzer.read_file(file_path)
        prompt = f"分析以下代码:\n{content}"
        result = self.analyzer.llm_client.chat(prompt)
        return {"result": result}

使用解析器 API

from parsers import KotlinASTParser, CASTParser

# Kotlin 解析
parser = KotlinASTParser()
result = parser.parse_file('Example.kt', mode='auto')

# C 解析
parser = CASTParser()
result = parser.parse_file('main.c', mode='fast')

📄 许可证

MIT License

🔗 链接

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vcode_analysis-0.1.0.tar.gz (94.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vcode_analysis-0.1.0-py3-none-any.whl (87.0 kB view details)

Uploaded Python 3

File details

Details for the file vcode_analysis-0.1.0.tar.gz.

File metadata

  • Download URL: vcode_analysis-0.1.0.tar.gz
  • Upload date:
  • Size: 94.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vcode_analysis-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b12640ab142cbc491576a37b925c944fe9f0626535a9712f24fedc302ac7b487
MD5 5bbb8523168392bf2d8d7ca86de820c4
BLAKE2b-256 744be5d80b9b4097873a4ee185ef24caf96f85ffeb2d566be5f86145db86adb0

See more details on using hashes here.

File details

Details for the file vcode_analysis-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vcode_analysis-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 87.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vcode_analysis-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 769d1133f166eec8c1f68e1c7f85bf50574391035bb72693ac6925e876766e11
MD5 cf56f934282ff9759a55721c2ee12cf1
BLAKE2b-256 1018356366d060b6f0f0b1336a61650bb597f37b2d68503aa1c52a5d8ebe41fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page