GitHub Actions и ревью кода
Всё, что Claude делает на вашей машине, он может делать и в CI. Для GitHub есть готовое действие anthropics/claude-code-action: упомянули @claude в комментарии к issue — он реализует и откроет PR; открыли PR — он оставил замечания по строкам; наступило 9 утра — он собрал отчёт по вчерашним коммитам. В этом уроке разберём, как это подключить, как ограничить и во что это обходится. И отдельно — ревью кода: автоматическое в GitHub и локальное командой /code-review.
Что делает действие
claude-code-action запускает Claude Code внутри рабочего процесса GitHub Actions с доступом к репозиторию. Оно работает в двух режимах, и режим определяется по тому, есть ли в настройках вход prompt:
- Интерактивный —
promptне задан. Claude ждёт упоминания@claudeв комментарии к issue или PR, в ревью или в теле нового issue, выполняет запрос и отчитывается комментарием в той же ветке обсуждения. - Автоматический —
promptзадан. Claude выполняет его на любое событие GitHub без упоминания: открытие PR, расписание, публикация релиза. Результат по умолчанию в логе запуска; в PR он пишет только если запрос это велит и есть инструмент для комментариев.
Кто может запустить: на событиях issue и PR у автора должен быть доступ на запись в репозиторий, а боты отклоняются, если не перечислены явно в allowed_bots. Это защита от петель, когда один бот триггерит другого.
Установка
Быстрый путь — из Claude Code в папке репозитория выполнить /install-github-app. Нужны установленный gh (GitHub CLI) с авторизацией и права администратора в репозитории. Команда установит GitHub App, создаст секрет с ключом и подготовит PR с файлами рабочего процесса. Останется его смержить.
Ручной путь из трёх шагов, если /install-github-app недоступен или нужен полный контроль:
- Установить Claude GitHub App в репозиторий. Действию нужны права на Contents, Issues и Pull requests (чтение и запись).
- Добавить секрет:
ANTHROPIC_API_KEYс ключом API из Claude Console либоCLAUDE_CODE_OAUTH_TOKEN, который создаётся локально командойclaude setup-tokenи работает через подписку. - Положить файл рабочего процесса в
.github/workflows/.
Для организации: приложение ставится один раз на уровне организации, секрет — как organization-level secret, а рабочий процесс — в каждый репозиторий или один раз как reusable workflow. Для общего секрета берите ключ API, а не токен подписки: токен привязан к тому, кто его создал.
Рабочий процесс: ответ на @claude
Базовый файл .github/workflows/claude.yml:
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}Что здесь не шаблон: id-token: write нужен для авторизации действия через GitHub App; actions: read даёт Claude читать результаты CI на PR; условие if не поднимает раннер на комментарии без упоминания. При авторизации по подписке строка с ключом заменяется на claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}.
После мержа в любом issue или PR можно написать: «@claude реализуй по описанию задачи», «@claude почему падает тест в этом PR», «@claude поправь ошибку типов в компоненте дашборда». Claude ответит комментарием и будет обновлять его по ходу работы.
Рабочий процесс: ревью каждого PR
Для автоматического ревью используется плагин code-review из демо-маркетплейса Anthropic. Рабочий процесс запускается при открытии и обновлении PR:
name: Code Review
on:
pull_request:
types: [opened, synchronize, ready_for_review, reopened]
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
plugins: "code-review@claude-code-plugins"
prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'Две строки определяют, куда попадёт ревью. Флаг --comment велит Claude оставлять замечания прямо в PR — построчно, а если проблем нет, одним итоговым комментарием. Без него результат остаётся в логе. А claude_args с --allowedTools включает MCP-сервер, который и умеет писать построчные комментарии; без этой строки сервер не запустится.
Черновики, закрытые PR и PR, где Claude уже оставил комментарий, пропускаются. На публичных репозиториях GitHub не передаёт секреты в запуски из форков, так что ревью работает только для веток того же репозитория.
Заметьте: prompt принимает не только текст, но и вызов навыка. Навык из .claude/skills/ репозитория вызывается как /имя — после actions/checkout, чтобы файлы были на раннере. Навык из плагина — как /плагин:имя после установки через plugin_marketplaces и plugins. Так ваш командный навык проверки из урока «Навыки проверки» может работать и в CI.
Рабочий процесс: по расписанию
С заданным prompt действие запускается на любое событие, включая schedule. Ежедневный отчёт в 9:00 UTC:
name: Daily Report
on:
schedule:
- cron: "0 9 * * *"
jobs:
report:
runs-on: ubuntu-latest
permissions:
contents: read
issues: read
id-token: write
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Собери сводку по вчерашним коммитам и открытым issue"
claude_args: |
--allowedTools "mcp__github__list_commits,mcp__github__list_issues"Здесь нет actions/checkout: Claude читает коммиты и issue через MCP-инструменты GitHub, репозиторий клонировать не нужно. С текстовым prompt у Claude по умолчанию нет ни shell, ни доступа к API GitHub — всё, что нужно, выдаётся через --allowedTools в claude_args. GitHub запускает расписания только из основной ветки и отключает их в публичных репозиториях после 60 дней без активности.
Ограничение прав и стоимости
claude_args принимает любые флаги CLI из урока про headless-режим: --max-turns ограничивает число ходов, --model выбирает модель, --allowedTools перечисляет инструменты, --append-system-prompt добавляет инструкции. Вход settings принимает JSON с настройками, в том числе permissions.allow и permissions.deny.
Два правила безопасности из документации. Ключи и токены никогда не коммитятся — только через секреты GitHub. Рабочему процессу выдаётся ровно столько прав (permissions), сколько нужно: для ревью хватает чтения, для реализации по issue нужна запись.
Каждый запуск стоит минут GitHub Actions и токенов API (или лимитов подписки при OAuth-токене). Снизить расход помогают конкретные запросы к @claude, шаблоны issue с контекстом, короткий CLAUDE.md (он читается на каждом запуске), --max-turns, таймаут на уровне рабочего процесса и concurrency GitHub, чтобы не запускать параллельно десять ревью одного PR.
CLAUDE.md репозитория Claude читает и в CI, так что стандарты кода, критерии ревью и правила проекта работают там так же, как локально.
Управляемый Code Review
Помимо действия, которое вы настраиваете сами, есть управляемый сервис Code Review: владелец организации включает его в настройках claude.ai, выбирает репозитории и режим (один раз при открытии PR, после каждого пуша или вручную по комментарию @claude review), и ревью запускаются на инфраструктуре Anthropic без файлов рабочего процесса. Несколько агентов параллельно ищут разные классы проблем, потом проверяют находки на ложные срабатывания, а результат приходит построчными комментариями с пометкой серьёзности. Ревью никогда не блокирует merge — у проверки нейтральный статус.
Настраивается файлом REVIEW.md в корне: что считать важным, сколько мелочей показывать, какие пути пропускать (сгенерированный код, lock-файлы), что проверять всегда («новые маршруты API должны иметь интеграционный тест»). Сервис в статусе research preview для планов Team и Enterprise и оплачивается отдельно; условия — в документации.
Разница с действием: действие — ваш CI, ваш контроль и любые сценарии; сервис — ревью без поддержки рабочих процессов, но только ревью.
Локальное ревью: /code-review
Не обязательно ждать CI. Команда /code-review в сессии проверяет коммиты текущей ветки и незакоммиченные изменения на баги и упрощения. Работает в фоновом субагенте с отдельным контекстом, находки приходят в разговор по готовности. Можно указать цель — путь, номер PR, ветку или диапазон вроде main...my-feature.
Флаг --fix применяет находки к рабочему дереву, --comment публикует их в PR. Уровень усилий (low, medium, high) регулирует баланс между полнотой и уверенностью: на низких уровнях меньше ложных срабатываний, на высоких — шире охват. Полезно прогнать /code-review перед git push — тогда CI-ревью найдёт меньше, а ревьюеру-человеку останется дизайн, а не механика.
Если основной хостинг — GitLab, для него есть отдельная интеграция с CI/CD, описанная в документации Claude Code.
Попробуйте сами
10–15 мин на рабочем месте- В тестовом репозитории выполните
/install-github-appи смержите созданный PR. Откройте issue с понятной задачей и напишите@claude реализуй. Посмотрите, как выглядит ответ и PR. - Добавьте рабочий процесс ревью по образцу выше. Откройте PR с намеренной ошибкой (например, неучтённый
null) и проверьте, найдёт ли её построчный комментарий. - Перед следующим своим
git pushвыполните/code-reviewлокально. Сравните находки с тем, что потом напишет CI или коллега.
Коротко
anthropics/claude-code-action@v1запускает Claude Code в GitHub Actions; безprompt— отвечает на@claude, сprompt— работает автоматически на любое событие.- Установка:
/install-github-appили вручную — GitHub App, секретANTHROPIC_API_KEY/CLAUDE_CODE_OAUTH_TOKEN, файл в.github/workflows/. - Ревью PR: плагин
code-review, флаг--commentдля построчных замечаний и--allowedToolsдля MCP-сервера комментариев. - Права и расход ограничиваются
permissionsрабочего процесса,claude_args(--max-turns,--allowedTools), коротким CLAUDE.md иconcurrency. - Управляемый Code Review — ревью без рабочих процессов, настраивается через
REVIEW.md; локально —/code-reviewс--fixи--comment.
Видеоверсия
Сценарий озвучки · 578 слов, ≈ 4 мин
Всё, что Claude делает на вашей машине, он может делать и в CI. Для GitHub есть готовое действие: упомянули Claude в комментарии к задаче — он реализовал и открыл пул-реквест; открыли пул-реквест — он оставил замечания по строкам; наступило утро — он собрал отчёт по вчерашним коммитам. Разберём, как это подключить, ограничить и во что обходится.
Действие работает в двух режимах, и режим определяется одним параметром — есть ли в настройках готовый запрос. Если запроса нет — интерактивный режим: Claude ждёт упоминания в комментарии к задаче или пул-реквесту, выполняет просьбу и отвечает в той же ветке обсуждения. Если запрос задан — автоматический режим: Claude выполняет его на любое событие GitHub без упоминания — открытие пул-реквеста, расписание, релиз. Запустить может только автор с правом записи в репозиторий, а боты отклоняются — это защита от петель.
Установка проще всего из Claude Code: команда «инсталл гитхаб апп» в папке репозитория. Нужен установленный GitHub CLI и права администратора. Команда поставит приложение, создаст секрет с ключом и подготовит пул-реквест с файлами рабочего процесса. Вручную — три шага: установить приложение Claude из каталога GitHub, добавить секрет с ключом API или с токеном подписки, который создаётся локальной командой «сетап-токен», и положить файл рабочего процесса. Для организации приложение ставится один раз, секрет — на уровне организации, и для общего секрета лучше ключ API, а не токен подписки, потому что токен привязан к человеку.
Базовый рабочий процесс: срабатывает на комментарии к задаче или пул-реквесту, условие проверяет упоминание, чтобы не поднимать раннер зря, дальше — чекаут репозитория и шаг с действием, куда передаётся секрет. В правах — запись в содержимое, пул-реквесты и задачи, плюс токен идентификации для авторизации приложения. После мержа в любой задаче можно написать: «реализуй по описанию», «почему падает тест», «поправь ошибку типов».
Ревью каждого пул-реквеста делается вторым рабочим процессом. Он срабатывает на открытие и обновление, устанавливает плагин ревью из демо-маркетплейса Anthropic и запускает его навык с флагом «коммент». Этот флаг велит оставлять замечания прямо в пул-реквесте, построчно. Ещё нужна строка с разрешённым инструментом: она включает MCP-сервер, который умеет писать построчные комментарии. Черновики и закрытые пул-реквесты пропускаются. И заметьте: в запрос можно передать не только текст, но и вызов навыка. Ваш командный навык проверки из прошлых уроков может работать и в CI.
Третий сценарий — по расписанию. Каждый день в девять утра — сводка по вчерашним коммитам и открытым задачам. Здесь даже чекаут не нужен: Claude читает данные через MCP-инструменты GitHub. Важно: с текстовым запросом у Claude по умолчанию нет ни шелла, ни доступа к API — всё выдаётся явно через разрешённые инструменты.
О правах и деньгах. Параметр с аргументами принимает любые флаги командной строки: ограничение ходов, выбор модели, список инструментов. Ключи никогда не коммитятся — только секреты. Рабочему процессу выдаётся ровно столько прав, сколько нужно: для ревью — чтение, для реализации — запись. Каждый запуск стоит минут GitHub и токенов. Экономят конкретные запросы, шаблоны задач с контекстом, короткий файл клод-эм-дэ — он читается на каждом запуске, — ограничение ходов и запрет параллельных запусков.
Есть и управляемый сервис Code Review: владелец организации включает его в настройках, выбирает репозитории и режим, и ревью идут на инфраструктуре Anthropic без файлов рабочего процесса. Несколько агентов ищут разные классы проблем, проверяют находки на ложные срабатывания, результат — построчные комментарии с пометкой серьёзности. Настраивается файлом ревью-эм-дэ в корне: что считать важным, что пропускать, что проверять всегда. Сервис в исследовательском превью для планов Team и Enterprise, оплачивается отдельно.
И не обязательно ждать CI. Команда «код-ревью» в сессии проверяет текущую ветку в фоновом субагенте. Флаг «фикс» применяет находки, флаг «коммент» публикует их в пул-реквест, а уровень усилий регулирует баланс между полнотой и точностью. Прогоните её перед пушем — и ревьюеру-человеку останется дизайн, а не механика.
