GraphQL을 사용하여 사용자 쿼리

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

이 페이지에서는 GraphiQL 탐색기를 사용하여 사용자를 쿼리하는 방법에 대해 설명합니다.

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

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

pageInfo

이것에는 페이징을 구현하는 데 필요한 데이터가 포함되어 있습니다. GitLab은 커서 기반의 페이징을 사용합니다. 자세한 정보는 GraphQL 문서의 Pagination을 참조하세요.

nodes

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

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

GitLab GraphQL API는 방대하며 다양한 엔터티에 대한 대량의 데이터를 출력할 수 있습니다. 가장 최신 정보는 공식 참조 문서를 참조하세요.

GraphiQL 탐색기 설정

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

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

     {
       users(usernames: ["user1", "user3", "user4"]) {
         pageInfo {
           endCursor
           startCursor
           hasNextPage
         }
         nodes {
           id
           username,
           publicEmail
           location
           webUrl
           userPermissions {
             createSnippet
           }
         }
       }
     }
    
  2. GraphiQL 탐색기 도구를 엽니다.
  3. 상단의 코드를 복사하여 GraphiQL 탐색기 도구의 왼쪽 창에 붙여넣습니다.
  4. 결과를 얻으려면 재생을 선택합니다.

    보드를 검색하는 GraphiQL 탐색기

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

이 GraphQL 쿼리는 지정된 사용자 이름의 세 명에 대한 지정된 정보를 반환합니다. GraphiQL 탐색기는 리소스에 대한 액세스를 승인하기 위해 세션 토큰을 사용하므로 결과는 현재 인증된 사용자가 액세스할 수 있는 프로젝트 및 그룹으로 제한됩니다.

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

관리자로서 로그인한 경우 쿼리의 두 번째 줄을 변경하여 인스턴스의 일치하는 관리자만 표시할 수 있습니다. admins: true 매개변수를 추가하면 됩니다.

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

또는 모든 관리자를 가져올 수 있습니다:

  users(admins: true) {
    ...
  }

추가 정보:

  • 프래그먼트 및 인터페이스와 같은 GraphQL 특정 엔터티의 경우 공식 GraphQL 문서를 참조하세요.
  • 개별 속성의 경우 GraphQL API 리소스를 참조하세요.