# Быстрый старт для создания приложений GitHub

Быстро создайте GitHub App, которые примечают к запросам на вытягивание.

## Введение

GitHub Apps позволяет автоматизировать процессы или интегрировать другие платформы с GitHub. Дополнительные сведения см. в разделе [О создании приложений GitHub](/ru/apps/creating-github-apps/creating-github-apps/about-apps).

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

В этом кратком руководстве используется предварительно написанный код, помогающий быстро приступить к работе. Более подробное руководство по написанию кода см. в разделе [Создание приложения GitHub, которое реагирует на события webhook](/ru/apps/creating-github-apps/guides/building-a-github-app-that-responds-to-webhook-events).

## Необходимые компоненты

Компьютер или пространство кода должно использовать Node.js версии 12 или более поздней. Дополнительные сведения см. в Node.js[](https://nodejs.org).

## Шаг 1. Клонирование кода приложения

Чтобы быстро приступить к работе, мы написали код, который можно использовать. Если вы хотите узнать, как самостоятельно писать код, см [. раздел AUTOTITLE](/ru/apps/creating-github-apps/guides/building-a-github-app-that-responds-to-webhook-events).

1. Клонируйте репозиторий [github/github-app-js-sample](https://github.com/github/github-app-js-sample) . Дополнительные сведения см. в разделе [Клонирование репозитория](/ru/repositories/creating-and-managing-repositories/cloning-a-repository). Вы можете использовать локальный клон или GitHub Codespaces.
2. В окне терминала перейдите в каталог, в котором хранится клон.
3. Запустите `npm install`, чтобы установить зависимости.

## Шаг 2. Получение URL-адреса прокси-сервера веб-перехватчика

Для локальной разработки приложения можно использовать URL-адрес прокси-сервера веб-перехватчика для пересылки веб-перехватчиков из GitHub на компьютер или пространство кода. В этом кратком руководстве используется Smee.io для предоставления URL-адреса прокси-сервера веб-перехватчика и перенаправления веб-перехватчиков.

1. В браузере перейдите по адресу <https://smee.io/>.
2. Нажмите кнопку " **Пуск нового канала**".
3. Скопируйте полный URL-адрес в разделе "URL-адрес прокси-сервера веб-перехватчика". Этот URL-адрес будет использоваться на следующем шаге.

## Шаг 3. Регистрация GitHub App

Ниже приведены инструкции по настройке параметров приложения, необходимых для работы с этим кратким руководством. Дополнительные сведения о параметрах см. в разделе [Регистрация приложения GitHub](/ru/apps/creating-github-apps/creating-github-apps/creating-a-github-app).

1. В правом верхнем углу любой страницы на GitHubщелкните рисунок профиля.
2. Перейдите к настройкам учетной записи.
   * Для приложения, принадлежащих личная учетная запись, нажмите кнопку **"Параметры**".
   * Для приложения, принадлежащих организации:
     1. Щелкните **Your organizations** (Ваши организации).
     2. Справа от организации нажмите кнопку **"Параметры**".
3. На левой боковой панели щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Параметры разработчика**.
4. На левой боковой панели щелкните **GitHub Apps**.
5. Щелкните **"Создать" GitHub App**.
6. В поле "GitHub App name" введите имя приложения. Например, `USERNAME-quickstart-app` где `USERNAME` находится имя пользователя GitHub.
7. В разделе "URL-адрес домашней страницы" введите `https://github.com/github/github-app-js-sample#readme`.
8. Пропустите разделы "Идентификация и авторизация пользователей" и "После установки" для этого краткого руководства. Дополнительные сведения об этих параметрах см. в разделе [Регистрация приложения GitHub](/ru/apps/creating-github-apps/creating-github-apps/creating-a-github-app).
9. Убедитесь, что **параметр "Активный** " выбран в разделе "Веб-перехватчики".
10. В разделе "URL-адрес веб-перехватчика" введите URL-адрес прокси-сервера веб-перехватчика ранее. Дополнительные сведения см. в шаге [2. Получение URL-адреса](#step-2-get-a-webhook-proxy-url) прокси-сервера веб-перехватчика.
11. В разделе "Секрет веб-перехватчика" введите случайную строку. Эта строка будет использоваться позже.
12. В разделе "Разрешения репозитория" рядом с пунктом "Запросы на вытягивание" выберите **"Чтение и запись**".
13. В разделе "Подписка на события" выберите **запрос на вытягивание**.
14. В разделе "Где можно установить данные GitHub App?", выберите **только в этой учетной записи**.
15. Нажмите кнопку **"Создать GitHub App**.

## Шаг 4. Хранение сведений и учетных данных

В этом кратком руководстве вы сохраните учетные данные приложения и определите сведения в качестве переменных среды в `.env` файле. При развертывании приложения необходимо изменить способ хранения учетных данных. Дополнительные сведения см. в разделе ["Развертывание приложения](#deploy-your-app)".

Прежде чем выполнять эти действия, убедитесь, что вы находитесь на защищенном компьютере, так как вы будете хранить учетные данные локально.

### Создайте файл `.env` .

Клонированные репозитории включаются `.env` в `.gitignore` файл. Это позволит предотвратить случайное фиксацию учетных данных приложения. Дополнительные сведения о файлах см. в `.gitignore` разделе [Пропуск файлов](/ru/get-started/git-basics/ignoring-files).

1. Перейдите в каталог, [в котором хранится клон github/github-app-js-sample](https://github.com/github/github-app-js-sample) .
2. Создайте файл, вызывающийся `.env` на верхнем уровне этого каталога.
3. Добавьте в файл следующее содержимое `.env` . Вы обновите значения на следующем шаге.

   ```text copy
   APP_ID="YOUR_APP_ID"
   WEBHOOK_SECRET="YOUR_WEBHOOK_SECRET"
   PRIVATE_KEY_PATH="YOUR_PRIVATE_KEY_PATH"
   ```

### Перейдите к параметрам приложения

Если вы перейдете из параметров приложения после создания приложения, перейдите на страницу параметров приложения:

1. В правом верхнем углу любой страницы на GitHubщелкните рисунок профиля.
2. Перейдите к настройкам учетной записи.
   * Для приложения, принадлежащих личная учетная запись, нажмите кнопку **"Параметры**".
   * Для приложения, принадлежащих организации:
     1. Щелкните **Your organizations** (Ваши организации).
     2. Справа от организации нажмите кнопку **"Параметры**".
3. На левой боковой панели щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Параметры разработчика**.
4. На левой боковой панели щелкните **GitHub Apps**.
5. Рядом с именем приложения нажмите кнопку **"Изменить**".

### Получение учетных данных приложения и идентификация сведений

1. На странице параметров приложения рядом с идентификатором приложения найдите идентификатор приложения.
2. `.env` В файле замените `YOUR_APP_ID` идентификатор приложения.
3. На странице параметров приложения в разделе "Закрытые ключи" нажмите кнопку **"Создать закрытый ключ**". Вы увидите скачанный на компьютер закрытый ключ в формате PEM. Дополнительные сведения см. в разделе [Управление приватными ключами для приложений GitHub](/ru/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps).
4. Если вы используете пространство кода, переместите скачанный PEM-файл в пространство кода, чтобы пространство кода могли получить доступ к файлу.
5. `.env` В файле замените `YOUR_PRIVATE_KEY_PATH` полный путь к закрытому ключу, включая `.pem` расширение.
6. `.env` В файле замените `YOUR_WEBHOOK_SECRET` секрет веб-перехватчика для приложения. Если вы забыли секрет веб-перехватчика, в разделе "Секрет веб-перехватчика (необязательно)" нажмите кнопку **"Изменить секрет**". Введите новый секрет и нажмите кнопку **"Сохранить изменения**".

## Шаг 5. Установка приложения

Чтобы приложение оставило комментарий по запросам на вытягивание в репозитории, оно должно быть установлено в учетной записи, которая владеет репозиторием и предоставляет доступ к нему. Так как ваше приложение является частным, оно может быть установлено только в учетной записи, которая владеет приложением.

1. В учетной записи, владеющей созданным приложением, создайте новый репозиторий для установки приложения. Дополнительные сведения см. в разделе [Создание репозитория](/ru/repositories/creating-and-managing-repositories/creating-a-new-repository).
2. Если вы перейдете из параметров приложения после создания приложения, перейдите на страницу параметров приложения. Дополнительные сведения см. в разделе ["Переход к параметрам](#navigate-to-your-app-settings) приложения".
3. Щелкните **общедоступную страницу**.
4. Нажмите кнопку **"Установить**".
5. Выберите **только определенные репозитории**.
6. **Выберите раскрывающееся меню "Выбор репозиториев**" и выберите репозиторий, выбранный в начале этого раздела.
7. Нажмите кнопку **"Установить**".

## Шаг 6. Запуск сервера

Для тестирования вы будете использовать компьютер или пространство кода в качестве сервера. Ваше приложение будет активно только при запуске сервера.

1. В окне терминала перейдите в каталог, в котором хранится клон [github/github-app-js-sample](https://github.com/github/github-app-js-sample) .

2. Чтобы получить перенаправленные веб-перехватчики из Smee.io, выполните команду `npx smee -u WEBHOOK_PROXY_URL -t http://localhost:3000/api/webhook`. Замените `WEBHOOK_PROXY_URL` URL-адрес прокси-сервера веб-перехватчика. Если вы забыли URL-адрес, его можно найти в поле "URL-адрес веб-перехватчика" на странице параметров приложения.

   Вы увидите выходные данные, которые выглядят следующим образом, где `WEBHOOK_PROXY_URL` находится URL-адрес прокси-сервера веб-перехватчика:

   ```shell
   Forwarding WEBHOOK_PROXY_URL to http://localhost:3000/api/webhook
   Connected WEBHOOK_PROXY_URL
   ```

3. Во втором окне терминала перейдите в каталог, где хранится клон [github/github-app-js-sample](https://github.com/github/github-app-js-sample) .

4. Выполните `npm run server`. Ваш терминал должен сказать: `Server is listening for events at: http://localhost:3000/api/webhook`

## Шаг 7. Тестирование приложения

Теперь, когда сервер выполняется и получает события перенаправленных веб-перехватчиков, протестируйте приложение, открыв запрос на вытягивание.

1. Откройте запрос на вытягивание в репозитории, созданном на [шаге 5. Установите приложение](#step-5-install-your-app). Дополнительные сведения см. в разделе [Создание запроса на включение изменений](/ru/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).
2. Перейдите по URL-адресу прокси-сервера веб-перехватчика на smee.io. Должно появиться `pull_request` событие. Это означает, что GitHub успешно отправил событие запроса на вытягивание при создании запроса на вытягивание.
3. В терминале, на котором вы выполнили, `npm run server`вы увидите примерно следующее: "Получено событие запроса на вытягивание для #1", где целое число после `#` того, как указано число открываемого запроса на вытягивание.
4. На временной шкале запроса на вытягивание вы увидите комментарий из приложения. Комментарий использует содержимое `message.md` файла в клонированного репозитория.
5. В обоих окнах терминала введите <kbd>CTRL<kbd></kbd>+C</kbd>, чтобы остановить сервер и прекратить прослушивание перенаправленных веб-перехватчиков.

## Следующие шаги

Теперь, когда у вас есть приложение, может потребоваться развернуть код приложения, развернуть приложение и сделать приложение общедоступным.

### Изменение кода приложения

Вилку репозитория [github/github-app-js-sample](https://github.com/github/github-app-js-sample) и измените код для реагирования на различные события веб-перехватчика или для выполнения различных запросов API. Дополнительные сведения о коде см. в разделе [Создание приложения GitHub, которое реагирует на события webhook](/ru/apps/creating-github-apps/guides/building-a-github-app-that-responds-to-webhook-events).

Не забудьте обновить разрешения приложения, если вашему приложению требуются дополнительные разрешения для запросов API, которые вы хотите сделать или события веб-перехватчика, которые вы хотите получить. Дополнительные сведения см. в разделе [Выбор разрешений для приложения GitHub](/ru/apps/creating-github-apps/creating-github-apps/setting-permissions-for-github-apps).

### Развертывание приложения

В этом руководстве используется компьютер или пространство кода в качестве сервера. После того как приложение будет готово к использованию в рабочей среде, необходимо развернуть приложение на выделенном сервере. Например, можно использовать [Azure App Service](https://azure.microsoft.com/products/app-service/).

После создания сервера обновите URL-адрес веб-перехватчика в параметрах приложения. Не следует использовать Smee.io для пересылки веб-перехватчиков в рабочей среде.

Вам также потребуется обновить `port` и `host` константы в коде. Дополнительные сведения см. в разделе [Создание приложения GitHub, которое реагирует на события webhook](/ru/apps/creating-github-apps/guides/building-a-github-app-that-responds-to-webhook-events#deploy-your-app).

Вы никогда не должны публиковать закрытый ключ приложения или секрет веб-перехватчика. В этом руководстве хранятся учетные данные приложения в gitignored-файле `.env` . При развертывании приложения следует выбрать безопасный способ хранения учетных данных и обновления кода, чтобы получить соответствующее значение. Например, учетные данные можно хранить в переменной среды на сервере, на котором развернуто приложение. Вы также можете воспользоваться службой управления секретами, например [Azure Key Vault](https://azure.microsoft.com/en-us/products/key-vault).

### Общий доступ к приложению

Если вы хотите предоставить общий доступ к приложению другим пользователям и организациям, сделайте приложение общедоступным. Дополнительные сведения см. в разделе [Как сделать приложение GitHub публичным или частным](/ru/apps/creating-github-apps/creating-github-apps/making-a-github-app-public-or-private).

### Применение рекомендаций

Вам следует следовать рекомендациям по использованию данных GitHub App. Дополнительные сведения см. в разделе [Лучшие практики создания приложения на GitHub](/ru/apps/creating-github-apps/setting-up-a-github-app/best-practices-for-creating-a-github-app).