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, AWS Bedrock или Google Vertex AI для соответствия требованиям к месторасположению данных и закупкам
- Безопасно по умолчанию: Работает на ваших GitLab runners с вашей защитой ветвей и утверждениями
Как это работает
Claude Code использует GitLab CI/CD для запуска задач AI в изолированных заданиях и фиксации результатов обратно через MR:-
Оркестровка, управляемая событиями: GitLab прослушивает выбранные вами триггеры (например, комментарий, упоминающий
@claudeв проблеме, MR или потоке рецензирования). Задание собирает контекст из потока и репозитория, создает подсказки из этого ввода и запускает Claude Code. -
Абстракция поставщика: Используйте поставщика, который подходит для вашей среды:
- Claude API (SaaS)
- AWS Bedrock (доступ на основе IAM, опции между регионами)
- Google Vertex AI (собственный GCP, Workload Identity Federation)
- Изолированное выполнение: Каждое взаимодействие выполняется в контейнере со строгими правилами сети и файловой системы. Claude Code обеспечивает разрешения с областью действия рабочего пространства для ограничения записей. Каждое изменение проходит через MR, чтобы рецензенты видели diff и применялись утверждения.
Что может делать Claude?
Claude Code обеспечивает мощные рабочие процессы CI/CD, которые преобразуют способ работы с кодом:- Создание и обновление MR из описаний проблем или комментариев
- Анализ регрессий производительности и предложение оптимизаций
- Прямая реализация функций в ветви, затем открытие MR
- Исправление ошибок и регрессий, выявленных тестами или комментариями
- Ответ на последующие комментарии для итерации по запрошенным изменениям
Настройка
Быстрая настройка
Самый быстрый способ начать работу — добавить минимальное задание в ваш.gitlab-ci.yml и установить ваш ключ API как замаскированную переменную.
-
Добавьте замаскированную переменную CI/CD
- Перейдите в Settings → CI/CD → Variables
- Добавьте
ANTHROPIC_API_KEY(замаскирована, защищена по мере необходимости)
-
Добавьте задание Claude в
.gitlab-ci.yml
ANTHROPIC_API_KEY протестируйте, запустив задание вручную из CI/CD → Pipelines, или запустите его из MR, чтобы позволить Claude предложить обновления в ветви и открыть MR при необходимости.
Для запуска на AWS Bedrock или Google Vertex AI вместо Claude API см. раздел Использование с AWS Bedrock и Google Vertex AI ниже для настройки аутентификации и окружения.
Ручная настройка (рекомендуется для производства)
Если вы предпочитаете более контролируемую настройку или вам нужны поставщики для предприятия:-
Настройте доступ поставщика:
- Claude API: Создайте и сохраните
ANTHROPIC_API_KEYкак замаскированную переменную CI/CD - AWS Bedrock: Настройте GitLab → AWS OIDC и создайте роль IAM для Bedrock
- Google Vertex AI: Настройте Workload Identity Federation для GitLab → GCP
- Claude API: Создайте и сохраните
-
Добавьте учетные данные проекта для операций GitLab API:
- Используйте
CI_JOB_TOKENпо умолчанию или создайте Project Access Token с областьюapi - Сохраните как
GITLAB_ACCESS_TOKEN(замаскирована), если используете PAT
- Используйте
-
Добавьте задание Claude в
.gitlab-ci.yml(см. примеры ниже) -
(Опционально) Включите триггеры, управляемые упоминаниями:
- Добавьте webhook проекта для “Comments (notes)” к вашему прослушивателю событий (если вы его используете)
- Попросите прослушиватель вызвать API триггера конвейера с переменными, такими как
AI_FLOW_INPUTиAI_FLOW_CONTEXT, когда комментарий содержит@claude
Примеры использования
Превратите проблемы в MR
В комментарии проблемы:Получите помощь в реализации
В обсуждении MR:Быстро исправляйте ошибки
В комментарии проблемы или MR:Использование с AWS Bedrock и Google Vertex AI
Для корпоративных сред вы можете запустить Claude Code полностью на вашей облачной инфраструктуре с тем же опытом разработчика.- AWS Bedrock
- Google Vertex AI
Предварительные требования
Перед настройкой Claude Code с AWS Bedrock вам потребуется:- Учетная запись AWS с доступом Amazon Bedrock к желаемым моделям Claude
- GitLab, настроенный как поставщик идентификации OIDC в AWS IAM
- Роль IAM с разрешениями Bedrock и политикой доверия, ограниченной вашим проектом/ссылками GitLab
- Переменные GitLab CI/CD для предположения роли:
AWS_ROLE_TO_ASSUME(ARN роли)AWS_REGION(регион Bedrock)
Инструкции по настройке
Настройте AWS, чтобы позволить заданиям GitLab CI предположить роль IAM через OIDC (без статических ключей).Требуемая настройка:- Включите Amazon Bedrock и запросите доступ к целевым моделям Claude
- Создайте поставщика IAM OIDC для GitLab, если он еще не присутствует
- Создайте роль IAM, доверяющую поставщику GitLab OIDC, ограниченную вашим проектом и защищенными ссылками
- Прикрепите разрешения с наименьшими привилегиями для API вызова Bedrock
AWS_ROLE_TO_ASSUMEAWS_REGION
Примеры конфигурации
Ниже приведены готовые к использованию фрагменты, которые вы можете адаптировать к вашему конвейеру.Базовый .gitlab-ci.yml (Claude API)
Пример задания AWS Bedrock (OIDC)
Предварительные требования:- Amazon Bedrock включен с доступом к выбранной модели Claude
- GitLab OIDC настроен в AWS с ролью, которая доверяет вашему проекту GitLab и ссылкам
- Роль IAM с разрешениями Bedrock (рекомендуется наименьшие привилегии)
AWS_ROLE_TO_ASSUME: ARN роли IAM для доступа к BedrockAWS_REGION: Регион Bedrock (например,us-west-2)
Идентификаторы моделей для Bedrock включают префиксы, специфичные для региона (например,
us.anthropic.claude-sonnet-4-6). Передайте желаемую модель через конфигурацию задания или подсказку, если ваш рабочий процесс это поддерживает.Пример задания Google Vertex AI (Workload Identity Federation)
Предварительные требования:- API Vertex AI включен в вашем проекте GCP
- Workload Identity Federation настроена для доверия GitLab OIDC
- Учетная запись сервиса с разрешениями Vertex AI
GCP_WORKLOAD_IDENTITY_PROVIDER: Полное имя ресурса поставщикаGCP_SERVICE_ACCOUNT: Адрес электронной почты учетной записи сервисаCLOUD_ML_REGION: Регион Vertex (например,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действителен и не истек - Для Bedrock/Vertex: Проверьте конфигурацию OIDC/WIF, олицетворение роли и имена секретов; подтвердите доступность региона и модели
Расширенная конфигурация
Общие параметры и переменные
Claude Code поддерживает эти часто используемые входные данные:prompt/prompt_file: Предоставьте инструкции встроенно (-p) или через файлmax_turns: Ограничьте количество взаимных итерацийtimeout_minutes: Ограничьте общее время выполненияANTHROPIC_API_KEY: Требуется для Claude API (не используется для Bedrock/Vertex)- Окружение, специфичное для поставщика:
AWS_REGION, переменные проекта/региона для Vertex
Точные флаги и параметры могут варьироваться в зависимости от версии
@anthropic-ai/claude-code. Запустите claude --help в вашем задании, чтобы увидеть поддерживаемые опции.Настройка поведения Claude
Вы можете направлять Claude двумя основными способами:- CLAUDE.md: Определите стандарты кодирования, требования безопасности и соглашения проекта. Claude читает это во время запусков и следует вашим правилам.
- Пользовательские подсказки: Передайте инструкции, специфичные для задачи, через
prompt/prompt_fileв задании. Используйте разные подсказки для разных заданий (например, рецензирование, реализация, рефакторинг).