GitHub PR Review Bot
GitHub PR Review Bot — понятное руководство на основе официальной документации
Представьте, что у вас есть неутомимый коллега, который проверяет каждый pull request в ту же секунду, как он появляется, — без перерывов на кофе и без «сделаю позже». Именно такого бота вы можете создать с помощью Hermes Agent.
Что мы создаём
Бота, который следит за вашими GitHub-репозиториями и автоматически проверяет новые pull request. Когда кто-то открывает PR, бот подключается, изучает diff и оставляет комментарии — всё через WeChat, так что вы видите ревью прямо в своём мессенджере.
Шаг 1: Подготовьте WeChat-шлюз
Сначала нужно подключить Hermes к WeChat. Для этого используется iLink Bot, который позволяет получать и отправлять сообщения без запуска собственного сервера.
# Установка Hermes Agent
pip install hermes-agent
# Настройка WeChat-адаптера
hermes gateway setup
Вам покажут QR-код — отсканируйте его в WeChat, чтобы войти. Учётные данные сохранятся автоматически.
Шаг 2: Настройте бота
Создайте файл config.yaml и добавьте настройки WeChat:
platforms:
weixin:
extra:
account_id: your-account-id
dm_policy: open
Теперь добавьте интеграцию с GitHub. Вам понадобится персональный токен доступа GitHub:
integrations:
github:
token: your-github-token
repos:
- your-username/your-repo
Шаг 3: Напишите логику ревью
Создайте простой скрипт, который срабатывает на новые PR:
from hermes import Agent
agent = Agent()
@agent.on("github.pull_request.opened")
async def review_pr(event):
pr = event.pull_request
diff = await pr.get_diff()
# Простая проверка: помечаем большие PR
if len(diff.splitlines()) > 500:
await pr.comment("⚠️ Этот PR довольно большой. Подумайте о том, чтобы разбить его на части.")
# Проверяем наличие тестов
if "test" not in diff.lower():
await pr.comment("На заметку: изменений в тестах не обнаружено.")
Шаг 4: Запустите шлюз
hermes gateway
Готово! Ваш бот теперь работает. Когда кто-то открывает PR, он автоматически оставляет комментарии в PR и отправляет вам уведомление в WeChat.
Почему это круто
- Никаких вебхуков и серверов — Hermes использует long-polling к GitHub, так что публичный endpoint не нужен
- Умная обработка сообщений — длинные ревью остаются в одном сообщении, а не разбиваются на куски
- Индикаторы набора текста — вы видите «печатает…» в WeChat, пока бот работает
- Встроенные повторы — временные ошибки не роняют вашего бота
Итоги и совет от профи
Вы только что собрали бота для ревью PR, который работает через WeChat и не требует никакой инфраструктуры. Начните с простого — помечайте большие PR, проверяйте наличие тестов или напоминайте про обновление changelog.
Практический совет: начните с одной проверки (например, с детекции тестов, как выше). Погоняйте неделю, посмотрите, что реально нужно вашей команде, и только потом добавляйте новые правила. Бот, который делает три вещи хорошо, лучше, чем тот, который пытается охватить всё и всех раздражает.
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › guides/github-pr-review-agent