Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

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

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

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

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

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

Сведения о GitHub Apps

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы начать разработку GitHub Apps, начните с "Создание приложения GitHub".

Сведения о OAuth Apps

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

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

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

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

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

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

Дополнительные сведения о OAuth Apps см. в разделах Создание приложения OAuth и Проверка подлинности в REST API с помощью приложения OAuth.

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 Enterprise Server.

Чтобы решить, следует ли использовать для интеграции personal access tokens, GitHub Apps или OAuth Apps, рассмотрите следующие вопросы о том, как должна вести себя интеграция и к чему она должна получить доступ:

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

Если интеграция будет действовать только как вы, но вы хотите ограничить ее доступ, используйте GitHub App или fine-grained personal access token.

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

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

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

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

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