Skip to content

feat(cli): implementar comandos scan, check e version com exit codes - #12

Merged
joaooncode merged 1 commit into
mainfrom
feat/cli-commands
Aug 30, 2026
Merged

joaooncode merged 1 commit into
mainfrom
feat/cli-commands

Conversation

@joaooncode

Copy link
Copy Markdown
Owner

Descrição

Implementa a interface de linha de comando (CLI) completa para o envguard no entrypoint cmd/envguard e módulo internal/cli, provendo os subcomandos essenciais do MVP (scan, check, version), suporte a flags de configuração (--path, --format, --severity, --no-color) e códigos de saída determinísticos para automação e pipelines de CI/CD.

Closes #5


🛠️ Tipo de Alteração

  • feat: Nova funcionalidade
  • fix: Correção de bug
  • refactor: Refatoração de código sem alteração no comportamento
  • perf: Melhoria de performance
  • docs: Alteração ou adição na documentação
  • style: Formatação, linting, imports (sem mudança de lógica)
  • test: Adição ou ajuste de testes automatizados
  • chore: Dependências, scripts ou configurações gerais

📌 Alterações Realizadas

  • Definição de Exit Codes padronizados (internal/cli/exitcodes.go):
    • 0: Sucesso / nenhum finding bloqueante detectado (ExitCodeSuccess).
    • 1: Finding(s) de severidade bloqueante encontrado(s) (ExitCodeFindingsFound).
    • 2: Erro de sintaxe, flags inválidas ou subcomando desconhecido (ExitCodeUsageError).
    • 3: Erro interno durante a execução (ExitCodeInternalError).
  • Módulo de Versão (internal/cli/version.go):
    • Exibição de versão (envguard v0.1.0) e constante Version.
  • Comando envguard scan (internal/cli/scan.go):
    • Flags suportadas: --path / -p, --format / -f (text, terminal, json), --severity / -s (info, warning, high, critical, all), --no-color.
    • Integração com scanner.Scanner e reporter.Reporter.
  • Comando envguard check (internal/cli/check.go):
    • Otimizado para execução em pipelines de CI/CD, retornando códigos de saída estritos.
  • Orquestrador de CLI (internal/cli/cli.go):
    • Despacho determinístico de subcomandos, exibição de help/uso formatado e suporte a injeção de dependência para testes.
  • Entrypoint (cmd/envguard/main.go):
    • Atualizado para delegar a execução ao cli.Run com os.Exit(code).
  • Suíte de Testes Automatizados (internal/cli/cli_test.go):
    • Cobertura de 100% dos fluxos e comandos (scan, check, version, help, flag errors, missing directory, exit codes 0/1/2/3).

🧪 Como Testar

  1. Execute a suíte de testes automatizados:
    go test -v ./internal/cli/...
    go test ./...
  2. Compile o binário do envguard:
    go build -o envguard ./cmd/envguard
  3. Teste os subcomandos e flags:
    ./envguard version
    ./envguard --help
    ./envguard scan --format json
    ./envguard check --path . --severity high

Checklist do Contribuinte (Pré-Envio)

  • Revi as minhas alterações com git diff e git status.
  • Garanti que nenhum arquivo sensível, segredo (.env), token ou arquivo temporário foi comitado.
  • O código segue os padrões de formatação (gofmt -s -w . e .editorconfig).
  • Os testes automatizados e builds estão passando localmente (go test ./... e go build ./...).
  • As mensagens de commit seguem o padrão Conventional Commits.

⚠️ Breaking Changes / Observações

  • Nenhuma breaking change.

Implementa a CLI com os subcomandos scan, check e version.

Adiciona suporte a flags de configuracao e exit codes deterministicos.

Closes #5
@joaooncode joaooncode added enhancement New feature or request mvp Features and requirements for MVP v0.1.0 labels Aug 30, 2026
@joaooncode
joaooncode merged commit f028970 into main Aug 30, 2026
@joaooncode
joaooncode deleted the feat/cli-commands branch August 30, 2026 04:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request mvp Features and requirements for MVP v0.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(cli): Implementar comandos scan, check e version com exit codes

1 participant