Primeiramente, muito obrigado por dedicar seu tempo para contribuir com o envguard! 🎉
Projetos de código aberto são feitos por e para a comunidade, e toda a contribuição — seja corrigindo um bug, sugerindo
uma funcionalidade, melhorando a documentação ou escrevendo testes — é muito bem-vinda.
- Código de Conduta
- Como Contribuir?
- Ambiente de Desenvolvimento
- Padrões de Código e Qualidade
- Convenção de Commits (Conventional Commits)
- Fluxo de Pull Requests
Ao participar deste projeto, você concorda em cumprir o nosso Código de Conduta. Esperamos que todos os participantes mantenham um ambiente respeitoso, inclusivo e seguro para todos.
Se você encontrou um comportamento inesperado ou erro:
- Verifique na aba Issues se o problema já foi reportado.
- Caso não exista, abra uma nova issue com:
- Uma descrição clara do problema.
- Passos para reproduzir o erro.
- Sistema operacional e versão do Go/envguard.
- Logs ou mensagens de erro relevantes (certifique-se de não incluir credenciais reais nos logs!).
Ideias para novas funcionalidades são muito bem-vindas!
- Abra uma issue detalhando a motivação da sugestão e como ela beneficiaria os usuários.
- Descreva cenários de uso ou propostas de interface na CLI.
Se deseja resolver uma issue ou adicionar uma funcionalidade:
- Comente na issue em que deseja trabalhar para alinharmos e evitarmos retrabalho com outros contribuidores.
- Siga as diretrizes de desenvolvimento abaixo.
# 1. Faça um Fork do repositório no GitHub para sua conta
# 2. Clone o seu fork
git clone https://github.com/<seu-usuario>/envguard.git
cd envguard
# 3. Adicione o repositório upstream oficial
git remote add upstream https://github.com/joaooncode/envguard.git
# 4. Baixe as dependências do módulo Go
go mod download# Executar a CLI em desenvolvimento
go run ./cmd/envguard scan
# Executar a suíte de testes automatizados
go test ./...
# Executar testes com cobertura
go test -cover ./...
# Compilar o binário localmente
go build -o envguard ./cmd/envguardPara manter a consistência em todo o projeto:
- Formatação Oficial do Go:
- Execute sempre o
gofmtantes de comitar:gofmt -s -w .
- EditorConfig & Prettier:
- O projeto possui
.editorconfige.prettierrcconfigurados. - Mantenha Tabs para arquivos Go e 2 espaços para Markdown, YAML e JSON.
- Segurança em Primeiro Lugar:
- Regra fundamental: O
envguardnunca deve imprimir nem expor valores de variáveis de ambiente ou segredos detectados.
Utilizamos o padrão Conventional Commits para manter o histórico claro e possibilitar a automação de releases.
Formato: <tipo>(<escopo opcional>): <descrição no imperativo>
feat: Nova funcionalidade.fix: Correção de bug.refactor: Refatoração sem alteração de comportamento externo.perf: Melhoria de desempenho.docs: Alterações ou adições na documentação.style: Formatação, linting ou imports (sem alteração de lógica).test: Criação ou atualização de testes automatizados.chore: Atualização de dependências, builds ou configurações gerais.
git commit -m "feat(scanner): implementar detecção recursiva de arquivos .env"
git commit -m "fix(git): tratar repositórios sem commits iniciais"
git commit -m "docs: adicionar guia de instalação no README"- Mantenha sua branch sincronizada com a upstream:
git checkout main git fetch upstream git merge upstream/main
- Crie uma branch local descritiva para a sua tarefa:
git checkout -b feat/minha-nova-feature
- Implemente as alterações com testes:
- Adicione testes unitários para o código novo/corrigido.
- Certifique-se de que
go test ./...está passando.
- Envie para o seu fork:
git push origin feat/minha-nova-feature
- Abra o Pull Request:
- Abra o PR apontando para a branch
maindo repositório oficial. - Preencha os campos do nosso Pull Request Template (
.github/pull_request_template.md) com clareza. - Marque a checklist pré-envio.
Muito obrigado por ajudar a tornar o envguard cada vez melhor e mais seguro!