Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #3121

git-hooks-automation

Ajuda seu agente a automatizar verificações de qualidade de código antes de enviá-lo. Garante que o código esteja formatado e sem erros.

O que ela faz

Automatiza verificações de qualidade do código antes de você enviar suas alterações. Ele garante que seu código esteja formatado, sem erros e com mensagens de commit padronizadas, tudo antes de chegar ao sistema principal.

Quando usar

  • ✓Configurar ferramentas como Husky ou pre-commit.
  • ✓Garantir que as mensagens de commit sigam um padrão.
  • ✓Automatizar a formatação e verificação de erros no código.

Exemplo do que pedir para a IA

“Configure os ganchos de pré-commit para formatar e verificar meu código.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/git-hooks-automation/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/git-hooks-automation/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele usa ferramentas como Husky e lint-staged para executar scripts automaticamente. Esses scripts verificam seu código em busca de erros e problemas de formatação antes de permitir que você confirme ou envie suas alterações.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill git-hooks-automation

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/git-hooks-automation/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Automação de Git Hooks

Automatize a aplicação de qualidade de código no nível do Git. Configure hooks que fazem lint, formatam, testam e validam antes que commits e pushes cheguem ao seu pipeline de CI — detectando problemas em segundos, em vez de minutos.

Quando Usar Essa Habilidade

  • O usuário pede para "configurar git hooks" ou "adicionar pre-commit hooks"
  • Configurando Husky, lint-staged ou o framework pre-commit
  • Aplicando convenções de mensagens de commit (Conventional Commits, commitlint)
  • Automatizando linting, formatação ou verificação de tipos antes de commits
  • Configurando pre-push hooks para executores de testes
  • Migrando do Husky v4 para o v9+ ou adotando hooks do zero
  • O usuário menciona "pre-commit", "commit-msg", "pre-push", "lint-staged" ou "githooks"

Fundamentos de Git Hooks

Git hooks são scripts que rodam automaticamente em pontos específicos do fluxo de trabalho do Git. Eles ficam em .git/hooks/ e não são controlados por versão por padrão — é por isso que ferramentas como o Husky existem.

Tipos de Hooks e Quando Eles Disparam

Hook Dispara Quando Uso Comum
pre-commit Antes do commit ser criado Lint, formatar, verificar tipos de arquivos staged
prepare-commit-msg Após a mensagem padrão, antes do editor Preencher automaticamente templates de commit
commit-msg Após o usuário escrever a mensagem de commit Aplicar formato de mensagem de commit
post-commit Após o commit ser criado Notificações, logging
pre-push Antes do push para o repositório remoto Rodar testes, verificar políticas de branch
pre-rebase Antes do rebase começar Prevenir rebase em branches protegidas
post-merge Após o merge completar Instalar dependências, rodar migrações
post-checkout Após o checkout/switch Instalar dependências, reconstruir assets

Git Hooks Nativos (Sem Framework)

# Create a pre-commit hook manually
cat > .git/hooks/pre-commit << 'EOF'
#!/bin/sh
set -e

# Run linter on staged files only
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(js|ts|jsx|tsx)$' || true)

if [ -n "$STAGED_FILES" ]; then
  echo "🔍 Linting staged files..."
  echo "$STAGED_FILES" | xargs npx eslint --fix
  echo "$STAGED_FILES" | xargs git add  # Re-stage after fixes
fi
EOF
chmod +x .git/hooks/pre-commit

Problema: .git/hooks/ é apenas local e não é compartilhado com a equipe. Use um framework em vez disso.

Husky + lint-staged (Projetos Node.js)

O padrão moderno para projetos JavaScript/TypeScript. O Husky gerencia os Git hooks; o lint-staged roda comandos apenas em arquivos staged para velocidade.

Configuração Rápida (Husky v9+)

# Install
npm install --save-dev husky lint-staged

# Initialize Husky (creates .husky/ directory)
npx husky init

# The init command creates a pre-commit hook — edit it:
echo "npx lint-staged" > .husky/pre-commit

Configurar lint-staged em package.json

{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": [
      "eslint --fix --max-warnings=0",
      "prettier --write"
    ],
    "*.{css,scss}": [
      "prettier --write",
      "stylelint --fix"
    ],
    "*.{json,md,yml,yaml}": [
      "prettier --write"
    ]
  }
}

Adicionar Linting de Mensagem de Commit

# Install commitlint
npm install --save-dev @commitlint/cli @commitlint/config-conventional

# Create commitlint config
cat > commitlint.config.js << 'EOF'
module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [2, 'always', [
      'feat', 'fix', 'docs', 'style', 'refactor',
      'perf', 'test', 'build', 'ci', 'chore', 'revert'
    ]],
    'subject-max-length': [2, 'always', 72],
    'body-max-line-length': [2, 'always', 100]
  }
};
EOF

# Add commit-msg hook
echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg

Adicionar Pre-Push Hook

# Run tests before pushing
echo "npm test" > .husky/pre-push

Estrutura Completa de Diretórios do Husky

project/
├── .husky/
│   ├── pre-commit        # npx lint-staged
│   ├── commit-msg        # npx --no -- commitlint --edit $1
│   └── pre-push          # npm test
├── commitlint.config.js
├── package.json          # lint-staged config here
└── ...

Framework pre-commit (Python / Poliglota)

Framework agnóstico de linguagem que funciona com qualquer projeto. Hooks são definidos em YAML e rodam em ambientes isolados.

Configuração

# Instalar (Python necessário)
pip install pre-commit

# Criar configuração
cat > .pre-commit-config.yaml << 'EOF'
repos:
  # Verificações integradas
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.6.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml

…
Perguntas frequentes

O que são 'git hooks'?

São scripts que rodam automaticamente em momentos específicos do seu fluxo de trabalho com Git, como antes de um commit ou push.

Por que usar ferramentas como Husky?

Porque os ganchos nativos do Git ficam apenas no seu computador. Ferramentas como Husky ajudam a compartilhar essas configurações com toda a equipe.

O que o 'lint-staged' faz?

Ele executa comandos apenas nos arquivos que você modificou e preparou para o commit, tornando o processo mais rápido.

Detalhes

Descrição original do autor

Master Git hooks setup with Husky, lint-staged, pre-commit framework, and commitlint. Automate code quality gates, formatting, linting, and commit message enforcement before code reaches CI.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3121
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas