返回

文章详情

Maiao: Gerrit风格的代码审查工作流程适用于GitHub、GitLab、Gitea等

Hacker News2026年8月25日 22:40

注意:这是adevinta/maiao的社区分支。原始维护者不再在Adevinta,且上游代码库不再积极维护。该分支在runetes/maiao下继续开发。Gerrit风格的代码审查工作流程适用于GitHub、GitLab、Gitea、Forgejo、Bitbucket Cloud和Cursor Origin。Maiao将堆叠的拉取请求(或合并请求)的力量带到您的git托管提供商,使您能够将大型功能拆分为小的、可审查的提交,每个提交成为自己的PR/MR。什么是Maiao?Maiao提供了git review命令,具有以下功能:按您的分支中的每个提交创建一个PR/MR;自动堆叠PR/MR,具有适当的父子依赖关系;在可用时注册本机堆叠(GitHub Stacks,GitLab自动检测的堆叠);使用git commit --fixup优雅地管理修复;通过Change-IDs跟踪提交(使用Gerrit commit-msg钩子);在PR/MR合并时自动重新整理您的堆叠;从远程URL自动检测您的提供商。支持的提供商:提供商,PR/MR类型,WIP/草稿,本机堆叠:GitHub,拉取请求,API字段,是(显式注册);GitLab,合并请求,草稿:标题前缀,是(从目标分支自动检测,最多20个MR);Gitea,拉取请求,WIP:标题前缀,否;Forgejo/Codeberg,拉取请求,WIP:标题前缀,否;Bitbucket Cloud,拉取请求,不支持,否;Cursor Origin(测试版),拉取请求,API字段,是(parentPullNumber)。Maiao从您的远程URL自动检测提供商(已知主机:github.com、gitlab.com、codeberg.org、bitbucket.org、origin.cursor.com)。对于自托管实例,首次使用时会提示保存选择到git config maiao.provider。快速示例:# 创建多个提交 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 <sha>解决审查反馈;自动堆叠:工具自动管理PR/MR依赖关系;本机堆叠:与GitHub Stacks和GitLab的自动检测堆叠集成;合并检测:PR/MR合并时堆叠自动更新;重新整理集成:优雅处理上游更改;多提供商:适用于GitHub、GitLab、Gitea、Forgejo、Bitbucket Cloud和Cursor Origin。本机GitHub堆叠:Maiao将GitHub本机堆叠视为逐步增强。当推送两个或更多PR时,Maiao探测Stacks API(缓存24小时),如果支持,则将PR注册为堆叠。在较旧的GitHub企业实例中,此功能会默默跳过 — 基于分支的堆叠仍然如以前工作。# 通过git config控制(默认:自动) git config maiao.useNativeStack auto # 可用时使用,否则跳过 git config maiao.useNativeStack true # 始终注册;如果不可用则警告 git config maiao.useNativeStack false # 完全禁用 文档:开始使用 - 安装和工作流程指南;它是如何工作的 - 技术细节和架构;定价 - 免费和开源;了解堆叠差异:Maiao实现了堆叠差异的方法论。了解更多:堆叠差异与拉取请求 - Jackson Gabbard关于这一哲学的基础性文章;Graphite的堆叠差异指南 - 关于工作流程和最佳实践的全面指南;实用工程师:堆叠差异 - 行业分析和采用模式(需付费墙)。为什么叫“Maiao”?因为Maiao鼓励用户在他们的拉取请求中创建较小和更好的提交,因此得名一个小岛。贡献:欢迎贡献!请参阅CONTRIBUTING.md以获取详细信息。许可证:MIT许可证 - 详见DISCLAIMER.md.

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡