{{< details >}}

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: JihuLab.com, 私有化部署

{{< /details >}}

你可以通过以下方式查询极狐GitLab 实例中的用户子集:

  • GraphiQL。
  • cURL

使用 GraphiQL

  1. 打开 GraphiQL:
    • 对于 JihuLab.com,使用:https://jihulab.com/-/graphql-explorer
    • 对于极狐GitLab 私有化部署,使用:https://jihulab.example.com/-/graphql-explorer
  2. 复制以下文本并将其粘贴到左侧窗口中。此查询通过用户名查找极狐GitLab 实例中的用户子集。或者,你可以使用他们的全局 ID

     {
       users(usernames: ["user1", "user3", "user4"]) {
         pageInfo {
           endCursor
           startCursor
           hasNextPage
         }
         nodes {
           id
           username,
           publicEmail
           location
           webUrl
           userPermissions {
             createSnippet
           }
         }
       }
     }
    
  3. 选择 播放

{{< alert type=”note” >}}

GraphQL API 返回的是 GlobalID,而不是标准 ID。它还期望使用 GlobalID 作为输入,而不是单个整数。

{{< /alert >}}

此查询返回列出用户名的三个用户的指定信息。

  • 由于 GraphiQL 使用会话令牌来授权访问资源,输出仅限于当前认证用户可访问的项目和群组。
  • 如果您以实例管理员身份登录,您可以访问所有资源。

仅显示管理员

如果您以管理员身份登录,可以通过向查询中添加 admins: true 参数来显示实例上的匹配管理员。将第二行更改为:

  users(usernames: ["user1", "user3", "user4"], admins: true) {
    ...
  }

或者,您可以获取所有管理员:

  users(admins: true) {
    ...
  }

分页和图节点

查询包括:

pageInfo

这包含实现分页所需的数据。极狐GitLab 使用基于游标的分页。有关详细信息,请参阅 GraphQL 文档中的分页

nodes

在 GraphQL 查询中,nodes 表示一个图上的节点集合。在这种情况下,节点集合是 User 对象的集合。对于每一个,输出包括:

  • 用户的 id
  • membership 片段,表示属于该用户的项目或群组成员资格。片段通过 ...memberships 表示。

相关主题