Сведения о разрешениях GitHub App
По умолчанию у GitHub Appнет разрешений. При регистрации GitHub App можно выбрать разрешения для приложения. Выбор разрешений определяет, что приложение может делать с ПОМОЩЬЮ API GitHub, а также веб-перехватчики, на которые приложение может подписаться. Необходимо выбрать минимальные разрешения, необходимые для приложения.
Хотя GitHub App не имеют разрешений по умолчанию, они имеют неявные разрешения на чтение общедоступных ресурсов при действии от имени пользователя. Когда пользователь разрешает приложению действовать от его имени, GitHub App может использовать полученный маркер доступа пользователя для выполнения запросов к REST API и API GraphQL для чтения общедоступных ресурсов. Дополнительные сведения о действиях от имени пользователя см. в разделе Проверка подлинности с помощью Приложение 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"