Help us learn about your current experience with the documentation. Take the survey.
使用 GraphQL 查询用户
- 版本:Free, Premium, Ultimate
- 产品:GitLab.com, GitLab 自管版, GitLab 专属版
您可以通过以下方式查询 GitLab 实例中的一部分用户:
- GraphiQL。
cURL。
使用 GraphiQL
-
打开 GraphiQL:
- 对于 GitLab.com,请使用:
https://gitlab.com/-/graphql-explorer - 对于 GitLab 自管版,请使用:
https://gitlab.example.com/-/graphql-explorer
- 对于 GitLab.com,请使用:
-
复制以下文本并将其粘贴到左侧窗口中。 此查询通过用户名在 GitLab 实例中查找一部分用户。 或者,您也可以使用它们的 Global ID。
{ users(usernames: ["user1", "user3", "user4"]) { pageInfo { endCursor startCursor hasNextPage } nodes { id username, publicEmail location webUrl userPermissions { createSnippet } } } } -
选择 Play。
GraphQL API 返回的是 GlobalID,而不是标准的 ID。 它也期望输入 GlobalID,而不是单个整数。
此查询会返回所列用户名对应的三个用户的指定信息。
- 由于 GraphiQL 使用 session token 来授权对资源的访问,因此其输出结果仅限于当前已认证用户有权访问的项目和组。
- 如果您以实例管理员身份登录,则可以访问所有资源。
仅显示管理员
如果您以管理员身份登录,可以在查询中添加 admins: true 参数,以显示实例中匹配的管理员。
将第二行更改为:
users(usernames: ["user1", "user3", "user4"], admins: true) {
...
}或者,您可以获取所有管理员:
users(admins: true) {
...
}分页和图节点
该查询包含:
pageInfo
其中包含了实现分页所需的数据。GitLab 使用基于游标的 分页 方式。 更多信息,请参阅 GraphQL 文档中的 分页 章节。
nodes
在 GraphQL 查询中,nodes 代表图中 节点 的集合。
在本例中,这个节点集合就是一组 User 对象。对于每一个节点,其输出包括:
- 用户的
id。 membership片段,它代表了该用户所属的项目或组成员身份。片段通过...memberships这种写法来表示。