# Claude Code GitHub Actions: настройка и workflow

URL: https://agentvera.dev/ru/blog/claude-code-github-actions/ · Опубликовано: 2026-10-27

Настройка Claude Code GitHub Actions: /install-github-app или вручную, упоминания @claude, автоматическое ревью PR, секреты, расходы и права доступа.

**Коротко:**

- Выполните /install-github-app в Claude Code: команда установит Claude GitHub App, сохранит ключ как секрет и откроет PR с файлами workflow. Те же три шага можно сделать вручную.
- Без входного параметра prompt action ждёт @claude в комментариях к issue и PR; с prompt он запускается сам, и так строятся автоматическое ревью PR или ежедневный отчёт.
- Каждый запуск стоит минут Actions и токенов, поэтому ограничивайте его через --max-turns в claude_args, таймауты job, concurrency и узкий --allowedTools; исследовательскую работу делайте локально.

Claude Code GitHub Actions позволяет запускать Claude Code внутри workflow GitHub. Вы упоминаете `@claude` в issue или pull request, и Claude читает код, отвечает, пишет исправление в новой ветке или проверяет diff — всё на раннере GitHub. Быстрее всего настроить это так: откройте Claude Code в своём репозитории и выполните `/install-github-app`. Команда установит Claude GitHub App, сохранит ваш ключ как секрет репозитория и откроет pull request с файлами workflow.

В этом руководстве — оба способа настройки, входные параметры официального `anthropics/claude-code-action`, два режима (упоминания и автоматизация), готовый workflow для ревью PR, секреты, контроль расходов и прав, а также случаи, когда лучше запускать Claude локально. Всё здесь опирается на документацию Anthropic и README action по состоянию на октябрь 2026 года. Если вам нужен агент, который сам чинит красные сборки CI, об этом есть отдельная статья: [автоматическое исправление падений CI с помощью AI](/ru/blog/auto-fix-ci-failures-with-ai/ "Автоматическое исправление падений CI с помощью AI").

## Что делает action

`anthropics/claude-code-action@v1` — это GitHub Action, который запускает агента Claude Code на вашем собственном раннере GitHub. Он работает в двух режимах:

- **Интерактивный (упоминания).** Если вы не задали `prompt`, action ждёт фразу-триггер, по умолчанию `@claude`. Она может быть в комментарии к issue или PR, в ревью PR или в заголовке или тексте нового issue. Claude отвечает комментарием и может запушить ветку с изменениями.
- **Автоматизация.** Если задан `prompt`, Claude выполняет эту задачу сразу, как только срабатывает workflow, упоминание не нужно. Результаты попадают в лог запуска, если только prompt или плагин не велят Claude опубликовать их где-то ещё. Так строятся ревью PR, отчёты по расписанию и разбор issue.

Агент следует тем же правилам, что и в вашем терминале. Он читает `CLAUDE.md`, пользуется разрешёнными вами инструментами и останавливается на заданном лимите ходов.

## Шаг 1: быстрая настройка через /install-github-app

Откройте Claude Code в репозитории и выполните:

```text
/install-github-app
```

Перед началом проверьте три вещи:

- **Вы администратор репозитория.** И установка приложения, и добавление секретов требуют прав администратора.
- **Репозиторий находится на github.com.** Если remote указывает на gitlab.com или bitbucket.org, команда покажет уведомление и завершится.
- **GitHub CLI авторизован.** Если ещё нет, сначала выполните `gh auth login`.

Команда проведёт вас по шагам. Она установит Claude GitHub App в репозиторий и спросит, как Claude должен проходить аутентификацию. Затем сохранит как секрет репозитория либо `ANTHROPIC_API_KEY` (API-ключ), либо `CLAUDE_CODE_OAUTH_TOKEN` (токен, привязанный к вашей подписке Claude). Если ключ уже есть, его можно использовать повторно. В конце она запушит ветку с файлами workflow и откроет pull request, который вам останется слить.

Вы получите два workflow: `claude.yml` отвечает на упоминания `@claude`, а `claude-code-review.yml` проверяет pull request. Нажмите Esc, чтобы остановиться на полпути, или выберите «Skip for now» после установки приложения, если хотите написать workflow сами. Если позже запустить команду снова, она предложит обновить файл workflow до последней версии.

Быстрая настройка работает с Claude API и с подписками Claude. Если вы используете Amazon Bedrock, Google Cloud или Microsoft Foundry, идите ручным путём и смотрите раздел документации про облачных провайдеров.

## Шаг 2: ручная настройка

Если команда вам не подходит, те же три шага вручную выглядят так:

1. **Установите Claude GitHub App** со страницы `github.com/apps/claude` в репозиторий. Action использует его права Contents, Issues и Pull requests, каждое с доступом на чтение и запись.
2. **Добавьте секрет** в Settings → Secrets and variables → Actions:
   - `ANTHROPIC_API_KEY`: API-ключ из Claude Console с оплатой за токены, или
   - `CLAUDE_CODE_OAUTH_TOKEN`: чтобы создать его, выполните локально `claude setup-token`; он работает с тарифами Pro, Max, Team и Enterprise.
3. **Скопируйте пример workflow** `claude.yml` из папки `examples/` action в `.github/workflows/`.

Вот рабочий workflow для упоминаний:

```yaml
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, так что можно спросить его, почему упала проверка. Если вы используете токен подписки, замените последнюю строку на `claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}`.

Для организации документация предлагает установить приложение на уровне организации, положить ключ в секрет Actions организации и вызывать переиспользуемый workflow из каждого репозитория. Для общих секретов там же рекомендуют API-ключ, а не OAuth-токен, потому что токен принадлежит подписке одного человека. Если вы вообще не хотите хранить долгоживущий ключ, action поддерживает workload identity federation (OIDC) через входные параметры `anthropic_federation_rule_id` и `anthropic_organization_id`.

## Шаг 3: @claude в issue и pull request

Когда workflow окажется в ветке по умолчанию, напишите комментарий:

```text
@claude why does the checkout test fail on Node 22? Fix it if the cause is in our code.
```

```text
@claude implement this issue. Keep the public API unchanged and add tests.
```

```text
@claude review the error handling in src/payments/ and suggest changes inline.
```

Claude отвечает комментарием. Когда он меняет код, то пушит в ветку, имя которой начинается с `claude/` (это меняется входным параметром `branch_prefix`), и даёт ссылку, чтобы открыть pull request. Кто может запустить action, решают несколько правил:

- **У автора комментария должны быть права на запись.** Пользователей без них action игнорирует, если только вы не перечислите их в `allowed_non_write_users`, для чего нужен и ваш собственный `github_token`.
- **Боты игнорируются**, если вы не назовёте их в `allowed_bots`. Значение `"*"` принимает всех ботов, и README предостерегает от этого в публичных репозиториях.
- **Триггер — отдельное слово.** `@claude` работает, `/claude` и `@claude-bot` — нет. При необходимости поменяйте его через `trigger_phrase`.

Есть также `assignee_trigger` (запуск, когда issue назначают определённому пользователю) и `label_trigger` (запуск, когда добавляют метку, по умолчанию `claude`). Сочетайте их с нужными типами событий `issues` в `on:`.

## Шаг 4: workflow для автоматического ревью PR

Ниже — workflow для ревью из документации. Он запускается на каждый открытый, обновлённый, повторно открытый или готовый к ревью pull request, и никому не нужно писать `@claude`:

```yaml
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"'
```

Что делает каждая часть:

- `plugin_marketplaces` и `plugins` загружают официальный плагин `code-review`.
- `prompt` запускает его команду на текущем PR. `--comment` публикует находки комментариями в строках кода или одним итоговым комментарием.
- Строка `claude_args` обязательна. Без `--allowedTools` для инструмента комментариев в строках MCP-сервер, который публикует комментарии, не запускается.

Плагин пропускает черновые, закрытые и тривиальные PR, а также PR, которые он уже прокомментировал. Pull request из форков публичного репозитория не получают секреты репозитория, поэтому ревью на них не запустится. Anthropic также предлагает отдельный управляемый продукт Code Review, который проверяет PR без всякого файла workflow. Action же — тот вариант, который вы контролируете и запускаете на своём раннере.

Шире о том, что AI-ревью находит, а что пропускает, читайте в статье [AI-ревью кода](/ru/blog/ai-code-review/ "AI-ревью кода").

## Шаг 5: автоматизации по расписанию и свои сценарии

С `prompt` можно запустить любую задачу на любое событие GitHub. Ежедневная сводка выглядит так:

```yaml
name: Daily report
on:
  schedule:
    - cron: "0 9 * * *"
jobs:
  report:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: read
      id-token: write
    steps:
      - uses: actions/checkout@v6
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "Summarize yesterday's commits and open issues"
          claude_args: |
            --model claude-opus-5-5
            --allowedTools "mcp__github__list_commits,mcp__github__list_issues"
```

Помните: с простым prompt у Claude нет ни оболочки, ни доступа к GitHub API, пока вы не выдадите инструменты через `--allowedTools` или правило `permissions.allow` во входном параметре `settings`. Workflow по расписанию запускаются только из ветки по умолчанию, а в публичных репозиториях GitHub отключает их после 60 дней без активности.

## Входные параметры, которые вам действительно понадобятся

У action много входных параметров. Вот самые ходовые:

| Параметр | Что делает |
| --- | --- |
| `prompt` | Текст задачи или slash-команда. Если задан, action работает в режиме автоматизации. |
| `claude_args` | Любые флаги CLI Claude Code, например `--max-turns`, `--model`, `--allowedTools`, `--mcp-config`, `--append-system-prompt`. |
| `anthropic_api_key` | API-ключ для Claude API. |
| `claude_code_oauth_token` | Токен из `claude setup-token` как альтернатива API-ключу. |
| `github_token` | Ваш собственный токен, если вы не хотите, чтобы действовало Claude GitHub App. |
| `trigger_phrase` | Слово для упоминания. По умолчанию `@claude`. |
| `settings` | Настройки Claude Code в виде JSON или пути к файлу: права, хуки и окружение. |
| `plugin_marketplaces`, `plugins` | Загрузка плагинов, например `code-review`. |
| `use_bedrock`, `use_vertex`, `use_foundry` | Работа через облачного провайдера вместо Claude API. |

Другие полезные параметры из README: `base_branch` и `branch_prefix` — куда Claude пушит, `use_sticky_comment` — один обновляемый комментарий, `track_progress` — комментарии с отслеживанием прогресса на событиях PR и issue, `use_commit_signing` — подпись коммитов и `additional_permissions` (например, `actions: read`). Action также возвращает выходные значения, такие как `branch_name`, `session_id` и `structured_output`, для следующих шагов.

Если вы пользовались бета-версией, переход механический. Замените `@beta` на `@v1`, уберите `mode`, переименуйте `direct_prompt` в `prompt`, перенесите `max_turns` и `model` в `claude_args`, а `custom_instructions` превратите в `--append-system-prompt`.

## Секреты: что и куда

- **Никогда не кладите ключ в файл workflow.** Используйте `${{ secrets.ANTHROPIC_API_KEY }}` или `${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}`.
- **Храните секреты на самом узком уровне, который работает:** секрет репозитория для одного репозитория, секрет организации, ограниченный выбранными репозиториями, — для многих.
- **Не включайте `show_full_output` в публичных репозиториях.** README предупреждает, что полный вывод в логах может раскрыть секреты.
- **Считайте текст issue недоверенным вводом.** Любой, кто может написать issue, может попытаться управлять Claude через спрятанные в нём инструкции. Правило прав на запись — ваша главная защита, поэтому не ослабляйте `allowed_non_write_users` или `allowed_bots` без веской причины. Подробнее о рисках — в материалах [prompt injection](/ru/glossary/prompt-injection/ "Prompt injection") и [безопасность AI-агентов для программирования](/ru/blog/ai-coding-agent-security/ "Безопасность AI-агентов для программирования").

## Контроль расходов и прав

Каждый запуск стоит дважды: минуты GitHub Actions на раннере и токены Claude (или использование подписки, если у вас OAuth-токен). Рычаги, которые советует документация:

- **Ограничьте число ходов:** `claude_args: "--max-turns 5"` не даст запуску зациклиться.
- **Задайте таймаут job** через `timeout-minutes`.
- **Используйте concurrency**, чтобы серия пушей не запустила пять ревью одного и того же PR:

```yaml
concurrency:
  group: claude-${{ github.event.pull_request.number || github.event.issue.number }}
  cancel-in-progress: true
```

- **Сузьте инструменты.** Давайте в `--allowedTools` только те команды, которые нужны задаче, и оставляйте `permissions` job только на чтение для ревью, как в workflow выше.
- **Держите CLAUDE.md коротким и конкретным.** Claude загружает его при каждом запуске, так что длинный файл каждый раз стоит токенов. Шаблон есть в статье [как написать CLAUDE.md](/ru/blog/claude-md-agents-md/ "Как написать CLAUDE.md и AGENTS.md").
- **Пишите конкретные запросы.** «@claude fix the null check in parseDate» дешевле, чем «@claude look at this». Шаблоны issue помогают людям формулировать запросы лучше.

## Частые ошибки

- **Workflow не лежит в ветке по умолчанию.** Workflow с `issue_comment` запускаются только из ветки по умолчанию, так что сначала слейте PR с настройкой.
- **CI не запускается на коммитах Claude.** GitHub не запускает workflow для коммитов, сделанных со стандартным `GITHUB_TOKEN`. Уберите `github_token: ${{ secrets.GITHUB_TOKEN }}`, чтобы action использовал Claude GitHub App, или передайте токен своего приложения.
- **Ревью ничего не публикует.** Проверьте строку `--allowedTools "mcp__github_inline_comment__create_inline_comment"` и посмотрите, не черновой ли это PR и не из форка ли он.
- **Claude говорит, что не может выполнять команды.** В режиме автоматизации по умолчанию ничего не разрешено. Добавьте инструменты в `--allowedTools`.

## Когда лучше запускать Claude локально

Action хорош для задач, где фиксированный триггер ведёт к ограниченной работе: ответить на вопрос, реализовать небольшой issue, проверить diff, написать ежедневную сводку. Он плохо подходит, когда:

- **Вы хотите направлять агента по ходу работы.** Ветка комментариев слишком медленная, если поправлять агента нужно каждые несколько минут. В локальной сессии можно прервать, одобрить и перенаправить.
- **Задаче нужно ваше окружение:** запущенная база данных, локальный сервис, секреты, которым не место в CI, или графический интерфейс, на который нужно посмотреть.
- **Вы исследуете.** Долгое расследование сжигает минуты раннера и токены, пока никто не смотрит. Локально вы видите, что агент уходит в сторону, и останавливаете его.
- **Вам нужно несколько агентов сразу,** каждый в своём worktree, чтобы сравнить подходы.

Многие команды используют оба варианта. Action берёт на себя рутинные ревью и небольшие issue, а тяжёлая работа идёт локально, где за ней кто-то следит.

## Локальная часть с AgentVera

AgentVera — десктопное приложение, которое запускает Claude Code, Codex, opencode и другие CLI-агенты для программирования рядом друг с другом, в настоящих терминалах, используя ваши собственные установки и входы. Оно закрывает локальную часть описанного выше разделения:

- **Агенты в панелях и worktree.** Запускайте несколько агентов Claude Code рядом, каждого в своём [git worktree](/ru/glossary/git-worktree/ "Что такое git worktree"), и смотрите diff и коммиты в панели [Git и GitHub](/ru/features/git-and-github/ "Git и GitHub").
- **[Автоматическое код-ревью](/ru/features/code-review/ "Автоматическое код-ревью")** до пуша: когда агент заканчивает ход, выбранная вами модель Claude проверяет написанное и выводит находки с уровнем серьёзности и file:line. Она может отправить их обратно агенту. Это есть на бесплатном тарифе.
- **[Центр CI/CD](/ru/features/ci-cd-center/ "Центр CI/CD")** собирает запуски GitHub Actions, GitLab CI и Jenkins в одном месте. Логи упавшего запуска уходят новому агенту одним кликом.
- **[Автоматизации](/ru/features/automations/ "Автоматизации")** (Pro и Team) могут запустить агента, когда CI краснеет или участник репозитория комментирует открытый PR. Агент работает в своём worktree, и AgentVera никогда не пушит напрямую в ветку по умолчанию.

Поскольку AgentVera запускает любой CLI-агент, та же схема работает и с другими агентами. Статья [как пользоваться opencode](/ru/blog/how-to-use-opencode/ "Как пользоваться opencode") показывает эту сторону на примере агента, не привязанного к провайдеру. [Скачайте AgentVera](/ru/download/ "Скачать AgentVera") и попробуйте.

## Подведём итог

Чтобы подключить Claude Code к GitHub Actions, выполните `/install-github-app`, слейте открытый командой PR и напишите `@claude` в issue. Для автоматических ревью добавьте workflow с плагином `code-review` и его строкой `--allowedTools`. Дальше держите всё в рамках: `--max-turns`, таймауты job, concurrency, права только на чтение, где это возможно, и секреты, которые никогда не попадают в файл workflow. Долгую, исследовательскую и зависящую от окружения работу оставьте локальной сессии, где вы можете за ней следить.

## Частые вопросы

**Claude Code GitHub Actions бесплатный?** Добавить сам action ничего не стоит, но каждый запуск расходует минуты GitHub Actions на вашем раннере и использование Claude. С API-ключом вы платите за токены; с CLAUDE_CODE_OAUTH_TOKEN из claude setup-token запуски идут в счёт подписки Pro, Max, Team или Enterprise.

**Почему ничего не происходит, когда я пишу @claude?** Проверьте, что в комментарии есть @claude как отдельное слово (а не /claude или @claude-bot), что у вас есть права на запись в репозиторий, что Claude GitHub App установлено в репозиторий, что файл workflow лежит в ветке по умолчанию и что секрет с API-ключом или OAuth-токеном существует.

**Может ли Claude проверять pull request автоматически?** Да. Workflow, который срабатывает на pull_request и в prompt запускает плагин code-review, проверяет каждый новый или обновлённый PR и оставляет комментарии в строках кода. Черновые, закрытые и тривиальные PR пропускаются. Anthropic также продаёт отдельный управляемый продукт Code Review, которому workflow не нужен.

**Что использовать: API-ключ или OAuth-токен?** Для личного репозитория подходит любой вариант. Для организации документация советует API-ключ из Claude Console, сохранённый как секрет организации, потому что OAuth-токен привязан к подписке одного человека и перестаёт работать, если этот человек уходит.

**Почему CI не запускается на коммитах, которые пушит Claude?** GitHub не запускает workflow для коммитов, сделанных со стандартным GITHUB_TOKEN. Уберите github_token: ${{ secrets.GITHUB_TOKEN }} из входных параметров action, чтобы он использовал Claude GitHub App, или передайте токен своего собственного GitHub App.

---

**Об AgentVera.** AgentVera — настольное приложение для macOS, Windows и Linux от Solviera Teknoloji. Оно запускает 18 ИИ-агентов для программирования (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) рядом, по проектам, в настоящих терминалах с собственными установками CLI и входами пользователя. В бесплатном тарифе количество агентов не ограничено. Скачать: https://agentvera.dev/ru/download/ · Цены: https://agentvera.dev/ru/pricing/
