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

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

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

cURL을 사용하여 HTTP 엔드포인트를 통해 동일한 쿼리를 직접 실행할 수 있습니다. 자세한 내용은 명령 줄에서 시작하는 방법에 대한 지침을 참조하세요.

예제 사용자 쿼리는 사용자 이름 또는 Global ID를 통해 GitLab 인스턴스에서 사용자 집합을 찾습니다. 쿼리에는 다음이 포함됩니다:

pageInfo

이것은 페이징 구현에 필요한 데이터를 포함합니다. GitLab은 커서 기반 페이징을 사용합니다. 자세한 내용은 GraphQL 문서의 Pagination을 참조하세요.

nodes

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

  • 사용자의 id.
  • 해당 사용자의 프로젝트 또는 그룹 멤버십을 나타내는 membership 조각. 조각을 출력하는 것은 ...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. Play를 선택하여 여기 표시된 결과를 얻습니다:

GraphiQL explorer search for boards

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

이 GraphQL 쿼리는 사용자가 명시적으로 멤버로 지정된 그룹 및 프로젝트를 반환합니다. GraphiQL 탐색기는 세션 토큰을 사용하여 자원에 대한 액세스를 승인하므로, 출력은 현재 인증된 사용자가 접근할 수 있는 프로젝트 및 그룹으로 제한됩니다.

인스턴스 관리자 자격으로 로그인하면 소유권에 관계없이 모든 기록에 대한 액세스 권한이 있습니다.

자세한 내용은 다음을 참조하세요: