如何列出特定用户的项目

How to list projects for particular user

我们有公司用户列表,根据该用户列表,我们需要准备一份报告,说明每个用户都可以访问哪个 gerrit 项目。

那么如何从 gerrit 列出特定用户的项目?

实现这一目标的一些方向会有所帮助。提前致谢。

您有两种选择可以尝试:

  1. 使用“gerrit ls-projects”SSH 命令

使用“--has-acl-for GROUP”选项,您可以列出直接分配了该组访问权限的项目。注意:未列出仅继承该组访问权限的项目:

ssh -p 29418 USER@GERRIT-SERVER gerrit ls-projects --has-acl-for GROUP

在 Gerrit 文档中查看更多详细信息 here

  1. 使用“检查访问”项目 REST 端点

使用此端点,您可以验证用户是否有权访问存储库。注意:这需要查看访问全局功能:

curl --user USER:PASS --request GET "https://GERRIT-SERVER/a/projects/PROJECT/check.access?account=ACCOUNT-ID&ref=refs%2Fheads%2Fmaster"

此命令检查具有 ACCOUNT-ID 号的用户是否有权访问 PROJECT 的分支“master”。正如您所注意到的,您需要知道用户的 ACCOUNT-ID。您也可以使用 REST 找到用户 ACCOUNT-ID:

curl --user USER:PASS --request GET  "https://GERRIT-SERVER/a/accounts/?q=username:USERNAME" | sed 1d | jq --raw-output .[]._account_id

在 Gerrit 文档中查看更多详细信息 here