GitBor

Настройки

Repository Settings, SSH Keys Manager, AI provider config

В GitBor нет одного большого окна настроек — вместо этого набор отдельных диалогов, привязанных к конкретной функциональности.

Repository Settings

Repository → Repository Settings...

Окно для настроек git-идентичности в текущем репозитории:

  • user.name
  • user.email

Тумблер Global / Local переключает между:

  • Localgit config user.name X (только этот репозиторий, пишется в .git/config).
  • Globalgit config --global user.name X (для всех репозиториев пользователя, пишется в ~/.gitconfig).

Под капотом — src/core/git/GitConfig.ts.

SSH Keys Manager

File → Configure SSH Keys...

Менеджер SSH-ключей из ~/.ssh/:

ДействиеЧто делает
ListСканирует ~/.ssh/, ищет пары id_* + id_*.pub. Имена проверяются isSafeFilename().
Generatessh-keygen с выбором: Ed25519 (рекомендуется) или RSA. Опционально — passphrase.
Copy public keyКопирует содержимое id_*.pub в буфер обмена через безопасный wrapper copyToClipboard().
DeleteУдаляет файл ключа (с подтверждением).

Реализация — src/core/ssh/SshKeyManager.ts.

AI provider configuration

Settings → AI... (или AI-кнопка → шестерёнка).

Открывает AiSettingsDialog со селектором пресетов с группами optgroup:

  • Cloud: OpenAI, DeepSeek, Groq.
  • Local: Ollama, LM Studio.
  • Web: Qwen Web (chat.qwen.ai через сессионный токен из localStorage).
  • Custom — произвольный OpenAI-совместимый endpoint.

Поля:

  • Base URL — endpoint провайдера.
  • Model ID — имя модели (для Qwen Web — whitelist qwen3-*).
  • API Key / Session Token — секрет.
  • Commit languageauto / en / ru.

Кнопка Test connection делает короткий пробный запрос перед сохранением. Save шифрует секрет через Electron safeStorage (DPAPI на Windows, Keychain на macOS, libsecret на Linux). Если key store недоступен — fallback на префикс plain: (для headless / CI окружений).

Конфиг хранится в {userData}/ai-config.json через AiConfigStore с атомарной записью. Реализация — src/core/ai/.

Git Hooks Manager

Repository → Git Hooks...

Список всех hook-ов в .git/hooks/ (исключая *.sample). Toggle Enable / Disable переименовывает файл с суффиксом .disabled. Раскрытие записи показывает содержимое hook-скрипта в read-only режиме.

Под капотом — src/core/git/HooksManager.ts.

Worktrees

Repository → Worktrees...

Менеджер git worktree:

  • Список всех worktrees с веткой, путём и SHA.
  • Главное worktree помечено бейджем.
  • Addgit worktree add <path> <branch> (существующая или новая ветка).
  • Removegit worktree remove (с подтверждением).

Реализация — src/core/git/WorktreeManager.ts.

Git LFS

Repository → Git LFS...

  • Статус установки LFS в системе.
  • Список tracked-паттернов из .gitattributes.
  • Add / Remove паттерна — пишет в .gitattributes через git lfs track / untrack.
  • Список всех LFS-файлов с OID.

Реализация — src/core/git/LfsManager.ts.

.gitignore Editor

Repository → .gitignore...

Текстовый редактор с предзаполненными шаблонами:

  • Node.js, Python, Java, C/C++, Rust, Go.
  • IDE (VS Code, JetBrains, Vim, Emacs).
  • OS (Windows, macOS, Linux).

Клик по шаблону добавляет / убирает соответствующие паттерны. Если .gitignore уже существует — предупреждение перед перезаписью.

TODO: скриншоты Repository Settings и AiSettingsDialog.