Перейти к содержанию

CI/CD компонент BeeCR (для GitLab 17+)

⚠️ Примечание: Данный раздел описывает настройку проверки кода в проекте на GitLab через использование компонента GitLab CI/CD (поддерживается GitLab-ом начиная с версии 17). Если вы хотите настроить проверку кода с помощью шаблонов (поддерживается и в более старых версиях GitLab), обратитесь к документу "CI/CD шаблон BeeCR". Если же вы предпочитаете вовсе не использовать CI/CD, то обратитесь к альтернативному методу интеграции через "Webhook".

🚀 Краткая инструкция

  1. Определите следующие переменные CI/CD в вашем проекте (или группе проектов):
    • BEECR_API_KEY – API-ключ, предоставленный вам командой BeeCR (необходим только при использовании BeeCR SaaS).
    • BEECR_GITLAB_TOKEN – токен доступа к GitLab, который вы должны выпустить для проекта или группы проектов). Токен должен иметь права как минимум уровня "Developer" и предоставлять доступ к "api".

      💡 Совет: Мы рекомендуем присвоить токену осмысленное имя, например, BeeCR Code Reviewer, поскольку комментарии к коду будут написаны ботом, представляющимся этим именем.

  2. В настройках вашего проекта убедитесь, что CI/CD включен и доступен хотя бы один сервер запуска задач (GitLab runner).
  3. Создайте (или измените, если уже существует) конфигурационный файл .gitlab-ci.yml в корне вашего репозитория. Добавьте этап проверки кода в список CI/CD этапов (stages). Подключите CI/CD компонент BeeCR с помощью ключевого слова include.
    stages:
      - review
    
    include:
      - component: gitlab.com/cvisionlab/beecr/beecr@1.4.2
    

📄 Особенности

  1. Задача запускается только для запросов на слияние кода (Merge Request).
  2. Результаты проверки добавляются в виде комментариев к файлам.
  3. Задача проверки кода не запускается, если сообщение в коммите содержит одну из следующих конструкций:
    [no_review], [skip_review], [no review], [skip review], [no-review], [skip-review], [mute], :no_review:, :skip_review:, :no review:, :skip review:, :no-review:, :skip-review:, :mute:

🛠 Настройка

Параметры доступа

Параметры доступа (к BeeCR из GitLab и к GitLab из BeeCR) могут быть настроены с помощью переменных среды. Следующие переменные должны быть определены:

  • BEECR_API_KEY – API-ключ, предоставленный вам командой BeeCR (необходим только при использовании BeeCR SaaS).
  • BEECR_GITLAB_TOKEN – токен доступа к GitLab, который вы должны выпустить для проекта или группы проектов). Токен должен иметь права как минимум уровня "Developer" и предоставлять доступ к "api".

💡 Совет: GitLab предоставляет два альтернативных способа установки переменных:

Мы рекомендуем устанавливать переменные, содержащие конфиденциальную информацию (API-ключи, токены и т. д.) через настройки GitLab и включать для них режим "маскирования", чтобы предотвратить утечку.

Прочие настройки

Список параметров CI/CD компонента:

  • url – определяет URL API сервера BeeCR.
    Значение по умолчанию: https://beecr.io/api/v1.
  • stage – определяет этап CI/CD пайплайна, на котором будет выполнена задача.
    Значение по умолчанию: review.
  • when – определяет, будет ли задача выполнена вручную или автоматически.
    Используйте manual, чтобы запуск задачи проверки кода выполнялся вручную.
    Значение по умолчанию: always.
  • target – задаёт регулярное выражение, которое определяет файлы, подлежащие проверке.
    Значение по умолчанию: \.(py|c|h|cpp|hpp|cs|java|kt|swift|php|go|sh|(j|t)sx?)$. Данное регулярное выражение позволяет проводить проверку для файлов на следующих языках:
    • Python
    • C/C++
    • C#
    • Java
    • Kotlin
    • Swift
    • PHP
    • Go
    • Bash/Shell
    • JavaScript/Typescript
  • target-extra – позволяет задать дополнительное регулярное выражение. Полезно, например, в тех случаях, когда вы не хотите переопределять target, а лишь "дополнить" его.
    Значение по умолчанию: пустая строка.
  • target-exclude – позволяет задать регулярное выражение для исключения файлов из проверки (даже если они соответствуют target или target-extra). Полезно, например, если вы не хотите переопределять target.
    Значение по умолчанию: пустая строка.
  • language – определяет язык проверки.
    Значение по умолчанию: English.
    Мы рекомендуем использовать английский язык, так как в этому случае комментарии от ИИ модели наиболее полные и качественные для всех протестированных моделей.

Пример настройки:

stages:
  - review

include:
  - component: gitlab.com/cvisionlab/beecr/beecr@1.4.2
    inputs:
      target-extra: '\.json$'

▶️ Ручное выполнение

По тем или иным причинам вы можете захотеть контролировать выполнение задачи проверки кода вручную. Для этих целей просто установите значение manual для параметра when:

stages:
  - review

include:
  - component: gitlab.com/cvisionlab/beecr/beecr@1.4.2
    inputs:
      when: manual

📌 Закрепление версии компонента

Во всех приведенных выше примерах ссылка на CI/CD компонент содержит явное указание его версии. Если вы хотите всегда ссылаться на последнюю актуальную версию, просто используйте main в URL-адресе компонента вместо конкретного тега версии. Пример:

stages:
  - review

include:
  - component: gitlab.com/cvisionlab/beecr/beecr@main