Что такое GitHub PR Review Agent
GitHub PR Review Agent — это автоматизированный AI-ревьюер на базе Hermes Agent, который мониторит ваши репозитории на GitHub, анализирует pull requests и доставляет структурированный фидбек. Агент работает полностью в фоновом режиме по расписанию и не требует ручного вмешательства.
Возможности
- Автоматический ревью PR — анализ diff каждого пулл-реквеста с выявлением багов, проблем безопасности и нарушений конвенций команды
- Мониторинг репозиториев — отслеживание нескольких репозиториев одновременно по расписанию (каждые 2 часа, несколько раз в день, еженедельно)
- Доставка фидбека — результаты ревью автоматически отправляются в Telegram, публикуются прямо в GitHub или выводятся в виде дашборда
- Персонализация — обучение агента стандартам и конвенциям конкретной команды через механизм памяти
- Ручной запуск — возможность вызвать ревью по требованию командой
hermes cron run pr-review
Быстрый старт
1. Проверка окружения
Для работы агента необходим установленный gh (GitHub CLI) с авторизованным токеном. Hermes Agent также должен быть настроен и запущен. Проверьте готовность:
# Авторизация в GitHub
gh auth status
# Доступ к репозиторию
gh pr list --repo OWNER/REPO --limit 3
# Шлюз Hermes запущен
hermes gateway status
2. Установка GitHub-related навыков
Установите навыки для работы с GitHub через hermes skills install:
# Поиск доступных навыков GitHub
hermes skills search github
# Установка навыка Code Review
hermes skills install github-code-review
# Установка навыка PR Workflow
hermes skills install github-pr-workflow
# Установка навыка авторизации GitHub
hermes skills install github-auth
# Проверка установленных навыков
hermes skills list
3. Включение необходимых toolsets
Для работы PR Review Agent необходимы определённые наборы инструментов. Управляйте ими через hermes tools:
# Интерактивное управление (curses UI)
hermes tools
# Включение нужных toolsets
hermes tools enable terminal
hermes tools enable file
hermes tools enable web
hermes tools enable delegation
hermes tools enable messaging
hermes tools enable cronjob
# Проверка текущего состояния
hermes tools list
После изменения toolsets начните новую сессию (/reset в чате или новая команда hermes), чтобы изменения вступили в силу.
4. Пробное ревью вручную
Начните с простого теста — попросите Hermes отревьюить конкретный PR через чат:
Review PR #42 in myorg/backend-api — read the diff with `gh pr diff 42 --repo myorg/backend-api` and check for bugs, security issues, and missing tests.
Если результат устраивает — переходите к автоматизации.
5. Создание навыка ревью
Создайте файл code-review.md в директории навыков, чтобы задать формат и правила анализа:
## Формат ревью
Для каждой найденной проблемы:
- **Severity** — уровень серьёзности: Critical / Warning / Suggestion
- **What's wrong** — краткое описание проблемы
- **Fix** — рекомендация по исправлению
## Правила
- Цитировать проблемный код
- Не придираться к стилю без причины
- Если PR чист — сказать об этом
- В конце выдать вердикт: APPROVE / REQUEST_CHANGES / COMMENT
## Чек-лист
- Безопасность: SQL injection, XSS, hardcoded secrets
- Корректность: edge cases, error handling
- Тесты: покрытие новых путей
- Производительность: N+1 queries, blocking в async
6. Обучение конвенциям команды
Чтобы ревью были действительно полезными, обучите Hermes стандартам вашего проекта. Примеры:
- «Мы используем Python с FastAPI, все эндпоинты должны иметь аннотации типов и Pydantic-модели»
- «На фронте — TypeScript с React, тип
anyзапрещён, все компоненты должны иметь props-интерфейсы» - «Тесты только в
tests/с pytest-фикстурами, сырой SQL запрещён»
Эти настройки сохраняются навсегда — агент будет применять их автоматически.
7. Настройка автоматического расписания
Создайте cron-задачу для регулярного мониторинга. Агент будет проверять открытые PR, анализировать diff и отправлять отчёт:
# Каждые 2 часа
hermes cron create "0 */2 * * *" --name "pr-review" --deliver telegram --skill code-review
# Три раза в день по будням
hermes cron create "0 9,13,17 * * 1-5" --name "pr-review-workday" --deliver telegram
# Еженедельный понедельничный обзор
hermes cron create "0 9 * * 1" --name "pr-review-weekly" --deliver telegram
# Каждые 30 минут для высоконагруженных репозиториев
hermes cron create "30m" --name "pr-review-frequent" --deliver telegram
Интеграция с GitHub CLI (gh)
PR Review Agent использует gh (GitHub CLI) для взаимодействия с GitHub API. Основные команды, которые использует агент:
# Просмотр PR
gh pr view 123
gh pr diff 123
gh pr diff 123 --name-only
# Проверка CI статуса
gh pr checks 123
gh pr checks 123 --watch
# Публикация ревью
gh pr review 123 --approve --body "LGTM!"
gh pr review 123 --request-changes --body "See inline comments."
gh pr review 123 --comment --body "Some suggestions."
# Комментирование
gh pr comment 123 --body "Overall looks good."
# Checkout PR для локального анализа
gh pr checkout 123
Если gh недоступен, агент автоматически переключается на curl + GitHub REST API с токеном из GITHUB_TOKEN.
Использование delegate_task для ревью
Для ревью больших PR или параллельной обработки нескольких репозиториев используйте delegate_task — механизм делегирования подзадач:
# Делегировать ревью конкретного PR подагенту
delegate_task(
task="Review PR #42 in myorg/backend-api for bugs and security issues",
run_in_background=True
)
# Параллельное ревью нескольких PR
delegate_task(task="Review PR #10 in org/repo-a", run_in_background=True)
delegate_task(task="Review PR #25 in org/repo-b", run_in_background=True)
delegate_task(task="Review PR #8 in org/repo-c", run_in_background=True)
delegate_task запускает отдельный экземпляр агента с собственной конверсацией. Подходит для быстрых подзадач (минуты). Для длительных миссий используйте полный процесс Hermes:
# Запуск полного агента для долгого мониторинга
hermes chat -q "Monitor all open PRs in myorg/* and produce a weekly report" --background
Продвинутые сценарии
Публикация ревью прямо в GitHub
Вместо отправки в Telegram агент может комментировать PR непосредственно на GitHub через gh pr review. Для критических замечаний — запросить изменения, для чистых PR — одобрить автоматически.
Еженедельный PR-дашборд
Создайте задачу для еженедельного обзора всех репозиториев: количество открытых PR, самые старые, забытые без ревьюера, merged за неделю. Формируется единый отчёт и доставляется в Telegram.
Мульти-репозиторный мониторинг
Масштабирование происходит просто — добавьте больше репозиториев в промпт. Агент обрабатывает их последовательно без дополнительной настройки.
Атомарный инлайн-ревью с множеством комментариев
Для отправки нескольких инлайн-комментариев одним ревью используйте GitHub API:
HEAD_SHA=$(gh pr view 123 --json headRefOid --jq '.headRefOid')
gh api repos/OWNER/REPO/pulls/123/reviews --method POST -f commit_id="$HEAD_SHA" -f event="REQUEST_CHANGES" -f body="Found 2 issues. See inline comments." -f comments[0][path]="src/auth.py" -f comments[0][line]=45 -f comments[0][body]="SQL injection: use parameterized queries." -f comments[1][path]="src/models.py" -f comments[1][line]=23 -f comments[1][body]="Password stored without hashing."
Решение проблем
gh: command not found— установите GitHub CLI:sudo apt install ghилиbrew install gh, затемgh auth login- Слишком общие ревью — добавьте навык
code-reviewи обучите агента конвенциям через память - Cron не запускается — проверьте
hermes gateway statusиhermes cron list - Лимиты GitHub API — 5000 запросов/час для авторизованных пользователей, одно ревью использует 3–5 запросов
send_messageне работает в cron — добавьтеmessagingвenabled_toolsetsзадачи:hermes cron edit ID- Toolset не активен — проверьте
hermes tools list, включите нужные черезhermes tools enable NAME, затем/reset