раздел 10 · подстраница 5
Claude в GitHub Actions
Anthropic выпустил официальный GitHub Action - anthropics/claude-code-action. Подключаете его к репозиторию, и Claude может авто-ревьюить PR, отвечать на комментарии, чинить issues - всё в рамках workflow.
Концепция
Action - это контейнер, в котором запускается Claude Code в headless-режиме. Получает контекст из GitHub-события (PR diff, комментарий, issue body), выполняет промпт, постит результат обратно как комментарий PR / коммит / новый PR.
Триггеры могут быть любые: pull_request, issue_comment, workflow_dispatch, schedule.
Подготовка
Шаг 1. API-ключ Anthropic
Получаете на console.anthropic.com и кладёте в secrets репозитория:
Settings → Secrets and variables → Actions → New repository secret
Name: ANTHROPIC_API_KEY
Value: sk-ant-api03-...
Без ключа Claude в Actions работать не будет (OAuth-токен подписки в CI не пробросишь).
Шаг 2. GitHub App (опционально, но рекомендуется)
Чтобы Claude мог постить от своего имени, а не от пользователя workflow - установите Claude GitHub App. Это даст бот-токен с правильными правами.
Полный workflow
Создайте файл .github/workflows/claude.yml:
name: Claude
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
pull_request:
types: [opened, synchronize]
jobs:
claude:
if: |
(github.event_name == 'pull_request') ||
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude'))
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
model: claude-sonnet-4-6
mode: review
# путь к кастомным агентам (опционально)
agents_path: .claude/agents
Workflow срабатывает на:
- Каждый новый PR или его обновление - Claude автоматически ревьюит diff.
- Комментарий в PR с упоминанием
@claude- Claude отвечает на запрос. - Комментарий к строке кода с
@claude- Claude отвечает в контексте этой строки.
Сценарии использования
Авто-ревью каждого PR
on:
pull_request:
types: [opened, synchronize]
При каждом push в feature-ветку - Claude скачивает diff и оставляет ревью-комментарий. Полезно для:
- Внешних контрибьюторов (первичный фильтр перед человеком)
- Команды с разным уровнем (junior получает фидбэк сразу)
- Соло-проектов (внешний голос, который заметит, что вы пропустили)
Реакция на @claude в комментариях
on:
issue_comment:
types: [created]
Любой коллаборатор пишет в PR:
@claude почему ты считаешь, что этот await не нужен?
Claude отвечает в той же ветке.
Авто-fix по команде
on:
issue_comment:
types: [created]
jobs:
fix:
if: |
contains(github.event.comment.body, '/claude fix')
Пишете в PR /claude fix - почини падающие тесты - Claude правит код, коммитит в ту же ветку.
Тонкости
Permissions
contents: write - обязательно, если Claude будет коммитить.
pull-requests: write - чтобы постить комментарии в PR.
issues: write - чтобы отвечать в issues.
Дайте только то, что нужно для вашего сценария.
Лимиты по токенам в Action
В платных раннерах нет жёсткого CPU/memory лимита под Claude, но API-токены тратятся ваши. Большой PR (10k строк diff) может съесть $5-10 за один ревью. Используйте Sonnet, не Opus, для типовых ревью.
Безопасность - PR от внешних
Стоимость
Раннеры на GitHub-Hosted - бесплатно для публичных репо, оплачиваются для приватных (по минутам). Сам Claude - по вашему API-токену.
Альтернатива - своя интеграция через headless
Если стандартный action не подходит - можно вызвать claude -p напрямую:
- name: Custom Claude task
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
npm install -g @anthropic-ai/claude-code
git diff HEAD~1 | claude -p "ревью этого diff" > review.md
gh pr comment ${{ github.event.pull_request.number }} --body-file review.md
Больше контроля, но и больше boilerplate.
Антипаттерны
- Подключить action и игнорировать ревью. Со временем команда привыкнет, что Claude "всегда что-то пишет", и реальные замечания пропустят.
- Дать
--dangerously-skip-permissionsв Actions без явных гардрейлов. - Запускать на каждый push в main - быстро сожжёте бюджет.
- Делать Claude единственным reviewer'ом. Это помощник, не замена ревьюера.
Полезные ссылки
- anthropics/claude-code-action - официальный action
- GitHub Actions docs - база Actions
- Claude API pricing - оценить стоимость ревью