git-hooks

安装量: 67
排名: #11375

安装

npx skills add https://github.com/autumnsgrove/groveengine --skill git-hooks

Git Hooks Skill When to Activate Activate this skill when: Setting up pre-commit hooks Configuring commit message validation Installing secrets scanners Enforcing code quality standards Automating pre-push tests Quick Installation

Use interactive installer (recommended)

./AgentUsage/pre_commit_hooks/install_hooks.sh

Or manual installation for Python project

cp AgentUsage/pre_commit_hooks/commit-msg .git/hooks/ cp AgentUsage/pre_commit_hooks/pre-commit-python .git/hooks/pre-commit cp AgentUsage/pre_commit_hooks/pre-commit-secrets-scanner .git/hooks/pre-commit-secrets cp AgentUsage/pre_commit_hooks/pre-push .git/hooks/ chmod +x .git/hooks/* Available Hooks Core Hooks (All Projects) Hook Purpose commit-msg Validates conventional commit format pre-commit-secrets-scanner Prevents leaked API keys/secrets Language-Specific Hook Language Checks pre-commit-python Python Black, Ruff pre-commit-javascript JS/TS Prettier, ESLint, TypeScript pre-commit-go Go gofmt, go vet pre-commit-multi-language Mixed Auto-detects and runs appropriate tools Automation Hooks Hook Purpose pre-push Runs tests before push post-checkout Auto-updates dependencies on branch switch post-commit Shows commit summary and TODOs Hook Selection by Project

Python Project

commit-msg + pre-commit-python + pre-commit-secrets-scanner + pre-push

JavaScript Project

commit-msg + pre-commit-javascript + pre-commit-secrets-scanner + pre-push

Go Project

commit-msg + pre-commit-go + pre-commit-secrets-scanner + pre-push

Multi-language

commit-msg + pre-commit-multi-language + pre-commit-secrets-scanner + pre-push What Each Hook Does commit-msg Validates commit message format:

Accepted formats

feat: Add user authentication
fix: Correct validation error
docs
(
readme
)
Update installation

Rejected

Update files

No type

feat add feature

Missing colon

pre-commit-secrets-scanner Scans for exposed secrets: Anthropic API keys ( sk-ant-... ) OpenAI API keys ( sk-... ) AWS credentials ( AKIA... ) GitHub tokens ( ghp_... ) Hardcoded passwords pre-commit-python

Runs automatically on staged .py files

uv run black --check $file uv run ruff check $file pre-push

Runs before push

uv run pytest tests/

or pnpm test, go test, cargo test

Testing Hooks

Test pre-commit directly

.git/hooks/pre-commit

Test with sample commit

git add . git commit -m "test: verify hooks"

Run with debug output

bash -x .git/hooks/pre-commit Bypassing Hooks (Emergency Only)

Skip all hooks

git commit --no-verify -m "Emergency fix"

Only use when:

- Emergency production fixes

- Hook malfunction

- Intentional override

Troubleshooting Hook Not Running

Check existence

ls -l .git/hooks/

Fix permissions

chmod +x .git/hooks/*

Check syntax

bash -n .git/hooks/pre-commit Permission Denied chmod +x .git/hooks/* Failed Quality Checks

Run tools manually

uv run black --check . uv run ruff check .

Fix issues

uv run black . uv run ruff check --fix .

Retry commit

git commit -m "Your message" Missing Tools

Install code quality tools

uv add --dev black ruff

Verify installation

which black uv run black --version Custom Hook Configuration Modify pre-commit for Your Project

!/bin/bash

.git/hooks/pre-commit

Get staged Python files

FILES

$( git diff --cached --name-only --diff-filter = ACM | grep '.py$' ) if [ -n " $FILES " ] ; then

Run your tools

uv run black --check $FILES || exit 1 uv run ruff check $FILES || exit 1 fi exit 0 Hook Execution Order pre-commit - Before commit (code quality) commit-msg - Validates message format post-commit - After commit (notifications) pre-push - Before push (tests) Best Practices DO ✅ Install secrets scanner on ALL projects Use commit-msg for consistent history Run tests in pre-push Test hooks after installation DON'T ❌ Skip hooks regularly Disable secrets scanning Ignore hook failures Commit without testing hooks first Related Resources See AgentUsage/pre_commit_hooks/ for: setup_guide.md - Complete installation guide examples.md - Custom hook examples TROUBLESHOOTING.md - Common issues Individual hook scripts for reference

返回排行榜