Timestamp GIT Secure your prior art without exposing code

← Todos os artigos

2026-09-09

Automatize o registro de data e hora em commits do Git com um GitHub App

Automatize o registro de data e hora em commits do Git com um GitHub App
timestamp git blockchain proof

Automatize o Carimbo de Tempo de Commits Git com um GitHub App

Se você já tentou provar quando um commit Git aconteceu, conhece a rotina manual: criar um recibo criptográfico para o hash de um commit, armazenar o arquivo .ots em algum lugar durável, mapear esse recibo de volta ao commit correto e repetir o processo para cada branch e repositório que importa. Perca um commit e você terá uma lacuna no seu registro de estado da técnica.

O Timestamp GIT substitui essa rotina por um GitHub App que carimba commits Git automaticamente. Este artigo trata do caminho da automação, não dos conceitos criptográficos subjacentes. Para entender os fundamentos da prova de existência e por que ela importa, veja Prova de Existência para Código: O Que É e Por Que Importa.

A Tarefa Manual de Carimbo de Tempo Que Você Pode Eliminar

O carimbo de tempo manual geralmente falha por motivos banais, não por motivos de segurança.

  • Você esquece de carimbar uma branch de feature importante.
  • Os recibos acabam espalhados por laptops, artefatos de CI e pastas aleatórias.
  • Não há um mapeamento claro entre os arquivos de recibo e commits específicos.
  • Diferentes membros da equipe usam processos diferentes, ou nenhum processo.
  • Quando uma disputa realmente acontece, você descobre que o recibo nunca foi criado.

O caminho difícil é trabalhar diretamente com o OpenTimestamps: instalar ferramentas, carimbar hashes de commit manualmente e armazenar os arquivos de recibo você mesmo. Essa abordagem funciona tecnicamente, mas é uma tarefa que compete com o trabalho real de desenvolvimento.

O Timestamp GIT tira essa tarefa das suas costas. É um SaaS gerenciado e GitHub App que automatiza totalmente e oculta o protocolo OpenTimestamps. Uma vez instalado, ele monitora seus repositórios, coleta hashes de commit e os ancora na blockchain do Bitcoin todas as noites. Sem ferramentas de CLI, sem gerenciamento manual de recibos, sem precisar lembrar.

Configuração Única: Conecte Seu Repositório ao GitHub App

O modelo de configuração é deliberadamente simples: instale uma vez, conecte os repositórios e siga em frente.

Modo Padrão com o GitHub App:

  1. Instale o Timestamp GIT GitHub App a partir do GitHub Marketplace.
  2. Conceda acesso aos repositórios que deseja monitorar.
  3. Escolha onde as provas devem ser armazenadas: uma branch dedicada no mesmo repositório ou um repositório-sombra separado.
  4. Pronto.

Após a instalação, o GitHub App começa automaticamente a monitorar novos commits via webhooks. Não há mudanças de código, nem arquivos de configuração locais, nem nada para instalar nas máquinas dos desenvolvedores.

Permissões no Modo Padrão:

  • O app precisa de acesso somente leitura ao repositório de origem para poder ler o hash do commit HEAD.
  • Ele precisa de acesso leitura-escrita ao repositório ou branch de destino onde os arquivos de prova serão armazenados.
  • Ele nunca lê ou armazena seu código-fonte real.

Modo Enterprise ZK para ambientes de conhecimento zero:

Se a sua política de segurança determina que seu código-fonte nunca deve sair da sua infraestrutura, você pode usar o Modo Enterprise ZK. Uma GitHub Action de 12 linhas roda no seu lado e envia apenas o hash do commit para a API do Timestamp GIT. Nesse modo, o Timestamp GIT não precisa de acesso de leitura ao repositório de origem — apenas acesso de leitura-escrita ao repositório de destino onde as provas são armazenadas.

Essa distinção importa para equipes de compliance: o Modo Padrão lê hashes de commit do GitHub, enquanto o Modo Enterprise ZK envia apenas hashes a partir da sua GitHub Action.

O Pipeline Automatizado: Do Commit à Âncora no Bitcoin

Após a configuração, o pipeline roda sem intervenção manual.

Todas as noites, um processo worker coleta os hashes de commit pendentes do dia e os processa em lote:

  1. Os hashes de commit são detectados pelo GitHub App ou enviados pela sua Enterprise ZK Action.
  2. Os hashes ficam em uma fila em memória até a execução noturna.
  3. Um worker cron à meia-noite agrupa os hashes pendentes por repositório.
  4. O worker cria arquivos de manifesto para cada repositório.
  5. Ele constrói uma árvore de Merkle a partir do lote diário.
  6. Ele cria provas OpenTimestamps usando calendários OTS públicos.
  7. A raiz de Merkle é ancorada em um bloco do Bitcoin.

Os arquivos de manifesto e recibos .ots são então enviados de volta para sua branch de timestamps dedicada ou repositório-sombra.

Uma observação importante sobre o tempo: a confirmação do Bitcoin leva várias horas, normalmente cerca de três horas. Como o lote roda à meia-noite e a ancoragem é concluída depois, as provas geralmente aparecem no dia seguinte. Esse atraso não é uma falha — é a rede Bitcoin fazendo o trabalho que torna o carimbo de tempo imutável.

Você pode verificar o último status ancorado com a API REST:

# Informações do último bloco Bitcoin ancorado
curl -s https://timestampgit.dev/api/statusLast/acme/webapp

# Contagem total de commits commitados/carimbados
curl -s https://timestampgit.dev/api/statusCount/acme/webapp

# Resumo combinado usado pelos badges do Shields.io
curl -s https://timestampgit.dev/api/statusSummary/acme/webapp

Substitua acme/webapp pelo seu usuário ou organização do GitHub e o nome do repositório.

Para um README público, você pode incorporar um badge de verificação. A página Repository Connected fornece o snippet Markdown após a instalação. Um badge típico se parece com isto:

[![Timestamp GIT](https://timestampgit.dev/api/statusSummary/acme/webapp)](https://timestampgit.dev/status/acme/webapp)

Para repositórios privados, as URLs de status são protegidas com um HMAC criptografado. Apenas usuários autorizados podem visualizar o status desses repositórios, e o HMAC é específico para a instância do servidor.

Monitoramento e Tratamento de Falhas: Mantendo Suas Provas Saudáveis

Automação não significa ignorar o sistema. Significa monitorar o resultado em vez de executar a tarefa manualmente.

A página de status do repositório é o seu principal painel de saúde. Ela mostra:

  • Longevidade da prova
  • Data de ancoragem mais antiga
  • Regularidade diária
  • Dados de bloco e transação do Bitcoin
  • Um mapa de calor em calendário dos dias carimbados
  • CSV de auditoria para download
  • Certificado PDF por data carimbada

Para monitoramento programático, os endpoints da API pública cobrem os casos comuns:

# Verificar o bloco ancorado mais recente
curl -s https://timestampgit.dev/api/statusLast/acme/webapp

# Contar quantos commits foram carimbados
curl -s https://timestampgit.dev/api/statusCount/acme/webapp

# Buscar um resumo combinado para scripts ou Shields.io
curl -s https://timestampgit.dev/api/statusSummary/acme/webapp

Esses endpoints podem ser conectados ao seu monitor de uptime existente, dashboard interno ou verificação de CI. Por exemplo, um script agendado pode chamar statusLast uma vez por dia e alertar se a data de ancoragem esperada estiver ausente.

Cenários comuns de falha incluem:

  • Acesso ao repositório revogado no GitHub.
  • GitHub App desinstalado.
  • Problemas de rede entre o GitHub e o serviço Timestamp GIT.

Essas falhas aparecem na página de status do repositório em vez de falhar silenciosamente. Como os hashes de commit são agrupados por data, uma execução noturna perdida pode recuperar os hashes pendentes no próximo lote bem-sucedido.

Para compliance e manutenção de registros, baixe periodicamente o CSV de auditoria e o certificado PDF. Armazene-os no seu arquivo legal junto com outra documentação de propriedade intelectual.

Melhores Práticas para Carimbo de Tempo Automatizado de Git

Uma vez que a automação está em vigor, alguns hábitos tornarão seu registro de estado da técnica mais forte.

Carimbe todos os repositórios, incluindo os privados. Muitas equipes só carimbam projetos voltados ao público. Mas trolls de patentes e disputas trabalhistas frequentemente visam sistemas internos e segredos comerciais. Repositórios privados importam tanto quanto, se não mais.

Mantenha os arquivos de prova fora da branch principal de código. Use uma branch de timestamps dedicada ou um repositório-sombra separado. Isso mantém sua branch main limpa enquanto ainda dá aos auditores um único lugar para encontrar recibos .ots e arquivos de manifesto.

Incorpore o badge de verificação no seu README. Um badge visível diz a potenciais infratores que seu histórico de commits está ancorado no Bitcoin. Não é apenas decoração; é um dissuasor de baixo custo.

Use o Modo Enterprise ZK onde o código-fonte deve permanecer interno. Se sua equipe de compliance proíbe acesso de leitura de terceiros a repositórios de código-fonte, a abordagem da GitHub Action envia apenas hashes de commit para a API do Timestamp GIT.

Para ambientes air-gapped ou self-hosted, use a imagem Docker. O Timestamp GIT está disponível como uma imagem Docker para controle total:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

Inicie com:

docker compose pull
docker compose up -d
docker compose logs -f timestampgit

A aplicação fica disponível em http://localhost:8080. No primeiro lançamento, um assistente de configuração guia você pela conexão do seu GitHub App e configuração da instância. Uma licença demo com tempo limitado está disponível na página Docker License.

Baixe relatórios de auditoria periodicamente. Não espere uma disputa legal começar para coletar evidências. Uma exportação trimestral ou mensal leva alguns minutos e fornece um arquivo offline.

FAQ

Como o GitHub App carimba automaticamente meus commits?

Uma vez instalado, o Timestamp GIT GitHub App monitora seu repositório em busca de novos commits via webhooks. Todas as noites, ele coleta todos os hashes de commit do dia, cria uma árvore de Merkle e ancora a raiz na blockchain do Bitcoin usando o protocolo OpenTimestamps. As provas são então enviadas de volta ao seu repositório automaticamente. Nenhuma etapa manual é necessária.

O GitHub App tem acesso ao meu código-fonte?

No Modo Padrão, o app requer acesso somente leitura ao repositório de origem para ler hashes de commit, mas nunca lê ou armazena seu código-fonte real. Para máxima privacidade, o Modo Enterprise ZK usa uma GitHub Action que envia apenas o hash do commit para a API do Timestamp GIT, então seu código-fonte nunca sai do seu ambiente.

Posso usar o Timestamp GIT com repositórios privados?

Sim. Os planos Pro e Enterprise suportam repositórios privados. O app pode armazenar provas em um repositório-sombra ou em uma branch dedicada, e o acesso aos endpoints de status é protegido com HMAC para repositórios privados.

Como posso verificar que meu commit foi carimbado?

Você pode verificar via painel de status público, endpoints da API como /api/statusLast, ou baixando o recibo .ots e executando ferramentas padrão de verificação OpenTimestamps contra a blockchain do Bitcoin. A verificação é independente e não depende dos servidores do Timestamp GIT.

Conclusão: Configure e Esqueça

O carimbo de tempo automatizado de Git muda a pergunta de “Será que lembrei de carimbar este commit?” para “A âncora noturna está aparecendo no meu dashboard?”

O Timestamp GIT cuida de todo o protocolo OpenTimestamps nos bastidores. Você instala o GitHub App uma vez, conecta seus repositórios e deixa o pipeline noturno ancorar hashes de commit no Bitcoin. O resultado é evidência imutável e pronta para tribunal de estado da técnica sem um novo hábito manual.

Comece com o plano gratuito para repositórios públicos, migre para o Pro Agency para repositórios privados, ou use o Enterprise ZK quando o código-fonte deve permanecer dentro da sua infraestrutura. Quem prefere self-hosting pode implantar a imagem Docker para controle total.

Instale o GitHub App hoje em Timestamp GIT e torne o carimbo de tempo algo que seus repositórios fazem automaticamente.

Posts relacionados

EU label: AI-generated content