✨ 项目简介

GitHub Uploader Pro (V4.0 Nebula) 是一款现代化的桌面应用程序,专为简化 Git 操作流程而设计。我们深知传统 Git 命令行对于初学者和追求效率的开发者来说有多么不友好,因此我们创造了一个集 美学设计智能自动化 于一身的解决方案。

价值主张

  • 降低门槛: 让 Git 操作变得直观简单,无需记忆复杂命令
  • 提升效率: 一键完成从本地到云端的完整上传流程
  • 视觉享受: 采用 Cyberpunk + Glassmorphism 设计语言,打破传统工具沉闷的界面
  • 智能辅助: 内置 AI 诊断与自动化修复机制

版本亮点 (V4.0 Nebula)

  • 🔥 全新 Ultra-Glass UI 设计
  • 🤖 智能 AI 辅助提交
  • 🌐 多平台全面支持
  • 异步无阻塞操作
  • 🔒 安全凭证管理

🎯 核心特性

🎨 视觉设计

  • Ultra-Glass 磨砂玻璃效果: 采用先进的 QSS 样式表技术
  • Cyberpunk 主题: 霓虹色调与深色背景的完美结合
  • 动态主题切换: 支持深色/浅色模式一键切换
  • 流畅动画: 所有交互均伴有平滑的过渡动画

⚡ 高效功能

  • 一键智能上传: 自动识别变更,智能生成提交信息
  • 环境自检测: 自动识别并修复 Git 环境问题
  • 智能 .gitignore: 基于项目类型自动生成忽略规则
  • 批量操作: 支持多文件/多仓库同时管理
  • 实时状态监控: 可视化展示上传进度与状态

🛡️ 可靠保障

  • 断点续传: 网络异常时自动恢复上传
  • 操作回滚: 支持撤销最近的操作
  • 安全存储: 使用系统密钥库安全保存 Token
  • 完整日志: 详细的操作日志便于排查问题

🚀 快速开始

零基础入门指南

Windows 用户

  1. 下载项目 ```bash # 方式1: 直接下载ZIP # 点击 GitHub 页面绿色 "Code" 按钮 → "Download ZIP"

# 方式2: 使用 Git git clone https://github.com/lza6/GitHub-Uploader-Pro.git cd GitHub-Uploader-Pro


2. **一键启动**
   - 找到 `启动.bat` 文件
   - **双击运行**(右键以管理员身份运行效果更佳)

3. **等待初始化**
   - ✅ 自动检测 Python 环境
   - ✅ 自动安装所需依赖
   - ✅ 自动配置虚拟环境
   - ✅ 启动应用程序

#### macOS/Linux 用户
```bash
# 1. 克隆项目
git clone https://github.com/lza6/GitHub-Uploader-Pro.git
cd GitHub-Uploader-Pro

# 2. 运行启动脚本
chmod +x 启动.sh
./启动.sh

# 或使用 Python 直接运行
python3 -m venv venv
source venv/bin/activate  # Linux/macOS
# 或 venv\Scripts\activate  # Windows
pip install -r requirements.txt
python main.py

首次使用配置

  1. 获取 GitHub Token

    • 访问 GitHub Token 设置
    • 点击 "Generate new token" → "Generate new token (classic)"
    • 勾选 repo 权限
    • 复制生成的 Token
  2. 软件配置

    1. 打开应用 → 点击左下角设置图标 ⚙️
    2. 选择 "认证" 标签页
    3. 粘贴 Token → 点击 "验证并保存"
    4. 等待认证成功提示
    
  3. 开始使用

    • 📁 选择仓库: 从下拉列表中选择目标仓库
    • 📝 编辑提交: AI 自动生成或手动编辑提交信息
    • 🚀 一键上传: 点击上传按钮,等待完成

🏗️ 架构设计

系统架构图

graph TB
    subgraph "🎨 表示层 (Presentation Layer)"
        UI[Ultra-Glass UI<br/>PyQt6 界面]
        Theme[主题管理器<br/>动态切换]
        Widgets[自定义组件库<br/>按钮/卡片/进度条]
    end

    subgraph "⚡ 业务层 (Business Layer)"
        Manager[上传管理器<br/>流程控制器]
        Auth[认证服务<br/>OAuth2/Token]
        AI[AI 服务<br/>智能提交/诊断]
    end

    subgraph "🔧 核心层 (Core Layer)"
        GitOps[Git 操作引擎<br/>GitPython]
        GitHubAPI[GitHub API 客户端<br/>PyGithub]
        FileOps[文件操作器<br/>智能扫描]
    end

    subgraph "🛡️ 支持层 (Support Layer)"
        Config[配置管理<br/>JSON/YAML]
        Logger[日志系统<br/>Loguru]
        Cache[缓存服务<br/>Redis/SQLite]
    end

    subgraph "🌐 外部服务"
        GitHub[GitHub 平台]
        Git[Git 命令行]
        LLM[AI 大模型 API]
    end

    UI --> Manager
    Manager --> GitOps
    Manager --> GitHubAPI
    Manager --> AI
    GitOps --> Git
    GitHubAPI --> GitHub
    AI --> LLM

    Theme --> UI
    Widgets --> UI
    Auth --> Manager
    FileOps --> Manager

    Config --> Manager
    Logger --> Manager
    Cache --> Manager

模块交互流程

sequenceDiagram
    participant U as 用户
    participant UI as 界面层
    participant M as 上传管理器
    participant G as Git 引擎
    participant API as GitHub API
    participant AI as AI 服务

    U->>UI: 点击"选择仓库"
    UI->>API: 获取用户仓库列表
    API-->>UI: 返回仓库数据
    UI-->>U: 显示仓库选择器

    U->>UI: 点击"扫描文件"
    UI->>M: 触发文件扫描
    M->>G: 执行 git status
    G-->>M: 返回变更文件
    M-->>UI: 显示文件列表

    U->>UI: 输入提交信息
    UI->>AI: 请求智能优化
    AI-->>UI: 返回优化建议
    UI-->>U: 显示建议

    U->>UI: 点击"上传"
    UI->>M: 开始上传流程
    M->>G: git add .
    M->>G: git commit
    M->>G: git push
    G-->>M: 返回结果
    M->>API: 验证推送状态
    API-->>M: 返回验证结果
    M-->>UI: 显示上传结果
    UI-->>U: 操作完成通知

🛠️ 技术栈

核心技术组件

技术领域 技术选型 版本 用途说明
GUI 框架 PyQt6 6.5+ 现代化跨平台界面开发
异步处理 QAsync + Asyncio Latest 无阻塞UI操作
Git 操作 GitPython 3.1+ Pythonic Git操作库
GitHub API PyGithub 2.0+ GitHub REST API封装
HTTP 客户端 HTTPX 0.24+ 异步HTTP请求
配置管理 Pydantic 2.0+ 数据验证与配置
日志系统 Loguru 0.7+ 结构化日志记录
AI 集成 OpenAI SDK 1.0+ GPT模型集成
样式引擎 QSS + CSS3 - 现代化界面样式
打包工具 PyInstaller 6.0+ 应用打包分发

开发工具链

graph LR
    subgraph "🔧 开发工具"
        Editor[VS Code<br/>Python扩展]
        Env[Poetry<br/>依赖管理]
        Test[Pytest<br/>单元测试]
        Lint[Black/Flake8<br/>代码规范]
    end

    subgraph "📦 构建部署"
        Build[PyInstaller<br/>打包]
        CI[GitHub Actions<br/>自动化]
        Deploy[Releases<br/>分发]
        Docs[MkDocs<br/>文档]
    end

    Editor --> Env
    Env --> Test
    Test --> Lint
    Lint --> Build
    Build --> CI
    CI --> Deploy
    Deploy --> Docs

📁 项目结构

GitHub-Uploader-Pro/
├── 📁 core/                          # 核心业务逻辑
│   ├── 🎮 upload_manager.py          # 上传流程控制器
│   ├── 🔐 github_auth.py             # GitHub认证管理
│   ├── 🤖 ai_assistant.py           # AI智能助手
│   ├── 📊 file_scanner.py           # 智能文件扫描
│   ├── 🔄 git_operations.py          # Git操作封装
│   ├── 🌐 github_client.py           # GitHub API客户端
│   ├── 📝 ignore_generator.py        # .gitignore生成器
│   └── 🗃️ credential_manager.py      # 凭证安全存储
│
├── 📁 ui/                           # 用户界面层
│   ├── 🖼️ main_window.py            # 主窗口控制器
│   ├── 🎨 theme_manager.py          # 主题管理器
│   ├── 📱 widgets/                  # 自定义组件
│   │   ├── 🎯 glass_button.py       # 磨砂玻璃按钮
│   │   ├── 📊 progress_card.py      # 进度卡片
│   │   ├── 📝 console_widget.py     # 控制台组件
│   │   └── 🏷️ file_tree.py          # 文件树组件
│   └── 🎛️ dialogs/                  # 对话框组件
│
├── 📁 utils/                        # 工具函数库
│   ├── 📋 logger.py                 # 日志配置
│   ├── ⚙️ config.py                 # 配置管理器
│   ├── 🔧 validators.py             # 数据验证器
│   └── 📁 helpers/                  # 辅助函数
│
├── 📁 assets/                       # 资源文件
│   ├── 🎨 themes/                   # 主题文件
│   ├── 🖼️ icons/                    # 图标资源
│   ├── 🎵 sounds/                   # 音效文件
│   └── 📄 fonts/                    # 字体文件
│
├── 📁 tests/                        # 测试套件
│   ├── 🧪 unit/                     # 单元测试
│   ├── 🔍 integration/              # 集成测试
│   └── 📊 performance/              # 性能测试
│
├── 📁 scripts/                      # 构建脚本
│   ├── 🏗️ build.py                  # 打包脚本
│   ├── 🚀 launch.bat                # Windows启动
│   ├── 🍏 launch.sh                 # macOS/Linux启动
│   └── 📦 installer.nsi             # NSIS安装脚本
│
├── 📄 main.py                       # 应用入口点
├── 📄 requirements.txt              # Python依赖
├── 📄 pyproject.toml               # 项目配置
├── 📄 README.md                     # 项目说明
└── 📄 LICENSE                       # 开源协议

关键文件说明

文件 重要性 功能描述
main.py 🔑 核心 应用入口,初始化所有组件
core/upload_manager.py ⭐ 关键 协调所有上传流程的核心控制器
ui/main_window.py 🎨 重要 主界面逻辑,信号槽连接中心
core/ai_assistant.py 🤖 创新 AI智能提交与错误诊断
scripts/launch.bat 🚀 便捷 Windows一键启动脚本

Built With

  • asyncio
  • css3
  • gitpython
  • httpx
  • loguru
  • openai
  • pydantic
  • pygithub
  • pyinstaller
  • pyqt6
  • qasync
  • qss
Share this project:

Updates