Skip to main content

Области для приложений OAuth

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

Примечание.

Рассмотрите возможность создания GitHub App вместо OAuth app. GitHub Apps используйте более подробные разрешения вместо областей, что дает вам больше контроля над тем, что может сделать ваше приложение. Дополнительные сведения см. в разделе [AUTOTITLE и Различия между приложениями GitHub и приложениями OAuth](/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps).

При настройке OAuth app GitHub запрашиваемые области отображаются пользователю в форме авторизации.

Примечание.

Если вы создаёте приложение GitHub, вам не нужно указывать область действия в запросе на авторизацию. Дополнительные сведения см. в разделе Аутентификация с помощью приложения GitHub от имени пользователя.

Если у вас OAuth app нет доступа к браузеру, например средству КОМАНДНОй строки, вам не нужно указывать область для пользователей для проверки подлинности в приложении. Дополнительные сведения см. в разделе Авторизация приложений OAuth.

Проверьте заголовки, чтобы узнать, какие области OAuth у вас есть и что принимает действие API:

$ curl -H "Authorization: Bearer OAUTH-TOKEN" http(s)://HOSTNAME/api/v3/users/codertocat -I
HTTP/2 200
X-OAuth-Scopes: repo, user
X-Accepted-OAuth-Scopes: user
  • X-OAuth-Scopes выводит список областей, разрешенных токеном;
  • X-Accepted-OAuth-Scopes выводит список областей, проверяемых действием.

Доступные области

ИмяОписание
(no scope)Предоставляет доступ только для чтения к общедоступной информации (включая сведения о профиле пользователя, сведения о репозитории и gists)
site_adminПредоставляет администраторам сайта доступ к GitHub Enterprise Server конечным точкам API администрирования.
repoПредоставляет полный доступ к общедоступным, внутренним и частным репозиториям, включая доступ на чтение и запись к коду, состояние фиксации, приглашения репозитория, совместная работа, состояния развертывания и веб-перехватчики репозитория.
Примечание. Помимо ресурсов, связанных с репозиторием, область repo также предоставляет доступ к управлению ресурсами, принадлежащими организации, включая проекты, приглашения, членство в команде и веб-перехватчики. Эта область также предоставляет возможность управлять проектами, принадлежащими пользователям.
repo:statusПредоставляет доступ на чтение и запись для фиксации состояний в , частных и внутренних репозиториях. Эта область позволяет предоставлять другим пользователям или службам доступ к состояниям фиксаций в частных репозиториях, не предоставляя доступ к коду.
repo_deploymentПредоставляет доступ к состояниям развертывания для общедоступных и частных репозиториев. Эта область необходима только для предоставления другим пользователям или службам доступа к состояниям развертывания без __ предоставления доступа к коду.
public_repoОграничивает доступ к общедоступным репозиториям. Это включает доступ на чтение и запись к коду, состояниям фиксаций, проектам репозитория, участникам совместной работы и состояниям развертывания для общедоступных репозиториев и организаций. Также требуется для звездного общедоступного репозитория.
repo:inviteПредоставляет возможность принимать или отклонять приглашения для совместной работы в репозитории. Эта область необходима только для предоставления другим пользователям или службам доступа к приглашениям без предоставления доступа к коду.
security_eventsГранты:
доступ на чтение и запись к событиям безопасности в code scanning API
Эта область необходима только для предоставления другим пользователям или службам доступа к событиям безопасности без предоставления доступа к коду.
admin:repo_hookПредоставляет доступ на чтение, запись, связь и удаление доступа к перехватчикам репозитория в или внутренних репозиториях.
repo Области public_repo предоставляют полный доступ к репозиториям, включая перехватчики репозиториев. Область admin:repo_hook позволяет ограничить доступ перехватчиками репозитория.
write:repo_hookПредоставляет доступ для чтения, записи и проверки доступа к перехватчикам в или внутренних репозиториях.
read:repo_hookПредоставляет доступ для чтения и проверки доступа к перехватчикам в , частных или внутренних репозиториях.
admin:orgПолностью управляйте организацией и ее командами, проектами и членством.
write:orgЧтение и запись доступа к проектам организации и членства в организации.
read:orgДоступ только для чтения к членству в организации, проектам организации и членству в команде.
admin:public_keyПолностью управлять открытыми ключами.
write:public_keyСоздание, перечисление и просмотр сведений о открытых ключах.
read:public_keyСписок и просмотр сведений о открытых ключах.
admin:org_hookПредоставляет доступ на чтение, запись, связь и удаление доступа к перехватчикам организации.
Примечание: Маркеры OAuth смогут выполнять только эти действия на перехватчиках организации, созданных с помощью OAuth appтокенов OAuth.
Personal access tokens сможет выполнять эти действия только для перехватчиков организации, созданных пользователем.
gistПредоставляет доступ на запись к gists.
notificationsГранты:
доступ на чтение к уведомлениям пользователя
пометить как доступ на чтение к потокам
контрольный и неосторожный доступ к репозиторию и
чтение, запись и удаление доступа к подпискам потоков.
userПредоставляет доступ только для чтения и записи только к данным профиля. Обратите внимание, что эта область включает user:email и user:follow.
read:userПредоставляет доступ для чтения данных профиля пользователя.
user:emailПредоставляет доступ на чтение к адресам электронной почты пользователя.
user:followПредоставляет доступ для отслеживания или отмены несанкционированного доступа к другим пользователям.
delete_repoПредоставляет доступ к удаленным репозиториям с правами администратора.
write:packagesПредоставляет доступ для отправки или публикации пакета в GitHub Packages. Дополнительные сведения см. в разделе Публикация пакета.
read:packagesПредоставляет доступ к скачиванию или установке пакетов из GitHub Packages. Дополнительные сведения см. в разделе Установка пакета.
delete:packagesПредоставляет доступ к удалению пакетов из GitHub Packages. Дополнительные сведения см. в разделе Удаление и восстановление пакета.
admin:gpg_keyПолностью управляйте ключами GPG.
write:gpg_keyСоздание, перечисление и просмотр сведений о ключах GPG.
read:gpg_keyСписок и просмотр сведений о ключах GPG.
workflowПредоставляет возможность добавлять и обновлять GitHub Actions файлы рабочих процессов. Файлы рабочих процессов можно фиксировать без этой области, если в другой ветви того же репозитория существует такой же файл (с таким же адресом и содержимым). Файлы рабочих процессов могут предоставлять GITHUB_TOKEN с другим набором областей. Для получения дополнительной информации см. Использование GITHUB_TOKEN для проверки подлинности в рабочих процессах.
admin:enterpriseОбеспечивает полный контроль над функциональными возможностями предприятия. Дополнительные сведения см. в статье Управление корпоративными учетными записями в документации по API GraphQL.

Включает manage_runners:enterprise, manage_billing:enterprise и read:enterprise.
manage_runners:enterpriseОбеспечивает полный контроль над локальными запусками в организации. Дополнительные сведения см. в разделе Локальные средства выполнения тестов.
manage_billing:enterpriseЧтение и запись корпоративных данных выставления счетов. Дополнительные сведения см. в разделе Конечные точки REST API для выставления счетов.
read:enterpriseЧтение всех данных в корпоративном профиле. Не включает данные профиля корпоративных членов или организаций.
read:audit_logЧтение данных журнала аудита.

Примечание.

Вы OAuth app можете запросить области в первоначальном перенаправлении. Можно указать несколько областей, перечислив их через пробел в виде %20:

https://github.com/login/oauth/authorize?
  client_id=...&
  scope=user%20repo_deployment

Запрошенные и предоставленные области

Атрибут scope перечисляет области, присоединенные к предоставленному пользователем токену. Обычно эти области идентичны запрошенным областям. Однако пользователи могут редактировать свои области, фактически предоставляя вашему приложению меньше доступа, чем вы изначально запрашивали. Кроме того, пользователи могут редактировать области токенов после завершения потока OAuth. Учитывайте такую возможность и корректируйте поведение своего приложения соответствующим образом.

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

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

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

Нормализованные области

При запросе нескольких областей токен сохраняется с нормализованным списком областей, в который не входят области, косвенно включенные другой запрошенной областью. Например, при запросе user,gist,user:email выдается токен с областями user и gist, поскольку доступ, предоставленный областью user:email, входит в область user.