Skip to content

oss-compass/openchecker

 
 

Repository files navigation

OpenChecker - 智能化软件合规检测平台

License: MIT Python 3.8+ Kubernetes

OpenChecker 是一个全面的软件分析与合规检测平台,通过自动化的安全、许可证和质量评估,为软件开发团队提供端到端的代码仓库合规解决方案。

🚀 核心特性

📊 全方位代码分析

  • 安全漏洞检测 - 基于OSV数据库的深度安全扫描
  • 许可证合规 - 智能识别和分析开源许可证兼容性
  • 代码质量评估 - 集成SonarQube进行代码质量分析
  • 依赖关系分析 - 全面的软件依赖树和风险评估
  • 二进制文件检测 - 识别和标记潜在的二进制安全风险

🏗️ 分布式微服务架构

  • 云原生设计 - 基于Kubernetes的可扩展容器化部署
  • 异步消息处理 - RabbitMQ驱动的高并发任务处理
  • 智能负载均衡 - 多Agent并发执行,提升检测效率
  • 容错机制 - 死信队列保障任务可靠性

🤖 AI增强分析

  • 项目智能分类 - 基于机器学习的项目类型自动识别
  • 聚类分析 - 相似项目模式识别和风险预测
  • 智能报告生成 - 自动化合规报告和建议生成

🎯 适用场景

  • 企业级软件开发 - 开源治理、合规审计、供应链安全
  • DevOps集成 - CI/CD流水线集成、自动化检测、质量门禁
  • 开源项目管理 - 社区项目审查、贡献者指导、健康度监控

🏗️ 系统架构

OpenChecker采用现代化的微服务架构,确保高可用性、可扩展性和容错能力:

架构概览

flowchart TD
    subgraph "外部用户"
        User["开发者/企业用户"]
        CICD["CI/CD系统"]
        WebClient["Web客户端"]
    end
    
    subgraph "入口层"
        DNS["DNS解析<br/>openchecker.mlops.pub"]
        Ingress["Nginx Ingress<br/>SSL终端/负载均衡"]
    end
    
    subgraph "应用层"
        API["Flask API<br/>主应用"]
        Auth["JWT认证<br/>身份验证"]
    end
    
    subgraph "消息层"
        RMQ["RabbitMQ<br/>消息代理"]
        MainQueue["opencheck队列<br/>主任务队列"]
        DLQ["dead_letters队列<br/>死信队列"]
    end
    
    subgraph "工作层"
        Agent1["Agent 1<br/>分析代理"]
        Agent2["Agent 2<br/>分析代理"]
        Agent3["Agent 3<br/>分析代理"]
    end
    
    subgraph "分析引擎"
        OSV["OSV-Scanner<br/>漏洞扫描"]
        ScanCode["ScanCode<br/>许可证分析"]
        Sonar["SonarQube<br/>代码质量"]
        ORT["ORT<br/>依赖分析"]
        Binary["Binary-Checker<br/>二进制检查"]
        AI["AI分析<br/>智能检查"]
    end
    
    subgraph "存储层"
        NFS["NFS共享存储<br/>配置和临时文件"]
        Config["配置管理<br/>config.ini"]
    end
    
    subgraph "外部服务"
        GitHub["GitHub API"]
        Gitee["Gitee API"]
        SonarServer["SonarQube Server"]
        LLM["LLM服务<br/>火山引擎"]
    end
    
    %% 用户交互流程
    User --> DNS
    CICD --> DNS
    WebClient --> DNS
    DNS --> Ingress
    Ingress --> API
    
    %% 认证和任务提交
    API --> Auth
    API --> RMQ
    RMQ --> MainQueue
    MainQueue --> DLQ
    
    %% 任务分发和执行
    MainQueue --> Agent1
    MainQueue --> Agent2
    MainQueue --> Agent3
    
    %% 分析工具调用
    Agent1 --> OSV
    Agent1 --> ScanCode
    Agent2 --> Sonar
    Agent2 --> ORT
    Agent3 --> Binary
    Agent3 --> AI
    
    %% 存储访问
    Agent1 --> NFS
    Agent2 --> NFS
    Agent3 --> NFS
    API --> Config
    
    %% 外部服务集成
    Agent1 --> GitHub
    Agent2 --> Gitee
    Agent2 --> SonarServer
    Agent3 --> LLM
    
    classDef userLayer fill:#e1f5fe
    classDef entryLayer fill:#f3e5f5
    classDef appLayer fill:#e8f5e8
    classDef messageLayer fill:#fff3e0
    classDef workerLayer fill:#fce4ec
    classDef analysisLayer fill:#f1f8e9
    classDef storageLayer fill:#e0f2f1
    classDef externalLayer fill:#fafafa
    
    class User,CICD,WebClient userLayer
    class DNS,Ingress entryLayer
    class API,Auth appLayer
    class RMQ,MainQueue,DLQ messageLayer
    class Agent1,Agent2,Agent3 workerLayer
    class OSV,ScanCode,Sonar,ORT,Binary,AI analysisLayer
    class NFS,Config storageLayer
    class GitHub,Gitee,SonarServer,LLM externalLayer
Loading

🔧 支持的检测工具

工具 功能 输出格式
osv-scanner 漏洞扫描和安全风险评估 JSON
scancode 许可证和代码信息分析 JSON
binary-checker 二进制文件和归档检测 JSON
sonar-scanner 代码质量和技术债务分析 JSON
dependency-checker 依赖关系和供应链分析 JSON
release-checker 发布内容和签名验证 JSON
readme-checker 文档完整性检查 JSON
maintainers-checker 维护者信息验证 JSON
languages-detector 编程语言识别和统计 JSON

📚 核心文档

📖 访问 DeepWiki 在线文档 以获得更好的阅读体验。

🚀 快速开始

前置要求

  • Python 3.8+
  • Docker & Kubernetes
  • RabbitMQ
  • 足够的存储空间用于代码分析

安装步骤

  1. 克隆仓库

    git clone https://github.com/your-org/openchecker.git
    cd openchecker
  2. 安装依赖

    pip install -r requirements.txt
  3. 配置系统

    cp config/config.ini.example config/config.ini
    # 编辑配置文件,设置SonarQube、Gitee等必要参数
  4. 启动服务

    # 使用Docker Compose快速启动
    docker-compose up -d
    
    # 或者使用Kubernetes部署
    kubectl apply -f k8s/

🔌 API使用示例

认证

所有API端点都需要JWT认证。首先获取访问令牌:

curl -X POST http://your-domain/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"your-username","password":"your-password"}'

启动检测任务

curl -X POST http://your-domain/opencheck \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "commands": ["osv-scanner", "scancode", "sonar-scanner"],
    "project_url": "https://github.com/example/project.git",
    "callback_url": "https://your-domain/callback",
    "task_metadata": {
      "project_name": "示例项目",
      "team": "开发团队A"
    }
  }'

🤝 贡献

  1. Fork本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m '添加某个很棒的功能')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建Pull Request

📞 联系


OpenChecker - 让软件合规检测变得简单、高效、智能 🚀

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.1%
  • Dockerfile 1.1%
  • Shell 0.8%