Skip to content

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

Closed

Description

@joaooncode

Contexto & Requisitos

Adicionar suporte nativo para instalacao de hooks de Git no repositorio local (\�nvguard hook install) e integracao oficial com o framework popular \pre-commit\ via .pre-commit-hooks.yaml.


Tarefas

  • Implementar subcomando \�nvguard hook install\ que cria o script executavel em .git/hooks/pre-commit.
  • Implementar subcomando \�nvguard hook run\ otimizado para verificar apenas arquivos em stage (--staged).
  • Criar o arquivo .pre-commit-hooks.yaml\ na raiz do repositorio para suportar o framework Python pre-commit.
  • Garantir performance ultrarrapida na verificacao pre-commit para nao atrasar o fluxo de desenvolvimento do usuario.
  • Adicionar testes automatizados para instalacao, execucao e desinstalacao de hooks.

Activity

  1. added this to the v0.2.0 milestone on Aug 30, 2026
  2. added
    enhancementNew feature or request
    coreCore engine, scanning, and detectors
    on Aug 30, 2026
  3. joaooncode commented on Sep 2, 2026

    @joaooncode
    OwnerAuthor

    Especificação Técnica: Git Pre-commit Hooks & Staged Inspection

    1. Visão Geral e Arquitetura

    Implementação do gerenciamento nativo de Git pre-commit hooks no CLI \�nvguard\ (\�nvguard hook ) e suporte oficial ao framework Python \pre-commit\ via .pre-commit-hooks.yaml.

    O objetivo é fornecer proteção preventiva com latência mínima (<10ms) antes da criação de commits, inspecionando exclusivamente arquivos que estão em stage no Git.


    2. Componentes e Estrutura de Pacotes

    1. **\internal/git**:

      • Função \GetStagedFiles(repoPath string) ([]string, error): executa \git diff --name-only --cached --diff-filter=ACM\ e retorna a lista de caminhos staged relativos à raiz do repositório.
      • Função \GetHooksDir(repoPath string) (string, error): resolve o caminho do diretório de hooks (.git/hooks).
    2. \internal/hook\ (Novo Pacote):

      • **\Manager**:
        • \Install(repoPath string, force bool) error: cria ou atualiza .git/hooks/pre-commit\ com permissão \
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreCore engine, scanning, and detectorsenhancementNew feature or requestready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions