使用 GraphQL 查询用户

You can query a subset of users in a GitLab instance by using:

使用 GraphiQL

  1. 打开 GraphiQL:
    • 对 JihuLab.com,使用 https://jihulab.com/-/graphql-explorer
    • 对私有化部署,使用 https://gitlab.example.com/-/graphql-explorer
  2. 将下面的文本拷贝到左侧的窗口。此查询会通过用户名来查看极狐GitLab 实例上的一部分用户。您也可以使用用户的全局 DI

     {
       users(usernames: ["user1", "user3", "user4"]) {
         pageInfo {
           endCursor
           startCursor
           hasNextPage
         }
         nodes {
           id
           username,
           publicEmail
           location
           webUrl
           userPermissions {
             createSnippet
           }
         }
       }
     }
    
  3. Select Play.
note 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 符号表示

相关主题