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

Аналогично, если запрос запускает соответствующую запись в журналах аудита и журналах безопасности, в логах пользователь будет указан как актор, но будет указано, что «programmatic_access_type» — это «GitHub токен пользователя приложения».
Чтобы запросить API от имени пользователя, пользователь должен авторизовать приложение. Если приложение установлено в организации, включающее несколько участников, каждому участнику потребуется авторизовать приложение, прежде чем приложение сможет действовать от их имени. Чтобы пользователь авторизации приложения не устанавливал приложение.
Когда пользователь устанавливает приложение в учетной записи, он предоставляет приложению разрешение на доступ к запрошенным ресурсам. Во время установки они также увидят список разрешений учетной записи, которые приложение может запрашивать для отдельных пользователей. Когда пользователь авторизует приложение, он предоставляет приложению разрешение на действия от своего имени и предоставляет разрешения учетной записи, запрошенные приложением.
После того как пользователь авторизовать приложение, можно создать маркер доступа пользователя, который является типом маркера OAuth. Необходимо отправить маркер доступа пользователя в заголовке Authorization последующих запросов API. Дополнительные сведения о запросе пользователя на авторизацию приложения и создании маркера доступа пользователя см. в разделе Генерация токена доступа пользователя для приложения GitHub.
При работе от имени пользователя доступ приложения ограничен, чтобы обеспечить безопасный и соответствующий доступ:
- Приложение может получить доступ только к ресурсам, к которым у пользователя есть доступ. Если у пользователя нет доступа к репозиторию, приложение не может получить доступ к репозиторию от их имени, даже если приложение установлено в этом репозитории.
- Приложение может получить доступ только к ресурсам, к которым у него есть разрешение на доступ. Если у приложения нет
Issuesразрешения, он не может создавать или читать проблемы для пользователя, даже если у пользователя есть доступ к репозиторию. - Приложение может получить доступ только к ресурсам в учетной записи, в которой она установлена. Если приложение установлено только на личная учетная запись пользователя, он не может получить доступ к ресурсам в организации, в которую пользователь входит, если приложение не установлено в этой организации.
Запросы, сделанные с маркером доступа пользователя, иногда называются запросами "пользователь — сервер".
Маркер имеет те же возможности для доступа к ресурсам и выполнения действий с этими ресурсами, которые владелец маркера имеет, и дополнительно ограничивается любыми областями или разрешениями, предоставленными маркеру. Маркер не может предоставить пользователю дополнительные возможности доступа.
Если вы хотите атрибутировать действие приложения приложению приложению вместо пользователя, необходимо выполнить проверку подлинности в качестве установки приложения. Дополнительные сведения см. в разделе Аутентификация как установка приложения GitHub.
Примечание.
Если пользователь сообщает, что он не может видеть ресурсы, принадлежащие своей организации после авторизации GitHub App и организация использует единый вход SAML, сообщите пользователю начать активный сеанс SAML для своей организации перед повторной авторизацией. Дополнительные сведения см. в разделе Приложения SAML и GitHub в документации GitHub Enterprise Cloud.