Go Wiki:GerritBot
GerritBot 是一种用于将 GitHub 拉取请求 (PR) 导入 Gerrit 进行代码审查的工具。它之所以创建是因为 Go 团队在 Gerrit 中进行所有审查,但我们希望允许通过 GitHub PR 以更常见的方式贡献代码。
目录
工作流程
- 用户可以像对任何其他接受 PR 的 GitHub 项目一样,对我们的任何 GitHub 仓库上传 GitHub PR。
- 然后,PR 更改将由 GerritBot 导入,并在 GitHub PR 中发布一条包含指向 Gerrit 审查链接的消息。
- 所有评论都在 Gerrit 中处理。GitHub PR 上的任何评论都将被忽略。
- PR 作者可以继续将提交上传到 PR 使用的分支,以解决 Gerrit 的反馈。
- 任何对提交消息的更改都必须通过编辑 GitHub PR 的标题和描述来完成,而不是通过 Gerrit 或 git。(有关详细信息,请参阅下面的常见问题解答)。
- 草稿 PR 作为 WIP 导入。
- 代码准备合并后,维护者将在 Gerrit 上提交更改,GerritBot 将关闭问题。
- 同样,如果 Gerrit 上的更改被关闭或放弃,相应的 PR 将被关闭。
常见问题
我需要 Google 帐户才能注册 Gerrit 吗?为什么我不能使用我的 GitHub 帐户登录?
您需要 Gmail 或其他 Google 帐户才能 注册 Gerrit。这是运行我们的 Gerrit 实例的基础设施的限制,我们无法控制,此外,您还需要 Google 帐户才能 签署我们的 CLA,这是我们首先接受您的贡献的先决条件。
我在 Gerrit 中回复了一条评论,但除了我之外没有人能看到它。
对 Gerrit 中代码评论的回复首先会保存为草稿,需要通过“回复”按钮发布。这样做是为了防止每个审查“会话”发送多封电子邮件,类似于 GitHub 中的 待处理审查工作流程。如果您在按钮中的“回复”文本旁边看到一个数字,则表示您有待发布的草稿。
GerritBot 如何确定最终的提交消息?
它使用 GitHub PR 的标题和描述来构建 Gerrit 更改的提交消息。您可以使用 GitHub 网页界面(而不是 Gerrit 或 git)编辑它。PR 描述位于 GitHub PR 的“对话”选项卡中的第一个文本区域。可以通过“...”菜单上的“编辑”选项进行编辑。
注意:Gerrit 导入您在 GitHub 中编辑消息时可见的纯文本,它不导入您在 GitHub 中编辑前看到的渲染文本。
一个常见的相关混淆点是问题引用。例如,GerritBot 或人工审查者可能会要求您 避免使用问题引用的 URL。在 Gerrit 中,您可能会看到问题的完整 URL,但在 GitHub 网页界面中,您可能只会看到类似 #12345
的问题引用,并且可能不清楚 URL 来自哪里。这可能是由于 GitHub 中渲染视图与底层原始/纯文本之间的混淆造成的。如果您在GitHub 中编辑文本时,GitHub 网页界面显示类似 Fixes https://github.com/golang/go/issues/12345
的内容,请将其更改为类似 Fixes #12345
或 Fixes golang/go#12345
的内容。有关问题引用的更多信息,请参阅 贡献指南。
在 GitHub 中编辑 PR 后,可能需要 10 分钟左右才能更新 Gerrit 更改。
什么是 CL?什么是 Gerrit 更改?
CL 是“更改列表”的缩写,本质上是建议引入存储库的补丁。Go 项目使用 Gerrit 仔细审查每个 CL。一个示例 CL 是 https://golang.ac.cn/cl/508475。
Gerrit 更改是 CL 的另一个术语。
我可以帮助审查其他人的 CL 吗?
是的,强烈建议这样做,这是一种熟悉 Gerrit、Go 项目的 代码审查流程 以及 Go 标准库、运行时、编译器等的内部结构的好方法。
您可以浏览当前打开的 CL 此处,并通过单击星形图标订阅有趣 CL 的更新。
您无需成为代码专家即可帮助进行初步审查分类。有关更多详细信息,请参阅 帮助审查 CL 部分,该部分位于 园艺 wiki 页面中。
我听说 Gerrit 要求每个更改一个提交。我可以将多个提交上传到我的 PR 吗?
您可以上传任意数量的提交。GerritBot 将处理将您的提交压缩成 Gerrit 可以处理的一个更改。
为什么 GerritBot 是我更改的所有者?
这是由于 Gerrit 处理充当其他用户的方式存在 未解决的错误。一旦修复,原始作者也将成为更改的所有者。
我可以要求 GerritBot 停止在我的 PR 上发布评论吗?
您可以使用 comments
斜杠命令(例如,/comments off
)切换 GerritBot 的评论。
反馈和错误报告
请 提交问题,并在标题中使用 x/build/cmd/gerritbot:
前缀。
我想添加一个功能/修复一个错误
此内容是 Go Wiki 的一部分。