✨ 项目简介
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 用户
- 下载项目 ```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
首次使用配置
获取 GitHub Token
- 访问 GitHub Token 设置
- 点击 "Generate new token" → "Generate new token (classic)"
- 勾选
repo权限 - 复制生成的 Token
软件配置
1. 打开应用 → 点击左下角设置图标 ⚙️ 2. 选择 "认证" 标签页 3. 粘贴 Token → 点击 "验证并保存" 4. 等待认证成功提示开始使用
- 📁 选择仓库: 从下拉列表中选择目标仓库
- 📝 编辑提交: 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
Log in or sign up for Devpost to join the conversation.