Help us learn about your current experience with the documentation. Take the survey.

使用 GraphQL 创建审计报告

  • 版本:免费版、高级版、旗舰版
  • 产品:GitLab.com、GitLab 自管版、GitLab 专属版

您可以通过以下方式为特定用户子集创建审计报告:

  • GraphiQL。
  • cURL

使用 GraphiQL

您可以使用 GraphiQL 查询特定用户子集的信息。

  1. 打开 GraphiQL:

    • 对于 GitLab.com,请使用:https://gitlab.com/-/graphql-explorer
    • 对于 GitLab 自管版,请使用:https://gitlab.example.com/-/graphql-explorer
  2. 复制以下文本并将其粘贴到左侧窗口中。 此查询通过用户名搜索用户子集。或者,您也可以使用他们的 Global ID

    {
      users(usernames: ["user1", "user2", "user3"]) {
        pageInfo {
          endCursor
          startCursor
          hasNextPage
        }
        nodes {
          id
          ...memberships
        }
      }
    }
    
    fragment membership on MemberInterface {
      createdAt
      updatedAt
      accessLevel {
        integerValue
        stringValue
      }
      createdBy {
        id
      }
    }
    
    fragment memberships on User {
      groupMemberships {
        nodes {
          ...membership
          group {
            id
            name
          }
        }
      }
    
      projectMemberships {
        nodes {
          ...membership
          project {
            id
            name
          }
        }
      }
    }
  3. 选择 运行

GraphQL API 返回的是 GlobalID,而不是标准 ID。 它同样要求输入 GlobalID,而不是单个整数值。

此查询返回用户被明确授予成员身份的组和项目。

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

分页和图节点

该查询包含:

pageInfo

其中包含了实现分页所需的数据。GitLab 使用基于游标的 分页。更多信息,请参阅 GraphQL 文档中的 分页 章节。

nodes

在 GraphQL 查询中,nodes 代表图中 节点 的集合。 在本例中,节点集合即 User 对象的集合。对于每一个对象,输出都包含:

  • 用户的 id
  • membership 片段 (fragment),它代表该用户所属的项目或组成员身份。片段由 ...memberships 表示法指明。

相关主题