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

CI/CD шаблон BeeCR (для более старых версий GitLab)

⚠️ Примечание: Данный раздел описывает настройку проверки кода в проекте на GitLab через использование шаблона GitLab CI/CD. Если вы хотите настроить проверку кода с помощью компонента GitLab CI/CD (поддерживается в GitLab 17), обратитесь к документу "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:
      - remote: 'https://gitlab.com/cvisionlab/beecr/-/raw/1.4.2/templates/beecr/template-always.yml'
    

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

  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 шаблона, также определяемых через переменные:

  • BEECR_URL – определяет URL API сервера BeeCR.
    Значение по умолчанию: https://beecr.io/api/v1.
  • BEECR_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
  • BEECR_TARGET_EXTRA – позволяет задать дополнительное регулярное выражение. Полезно, например, в тех случаях, когда вы не хотите переопределять BEECR_TARGET, а лишь "дополнить" его.
    Значение по умолчанию: пустая строка.
  • BEECR_TARGET_EXCLUDE – позволяет задать регулярное выражение для исключения файлов из проверки (даже если они соответствуют BEECR_TARGET или BEECR_TARGET_EXTRA). Полезно, например, если вы не хотите переопределять BEECR_TARGET.
    Значение по умолчанию: пустая строка.
  • BEECR_LANGUAGE – определяет язык проверки.
    Значение по умолчанию: English.
    Мы рекомендуем использовать английский язык, так как в этому случае комментарии от ИИ модели наиболее полные и качественные для всех протестированных моделей.

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

Пример настройки через доопределение CI/CD задачи

stages:
  - review

include:
  - remote: 'https://gitlab.com/cvisionlab/beecr/-/raw/1.4.2/templates/beecr/template-always.yml'

beecr:
  variables:
    BEECR_TARGET_EXTRA: '\.json$'

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

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

stages:
  - review

include:
  - remote: 'https://gitlab.com/cvisionlab/beecr/-/raw/1.4.2/templates/beecr/template-manual.yml'

📌 Закрепление версии шаблона

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

stages:
  - review

include:
  - remote: 'https://gitlab.com/cvisionlab/beecr/-/raw/main/templates/beecr/template-always.yml'