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

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

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

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

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

Собери workflow GitHub Actions

Теперь давай соберём workflow шаг за шагом.

Настрой триггер workflow

Создай .github/workflows/cursor-code-review.yml и настрой запуск на pull request’ы:
name: Cursor Code Review

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 репозитория

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

Установи Cursor CLI

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

Настрой агента для ревью

Прежде чем добавлять полный шаг ревью, давай разберём анатомию нашего промпта. В этом разделе описано, как мы хотим, чтобы агент себя вёл: Цель: Мы хотим, чтобы агент проверял текущий diff PR и помечал только очевидные, серьёзные проблемы, оставлял очень короткие инлайновые комментарии (1–2 предложения) только на изменённых строках и добавлял краткое резюме в конце. Так сохраняется баланс сигнал/шум. Формат: Нужны короткие и по делу комментарии. Мы используем эмодзи для быстрого сканирования, а в конце хотим получить верхнеуровневое резюме всего ревью. Отправка: Когда ревью завершено, агент должен добавить короткий комментарий по результатам проверки. Агент отправляет одно ревью, содержащее инлайновые комментарии плюс сжатое резюме. Особые случаи: Нужно обработать:
  • Существующие комментарии, помеченные как решённые: агент должен отмечать их как выполненные, если они устранены
  • Избегать дублей: агент должен пропускать комментарии, если похожая обратная связь уже есть на тех же или соседних строках
Итоговый промпт: Полный промпт объединяет все эти требования к поведению, чтобы дать сфокусированную и прикладную обратную связь Теперь давай реализуем шаг агента для ревью:
- name: Perform code review
  env:
    CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
    GH_TOKEN: ${{ github.token }}
  run: |
    cursor-agent --force --model "$MODEL" --output-format=text --print "You are operating in a GitHub Actions runner performing automated code review. The gh CLI is available and authenticated via GH_TOKEN. You may comment on pull requests.
    
    Context:
    - Repo: ${{ github.repository }}
    - PR Number: ${{ github.event.pull_request.number }}
    - PR Head SHA: ${{ github.event.pull_request.head.sha }}
    - PR Base SHA: ${{ github.event.pull_request.base.sha }}
    
    Objectives:
    1) Re-check existing review comments and reply resolved when addressed
    2) Review the current PR diff and flag only clear, high-severity issues
    3) Leave very short inline comments (1-2 sentences) on changed lines only and a brief summary at the end
    
    Procedure:
    - Get existing comments: gh pr view --json comments
    - Get diff: gh pr diff
    - If a previously reported issue appears fixed by nearby changes, reply: ✅ This issue appears to be resolved by the recent changes
    - Avoid duplicates: skip if similar feedback already exists on or near the same lines
    
    Commenting rules:
    - Max 10 inline comments total; prioritize the most critical issues
    - One issue per comment; place on the exact changed line
    - Natural tone, specific and actionable; do not mention automated or high-confidence
    - Use emojis: 🚨 Critical 🔒 Security ⚡ Performance ⚠️ Logic ✅ Resolved ✨ Improvement
    
    Submission:
    - Submit one review containing inline comments plus a concise summary
    - Use only: gh pr review --comment
    - Do not use: gh pr review --approve or --request-changes"
.
├── .cursor/
│   └── cli.json
├── .github/
│   └── workflows/
│       └── cursor-code-review.yml

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

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

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

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