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
@joaooncodejoaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncodejoaooncode 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 mainSep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew 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

@joaooncode
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
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
@joaooncodejoaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncodejoaooncode 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 mainSep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew 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

@joaooncode
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
@joaooncodejoaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncodejoaooncode 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 mainSep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew 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

@joaooncode
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
@joaooncodejoaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncodejoaooncode 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 mainSep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew 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

@joaooncode
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
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
@joaooncodejoaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncodejoaooncode 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 mainSep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew 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

@joaooncode
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
@joaooncodejoaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncodejoaooncode 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 mainSep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew 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

@joaooncode
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
@joaooncodejoaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncodejoaooncode 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 mainSep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew 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

@joaooncode
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
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
@joaooncodejoaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncodejoaooncode 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 mainSep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/git-pre-commit-hooks branch September 2, 2026 19:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew 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

@joaooncode