https://github.com/sashayerty/commit_maker
CLI-утилита для генерации сообщения коммита
https://github.com/sashayerty/commit_maker
ai cli commit git mistral mistralai ollama python
Last synced: about 2 months ago
JSON representation
CLI-утилита для генерации сообщения коммита
- Host: GitHub
- URL: https://github.com/sashayerty/commit_maker
- Owner: Sashayerty
- License: mit
- Created: 2025-04-07T19:40:16.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2025-06-06T23:23:57.000Z (4 months ago)
- Last Synced: 2025-07-04T18:18:13.237Z (3 months ago)
- Topics: ai, cli, commit, git, mistral, mistralai, ollama, python
- Language: Python
- Homepage:
- Size: 78.1 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Commit Maker [](https://www.python.org/) [](https://docs.astral.sh/uv/) [](https://ollama.com/) [](https://pypi.org/project/commit-maker/)

## Все коммиты в репозитории - результат работы программы
Эта CLI-утилита автоматически создает осмысленные сообщения для git-коммитов, используя локальные модели через ollama/Mistral AI API на основе вывода команд `git status` и `git diff`. Реализована в виде одного файла для удобства перевода в исполняемый файл.
1. [Возможности](#возможности)
2. [Требования](#требования)
- [Mistral](#получение-api-ключа-mistral-ai)
- [Ollama](#установка-ollama)
3. [Установка](#установка)
4. [Настройка переменных окружения](#настройка-переменных-окружения)
- [Windows](#windows)
- [Linux/MacOS](#linuxmacos)
5. [Использование](#использование)
6. [Примечания](#примечания)
7. [Лицензия](#лицензия)## Возможности
- Автоматически генерирует содержательные сообщения коммитов на русском языке
- Интерактивное подтверждение перед созданием коммита
- Работает как с существующими Git-репозиториями, так и с новыми
- Использование локальных моделей/Mistral AI API для формирования сообщений коммитов на основе изменений в репозитории.## Требования
- Установленный Git в системе
- API-ключ Mistral (для использования Mistral AI API)
- Установленная ollama в системе (для использования локальных моделей)### Получение API ключа Mistral AI
Для получения ключа необходимо перейти сайт консоли [Mistral](https://console.mistral.ai/api-keys) и создать API ключ. Для получения необходим аккаунт [Mistral](https://auth.mistral.ai/ui/login).
### Установка ollama
Для установки ollama переходим на сайт [Ollama](https://ollama.com/download) и выбираем способ, подходящий для Вашей системы.
## Установка
### Pip
Установка последнего релиза с pypi.
```bash
# Windows
pip install commit_maker
# Linux/MacOS
pip3 install commit_maker
```### Из исходников
При установке из исходников используется флаг `-e`, что позволяет после `git pull` иметь сразу же свежую версию утилиты **без переустановки**!
```bash
git clone https://github.com/Sashayerty/commit_maker
cd ./commit_maker
# Windows
pip install -r requirements.txt
# Linux/MacOS
pip3 install -r requirements.txt
```## Настройка переменных окружения
После установки утилиты нужно обязательно добавить переменную окружения `MISTRAL_API_KEY`
### Windows
1. Откройте Командную строку от имени Администратора
2. Установите API-ключ Mistral:```cmd
setx MISTRAL_API_KEY "ваш_api_ключ_здесь"
```3. Перезапустите терминал/IDE для применения изменений
### Linux/macOS
1. Откройте терминал
2. Добавьте в файл конфигурации вашей оболочки (`~/.bashrc`, `~/.zshrc` или `~/.bash_profile`):```bash
export MISTRAL_API_KEY="ваш_api_ключ_здесь"
```3. Перезагрузите конфигурацию:
```bash
source ~/.bashrc # или другой файл, который вы редактировали
```## Использование
```bash
commit_maker [OPTION] [VALUE]
```### Пример использования
**`-h`**, **`--help`** - вывод помощи
**`-l`**, **`--local-models`** - использование локальных моделей
**`-m`**, **`--max-symbols`** - ограничение длины сообщения коммита
**`-M`**, **`--model`** - какую локальную модель использовать (при **`-l`**)
**`-d`**, **`--dry-run`** - вывод сообщения на основе зайстейдженных изменений, без создания коммита
**`-t`**, **`--temperature`** - температура модели при создании месседжа
**`-e`**, **`--exclude`** - файлы, которые нужно игнорировать при создании сообщения коммита
**`-w`**, **`--wish`** - Пожелания/правки для сообщения.
**`--version`** - показывает версию1. Используем локальные модели, ограничение длины сообщения коммита 300 символов, используем qwen2.5:12b
```bash
commit_maker -l -m 300 -M qwen2.5:12b
```2. Используем Mistral, температура 1.3, dry run
```bash
commit_maker -t 1.3 -d
```3. Локальные модели, интерактивный выбор модели
```bash
commit_maker -l
```4. Локальные модели, длина сообщения 100 символов, игнорировать `uv.lock`, пожелание "Упомянуть про изменение README.md"
```bash
commit_maker -l -m 100 -e "./uv.lock" -w "Упомянуть про изменение README.md"
```## Примечания
- Для просмотра всех возможных опций выполнения скрипта добавьте флаг `--help`
- Скрипт покажет сгенерированное сообщение коммита перед его созданием
- Вы можете повторно сгенерировать сообщение, нажав `r` при запросе подтверждения
- По умолчанию сообщения генерируются на русском языке (можно изменить в скрипте)## Лицензия
Commit Maker лицензирован [MIT](LICENSE)