Сообщения коммитов важны, но их написание — рутинная задача. Claude от Anthropic отлично справляется с их генерацией. Для автоматизации процесса можно использовать локальный скрипт.
Процесс работы
🔹 Скрипт получает изменения (
git diff) для индексированных файлов.🔹 Дифф передается в API Claude (через Anthropic SDK) с запросом создать краткое, информативное сообщение коммита в conventional commits стиле.
🔹 Полученный ответ используется для выполнения коммита.
Пример скрипта на Python
import subprocess
import anthropic
import os
# 1. Получить дифф
diff_output = subprocess.run(
["git", "diff", "--cached"],
capture_output=True,
text=True
).stdout
# 2. Создать промт и отправить в Claude
client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
message = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=100,
temperature=0,
system="Сгенерируй краткое, информативное сообщение коммита на основе git diff. Используй формат conventional commits (например, feat:, fix:, chore:).",
messages=[
{"role": "user", "content": f"Создай сообщение коммита для этого diff:\n\n{diff_output}"}
]
)
commit_message = message.content[0].text.strip()
# 3. Выполнить коммит
subprocess.run(["git", "commit", "-m", commit_message])
print(f"Коммит создан: {commit_message}")
Ключевые моменты
🔹 Используйте переменную окружения
ANTHROPIC_API_KEY.🔹 Модель
claude-3-haiku быстрая и недорогая для этой задачи.🔹 Промт инструктирует Claude придерживаться формата conventional commits.
Процесс автоматизирует рутинную работу, оставляя пользователю финальный контроль.
Альтернативный подход: Husky + скрипт
Для запуска генерации перед каждым коммитом можно использовать хуки Git (например, через Husky).
🔹 Установите Husky:
npm install husky --save-dev.🔹 Активируйте хуки:
npx husky install.🔹 Создайте хук
prepare-commit-msg:#!/bin/bash
# .husky/prepare-commit-msg
# Выполнить скрипт генерации и записать сообщение в файл
python generate_commit_message.py > "$1"
Использование Claude для генерации сообщений коммитов экономит время и улучшает их качество. Локальный скрипт или интеграция с хуками Git делают процесс seamless. Всегда проверяйте сгенерированные сообщения перед отправкой коммита.
📱 @dev_notes_ru
#Git #Commit