Skip to content

Latest commit

 

History

History
258 lines (177 loc) · 12.1 KB

File metadata and controls

258 lines (177 loc) · 12.1 KB

🚀 Git Auto Commit (gac)

PyPI version Python Build Status codecov Ruff mypy Contributions welcome License: MIT

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano

Messaggi di commit generati da LLM che capiscono il tuo codice!

Automatizza i tuoi commit! Sostituisci git commit -m "..." con gac per ottenere messaggi di commit contestuali e ben formattati generati da grandi modelli linguistici!


Cosa Ottieni

Messaggi intelligenti e contestuali che spiegano il perché dietro le tue modifiche:

GAC che genera un messaggio di commit contestuale


Avvio Rapido

Usa gac senza installarlo

uvx gac init   # Configura il tuo provider, modello e lingua
uvx gac  # Genera e fai commit con LLM

Questo è tutto! Rivedi il messaggio generato e conferma con y.

Installa e usa gac

uv tool install gac
gac init
gac

Aggiorna gac installato

uv tool upgrade gac

Funzionalità Principali

🌐 25+ Provider Supportati

  • AnthropicAzure OpenAICerebrasChutes.aiClaude Code (OAuth)
  • DeepSeekFireworksGeminiGroqKimi for CodingLM Studio
  • MiniMax.ioMistral AIMoonshot AIOllamaOpenAIOpenRouter
  • Qwen Cloud (CN & INTL)ReplicateStreamlakeSynthetic.newTogether AI
  • Wafer.aiZ.AIZ.AI CodingCustom Endpoints (Anthropic/OpenAI)

🧠 Analisi Intelligente LLM

  • Capisce l'intento: Analizza la struttura, la logica e i pattern del codice per capire il "perché" dietro le tue modifiche, non solo cosa è cambiato
  • Consapevolezza semantica: Riconosce refactoring, correzioni di bug, funzionalità e modifiche breaking per generare messaggi contestualmente appropriati
  • Filtraggio intelligente: Dà priorità alle modifiche significative ignorando file generati, dipendenze e artefatti
  • Raggruppamento intelligente dei commit - Raggruppa automaticamente modifiche correlate in più commit logici con --group

📝 Formati di Messaggio Multipli

  • Una riga (flag -o): Messaggio di commit su una singola riga seguendo il formato conventional commit
  • Standard (predefinito): Riepilogo con punti elenco che spiegano i dettagli di implementazione
  • Dettagliato (flag -v): Spiegazioni complete inclusi motivazione, approccio tecnico e analisi dell'impatto
  • Regola 50/72 (flag --50-72): Impone il formato classico del messaggio di commit per una leggibilità ottimale in git log e GitHub UI
  • DCO/Signoff (flag --signoff): Aggiunge la riga Signed-off-by per la conformità al Developer Certificate of Origin (richiesto da Cherry Studio, Linux kernel e altri progetti)

🌍 Supporto multilingue

  • 25+ lingue: Genera messaggi di commit in inglese, cinese, giapponese, coreano, spagnolo, francese, tedesco, italiano e 20+ altre lingue
  • Traduzione flessibile: Scegli di mantenere i prefissi dei commit convenzionali in inglese per la compatibilità degli strumenti, o tradurli completamente
  • Workflow multipli: Imposta una lingua predefinita con gac language, o usa il flag -l <lingua> per override una tantum
  • Supporto script nativi: Supporto completo per script non latini inclusi CJK, cirillico, thai e altri

💻 Esperienza Sviluppatore

  • Feedback interattivo: Digita r per rilanciare, e per modificare sul posto con binding vi/emacs, o digita direttamente il tuo feedback come "rendilo più breve" o "concentrati sulla correzione del bug"
  • Interrogazione interattiva: Usa --interactive (-i) per rispondere a domande mirate sulle tue modifiche per messaggi di commit più contestuali
  • Workflow a comando singolo: Workflow completi con flag come gac -ayp (staging tutto, auto-conferma, push)
  • Integrazione Git: Rispetta gli hook pre-commit e lefthook, eseguendoli prima delle operazioni costose del LLM
  • Server MCP: Esegui gac serve per esporre gli strumenti di commit agli agenti AI tramite il Model Context Protocol

📊 Statistiche di Utilizzo

  • Traccia i tuoi gac: Vedi quanti commit hai fatto con gac, la tua serie attuale, picchi di attività giornaliera/settimanale e progetti principali
  • Tracciamento dei token: Token di prompt e completion totali per giorno, settimana, progetto e modello — con trofei per record anche sull'utilizzo dei token
  • Modelli principali: Vedi quali modelli usi di più e quanti token ne consuma ciascuno
  • Statistiche per progetto: Visualizza le statistiche del repository attuale con gac stats project
  • Celebrazioni dei record: 🏆 trofei quando stabilisci nuovi record giornalieri, settimanali, di token o di serie; 🥈 per pareggiarli
  • Opt-in durante la configurazione: gac init chiede se abilitare le statistiche e spiega esattamente cosa viene memorizzato
  • Opt-out in qualsiasi momento: Imposta GAC_DISABLE_STATS=true (o 1/yes/on) per disabilitare. Impostandolo a false/0/no (o non impostandolo) le statistiche rimangono abilitate
  • Privacy al primo posto: Memorizzato localmente in ~/.gac_stats.json. Solo conteggi, date, nomi di progetti e nomi di modelli — nessun messaggio di commit, codice o dato personale. Nessuna telemetria

🛡️ Sicurezza Integrata

  • Rilevamento automatico dei segreti: Scansiona chiavi API, password e token prima del commit
  • Protezione interattiva: Chiede conferma prima di fare il commit di dati potenzialmente sensibili con opzioni di rimedio chiare
  • Filtraggio intelligente: Ignora file di esempio, file template e testo segnaposto per ridurre i falsi positivi

Esempi di Utilizzo

Workflow Base

# Fai lo staging delle tue modifiche
git add .

# Genera e fai il commit con LLM
gac

# Rivedi → y (commit) | n (annulla) | r (rilancia) | e (modifica) | o digita feedback

Comandi Comuni

Comando Descrizione
gac Genera messaggio di commit
gac -y Auto-conferma (nessuna revisione necessaria)
gac -a Fai lo staging di tutto prima di generare il messaggio di commit
gac -o Messaggio su una riga per modifiche banali
gac -v Formato dettagliato con Motivazione, Approccio Tecnico e Analisi Impatto
gac -h "hint" Aggiungi contesto per LLM (es: gac -h "correzione bug")
gac -s Includi scope (es: feat(auth):)
gac -i Fai domande sulle modifiche per un contesto migliore
gac -g Raggruppa le modifiche in più commit logici
gac -p Fai il commit e push
gac stats Visualizza le tue statistiche di utilizzo di gac

Esempi per Utenti Avanzati

# Workflow completo in un comando
# Visualizza le tue statistiche dei commit
gac stats

# Statistiche del progetto corrente solamente
gac stats project

gac -ayp -h "preparazione release"

# Spiegazione dettagliata con scope
gac -v -s

# Messaggio rapido su una riga per piccole modifiche
gac -o

# Raggruppa modifiche in commit logicamente correlati
gac -ag

# Modalità interattiva con output dettagliato per spiegazioni dettagliate
gac -iv

# Debug di ciò che vede il LLM
gac --show-prompt

# Salta scansione sicurezza (usa con cautela)
gac --skip-secret-scan

# Aggiungi signoff per conformità DCO (Cherry Studio, Linux kernel, etc.)
gac --signoff

Sistema di Feedback Interattivo

Non soddisfatto del risultato? Hai diverse opzioni:

# Rilancio semplice (nessun feedback)
r

# Modifica sul posto con editing ricco del terminale
e
# Usa prompt_toolkit per editing multi-riga con binding vi/emacs
# Premi Esc+Invio o Ctrl+S per inviare, Ctrl+C per annullare

# O digita semplicemente il tuo feedback direttamente!
rendilo più breve e concentrati sul miglioramento delle prestazioni
usa il formato conventional commit con scope
spiega le implicazioni di sicurezza

# Premi Invio su input vuoto per vedere di nuovo il prompt

La funzione di modifica (e) fornisce editing ricco sul posto nel terminale, permettendoti di:

  • Modificare naturalmente: Editing multi-riga con binding vi/emacs familiari
  • Fare correzioni rapide: Correggi errori di battitura, aggiusta il wording o rifina la formattazione
  • Aggiungere dettagli: Includi informazioni che il LLM potrebbe aver perso
  • Ristrutturare: Riorganizza i punti elenco o cambia la struttura del messaggio

Configurazione

Esegui gac init per configurare il tuo provider interattivamente, o imposta le variabili d'ambiente:

Hai bisogno di cambiare provider o modelli più tardi senza toccare le impostazioni di lingua? Usa gac model per un flusso semplificato che salta i prompt di lingua.

# Esempio di configurazione
GAC_MODEL=anthropic:your-model-name
OPENAI_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here

Vedi .gac.env.example per tutte le opzioni disponibili.

Vuoi messaggi di commit in un'altra lingua? Esegui gac language per selezionare tra 25+ lingue inclusi Español, Français, 日本語, e altre.

Vuoi personalizzare lo stile dei messaggi di commit? Vedi docs/CUSTOM_SYSTEM_PROMPTS.md per guide sulla scrittura di prompt di sistema personalizzati.


Ottenere Aiuto