Skip to content

feat(git): Implementar suporte e instalacao de Git Pre-commit Hooks - #27

Merged
joaooncode merged 2 commits into
mainfrom
feat/git-pre-commit-hooks
Sep 2, 2026
Merged

feat(git): Implementar suporte e instalacao de Git Pre-commit Hooks#27
joaooncode merged 2 commits into
mainfrom
feat/git-pre-commit-hooks

Conversation

@joaooncode

Copy link
Copy Markdown
Owner

Descricao

Implementa o gerenciamento nativo de hooks pre-commit do Git no CLI do envguard (envguard hook install, envguard hook run, envguard hook uninstall) e adiciona a configuracao oficial para o framework Python pre-commit via .pre-commit-hooks.yaml.

Esta funcionalidade previne vazamentos de segredos diretamente no ciclo de commit local com latencia minima, inspecionando exclusivamente arquivos que estao em stage no Git.

Closes #18

Tipo de Alteracao

  • Nova funcionalidade (feat)
  • Correcao de bug (fix)
  • Refatoracao (refactor)
  • Documentacao (docs)
  • Testes automatizados (test)
  • Configuracao / CI/CD (chore)

Alteracoes Realizadas

  • Criacao do pacote internal/hook com os componentes:
    • Manager: gerenciamento do script .git/hooks/pre-commit com verificacao de assinatura (# Installed by envguard), suporte a flag --force para sobrescrita e desinstalacao segura.
    • Runner: execucao otimizada de checagem pre-commit que avalia exclusivamente arquivos em stage contra regras do detector e allowlist.
  • Extensao do pacote internal/git com os metodos GetStagedFiles e GetHooksDir.
  • Adicao do comando envguard hook com subcomandos install, run, uninstall e help, alem de flags --path, --force, --config e --no-color.
  • Adicao do arquivo de configuracao .pre-commit-hooks.yaml na raiz do repositorio.
  • Registro do ADR 0004 (docs/adr/0004-git-pre-commit-hooks.md) e atualizacao do CONTEXT.md com os termos Hook Manager e Hook Runner.
  • Criacao de testes unitarios e de integracao cobrindo todos os fluxos de hook.

Como Testar

# 1. Executar suite completa de testes
go test -v ./...

# 2. Testar instalacao do hook nativo
./envguard.exe hook install

# 3. Testar checagem rapida de stage
./envguard.exe hook run

# 4. Testar desinstalacao do hook nativo
./envguard.exe hook uninstall

Checklist do Contribuinte

  • O codigo segue os padroes e convencoes do projeto
  • Novos testes unitarios e de integracao foram adicionados
  • 100% da suite de testes esta passando localmente
  • Documentacao e CONTEXT.md atualizados com os novos conceitos
  • Nenhum arquivo .env, binario ou credencial foi commitado

Breaking Changes / Observacoes

  • Nenhuma alteracao que quebre compatibilidade com comandos existentes (scan, check, fix, init).

- Adiciona pacote internal/hook com Manager e Runner

- Implementa subcomandos envguard hook (install, run, uninstall)

- Adiciona GetStagedFiles e GetHooksDir ao pacote internal/git

- Adiciona arquivo de configuracao .pre-commit-hooks.yaml

- Registra ADR 0004 e atualiza termos no CONTEXT.md

- Adiciona testes unitarios e de integracao completos

Closes #18
@joaooncode joaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncode joaooncode self-assigned this Sep 2, 2026
…racao

- Adiciona filepath.EvalSymlinks em setupTestGitRepo nos testes

- Corrige comparacoes de caminhos no macOS e Windows runners
@joaooncode
joaooncode merged commit abfaa35 into main Sep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(git): Implementar instalacao e suporte a Git Pre-commit Hooks

1 participant