{"id":27554311,"url":"https://github.com/sashayerty/commit_maker","last_synced_at":"2025-08-17T14:03:39.082Z","repository":{"id":286678859,"uuid":"962193127","full_name":"Sashayerty/commit_maker","owner":"Sashayerty","description":"CLI-утилита для генерации сообщения коммита","archived":false,"fork":false,"pushed_at":"2025-06-06T23:23:57.000Z","size":80,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-04T18:18:13.237Z","etag":null,"topics":["ai","cli","commit","git","mistral","mistralai","ollama","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sashayerty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-07T19:40:16.000Z","updated_at":"2025-06-06T23:24:02.000Z","dependencies_parsed_at":"2025-04-19T14:42:58.842Z","dependency_job_id":"3d6f7b8f-0f85-45f3-bbc1-44036550126e","html_url":"https://github.com/Sashayerty/commit_maker","commit_stats":null,"previous_names":["sashayerty/commit_maker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sashayerty/commit_maker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sashayerty%2Fcommit_maker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sashayerty%2Fcommit_maker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sashayerty%2Fcommit_maker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sashayerty%2Fcommit_maker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sashayerty","download_url":"https://codeload.github.com/Sashayerty/commit_maker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sashayerty%2Fcommit_maker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270856775,"owners_count":24657700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cli","commit","git","mistral","mistralai","ollama","python"],"created_at":"2025-04-19T14:31:17.350Z","updated_at":"2025-08-17T14:03:39.062Z","avatar_url":"https://github.com/Sashayerty.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commit Maker [![Created with Python](https://img.shields.io/badge/Created_with-Python-blue)](https://www.python.org/) [![Created with uv](https://img.shields.io/badge/Created_with-uv-purple)](https://docs.astral.sh/uv/) [![Created with ollama](https://img.shields.io/badge/Created_with-ollama-white)](https://ollama.com/) [![PyPi](https://img.shields.io/badge/Available_on-pypi-orange)](https://pypi.org/project/commit-maker/)\n\n![Демонстрация](./commit_maker.svg)\n\n## Все коммиты в репозитории - результат работы программы\n\nЭта CLI-утилита автоматически создает осмысленные сообщения для git-коммитов, используя локальные модели через ollama/Mistral AI API на основе вывода команд `git status` и `git diff`. Реализована в виде одного файла для удобства перевода в исполняемый файл.\n\n1. [Возможности](#возможности)\n2. [Требования](#требования)\n   - [Mistral](#получение-api-ключа-mistral-ai)\n   - [Ollama](#установка-ollama)\n3. [Установка](#установка)\n4. [Настройка переменных окружения](#настройка-переменных-окружения)\n   - [Windows](#windows)\n   - [Linux/MacOS](#linuxmacos)\n5. [Использование](#использование)\n6. [Примечания](#примечания)\n7. [Лицензия](#лицензия)\n\n## Возможности\n\n- Автоматически генерирует содержательные сообщения коммитов на русском языке\n- Интерактивное подтверждение перед созданием коммита\n- Работает как с существующими Git-репозиториями, так и с новыми\n- Использование локальных моделей/Mistral AI API для формирования сообщений коммитов на основе изменений в репозитории.\n\n## Требования\n\n- Установленный Git в системе\n- API-ключ Mistral (для использования Mistral AI API)\n- Установленная ollama в системе (для использования локальных моделей)\n\n### Получение API ключа Mistral AI\n\nДля получения ключа необходимо перейти сайт консоли [Mistral](https://console.mistral.ai/api-keys) и создать API ключ. Для получения необходим аккаунт [Mistral](https://auth.mistral.ai/ui/login).\n\n### Установка ollama\n\nДля установки ollama переходим на сайт [Ollama](https://ollama.com/download) и выбираем способ, подходящий для Вашей системы.\n\n## Установка\n\n### Pip\n\nУстановка последнего релиза с pypi.\n```bash\n# Windows\npip install commit_maker\n# Linux/MacOS\npip3 install commit_maker\n```\n\n### Из исходников\n\nПри установке из исходников используется флаг `-e`, что позволяет после `git pull` иметь сразу же свежую версию утилиты **без переустановки**!\n```bash\ngit clone https://github.com/Sashayerty/commit_maker\ncd ./commit_maker\n# Windows\npip install -r requirements.txt\n# Linux/MacOS\npip3 install -r requirements.txt\n```\n\n## Настройка переменных окружения\n\nПосле установки утилиты нужно обязательно добавить переменную окружения `MISTRAL_API_KEY`\n\n### Windows\n\n1. Откройте Командную строку от имени Администратора\n2. Установите API-ключ Mistral:\n\n   ```cmd\n   setx MISTRAL_API_KEY \"ваш_api_ключ_здесь\"\n   ```\n\n3. Перезапустите терминал/IDE для применения изменений\n\n### Linux/macOS\n\n1. Откройте терминал\n2. Добавьте в файл конфигурации вашей оболочки (`~/.bashrc`, `~/.zshrc` или `~/.bash_profile`):\n\n   ```bash\n   export MISTRAL_API_KEY=\"ваш_api_ключ_здесь\"\n   ```\n\n3. Перезагрузите конфигурацию:\n\n   ```bash\n   source ~/.bashrc  # или другой файл, который вы редактировали\n   ```\n\n## Использование\n\n   ```bash\n   commit_maker [OPTION] [VALUE]\n   ```\n\n### Пример использования\n\n**`-h`**, **`--help`** - вывод помощи  \n**`-l`**, **`--local-models`** - использование локальных моделей  \n**`-m`**, **`--max-symbols`** - ограничение длины сообщения коммита  \n**`-M`**, **`--model`** - какую локальную модель использовать (при **`-l`**)  \n**`-d`**, **`--dry-run`** - вывод сообщения на основе зайстейдженных изменений, без создания коммита  \n**`-t`**, **`--temperature`** - температура модели при создании месседжа  \n**`-e`**, **`--exclude`** - файлы, которые нужно игнорировать при создании сообщения коммита  \n**`-w`**, **`--wish`** - Пожелания/правки для сообщения.  \n**`--version`** - показывает версию\n\n1. Используем локальные модели, ограничение длины сообщения коммита 300 символов, используем qwen2.5:12b\n\n   ```bash\n   commit_maker -l -m 300 -M qwen2.5:12b \n   ```\n\n2. Используем Mistral, температура 1.3, dry run\n\n   ```bash\n   commit_maker -t 1.3 -d\n   ```\n\n3. Локальные модели, интерактивный выбор модели\n\n   ```bash\n   commit_maker -l\n   ```\n\n4. Локальные модели, длина сообщения 100 символов, игнорировать `uv.lock`, пожелание \"Упомянуть про изменение README.md\"\n\n   ```bash\n   commit_maker -l -m 100 -e \"./uv.lock\" -w \"Упомянуть про изменение README.md\"\n   ```\n\n## Примечания\n\n- Для просмотра всех возможных опций выполнения скрипта добавьте флаг `--help`\n- Скрипт покажет сгенерированное сообщение коммита перед его созданием\n- Вы можете повторно сгенерировать сообщение, нажав `r` при запросе подтверждения\n- По умолчанию сообщения генерируются на русском языке (можно изменить в скрипте)\n\n## Лицензия\n\nCommit Maker лицензирован [MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsashayerty%2Fcommit_maker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsashayerty%2Fcommit_maker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsashayerty%2Fcommit_maker/lists"}