OpenCode GitLab

OpenCode также можно интегрировать в рабочие процессы GitLab, автоматически выполняя задачи в Issues, Merge Requests и конвейерах CI/CD.

Его ключевая особенность — работа на вашем GitLab Runner, что обеспечивает безопасную и контролируемую автоматизированную разработку с помощью ИИ.

OpenCode GitLab = Интеграция ИИ в CI/CD, автоматизация анализа кода, исправлений и ревью.


1. Обзор способов интеграции

В GitLab есть два основных способа использования OpenCode:

  • GitLab CI (рекомендуется): выполнение OpenCode через конвейеры CI/CD
  • GitLab Duo (запуск по комментарию): запуск через @opencode в комментариях

2. Интеграция с GitLab CI (основной способ)

OpenCode можно интегрировать в ваш конвейер как CI-компонент для автоматизации выполнения задач.

Здесь мы используем компонент сообщества:

nagyv/gitlab-opencode

1. Возможности

  • Пользовательская конфигурация для каждой задачи: поддерживает независимые каталоги конфигурации
  • Минимальные затраты на интеграцию: не требуется сложная инициализация
  • Высокая настраиваемость: поддерживает многопараметрическое управление поведением

2. Шаги настройки

① Настройте данные аутентификации

В вашем проекте GitLab:

  • Перейдите в Настройки → CI/CD → Переменные
  • Добавьте переменные:
OPENCODE_AUTH_JSON

Требования:

  • Тип: Файл
  • Установите флажки Masked и Hidden

② Настройте конвейер

Создайте или измените в корне проекта:

.gitlab-ci.yml

Пример:

include:
  - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2
    inputs:
      config_dir: ${CI_PROJECT_DIR}/opencode-config
      auth_json: $OPENCODE_AUTH_JSON
      command: optional-custom-command
      message: "Explain the codebase structure"

③ Описание параметров

Параметр Описание
config_dir Каталог конфигурации OpenCode
auth_json Информация для аутентификации (API Key)
command Команда выполнения (необязательно)
message Промпт

3. Сценарии использования

  • Автоматически анализировать структуру кода
  • Пакетный рефакторинг кода
  • Автоматически генерировать документацию
  • Автоматически проверять качество кода на этапах CI

3. Интеграция с GitLab Duo (запускается комментарием)

Подобно /opencode в GitHub, GitLab использует@opencodeдля запуска.

Когда вы комментируете задачу или запрос на слияние:

@opencode your prompt

OpenCode будет автоматически выполнять задачи в GitLab CI

1. Возможности

  • Анализ задач: Автоматическое понимание задач
  • Автоматические исправления: Создать ветку и отправить MR
  • Ревью кода: Анализ запросов на слияние

Возможности:

  • Работает на GitLab Runner
  • Безопасно, не зависит от внешних сред выполнения

2. Шаги настройки

Чтобы использовать @opencode, необходимо выполнить следующую настройку:

  • Настроить конвейер GitLab CI/CD
  • Подготовить API-ключ
  • Создать сервисную учетную запись
  • Настроить переменные CI/CD
  • Создать файл конфигурации Flow

Примечание:

Для получения конкретных сведений обратитесь к официальной документации GitLab CLI Agents (может немного отличаться в зависимости от версии).


4. Обычное использование

1. Объяснение задач

@opencode explain this issue

Автоматически обобщать задачи и предоставлять объяснения

2. Автоматическое исправление задач

@opencode fix this

Автоматически:

  • Создать новую ветку
  • Измените код
  • Отправить запрос на слияние

3. Проверка запросов на слияние

@opencode review this merge request

Автоматический анализ:

  • Качество кода
  • Потенциальные ошибки
  • Рекомендации по оптимизации

5. Продвинутые советы

1. Пользовательские триггерные слова

Вы можете@opencodeзамените его другими триггерными ключевыми словами.

2. Конфигурация на уровне задачи

Используя разные config_dir, можно получить:

  • Разные модели для разных задач
  • Разные правила для разных проектов

3. Интеграция с автоматизацией CI

Вы можете получить:

  • Плановое сканирование проблем в коде
  • Автоматическое формирование еженедельного отчёта
  • Автоматическое исправление простых ошибок

6. Безопасность и лучшие практики

  • Используйте переменные CI/CD для хранения секретов
  • Избегайте жёсткого кодирования API-ключей в коде
  • Разумно управляйте правами Runner
  • Ограничивайте область автоматических изменений кода
Другие расширения