Claude Code для GitLab CI/CD в настоящее время находится в бета-версии. Функции и функциональность могут развиваться по мере совершенствования опыта.Эта интеграция поддерживается GitLab. Для получения поддержки см. следующий проблему GitLab.
Эта интеграция построена на основе Claude Code CLI и 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 для запуска задач ИИ в изолированных заданиях и фиксации результатов обратно через MR:-
Оркестровка, управляемая событиями: GitLab прослушивает выбранные вами триггеры (например, комментарий, упоминающий
@claudeв проблеме, MR или потоке рецензирования). Задание собирает контекст из потока и репозитория, создает подсказки из этого ввода и запускает Claude Code. -
Абстракция поставщика: Используйте поставщика, который подходит для вашей среды:
- Claude API (SaaS)
- AWS Bedrock (доступ на основе IAM, опции между регионами)
- Google Vertex AI (собственный GCP, Федерация удостоверений рабочей нагрузки)
- Изолированное выполнение: Каждое взаимодействие выполняется в контейнере со строгими правилами сети и файловой системы. Claude Code обеспечивает разрешения с областью действия рабочего пространства для ограничения записей. Каждое изменение проходит через MR, чтобы рецензенты видели diff и применялись одобрения.
Что может делать Claude?
Claude Code обеспечивает мощные рабочие процессы CI/CD, которые трансформируют способ работы с кодом:- Создавать и обновлять MR из описаний проблем или комментариев
- Анализировать регрессии производительности и предлагать оптимизации
- Реализовывать функции непосредственно в ветви, затем открывать MR
- Исправлять ошибки и регрессии, выявленные тестами или комментариями
- Отвечать на последующие комментарии для итерации по запрошенным изменениям
Настройка
Быстрая настройка
Самый быстрый способ начать работу — добавить минимальное задание в ваш.gitlab-ci.yml и установить ваш ключ API как замаскированную переменную.
-
Добавьте замаскированную переменную CI/CD
- Перейдите в Параметры → CI/CD → Переменные
- Добавьте
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: Настройте Федерацию удостоверений рабочей нагрузки для GitLab → GCP
- Claude API: Создайте и сохраните
-
Добавьте учетные данные проекта для операций GitLab API:
- Используйте
CI_JOB_TOKENпо умолчанию или создайте Project Access Token с областьюapi - Сохраните как
GITLAB_ACCESS_TOKEN(замаскирована), если используете PAT
- Используйте
-
Добавьте задание Claude в
.gitlab-ci.yml(см. примеры ниже) -
(Опционально) Включите триггеры, управляемые упоминаниями:
- Добавьте вебхук проекта для “Comments (notes)” к вашему прослушивателю событий (если вы его используете)
- Попросите прослушиватель вызвать API триггера конвейера с переменными, такими как
AI_FLOW_INPUTиAI_FLOW_CONTEXT, когда комментарий содержит@claude
Примеры использования
Превратите проблемы в MR
В комментарии проблемы:Получите помощь в реализации
В обсуждении MR:Быстро исправляйте ошибки
В комментарии проблемы или MR:Использование с AWS Bedrock и Google Vertex AI
Для корпоративных сред вы можете запустить Claude Code полностью на вашей облачной инфраструктуре с тем же опытом разработчика.Предварительные требования
Перед настройкой 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-5-20250929-v1:0). Передайте желаемую модель через конфигурацию задания или подсказку, если ваш рабочий процесс это поддерживает.Пример задания Google Vertex AI (Федерация удостоверений рабочей нагрузки)
Предварительные требования:- API Vertex AI включен в вашем проекте GCP
- Федерация удостоверений рабочей нагрузки настроена для доверия GitLab OIDC
- Учетная запись службы с разрешениями Vertex AI
GCP_WORKLOAD_IDENTITY_PROVIDER: Полное имя ресурса поставщикаGCP_SERVICE_ACCOUNT: Адрес электронной почты учетной записи службыCLOUD_ML_REGION: Регион Vertex (например,us-east5)
С Федерацией удостоверений рабочей нагрузки вам не нужно сохранять ключи учетной записи службы. Используйте условия доверия, специфичные для репозитория, и учетные записи службы с наименьшими привилегиями.
Лучшие практики
Конфигурация 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 и потребляет минуты вычислений
- См. детали биллинга runners вашего плана GitLab
-
Затраты на API:
- Каждое взаимодействие Claude потребляет токены на основе размера подсказки и ответа
- Использование токенов варьируется в зависимости от сложности задачи и размера кодовой базы
- См. Ценообразование Anthropic для деталей
-
Советы по оптимизации затрат:
- Используйте конкретные команды
@claudeдля сокращения ненужных ходов - Установите соответствующие значения
max_turnsи тайм-аут задания - Ограничьте параллелизм для контроля параллельных запусков
- Используйте конкретные команды
Безопасность и управление
- Каждое задание выполняется в изолированном контейнере с ограниченным доступом в сеть
- Изменения Claude проходят через MR, чтобы рецензенты видели каждый diff
- Защита ветвей и правила одобрения применяются к коду, созданному ИИ
- Claude Code использует разрешения с областью действия рабочего пространства для ограничения записей
- Затраты остаются под вашим контролем, потому что вы приносите свои собственные учетные данные поставщика
Устранение неполадок
Claude не отвечает на команды @claude
- Проверьте, что ваш конвейер запускается (вручную, событие MR или через прослушиватель событий/вебхук примечания)
- Убедитесь, что переменные 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в задании. Используйте разные подсказки для разных заданий (например, рецензирование, реализация, рефакторинг).