我一直在尝试将用户添加为审核人员以进行更改。我偶然发现了一个奇怪的问题。如果我通过用户名识别用户,一切顺利。如果我通过电子邮件识别他们,Gerrit会抱怨。
什么有效:
ssh -p 29418 user@review.example.com gerrit set-reviewers --add username changeid
什么行不通:
ssh -p 29418 user@review.example.com gerrit set-reviewers --add username@example.com changeid
用户将用户名作为其用户名,将 username@example.com 作为其电子邮件地址。 格里特回应的是:
error: could not add username@example com: username@example.com does not identify a registered user or group
答案 0 :(得分:3)
我自己解决了这个问题,偷看了源代码帮助。
SSH命令 set-reviewers 由名为 PostReviewers 的类处理。委派 AccountsCollection 来解析审阅者并将其转换为帐户ID。这就是问题所在 - 我有两个用户通过相同的电子邮件地址识别,因此 AccountsCollection#_parse(String)不返回任何内容。
为什么两个帐户使用相同的电子邮件?我有多个Gerrit实例,我通过OpenID登录,在一个环境中,我需要从“父”环境中看到我的更改。这就是应用数据库中的小黑客并且一切正常的地方。到现在为止:)