Перейти к основному содержанию
В этом руководстве ты настроишь code review с помощью Cursor CLI в GitHub Actions. Workflow будет анализировать pull request’ы, находить проблемы и публиковать фидбек в комментариях.
Для большинства пользователей мы рекомендуем использовать Bugbot. Bugbot предоставляет управляемое автоматическое code review без какой-либо настройки. Подход с CLI полезен для изучения возможностей и продвинутой кастомизации.
Автоматизированный code review в действии: встроенные комментарии в pull request

Настройка аутентификации

Настрой свой API‑ключ и секреты репозитория, чтобы аутентифицировать Cursor CLI в GitHub Actions.

Настрой разрешения агента

Создай файл конфигурации, чтобы контролировать, какие действия агент может выполнять. Это предотвратит нежелательные операции, например пуш кода или создание pull request’ов. Создай .cursor/cli.json в корне репозитория:
{
  "permissions": {
    "deny": [
      "Shell(git push)",
      "Shell(gh pr create)",
      "Write(**)"
    ]
  }
}
Эта конфигурация позволяет агенту читать файлы и использовать GitHub CLI для комментариев, но не позволяет ему вносить изменения в твой репозиторий. См. справочник по разрешениям для дополнительных параметров настройки.

Собери рабочий процесс GitHub Actions

Теперь давай по шагам соберём рабочий процесс.

Настрой триггер рабочего процесса

Создай .github/workflows/cursor-code-review.yml и настрой его на запуск при pull requests:
name: Ревью кода в Cursor

on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

jobs:
  code-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    
    steps:

Проверь репозиторий

Добавь шаг checkout, чтобы получить доступ к коду pull request:
- name: Получить репозиторий
  uses: actions/checkout@v4
  with:
    fetch-depth: 0
    ref: ${{ github.event.pull_request.head.sha }}

Установи Cursor CLI

Добавь шаг установки CLI:
- name: Установить Cursor CLI
  run: |
    curl https://cursor.com/install -fsS | bash
    echo "$HOME/.cursor/bin" >> $GITHUB_PATH

Настройка агента рецензирования

Прежде чем внедрять полный шаг рецензии, давай разберём анатомию нашего промпта для рецензии. Этот раздел описывает, как мы хотим, чтобы агент себя вёл: Цель: Мы хотим, чтобы агент просматривал текущий diff PR и отмечал только очевидные, критичные проблемы, затем оставлял очень короткие инлайн‑комментарии (1–2 предложения) только на изменённых строках, с кратким итоговым резюме в конце. Это сохраняет баланс между сигналом и шумом. Формат: Нужны комментарии, которые короткие и по делу. Мы используем эмодзи, чтобы упрощать просмотр комментариев, и хотим получить в конце обзор на высоком уровне всей рецензии. Отправка: Когда рецензия завершена, мы хотим, чтобы агент добавил короткий комментарий на основе найденного в ходе рецензии. Агент должен отправить одну рецензию, содержащую инлайн‑комментарии плюс сжатое резюме. Краевые случаи: Нужно обработать:
  • Существующие комментарии, помеченные как решённые: агент должен отмечать их выполненными, когда они адресованы
  • Избегать дубликатов: агент должен пропускать комментарии, если похожий фидбек уже существует на тех же строках или рядом
Итоговый промпт: Полный промпт объединяет все эти поведенческие требования, чтобы создать сфокусированный, прикладной фидбек Теперь давай реализуем шаг с агентом рецензирования:
- name: Провести код‑ревью
  env:
    CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
    GH_TOKEN: ${{ github.token }}
  run: |
    cursor-agent --force --model "$MODEL" --output-format=text --print "Ты работаешь в GitHub Actions runner и выполняешь автоматическое код‑ревью. gh CLI доступен и аутентифицирован через GH_TOKEN. Можно оставлять комментарии в pull request'ах.
    
    Контекст:
    - Репозиторий: ${{ github.repository }}
    - Номер PR: ${{ github.event.pull_request.number }}
    - PR Head SHA: ${{ github.event.pull_request.head.sha }}
    - PR Base SHA: ${{ github.event.pull_request.base.sha }}
    
    Цели:
    1) Перепроверь существующие комментарии к ревью и отвечай «resolved», когда вопрос закрыт
    2) Просмотри текущий diff PR и отмечай только очевидные, высокосерьёзные проблемы
    3) Оставляй очень короткие инлайн‑комментарии (1–2 предложения) только на изменённых строках и добавь краткое резюме в конце
    
    Процедура:
    - Получить существующие комментарии: gh pr view --json comments
    - Получить diff: gh pr diff
    - Если ранее отмеченная проблема выглядит исправленной близкими изменениями, ответь: ✅ Похоже, эта проблема решена недавними изменениями
    - Избегай дубликатов: пропускай, если похожий фидбек уже есть на этих или соседних строках
    
    Правила комментирования:
    - Не более 10 инлайн‑комментариев всего; приоритезируй самые критичные проблемы
    - Одна проблема на комментарий; ставь на конкретной изменённой строке
    - Естественный тон, конкретика и практичность; не упоминай, что комментарий автоматический, и не заявляй о высокой уверенности
    - Используй эмодзи: 🚨 Критично 🔒 Безопасность ⚡ Производительность ⚠️ Логика ✅ Решено ✨ Улучшение
    
    Отправка:
    - Отправь один обзор с инлайн‑комментариями плюс краткое резюме
    - Используй только: gh pr review --comment
    - Не используй: gh pr review --approve или --request-changes"
.
├── .cursor/
│   └── cli.json
├── .github/
│   └── workflows/
│       └── cursor-code-review.yml

Протестируй своего ревьюера

Создай тестовый pull request, чтобы убедиться, что workflow работает, а агент оставляет комментарии к ревью с эмодзи и обратной связью.
Pull request с автоматическими комментариями к ревью, эмодзи и встроенной обратной связью по конкретным строкам

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

Теперь у тебя есть рабочая система автоматического code review. Подумай о таких улучшениях:
  • Настрой дополнительные workflows для исправления сбоев CI
  • Настрой разные уровни review для разных веток
  • Интегрируйся с существующим процессом code review в твоей команде
  • Настрой поведение агента для разных типов файлов или директорий
I