Настройки API-сервера BeeCR
В случае развертывания BeeCR на вашем локальном сервере или виртуальной машине может возникнуть необходимость осуществить дополнительную настройку API сервера. API-cервер BeeCR можно настроить с помощью переменных окружения. В данном разделе документации вы найдете обзор всех переменных окружения, которые вы можете использовать для управления настройками API-сервера.
⚠️ Примечание:
Клиент API может переопределить любую из настроек в запросе (через HTTP-заголовки и/или параметры запроса и/или тело HTTP-запроса и/или даже через файл конфигурации в репозитории, анализ которого выполняется в данный момент). Если клиент API каким-либо образом передает параметр в запросе, то значение от клиента будет иметь больший приоритет, чем настройки сервера.
Адрес GitLab и токен доступа
Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то обычно нет необходимости переопределять GITLAB_HOST
и GITLAB_TOKEN
, потому что компоненты/шаблоны CI/CD передают адрес GitLab в параметрах запроса.
Пример:
Модель ИИ
BeeCR поддерживает два альтернативных API для взаимодействия с моделями ИИ: OpenAI и Ollama.
- Для OpenAI-совместимых API используйте имена моделей "как есть" например,
gpt-4o
. - Для Ollama-совместимых API используйте имена моделей с префиксом
ollama/
, например,ollama/codestral:22b
.
Пример:
Ollama
Задайте переменную среды OLLAMA_HOST
, если вы хотите использовать ИИ сервер на базе Ollama. Если же вы собираетесь использовать модели через OpenAI-совместимый API (например, модель gpt-4o
), то задавать значение опции OLLAMA_HOST
не имеет смысла.
Пример:
OpenAI
Задайте переменный среды OPENAI_HOST
и OPENAI_API_KEY
, если вы хотите использовать модели семейства ChatGPT (или любую другую модель через API, совместимый с OpenAI). Если же вы собираетесь использовать модель через Ollama-совместимый API, то задавать значения опций OPENAI_HOST
и OPENAI_API_KEY
не имеет смысла.
OPENAI_HOST
: Адрес OpenAI-совместимого API сервера. По умолчаниюhttps://api.openai.com
.OPENAI_API_KEY
: Ваш ключ доступа к OpenAI API.
Пример:
Определение файлов, подлежащих анализу
Основная настройка (target)
TARGET
задаёт регулярное выражение, которое определяет файлы, подлежащие проверке.
Значение по умолчанию:
Использование данного регулярного выражения приведет к проверке файлов для следующих языков программирования:
- Python:
.py
- C/C++:
.h
,.hpp
,.c
,.cpp
- C#:
.cs
- Java:
.java
- Kotlin:
.kr
- Swift:
.swift
- PHP:
.php
- Go:
.go
- Bash/Shell:
.sh
- JavaScript/Typescript:
.js
,.jsx
,.mjs
,.mjsx
,.ts
,.tsx
Однако вы можете настроить ее так, как вам удобно, чтобы поддерживать больше языков или, наоборот, исключить некоторые из стандартных. Пример регулярного выражения:
Дополнительная настройка (target extra)
TARGET_EXTRA
позволяет задать дополнительное регулярное выражение. Полезно, например, в тех случаях, когда вы не хотите переопределять TARGET
, а лишь "дополнить" его.
По умолчанию параметр TARGET_EXTRA
не задан.
Пример:
Настройка исключений (target exclude)
TARGET_EXCLUDE
позволяет задать регулярное выражение для исключения файлов из проверки (даже если они соответствуют TARGET
или TARGET_EXTRA
). Полезно, например, если вы не хотите переопределять TARGET
.
По умолчанию параметр TARGET_EXCLUDE
не задан.
Пример:
Язык
Мы рекомендуем использовать английский язык, так как в этому случае комментарии от модели ИИ наиболее полные и качественные для всех протестированных моделей.
Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то обычно нет необходимости задавать язык, так как компоненты/шаблоны CI/CD передают значение данного параметра вместе с запросом на анализ.
Значение по умолчанию: English
.
Пример:
Конфигурационный файл в репозитории
По умолчанию, API сервер будет пытаться в т.ч. получить настройки из файла .beecr.yml
в корне репозитория проекта. При желании путь к файлу можно переопределить через параметр REPO_CONFIG_PATH
.
Пример:
Ключевое выражение-триггер в комментариях
В случае интеграции GitLab и BeeCR с помощью вебхуков для событий "Comment" изменения в запросах на слияния (Merge Requests) будут анализироваться только в том случае, если появился комментарий, который содержит выражение (триггер) /beecr
.
При желании триггер можно переопределить через параметр NOTE_TRIGGER
.
Пример: