← All posts
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

timestamp git blockchain proof

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:

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.

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:

[![Timestamp GIT](https://timestampgit.dev/api/badgeLink/your-user/your-repo)](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.

  1. 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.

  2. 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 .ots para cada lote diário.

  3. 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.

  4. 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.
  5. 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.

EU label: AI-generated content