Здесь находится пример интеграции github с Пачкой
Когда в вашем репозитории появляется новый PR, бот Пачки создает сообщение в чате со статусом и автором.
Важные изменения в PR пишутся в треде и обновляют статус в родительском сообщении.
✏️ Используйте одинаковые никнеймы в github и Пачке, тогда в сообщениях будут подсвечиваться нужные пользователи.
Чтобы создать нового чат-бота, вам необходимо:
- Перейти в раздел «Автоматизации» → «Интеграции»
- Найти в списке блок «Чат-боты и вебхуки»
- В настройках создать нового бота. Например, с именем "Backend review"
- Для получения access_token вам необходимо перейти во вкладку «API» в настройках бота
- Добавьте этого бота в чат, в котором вы хотите получать уведомления по ревью. Запишите chat_id, он понадобится при размещении на сервере.
- Переходим в репозиторий -> Settings -> Webhooks -> Add webhook
- Указываем url, на который будут приходить вебхуки. Подробнее в разделе Разместить интеграцию на сервере
- Указываем Content type: application\json
- Выбираем Let me select individual events и отмечаем чекбоксами:
- Pull requests
- Pull request reviews
- Workflow runs
Подробная документация github по настройке вебхуков
PR и Тред Пачки должны быть связаны между собой. Для этого интеграция при создании PR отправляет комментарий со ссылкой на тред Пачки.
- Убедитесь, что в организации разрешено использовать fine-grained personal access tokens
- Создайте нового пользователя с доступом к нужному репозиторию. Дайте ему имя, например, "Бот Пачки". В настройках этого пользователя создайте fine-grained personal access token для нужного репозитория организации
- Среди repository permissions выберите
- Actions (Read-only)
- Pull Requests (Read and write)
- Сохраните токен, а также логин пользователя. Эти данные понадобятся при конфигурации
Подробная документация github по способам авторизации REST API
В разделе releases лежит готовый index.js файл для node18+, который будет работать в облачной функции Яндекс
Также вы можете отредактировать index.ts под свои нужны и собрать файл самостоятельно.
npm i
npm run build✏️ Используйте bun вместо npm\node, чтобы работать напрямую index.ts без этапа сборки.
При этом способе не нужно поддерживать работу собственного сервера. Яндекс Облако предоставляет бесплатно 1млн вызовов функции в месяц, что более чем достаточно для бота.
- Воспользуйтесь инструкцией по созданию функции
- Добавьте файл index.js в вашу функцию

- Точка входа index.handler
- Добавьте переменные окружения для функции
- GITHUB_ACCESS_TOKEN - access_token пользователя с доступом к репозиторию и rest-api
- GITHUB_USER_LOGIN - логин пользователя в github, чей access_token вы получили
- GITHUB_OWNER - название организации. Например, для текущего репозитория https://github.com/pachca/review-bot - это pachca
- GITHUB_REPO - название организации. Например, для текущего репозитория https://github.com/pachca/review-bot - это review-bot
- PACHCA_API_ACCESS_TOKEN - access_token бота в Пачке
- PACHCA_CHAT_ID - чат Пачки, в котором будут создаваться сообщения. Бот должен быть участником этого чата.
- Сохраните изменения
- В разделе "Обзор" функции сделайте ее публичной
- Затем скопируйте Ссылку для вызова и укажите ее в вебхуках репозитория

Переместите содержимое module.exports.handler внутрь функции вашего веб-сервера и замените возвращаемые ответы на подходящий формат.

