使用 GraphQL 设置审计报告

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

  • GraphiQL。
  • cURL

使用 GraphiQL

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

  1. 打开 GraphiQL:
    • 对 JihuLab.com,使用: https://jihulab.com/-/graphql-explorer
    • 对私有化部署实例,使用: https://gitlab.example.com/-/graphql-explorer
  2. 将下面的文本拷贝并粘贴在左侧窗口中。此查询通过用户名或全局 ID 搜索用户子集。您也可以使用他们的全局 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. 选择 运行
note GraphQL API 返回全局 DI,而不是标准 ID。它也期望用全局 ID 作为输入而不是单个数字。

这个查询返回用户被明确添加为成员的组和项目。

  • 因为 GraphiQL 使用会话令牌来授权对资源的访问,输出仅限于当前经过身份验证的用户可以访问的项目和组。
  • 如果您以实例管理员的身份登录,则无论所有权如何,您都可以访问所有资源。

分页及图节点

查询包括:

pageInfo

包含实现分页所需的数据。极狐GitLab 使用基于光标的分页。详情请参见 GraphQL 文档中的分页

nodes

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

  • 用户 id
  • 代表用户项目或群组成员资格的 membership 片段。输出片段用 ...memberships 表示法表示。