Skip to main content
Claude Code для GitLab CI/CD в настоящее время находится в бета-версии. Функции и возможности могут развиваться по мере совершенствования опыта.Эта интеграция поддерживается GitLab. Для получения поддержки см. следующий вопрос GitLab.
Эта интеграция построена на основе Claude Code CLI и Agent SDK, обеспечивая программное использование Claude в ваших заданиях CI/CD и пользовательских рабочих процессах автоматизации.

Почему использовать Claude Code с GitLab?

  • Мгновенное создание MR: Опишите, что вам нужно, и Claude предложит полный MR с изменениями и объяснением
  • Автоматизированная реализация: Превратите проблемы в рабочий код с помощью одной команды или упоминания
  • Осведомленность о проекте: Claude следует вашим рекомендациям CLAUDE.md и существующим шаблонам кода
  • Простая настройка: Добавьте одно задание в .gitlab-ci.yml и замаскированную переменную CI/CD
  • Готово для предприятия: Выберите Claude API, Amazon Bedrock или Google Cloud’s Agent Platform для соответствия требованиям к месторасположению данных и закупкам
  • Безопасно по умолчанию: Работает на ваших GitLab runners с вашей защитой ветвей и утверждениями

Как это работает

Claude Code использует GitLab CI/CD для запуска задач AI в изолированных заданиях и фиксации результатов обратно через MR:
  1. Оркестровка, управляемая событиями: GitLab прослушивает выбранные вами триггеры (например, комментарий, упоминающий @claude в проблеме, MR или потоке рецензирования). Задание собирает контекст из потока и репозитория, создает подсказки из этого ввода и запускает Claude Code.
  2. Абстракция поставщика: Используйте поставщика, который подходит для вашей среды:
    • Claude API (SaaS)
    • Amazon Bedrock (доступ на основе IAM, опции между регионами)
    • Google Cloud’s Agent Platform (собственный GCP, Workload Identity Federation)
  3. Изолированное выполнение: Каждое взаимодействие выполняется в контейнере со строгими правилами сети и файловой системы. Claude Code обеспечивает разрешения с областью действия рабочего пространства для ограничения записей. Каждое изменение проходит через MR, чтобы рецензенты видели diff и применялись утверждения.
Выберите региональные конечные точки, чтобы снизить задержку и соответствовать требованиям суверенитета данных при использовании существующих облачных соглашений.

Что может делать Claude?

Claude Code обеспечивает мощные рабочие процессы CI/CD, которые преобразуют способ работы с кодом:
  • Создание и обновление MR из описаний проблем или комментариев
  • Анализ регрессий производительности и предложение оптимизаций
  • Прямая реализация функций в ветви, затем открытие MR
  • Исправление ошибок и регрессий, выявленных тестами или комментариями
  • Ответ на последующие комментарии для итерации по запрошенным изменениям

Настройка

Быстрая настройка

Самый быстрый способ начать работу — добавить минимальное задание в ваш .gitlab-ci.yml и установить ваш ключ API как замаскированную переменную.
  1. Добавьте замаскированную переменную CI/CD
    • Перейдите в SettingsCI/CDVariables
    • Добавьте ANTHROPIC_API_KEY (замаскирована, защищена по мере необходимости)
  2. Добавьте задание Claude в .gitlab-ci.yml
После добавления задания и переменной ANTHROPIC_API_KEY протестируйте, запустив задание вручную из CI/CDPipelines, или запустите его из MR, чтобы позволить Claude предложить обновления в ветви и открыть MR при необходимости.
Для запуска на Amazon Bedrock или Google Cloud’s Agent Platform вместо Claude API см. раздел Использование с Amazon Bedrock и Google Cloud ниже для настройки аутентификации и окружения.
Если вы предпочитаете более контролируемую настройку или вам нужны поставщики для предприятия:
  1. Настройте доступ поставщика:
    • Claude API: Создайте и сохраните ANTHROPIC_API_KEY как замаскированную переменную CI/CD
    • Amazon Bedrock: Настройте GitLabAWS OIDC и создайте роль IAM для Amazon Bedrock
    • Google Cloud’s Agent Platform: Настройте Workload Identity Federation для GitLabGCP
  2. Добавьте учетные данные проекта для операций GitLab API:
    • Используйте CI_JOB_TOKEN по умолчанию или создайте Project Access Token с областью api
    • Сохраните как GITLAB_ACCESS_TOKEN (замаскирована), если используете PAT
  3. Добавьте задание Claude в .gitlab-ci.yml (см. примеры ниже)
  4. (Опционально) Включите триггеры, управляемые упоминаниями:
    • Добавьте webhook проекта для “Comments (notes)” к вашему прослушивателю событий (если вы его используете)
    • Попросите прослушиватель вызвать API триггера конвейера с переменными, такими как AI_FLOW_INPUT и AI_FLOW_CONTEXT, когда комментарий содержит @claude

Примеры использования

Превратите проблемы в MR

В комментарии проблемы:
Claude анализирует проблему и кодовую базу, записывает изменения в ветви и открывает MR для рецензирования.

Получите помощь в реализации

В обсуждении MR:
Claude предлагает изменения, добавляет код с соответствующим кешированием и обновляет MR.

Быстро исправляйте ошибки

В комментарии проблемы или MR:
Claude находит ошибку, реализует исправление и обновляет ветвь или открывает новый MR.

Использование с Amazon Bedrock и Google Cloud

Для корпоративных сред вы можете запустить Claude Code полностью на вашей облачной инфраструктуре с тем же опытом разработчика.

Предварительные требования

Перед настройкой Claude Code с Amazon Bedrock вам потребуется:
  1. Учетная запись AWS с доступом Amazon Bedrock к желаемым моделям Claude
  2. GitLab, настроенный как поставщик идентификации OIDC в AWS IAM
  3. Роль IAM с разрешениями Amazon Bedrock и политикой доверия, ограниченной вашим проектом/ссылками GitLab
  4. Переменные GitLab CI/CD для предположения роли:
    • AWS_ROLE_TO_ASSUME (ARN роли)
    • AWS_REGION (регион Amazon Bedrock)

Инструкции по настройке

Настройте AWS, чтобы позволить заданиям GitLab CI предположить роль IAM через OIDC (без статических ключей).Требуемая настройка:
  1. Включите Amazon Bedrock и запросите доступ к целевым моделям Claude
  2. Создайте поставщика IAM OIDC для GitLab, если он еще не присутствует
  3. Создайте роль IAM, доверяющую поставщику GitLab OIDC, ограниченную вашим проектом и защищенными ссылками
  4. Прикрепите разрешения с наименьшими привилегиями для API вызова Amazon Bedrock
Требуемые значения для сохранения в переменных CI/CD:
  • AWS_ROLE_TO_ASSUME
  • AWS_REGION
Добавьте переменные в Settings → CI/CD → Variables:
Используйте пример задания Amazon Bedrock выше для обмена токена задания GitLab на временные учетные данные AWS во время выполнения.

Примеры конфигурации

Ниже приведены готовые к использованию фрагменты, которые вы можете адаптировать к вашему конвейеру.

Базовый .gitlab-ci.yml (Claude API)

Пример задания Amazon Bedrock (OIDC)

Предварительные требования:
  • Amazon Bedrock включен с доступом к выбранной модели Claude
  • GitLab OIDC настроен в AWS с ролью, которая доверяет вашему проекту GitLab и ссылкам
  • Роль IAM с разрешениями Amazon Bedrock (рекомендуется наименьшие привилегии)
Требуемые переменные CI/CD:
  • AWS_ROLE_TO_ASSUME: ARN роли IAM для доступа к Amazon Bedrock
  • AWS_REGION: Регион Amazon Bedrock (например, us-west-2)
Идентификаторы моделей для Amazon Bedrock включают префиксы, специфичные для региона (например, us.anthropic.claude-sonnet-4-6). Передайте желаемую модель через конфигурацию задания или подсказку, если ваш рабочий процесс это поддерживает.

Пример задания Agent Platform (Workload Identity Federation)

Предварительные требования:
  • API Agent Platform Google Cloud включен в вашем проекте GCP
  • Workload Identity Federation настроена для доверия GitLab OIDC
  • Учетная запись сервиса с разрешениями Agent Platform Google Cloud
Требуемые переменные CI/CD:
  • GCP_WORKLOAD_IDENTITY_PROVIDER: Полное имя ресурса поставщика
  • GCP_SERVICE_ACCOUNT: Адрес электронной почты учетной записи сервиса
  • CLOUD_ML_REGION: Регион Agent Platform Google Cloud (например, us-east5)
С Workload Identity Federation вам не нужно сохранять ключи учетной записи сервиса. Используйте условия доверия, специфичные для репозитория, и учетные записи сервиса с наименьшими привилегиями.

Лучшие практики

Конфигурация CLAUDE.md

Создайте файл CLAUDE.md в корне репозитория, чтобы определить стандарты кодирования, критерии рецензирования и правила, специфичные для проекта. Claude читает этот файл во время запусков и следует вашим соглашениям при предложении изменений.

Соображения безопасности

Никогда не фиксируйте ключи API или учетные данные облака в вашем репозитории. Всегда используйте переменные GitLab CI/CD:
  • Добавьте ANTHROPIC_API_KEY как замаскированную переменную (и защитите ее при необходимости)
  • Используйте OIDC, специфичный для поставщика, где возможно (без долгоживущих ключей)
  • Ограничьте разрешения задания и исходящий трафик сети
  • Рецензируйте MR Claude, как любого другого участника

Оптимизация производительности

  • Держите CLAUDE.md сосредоточенным и кратким
  • Предоставляйте четкие описания проблем/MR, чтобы снизить количество итераций
  • Настройте разумные тайм-ауты заданий, чтобы избежать неконтролируемых запусков
  • Кешируйте npm и установки пакетов на runners, где возможно

Затраты CI

При использовании Claude Code с GitLab CI/CD помните о связанных затратах:
  • Время GitLab Runner:
    • Claude работает на ваших GitLab runners и потребляет минуты вычислений
    • Подробности о выставлении счетов за runner см. в плане GitLab
  • Затраты на API:
    • Каждое взаимодействие Claude потребляет токены на основе размера подсказки и ответа
    • Использование токенов варьируется в зависимости от сложности задачи и размера кодовой базы
    • Подробности см. в ценообразовании Anthropic
  • Советы по оптимизации затрат:
    • Используйте конкретные команды @claude для снижения ненужных ходов
    • Установите соответствующие значения max_turns и тайм-аут задания
    • Ограничьте параллелизм для управления параллельными запусками

Безопасность и управление

  • Каждое задание выполняется в изолированном контейнере с ограниченным доступом в сеть
  • Изменения Claude проходят через MR, чтобы рецензенты видели каждый diff
  • Правила защиты ветвей и утверждения применяются к коду, созданному AI
  • Claude Code использует разрешения с областью действия рабочего пространства для ограничения записей
  • Затраты остаются под вашим контролем, потому что вы приносите свои собственные учетные данные поставщика

Устранение неполадок

Claude не отвечает на команды @claude

  • Убедитесь, что ваш конвейер запускается (вручную, событие MR или через прослушиватель событий/webhook примечания)
  • Убедитесь, что переменные CI/CD (ANTHROPIC_API_KEY или параметры облачного поставщика) присутствуют и не замаскированы
  • Проверьте, что комментарий содержит @claude (не /claude) и что ваш триггер упоминания настроен

Задание не может писать комментарии или открывать MR

  • Убедитесь, что CI_JOB_TOKEN имеет достаточные разрешения для проекта, или используйте Project Access Token с областью api
  • Проверьте, что инструмент mcp__gitlab включен в --allowedTools
  • Подтвердите, что задание выполняется в контексте MR или имеет достаточный контекст через переменные AI_FLOW_*

Ошибки аутентификации

  • Для Claude API: Подтвердите, что ANTHROPIC_API_KEY действителен и не истек
  • Для Amazon Bedrock или Google Cloud’s Agent Platform: Проверьте конфигурацию OIDC/WIF, олицетворение роли и имена секретов; подтвердите доступность региона и модели

Расширенная конфигурация

Общие параметры и переменные

Claude Code поддерживает эти часто используемые входные данные:
  • prompt / prompt_file: Предоставьте инструкции встроенно (-p) или через файл
  • max_turns: Ограничьте количество взаимных итераций
  • timeout_minutes: Ограничьте общее время выполнения
  • ANTHROPIC_API_KEY: Требуется для Claude API (не используется для Amazon Bedrock или Google Cloud’s Agent Platform)
  • Окружение, специфичное для поставщика: AWS_REGION, переменные проекта/региона для Google Cloud’s Agent Platform
Точные флаги и параметры могут варьироваться в зависимости от версии @anthropic-ai/claude-code. Запустите claude --help в вашем задании, чтобы увидеть поддерживаемые опции.

Настройка поведения Claude

Вы можете направлять Claude двумя основными способами:
  1. CLAUDE.md: Определите стандарты кодирования, требования безопасности и соглашения проекта. Claude читает это во время запусков и следует вашим правилам.
  2. Пользовательские подсказки: Передайте инструкции, специфичные для задачи, через prompt/prompt_file в задании. Используйте разные подсказки для разных заданий (например, рецензирование, реализация, рефакторинг).