Instale um GitHub App para Carimbo de Tempo Automático de Código
Instale um GitHub App para Carimbo de Tempo Automático de Código
Você quer instalar um GitHub app para carimbo de tempo de código, de modo que cada commit que você fizer seja automaticamente ancorado à blockchain do Bitcoin—sem manter scripts, executar cron jobs ou lidar com o OpenTimestamps você mesmo. É exatamente isso que o Timestamp GIT faz: instale o GitHub App uma vez, selecione quais repositórios proteger, e cada commit é hasheado, agrupado em lote e ancorado ao Bitcoin todas as noites. Nenhuma etapa manual após a configuração.
Este guia é transacional. Você está pronto para implementar, não apenas avaliar. Ao final, você terá o GitHub App Timestamp GIT instalado, seu primeiro repositório conectado e um selo de verificação ou trilha de auditoria em vigor.
Você poderia executar o OpenTimestamps manualmente, criar transações Bitcoin à mão e vigiar cron jobs—o caminho difícil. Ou você pode instalar um GitHub App gerenciado e deixar o Timestamp GIT ocultar todo o protocolo por trás de um fluxo de trabalho sem configuração. Este artigo percorre o primeiro caminho.
Pré-requisitos para Instalar o GitHub App Timestamp GIT
Antes de começar, certifique-se de ter:
- Direitos de administrador no GitHub no repositório ou organização que você deseja proteger. Você precisa de permissão para instalar um GitHub App e conceder acesso ao repositório.
- Uma conta Timestamp GIT em timestampgit.dev. Cadastre-se com sua identidade do GitHub.
- Compreensão dos dois modos de implantação:
- Modo Padrão (GitHub App): O app lê o hash do commit HEAD dos repositórios monitorados automaticamente. Ele requer acesso somente leitura ao repositório de origem porque o GitHub não oferece permissões apenas de hash de commit. Ele também requer acesso de leitura e gravação ao repositório de destino onde as provas serão armazenadas.
- Modo Enterprise ZK (GitHub Action): Uma GitHub Action de 12 linhas executa na sua própria infraestrutura e envia apenas hashes de commit para a API do Timestamp GIT. O app não tem acesso algum ao seu repositório de origem. Você só precisa de acesso de leitura e gravação ao repositório de destino.
- Um plano pago se você estiver carimbando repositórios privados. O plano gratuito Open Source cobre repositórios públicos. Repositórios privados exigem Pro Agency ($49/mês) ou Enterprise ZK ($199/mês). Páginas de status privadas e selos são protegidos com um token HMAC criptografado.
- Nenhuma ferramenta local ou utilitário de CLI. Tudo é gerenciado por meio do aplicativo web Timestamp GIT e do GitHub App. Você não instala nada nas suas máquinas de desenvolvimento.
Passo a Passo: Instalar e Configurar o GitHub App
Passo 1: Faça login no Timestamp GIT e abra a página de instalação do GitHub App
Entre em timestampgit.dev. Depois de logado, navegue até a página de configuração de repositório—geralmente Seus Repositórios no painel. Clique na opção para instalar o GitHub App.
Passo 2: Autorize o Timestamp GIT na sua conta ou organização do GitHub
Clique em Instalar GitHub App. O GitHub solicitará que você escolha entre sua conta pessoal e quaisquer organizações que você administra. Selecione a conta que possui os repositórios que você deseja proteger.
Passo 3: Selecione os repositórios e defina as permissões de origem
Escolha quais repositórios o Timestamp GIT deve monitorar.
- No Modo Padrão, conceda acesso somente leitura aos repositórios de origem. O GitHub App precisa dessa permissão porque o GitHub não fornece uma permissão apenas de hash de commit. O Timestamp GIT extrai apenas o hash do commit; ele nunca lê ou armazena seu código-fonte.
- No Modo Enterprise ZK, não conceda nenhum acesso ao repositório de origem. A GitHub Action executa no seu pipeline de CI e envia apenas hashes para a API, então o app nunca toca no seu código.
Passo 4: Escolha onde as provas de carimbo de tempo serão armazenadas
Selecione o repositório de destino. Ele pode ser o mesmo repositório do seu código-fonte ou um repositório sombra separado. O Timestamp GIT enviará arquivos de manifesto e recibos .ots para uma branch de timestamps dedicada no repositório de destino.
Para o Modo Padrão, o repositório de destino precisa de acesso de leitura e gravação. Para o Modo Enterprise ZK, você precisa de acesso de leitura e gravação apenas ao repositório de destino.
Passo 5: Para o Modo Enterprise ZK, adicione o workflow da GitHub Action
Se você escolheu o Modo Enterprise ZK, o painel do Timestamp GIT gera um trecho YAML de 12 linhas para você. Copie-o para um arquivo de workflow no seu repositório de origem, por exemplo .github/workflows/timestampgit.yml.
Um workflow gerado se parece com isto (use o trecho exato do seu painel):
# Enterprise ZK Mode workflow generated by Timestamp GIT.
# This runs on your infrastructure and sends only commit hashes.
name: timestamp-git-zk
on:
push:
branches: [main]
jobs:
send-hash:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Send commit hash to Timestamp GIT
env:
TIMESTAMPGIT_HMAC: ${{ secrets.TIMESTAMPGIT_HMAC }}
run: |
# The exact command is generated by Timestamp GIT.
# It pushes the HEAD commit hash to the API endpoint.
A action envia apenas o hash do commit. Seu código-fonte nunca sai do seu ambiente.
Passo 6: Confirme a configuração no painel do Timestamp GIT
Volte ao Timestamp GIT e confirme a instalação. No Modo Padrão, o GitHub App começará a detectar commits via webhooks do GitHub automaticamente. No Modo Enterprise ZK, a Action enviará hashes de commit para a API a cada push.
Neste ponto, você deve ver seu repositório listado em Seus Repositórios com um status mostrando que ele está conectado.
Passo 7: Adicione um selo de verificação ao seu README
Na página do repositório conectado (https://timestampgit.dev/connected/{user}/{repo}), copie o trecho markdown para um selo Shields.io. Ele se parece com isto, com seus nomes reais de usuário e repositório:
[](https://timestampgit.dev/status/your-user/your-repo)
Cole-o no seu README.md. Visitantes públicos podem clicar no selo para ver o status de verificação público do seu repositório.
Como Confirmar que o Carimbo de Tempo Está Funcionando
Após a instalação, aguarde o lote noturno e a confirmação do Bitcoin. Veja como verificar se seus primeiros commits foram ancorados corretamente.
-
Verifique a página de status do repositório. Abra
https://timestampgit.dev/status/{user}/{repo}. Ela mostra a data de ancoragem mais antiga, regularidade diária, dados de bloco e transação do Bitcoin e um mapa de calor de calendário dos commits carimbados. -
Procure a branch de timestamps. No seu repositório de destino, encontre a branch de timestamps dedicada (ou o repositório sombra). Ela contém arquivos de manifesto e arquivos de recibo
.otspara cada lote diário. -
Execute a verificação local no navegador. Visite
https://timestampgit.dev/verification/{user}/{repo}/{date}. A página realiza uma verificação passo a passo da cadeia Merkle localmente no seu navegador—zero-knowledge, ninguém vê o que você verifica. Você não precisa instalar nada. -
Baixe registros de conformidade. Use os endpoints de CSV de auditoria e certificado PDF. Por exemplo:
https://timestampgit.dev/api/audit/{user}/{repo}baixa o livro-razão de auditoria completo como CSV.https://timestampgit.dev/api/report/{user}/{repo}/{date}baixa um certificado PDF para um dia específico.
-
Lembre-se do tempo. Os commits são agrupados em lote todas as noites por um cron worker. A raiz Merkle é então ancorada em uma transação Bitcoin. A confirmação do Bitcoin normalmente leva cerca de 3 horas, então as provas geralmente estão disponíveis no dia seguinte. Se você não vir uma prova imediatamente após um commit, isso é esperado.
Solução de Problemas Comuns de Instalação
Problema: Nenhum commit está sendo carimbado.
Verifique se o GitHub App tem as permissões corretas e se o repositório está selecionado no painel do Timestamp GIT. No Modo Padrão, o app precisa de acesso somente leitura ao repositório de origem e acesso de leitura e gravação ao repositório de destino. No Modo Enterprise ZK, a GitHub Action deve estar instalada no repositório de origem e configurada para enviar à API.
Problema: Provas não aparecem após um dia.
Confirme que o cron worker noturno executou e que a transação Bitcoin foi confirmada. A confirmação do Bitcoin geralmente leva cerca de 3 horas após o lote ser processado. Verifique a página de status do repositório para as informações do último bloco ancorado. Se já passaram mais de 24 horas, verifique se o repositório de destino tem uma branch de timestamps e se o GitHub App ainda tem acesso de gravação.
Problema: O status do repositório privado não está visível.
Páginas de status e selos de repositórios privados são protegidos com um token HMAC criptografado. Certifique-se de estar usando a URL autenticada que contém o valor HMAC. Confirme também que você está em um plano pago (Pro Agency ou Enterprise ZK). O plano gratuito Open Source não cobre repositórios privados.
Problema: O Modo Enterprise ZK não está enviando hashes.
Verifique se o arquivo de workflow da GitHub Action está presente em .github/workflows/ e se o secret TIMESTAMPGIT_HMAC está definido corretamente nas configurações do seu repositório. Verifique os logs de execução do workflow no GitHub Actions para confirmar que o endpoint da API está acessível e que a action foi concluída com sucesso.
Problema: A verificação falha localmente na página de verificação pública ou com um arquivo .ots baixado.
Certifique-se de estar usando o arquivo .ots correto para a data específica. Confirme também que suas ferramentas locais de OpenTimestamps estão atualizadas se você estiver verificando fora do navegador. A própria página de verificação realiza toda a computação localmente e deve funcionar com qualquer navegador moderno.
FAQ
O GitHub App Timestamp GIT tem acesso ao meu código-fonte?
No modo Padrão, o GitHub App requer acesso somente leitura ao repositório de origem porque o GitHub não fornece permissões apenas de hash de commit. No entanto, o Timestamp GIT extrai apenas o hash do commit e nunca lê ou armazena seu código-fonte. No modo Enterprise ZK, a GitHub Action executa na sua infraestrutura e envia apenas o hash do commit para a API, então o app não tem acesso algum ao seu repositório de origem.
Quanto tempo leva para um commit ser carimbado na blockchain do Bitcoin?
Os commits são agrupados em lote todas as noites. Após o lote ser processado, a raiz Merkle é ancorada em uma transação Bitcoin. A confirmação do Bitcoin normalmente leva cerca de 3 horas, então a prova geralmente está disponível no dia seguinte. Você pode monitorar o status no painel do seu repositório.
Posso usar o Timestamp GIT para repositórios privados?
Sim, repositórios privados são suportados nos planos Pro Agency ($49/mês) e Enterprise ZK ($199/mês). O plano gratuito Open Source é limitado a repositórios públicos. Páginas de status e selos de repositórios privados são protegidos com um token HMAC criptografado.
O que acontece se o Timestamp GIT sair do ar? Ainda posso verificar meus carimbos de tempo?
Suas provas são armazenadas como arquivos .ots no seu repositório e ancoradas na blockchain do Bitcoin. Você pode verificá-las independentemente usando ferramentas padrão do OpenTimestamps e dados de blocos do Bitcoin. Nenhuma tecnologia proprietária é necessária, então sua evidência permanece válida mesmo sem o Timestamp GIT.
Conclusão: Comece a Proteger Seu Código Hoje
Instalar o GitHub App Timestamp GIT leva alguns minutos. Depois disso, cada commit em um repositório monitorado é impresso digitalmente, agrupado em lote e ancorado na blockchain do Bitcoin automaticamente. Você obtém evidências prontas para tribunal, provas independentes de fornecedor e zero esforço contínuo.
Se você precisa de segurança máxima em um ambiente air-gapped ou auto-hospedado, o Timestamp GIT também está disponível como uma imagem Docker com uma licença de demonstração por tempo limitado. Mas para a maioria das equipes, o GitHub App gerenciado é o caminho mais rápido para o estado da técnica criptográfico.
Comece em Timestamp GIT, cadastre-se, instale o GitHub App e conecte seu primeiro repositório hoje.