文档介绍
本页目录

指南 01

介绍

了解面向 AI Agent 的 Monorepo 引擎与 Git 服务器。

用 Rust 编写的开源 trunk-based monorepo 存储与 Git 托管服务端,支持 Git Smart HTTP、Git LFS、OCI 镜像仓库、构建产物存储和 Agent 会话捕获(Agent Session Capture)。

License: MIT OR Apache-2.0 Docker Image Website

第一代 Mega 奠定了 monorepo 与 Git 托管平台的基础。Mega2 是面向 Agent 的第二代引擎,以 Monorepo 引擎和 **Agent Session Capture(Agent 会话捕获)**为两项核心能力。

Mega2 开源版以 trunk / storage-only 模式运行,不提供 Web UI 或 Change List。它负责服务端的 monorepo 存储与 API;交互式浏览可使用 Libra 提供的终端命令。

从快速开始启动本地实例,再到文档索引查找用户、运维和开发指南。仓库与推送规则见使用指南;贡献流程与检查要求见贡献指南。

项目概览

项目说明
定位面向 AI Agent 的 monorepo 引擎与 Git 托管服务端
主页gitmega.ai
语言Rust(edition 2024),单个 Cargo 包 mega2
运行模式trunk / storage-only:公开主干为 refs/heads/main
协议与接口Git Smart HTTP、只读 SSH、Git LFS、OCI Distribution(/v2)、HTTP API
API 文档OpenAPI:/api/openapi.json;Swagger UI:/swagger-ui
存储Postgres 保存元数据;本地文件系统或 S3-compatible 对象存储保存 Git 对象、LFS、产物和镜像
镜像Docker Hub genedna/mega2,默认 HTTP 端口 9000
不包含Web UI、Change List、多分支 monorepo 工作流
配套工具Libra(Agent 侧版本控制与终端浏览器)、ScorpioFS(monorepo 文件系统挂载)
许可证MIT OR Apache-2.0

面向 Agent 的推荐组合

面向 Agent 的 monorepo 开发,最佳实践是配合使用 Mega2 + ScorpioFS + Libra:

  • Mega2 提供集中式 monorepo 存储与托管,并可选提供 Agent Session Capture。
  • ScorpioFS 将远程 monorepo 路径挂载为本地文件系统,供开发工具和 Agent 浏览工作区。
  • Libra 提供 Agent 侧的版本控制工作流,以及连接 Mega2 的终端浏览器命令。

使用 libra mega2 browser --server https://mega2.example.com 浏览远程 monorepo。该终端界面一次显示一个目录层级,支持创建、删除、移动和重命名目录;Tag 面板可列出、创建和删除根 Tag,创建和删除需要写入凭据。此命令读取 Mega2 的远程目录数据,不执行 Git clone、fetch 或 push。详见使用指南中的 Libra 章节。

核心能力

Monorepo 引擎

Mega2 为 monorepo 提供 trunk-based Git 存储与托管。普通 monorepo 路径以 refs/heads/main 为公开主干;Git 客户端不能推送其它分支或 Tag,受支持的 Tag 与目录操作通过 HTTP API 或 Libra 终端浏览器完成。开源版不包含依赖多分支的 Change List。

Git 元数据存于 Postgres,Git 对象存于本地或 S3-compatible 对象存储。[monorepo].import_dir(默认 /third-party)下的 ImportRepo 遵循普通 Git 语义,可使用多个分支和客户端 Tag,适合存放需要独立同步的第三方仓库。ImportRepo 接受后续推送(分支与 tag),并可经 POST /api/v1/import-repo/remove 清理(需要 push token;push_auth=none 的部署在服务器上运行 mega2 import-repo remove),见ImportRepo 生命周期。新路径开通与推送规则见Monorepo 路径策略。

Agent Session Capture

Agent Session Capture 是独立于 Git push 的可选 HTTP 能力。在 storage-only 部署中启用 [agent_capture].enabled=true 并配置 ingest token 后,Mega2 可捕获 Agent 会话、事件、checkpoint、文件操作和 transcript,供后续查询、审查与审计。它不受 Git 分支或 receive-pack 规则控制;配置细节见配置指南。

其他能力

  • Git 与大文件:通过 Git Smart HTTP 执行 clone、fetch、pull 和 push;storage-only 下 SSH 仅支持读取;同时支持 Git LFS。
  • 构建产物与 OCI:Artifact Sets 用于保存构建产物;启用 [oci].enabled=true 后,可通过 /v2 使用 OCI 容器镜像仓库。Git、LFS、Artifact 和 OCI 数据可共用对象存储。
  • HTTP API:提供 monorepo 文件、目录、Tag 等读写接口;完整接口与行为见使用指南。
  • 安全与运维:支持 push token、内嵌 Vault 与 SecretRef、Webhook 通知,以及配置校验、Profile 和受控热加载;完整设置见配置指南和部署指南。

用 Compose 快速启动

评估栈直接从 Docker Hub 拉取正式发布镜像(genedna/mega2:latest),不构建源码、不需要 bootstrap。按平台选择 compose 文件(两者让 artifact 预签名 URL 对宿主机可达的方式不同,见部署指南):

# macOS + OrbStack
docker compose -f macos-orbstack-mega2-compose.yml up -d --wait
# Linux Docker
docker compose -f linux-mega2-compose.yml up -d --wait

HTTP:http://127.0.0.1:9000/。这是仅限本机的匿名设置(push_auth=none,绑定 127.0.0.1);token 鉴权或共享部署见部署指南与 docs/deploy-trunk.md。先按快速开始启动并推送,再查看进阶使用场景中的仓库迁移、LFS、OCI 和构建产物示例。

本地开发与测试见贡献指南。

停止

使用 down -v 会删除 Docker 数据卷中的数据。

docker compose -f macos-orbstack-mega2-compose.yml down -v   # 或 linux-mega2-compose.yml

贡献

大改动按以下流程推进:

  1. 先开 Issue,说明问题、动机、范围和不包含的内容;先与维护者确认方向,再开始实现。
  2. 再写计划。从计划模板(中文规范原文)复制结构,写成 docs/plan/plan-YYYYMMDD.md。强制章节不得删;不适用写 N/A 和原因。
  3. 计划评审通过后再执行。按任务卡拆分实现、补测试与文档,跑通提交门禁后再合入。

计划不等于实现:落笔时以当前 checkout 的源码、测试、配置和文档为事实基线。Issue 里达成的口头约定不能替代任务卡上的验收命令。

提交代码前运行:

cargo +nightly fmt --all --check
cargo clippy --all-targets --all-features -- -D warnings
source .env.test && cargo test --all

细节见 AGENTS.md、贡献指南与 docs/plan/README.md。

文档

从这里开始内容
docs/README.zh.md用户、运维和开发文档索引
docs/quick-start.zh.md启动本地 Compose 栈并完成首次推送
docs/recipes.zh.md仓库迁移、LFS、OCI、产物和数据持久化示例
docs/user-guide.zh.mdGit、HTTP API、Libra 和 CLI 使用说明
docs/configuration.zh.md配置来源、SecretRef、Profile、热加载与校验
docs/deployment.zh.md部署与加固 trunk / storage-only 服务
docs/architecture.zh.md模块边界、数据存储与写入流程
docs/contributing.zh.md本地开发、贡献流程、代码约定与集成测试

子系统参考与项目记录见文档索引。

许可证

Mega2 采用 MIT 与 Apache-2.0 双许可证(MIT OR Apache-2.0),使用者可任选其一:

直接复制进本仓库的第三方代码(如有)在 LICENSE-THIRD-PARTY 中声明。

除非另有明确说明,你有意提交并纳入本项目的任何贡献,按照 Apache-2.0 许可证的定义,均按上述双许可证授权,不附加任何其他条款或条件。

在 GitHub 查看源文档 ↗来源版本: f24f09bcab