em Django, Git, Github, Português, Python

Projeto Django privado para código aberto sem comprometer a segurança

Uma vez resolvi passar um projeto django que fiz de fechado para aberto e acabei colocando as senhas que usava no servidor de emails no GitHub. É mole?

Bom, se o projeto é novo recomendo o seguinte, nunca coloque dados secretos no seu settings.py e dentro do git, inclusive o SECRET_KEY gerado.faça o seguinte, crie um arquivo settings_local.py na mesma pasta que o seu settings.py

Neste arquivo coloque toda a informação que você não quer que seja compartilhada, como por exemplo:

  • SECRET_KEY
  • EMAIL_HOST_PASSWORD (E outras configurações de Email)
  • SOCIAL TOKENS (como para Facebook e Twitter)
  • etc…

No final do seu arquivo settings.py importe tudo que estiver no settings_local.py:

 try:
     from settings_local import *
 except ImportError:
     pass

Agora você precisa adicionar o settings_local no .gitignore para que ele não seja enviado durante seus commits. Se você ainda não criou o arquivo faça o seguinte:

touch .gitignore
vim .gitignore

Dentro desse arquivo coloque o caminho relativo do seu settings.py, no caso <nome_do_app>/settings_local.py e depois adicione seu gitignore no git.

git add .gitignore
git commit -m "Ignorando o settings local"

Pronto, agora você consegue continuar programando sem se preocupar em colocar dados que não deveria em um projeto OpenSource.

Mas e se você já estava fazendo tudo sem isso e o resto dos dados estão todos no histórico do GIT? Você pode usar o BFG Repo-Cleaner ou o git-filter-branch.

Escreva um comentário

Comentário