Maiao:适用于 GitHub、GitLab、Gitea 等平台的 Gerrit 风格代码审查工作流
摘要
Maiao 是一款开发者工具,通过创建堆叠的拉取请求,为 GitHub、GitLab 及其他平台带来 Gerrit 风格的代码审查工作流,实现细粒度的审查和干净的提交历史。
暂无内容
查看缓存全文
缓存时间: 2026/08/26 03:13
runetes/maiao 来源: https://github.com/runetes/maiao # Maiao 许可证 GitHub 所有版本 下载量 > 注意: 这是 adevinta/maiao (https://github.com/adevinta/maiao) 的社区分支。原始维护者已不在 Adevinta 工作,上游仓库已不再积极维护。此分支在 runetes/maiao (https://github.com/runetes/maiao) 下继续开发。 适用于 GitHub、GitLab、Gitea、Forgejo、Bitbucket Cloud 和 Cursor Origin 的 Gerrit 风格代码审查工作流 Maiao 将 堆叠式拉取请求(或合并请求)的强大功能带到你的代码托管平台,使你能够将大型功能拆分为小的、可审查的提交,每个提交本身成为一个 PR/MR。 ## 什么是 Maiao? Maiao 提供 git review 命令,它可以: - 为你的分支中的每个提交创建一个 PR/MR - 自动堆叠 PR/MR,建立正确的父子依赖关系 - 注册原生堆叠(当可用时,如 GitHub Stacks、GitLab 自动检测堆叠) - 优雅地管理修正提交,使用 git commit --fixup - 通过 Change-ID 跟踪提交(使用 Gerrit 的 commit-msg 钩子) - 当 PR/MR 合并时自动变基你的堆叠 - 从远程 URL 自动检测你的提供方 ## 支持的提供方 | 提供方 | PR/MR 类型 | 草稿/WIP | 原生堆叠 | |–––––|————|———–|—————| | GitHub | 拉取请求 | API 字段 | 是(显式注册) | | GitLab | 合并请求 | Draft: 标题前缀 | 是(从目标分支自动检测,最多20个MR) | | Gitea | 拉取请求 | WIP: 标题前缀 | 否 | | Forgejo/Codeberg | 拉取请求 | WIP: 标题前缀 | 否 | | Bitbucket Cloud | 拉取请求 | 不支持 | 否 | | Cursor Origin (beta) | 拉取请求 | API 字段 | 是(parentPullNumber) | Maiao 会从你的远程 URL 自动检测已知主机的提供方(github.com、gitlab.com、codeberg.org、bitbucket.org、origin.cursor.com)。对于自托管实例,它会在首次使用时提示,并将选择保存到 git config maiao.provider。 ## 快速示例 bash # 进行多次提交 git commit -m "添加用户认证" git commit -m "添加授权中间件" git commit -m "添加管理端点" # 为所有提交创建堆叠式的 PR/MR git review 结果:创建并堆叠了三个 PR/MR: - PR #1: 添加用户认证 → main - PR #2: 添加授权中间件 → PR #1 - PR #3: 添加管理端点 → PR #2 ## 主要优势 - 细粒度审查:每个提交独立审查,获得更快、更聚焦的反馈 - 清晰的历史:每个 PR/MR 包含一个逻辑变更,保持 git 历史整洁 - 易于修正:使用 git commit --fixup <提交哈希> 处理审查反馈 - 自动堆叠:工具自动管理 PR/MR 依赖关系 - 原生堆叠:与 GitHub Stacks 和 GitLab 的自动检测堆叠集成 - 合并检测:当 PR/MR 合并时自动更新堆叠 - 变基集成:优雅处理上游变更 - 多平台支持:适用于 GitHub、GitLab、Gitea、Forgejo、Bitbucket Cloud 和 Cursor Origin ## 原生 GitHub 堆叠 Maiao 将 GitHub 原生堆叠 (https://github.blog/changelog/2024-10-25-github-stacked-pull-requests/) 视为一项渐进式增强功能。当推送两个或更多 PR 时,Maiao 会探测 Stacks API(缓存24小时),并在支持的情况下将 PR 注册为堆叠。在较旧的 GitHub Enterprise 实例上,该功能会被静默跳过——基于分支的堆叠仍然照常工作。 bash # 通过 git config 控制(默认:auto) git config maiao.useNativeStack auto # 在可用时使用,否则跳过 git config maiao.useNativeStack true # 始终注册;如不可用则发出警告 git config maiao.useNativeStack false # 完全禁用 ## 文档 - 入门指南 - 安装和工作流指南 - 工作原理 - 技术细节和架构 - 定价 - 免费且开源 ## 了解堆叠式差异 Maiao 实现了 堆叠式差异 方法论。了解更多: - 堆叠式差异 vs 拉取请求 (https://jg.gg/2018/09/29/stacked-diffs-versus-pull-requests/) - Jackson Gabbard 关于此哲学的奠基文章 - Graphite 的堆叠式差异指南 (https://graphite.dev/guides/stacked-diffs) - 关于工作流和最佳实践的全面指南 - 实用工程师:堆叠式差异 (https://newsletter.pragmaticengineer.com/p/stacked-diffs) - 行业分析和采用模式(付费墙) ## 为什么叫 “Maiao”? 因为 Maiao 鼓励用户在他们的拉取请求中创建更小、更精良的提交,所以它被赋予了一个小岛的名字: ## 贡献 欢迎贡献!详情请参阅 贡献指南。 ## 许可证 MIT 许可证 - 详情请参阅 免责声明。
相似文章
用这一个简单技巧让代码审查重新可行
文章提出使用堆叠分支(小型、顺序的拉取请求)来使审查AI生成的代码更易管理和高效,解决常见的大型、难以审查的差异问题。
Open Code Review – 一款由 AI 驱动的代码审查 CLI 工具
阿里巴巴已将 Open Code Review 开源,这是一款由 AI 驱动的代码审查 CLI 工具,将确定性工程方法与 LLM 智能体能力相结合。该工具最初作为内部工具使用,服务于数万名开发者,已识别出数百万处缺陷。它通过读取 Git diff 输出,利用可配置的模型端点生成结构化的行级审查意见。
Show HN: Codiff,本地差异审查工具
Codiff 是一款轻量级本地 diff 查看器,用于审查 Git 暂存和未暂存的更改,支持基于 LLM 的逐步讲解和内联审查评论。
tirth8205/code-review-graph
code-review-graph是一个Python工具,使用Tree-sitter构建代码的结构化地图,追踪增量变更,并通过MCP为AI编码助手提供精确上下文,从而在代码审查任务中显著减少令牌使用量。
在$dayjob审查所谓的Pull Requests
一位开发者描述了他使用git命令(如range-diff和log -p)来审查pull requests的工作流程,以规避基于Web的UI的缺陷。