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

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

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

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

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

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

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

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

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

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

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

Дополнительные сведения об указании разрешений во время создания приложения см. в разделе Создание приложения GitHub. Дополнительные сведения об изменении разрешений см. в разделе Изменение приложения GitHub.

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

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

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

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

Выбор разрешений для доступа к 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"