Skip to main content

GitPrompter

GitPrompter — это CLI-инструмент, который превращает git diff и историю коммитов в готовые промпты для генерации commit-сообщений через LLM.

Он помогает автоматизировать написание осмысленных commit message в заданном стиле (например, Conventional Commits).


🚀 Возможности

  • Генерация промпта из:

    • текущих изменений (git diff)
    • анализ кода с помощью флага -a
    • истории коммитов ветки (git log)
  • Поддержка разных стилей:

    • conventional (по умолчанию)
    • feature
    • compact
  • Автозагрузка конфигурации из 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

🧠 Как это работает

  1. Инструмент получает изменения из Git
  2. Очищает diff (убирает служебную информацию)
  3. Формирует промпт
  4. Копирует его в буфер или сохраняет в файл

🖥 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)

Source distribution for gitprompter 0.2.1
File Size Uploaded
gitprompter-0.2.1.tar.gz 7.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gitprompter 0.2.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page