Генератор промтов для нейросетей на основе git diff.
Project description
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 разработки
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gitprompter-0.2.1.tar.gz.
File metadata
- Download URL: gitprompter-0.2.1.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.10 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
839f3eba8103440ffa41e6faf54d44ea50ea6f22293b58611276462099c1e267
|
|
| MD5 |
49c0ed7cbfa077ab6592c457317e8f1f
|
|
| BLAKE2b-256 |
2096b56ed7fcf3b1e00726dcc20eda7df04b443c3534703ab2d38d4127f7ca42
|
File details
Details for the file gitprompter-0.2.1-py3-none-any.whl.
File metadata
- Download URL: gitprompter-0.2.1-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.10 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8e77daba9aed95ebff84f4e20dc83eb2830d13ff7cb65dfa4edb7aaf5ac1b6d
|
|
| MD5 |
e159f9a1f830458d6fa179fa36d7b12e
|
|
| BLAKE2b-256 |
60758b5ef788857a24e4303f8859a5aaf9ac9980e763af8f8521baef8f61c34f
|