{"meta":{"title":"Управление корпоративными учетными записями","intro":"Вы можете управлять корпоративной учетной записью и организациями, которыми она владеет, с помощью API GraphQL.","product":"API GraphQL","breadcrumbs":[{"href":"/ru/enterprise-cloud@latest/graphql","title":"API GraphQL"},{"href":"/ru/enterprise-cloud@latest/graphql/guides","title":"Guides"},{"href":"/ru/enterprise-cloud@latest/graphql/guides/managing-enterprise-accounts","title":"Управление корпоративными учетными записями"}],"documentType":"article"},"body":"# Управление корпоративными учетными записями\n\nВы можете управлять корпоративной учетной записью и организациями, которыми она владеет, с помощью API GraphQL.\n\n## Сведения об управлении корпоративными учетными записями с помощью GraphQL\n\nЧтобы отслеживать отделы, вносить в них изменения и обеспечивать соответствие требованиям, можно использовать API корпоративных учетных записей и API журнала аудита, которые доступны только в виде API GraphQL.\n\nКонечные точки корпоративных аккаунтов работают как для GitHub Enterprise Cloud, так и для GitHub Enterprise Server.\n\nGraphQL позволяет вам запрашивать и возвращать только указанные данные. Например, вы можете создать запрос GraphQL или запросить сведения, чтобы увидеть всех новых участников, добавленных в вашу организацию. Вы также можете внести изменения, чтобы пригласить администратора в вашу корпоративную учетную запись.\n\nС помощью API журнала аудита вы можете отслеживать, когда кто-то:\n\n* Обращается к параметрам вашей организации или репозитория.\n* Изменяет разрешения.\n* Добавляет или удаляет пользователей в организации, репозитории или команде.\n* Повышает уровень пользователей до администраторов.\n* Меняет права доступа приложения GitHub.\n\nAPI журнала аудита позволяет сохранять копии данных вашего журнала аудита. Для запросов, выполненных с помощью API журнала аудита, ответ GraphQL может содержать данные давностью до 90–120 дней. Список полей, доступных в API журнала аудита, см. в [разделе AUTOTITLE](/ru/enterprise-cloud@latest/graphql/reference/enterprise-admin#interface-auditentry).\n\nAPI корпоративных учетных записей обеспечивает следующие возможности:\n\n* вывод списка и просмотр всех отделов и репозиториев, принадлежащих вашей корпоративной учетной записи;\n* изменение параметров корпоративной учетной записи;\n* настройка политик для параметров корпоративной учетной записи и ее отделов;\n* приглашение администраторов в корпоративную учетную запись;\n* создание отделов в корпоративной учетной записи.\n\nСписок полей, доступных в API Enterprise Accounts, см. [Управление корпоративными учетными записями](/ru/enterprise-cloud@latest/graphql/guides/managing-enterprise-accounts#graphql-fields-and-types-for-the-enterprise-accounts-api).\n\n## Getting started с использованием GraphQL для корпоративных аккаунтов\n\nСм. [Использование клиентов GraphQL](/ru/enterprise-cloud@latest/graphql/guides/using-graphql-clients) чтобы get started использование GraphQL для управления корпоративными аккаунтами.\n\nПримеры запросов см [. в примере запроса с помощью API](#an-example-query-using-the-enterprise-accounts-api) корпоративных учетных записей.\n\n### 1. Подтвердите свою personal access token\n\n1. Для аутентификации с помощью GraphQL нужно сгенерировать personal access token из настроек разработчика. Для получения дополнительной информации см. [Управление личными маркерами доступа](/ru/enterprise-cloud@latest/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   * `read:enterprise`: чтение данных профиля организации.\n\n3. Скопируйте свой personal access token и храните в надёжном месте, пока не добавите в клиент GraphQL.\n\n### 2. Выбор клиента GraphQL\n\nМы рекомендуем использовать GraphiQL или другой автономный клиент GraphQL, который позволяет настроить базовый URL-адрес.\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 для использования API GitHub GraphQL с корпоративными аккаунтами\n\n1. Добавьте базовый URL-адрес и метод `POST` в клиент GraphQL. При использовании GraphQL для запроса информации (запросов), изменения информации (мутаций) или передачи данных с помощью GitHub API по умолчанию используется HTTP-метод `POST`, а базовый URL соответствует следующему синтаксису:\n   * Для экземпляра Enterprise: `https://<HOST>/api/graphql`\n   * Для GitHub Enterprise Cloud: `https://api.github.com/graphql`\n   * Для GitHub Enterprise Cloud с Data Residency: `https://api.SUBDOMAIN.ghe.com/graphql`\n\n2. Выберите меню \"Аутентификация\" и щелкните **маркер** носителя. Если вы ранее выбрали другой метод проверки подлинности, меню будет помечено этим методом, например \"Базовая проверка подлинности\", вместо этого.\n\n![Снимок экрана: развернутое меню \"Аутентификация\" в Бессоннице. Метка меню\", \"Auth\" и параметр \"Токен носителя\" описаны в темно-оранжевый цвет.](/assets/images/developer/graphql/insomnia-bearer-token-option.png)\n\n1. В поле «TOKEN» введите свой personal access token с более раннего шага.\n\n![Снимок экрана: параметры проверки подлинности \"Носителя\" в бессоннице. Поле TOKEN описывается в темно-оранжевый цвет.](/assets/images/developer/graphql/insomnia-base-url-and-pat.png)\n\n1. Щелкните **заголовки**.\n\n![Снимок экрана: вкладки \"Параметры\" в \"Бессонница\". Вкладка \"Заголовки\" выделена темно-оранжевым цветом.](/assets/images/developer/graphql/json-content-type-header.png)\n\n1. На вкладке **\"Заголовки\"** нажмите кнопку **\"Добавить**\".\n2. В поле \"заголовок\" введите `Content-Type`.\n3. В поле \"значение\" введите `application/json`.\n\nТеперь все готово для выполнения запросов.\n\n## Пример запроса с использованием API корпоративных учетных записей\n\nЭтот запрос GraphQL запрашивает общее количество `public` репозиториев в каждой организации устройства с помощью API корпоративных учетных записей. Чтобы настроить запрос, замените `<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 показано, насколько сложно получить количество `public` репозиториев в каждой организации без использования API корпоративной учетной записи. Обратите внимание, что API корпоративных учетных записей GraphQL упрощает эту задачу для организаций, так как нужно настроить лишь одну переменную. Чтобы настроить этот запрос, замените `<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 должен вернуть последние пять записей журнала для отдела организации. Чтобы настроить этот запрос, замените `<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\nДля получения дополнительной информации о getting started с GraphQL см. [Общие сведения о GraphQL](/ru/enterprise-cloud@latest/graphql/guides/introduction-to-graphql) и [Формирование вызовов с помощью GraphQL](/ru/enterprise-cloud@latest/graphql/guides/forming-calls-with-graphql).\n\n## Поля и типы GraphQL для API корпоративных учетных записей\n\nДополнительные сведения о новых запросах, изменениях и определенных в схеме типов, доступных для использования с API корпоративных учетных записей, см. на боковой панели с подробными определениями GraphQL на любой [странице справки по GraphQL](/ru/enterprise-cloud@latest/graphql).\n\nВы можете access к справочным документам внутри клиентов GraphQL. Для получения дополнительной информации см. [Использование клиентов GraphQL](/ru/enterprise-cloud@latest/graphql/guides/using-graphql-clients).\nДля другой информации, например, аутентификации и ограничения скорости, посмотрите [guides](/ru/enterprise-cloud@latest/graphql/guides)."}