Todos os artigos

    Nota de arquitectura

    20 de março de 2026por Gustavo Teixeira Cuco2 min de leitura

    Governança de Segurança do Repo

    Contexto de arquitectura

    Decisão de arquitectura

    Confiança e compliance
    Ver no LinkedIn

    O teu repositório privado não é seguro. Está apenas menos exposto.

    A maioria dos fundadores e product managers trata o repositório do GitHub como um simples local para guardar código. Mas a partir do momento em que um produto cresce — clientes, pagamentos, contratos, credenciais — o repositório deixa de ser apenas código. Passa a ser dados operacionais.

    E há um comportamento do Git que a maioria ignora: apagar um ficheiro não o remove do histórico.

    Um IBAN num ficheiro markdown. Uma API key num .env submetida por engano. Dados de clientes num template de email. Apagas, fazes push, e assumes que desapareceu. Não desapareceu — permanece no histórico e pode ser recuperado por qualquer pessoa com acesso ao repositório.

    Isto não é um problema de escala. É um problema de governança.

    Existem soluções maduras há anos. A encriptação ao nível do repositório permite que determinados ficheiros permaneçam legíveis localmente enquanto ficam encriptados no remoto.

    Ferramentas como o git-crypt mantêm o workflow do Git praticamente inalterado após a configuração. Demora menos tempo a configurar do que a lidar com as consequências de uma fuga de dados.

    Três princípios que aplico em todos os meus repositórios:

    Bloquear à entrada — pre-commit hooks, secret scanning e push protection para reduzir a probabilidade de credenciais entrarem no histórico

    O que não deve viver no repositório — credenciais em bruto pertencem a um secret manager ou password vault, nunca ao código

    O que tem de viver no repositório — se tiver mesmo de lá estar, tem de estar encriptado. Sem excepções — nem "é só temporário", nem "o repositório é privado"

    Basta um colaborador, uma integração de CI/CD, ou uma migração de plataforma para perceber que "privado" não significa "protegido".

    Governança não é overhead. É o que separa um side project de um produto em que alguém confia os seus dados.

    Fontes