{"meta":{"title":"엔터프라이즈 계정 관리","intro":"GraphQL API를 사용하여 엔터프라이즈 계정 및 엔터프라이즈 계정이 소유한 조직을 관리할 수 있습니다.","product":"GraphQL API","breadcrumbs":[{"href":"/ko/enterprise-server@3.19/graphql","title":"GraphQL API"},{"href":"/ko/enterprise-server@3.19/graphql/guides","title":"안내서"},{"href":"/ko/enterprise-server@3.19/graphql/guides/managing-enterprise-accounts","title":"엔터프라이즈 계정 관리"}],"documentType":"article"},"body":"# 엔터프라이즈 계정 관리\n\nGraphQL API를 사용하여 엔터프라이즈 계정 및 엔터프라이즈 계정이 소유한 조직을 관리할 수 있습니다.\n\n## GraphQL을 사용하여 엔터프라이즈 계정 관리하기 정보\n\n조직에서 모니터링 및 변경을 수행하고 규정 준수를 유지 관리하려면, GraphQL API로서만 사용 가능한 Enterprise Accounts API 및 Audit Log API를 사용할 수 있습니다.\n\n엔터프라이즈 계정 엔드포인트는 GitHub Enterprise Cloud 및 GitHub Enterprise Server 모두에서 작동합니다.\n\nGraphQL을 사용하면 지정한 데이터만 요청하고 반환할 수 있습니다. 예를 들어 GraphQL 쿼리를 만들거나 정보를 요청하여 조직에 추가된 새 조직 구성원을 모두 볼 수 있습니다. 또는 관리자를 Enterprise 계정에 초대하도록 변형 또는 변경을 수행할 수 있습니다.\n\nAudit Log API를 사용하면 누군가가 다음을 수행할 때 모니터링할 수 있습니다.\n\n* 조직 또는 리포지토리 설정에 액세스\n* 권한 변경\n* 조직, 리포지토리 또는 팀에서 사용자 추가 또는 제거\n* 사용자를 관리자로 승격\n* GitHub 앱의 사용 권한을 변경합니다.\n\nAudit Log API를 사용하면 감사 로그 데이터의 복사본을 유지할 수 있습니다. Audit Log API를 사용하여 수행된 쿼리의 경우 GraphQL 응답에 최대 90\\~120일 동안의 데이터가 포함될 수 있습니다. 감사 로그 API에서 사용할 수 있는 필드 목록은 [기업 관리자](/ko/enterprise-server@3.19/graphql/reference/enterprise-admin#interface-auditentry)을(를) 참조하세요.\n\nEnterprise Accounts API를 사용하면 다음을 수행할 수 있습니다.\n\n* 엔터프라이즈 계정에 속한 모든 조직 및 리포지토리를 나열하고 검토합니다.\n* 엔터프라이즈 계정 설정을 변경합니다.\n* 엔터프라이즈 계정 및 해당 조직의 설정에 대한 정책을 구성합니다.\n* 엔터프라이즈 계정에 관리자를 초대합니다.\n* 엔터프라이즈 계정에 새 조직을 만듭니다.\n\nEnterprise Accounts API에서 사용할 수 있는 필드 목록은 [엔터프라이즈 계정 관리](/ko/enterprise-server@3.19/graphql/guides/managing-enterprise-accounts#graphql-fields-and-types-for-the-enterprise-accounts-api) 참조하세요.\n\n## 엔터프라이즈 계정에서 GraphQL을 사용하여 시작하기\n\nGraphQL을 사용하여 엔터프라이즈 계정을 관리하는 방법을 시작하려면 [GraphQL 클라이언트 사용](/ko/enterprise-server@3.19/graphql/guides/using-graphql-clients)를 참조하세요.\n\n일부 예제 쿼리는 [Enterprise 계정 API를 사용하는 예제 쿼리](#an-example-query-using-the-enterprise-accounts-api)를 참조하세요.\n\n### 1. personal access token로 인증합니다\n\n1. GraphQL로 인증하려면 개발자 설정에서 personal access token를 생성해야 합니다. 자세한 내용은 [개인용 액세스 토큰 관리](/ko/enterprise-server@3.19/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) 참조하세요.\n\n2. 액세스하려는 엔터프라이즈 내 영역에 대해 personal access token에 관리자 권한과 전체 제어 권한을 부여합니다. 개인 리포지토리, 조직, 팀, 사용자 데이터 및 엔터프라이즈 청구 및 프로필 데이터에 대한 액세스에 대한 모든 권한을 위해 다음 범위에 대해 personal access token선택하는 것이 좋습니다.\n\n   * `repo`\n   * `admin:org`\n   * `user`\n   * `admin:enterprise`\n\n   엔터프라이즈 계정 특정 범위는 다음과 같습니다.\n\n   * `admin:enterprise`: 엔터프라이즈 전체 제어 권한(`manage_runners:enterprise`, `manage_billing:enterprise`, `read:enterprise` 포함)\n   * `manage_billing:enterprise`: 엔터프라이즈 청구 데이터를 읽고 씁니다.\n   * `manage_runners:enterprise`: GitHub Actions 엔터프라이즈 러너 및 러너 그룹을 관리할 수 있는 액세스.\n   * `read:enterprise`: 엔터프라이즈 프로필 데이터 읽기.\n\n3. personal access token GraphQL 클라이언트에 추가할 때까지 복사하여 안전한 위치에 보관합니다.\n\n### 2. GraphQL 클라이언트 선택\n\n기본 URL을 구성할 수 있는 GraphiQL 또는 다른 독립 실행형 GraphQL 클라이언트를 사용하는 것이 좋습니다.\n\n다음 GraphQL 클라이언트를 사용하는 것도 고려할 수 있습니다.\n\n* [Insomnia](https://support.insomnia.rest/article/176-graphql-queries)\n* [GraphiQL](https://www.gatsbyjs.org/docs/running-queries-with-graphiql/)\n* [Postman](https://learning.getpostman.com/docs/postman/sending_api_requests/graphql/)\n\n다음 단계에서는 Insomnia를 사용합니다.\n\n### 3. Insomnia를 GitHub GraphQL API와 엔터프라이즈 계정에서 사용할 수 있도록 설정하기\n\n1. 기본 URL 및 `POST` 메서드를 GraphQL 클라이언트에 추가합니다. GraphQL을 사용하여 정보(쿼리), 변경 정보(변형) 또는 GitHub API를 사용하여 데이터를 전송하는 경우 기본 HTTP 메서드는 `POST`이며 기본 URL은 다음 구문을 따릅니다.\n   * 엔터프라이즈 인스턴스의 경우: `https://<HOST>/api/graphql`\n   * GitHub Enterprise Cloud의 경우: `https://api.github.com/graphql`\n   * Data Residency가 있는 GitHub Enterprise Cloud의 경우: `https://api.SUBDOMAIN.ghe.com/graphql`\n\n2. \"인증\" 메뉴를 선택하고 **전달자 토큰**을 클릭합니다. 이전에 다른 인증 방법을 선택한 경우 메뉴에 \"기본 인증\"과 같은 해당 메서드로 레이블이 지정됩니다.\n\n![Insomnia의 확장된 \"Auth\" 메뉴 스크린샷 \"인증\" 및 \"전달자 토큰\" 옵션이 있는 메뉴 레이블이 진한 주황색 윤곽선으로 표시됩니다.](/assets/images/developer/graphql/insomnia-bearer-token-option.png)\n\n1. \"TOKEN\" 필드에 이전 단계에서 받은 personal access token을 입력합니다.\n\n![Insomnia의 \"Bearer\" 인증 설정 스크린샷 \"토큰\" 필드가 진한 주황색 윤곽선으로 표시됩니다.](/assets/images/developer/graphql/insomnia-base-url-and-pat.png)\n\n1. **머리글**을 클릭합니다.\n\n![Insomnia의 설정 탭 스크린샷 \"설정\" 탭이 진한 주황색 윤곽선으로 표시됩니다.](/assets/images/developer/graphql/json-content-type-header.png)\n\n1. **머리글** 탭에서 **추가**를 클릭합니다.\n2. “헤더” 필드에 `Content-Type`을 입력합니다.\n3. “값” 필드에 `application/json`을 입력합니다.\n\n이제 쿼리 만들기를 시작할 준비가 되었습니다.\n\n## Enterprise Accounts API를 사용하는 예제 쿼리\n\n이 GraphQL 쿼리는 Enterprise Accounts API를 사용하여 각 어플라이언스의 조직의 총 `public`개의 리포지토리를 쿼리합니다. 이 쿼리를 사용자 지정하려면 `<enterprise-account-name>`을 엔터프라이즈 계정의 핸들로 바꿉니다. 예를 들어 엔터프라이즈 계정이 `https://github.com/enterprises/octo-enterprise`에 있는 경우 `<enterprise-account-name>`을 `octo-enterprise`으로 대체합니다.\n\n```graphql\nquery publicRepositoriesByOrganization($slug: String!) {\n  enterprise(slug: $slug) {\n    ...enterpriseFragment\n  }\n}\n\nfragment enterpriseFragment on Enterprise {\n  ... on Enterprise{\n    name\n    organizations(first: 100){\n      nodes{\n        name\n        ... on Organization{\n          name\n          repositories(privacy: PUBLIC){\n            totalCount\n          }\n        }\n      }\n    }\n  }\n}\n\n# Passing our Enterprise Account as a variable\nvariables {\n  \"slug\": \"<enterprise-account-name>\"\n}\n```\n\n다음 GraphQL 쿼리 예제에서는 Enterprise Account API를 사용하지 않고 각 조직에서 `public` 리포지토리의 수를 검색하는 것이 얼마나 어려운지를 보여줍니다. GraphQL Enterprise Accounts API는 엔터프라이즈용으로 이 작업을 더 간단하게 만들었습니다. 사용자가 단일 변수만 사용자 지정하면 되기 때문입니다. 이 쿼리를 사용자 지정하려면 `<name-of-organization-one>`, `<name-of-organization-two>` 등을 인스턴스의 조직 이름으로 바꿉니다.\n\n```graphql\n# Each organization is queried separately\n{\n  organizationOneAlias: organization(login: \"nameOfOrganizationOne\") {\n    # How to use a fragment\n    ...repositories\n  }\n  organizationTwoAlias: organization(login: \"nameOfOrganizationTwo\") {\n    ...repositories\n  }\n  # organizationThreeAlias ... and so on up-to lets say 100\n}\n\n## How to define a fragment\nfragment repositories on Organization {\n  name\n  repositories(privacy: PUBLIC){\n    totalCount\n  }\n}\n```\n\n## 각 조직을 개별적으로 쿼리\n\n```graphql\nquery publicRepositoriesByOrganization {\n  organizationOneAlias: organization(login: \"<name-of-organization-one>\") {\n    # How to use a fragment\n    ...repositories\n  }\n  organizationTwoAlias: organization(login: \"<name-of-organization-two>\") {\n    ...repositories\n  }\n  # organizationThreeAlias ... and so on up-to lets say 100\n}\n# How to define a fragment\nfragment repositories on Organization {\n  name\n  repositories(privacy: PUBLIC){\n    totalCount\n  }\n}\n```\n\n이 GraphQL 쿼리는 엔터프라이즈 조직에 대한 마지막 5개의 로그 항목을 요청합니다. 이 쿼리를 사용자 지정하려면 `<org-name>` 및 `<user-name>`을 바꿉니다.\n\n```graphql\n{\n  organization(login: \"<org-name>\") {\n    auditLog(last: 5, query: \"actor:<user-name>\") {\n      edges {\n        node {\n          ... on AuditEntry {\n# Get Audit Log Entry by 'Action'\n            action\n            actorLogin\n            createdAt\n# User 'Action' was performed on\n           user{\n              name\n                email\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nGraphQL을 시작하기 위한 자세한 정보는 [GraphQL 소개](/ko/enterprise-server@3.19/graphql/guides/introduction-to-graphql) 및 [GraphQL을 사용하여 통화 구성](/ko/enterprise-server@3.19/graphql/guides/forming-calls-with-graphql)를 참조하세요.\n\n## Enterprise Accounts API에 대한 GraphQL 필드 및 형식\n\nEnterprise Accounts API에서 사용할 수 있는 새 쿼리, 변형, 스키마 정의 형식에 대한 자세한 내용은 [GraphQL 참조 페이지](/ko/enterprise-server@3.19/graphql)의 자세한 GraphQL 정의가 포함된 사이드바를 참조하세요.\n\nGraphQL 클라이언트 내에서 참조 문서를 access 수 있습니다. 자세한 내용은 [GraphQL 클라이언트 사용](/ko/enterprise-server@3.19/graphql/guides/using-graphql-clients) 참조하세요.\n인증 및 속도 제한 세부 정보와 같은 기타 정보는 [guides](/ko/enterprise-server@3.19/graphql/guides) 확인하세요."}