Сведения о маркерах доступа к установке
Чтобы пройти проверку подлинности в качестве установки приложения, необходимо создать маркер доступа к установке. Дополнительные сведения о проверке подлинности в качестве установки приложения см. в статье "Проверка подлинности как установка приложения GitHub".
Примечание. Вместо создания маркера доступа к установке можно использовать пакеты SDK octokit %}для проверки подлинности как приложения с помощью GitHub. Пакет SDK будет заботиться о создании маркера доступа к установке и повторно создать маркер после истечения срока его действия. Дополнительные сведения о проверке подлинности в качестве установки приложения см. в статье "Проверка подлинности как установка приложения GitHub".
Необходимо обеспечить безопасность маркера доступа к установке. Дополнительные сведения см. в разделе Рекомендации по созданию приложения GitHub.
Создание маркера доступа к установке
-
Создайте веб-токен JSON (JWT) для приложения. Дополнительные сведения см. в разделе "Создание веб-маркера JSON (JWT) для приложения GitHub".
-
Получите идентификатор установки, которую требуется пройти проверку подлинности как.
Если вы отвечаете на событие веб-перехватчика, полезные данные веб-перехватчика будут содержать идентификатор установки.
Вы также можете использовать REST API для поиска идентификатора для установки приложения. Например, можно получить идентификатор установки с
GET /users/{username}/installation
помощью конечных точек илиGET /app/installations
конечныхGET /repos/{owner}/{repo}/installation``GET /orgs/{org}/installation
точек. Дополнительные сведения см. в разделе "Конечные точки REST API для GitHub Apps".Вы также можете найти идентификатор приложения на странице параметров приложения. Идентификатор приложения отличается от идентификатора клиента. Дополнительные сведения о переходе на страницу параметров для GitHub Appсм. в разделе "Изменение регистрации приложения GitHub".
-
Отправьте запрос REST API
POST
в/app/installations/INSTALLATION_ID/access_tokens
. Добавьте веб-токен JSON вAuthorization
заголовок запроса. ЗаменитеINSTALLATION_ID
идентификатором установки, которую требуется пройти проверку подлинности.Например, отправьте этот запрос curl. Замените
INSTALLATION_ID
идентификатором установки иJWT
веб-маркером JSON:curl --request POST \ --url "http(s)://HOSTNAME/api/v3/app/installations/INSTALLATION_ID/access_tokens" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer JWT" \ --header "X-GitHub-Api-Version: 2022-11-28"
При необходимости можно использовать
repositories
параметры илиrepository_ids
параметры тела для указания отдельных репозиториев, к которым может получить доступ маркер доступа к установке. Если вы не используетеrepositories
илиrepository_ids
не предоставляете доступ к определенным репозиториям, маркер доступа к установке будет иметь доступ ко всем репозиториям, к которым была предоставлена установка. Маркер доступа к установке не может быть предоставлен доступ к репозиториям, к которым установка не была предоставлена. Вы можете перечислить до 500 репозиториев.При необходимости используйте
permissions
параметр body, чтобы указать разрешения, которые должен иметь маркер доступа установки. Еслиpermissions
это не указано, маркер доступа к установке будет иметь все разрешения, предоставленные приложению. Маркер доступа к установке не может быть предоставлен разрешениям, которым приложение не было предоставлено.При использовании
permissions
параметров для уменьшения доступа к маркеру сложность маркера увеличивается из-за количества разрешений в запросе и количества репозиториев, к к которых будет иметь доступ маркер. Если сложность слишком велика, появится сообщение об ошибке, указывающее максимальное количество репозиториев, которые можно поддерживать. В этом случае необходимо запросить меньше разрешений с параметромpermissions
, использоватьrepositories
илиrepository_ids
параметр для запроса меньше репозиториев или установить приложение наall
репозитории в организации.Ответ будет включать маркер доступа к установке, время истечения срока действия маркера, разрешения, имеющиеся маркером, и репозитории, к которым может получить доступ маркер. Срок действия маркера доступа к установке истекает через 1 час.
Дополнительные сведения об этой конечной точке см. в разделе "Конечные точки REST API для GitHub Apps".
Примечание. В большинстве случаев передать маркер с помощью
Authorization: Bearer
илиAuthorization: token
. Однако при передаче веб-токена JSON (JWT) необходимо использоватьAuthorization: Bearer
.