如何列出特定用户的项目
How to list projects for particular user
我们有公司用户列表,根据该用户列表,我们需要准备一份报告,说明每个用户都可以访问哪个 gerrit 项目。
那么如何从 gerrit 列出特定用户的项目?
实现这一目标的一些方向会有所帮助。提前致谢。
您有两种选择可以尝试:
- 使用“gerrit ls-projects”SSH 命令
使用“--has-acl-for GROUP”选项,您可以列出直接分配了该组访问权限的项目。注意:未列出仅继承该组访问权限的项目:
ssh -p 29418 USER@GERRIT-SERVER gerrit ls-projects --has-acl-for GROUP
在 Gerrit 文档中查看更多详细信息 here。
- 使用“检查访问”项目 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。
我们有公司用户列表,根据该用户列表,我们需要准备一份报告,说明每个用户都可以访问哪个 gerrit 项目。
那么如何从 gerrit 列出特定用户的项目?
实现这一目标的一些方向会有所帮助。提前致谢。
您有两种选择可以尝试:
- 使用“gerrit ls-projects”SSH 命令
使用“--has-acl-for GROUP”选项,您可以列出直接分配了该组访问权限的项目。注意:未列出仅继承该组访问权限的项目:
ssh -p 29418 USER@GERRIT-SERVER gerrit ls-projects --has-acl-for GROUP
在 Gerrit 文档中查看更多详细信息 here。
- 使用“检查访问”项目 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。