Skip to content

Latest commit

 

History

History
249 lines (171 loc) · 13.2 KB

File metadata and controls

249 lines (171 loc) · 13.2 KB

🚀 Git Auto Commit (gac)

PyPI version Changelog 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 uvx 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

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.


Funzionalità Principali

33+ Provider supportati

  • AnthropicAzure OpenAICerebrasChatGPT (OAuth)Chutes.aiClaude Code (OAuth)
  • Crof.aiDeepInfraDeepSeekFireworksGeminiGitHub Copilot (OAuth)Groq
  • Kimi for CodingLilacLM StudioMiniMax.ioMistral AIMoonshot AINeuralwattOllama
  • Ollama CloudOpenAIOpenCode GoOpenRouterPlexus GatewayQwen Cloud (CN & INTL)
  • ReplicateStreamlake/VanchinSynthetic.newTogether AIWafer.aiZ.AI (API & Coding Plans)
  • Custom 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 17+ 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 uvx 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 (TUI in-place per impostazione predefinita, o il tuo $GAC_EDITOR se impostato), 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 uvx 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 uvx gac serve per esporre gli strumenti di commit agli agenti AI tramite il Model Context Protocol

📊 Statistiche di Utilizzo

uvx gac stats               # Panoramica: gac totali, serie, picchi giornalieri/settimanali, progetti e modelli principali
uvx gac stats models        # Dettaglio per modello: gac, token, latenza, velocità, grafici latenza per commit
uvx gac stats projects      # Dettaglio per progetto: gac, commit, token, file medi per gac in tutti i repository
uvx gac stats recent        # Cronologia gac recenti: token, velocità, latenza, file per gac (-n 20 per più)
uvx gac stats reset         # Resetta tutte le statistiche (richiede conferma)
uvx gac stats reset model <model-id>  # Resetta le statistiche solo per un modello specifico
  • 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 totali di prompt, output e ragionamento 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
  • Celebrazioni dei record: 🏆 trofei quando stabilisci nuovi record giornalieri, settimanali, di token o di serie; 🥈 per pareggiarli
  • Opt-in durante la configurazione: uvx 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
uvx gac

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

Comandi Comuni

Comando Descrizione
uvx gac Genera messaggio di commit
uvx gac -y Auto-conferma (nessuna revisione necessaria)
uvx gac -a Fai lo staging di tutto prima di generare il messaggio di commit
uvx gac -S Seleziona interattivamente i file per lo staging
uvx gac -o Messaggio su una riga per modifiche banali
uvx gac -v Formato dettagliato con Motivazione, Approccio Tecnico e Analisi Impatto
uvx gac -h "hint" Aggiungi contesto per LLM (es: uvx gac -h "correzione bug")
uvx gac -s Includi scope (es: feat(auth):)
uvx gac -i Fai domande sulle modifiche per un contesto migliore
uvx gac -g Raggruppa le modifiche in più commit logici
uvx gac -p Fai il commit e push
uvx gac model Cambia provider e modello AI
uvx 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
uvx gac stats

# Statistiche di tutti i progetti
uvx gac stats projects

uvx gac -ayp -h "preparazione release"

# Spiegazione dettagliata con scope
uvx gac -v -s

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

# Genera messaggio di commit in una lingua specifica
uvx gac -l it

# Raggruppa modifiche in commit logicamente correlati
uvx gac -ag

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

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

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

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

Sistema di Feedback Interattivo

Non soddisfatto del risultato? Hai diverse opzioni:

# Rilancio semplice (nessun feedback)
r

# Modifica il messaggio di commit
e

# 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) ti permette di perfezionare il messaggio di commit:

  • Per impostazione predefinita (TUI in-place): Editing multi-riga con binding vi/emacs — correggi errori di battitura, aggiusta formulazioni, ristruttura
  • Con GAC_EDITOR: Apre il tuo editor preferito (code, vim, nano, ecc.) — tutta la potenza dell'editor inclusi cerca/sostituisci, macro, ecc.

Gli editor GUI come VS Code sono gestiti automaticamente: gac inserisce --wait in modo che il processo si blocchi fino alla chiusura della scheda dell'editor. Nessuna configurazione aggiuntiva necessaria.


Configurazione

Esegui uvx 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 uvx gac model per un flusso semplificato che salta i prompt di lingua.

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

Vuoi messaggi di commit in un'altra lingua? Esegui uvx 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