GitPrompter
GitPrompter — это CLI-инструмент, который превращает git diff и историю коммитов в готовые промпты для генерации commit-сообщений через LLM.
Он помогает автоматизировать написание осмысленных commit message в заданном стиле (например, Conventional Commits).
🚀 Возможности
-
Генерация промпта из:
- текущих изменений (
git diff) - анализ кода с помощью флага
-a - истории коммитов ветки (
git log)
- текущих изменений (
-
Поддержка разных стилей:
conventional(по умолчанию)featurecompact
-
Автозагрузка конфигурации из
pyproject.toml -
Копирование результата:
- в буфер обмена
- или в файл
prompt.txt
📦 Установка
pip install gitprompter
или локально:
pip install -e .
⚙️ Конфигурация
Настройки задаются в pyproject.toml:
[tool.gitprompter]
style = "conventional"
to_file = false
language = "ru"
default_branch = "main"
analysis = false
Параметры
| Параметр | Описание |
|---|---|
style |
Стиль commit-сообщения (conventional, feature, compact) |
to_file |
Сохранять в файл вместо буфера. bool |
language |
Язык ответа LLM (ru, EN, Russian, FRANCH, etc) |
default_branch |
Базовая ветка для сравнения (обычно master или main) |
analysis |
LLM после создания commit message проанализирует код. bool |
🧠 Как это работает
- Инструмент получает изменения из Git
- Очищает diff (убирает служебную информацию)
- Формирует промпт
- Копирует его в буфер или сохраняет в файл
🖥 CLI Использование
1. Генерация промпта из текущих изменений
gitprompter diff
Что делает:
- берет
git diff - берет
git diff --cached - объединяет
- генерирует промпт
1.1 Выбор стиля ответа
gitprompter diff -s compact
или
gitprompter diff --style compact
Возможные стили:
- feature
- conventional
- compact
Как выглядят эти стили, вы можете посмотреть в gitprompter/prompts.py
1.2 Анализ кода
gitprompter diff -a
или
gitprompter diff --analysis
2. Генерация промпта из истории ветки
gitprompter branch-comments
или:
gitprompter branch-comments --since develop
Что делает:
- сравнивает текущую ветку с указанной (
since) - берет
git log - генерирует промпт
⚠️ Не отталкивается от git diff, в промт попадают только commit massege всей ветки
📝 Пример результата
Task:
Write a comment following this structure:
<type>[optional scope]: <short summary>
[optional detailed description]
[optional footer(s)]
...
Please write your ANSWER in either "code" or "plaintext" format, using the "ru" language.
Result of the "git diff + git diff --cached" command:
+ added new feature
- removed old logic
🧩 Архитектура
Основные компоненты
-
GitDiffProcessor
- Работа с git
- Обработка diff/log
- Генерация финального промпта
-
Prompt
- Формирует текст запроса для LLM
- Поддерживает разные стили
-
GitPrompterConfig
- Загружает конфигурацию из
pyproject.toml
- Загружает конфигурацию из
-
utils
- Очистка diff
- Логирование
- Копирование / запись
🔧 Программное использование
from gitprompter import build_processor
processor = build_processor(style='compact', analysis=True)
processor.create_diff_prompt()
⚠️ Особенности
- Работает только внутри git-репозитория
- Использует системный
git - На Windows команды выполняются через
shell=True - Требует установленный
pyperclipдля буфера обмена (подтянется автоматически)
💡 Когда это реально полезно
- Когда ты ленишься писать commit message (и правильно делаешь 😄, лучше пусть рутину делает нейро-сеть, чем писать commit в стиле: "fix", "add some", "qwerty")
- Когда нужен единый стиль коммитов в команде
- Когда используешь AI в workflow разработки
Metadata
Release files for gitprompter 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gitprompter-0.2.1.tar.gz | 7.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gitprompter-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.0 kB
Release files / gitprompter-0.2.1.tar.gz
| Download URL | gitprompter-0.2.1.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
839f3eba8103440ffa41e6faf54d44ea50ea6f22293b58611276462099c1e267
|
|
BLAKE2b-256 checksum How to use checksums |
2096b56ed7fcf3b1e00726dcc20eda7df04b443c3534703ab2d38d4127f7ca42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.12.10 Windows/11
|
Release files / gitprompter-0.2.1-py3-none-any.whl
| Download URL | gitprompter-0.2.1-py3-none-any.whl |
|---|---|
| Size | 10.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b8e77daba9aed95ebff84f4e20dc83eb2830d13ff7cb65dfa4edb7aaf5ac1b6d
|
|
BLAKE2b-256 checksum How to use checksums |
60758b5ef788857a24e4303f8859a5aaf9ac9980e763af8f8521baef8f61c34f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.12.10 Windows/11
|