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