GitHub Actions: упоминание @claude для автоматизации задач в PR
📚 Навигация по серии: Предыдущая статья 43 Git-воркфлоу научила вас использовать Claude в локальном терминале для управления ветками, написания коммитов и подготовки пул-реквестов. Эта статья переносит процессы в облако — мы настроим интеграцию Claude Code с GitHub Actions. После этого вам будет достаточно упомянуть
@claudeв комментариях к issue или PR на GitHub, и AI автоматически запустит процесс анализа кода, внесет изменения и пришлет готовый пул-реквест без необходимости запуска терминала на вашем компьютере.
Представьте ситуацию: поздний вечер, вы уже легли спать, и тут в чате команды появляется сообщение.
Коллега: «Ты смотрел пул-реквест от разработчика X? Он висит весь день, а завтра утром нам нужно катить релиз». Вы: «Я уже лег, посмотрю завтра утром». Коллега: «Утром будет поздно, релиз запланирован на раннее утро...»
Если бы в вашем репозитории была настроена интеграция Claude Code с GitHub Actions, вы бы избежали подобных ночных обсуждений: к моменту вашего пробуждения в пул-реквесте уже лежал бы детальный отчет от авторевьюера Claude — с указанием на риск возникновения NullPointerException и пару необработанных граничных случаев. Разработчик просто исправил бы код по замечаниям и влил изменения.
В предыдущих статьях мы обсуждали работу с Claude Code, когда вы находитесь за компьютером, терминал запущен и вы контролируете каждый шаг. Интеграция с GitHub Actions решает другую задачу — вывести AI из локального терминала в облачную инфраструктуру GitHub, чтобы запускать его простым упоминанием @claude. Вы можете быть в дороге, на встрече или спать, пока Claude в облаке анализирует код, правит баги и отвечает на вопросы в issue.
Прочитав эту статью, вы получите:
- Понимание принципа работы Claude Code в GitHub Actions и его связи с локальной версией утилиты.
- Правила работы с упоминанием
@claudeв комментариях: где писать запросы и как система их обрабатывает. - Минимальный рабочий файл конфигурации workflow (YAML) с детальным разбором каждой строки.
- Три практических сценария использования: авторевью кода, автоматическое исправление по описанию в issue и запуск по расписанию (cron).
- Инструкцию по безопасной настройке API-ключей в GitHub Secrets для защиты от утечки токенов.
- Пошаговое руководство: подключим Claude к тестовому репозиторию за 5 минут.
01 Принцип работы: Claude Code на серверах GitHub
Суть интеграции: версия Claude Code для GitHub Actions — это тот же локальный Claude Code, перенесенный на сервера GitHub. Его запуск инициируют события в репозитории (комментарии пользователей, открытие PR, запуск по расписанию), а не ввод команд в вашем терминале.
Ранее мы использовали Claude Code локально: открывали терминал, писали команду claude и общались с AI, контролируя изменения файлов. Главным условием была ваша активность за компьютером.
Интеграция с GitHub Actions снимает это условие. Официальное описание возможностей инструмента:
Claude Code GitHub Actions добавляет AI-автоматизацию в рабочие процессы GitHub. Упомяните
@claudeв комментариях к любому PR или issue, и Claude проанализирует код, создаст пул-реквест, добавит новую функцию или исправит ошибку в соответствии с правилами вашего проекта.
Аналогия с ночным дежурным в команде. Днем кодовую базу контролируют штатные разработчики. Ночью в офисе никого нет. Вы берете на работу ночного дежурного — он работает удаленно, не занимает место в офисе, не требует постоянного оклада (оплата только по факту использования) и приступает к работе каждый раз, когда его упоминают в чате с конкретной задачей: «проверь этот код» или «исправь баг в авторизации». Вы спите, а он решает задачи и присылает отчеты. Claude в GitHub Actions выступает в роли такого дежурного на серверах GitHub.
Важная деталь: это не сторонний продукт, это та же программа Claude Code. Она работает на базе Claude Agent SDK (который мы разберем в статье 45) и точно так же считывает файл CLAUDE.md в корне репозитория (правила проекта из статьи 18). Это означает, что облачный помощник будет следовать тем же стандартам, ограничениям и стилю кодирования, которые вы настроили для локальной работы.
Типовые сценарии использования облачного помощника:
- Ревью пул-реквеста: при открытии PR запускается автоматическая проверка кода на наличие багов.
- Генерация кода по issue: в комментарии к задаче пишем
@claude реализуй этот функционал, и AI присылает готовый пул-реквест с изменениями кода. - Анализ сбоев CI: при падении тестов на сервере сборки Claude изучает логи ошибок и предлагает варианты исправления.
💡 Резюме в одной фразе: Облачная версия Claude Code — это перенесенный на сервера GitHub Actions помощник, запускаемый событиями репозитория и использующий правила вашего
CLAUDE.mdдля автономной работы.
02 Как работает упоминание @claude
Основной сценарий взаимодействия — вызов AI через упоминание в комментариях к issue или PR. Разберем, как именно Claude понимает, что нужно приступить к работе.
Аналогия с упоминанием в рабочем чате. В групповом чате идет активное обсуждение. Участники переписываются друг с другом, и дежурный специалист не вмешивается в разговор. Но как только кто-то пишет @дежурный помоги решить проблему, специалист понимает, что это обращение адресовано ему, и подключается к решению. Упоминание @claude работает аналогично: AI игнорирует обычные обсуждения разработчиков, но при обнаружении тега @claude воспринимает комментарий как задачу к действию.
Где можно упоминать AI:
- Комментарии к пул-реквестам (PR comment).
- Комментарии к конкретным строкам кода в PR (review comment).
- Описание или комментарии к задачам (issue comment).
Текст запроса формулируется на естественном языке с описанием конкретной задачи:
@claude реализуй функционал по описанию в этом issue
@claude как правильно настроить авторизацию в этом модуле?
@claude исправь ошибку TypeError в компоненте UserPanelClaude проанализирует контекст обсуждения — прочитает текст issue, изучит связанные файлы кода, заглянет в CLAUDE.md и выполнит задачу: напишет ответ на вопрос или пришлет пул-реквест с кодом исправления.
Помните правило из статьи 15: четкая и конкретная инструкция дает лучший результат. Запрос @claude проверь этот PR заставит AI сделать поверхностный анализ, в то время как запрос @claude проверь этот PR на наличие SQL-инъекций и утечек памяти сфокусирует его внимание на поиске конкретных уязвимостей.
Распространенная ошибка новичков при первом запуске:
Убедитесь, что вы используете символ
@в комментарии (@claude), а не слеш (/claude).
Слеш-команды вида /claude предназначены для работы в локальной консоли (статья 36). В комментариях GitHub Actions они не работают. Для вызова облачного агента всегда используйте символ @.
Сравним локальный и облачный режимы работы:
| Параметр | Локальный режим (CLI) | Облачный режим (Actions) |
|---|---|---|
| Инициатор запуска | Вы запускаете команду claude | Событие в репозитории (комментарий, PR) |
| Интерфейс ввода | Консоль терминала, слеш-команды | Комментарии на GitHub через @claude |
| Ваше присутствие | Требуется для подтверждения каждого шага | Не требуется, работает автономно |
| Место выполнения | Ваша рабочая станция | Виртуальная машина (runner) GitHub |
| Управление правами | Вы подтверждаете действия вручную | Определяется настройками workflow |
💡 Резюме в одной фразе: Вызов AI в облаке выполняется через написание комментария с тегом
@claudeи описанием задачи в issue или PR. Claude анализирует контекст репозитория и выполняет правки. Использование слеша/claudeв облаке не сработает.
03 Установка интеграции: автоматическая настройка
Для подключения к репозиторию необходимо настроить три элемента: установить GitHub App (выдает права на чтение и запись кода), сохранить API-ключ в секреты репозитория и добавить файл конфигурации workflow (YAML) в проект.
Для упрощения процесса разработчики добавили автоматическую команду настройки. Вам достаточно запустить специальную команду в локальной консоли Claude Code:
/install-github-appНапоминание: команда
/install-github-appзапускается в вашем локальном чате Claude Code (это слеш-команда из статьи 36, не путайте с упоминанием@claudeв облаке).
Утилита запустит интерактивный мастер настройки, который выполнит шаги:
Мастер настройки поможет установить GitHub App, пропишет переменную
ANTHROPIC_API_KEYв секреты репозитория и создаст шаблонный файл workflow в папке.github/workflows/.
Для успешной настройки должны быть соблюдены два условия:
- Вы должны обладать правами администратора (admin) в целевом репозитории GitHub для установки приложений и управления секретами.
- Вы должны использовать прямой API-ключ Anthropic. При интеграции через сторонних облачных провайдеров (AWS Bedrock или Google Vertex AI) автоматическая настройка не поддерживается, потребуется ручная конфигурация.
Права доступа, которые запрашивает GitHub App при установке (все три с правом чтения и записи):
- Contents (содержимое репозитория) — для возможности внесения изменений в код.
- Issues (задачи) — для чтения и ответов на вопросы в issue.
- Pull requests (пул-реквесты) — для создания PR и отправки коммитов.
Аналогия с выдачей электронного пропуска сотруднику. Эти три разрешения определяют список дверей, которые может открывать ваш помощник: дверь в архив с кодом, дверь в переговорную с обсуждением задач и дверь в архив пул-реквестов. Без этих разрешений он не сможет выполнить ни одну задачу на сервере.
Если автоматическая настройка через /install-github-app завершилась с ошибкой (например, из-за сетевых ограничений), вы можете выполнить настройку вручную: установить приложение со страницы https://github.com/apps/claude, прописать секреты в настройках репозитория и скопировать шаблон конфигурации из официального файла examples/claude.yml. Использование автоматического мастера значительно экономит время.
Настройка и обмен данными между серверами GitHub и Anthropic требуют стабильного интернет-соединения.
💡 Резюме в одной фразе: Автоматическая настройка запускается локальной командой /install-github-app. Для успешной установки требуются права администратора репозитория и прямой API-ключ Anthropic. Приложение запрашивает права на чтение и запись кода, задач и PR.
04 Разбор файла конфигурации workflow
После завершения настройки в папке .github/workflows/ появится конфигурационный файл в формате YAML. Он определяет, при каких событиях в репозитории должен запускаться Claude. Разберем структуру минимального файла конфигурации.
Аналогия с графиком дежурств. Конфигурационный файл — это расписание для вашего ночного дежурного, в котором указано: при наступлении каких событий он должен выйти на смену (триггеры) и какие конкретно действия выполнить (шаги).
Минимальный файл конфигурации для реагирования на упоминания @claude:
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
# Responds to @claude mentions in commentsНе пугайтесь формата YAML, он состоит всего из четырех блоков, разобрав которые, вы всё легко поймете:
Первый блок name — это имя процесса автоматизации (workflow). Вы можете задать любое имя, оно будет отображаться во вкладке Actions в интерфейсе GitHub.
Второй блок on (когда запускаться) — это триггеры запуска. Здесь указаны события issue_comment с типом created (создание комментария к задаче или PR) и pull_request_review_comment с типом created (создание комментария к строке кода в PR). Иными словами, как только кто-то оставляет новый комментарий в issue или PR, этот workflow активируется.
Третий блок jobs (выполняемые задачи) — здесь описывается задача с именем claude. Параметр runs-on: ubuntu-latest означает «запустить на виртуальной машине с операционной системой Ubuntu, предоставляемой GitHub». Ваша кодовая база обрабатывается на стороне серверов GitHub, что обеспечивает безопасность данных (default secure).
Четвертый блок steps (конкретные шаги) — здесь выполняется ключевое действие: uses: anthropics/claude-code-action@v1 (использовать официальный экшен от Anthropic версии v1). В параметре with передается API-ключ ANTHROPIC_API_KEY (подробнее о настройке безопасности ключа в следующем разделе). Строка # Responds to @claude mentions является комментарием, напоминающим, что эта конфигурация служит для ответа на комментарии с упоминанием @claude.
Самая интересная деталь: в этом файле конфигурации вы не найдете условий вида «запускаться только в том случае, если комментарий содержит @claude». Почему их не нужно писать? Потому что экшен версии v1 автоматически распознает режим работы. Официальная формула:
Экшен автоматически определяет режим работы: интерактивный (ожидание упоминания
@claudeв комментариях) или автоматический (выполнение переданного промпта при запуске).
Логика проста: если в параметрах with передан параметр prompt — запускается автоматический режим (выполнить и завершить работу); если параметр prompt опущен — программа ждет упоминания @claude в комментариях. В нашем минимальном примере параметр prompt отсутствует, поэтому Claude будет просыпаться только при явном упоминании через @.
Это отличие от старых бета-версий экшена, где требовалось указывать параметр
mode: "tag"и передавать текст черезdirect_prompt. В версии v1 эти параметры устарели: параметрmodeудален, аdirect_promptзаменен наprompt. Используйте актуальный синтаксис v1.
Дополнительные параметры запуска Claude Code (флаги CLI) передаются через свойство claude_args:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Инструкция для автоматического запуска"
claude_args: "--max-turns 5 --model claude-sonnet-4-6"Популярные параметры claude_args:
| Флаг | Назначение | Значение по умолчанию |
|---|---|---|
--max-turns | Лимит шагов рассуждения (защита от зацикливания и траты токенов) | 10 |
--model | Используемая модель (например, claude-opus-4-8) | claude-3-5-sonnet |
--allowedTools | Список разрешенных инструментов для вызова | Без ограничений |
--mcp-config | Путь к конфигурации MCP-серверов | — |
--debug | Включение подробного логирования для поиска ошибок | Выключено |
По умолчанию в GitHub Actions используется модель Sonnet. Если вам нужно решать сложные архитектурные задачи или проводить глубокий аудит кода, укажите в
claude_argsфлаг--model claude-opus-4-8. Для стандартного код-ревью и исправления опечаток возможностей модели Sonnet вполне достаточно.
💡 Резюме в одной фразе: Конфигурационный файл YAML задает события запуска (триггеры
on) и параметры выполнения. Версия v1 автоматически переключается между режимом ожидания упоминания и автоматическим выполнением в зависимости от наличия параметраprompt. Параметры CLI передаются черезclaude_args.
05 Три практических сценария использования
Рассмотрим три примера файлов конфигурации для автоматизации повседневных задач.
Сценарий 1: Автоматическое ревью каждого пул-реквеста
Claude будет запускаться автоматически при открытии PR или добавлении новых коммитов, проводить ревью кода и оставлять отчет в комментариях без вашего участия.
name: Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Проведи ревью изменений в этом пул-реквесте. Оцени качество кода, корректность логики и безопасность решений. Напиши отчет на русском языке."
claude_args: "--max-turns 5"В этом примере триггером служит событие pull_request (открытие или обновление кода), и передан параметр prompt с инструкцией для проверки. Claude запустит аудит автоматически при каждом обновлении кода разработчиками.
Для крупных команд существует также отдельный облачный сервис Code Review от Anthropic (для тарифов Team / Enterprise), который интегрируется без написания YAML-файлов и поддерживает тонкую настройку правил через файл REVIEW.md. Использование GitHub Actions является его гибкой альтернативой в рамках вашего CI/CD.
Сценарий 2: Исправление ошибок по описанию в issue
В этом случае используется стандартный триггер комментариев (из раздела 04). Разработчик описывает баг в issue, а затем вызывает Claude комментарием:
@claude исправь эту ошибку в кодовой базе и создай пул-реквест с изменениямиClaude проанализирует описание ошибки, найдет проблемные файлы в репозитории, исправит код, создаст новую ветку и направит пул-реквест на ваше имя. Вам останется только проверить diff и влить изменения. Это значительно ускоряет исправление простых багов.
Сценарий 3: Запуск задач по расписанию (cron)
AI может запускаться по таймеру — например, для ежедневного сбора отчетов по открытым задачам и отправки сводки на почту или в репозиторий.
name: Daily Project Report
on:
schedule:
- cron: "0 9 * * *"
jobs:
report:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Собери информацию о коммитах за вчерашний день и список открытых за вчера задач. Подготовь сводный отчет на русском языке."
claude_args: "--model claude-3-5-sonnet"Триггер on: schedule с настройкой cron: "0 9 * * *" запускает задачу ежедневно в 9:00 UTC. Claude формирует отчет по вашему промпту.
Сравним три сценария автоматизации:
| Сценарий | Триггер запуска | Наличие prompt | Режим работы | Применение |
|---|---|---|---|---|
| Авторевью кода | pull_request (правки в PR) | Да | Автоматический (запуск по событию) | Контроль качества кода перед слиянием |
| Генерация по issue | issue_comment (комментарий) | Нет | Интерактивный (ожидание упоминания) | Создание фич и исправление багов по запросу |
| Отчет по расписанию | schedule (cron-таймер) | Да | Автоматический (запуск по времени) | Мониторинг репозитория, сборка логов |
💡 Резюме в одной фразе: Вы можете настроить автоматическое код-ревью при создании PR, исправление багов по упоминанию
@claudeв комментариях и сборку отчетов по расписанию. Логика определяется комбинацией триггера и наличием промпта в конфигурации.
06 Безопасность API-ключей в GitHub Actions
При работе с облачной автоматизацией вопрос защиты ключей является приоритетным.
Никогда не указывайте реальный API-ключ в тексте конфигурационного файла YAML:
Категорически запрещено сохранять открытые API-ключи в коде репозитория.
Если вы пропишете ключ sk-ant-xxxx текстом в файле claude.yml и отправите изменения на GitHub, ваш ключ мгновенно станет доступен посторонним лицам (особенно если репозиторий публичный). Роботы-сканеры непрерывно отслеживают новые коммиты на GitHub на предмет утечки ключей, и ваш лимит токенов может быть исчерпан за считанные минуты.
Для защиты используется механизм GitHub Secrets:
Сохраните ваш API-ключ в настройках репозитория под именем
ANTHROPIC_API_KEYи обращайтесь к нему в конфигурационном файле через конструкцию:anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}.
Аналогия с хранением ценностей в сейфе. Вместо того чтобы оставлять ключ от квартиры на видном месте в прихожей, вы кладете его в надежный сейф (GitHub Secrets). В тексте инструкции (YAML) вы пишете лишь фразу: «возьми ключ из сейфа №1». Сама инструкция безопасна, так как посторонний человек не знает содержимого сейфа.
Для ручного добавления ключа откройте настройки вашего репозитория на GitHub: Settings → Secrets and variables → Actions, нажмите кнопку New repository secret, в поле Name введите ANTHROPIC_API_KEY, а в поле Value вставьте ваш ключ доступа. При использовании автоматической команды /install-github-app этот шаг выполняется автоматически.
При работе с GitHub Actions помните о рисках внедрения промптов (prompt injection). Поскольку Claude считывает тексты внешних комментариев, злоумышленники могут попытаться передать вредоносные команды в описании issue. Соблюдайте правила безопасности:
| ❌ Рискованные действия | ✅ Безопасные действия |
|---|---|
| Запись API-ключа в конфигурационный файл текстом | Использование GitHub Secrets для хранения ключей |
| Предоставление App неограниченных прав доступа к серверу | Настройка минимально необходимых прав (Contents, Issues, PR) |
| Автоматическое слияние (auto-merge) пул-реквестов от Claude | Обязательное ручное ревью кода перед слиянием PR |
| Разрешение запуска Claude для комментариев любых внешних пользователей | Ограничение круга лиц, способных вызывать AI в публичных проектах |
Финальное слияние кода (merge) должен выполнять только разработчик. Воспринимайте пул-реквесты от Claude как код от стажера: перед вливанием изменений в основную ветку внимательно изучите diff.
💡 Резюме в одной фразе: Храните ключ доступа только в секретах репозитория GitHub Secrets, обращаясь к нему через переменную
${{ secrets.ANTHROPIC_API_KEY }}. Заблокируйте автослияние PR от Claude и внимательно проверяйте код перед слиянием.
07 Практика: подключаем Claude к тестовому репозиторию за 5 минут
Настроим интеграцию с GitHub Actions на практике для тестового репозитория.
Для выполнения шагов вам понадобятся права администратора репозитория на GitHub и активная подписка Anthropic.
Шаг 1: Запускаем автоматическую настройку
В терминале вашего локального тестового проекта запустите сессию claude и введите команду:
/install-github-appОжидаемый результат: в браузере откроется страница настройки GitHub App. Выберите ваш тестовый репозиторий, подтвердите выдачу прав (Contents, Issues, PR) и завершите авторизацию. Программа пропишет API-ключ в секреты и создаст файл workflow.
Шаг 2: Проверяем создание конфигурационного файла
Убедитесь, что в репозитории появился файл:
.github/workflows/claude.ymlОжидаемый результат: файл существует и содержит базовую конфигурацию для запуска по событию
issue_comment.
Шаг 3: Проверяем наличие ключа в секретах
Откройте ваш репозиторий на GitHub в браузере, перейдите в Settings → Secrets and variables → Actions.
Ожидаемый результат: в списке секретов отображается запись
ANTHROPIC_API_KEY.
Шаг 4: Тестируем вызов Claude через issue
Перейдите во вкладку Issues вашего репозитория и создайте новую задачу. В комментариях к задаче напишите запрос:
@claude создай файл README.md и напиши в нем текст "Hello from GitHub Actions Workflow", после чего пришли пул-реквест с изменениями.Ожидаемый результат:
- Во вкладке Actions запустится выполнение процесса
Claude Code.- Через некоторое время Claude оставит ответный комментарий в ветке обсуждения задачи и создаст новый пул-реквест.
- Во вкладке Pull requests появится новый PR с изменениями файла
README.md.- Создание пул-реквеста подтверждает корректность настройки интеграции.
Если процесс не запустился, проверьте правильность написания тега (должен быть @claude, а не /claude) и статус активации Actions в настройках репозитория.
Шаг 5: Проверяем изменения и сливаем код
Откройте созданный пул-реквест, изучите diff изменений в файле README.md. Убедившись, что код соответствует запросу, выполните слияние (merge) вручную.
Вы прошли полный путь настройки облачной автоматизации: от интеграции приложения до запуска задач комментариями.
💡 Резюме в одной фразе: Настройка проверяется запуском
/install-github-appлокально, проверкой наличияclaude.ymlи секрета в репозитории, созданием issue с тегом@claudeи проверкой появления автоматического пул-реквеста.
08 Заключение
Мы разобрали настройку интеграции Claude Code с облачной инфраструктурой GitHub Actions и сценарии автоматизации процессов.
Резюмируем ключевые выводы статьи:
| Тема | Главный вывод |
|---|---|
| Что такое Claude в Actions | Облачный агент, запускаемый по событиям в репозитории GitHub (комментарии, PR) |
| Вызов агента | Выполняется написанием комментария с упоминанием @claude (через символ @) |
| Установка | Локальная команда /install-github-app автоматически настраивает App, секреты и файлы workflow |
| Файл конфигурации (YAML) | Описывает условия запуска (on) и параметры экшена. Версия v1 поддерживает автоматический выбор режима работы |
| Сценарии применения | Автоматическое ревью кода при создании PR, генерация кода по описанию в issue, запуск отчетов по расписанию |
| Безопасность ключей | Ключи сохраняются только в GitHub Secrets. Автоматическое слияние изменений запрещено, выполняйте merge вручную |
Подключение Claude Code к GitHub Actions позволяет делегировать AI рутинные задачи код-ревью и исправления простых ошибок в облаке, обеспечивая непрерывную поддержку процессов разработки 24/7.
В следующей статье 45 «Agent SDK» мы изучим программный интерфейс утилиты. Каким образом разработчики встраивают функции Claude Code в свои приложения? Мы разберем структуру SDK, методы инициализации агента, передачи контекста, вызова инструментов и обработки результатов для создания собственных сервисов на базе Claude Code.