Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Поддержка этой версии GitHub Enterprise была прекращена 2023-03-15. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, укрепления безопасности и новых функций установите последнюю версию GitHub Enterprise. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Выбор разрешений для Приложение GitHub

Разрешения Приложение GitHub определяют, что приложение может делать с ПОМОЩЬЮ APIGitHubи какие веб-перехватчики может получать приложение.

Сведения о разрешениях GitHub App

По умолчанию у GitHub Appнет разрешений. При регистрации GitHub App можно выбрать разрешения для приложения. Выбор разрешений определяет, что приложение может делать с ПОМОЩЬЮ API GitHub, а также веб-перехватчики, на которые приложение может подписаться. Необходимо выбрать минимальные разрешения, необходимые для приложения.

Хотя GitHub App не имеют разрешений по умолчанию, они имеют неявные разрешения на чтение общедоступных ресурсов при действии от имени пользователя. Когда пользователь разрешает приложению действовать от его имени, GitHub App может использовать полученный маркер доступа пользователя для выполнения запросов к REST API для чтения общедоступных ресурсов. Дополнительные сведения о действиях от имени пользователя см. в разделе Проверка подлинности с помощью Приложение GitHub от имени пользователя.

Разрешения приложений классифицируются как разрешения репозитория, организации или учетной записи. Разрешения репозитория позволяют приложению получать доступ к ресурсам, связанным с репозиториями, принадлежащими учетной записи, в которой установлено приложение. Разрешения организации позволяют приложению получать доступ к ресурсам, связанным с организацией, в которой установлено приложение, если оно установлено в учетной записи организации. Разрешения учетной записи позволяют приложению получать доступ к ресурсам, связанным с пользователем, если пользователь также авторизовать приложение. Дополнительные сведения об авторизации пользователей приложений см. в разделе Проверка подлинности с помощью Приложение GitHub от имени пользователя.

Когда пользователь устанавливает приложение в своей учетной записи или организации, он видит и предоставляет репозиторию и организации разрешения, запрошенные приложением. Они также увидят список разрешений учетной записи, которые приложение может запрашивать для отдельных пользователей. Когда пользователь разрешает приложению действовать от его имени, он видит и предоставляет разрешения учетной записи, запрошенные приложением.

Успешное выполнение запроса API с маркером доступа пользователя зависит от разрешений пользователя, а также разрешений приложения. Например, если приложению было предоставлено разрешение на запись содержимого репозитория, но пользователь может только читать содержимое, то маркер доступа пользователя может только читать содержимое. Успешное выполнение запроса API с маркером доступа установки зависит только от разрешений приложения.

Разрешения для приложения можно изменить в любое время. При изменении разрешений владельцу каждой учетной записи, в которой было установлено приложение, будет предложено утвердить новые разрешения. Если владелец учетной записи не утвердит новые разрешения, его установка продолжит использовать старые разрешения.

Для некоторых веб-перехватчиков и доступа к API требуются разрешения "Администрирование". Если приложению требуются разрешения "Администрирование", рассмотрите возможность объяснить это требование на домашней странице приложения. Это поможет пользователям понять, почему приложению требуется разрешение высокого уровня.

Дополнительные сведения об указании разрешений во время регистрации GitHub App см. в разделе Registering a GitHub App. Дополнительные сведения об изменении разрешений см. в разделе Изменение регистрации Приложение GitHub.

Выбор разрешений для доступа к веб-перехватчику

В документации по веб-перехватчику указывается, доступен ли каждый веб-перехватчик для GitHub Apps. Сведения о каждом веб-перехватчике, на который вы хотите подписаться, см. в документации по веб-перехватчику, чтобы узнать, какие разрешения необходимы GitHub App для подписки на этот веб-перехватчик. Дополнительные сведения см. в разделе События и полезные данные веб-перехватчика.

Например, если вы хотите, чтобы team приложение подписывалось на события, оно должно иметь разрешение организации "Участники".

На странице регистрации GitHub App доступные события веб-перехватчика будут изменяться по мере изменения разрешений приложения. Если вы не выбрали достаточные разрешения для GitHub App для подписки на событие, событие не будет отображаться как вариант на странице регистрации приложения.

Выбор разрешений для доступа к REST API

Дополнительные сведения о том, к каким конечным точкам REST API можно получить доступ с помощью каждого разрешения, см. в разделе Разрешения, необходимые для приложений GitHub. Для некоторых конечных точек может потребоваться несколько разрешений, а для некоторых — одно из нескольких разрешений. Дополнительные сведения см. в документации по конечной точке.

Например, чтобы использовать конечную точку GET /orgs/{org}/dependabot/secrets , приложение должно иметь по крайней мере разрешение уровня чтения для разрешения "Секреты зависимостей организации".

Если приложение выполняет запрос REST API с недостаточными разрешениями, API вернет 403 ответ.

Выбор разрешений для доступа к API GraphQL

Для GraphQL запросов следует протестировать приложение, чтобы убедиться, что у него есть необходимые разрешения для GraphQL запросов и изменений, которые вы хотите внести.

Если приложение выполняет запрос или изменение API GraphQL с недостаточными разрешениями, API вернет 401 ответ.

Выбор разрешений для доступа Git

Если вы хотите, чтобы приложение использовало маркер доступа пользователя или установки для проверки подлинности для доступа Git по протоколу HTTP, необходимо запросить разрешение репозитория "Содержимое". Если приложению требуется доступ к файлам действий в .workflows каталоге или их редактирование, запросите разрешение репозитория "Рабочие процессы".

Затем можно использовать маркер доступа в качестве пароля HTTP. Замените TOKEN маркером доступа:

git clone https://x-access-token:TOKEN@github.com/owner/repo.git"