使用 GraphQL 查询用户
You can query a subset of users in a GitLab instance by using:
- GraphiQL.
-
cURL
.
使用 GraphiQL
- 打开 GraphiQL:
- 对 JihuLab.com,使用
https://jihulab.com/-/graphql-explorer
- 对私有化部署,使用
https://gitlab.example.com/-/graphql-explorer
- 对 JihuLab.com,使用
-
将下面的文本拷贝到左侧的窗口。此查询会通过用户名来查看极狐GitLab 实例上的一部分用户。您也可以使用用户的全局 DI。
{ users(usernames: ["user1", "user3", "user4"]) { pageInfo { endCursor startCursor hasNextPage } nodes { id username, publicEmail location webUrl userPermissions { createSnippet } } } }
- Select Play.
GraphQL API 返回一个全局 ID,而不是标准 ID。它依旧期望一个全局 ID 作为输入,而不是一个整数。
此查询会返回用用户名列举出来的三个用户的特定信息。
- 因为 GraphiQL 使用会话令牌来授权对资源的访问,输出仅限于当前已认证用户可访问的项目和群组。
- 如果您以实例管理员身份登录,您可以查看实例上所有资源。
仅显示管理员
如果您以管理员身份登录,您可以使用 admins: true
参数来显示匹配的管理员。将第二行更改为:
users(usernames: ["user1", "user3", "user4"], admins: true) {
...
}
或者您可以获取所有的管理员:
users(admins: true) {
...
}
分页和图节点
查询包括:
pageInfo
包括进行分页所需的信息。极狐GitLab 使用基于光标的分页。 详细信息请参见 GraphQL 文档中的分页。
nodes
在 GraphQL 查询中,nodes
用于表示图上的 nodes
的集合。
在这种情况下,节点集合是 User
对象的集合。
对于每个对象,我们输出:
- 用户
id
-
membership
片段,表示用户属于项目或群组的成员资格。输出片段用...memberships
符号表示