GigaCommit — это расширение для Visual Studio Code, использующее GigaChat для генерации содержательных комментариев к коммитам в соответствии со стандартами convential commits.

Возможности
✨ Комментарии с ИИ — GigaChat анализирует изменения в коде и генерирует описательные комментарии
🎯 Conventional Commits — все генерируемые сообщения следуют формату Conventional Commits для лучшей читаемости истории проекта
⚡ Интеграция — работает напрямую в интерфейсе Git в VSCode
🔐 Безопасность — ваш код остаётся приватным; только diff отправляется в API GigaChat
⚙️ Настройка — простая настройка учётных данных OAuth и конечных точек
Установка
- Откройте VSCode
- Перейдите во вкладку расширений (Ctrl+Shift+X)
- Найдите "GigaCommit"
- Нажмите Установить
Настройка
Перед использованием GigaCommit необходимо настроить учётные данные OAuth для GigaChat:
- Откройте настройки VSCode (Ctrl+,)
- Найдите "GigaCommit"
- Настройте следующие параметры:
| Параметр | Описание | По умолчанию |
|---|---|---|
gigacommit.authorizationKey |
Base64-закодированный ключ авторизации (ваш API-ключ для OAuth) | обязательный |
gigacommit.scope |
Охват OAuth — выбрать: PERS / B2B / CORP. Базовый URL API выбирается автоматически по значению | GIGACHAT_API_PERS |
gigacommit.model |
Модель GigaChat — выбрать: GigaChat-2 / GigaChat-2-Pro / GigaChat-2-Max | GigaChat-2 |
gigacommit.commitLanguage |
Язык текста коммита — English / Russian. Тип Conventional Commit остаётся стандартным (feat, fix, docs и т.д.) |
English |
gigacommit.caBundlePath |
Путь к PEM-файлу с пользовательскими сертификатами CA (необязательно) | (пусто) |
Получение ключа авторизации
- Зарегистрируйте приложение в портале разработчиков GigaChat.
- Перейдите в Настройки → Ключи API.
- Скопируйте свой Ключ авторизации.
Значение authorizationKey должно выглядеть как NjE5MDhkYWUt...
Какой scope использовать
| Тип лицензии | scope |
Выбирается автоматически |
|---|---|---|
| Персональный | GIGACHAT_API_PERS |
https://gigachat.devices.sberbank.ru/api/v1 |
| B2B | GIGACHAT_API_B2B |
https://api.giga.chat/v1 |
| Корпоративный | GIGACHAT_API_CORP |
https://api.giga.chat/v1 |
Расширение автоматически выбирает базовый URL API чата:
GIGACHAT_API_PERS->https://gigachat.devices.sberbank.ru/api/v1GIGACHAT_API_B2B->https://api.giga.chat/v1GIGACHAT_API_CORP->https://api.giga.chat/v1
По умолчанию: GIGACHAT_API_PERS
Доступные модели
| Модель | Цена | Возможности |
|---|---|---|
GigaChat-2 |
Стандартная | Подходит для простых задач, самые быстрые ответы |
GigaChat-2-Pro |
Умеренная | Рекомендуется — оптимальное соотношение скорости и качества |
GigaChat-2-Max |
Самая высокая | Наиболее продвинутая, лучшая для сложного анализа |
По умолчанию используется GigaChat-2: базовая модель с быстрым откликом.
{
"gigacommit.authorizationKey": "ваш-base64-ключ-здесь",
"gigacommit.scope": "GIGACHAT_API_PERS",
"gigacommit.model": "GigaChat-2",
"gigacommit.commitLanguage": "English"
}
Язык коммита
Настройка gigacommit.commitLanguage управляет языком текста коммита:
English— summary и bullet points будут сгенерированы на английскомRussian— summary и bullet points будут сгенерированы на русском в безличной или пассивной форме
При этом тип Conventional Commit остаётся стандартным:
feat: add commit language settingfix: исправлена обработка OAuth токена
Использование
- Внесите изменения в код
- Добавьте нужные файлы в индекс (staging) через панель Git
- Откройте панель управления источниками
- Нажмите кнопку GigaCommit в заголовке панели управления
- Дождитесь генерации комментария GigaChat
- Сгенерированный текст вставляется в поле ввода комментария
- Проверьте его и сами нажмите кнопку Commit
Как это работает
- Расширение получает diff изменений в индексе (
git diff --cached) через API расширения Git в VS Code - Оно получает токен доступа OAuth с конечной точки авторизации Sber
- Отправляет только diff изменений (в формате unified diff) в API GigaChat с инструкцией сгенерировать сообщение коммита
- GigaChat анализирует изменения и возвращает подходящее сообщение
- Расширение вставляет сообщение в поле ввода панели управления
- Вы проверяете его и сами решаете, нажимать ли кнопку
Commit
Бинарные файлы в индексе автоматически исключаются — Git помечает их как Binary files a/... and b/... differ, поэтому сырые бинарные данные никогда не отправляются в API. Если diff превышает ~20 КБ, вы получите предупреждение и сможете выбрать усечение.
Формат Conventional Commits
GigaCommit гарантирует, что все сообщения следуют спецификации Conventional Commits:
<type>[необязательная область]: <описание>
[необязательный текст]
[необязательные сноски]
Для небольших изменений GigaCommit генерирует только первую строку.
Для крупных изменений может быть добавлен краткий раздел с деталями, например:
feat: добавить генерацию сообщений коммитов SCM
- обновить workflow Source Control в README
- добавить интеграцию кнопки действия SCM
- вставить сгенерированное сообщение в поле ввода коммита
Распространённые типы:
feat: Новая функцияfix: Исправление ошибкиdocs: Изменения только в документацииstyle: Изменения, не влияющие на смысл кодаrefactor: Изменение кода, не исправляющее ошибку и не добавляющее функциюperf: Изменение кода, улучшающее производительностьtest: Добавление недостающих тестов или исправление существующихbuild: Изменения, влияющие на систему сборки или внешние зависимостиci: Изменения в конфигурационных файлах и скриптах CIchore: Другие изменения, не затрагивающие src или test
Безопасность
GigaCommit уважает конфиденциальность вашего кода:
- В API отправляется только diff изменений в индексе
- Ваш полный код остаётся на вашем компьютере
- Токен OAuth сохраняется в globalState VS Code (в зашифрованном виде) и используется повторно до 30 секунд до истечения срока действия
- Если сервер возвращает 401, токен аннулируется и обновляется автоматически
- Вся связь с GigaChat использует HTTPS
OAuth Flow
GigaCommit реализует официальный OAuth 2.0 flow от Sber GigaChat:
- Запрос токена — отправляет
POSTна конечную точку авторизации с:Authorization: Basic <authorizationKey>- Заголовок
RqUID: <uuid4> - Тело
scope=<your_scope>
- Завершение чата — использует полученный
access_tokenкак токенBearer
Токен кэшируется между сессиями VS Code и обновляется автоматически. Если API возвращает 401, токен аннулируется и повторно получается, с одной попыткой повтора.
Устранение неполадок
В: Я получаю ошибку об отсутствующем ключе авторизации
О: Убедитесь, что вы настроили gigacommit.authorizationKey в настройках VSCode
В: Я получаю HTTP 401 с конечной точки токена О: Убедитесь, что ключ авторизации правильно закодирован в Base64 и активен в портале разработчиков GigaChat
В: ИИ слишком долго отвечает О: Проверьте подключение к интернету и статус API GigaChat
В: Сгенерированные сообщения не по теме О: Попробуйте добавлять в индекс меньше файлов одновременно для более сфокусированных коммитов
В: HTTP 403 Forbidden
О: Убедитесь, что настройка scope соответствует вашему типу лицензии (CORP / PERS / B2B)
Детали ошибок API
Когда API GigaChat возвращает ошибку, расширение показывает описание от сервера — а не только код HTTP-статуса.
| HTTP статус | Что означает | Распространённая причина |
|---|---|---|
| 400 | Некорректный запрос — неверные параметры | Неверное тело запроса или неподдерживаемая модель |
| 401 | Неавторизованный доступ — недействительный/истёкший токен | Токен отозван или несовпадающие учётные данные |
| 403 | Доступ запрещён — нет прав | Неверный scope или недостаточно прав |
| 404 | Не найдено | Неверное имя модели или несоответствие конечной точки выбранному scope |
| 422 | Необрабатываемая сущность — неверный формат | Некорректный массив сообщений |
| 429 | Превышен лимит запросов | Слишком много запросов — подождите и повторите |
| 500 | Внутренняя ошибка сервера | Проблема на стороне GigaChat |
Полный ответ сервера записывается в консоль разработчика VS Code для отладки, чувствительные данные автоматически скрываются.
Проблемы с TLS / сертификатами
API GigaChat использует HTTPS с сертификатами от Национального УЦ Минцифры. Если вы видите ошибки TLS handshake, такие как EPROTO, SSLV3_ALERT_HANDSHAKE_FAILURE или CERT_UNTRUSTED:
-
Установите корневой сертификат — на большинстве платформ сертификат "Российский доверенный корневой CA" (НУЦ Минцифры) должен быть установлен. В macOS он обычно уже предустановлен. В Linux добавьте его в
/usr/local/share/ca-certificates/и выполнитеupdate-ca-certificates. -
Корпоративный прокси / MITM — если ваша компания использует прокси, перехватывающий HTTPS-трафик, возможно, потребуется доверять корневому сертификату прокси. Установите настройку
GigaCommit: CA Bundle Path, указав путь к PEM-файлу с корневым сертификатом прокси. -
Пользовательский пакет CA — если в хранилище сертификатов вашей системы нет нужных CA, вы можете предоставить пользовательский пакет:
- Установите
gigacommit.caBundlePathкак полный путь к.pemфайлу - Этот файл должен содержать цепочку сертификатов (корневой CA + промежуточные)
- Пример:
/path/to/nuts-minifry.pem
Не отключайте проверку TLS (
rejectUnauthorized: false). Расширение никогда не отключает TLS по умолчанию и настоятельно этого не рекомендует. - Установите
-
Истёкший сертификат — если сертификат сервера истёк, проверьте портал разработчиков GigaChat на наличие уведомлений о сервисе.
Участие
Приветствуются любые вклады! Пожалуйста, не стесняйтесь создавать issues, предложения по функционалу или pull requests.
Лицензия
MIT License
Благодарности
Создано на основе GigaChat AI и VSCode Extension APIs.