GraphQL을 사용하여 감사 보고서 설정하기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

이 페이지에서는 GraphiQL 탐색기를 사용하여 특정 사용자 하위 집합에 대한 감사 보고서를 설정하는 방법에 대해 설명합니다.

동일한 쿼리를 cURL을 사용하여 HTTP 엔드포인트를 통해 직접 실행할 수 있습니다. 자세한 정보는 command line에서 시작하는 방법을 참조하세요.

사용자 쿼리 예시는 GitLab 인스턴스에서 사용자 하위 집합을 찾습니다. 이는 사용자 이름이나 Global ID에 의해 수행됩니다. 쿼리에는 다음이 포함됩니다:

pageInfo

이것은 페이지네이션을 구현하는 데 필요한 데이터를 포함합니다. GitLab은 커서 기반의 페이지네이션을 사용합니다. 자세한 정보는 GraphQL 문서의 Pagination을 참조하세요.

nodes

GraphQL 쿼리에서 nodes는 그래프상의 노드 컬렉션을 나타내는 데 사용됩니다. 이 경우 노드의 컬렉션은 User 객체의 컬렉션입니다. 각각에 대해, 우리는 다음을 출력합니다:

  • 그들의 사용자 id.
  • 해당 사용자에 속한 프로젝트 또는 그룹 멤버십을 나타내는 membership fragment. fragment를 출력하는 것은 ...memberships 표기로 나타냅니다.

GitLab GraphQL API는 포괄적이며 다양한 개체에 대한 대량의 데이터를 출력할 수 있습니다. 가장 최신 정보는 공식 참조 문서를 참조하십시오.

GraphiQL 탐색기 설정

이 절차는 GraphiQL 탐색기에 복사하여 붙여넣을 수 있는 실질적인 예시를 제공합니다. GraphiQL 탐색기는 다음 위치에서 사용할 수 있습니다:

  1. 다음 코드 일부를 복사합니다:

    {
      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
          }
        }
      }
    }
    
  2. GraphiQL 탐색기 도구를 엽니다.
  3. 위에서 나열된 query를 GraphiQL 탐색기 도구의 왼쪽 창에 붙여넣습니다.
  4. 결과를 얻기 위해 실행을 선택합니다.

GraphiQL 탐색기에서 보드 검색

note
GraphQL API는 표준 ID 대신 GlobalID를 반환합니다. 또한 단일 정수 대신 GlobalID를 입력으로 기대합니다.

이 GraphQL 쿼리는 사용자가 명시적으로 멤버로 만들어진 그룹 및 프로젝트를 반환합니다. GraphiQL 탐색기는 세션 토큰을 사용하여 리소스에 대한 액세스를 인가하므로, 결과는 현재 인증된 사용자가 액세스할 수 있는 프로젝트 및 그룹으로 제한됩니다.

인스턴스 관리자로서 로그인한 경우 소유권과 관계없이 모든 레코드에 액세스할 수 있습니다.

더 많은 정보:

  • Fragments 및 Interfaces와 같은 GraphQL 특정 개체의 경우 공식 GraphQL 문서를 참조하세요.
  • 개별 속성에 대한 자세한 내용은 GraphQL API 리소스를 참조하십시오.