> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Чтение результатов и запрос ревью для pull request

> Читайте результаты Code Review в вашем pull request на GitHub, отвечайте на них или отклоняйте их, а также запрашивайте ревью с помощью `@claude review`.

Code Review — это управляемый сервис, который Owner в вашей организации Claude включает для набора репозиториев GitHub. После включения Claude проводит ревью pull request в этих репозиториях и публикует свои результаты в виде встроенных комментариев, сводки в теле ревью и check run с именем **Claude Code Review**. Ревью никогда не одобряет и не блокирует ваш pull request, а check run никогда не завершается со статусом failure.

Owner управляет тем, [когда запускаются ревью](/docs/ru/code-review-setup#set-when-reviews-run) и [насколько они тщательны](/docs/ru/code-review-setup#set-the-default-review-level), для каждого репозитория.

<Note>
  Если ваш план не включает Code Review, вы всё равно можете поручить Claude провести ревью вашей ветки из сессии Claude Code: см. [Локальное ревью с помощью `/code-review`](/docs/ru/code-review-local).
</Note>

<h2 id="severity-levels">
  Уровни серьёзности
</h2>

Claude публикует каждый результат в виде встроенного комментария к соответствующим строкам и помечает его одним из трёх уровней серьёзности:

| Маркер | Серьёзность | Значение |
| :- | :- | :- |
| 🔴 | Important | Ошибка, которую следует исправить перед слиянием |
| 🟡 | Nit | Незначительная проблема, которую стоит исправить, но она не блокирует |
| 🟣 | Pre-existing | Ошибка, которая существует в кодовой базе, но не была внесена этим PR |

Если ревью зафиксировало свои рассуждения, у результата есть свёрнутый раздел **Why this was flagged**. Разверните его, чтобы узнать, почему Claude пометил проблему и как он её проверил.

Чтобы изменить, что Claude помечает в вашем репозитории или как он оценивает серьёзность, см. [Настройка Code Review](/docs/ru/code-review-customize).

<h2 id="respond-to-findings">
  Ответ на результаты
</h2>

Вы можете выполнить слияние, не отвечая на результат, если только собственные правила вашего репозитория не требуют этого. Если защита ветки [требует разрешения обсуждений](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-conversation-resolution-before-merging), разрешите ветку обсуждения каждого результата перед слиянием.

Чтобы закрыть результат, разрешите его ветку обсуждения или отправьте исправление.

* **Отклонить без изменения кода**: разрешите ветку обсуждения самостоятельно на GitHub. Одного ответа недостаточно, чтобы отклонить результат.
* **Исправить проблему**: измените код и выполните push. Следующее ревью pull request разрешит прежнюю ветку обсуждения, если сочтёт проблему исправленной, — независимо от того, запускается ли это ревью автоматически при push или вы запрашиваете его сами.
* **Объяснить или не согласиться**: ответьте на комментарий. Claude не отвечает сразу, и ответ не запускает ревью. Следующее ревью pull request читает ответы на свои прежние результаты и может разрешить ветку обсуждения или опубликовать один ответный комментарий. Если один и тот же тип результата постоянно возвращается, попросите сопровождающего добавить правило в [`REVIEW.md`](/docs/ru/code-review-customize#choose-what-to-write-in-review-md).

Чтобы получить это следующее ревью без push, оставьте `@claude review` в виде [комментария верхнего уровня к pull request](#comment-commands).

<h2 id="check-run-output">
  Вывод check run
</h2>

Ссылка **Details** в check run **Claude Code Review** открывает результаты в одной таблице, отсортированной по серьёзности, включая любые результаты, встроенные комментарии к которым GitHub не принял:

| Серьёзность | Файл:Строка | Проблема |
| - | - | - |
| 🔴 Important | `src/auth/session.ts:142` | Обновление токена конкурирует с выходом из системы, из-за чего устаревшие сессии остаются активными |
| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` молча возвращает 0 при некорректных входных данных |

Результат, у которого есть строка, но который не был опубликован как встроенный комментарий, отображается как аннотация на вкладке **Files changed** у соответствующих строк. Результаты Important отображаются красным, nit — жёлтым, а pre-existing ошибки — серым.

Check run завершается со статусом neutral или skipped, если автоматическое ревью не запускалось, потому что push не изменил ни одного файла. Он никогда не завершается со статусом failure, поэтому завершённое ревью не приводит к провалу обязательной проверки. Если вы не видите результатов или ревью не запустилось, см. [Устранение неполадок Code Review](/docs/ru/code-review-troubleshooting).

<h3 id="read-the-result-from-a-script">
  Чтение результата из скрипта
</h3>

Чтобы блокировать слияние или публиковать сводку из собственного CI, разберите последнюю строку текста Details с помощью `gh` и jq. Эта строка — машиночитаемый комментарий.

<Steps>
  <Step title="Найдите ID check run">
    В оболочке выведите список check run для коммита и возьмите `id` запуска `Claude Code Review`. Замените `OWNER` и `REPO` на владельца и имя вашего репозитория, а `<commit-sha>` — на головной коммит pull request:

    ```bash theme={null}
    gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'
    ```
  </Step>

  <Step title="Прочитайте количество по уровням серьёзности">
    Прочитайте количество из этого check run, заменив `CHECK_RUN_ID` на ID:

    ```bash theme={null}
    gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
      --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'
    ```

    Команда выводит JSON-объект с количеством для каждого уровня серьёзности, ключи которого упорядочены по алфавиту, например `{"nit": 1, "normal": 2, "pre_existing": 0}`. В количество входят результаты прежних ревью pull request, ветки обсуждения которых всё ещё открыты.
  </Step>

  <Step title="Обработайте результат">
    Предусмотрите в скрипте обработку следующих случаев:

    * **`normal` больше нуля**: завершите задание с ошибкой, если хотите блокировать слияние. Ключ `normal` содержит количество результатов Important, то есть Claude нашёл хотя бы одну ошибку, которую стоит исправить перед слиянием.
    * **Строка отсутствует**: считайте это отсутствием вердикта, а не нулём результатов. В check run для ревью, которое завершилось ошибкой, превысило время ожидания, было отменено или заменено более новым, такой строки нет; её также нет в некоторых завершённых ревью.
  </Step>
</Steps>

<h2 id="request-a-review">
  Запрос ревью
</h2>

Если ваш pull request является черновиком или создан из форка, автоматические ревью его пропускают, поэтому [запросите ревью с помощью команды в комментарии](#review-drafts-and-pull-requests-from-forks). Чтобы получить ревью для вашего pull request, выполните одно из следующих действий:

* **Откройте его или пометьте как готовый**: в репозитории с настройкой **Once after PR creation** или **After every push** ревью запускается, когда вы открываете или повторно открываете pull request либо помечаете черновик как готовый к ревью.
* **Оставьте команду в комментарии**: опубликуйте [`@claude review`](#comment-commands) в pull request.
* **Выполните push коммита**: push запускает ревью в репозитории с настройкой **After every push** или в pull request, на который вы подписались с помощью `@claude review always`.
* **Нажмите Re-run**: после того как ревью завершилось ошибкой или превысило время ожидания в pull request, созданном не из форка, [запустите его снова](/docs/ru/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) из check run.
* **Дождитесь автоматической повторной попытки**: ревью, сессия которого была прервана, автоматически повторяется один раз. [Сводка check run](/docs/ru/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) сообщает, когда это происходит.

<h3 id="comment-commands">
  Команды в комментариях
</h3>

Опубликуйте одну из этих команд в виде комментария к pull request:

| Команда | Что она делает | Когда её использовать |
| :- | :- | :- |
| `@claude review` | Запускает одно ревью без подписки PR на будущие push | Вам нужно одно ревью сейчас, например для pull request в репозитории с настройкой Manual, или ещё одно ревью немедленно в других режимах |
| `@claude review always` | Запускает ревью и подписывает PR на ревью, запускаемые при push, в дальнейшем | Вы хотите, чтобы каждый последующий push запускал новое ревью, например для высокоприоритетного PR в репозитории с настройкой Manual |
| `@claude review once` | То же, что `@claude review`: запускает одно ревью без подписки | Те же случаи, что и для `@claude review` |

Чтобы любая из этих команд запустила ревью, должны выполняться все следующие условия:

* Опубликуйте её как новый комментарий верхнего уровня к pull request, а не как встроенный комментарий к строке diff и не как тело ревью. Редактирование более раннего комментария не считается.
* Поместите команду в начало комментария, причём `always` должно находиться на той же строке, что и остальная часть команды. Регистр не имеет значения.
* Вам нужны права write, maintain или admin в репозитории. Claude проверяет это через GitHub для каждого комментирующего, а комментарии от ботов не запускают ревью.
* Pull request должен быть открыт.

Когда команда принята, в pull request появляется check run **Claude Code Review** с заголовком **Code review queued...**. Заголовок меняется на **Code review in progress...**, когда ревью начинается. Claude также может отреагировать на ваш комментарий с помощью 👀, но эта реакция может появиться и тогда, когда ревью не запускается, поэтому ориентируйтесь на check run.

Если ревью уже выполняется для последнего коммита pull request, новый запрос не запускает второе.

<Note>
  До обновления в июле 2026 года `@claude review` подписывал PR на ревью, запускаемые при push. Если вы полагались на это поведение, используйте вместо этого комментарий `@claude review always`.
</Note>

<h3 id="what-a-later-review-covers">
  Что охватывает последующее ревью
</h3>

Последующее ревью, которое запускается само, например после push, фокусируется на том, что изменилось с момента последнего ревью, и публикует меньше результатов nit и pre-existing. В его сводке указывается количество того, что было опущено, в строке, заканчивающейся на «found and not posted» или «outside the scope of this re-review and not posted».

Чтобы получить ревью, в котором ничего из этого не опущено, оставьте комментарий [`@claude review`](#comment-commands). Такое ревью снова охватывает весь pull request.

<h3 id="review-drafts-and-pull-requests-from-forks">
  Ревью черновиков и pull request из форков
</h3>

Автоматические ревью пропускают оба этих случая, поэтому запросите ревью с помощью команды в комментарии:

* **Черновики pull request**: команда в комментарии выполняется для черновика, поэтому вы можете запросить ревью до того, как пометите pull request как готовый. Push в черновик не запускают ревью, даже после `@claude review always`. Подписка вступает в силу, как только вы пометите pull request как готовый.
* **Pull request из форков**: Claude не проводит ревью pull request из форка автоматически, независимо от настройки **Review runs** репозитория. Чтобы запустить ревью, оставьте комментарий `@claude review` в pull request. [Условия для команд в комментариях](#comment-commands) по-прежнему действуют, причём права на запись нужны в базовом репозитории, а не в форке.

В pull request из форка `@claude review always` тоже работает, но не подписывает pull request на ревью при последующих push. Нажатие **Re-run** в check run там не запускает ревью.

<h3 id="use-code-review-alongside-the-claude-code-github-action">
  Использование Code Review вместе с Claude Code GitHub Action
</h3>

Если в репозитории также работает [Claude Code GitHub Action](/docs/ru/github-actions) в интерактивном режиме с триггерной фразой по умолчанию `@claude`, комментарий `@claude review` запускает и Action. Чтобы разделить их, задайте для входного параметра `trigger_phrase` в Action другую фразу.

<h2 id="related-resources">
  Связанные ресурсы
</h2>

* [Устранение неполадок Code Review](/docs/ru/code-review-troubleshooting): ревью, которое не запустилось, завершилось ошибкой или было пропущено из-за бюджета
* [Code Review](/docs/ru/code-review): что представляет собой сервис и как выполняется ревью
* [Настройка Code Review](/docs/ru/code-review-setup): для Owner — включение Code Review и выбор того, когда и на каком уровне запускаются ревью
* [Настройка Code Review под ваши нужды](/docs/ru/code-review-customize): изменение того, что помечает Claude, с помощью `REVIEW.md` и `CLAUDE.md`
* [Стоимость и использование Code Review](/docs/ru/code-review-costs): как тарифицируются ревью и где задаётся лимит расходов
* [Локальное ревью с помощью `/code-review`](/docs/ru/code-review-local): запуск ревью вашей ветки из сессии Claude Code
