Skip to main content

Генератор промтов для нейросетей на основе git diff.

Project description

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 разработки

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

gitprompter-0.2.1.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitprompter-0.2.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

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

Hashes for gitprompter-0.2.1.tar.gz
Algorithm Hash digest
SHA256 839f3eba8103440ffa41e6faf54d44ea50ea6f22293b58611276462099c1e267
MD5 49c0ed7cbfa077ab6592c457317e8f1f
BLAKE2b-256 2096b56ed7fcf3b1e00726dcc20eda7df04b443c3534703ab2d38d4127f7ca42

See more details on using hashes here.

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

Hashes for gitprompter-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b8e77daba9aed95ebff84f4e20dc83eb2830d13ff7cb65dfa4edb7aaf5ac1b6d
MD5 e159f9a1f830458d6fa179fa36d7b12e
BLAKE2b-256 60758b5ef788857a24e4303f8859a5aaf9ac9980e763af8f8521baef8f61c34f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page