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

Настройки API-сервера BeeCR

В случае развертывания BeeCR на вашем локальном сервере или виртуальной машине может возникнуть необходимость осуществить дополнительную настройку API сервера. API-cервер BeeCR можно настроить с помощью переменных окружения. В данном разделе документации вы найдете обзор всех переменных окружения, которые вы можете использовать для управления настройками API-сервера.

⚠️ Примечание:

Клиент API может переопределить любую из настроек в запросе (через HTTP-заголовки и/или параметры запроса и/или тело HTTP-запроса и/или даже через файл конфигурации в репозитории, анализ которого выполняется в данный момент). Если клиент API каким-либо образом передает параметр в запросе, то значение от клиента будет иметь больший приоритет, чем настройки сервера.

Адрес GitLab и токен доступа

Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то обычно нет необходимости переопределять GITLAB_HOST и GITLAB_TOKEN, потому что компоненты/шаблоны CI/CD передают адрес GitLab в параметрах запроса.

Пример:

GITLAB_HOST='https://gitlab.com'
GITLAB_TOKEN='your-gitlab-token'

Модель ИИ

BeeCR поддерживает два альтернативных API для взаимодействия с моделями ИИ: OpenAI и Ollama.

  • Для OpenAI-совместимых API используйте имена моделей "как есть" например, gpt-4o.
  • Для Ollama-совместимых API используйте имена моделей с префиксом ollama/, например, ollama/codestral:22b.

Пример:

MODEL='ollama/codestral:22b'

Ollama

Задайте переменную среды OLLAMA_HOST, если вы хотите использовать ИИ сервер на базе Ollama. Если же вы собираетесь использовать модели через OpenAI-совместимый API (например, модель gpt-4o), то задавать значение опции OLLAMA_HOST не имеет смысла.

Пример:

OLLAMA_HOST='http://your-ollama-address:port'

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.

Пример:

OPENAI_HOST='https://api.openai.com'
OPENAI_API_KEY='your-gitlab-token'

Определение файлов, подлежащих анализу

Основная настройка (target)

TARGET задаёт регулярное выражение, которое определяет файлы, подлежащие проверке.

Значение по умолчанию:

\.(py|c|h|cpp|hpp|cs|java|kt|swift|php|go|sh|(j|t)sx?)$

Использование данного регулярного выражения приведет к проверке файлов для следующих языков программирования:

  • 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

Однако вы можете настроить ее так, как вам удобно, чтобы поддерживать больше языков или, наоборот, исключить некоторые из стандартных. Пример регулярного выражения:

\.(java|hs)$

Дополнительная настройка (target extra)

TARGET_EXTRA позволяет задать дополнительное регулярное выражение. Полезно, например, в тех случаях, когда вы не хотите переопределять TARGET, а лишь "дополнить" его.

По умолчанию параметр TARGET_EXTRA не задан.

Пример:

TARGET_EXTRA='\.(json|yml)$'

Настройка исключений (target exclude)

TARGET_EXCLUDE позволяет задать регулярное выражение для исключения файлов из проверки (даже если они соответствуют TARGET или TARGET_EXTRA). Полезно, например, если вы не хотите переопределять TARGET.

По умолчанию параметр TARGET_EXCLUDE не задан.

Пример:

TARGET_EXCLUDE='\.(sh)$'

Язык

Мы рекомендуем использовать английский язык, так как в этому случае комментарии от модели ИИ наиболее полные и качественные для всех протестированных моделей.

Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то обычно нет необходимости задавать язык, так как компоненты/шаблоны CI/CD передают значение данного параметра вместе с запросом на анализ.

Значение по умолчанию: English.

Пример:

LANGUAGE='English'

Конфигурационный файл в репозитории

По умолчанию, API сервер будет пытаться в т.ч. получить настройки из файла .beecr.yml в корне репозитория проекта. При желании путь к файлу можно переопределить через параметр REPO_CONFIG_PATH.

Пример:

REPO_CONFIG_PATH='.beecr.yml'

Ключевое выражение-триггер в комментариях

В случае интеграции GitLab и BeeCR с помощью вебхуков для событий "Comment" изменения в запросах на слияния (Merge Requests) будут анализироваться только в том случае, если появился комментарий, который содержит выражение (триггер) /beecr. При желании триггер можно переопределить через параметр NOTE_TRIGGER.

Пример:

NOTE_TRIGGER='/beecr'