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:-
Оркестровка, управляемая событиями: GitLab прослушивает выбранные вами триггеры (например, комментарий, упоминающий
@claudeв проблеме, MR или потоке рецензирования). Задание собирает контекст из потока и репозитория, создает подсказки из этого ввода и запускает Claude Code. -
Абстракция поставщика: Используйте поставщика, который подходит для вашей среды:
- Claude API (SaaS)
- Amazon Bedrock (доступ на основе IAM, опции между регионами)
- Google Cloud’s Agent Platform (собственный GCP, Workload Identity Federation)
- Изолированное выполнение: Каждое взаимодействие выполняется в контейнере со строгими правилами сети и файловой системы. Claude Code обеспечивает разрешения с областью действия рабочего пространства для ограничения записей. Каждое изменение проходит через MR, чтобы рецензенты видели diff и применялись утверждения.
Что может делать Claude?
В конвейере GitLab Claude Code может:- Создавать и обновлять 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 при необходимости.
Для запуска на Amazon Bedrock или Google Cloud’s Agent Platform вместо Claude API см. раздел Using with Amazon Bedrock and Google Cloud ниже для аутентификации и настройки окружения.
Ручная настройка (рекомендуется для production)
Если вы предпочитаете более контролируемую настройку или вам нужны поставщики услуг для предприятий:-
Настройте доступ к поставщику услуг:
- Claude API: Создайте и сохраните
ANTHROPIC_API_KEYкак замаскированную переменную CI/CD - Amazon Bedrock: Configure GitLab → AWS OIDC и создайте роль IAM для Amazon Bedrock
- Google Cloud’s Agent Platform: Configure Workload Identity Federation for GitLab → GCP
- Claude API: Создайте и сохраните
-
Добавьте учетные данные проекта для операций GitLab API:
- Используйте
CI_JOB_TOKENпо умолчанию или создайте Project Access Token с областьюapi - Сохраните как
GITLAB_ACCESS_TOKEN(замаскирована), если используете PAT
- Используйте
-
Добавьте задание Claude в
.gitlab-ci.yml: используйте задание Quick setup для Claude API или задание поставщика услуг из Configuration examples -
(Опционально) Включите триггеры, управляемые упоминаниями:
- Добавьте webhook проекта для “Comments (notes)” к вашему обработчику событий (если вы его используете)
- Пусть обработчик вызывает API триггера pipeline с переменными, такими как
AI_FLOW_INPUTиAI_FLOW_CONTEXT, когда комментарий содержит@claude
Примеры использования
Преобразование проблем в MR
В комментарии к проблеме:Получение помощи с реализацией
В обсуждении MR:Быстрое исправление ошибок
В комментарии к проблеме или MR:Использование с Amazon Bedrock и Google Cloud
Для корпоративных сред вы можете запустить Claude Code полностью на инфраструктуре вашего облака с тем же опытом разработчика.- Amazon Bedrock
- Google Cloud's Agent Platform
Предварительные требования
Перед настройкой Claude Code с Amazon Bedrock вам потребуется:- Учетная запись AWS с доступом к Amazon Bedrock для нужных моделей Claude
- GitLab, настроенный как поставщик идентификации OIDC в AWS IAM
- Роль IAM с разрешениями Amazon Bedrock и политикой доверия, ограниченной вашим проектом/ссылками GitLab
- Переменные GitLab CI/CD для предположения роли:
AWS_ROLE_TO_ASSUME(ARN роли)AWS_REGION(регион Amazon Bedrock)
Инструкции по настройке
Настройте AWS, чтобы разрешить заданиям GitLab CI предполагать роль IAM через OIDC (без статических ключей).Требуемая настройка:- Включите Amazon Bedrock и запросите доступ к целевым моделям Claude
- Создайте поставщика OIDC IAM для GitLab, если он еще не существует
- Создайте роль IAM, доверяющую поставщику OIDC GitLab, ограниченную вашим проектом и защищенными ссылками
- Присоедините разрешения с минимальными привилегиями для API вызова Amazon Bedrock
Примеры конфигурации
Ниже приведены готовые к использованию фрагменты кода, которые вы можете адаптировать для своего конвейера.Пример задания Amazon Bedrock (OIDC)
Предварительные требования:- Amazon Bedrock включен с доступом к выбранной модели Claude
- GitLab OIDC настроен в AWS с ролью, которая доверяет вашему проекту GitLab и refs
- Роль IAM с разрешениями Amazon Bedrock (рекомендуется принцип наименьших привилегий)
AWS_ROLE_TO_ASSUME: ARN роли IAM для доступа к Amazon BedrockAWS_REGION: регион Amazon Bedrock (например,us-west-2)
id_tokens: и предоставляет его как GITLAB_OIDC_TOKEN. Установите aud на значение аудитории, которое вы настроили на поставщике идентификации OIDC IAM в AWS, например URL вашего экземпляра GitLab.
Идентификаторы моделей для Amazon Bedrock включают префиксы, специфичные для региона (например,
us.anthropic.claude-sonnet-4-6). Передайте желаемую модель через конфигурацию задания или подсказку, если ваш рабочий процесс это поддерживает.Пример задания Agent Platform (Workload Identity Federation)
Предварительные требования:- API Agent Platform Google Cloud включен в вашем проекте GCP
- Workload Identity Federation настроена для доверия GitLab OIDC
- Учетная запись сервиса с разрешениями Google Cloud Agent Platform
GCP_WORKLOAD_IDENTITY_PROVIDER: имя ресурса поставщика без префикса//iam.googleapis.com/, напримерprojects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-providerGCP_SERVICE_ACCOUNT: адрес электронной почты учетной записи сервисаGCP_PROJECT_ID: идентификатор проекта Google CloudCLOUD_ML_REGION: регион Google Cloud Agent Platform (например,us-east5)
id_tokens: и предоставляет его как GITLAB_OIDC_TOKEN. Установите aud на значение аудитории, которое вы настроили на поставщике Workload Identity Pool, например URL вашего экземпляра GitLab. Задание записывает токен в файл, и запись credential_source конфигурации учетных данных указывает библиотекам аутентификации Google читать его оттуда. Установка GOOGLE_APPLICATION_CREDENTIALS на файл конфигурации учетных данных делает его доступным для Claude Code через Application Default Credentials.
С 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иtimeoutзадания - Ограничьте параллелизм для контроля параллельных запусков
- Используйте специфичные команды
Troubleshooting
Claude не отвечает на команды @claude
- Убедитесь, что ваш pipeline запускается (вручную, событием MR или через слушатель событий note/webhook)
- Убедитесь, что переменные
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 или Agent Platform Google Cloud: Проверьте конфигурацию OIDC/WIF, олицетворение роли и имена секретов; подтвердите доступность региона и модели
Расширенная конфигурация
Общие параметры и переменные
Управляйте запусками Claude Code в ваших заданиях с помощью этих флагов CLI, ключевых слов GitLab и переменных:-p: предоставьте инструкции встроенным образом, напримерclaude -p "Review this MR"--max-turns: ограничьте количество итераций туда и обратноtimeout: ограничьте общее время выполнения задания с помощью ключевого словаtimeoutна уровне задания GitLab, напримерtimeout: 30mANTHROPIC_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 двумя основными способами:- CLAUDE.md: определите стандарты кодирования, требования безопасности и соглашения проекта. Claude читает это во время запусков и следует вашим правилам.
- Пользовательские подсказки: передайте инструкции, специфичные для задачи, через
-pв задании. Используйте разные подсказки для разных заданий (например, review, implement, refactor).