Go Wiki:Gerrit 访问

这里描述了两种类型的 Gerrit 访问权限,它们拥有不同的权限和责任。只有当您是社区的积极成员时,才申请访问权限。新的贡献者应该在请求访问权限之前,先参与 Gerrit 代码审查流程一段时间。

(有关 GitHub 访问权限,请参见 GitHubAccess

运行 TryBots(“may-start-trybots”)

TryBot 访问权限允许您在提交 CL 之前(提交前测试)启动 CL 的测试运行。TryBots 在一个相对安全且隔离的环境中运行,但它们并非完全安全加固。您必须在启动 TryBots 之前,仔细检查 CL 中是否有任何恶意代码。

有关触发 TryBots 的详细信息,请参见 LUCI

所有审批者(参见下一节)自动拥有 TryBot 访问权限。其他人可以申请 TryBot 访问权限。请参见下面的 申请访问权限

批准 CL(“审批者”)

审批者可以审查和提交代码更改(CL),但需遵守以下审查规则。成为审批者意味着要承担责任:审批者是关心 Go 并希望帮助它成功的人。审批者不仅仅是能够更改代码的人,而是证明了自己具有与团队合作、让最了解的人审查代码、贡献高质量代码以及解决问题(代码或测试)的能力的人。

代码审查要求

每个 CL 都需要来自审批者的代码审查(Code-Review+2)以及两名使用 Google 安全计算机的 Google 员工的参与,他们可以是代码上传者,也可以是投票至少为 Code-Review+1 的审查者。要求多人参与可以确保代码不会从单个被盗账户单方面提交。Google 员工和硬件要求进一步提高了门槛:由于许多仓库中的 CL 基本上是 Google 发布的,供用户在提交时下载,因此 Google 的参与是为了批准此发布。一旦审查获得 Code-Review+2 以及必要的 Google 参与,任何审批者都可以提交该审查。所有这些规则都由 Gerrit 服务器强制执行。

Code-Review+2 票表示您已阅读更改,并确信它正确且适合提交。通常,您只应在您“拥有”的目录或包中对 Code-Review+2 代码进行投票;例外情况是微不足道的且明显正确的更改。请注意,所有对用户可见的新功能或更改(新的 API、新的命令行标志等)都需要经过 提案流程。CL 应在 提交信息(“For #NNN.”)中引用已接受的特定提案。

添加 Code-Review+2 票时,建议也添加 Commit-Queue+1 和 Auto-Submit+1:有关详细信息,请参见下面的 自动提交 部分。

Code-Review+1 票表示您已阅读更改,并认为它看起来合理,但尚未做出 Code-Review+2 表示的最终判断。它也意味着您确信更改不会引入任何安全漏洞或其他明显不合适的代码更改。

当更改获得合适的审查以供提交时,Gerrit 中会显示一个提交按钮(供审批者使用)。您只应提交具有来自该区域所有者的 Code-Review+2 的更改(可能是您!)。

审批者还可以对 CL 投出 Hold+1 票,将其标记为不可提交(直到该票被删除)。一个典型的原因可能是我们需要等待 CL 进行提案审查,或者因为 CL 需要在特定时间提交:投票 Hold+1 确保它仍然可以被审查,但不会被意外地过早提交。

要申请审批者访问权限,请参见下面的 申请访问权限

自动提交

如果您正在审查 CL,并且认为它可以按原样批准和提交,无需进一步更改,您可以使用自动提交功能来运行测试,并在测试通过时提交 CL。为此,请投票 Code-Review+2 以及 Auto-Submit+1 和 Commit-Queue+1。测试通过后,Gopherbot 将提交它。

更准确地说,Gopherbot 会监视并自动提交 CL,这些 CL:

所有审批者都可以添加 Auto-Submit+1 票。当补丁重新上传时,Auto-Submit+1 票不会被保留。

批准 Wiki CL(“wiki-approvers”)

主要在 Wiki (https://go.googlesource.com/wiki) 中工作的人员可以申请 wiki-approvers 权限。这允许他们 +2 并提交 Wiki CL,即使是他们自己的 CL。Wiki CL 不需要两名(或任何)Google 员工的参与,它们没有 TryBots,并且可以自我审查。

申请访问权限

要申请上述任何访问类型,请创建一个新问题 (https://golang.ac.cn/issue/new?title=access:+&body=See+https://golang.ac.cn/wiki/GerritAccess.),说明您想要哪种访问权限,以及您用于登录 Gerrit 的 Google 帐户。

授予访问权限的决定由 Google 的 Go 发布团队做出。如果您的请求被拒绝,几乎总是因为您不够活跃,无法让他们对您的工作、对项目约定的理解等方面有足够清晰的了解。不要灰心:达到这种熟悉程度需要时间。

获得访问权限后

参与 Go 维护!请参见 维护


此内容是 Go Wiki 的一部分。