← All posts
Configura il timestamping automatico dei commit Git in pochi minuti

Configura il timestamping automatico dei commit Git in pochi minuti

timestamp git blockchain proof

Configura la marcatura temporale automatica dei commit Git in pochi minuti

Se hai mai provato a dimostrare quando è stato scritto un pezzo di codice, conosci la danza manuale: eseguire un comando di marcatura temporale dopo ogni commit importante, conservare la ricevuta da qualche parte in modo duraturo, ricordare quali file sono coperti e sperare di non aver saltato proprio il commit che in seguito diventa il centro di una controversia. È ripetitivo, soggetto a errori e quasi impossibile da sostenere lungo l’intero ciclo di vita di un progetto reale.

La marcatura temporale automatica dei commit Git elimina completamente questo onere. Con il giusto servizio gestito, diventa una configurazione una tantum che richiede pochi minuti, non un’attività continua. Timestamp GIT offre esattamente questo: una GitHub App che ancora gli hash dei tuoi commit alla blockchain di Bitcoin ogni notte, senza che tu debba toccare una CLI o gestire file di ricevuta.

Questo articolo illustra la configurazione, la pipeline automatizzata, il monitoraggio e le best practice, così puoi configurarla e dimenticartene.


L’attività ripetitiva che puoi eliminare

I flussi di lavoro tradizionali di marcatura temporale costringono gli sviluppatori in un ciclo di passaggi manuali:

È un sistema fragile. Gli esseri umani dimenticano. Le ricevute si perdono. L’intera idea di dimostrare “ho scritto questo codice in questa data” crolla quando il processo dipende dalla memoria e dalla disciplina.

Potresti eseguire tu stesso il protocollo OpenTimestamps sottostante, ma ciò significa scrivere script attorno ai comandi CLI, gestire le ricevute e monitorare le conferme sulla blockchain. È la strada difficile, ed è esattamente ciò che Timestamp GIT elimina.

Timestamp GIT automatizza ogni passaggio: una volta installata la GitHub App, ogni commit in un repository monitorato viene raccolto, raggruppato e ancorato a Bitcoin ogni notte. Non esegui mai un comando, non gestisci una ricevuta e non devi ricordarti di marcare nulla. È marcatura temporale automatica dei commit Git nel senso più autentico.

Per una guida dettagliata all’installazione vera e propria, consulta Install a GitHub App for Automatic Code Timestamping. Questo articolo si concentra sulla configurazione end-to-end e sull’automazione che viene eseguita successivamente.


Configurazione una tantum: collega il tuo repository

La configurazione richiede pochi minuti. Ecco il flusso:

  1. Installa la GitHub App Timestamp GIT dal GitHub Marketplace.
  2. Seleziona i repository che vuoi monitorare. I repository pubblici o privati sono supportati in base al tuo piano.
  3. Scegli il tuo modello di autorizzazioni:
    • Modalità Standard: la GitHub App richiede accesso in sola lettura al repository sorgente. Legge solo l’hash del commit HEAD, mai il contenuto dei file.
    • Modalità Enterprise ZK: nessun accesso in lettura al codice sorgente. Una GitHub Action sulla tua infrastruttura invia solo l’hash del commit all’API di Timestamp GIT. Il tuo codice sorgente non lascia mai il tuo ambiente.
  4. Conferma l’installazione.

Dopodiché non ci sono ulteriori passaggi manuali. Il sistema osserva il repository, rileva automaticamente i nuovi commit ed esegue la pipeline di marcatura temporale ogni notte.

Se utilizzi il self-hosting tramite l’immagine Docker, una procedura guidata di configurazione ti accompagna nel collegamento della GitHub App e nella configurazione dell’istanza. Per la maggior parte dei team, la GitHub App SaaS è il percorso più rapido.


La pipeline automatizzata: dal commit all’ancoraggio su Bitcoin

Ecco cosa succede dopo aver collegato un repository:

Raggruppamento notturno

Ogni hash di commit viene archiviato in una coda in memoria man mano che arriva. Ogni notte, un worker viene eseguito e raggruppa tutti gli hash in sospeso per ciascun repository. Crea file manifest (.txt), costruisce nativamente un albero di Merkle e genera le prove OpenTimestamps utilizzando calendari pubblici.

La radice di Merkle del lotto giornaliero viene quindi ancorata a un blocco Bitcoin tramite il protocollo OpenTimestamps. Una volta confermata nella blockchain, la marca temporale diventa immutabile: nessuna entità, incluso Timestamp GIT, può alterarla o falsificarla.

Consegna delle prove

Dopo la conferma dell’ancoraggio (in genere circa 3 ore), Timestamp GIT invia il manifest e i file di ricevuta .ots al tuo repository in un branch dedicato timestamps o in un repository ombra. Non devi recuperare nulla manualmente; la prova è versionata direttamente accanto al tuo codice.

Modalità Enterprise ZK in 12 righe

Se non puoi concedere l’accesso in lettura al tuo codice sorgente, la modalità Enterprise ZK utilizza una GitHub Action che viene eseguita sulla tua infrastruttura. Invia solo l’hash del commit all’API. Ecco un esempio minimo funzionante:

name: Timestamp commit hash
on: [push]
jobs:
  anchor:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: |
          curl -X POST "https://timestampgit.dev/api/timestamp/${{ github.repository }}/${{ github.ref_name }}/${{ github.sha }}/${{ secrets.TIMESTAMPGIT_HMAC }}"

Questa è l’intera action. Il template effettivo viene fornito durante la configurazione di Enterprise ZK, ma il principio è semplice: invia l’ID del commit e un HMAC firmato all’API, e nient’altro lascia il tuo ambiente.

API REST per stato, verifica e audit

L’automazione si estende alla reportistica. Gli endpoint pubblici ti consentono di interrogare lo stato della prova senza accedere a una dashboard:

# Informazioni sull'ultimo blocco Bitcoin ancorato
curl https://timestampgit.dev/api/statusLast/your-org/your-repo

# Conteggio totale dei commit marcati/committati
curl https://timestampgit.dev/api/statusCount/your-org/your-repo

# Riepilogo combinato per i badge Shields.io
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo

# Scarica il registro di audit completo in formato CSV
curl -O https://timestampgit.dev/api/audit/your-org/your-repo

# Scarica il certificato PDF per una data specifica
curl -O https://timestampgit.dev/api/report/your-org/your-repo/2026-08-19

Per i repository privati, questi URL includono un HMAC crittografato specifico per la tua istanza, quindi solo gli utenti autorizzati possono accedere allo stato. Tutto questo è automatico: non è richiesto alcun intervento da parte dello sviluppatore.


Monitoraggio e gestione degli errori

Una volta che la pipeline è in esecuzione, hai bisogno di visibilità sullo stato delle prove e di un modo per rilevare i problemi.

Dashboard di stato pubblica

Ogni repository dispone di una dashboard pubblica all’indirizzo https://timestampgit.dev/status/{user}/{repo}. Mostra:

Puoi anche scaricare un CSV di audit e un certificato PDF per qualsiasi data. Sono utili per la conformità e la conservazione offline dei registri.

Badge di verifica incorporabili

Timestamp GIT fornisce snippet di badge che puoi incollare nel tuo README. Il badge mostra lo stato di verifica in tempo reale e collega a una pagina di verifica pubblica dove chiunque può ispezionare la catena di Merkle. La pagina esegue tutti i calcoli localmente nel browser: verifica a conoscenza zero.

Gestione di ritardi e giorni mancanti

La conferma su Bitcoin richiede tempo, normalmente circa 3 ore. Il sistema gestisce automaticamente questo ritardo; la prova viene scritta una volta confermato l’ancoraggio. Se esegui un commit dopo l’orario limite notturno, l’hash viene incluso nel lotto del giorno successivo.

Se in un giorno non ci sono commit, non viene generata alcuna marca temporale per quel giorno. Le prove esistenti rimangono valide; il sistema salta semplicemente il lotto vuoto.

Per i repository privati, gli URL firmati con HMAC proteggono l’accesso alle pagine di stato e verifica. Solo le persone con l’HMAC corretto possono vedere lo stato della prova.


Best practice per una marcatura temporale affidabile

Per ottenere il massimo dalla marcatura temporale automatica dei commit Git, segui queste linee guida:


FAQ

Come funziona la marcatura temporale automatica dei commit Git?

Timestamp GIT utilizza una GitHub App per rilevare automaticamente i nuovi commit. Ogni notte raccoglie gli hash dei commit, costruisce un albero di Merkle e ancora la radice nella blockchain di Bitcoin tramite OpenTimestamps. Le ricevute di prova (file .ots) vengono inviate al tuo repository, fornendo una prova immutabile di esistenza.

Il mio codice sorgente viene mai esposto a Timestamp GIT?

No. In modalità Standard, la GitHub App legge solo gli hash dei commit, non il contenuto dei file. In modalità Enterprise ZK, una GitHub Action sulla tua infrastruttura invia solo gli hash all’API, quindi il tuo codice sorgente non lascia mai il tuo ambiente.

Cosa succede se salto un giorno di commit?

Se in un determinato giorno non vengono effettuati commit, non viene generata alcuna marca temporale per quel giorno. Il sistema ancora solo gli hash dei commit effettuati. Le prove esistenti rimangono valide e i commit futuri verranno marcati automaticamente.

Posso verificare le marche temporali senza dipendere dai server di Timestamp GIT?

Sì. I file di ricevuta .ots possono essere verificati indipendentemente utilizzando gli strumenti standard OpenTimestamps contro la blockchain di Bitcoin. Timestamp GIT fornisce anche una pagina di verifica basata su browser che esegue tutti i calcoli localmente.


Configurala e dimenticatene

La marcatura temporale automatica dei commit Git trasforma un’attività noiosa e soggetta a errori in un processo in background. Installi la GitHub App una volta, colleghi i tuoi repository e ogni commit viene ancorato a Bitcoin ogni notte: nessun comando manuale, nessuna gestione delle ricevute, nessun dover ricordare.

Timestamp GIT è il servizio gestito che rende tutto questo possibile. Nasconde la complessità di OpenTimestamps dietro una GitHub App pulita, consegna le prove direttamente al tuo repository e ti offre dashboard, badge e API per la verifica. Pronto per iniziare? Installa la GitHub App, collega un repository e lascia che l’ancoraggio notturno abbia inizio.


Articoli correlati

EU label: AI-generated content