Skip to main content

Решение о том, когда создавать приложение GitHub

При построении интеграции следует рассмотреть возможность использования GitHub App в следующих сценариях, а не OAuth appс помощью , personal access tokenили GitHub Actions.

GitHub App Использование вместоOAuth app

В общем случае предпочтительнее GitHub AppsOAuth apps.

И то, OAuth apps и другое, GitHub Apps и использовать OAuth 2.0.

OAuth apps может действовать только от имени пользователя, в то время как GitHub Apps он может действовать от имени пользователя или независимо от пользователя.

Дополнительные сведения см. в разделе Различия между приложениями GitHub и приложениями OAuth.

Сведения о переносе существующего OAuth app объекта в раздел GitHub AppМиграция OAuth приложений на GitHub Apps.

GitHub Apps обеспечение повышенной безопасности

GitHub Apps предоставьте больше контроля над тем, что может сделать приложение. Вместо широких областей, которые OAuth apps используются, GitHub Apps используйте точные разрешения. Например, если приложению нужно прочитать содержимое репозитория, OAuth app потребуется repo область, которая также позволит приложению изменять содержимое и параметры репозитория. Может GitHub App запрашивать доступ только для чтения к содержимому репозитория, что не позволит приложению выполнять более привилегированные действия, такие как изменение содержимого репозитория или параметров.

GitHub Apps также обеспечивают более широкий контроль над доступом к репозиторию. GitHub AppС помощью пользователя или владельца организации, который установил приложение, можно решить, какие репозитории приложение может получить к ним доступ. И наоборот, OAuth app доступ к каждому репозиторию, к которому пользователь, авторизованный приложением, может получить доступ.

GitHub Apps используйте короткие маркеры. Если маркер просочится, маркер будет действителен в течение более короткого времени, что снижает ущерб, который можно сделать. И наоборот, срок действия маркеров не истекает до тех пор, OAuth app пока пользователь, который авторизовал OAuth app маркер.

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

GitHub Apps может действовать независимо от имени или от имени пользователя

GitHub Apps может действовать независимо от пользователя. Это полезно для автоматизации, для которых не требуются входные данные пользователя.

Как и в случае OAuth appsс пользователем, GitHub Apps можно выполнять действия от имени пользователя. В отличие OAuth appsот того, что действие было выполнено приложением, GitHub Apps указывает, что действие было выполнено приложением от имени пользователя.

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

GitHub Apps имеют ограничения масштабируемой скорости

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

GitHub Apps встроенные веб-перехватчики

GitHub Apps имеют встроенные, централизованные веб-перехватчики. GitHub Apps может получать события веб-перехватчика для всех репозиториев и организаций, к которые приложение может получить доступ. И наоборот, OAuth apps необходимо настроить веб-перехватчики по отдельности для каждого репозитория и организации.

Доступ к API немного отличается

Как правило, GitHub Apps и OAuth apps может выполнять те же запросы API. Но между ними существуют некоторые отличия.

  • REST API для управления запусками проверок и наборами проверок доступен только для GitHub Apps.
  • Ресурсы корпоративного уровня, такие как сам корпоративный объект, недоступны GitHub Apps. Это означает, что GitHub Apps не удается вызвать такие GET /enterprise/settings/licenseконечные точки. Однако доступны корпоративные организации и ресурсы репозитория.
  • Некоторые запросы могут возвращать неполные данные в зависимости от разрешений и доступа к репозиторию, предоставленным объекту GitHub App. Например, если приложение отправляет запрос на получение всех репозиториев, к которым пользователь может получить доступ, ответ будет включать только репозитории, к которым приложение также было предоставлено доступ.

Дополнительные сведения о конечных точках REST API, доступных GitHub Appsдля , см. в разделе Доступные конечные точки для токенов доступа к установке приложений GitHub.

Выбор между или GitHub Apppersonal access token

Если вы хотите получить доступ к GitHub ресурсам от имени пользователя или организации, или вы ожидаете долговременную интеграцию, рекомендуется создать GitHub App.

Вы можете использовать personal access tokens для тестирования API или кратковременных сценариев. personal access token Так как пользователь связан с пользователем, автоматизация может нарушиться, если у пользователя больше нет доступа к нужным ресурсам. Установка GitHub App на организации не зависит от пользователя. Кроме того, в отличие от пользователя, не GitHub App используется GitHubместо.

GitHub поддерживает два типа personal access tokens, но рекомендует использовать fine-grained personal access tokenих вместо personal access tokens (classic) всех возможных. Дополнительные сведения см. в personal access tokensразделе Управление личными маркерами доступа.

Выбор между или GitHub AppGitHub Actions

GitHub Apps и GitHub Actions оба способа создания средств автоматизации и рабочих процессов.

_ GitHub Actions _ обеспечивает автоматизацию, которая может выполнять такие задания, как непрерывная интеграция, задачи развертывания и управление проектами в репозитории. Они выполняются непосредственно на GitHubкомпьютерах-размещенных запусках или локальных запусках, настроенных администратором. GitHub Actions не выполняйтесь постоянно. GitHub Actions рабочие процессы выполняются в ответ на события, происходящие в их репозитории, и имеют доступ только к ресурсам репозитория, для которых они настроены. Однако пользовательские действия можно совместно использовать в репозиториях и организациях, позволяя разработчикам повторно использовать и изменять существующие действия в соответствии с их потребностями. GitHub Actions также используется встроенное управление секретами, которое можно использовать для безопасного взаимодействия со сторонними службами и безопасного развертывания ключей.

_ GitHub Apps _ выполняется постоянно на сервере или вычислительной инфраструктуре, которую вы предоставляете или запускаете на пользовательском устройстве. Они могут реагировать на GitHub события веб-перехватчика, а также события извне экосистемы GitHub . Они являются хорошим вариантом для операций, охватывающих несколько репозиториев или организаций, или для предоставления размещенных служб другим организациям и предприятиям. Лучший GitHub App выбор при создании инструмента с функциями, которые происходят в основном за пределами GitHub или требуют больше времени выполнения или разрешений, чем то, что рабочий GitHub Actions процесс выделен.

Дополнительные сведения о сравнении GitHub ActionsGitHub Appsсм. в разделе GitHub Actions против GitHub Apps.

Вы можете использовать проверку GitHub App подлинности в a GitHub Actions рабочий процесс, если встроенный GITHUB_TOKEN не имеет достаточных разрешений. Дополнительные сведения см. в разделе Создание аутентифицированных запросов API с помощью приложения GitHub в рабочем процессе GitHub Actions.