Skip to content

Releases: arwei944/github-mirror

v7.6.0 - CDN Cache Busting & Route Fixes

20 May 01:24

Choose a tag to compare

What's New

CDN Cache Busting

  • Add version suffix (-v7.6.0) to all frontend chunk filenames
  • Forces HF Space CDN to fetch new files instead of using cached old versions
  • Fixes 'Failed to fetch dynamically imported module' error

Route Fixes

  • Fix route ordering: specific routes now mounted before catch-all proxy
  • Fix API error handling: return empty array instead of 500 when GitHub API fails
  • Fix dashboard data loading: repos now fetched via /api/github/repos API
  • Fix trending repos 'loading...' stuck issue

Version Updates

  • Bump version from 7.5.0 to 7.6.0 across all files
  • Update vite.config.js, config.py, version.js, Dockerfile
  • Rebuild frontend with new version suffix

Stats

  • 88 tests passing
  • 195 API endpoints
  • 10 router modules
  • 30 MCP tools

v7.5.0 - 完全模块化架构

20 May 00:20

Choose a tag to compare

重大变更

  • 移除 app.py 桥接层 — 运行时不再依赖 6450 行的单体文件
  • 195 个 API 路径 分布在 10 个独立路由模块中

新增模块

模块 路由数 职责
github_repos.py 178 仓库/Issues/PRs/Labels/Milestones/Releases/Branches/Contents/Commits/Webhooks/Reactions 等
github_actions.py 20 Workflows/Runs/Secrets/Artifacts/Runners
github_misc.py 9 Activity/Notifications/Search/GraphQL/Trending

架构

backend/
├── main.py              # 应用入口 (无桥接层)
├── config.py            # Pydantic Settings
├── routers/
│   ├── github_repos.py  # 仓库相关 API
│   ├── github_actions.py # Actions API
│   ├── github_misc.py   # 杂项 API
│   ├── github_proxy.py  # Catch-all 代理
│   ├── mcp.py           # MCP 协议
│   ├── webhooks.py      # Webhook 接收
│   ├── sync.py          # 数据同步
│   ├── system.py        # 系统管理
│   └── deploy.py        # HF 部署
├── core/
│   ├── events.py        # 事件总线
│   ├── cache_v2.py      # LRU 缓存
│   ├── audit.py         # 审计日志
│   └── shared_state.py  # 共享状态
├── mcp_tools/           # MCP 工具集
└── clients/             # GitHub HTTP 客户端

测试

  • 65 个单元测试全部通过
  • 服务启动验证通过

v7.4.0 - 模块化架构重构

19 May 23:33

Choose a tag to compare

v7.4.0 - 模块化架构重构

🎯 核心变更

Phase 1: 模块化架构基础

  • 创建 backend/ 模块化目录结构 (8 个子模块)
  • Pydantic Settings 配置管理
  • 异步 GitHubClient (httpx AsyncClient, 连接池, 自动分页)
  • AppError 统一错误处理体系 (8 种异常类型)
  • 中间件独立模块 (auth / rate_limit / cache)
  • SQLite 数据库连接管理 (WAL 模式)
  • FastAPI lifespan 生命周期管理

Phase 2: MCP 服务重构

  • BaseTool 抽象基类 + ToolParameter + ToolResult
  • ToolRegistry 注册表 (register/call/list_tools)
  • 30 个 MCP 工具从 if-elif 链迁移到独立类
    • 21 个 GitHub 工具 / 3 个 HF 工具 / 1 个 Shell 工具
    • 1 个 Proxy 工具 (SSRF 防护) / 2 个 Project 工具 / 2 个 Config 工具
  • Shell 安全策略 (白名单 + 黑名单)

Phase 3: 路由桥接层

  • 路由注册器从 app.py 桥接 247 个 API 路由
  • 所有端点路径和参数完全兼容

Phase 4: 基础设施升级

  • 异步事件总线 (pub/sub, 通配符, 12 种事件类型)
  • LRU 缓存 (TTL 过期, 线程安全, 命中率统计)
  • 审计日志 (环形缓冲区, 过滤查询)
  • MCP 工具调用自动记录事件和审计日志

Phase 5: 前端优化

  • 4 个通用 Hook (useFetch/useDebounce/useLocalStorage/useToggle)
  • Vite 代码分割 (react/markdown/diff/charts 独立 chunk)

部署管理整合

  • deploy_tool.py 核心逻辑迁移到 backend/services/
  • 8 个部署 API 端点 (单部署/批量/状态/历史/Space 监控)

📊 影响范围

  • 涉及文件: 42 files changed
  • 新增代码: 3841+
  • 删除代码: 35-

✅ 兼容性

  • API 端点: 完全兼容 (247 个端点零中断)
  • MCP 协议: 完全兼容 (30 个工具)
  • 前端: 完全兼容
  • 环境变量: 新增 pydantic-settings 依赖

🧪 测试

  • 单元测试: 65/65 passed

📦 部署

docker pull ghcr.io/arwei944/github-mirror:v7.4.0
docker run -d -p 7860:7860 ghcr.io/arwei944/github-mirror:v7.4.0

v6.5.0 - Streamable HTTP Transport

19 May 20:36

Choose a tag to compare

🚀 What's New

MCP Streamable HTTP 传输支持

新增 Streamable HTTP 传输协议端点,兼容 SOLO、Claude Desktop 等新版 MCP 客户端。

  • POST /mcp — Streamable HTTP 端点(推荐)
  • GET /mcp — 客户端探测端点(返回 405)
  • GET /mcp/sse/message — SSE 探测端点(返回 405)
  • ♻️ 提取公共 JSON-RPC 处理函数 _handle_mcp_jsonrpc()
  • 📝 更新 README 双传输协议文档

Bug Fixes

  • 修复 SOLO 客户端连接 MCP 服务器时 HTTP 405 Method Not Allowed 错误
  • 修复 Streamable HTTP 客户端探测请求导致的初始化失败

MCP 客户端配置

{
  "mcpServers": {
    "github-mirror": {
      "url": "https://arwei944-github-mirror.hf.space/mcp"
    }
  }
}

Full Changelog: v6.4.0...v6.5.0