- Add .git/hooks/pre-commit with CodeScene integration - Warns on large file changes (>500 lines) - Suggests Claude Code + MCP for detailed analysis - Bypassable with --no-verify or [skip codescene] - Add .github/HOOKS.md documentation
2.6 KiB
2.6 KiB
Git Hooks
Pre-Commit Hook: CodeScene Check
Il repository ha un pre-commit hook che verifica la qualità del codice prima di ogni commit.
Cosa Fa
- Analizza file staged — controlla solo TypeScript/Rust modificati
- Confronta con base branch —
origin/mainper branch,HEAD~1per main - Avvisa per file grandi — >500 linee modificate
- Suggerisce review — con Claude Code + CodeScene MCP per analisi dettagliata
Bypass Hook
Se sai cosa stai facendo:
# Skip hook per questo commit
git commit --no-verify -m "your message"
# O includi nel commit message
git commit -m "your message [skip codescene]"
Installazione (già fatto per questa repo)
L'hook è già installato in .git/hooks/pre-commit.
Se cloni la repo altrove, copia l'hook:
cp .github/hooks/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
Esempio Output
✅ Commit Normale
🔍 Running CodeScene Code Health check...
Comparing against: origin/main
Analyzing code changes...
✅ CodeScene check passed
+42 -18 lines
💡 For detailed code health analysis, run:
claude 'Check code health of this commit with CodeScene MCP'
⚠️ File Grandi
🔍 Running CodeScene Code Health check...
Comparing against: origin/main
Analyzing code changes...
⚠️ Large file changes detected (>500 lines):
- src/components/Editor.tsx
- src-tauri/src/vault.rs
Consider:
- Breaking into smaller commits
- Reviewing with Claude Code + CodeScene MCP
- Running: claude 'Review code health of staged changes'
Continue anyway? (y/N)
CodeScene MCP Integration
Per analisi dettagliata del code health, usa Claude Code:
# Analizza staged changes
claude 'Check code health of staged changes with CodeScene MCP'
# Analizza file specifico
claude 'What is the code health score of src/components/Editor.tsx?'
# Pre-commit safeguard
claude 'Run pre_commit_code_health_safeguard on staged changes'
Troubleshooting
Hook non si attiva:
- Verifica che
.git/hooks/pre-commitesista ed sia eseguibile ls -la .git/hooks/pre-commit— dovrebbe mostrare-rwxr-xr-x
Vuoi disabilitare temporaneamente:
mv .git/hooks/pre-commit .git/hooks/pre-commit.disabled
Vuoi riabilitare:
mv .git/hooks/pre-commit.disabled .git/hooks/pre-commit
Future Improvements
Possibili miglioramenti:
- Integrazione diretta API CodeScene per score numerico
- Fail automatico se code health < soglia
- Cache dei risultati per evitare re-analisi
- Hook pre-push più pesante per analisi completa