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

Tier: Free, Premium, Ultimate Offering: GitLab.com, 자체 관리, GitLab Dedicated

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

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

예제 사용자 쿼리는 GitLab 인스턴스에서 사용자 하위 집합을 찾습니다. 이 때, 유저 이름이나 Global ID로 찾을 수 있습니다. 이 쿼리에는 다음이 포함됩니다.

pageInfo

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

nodes

GraphQL 쿼리에서 nodes는 그래프 상의 노드들의 컬렉션을 나타내는 데 사용됩니다. 이 경우 노드들의 컬렉션은 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. 결과를 얻으려면 실행을 선택합니다.

GraphiQL 탐색기에서 보드 검색

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

이 GraphQL 쿼리는 사용자가 명시적으로 멤버로 만들어진 그룹과 프로젝트를 반환합니다. GraphiQL 탐색기는 현재 인증된 사용자의 리소스에 대한 액세스를 권한 부여하기 위해 세션 토큰을 사용하므로, 출력은 현재 인증된 사용자가 접근 가능한 프로젝트와 그룹으로 제한됩니다.

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

추가 정보:

  • 프래그먼트나 인터페이스 같은 GraphQL 특정 엔티티에 대해서는 공식 GraphQL 문서를 참조하십시오.
  • 개별 속성들은 GraphQL API Resources를 참조하십시오.