Skip to main content

Сведения о приложениях

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

Приложения на GitHub позволяют автоматизировать и оптимизировать рабочий процесс. Вы можете создавать приложения для улучшения рабочего процесса. Вы также можете публиковать приложения или продавать их в GitHub Marketplace. Дополнительные сведения о размещении приложения в GitHub Marketplace см. в разделе Начало работы с GitHub Marketplace.

Приложения GitHub — это официально рекомендуемый способ интеграции с GitHub, так как он предоставляет гораздо более детализированные разрешения на доступ к данным, но GitHub поддерживает как OAuth Apps, так и GitHub Apps. Сведения о выборе типа приложения см. в разделе Различия между приложениями GitHub и приложениями OAuth.

Пошаговое руководство по созданию GitHub App см. в разделе Создание первого GitHub App.

Сведения о GitHub Apps

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

GitHub Apps могут устанавливаться непосредственно в организациях и личных учетных записях и получать доступ к определенным репозиториям. Они поставляются со встроенными веб-перехватчиками и конкретными разрешениями. При настройке GitHub App можно выбрать репозитории, к которым у него должен быть доступ. Например, можно настроить приложение с именем MyGitHub , которое записывает проблемы в octocat репозитории и только репозиторий octocat . Чтобы установить GitHub App, необходимо быть владельцем организации или администратором репозитория.

По умолчанию управлять настройками приложений GitHub в организации могут только владельцы организации. Чтобы разрешить дополнительным пользователям изменять параметры разработчика приложений GitHub, принадлежащих организации, владелец может предоставить им разрешения диспетчера приложений GitHub. Диспетчеры приложений GitHub не могут управлять сторонними приложениями. Дополнительные сведения о добавлении и удалении диспетчеров приложений GitHub в организации см. в разделе "Диспетчеры приложений GitHub".

GitHub Apps должны где-то размещаться. Пошаговые инструкции, касающиеся серверов и размещения, см. в разделе Создание первого GitHub App.

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

При создании GitHub Apps учитывайте перечисленные ниже особенности.

  • Пользователю или организации могут принадлежать до 100 приложений GitHub.

  • GitHub App должно выполнять действия независимо от пользователя (если приложение не использует маркер "пользователь-сервер"). Для укрепления защиты токенов доступа между пользователями и сервером можно использовать токены доступа, срок действия которых истекает через восемь часов, и токен обновления, который можно обменять на новый токен доступа. Дополнительные сведения см. в разделе Обновление токенов доступа между пользователями и сервером.

  • GitHub App должно быть интегрировано с определенными репозиториями.

  • GitHub App должно быть подключено к личной учетной записи или к организации.

  • Не ожидайте от GitHub App тех же возможностей, которые есть у пользователя.

  • Не используйте GitHub App, если вам просто нужна служба входа с помощью GitHub. Однако GitHub App может использовать процесс идентификации пользователей для выполнения входа и других действий.

  • Не создавайте GitHub App, если вы хотите действовать только как пользователь GitHub и делать все, что может пользователь.

Чтобы приступить к разработке GitHub Apps, начните с раздела Создание GitHub App. Сведения об использовании манифестов GitHub App, которые позволяют пользователям создавать предварительно настроенные GitHub Apps, см. в разделе Создание GitHub Apps на основе манифеста.

Сведения о OAuth Apps

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

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

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

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

При создании OAuth Apps учитывайте перечисленные ниже особенности.

  • Пользователю или организации могут принадлежать до 100 приложений OAuth.
  • OAuth App всегда должно выступать в качестве прошедшего проверку подлинности пользователя GitHub при выполнении любых действий на GitHub (например, при предоставлении уведомлений пользователям).
  • OAuth App можно использовать в качестве поставщика удостоверений. Для этого нужно включить функцию "Вход с помощью GitHub" для пользователя, прошедшего проверку подлинности.
  • Не создавайте OAuth App, если приложение должно работать с одним репозиторием. При использовании области OAuth repo OAuth Apps может работать со всеми репозиториями пользователя, прошедшего проверку подлинности.
  • Не создавайте OAuth App для работы от имени вашей команды или организации. OAuth Apps аутентифицируются как один пользователь, поэтому если пользователь создаст OAuth App для организации, а затем покинет организацию, доступа к приложению не будет ни у кого.
  • Если вы используете приложение OAuth с GitHub Actions и хотите изменить файлы рабочего процесса, токен OAuth должен иметь область workflow, а пользователь — разрешение владельца или разрешение на запись в отношении репозитория, содержащего файл рабочего процесса. Дополнительные сведения см. в разделе Основные сведения о областях для приложений OAuth.

Дополнительные сведения о OAuth Apps см. в разделах Создание OAuth App и Регистрация приложения.

Personal access tokens

personal access token — это строка символов, которая функционирует аналогично токену OAuth в , в которую можно указать его разрешения с помощью областей. personal access token также похож на пароль, но у вас может быть много из них, и вы можете отозвать доступ к каждому из них в любое время.

Например, можно включить personal access token для записи в репозитории. При выполнении curl команды или написании скрипта, который создает проблему в репозитории, вы передаете personal access token для проверки подлинности. Вы можете сохранить personal access token в качестве переменной среды, чтобы избежать ее ввода при каждом использовании.

Учитывайте эти идеи при использовании personal access tokens:

  • Маркер должен представлять только вас.
  • Вы можете выполнять одноразовые curl запросы.
  • Вы можете выполнять личные скрипты.
  • Не настраивайте скрипт для использования от имени всей команды или организации.
  • Не настраивайте общую личную учетную запись для работы в качестве пользователя бота.
  • Предоставьте маркеру минимальные привилегии, необходимые ему.
  • Установите срок действия personal access tokens, чтобы обеспечить безопасность вашей информации.

Выбор создаваемой интеграции

Прежде чем приступить к созданию интеграции, необходимо определить оптимальный способ доступа, проверки подлинности и взаимодействия с интерфейсами API GitHub. На следующем рисунке приведены некоторые вопросы, которые можно задать себе при принятии решения об использовании personal access tokens, GitHub Apps или OAuth Apps для интеграции.

Базовый процесс выбора типа приложений

Дайте ответы на следующие вопросы о том, как должна работать интеграция и к чему требуется доступ:

  • Будет ли интеграция действовать только от моего имени или работать скорее как приложение?
  • Должна ли она действовать независимо от меня как самостоятельная сущность?
  • Будет ли она иметь доступ ко всему, к чему есть доступ у меня, или нужно ограничить доступ?
  • Будет ли она простой или сложной? Например, personal access tokens хорошо подходит для простых скриптов и curl команд, тогда как OAuth App может обрабатывать более сложные скрипты.

Запрос поддержки

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

В службу поддержки GitHub можно обратиться напрямую через форму связи, чтобы получить:

  • гарантированный ответ от сотрудников GitHub Enterprise Cloud;
  • запросы на поддержку, связанные с конфиденциальными данными или частными проблемами;
  • запросы функций;
  • отзывы о продуктах GitHub Enterprise Cloud.