CI/CD компонент BeeCR (для GitLab 17+)
⚠️ Примечание: Данный раздел описывает настройку проверки кода в проекте на GitLab через использование компонента GitLab CI/CD (поддерживается GitLab-ом начиная с версии 17). Если вы хотите настроить проверку кода с помощью шаблонов (поддерживается и в более старых версиях GitLab), обратитесь к документу "CI/CD шаблон BeeCR". Если же вы предпочитаете вовсе не использовать CI/CD, то обратитесь к альтернативному методу интеграции через "Webhook".
🚀 Краткая инструкция
- Определите следующие переменные CI/CD в вашем проекте (или группе проектов):
BEECR_API_KEY
– API-ключ, предоставленный вам командой BeeCR (необходим только при использовании BeeCR SaaS).BEECR_GITLAB_TOKEN
– токен доступа к GitLab, который вы должны выпустить для проекта или группы проектов). Токен должен иметь права как минимум уровня "Developer" и предоставлять доступ к "api".💡 Совет: Мы рекомендуем присвоить токену осмысленное имя, например, BeeCR Code Reviewer, поскольку комментарии к коду будут написаны ботом, представляющимся этим именем.
- В настройках вашего проекта убедитесь, что CI/CD включен и доступен хотя бы один сервер запуска задач (GitLab runner).
- Создайте (или измените, если уже существует) конфигурационный файл
.gitlab-ci.yml
в корне вашего репозитория. Добавьте этап проверки кода в список CI/CD этапов (stages). Подключите CI/CD компонент BeeCR с помощью ключевого словаinclude
.
📄 Особенности
- Задача запускается только для запросов на слияние кода (Merge Request).
- Результаты проверки добавляются в виде комментариев к файлам.
- Задача проверки кода не запускается, если сообщение в коммите содержит одну из следующих конструкций:
[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 предоставляет два альтернативных способа установки переменных:
- Доопределение CI/CD задачи (т.н. deep merging). Конфигурацию включенной задачи можно осуществить, объявив локальную задачу с тем же именем и переопределив параметры.
- Задание переменных CI/CD в настройках GitLab для проекта, группы проектов или даже экземпляра GitLab (если вы используете 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
:
📌 Закрепление версии компонента
Во всех приведенных выше примерах ссылка на CI/CD компонент содержит явное указание его версии. Если вы хотите всегда ссылаться на последнюю актуальную версию, просто используйте main
в URL-адресе компонента вместо конкретного тега версии. Пример: