GitBorGitBor

AI-сообщения коммитов

Генерация сообщений коммитов из staged-diff и настройка AI-провайдера

GitBor может написать Subject коммита по поставленным в индекс изменениям. Тот же провайдер и настройки питают все остальные AI-помощники.

Сгенерировать сообщение коммита

  1. Поставьте в индекс хотя бы одно изменение.
  2. Нажмите кнопку AI рядом с полем Subject.
  3. После генерации GitBor вставит в поле очищенный финальный текст. Отредактируйте его перед Commit.
  4. Нажмите ту же кнопку ещё раз, чтобы остановить генерацию.

Кнопка неактивна, когда нечего отправлять (нет staged-изменений) или AI выключен в настройках.

Настройки AI

Откройте Repository → AI Settings… или нажмите маленькую шестерёнку рядом с кнопкой AI при наведении. В диалоге шесть секций слева.

Connection

Выберите модель, с которой общаетесь. GitBor говорит с AI-провайдерами через OpenAI-совместимый API. Пресеты сгруппированы:

ГруппаПримерыПримечания
LocalOllama (по умолчанию), LM Studio, llama.cppРаботает на вашей машине — ничего её не покидает.
CorporateCustom OpenAI-совместимый шлюз, Qwen Corporate (vLLM / DashScope)Внутренние эндпоинты и изолированные сети.
Available without VPNDeepSeek, Qwen APIДоступны без VPN.
RussianYandexGPT (Yandex Cloud)
ForeignOpenAI, Anthropic, GroqЗаблокированы по умолчанию — см. Privacy.

Для каждого пресета заполняется:

  • Base URL — обычно заканчивается на /v1.
  • Model — идентификатор модели, который принимает ваш сервер.
  • API Key — оставьте пустым для локальных серверов. Хранится зашифрованным на этом устройстве (Windows DPAPI, macOS Keychain, Linux libsecret), никогда не в открытом файле.
  • Test — короткая проверка, что ключ и URL работают.

Если на рабочей станции запрещены AI-агенты, внешние AI-сервисы или хранение AI-ключей, используйте сборку GitBor No AI. В ней AI-интерфейс скрыт, провайдеры отключены, ключи не запрашиваются и AI-запросы не выполняются.

Prompts

Текст инструкций, отправляемый модели для каждой функции. По умолчанию — на английском намеренно: LLM (включая локальный Qwen и YandexGPT) лучше рассуждают на английском; ответ переводится отдельно через настройку языка ответа. У каждого промпта есть Reset to default. Плейсхолдеры вроде {subject}, {body}, {diff} подставляются перед отправкой.

Features

Переключатели вкл/выкл по каждой функции, плюс необязательный override модели на функцию. Доверяете основной модели всё, кроме, скажем, помощника по конфликтам? Впишите более мощный id модели в override этой функции. Выключенная функция полностью прячет свою кнопку в интерфейсе.

Behavior

  • AI response language — Auto (язык интерфейса) / English / Russian. Управляет языком, на который переводится ответ; применяется ко всем функциям, включая AI-имена stash.
  • Gateway compatibility — для капризных корпоративных шлюзов: отправлять system-промпт как user-сообщение (некоторые шлюзы выбрасывают роль system), отключить режим «thinking» у Qwen и вырезать <think>…</think> из ответов.

Privacy

Два переключателя:

  • AI enabled — глобальный рубильник. Когда выключен, все кнопки AI неактивны независимо от переключателей функций.
  • Allow sending code to foreign providersвыключен по умолчанию (политика импортозамещения). Local, Corporate, без-VPN и российские провайдеры разрешены всегда; зарубежные (OpenAI, Anthropic, Groq) остаются заблокированными, пока вы это не включите. Клик по AI-кнопке на заблокированном провайдере покажет тултип с объяснением и ссылкой сюда.

Отдельного канала телеметрии в обход этого нет — каждый AI-запрос идёт провайдеру, которого вы выбрали.

Debug

Показывает последний запрос/ответ и короткий лог ошибок, опционально пишет ai-debug.log. Полезно, когда кастомный эндпоинт ведёт себя странно. Ничего не выгружается — это лишь зеркало того, что видел сам GitBor.

Где лежит конфигурация

Хранится рядом с остальными настройками GitBor, секреты — в системном хранилище ключей:

  • Windows: %APPDATA%\GitBor\ai-config.json (DPAPI)
  • macOS: ~/Library/Application Support/GitBor/ai-config.json (Keychain)
  • Linux: ~/.config/GitBor/ai-config.json (libsecret)

Старые настройки обновляются автоматически при первом запуске — действий не требуется.