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?

В конвейере GitLab Claude Code может:
  • Создавать и обновлять 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 см. раздел Using with Amazon Bedrock and Google Cloud ниже для аутентификации и настройки окружения.
Если вы предпочитаете более контролируемую настройку или вам нужны поставщики услуг для предприятий:
  1. Настройте доступ к поставщику услуг:
    • Claude API: Создайте и сохраните ANTHROPIC_API_KEY как замаскированную переменную CI/CD
    • Amazon Bedrock: Configure GitLabAWS OIDC и создайте роль IAM для Amazon Bedrock
    • Google Cloud’s Agent Platform: Configure Workload Identity Federation for GitLabGCP
  2. Добавьте учетные данные проекта для операций GitLab API:
    • Используйте CI_JOB_TOKEN по умолчанию или создайте Project Access Token с областью api
    • Сохраните как GITLAB_ACCESS_TOKEN (замаскирована), если используете PAT
  3. Добавьте задание Claude в .gitlab-ci.yml: используйте задание Quick setup для Claude API или задание поставщика услуг из Configuration examples
  4. (Опционально) Включите триггеры, управляемые упоминаниями:
    • Добавьте webhook проекта для “Comments (notes)” к вашему обработчику событий (если вы его используете)
    • Пусть обработчик вызывает API триггера pipeline с переменными, такими как 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. Создайте поставщика OIDC IAM для GitLab, если он еще не существует
  3. Создайте роль IAM, доверяющую поставщику OIDC GitLab, ограниченную вашим проектом и защищенными ссылками
  4. Присоедините разрешения с минимальными привилегиями для API вызова Amazon Bedrock
Используйте пример задания Amazon Bedrock для обмена токена OIDC задания на временные учетные данные AWS во время выполнения.

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

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

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

Предварительные требования:
  • Amazon Bedrock включен с доступом к выбранной модели Claude
  • GitLab OIDC настроен в AWS с ролью, которая доверяет вашему проекту GitLab и refs
  • Роль IAM с разрешениями Amazon Bedrock (рекомендуется принцип наименьших привилегий)
Требуемые переменные CI/CD:
  • AWS_ROLE_TO_ASSUME: ARN роли IAM для доступа к Amazon Bedrock
  • AWS_REGION: регион Amazon Bedrock (например, us-west-2)
GitLab создает токен OIDC задания из блока 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
Требуемые переменные CI/CD:
  • GCP_WORKLOAD_IDENTITY_PROVIDER: имя ресурса поставщика без префикса //iam.googleapis.com/, например projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider
  • GCP_SERVICE_ACCOUNT: адрес электронной почты учетной записи сервиса
  • GCP_PROJECT_ID: идентификатор проекта Google Cloud
  • CLOUD_ML_REGION: регион Google Cloud Agent Platform (например, us-east5)
GitLab создает токен OIDC задания из блока 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: 30m
  • 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. Пользовательские подсказки: передайте инструкции, специфичные для задачи, через -p в задании. Используйте разные подсказки для разных заданий (например, review, implement, refactor).