ГАЙД 2026

Как подключить PR-Agent к GitHub Actions: пошаговая настройка AI-ревью

Один workflow-файл, один секрет с ключом модели и три строки конфига — и каждый pull request получает описание, ревью и предложения по коду от открытого агента PR-Agent.

ГайдCI/CDCode Review
Уровень СреднийВремя настройки 10–15 минутОбновлено 06.11.2026

PR-Agent — открытый агент код-ревью: он читает diff pull request, пишет описание, оставляет замечания, предлагает правки и отвечает на вопросы по изменению. Ставится в CI одним workflow-файлом: на каждый PR запускается GitHub Action, тот вызывает модель один раз на инструмент и публикует результат комментарием. Ниже — рабочая настройка от нуля до первого ревью, с правами токена, выбором модели и разбором того, где это ломается.

0.49.0
Версия на PyPI
25.10.2026
15 270
Звёзды GitHub
снято 06.11.2026
MIT
Лицензия
community-проект
3.12+
Python
для CLI и Docker
Что понадобится
Репозиторий на GitHub с правом менять workflows, ключ любой модели с OpenAI-совместимым API (OpenAI, Anthropic, DeepSeek, OpenRouter, локальная Ollama) и 10–15 минут. Docker и Python нужны только если вы хотите запускать PR-Agent вне GitHub Actions.

01Что именно делает PR-Agent и как он устроен

Идея проекта — не «умный чат про код», а набор узких инструментов, каждый из которых делает одну работу за один вызов модели. /describe пишет заголовок и описание PR, /review выдаёт замечания и оценку риска, /improve предлагает конкретные правки по строкам, /ask отвечает на свободный вопрос по изменению, /similar_issue ищет похожие issue. Авторы оценивают один прогон примерно в 30 секунд — это важно для бюджета: не «агент думает десять минут», а один короткий вызов на инструмент.

Что происходит при открытии pull request
1Событие PRopened или synchronize запускает workflow в .github/workflows2GitHub Actionконтейнер PR-Agent получает diff и метаданные PR3Модельодин вызов через LiteLLM: OpenAI, Anthropic, DeepSeek, Gemini, Ollama4Комментарийописание, ревью и предложения публикуются в PR от имени токенасхема работы GitHub Action с PR-Agent

Ключевая инженерная деталь — сжатие PR. Большой diff не влезает в контекст модели целиком, поэтому PR-Agent применяет стратегию компрессии: разбивает изменение на части, отбрасывает неинформативное и поднимает лимит токенов через max_model_tokens. Без этого на PR в несколько тысяч строк вы получите либо обрезанное ревью, либо ошибку провайдера.

Коммитов в неделю: последние 12 недельданные GitHub API stats/participation, снято 06.11.2026; последняя точка — текущая неполная неделя
050100150200−11−9−7−5−3−1327692134871459813355150162120
Коммитов за 4-недельные отрезкикоммитов за 4-недельный отрезок, последние 24 недели; GitHub API stats/participation, снято 06.11.2026 — виден рост после передачи проекта сообществу
0250500−5 (24–21 нед)38−4 (20–17 нед)52−3 (16–13 нед)55−2 (12–9 нед)334−1 (8–5 нед)463тек. (4–1 нед)487
Важно про происхождение проекта
PR-Agent — community-проект под MIT: Qodo передала его сообществу, репозиторий живёт в организации The-PR-Agent, у него появился внешний мейнтейнер. Это не платный продукт Qodo 2.0 и не его бесплатный тариф — это отдельная открытая кодовая база, которую можно поднять у себя целиком.

02Шаг 1. Ключ модели в секретах репозитория

PR-Agent не приносит свою модель: он ходит к провайдеру через LiteLLM, поэтому подходит почти любой OpenAI-совместимый endpoint. Для начала положите ключ в секреты репозитория: Settings → Secrets and variables → Actions → New repository secret. Имя секрета выбирайте по провайдеру — в примерах документации это OPENAI_KEY; для собственного шлюза задаются OPENAI__API_BASE и OPENAI__KEY, для Anthropic-совместимого — ANTHROPIC_API_BASE и ANTHROPIC__KEY.

Подготовка
1
Создайте секрет с ключом
Settings → Secrets and variables → Actions → New repository secret. Значение никогда не попадает в лог, если обращаться к нему через контекст secrets в expression-синтаксисе GitHub.
GitHub UIcopy
Name: OPENAI_KEY
Value: sk-...
2
Проверьте версию Python, если планируете CLI
Пакету нужен Python 3.12 или новее; в GitHub Actions это неважно, но для локального запуска проверьте заранее.
terminalcopy
python3 --version
Оплата ключа — отдельная статья
Ревью стоит столько, сколько стоит токены у провайдера: фиксированной «цены PR-Agent» нет. Для читателя из России практичный путь — ключ провайдера, который принимает оплату без иностранной карты; разборы по каналам есть на страницах оплата DeepSeek и оплата Anthropic API. Конкретные ставки смотрите на сайте выбранного провайдера — они меняются.

03Шаг 2. Workflow-файл в GitHub Actions

Минимальный вариант — из README проекта. Он запускается на открытие PR и на каждое обновление ветки, то есть ревью обновляется вместе с кодом.

.github/workflows/pr-agent.ymlyaml
name: PR Agent
on:
  pull_request:
    types: [opened, synchronize]
jobs:
  pr_agent_job:
    runs-on: ubuntu-latest
    steps:
      - name: PR Agent action step
        uses: the-pr-agent/pr-agent@main
        env:
          OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Практика добавляет к этому две вещи. Первая — явные права токена: в новых репозиториях GITHUB_TOKEN по умолчанию только читает, и тогда Action отработает, но не сможет оставить комментарий. Вторая — permissions для issues: часть инструментов публикует результат именно туда.

.github/workflows/pr-agent.yml (фрагмент с правами)yaml
permissions:
  contents: read
  pull-requests: write
  issues: write
Не включайте pull_request_target «на всякий случай»
Событие pull_request_target даёт workflow доступ к секретам при PR из форка — это классический способ утечь ключ. Для PR-Agent хватает pull_request: секреты в таких прогонах недоступны, поэтому ревью форков либо пропускается, либо запускается отдельным workflow с ручным триггером и без ключей.

04Шаг 3. Настройка .pr_agent.toml

Поведение агента настраивается файлом .pr_agent.toml в корне репозитория. Имена секций и ключей стоит сверять с pr_agent/settings/configuration.toml в репозитории: файл большой (больше 650 строк) и он единственный надёжный источник — документация отстаёт от релизов.

.pr_agent.tomltoml
[config]
model = "deepseek/deepseek-reasoner"
fallback_models = ["openai/gpt-6.1-sol"]
max_model_tokens = 32000

[pr_reviewer]
require_score_review = false
extra_instructions = "Пиши замечания по-русски, коротко, без воды. Игнорируй стиль форматирования."

[pr_description]
publish_description_as_comment = false

[github]
publish_as_check_run = false
КлючЧто делаетКогда менять
config.modelмодель по умолчанию для всех инструментовкогда нужен свой провайдер или дешёвая модель
config.fallback_modelsсписок запасных моделейесли основной провайдер иногда отдаёт 429
config.max_model_tokensжёсткий лимит токенов на вызовдля больших PR и моделей с коротким контекстом
pr_reviewer.extra_instructionsдополнительные требования к ревьюязык, формат, запрет на придирки к стилю
pr_description.publish_description_as_commentпубликовать описание комментариемесли описание перезаписывает тело PR
github.publish_as_check_runпубликовать результат как Check Runесли комментарии в PR запрещены политикой
Настройки, которые чаще всего правят (по configuration.toml, снято 06.11.2026)

Для OpenRouter модели адресуются с префиксом openrouter/…, ключ берётся из переменной openrouter__key или .secrets.toml. Для локальной Ollama переменные окружения задаёт сама Ollama, а контекст ограничивается OLLAMA_CONTEXT_LENGTH — на 8K окно мало для среднего PR, поэтому локальный вариант имеет смысл только с моделью на 32K и больше.

05Инструменты и когда их вызывать

Инструменты работают двумя способами: автоматически из workflow или вручную комментарием в PR — достаточно написать /review в обсуждении. Второй режим удобен, когда не хочется тратить токены на каждый коммит.

КомандаЧто делаетКогда запускать
/describeзаголовок и описание PR, список измененийна открытие PR — экономит время автору
/reviewзамечания по коду, оценка риска и усилийперед ревью человеком
/improveконкретные правки по строкамкогда нужны предложения, а не общие слова
/askответ на свободный вопрос по изменениюразбор незнакомого PR
/similar_issueпоиск похожих issue в репозиториидля issue, а не для PR
/help_docsвопрос по документации проектаотключён с v0.36.1
Основные команды PR-Agent (по документации docs.pr-agent.ai/tools)
Одна честная деталь из README
Инструмент /help_docs временно отключён начиная с версии 0.36.1, пока не исправлена проблема с раскрытием учётных данных (issue #2445). Если вы видели этот инструмент в старых гайдах — он не работает, и включать его в чек-лист не нужно.

06Три способа запуска: Action, Docker, CLI

GitHub Actions — рекомендованный путь, но не единственный. Если репозиторий живёт в GitLab, Bitbucket, Azure DevOps или Gitea, PR-Agent ставится вебхуком или в собственном контейнере: поддерживаются все четыре платформы плюс Gitea. Локальный CLI удобен, чтобы прогнать ревью до пуша и не светить черновик в PR.

СпособПлюсыМинусы
GitHub Actionноль инфраструктурынет доступа к секретам в PR из форков
Docker (self-hosted)полный контроль и свои ключинужен сервер и вебхук, обновления вручную
CLI локальноможно проверить до пушане автоматизирует ревью в PR
Сравнение способов запуска
Локальный запуск за две команды
1
Установите пакет с нужным SDK провайдера
Extras выбираются по Git-платформе: github, gitlab, bitbucket, azure. Для всех сразу — pr-agent[all].
terminalcopy
pip install "pr-agent[github]"
2
Задайте ключ и запустите инструмент на конкретном PR
Вместо ключа OpenAI можно указать любой OpenAI-совместимый endpoint через OPENAI__API_BASE. Вместо <PR_URL> подставьте ссылку на свой pull request.
terminalcopy
export OPENAI_KEY=sk-...
pr-agent --pr_url <PR_URL> review

Для self-hosted варианта есть официальный образ pragent/pr-agent в Docker Hub: с версии 0.34.2 образы публикуются только там, старый namespace codiumai/pr-agent заморожен. Если в ваших workflow или compose-файлах закреплён старый путь, после обновления его надо поменять, иначе вы останетесь на архиве.

07Ограничения и подводные камни

  • Это не замена ревью человеком. Один вызов модели на инструмент даёт быстрый первый проход, но архитектурные и продуктовые решения агент не оценит.
  • Данные уходят провайдеру модели. При self-hosted варианте diff отправляется в API выбранной модели; при использовании облачного провайдера это надо согласовать с политикой компании.
  • Большие PR режутся. Без настройки max_model_tokens и без понимания стратегии компрессии ревью будет неполным — особенно на PR с генерацией кода и миграциями.
  • Проект community-уровня. 52 открытых issue на 2 125 форков, а сам PR-Agent — legacy-ветка: новая разработка Qodo идёт в закрытом продукте, открытая кодовая база живёт на поддержке сообщества.
  • Шум в комментариях. По умолчанию агент публикует и «замечаний нет»; чтобы этого не было, в конфиге есть отдельные флаги публикации без предложений.
  • Стоимость плавает. Цена прогона = токены × ставка провайдера; на PR с большим diff она выше, и предсказать её без замера нельзя.
Разумный старт
Включите только /describe и /review на событие opened, а /improve оставьте ручной командой. Так вы за неделю увидите реальный расход токенов и качество замечаний, прежде чем вешать агента на каждый коммит.

Частые вопросы

Что такое PR-Agent и чем он отличается от Qodo?
PR-Agent — открытый (MIT) агент код-ревью, который Qodo передала сообществу: он живёт в организации The-PR-Agent, ставится как GitHub Action, Docker-контейнер или CLI и работает с любым провайдером моделей через LiteLLM. Qodo 2.0 — отдельный платный продукт с закрытым кодом; бесплатный тариф Qodo для опенсорса это не PR-Agent.
Сколько стоит ревью одного pull request?
Своего прайса у PR-Agent нет: платите провайдеру модели за токены. Каждый инструмент делает один вызов, авторы оценивают прогон примерно в 30 секунд, поэтому стоимость зависит от размера diff и ставки выбранной модели. Актуальные цены — на сайте провайдера.
Можно ли использовать российскую или локальную модель?
Да. Через LiteLLM подключаются OpenAI-совместимые endpoint-ы, включая локальную Ollama и шлюзы-агрегаторы. Для локального варианта нужен контекст от 32K токенов, иначе средний PR не помещается и ревью будет обрезанным.
Почему Action не оставляет комментарий в PR?
Почти всегда из-за прав токена: в новых репозиториях GITHUB_TOKEN по умолчанию только на чтение. Добавьте в workflow блок permissions с pull-requests: write и issues: write. Вторая причина — PR пришёл из форка: там секреты и права урезаны намеренно.
Работает ли PR-Agent с GitLab и Bitbucket?
Да, поддерживаются GitHub, GitLab, Bitbucket, Azure DevOps и Gitea. Для каждого есть свой вариант установки (вебхук, приложение или пайплайн) и свой extra при установке пакета: pr-agent[gitlab], pr-agent[bitbucket] и так далее.
Что случилось с командой /help_docs?
Она отключена с версии 0.36.1: в проекте открыт issue #2445 о раскрытии учётных данных через этот инструмент. Пока исправление не вышло, команду не включают в пайплайн; остальные инструменты работают.

Источники и официальные ссылки

Поставить AI-ревью в свой CI
Дальше имеет смысл сравнить подходы: облачный ревьюер, открытый агент и агент, который сам правит код.