Skip to content

feat(cli): Implementar comando init para inicializacao de configuracao e templates - #25

Merged
joaooncode merged 2 commits into
mainfrom
feat/init-command
Sep 2, 2026
Merged

feat(cli): Implementar comando init para inicializacao de configuracao e templates#25
joaooncode merged 2 commits into
mainfrom
feat/init-command

Conversation

@joaooncode

@joaooncode joaooncode commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Descrição

Implementação do subcomando �nvguard init para inicialização de repositórios com o arquivo de configuração .envguard.yaml comentado e geração opcional de templates seguros .env.example sanitizados a partir de variáveis existentes.

Resolve #16.

Tipo de Alteração

  • Nova funcionalidade (feature)
  • Correção de bug (fix)
  • Documentação (docs)
  • Refatoração (refactor)
  • Testes (test)
  • Tooling / CI (chore)

Alterações Realizadas

  • Implementação do pacote internal/initializer:
    • SanitizeEnv: extrai chaves e comentários preservando a formatação visual, esvaziando todos os valores para KEY=.
    • GenerateConfig: gera o arquivo de configuração .envguard.yaml com comentários explicativos para cada seção.
    • GenerateTemplate: gera .env.example sanitizado ou a partir de boilerplate padrão.
    • Validação de colisões de arquivos impedindo sobrescrita acidental na ausência de --force.
  • Implementação do subcomando init na CLI (internal/cli/init.go) com suporte a flags:
    • -p, --path: diretório alvo da inicialização.
    • -f, --force: sobrescreve arquivos pré-existentes.
    • -t, --template: habilita geração de .env.example.
    • --template-from: caminho para arquivo .env fonte a ser sanitizado.
  • Atualização do roteador CLI e ajuda em internal/cli/cli.go.
  • Adição de testes unitários abrangentes em internal/initializer/initializer_test.go e internal/cli/init_test.go.
  • Atualização do CONTEXT.md, README.md e exclusão de docs/adr/ no .gitignore.

Como Testar

  1. Executar os testes automatizados:
    bash go test -v ./...

  2. Testar o comando interativo / localmente:
    `bash

    Compilar binário

    go build -o envguard ./cmd/envguard

    Testar init simples

    ./envguard init --path ./teste-init

    Testar init com template a partir de um .env

    echo "SECRET_API_KEY=123456" > ./teste-init/.env
    ./envguard init --path ./teste-init --template --force
    `

Checklist do Contribuinte

  • O código segue os padrões e estilo do projeto.
  • Novos testes unitários foram adicionados e todos os testes existentes passam.
  • A documentação foi atualizada (README, glossário de domínio).
  • Sem segredos ou arquivos temporários adicionados ao commit.

Breaking Changes / Observações

Nenhuma quebra de compatibilidade com comandos ou funcionalidades anteriores.

@joaooncode joaooncode added the enhancement New feature or request label Sep 2, 2026
@joaooncode joaooncode self-assigned this Sep 2, 2026
@joaooncode
joaooncode merged commit e327cf7 into main Sep 2, 2026
6 checks passed
@joaooncode
joaooncode deleted the feat/init-command branch September 2, 2026 03:41
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(cli): Implementar comando envguard init para inicializacao de configuracao e templates

1 participant