git Gerrit是否每个分支机构都有一个所有者?

bwleehnv  于 2023-08-01  发布在  Git
关注(0)|答案(1)|浏览(155)

我正在内部环境中设置Gerrit并进行各种测试。我有一个关于Gerrit分支上的提交和推送权限的问题。
Gerrit是否每个分支机构都有一个所有者?
我正在执行代码审查测试,方法是提交并推送给X分支用户B的信息。然而,当我尝试使用用户A的信息提交和推送时,我收到了一条错误消息,指出我没有“Forge Committer”权限,并且我无法继续提交和推送。因此,我授予A refs/for/* 的“伪造提交者身份”权限。
授予此权限后,我提交并推送到X分支,其中包含用户A的信息,并创建了代码审查。但是,代码评审的所有者被设置为B,并且A被自动指定为评审的Author。
我很好奇为什么会发生这种自动分配。

toiithl6

toiithl61#

您看到的所有者是更改的所有者,而不是目标分支的所有者。您可以运行git push origin HEAD:refs/for/foo来上载更改的最新补丁集。在命令中,origin引用SSH协议或HTTP/HTTPS协议的URL。两者都需要认证。SSH使用一对密钥,HTTP/HTTPS使用用户名和密码/令牌。密钥或用户名与Gerrit用户名相关联。Gerrit用户名将是更改的所有者。
Gerrit在新提交中检查提交者的电子邮件。如果它不匹配Gerrit用户名中注册的任何电子邮件,并且如果用户名没有Forge Committer权限,则推送被拒绝。在某种程度上,它可以防止一个用户假冒另一个用户。
如果希望A成为所有者,则需要使用git push中与A的Gerrit用户名关联的身份验证。

git push ssh://${UsernameOfA}@${gerrithost}:${port}/${reponame} HEAD:refs/for/foo
# Or
git push https://${UsernameOfA}:${password}@${gerrithost}/${reponame} HEAD:refs/for/foo

字符串

相关问题