Automatisiertes Zeitstempeln von Git-Commits mit einer GitHub-App
Wenn Sie jemals versucht haben zu beweisen, wann ein Git-Commit existierte, kennen Sie bereits die manuelle Routine: Commit-Hashes extrahieren, ein Manifest erstellen, auf Bestätigungen warten, Belegdateien sicher speichern und wiederholen. Es ist repetitiv, leicht zu vergessen, und es bricht zusammen, sobald mehr als ein Repository oder Teammitglied beteiligt ist.
Es gibt einen besseren Weg, Bitcoin-Zeitstempel für Git-Commits mit einer GitHub-App zu automatisieren. Timestamp GIT macht den Existenznachweis zu einem Hintergrunddienst: Installieren Sie die GitHub-App einmal, verbinden Sie ein Repository, und jeder Commit wird nächtlich in der Bitcoin-Blockchain verankert. Sie müssen keine rohen Protokollwerkzeuge ausführen, sich keine Cron-Jobs merken oder ein Blockchain-Experte werden. Der rohe OpenTimestamps-Workflow existiert, aber ihn von Hand zu erledigen ist der schwierige Weg.
Dieser Artikel führt durch den Automatisierungs-Workflow, die einmalige Einrichtung, was zwischen Commit und Bitcoin-Anker passiert und wie Sie die resultierenden Nachweise überwachen und nutzen.
Die manuelle Zeitstempel-Mühsal, die Sie eliminieren können
Der manuelle Prozess zum Zeitstempeln von Git-Commits sieht normalerweise so aus:
- Warten, bis Sie sich daran erinnern, dass ein Commit hätte zeitgestempelt werden sollen.
- Den Commit-Hash aus Git extrahieren.
- Eine Datei mit den Hashes vorbereiten, deren Existenz Sie beweisen möchten.
- Ein Zeitstempel-Tool gegen diese Datei ausführen.
- Warten, bis der Nachweis erstellt und bestätigt ist.
- Den Beleg dauerhaft speichern.
- Hoffen, dass niemand Sie später bittet, die genauen Schritte zu erklären.
Dieser Workflow hat drei ernsthafte Probleme.
Erstens: Entwickler vergessen das Zeitstempeln. Ein Existenznachweis hilft nur, wenn der Zeitstempel vor dem Streitfall erstellt wurde. Wenn Sie sich drei Monate später daran erinnern, sind die Beweise möglicherweise schwächer, als sie hätten sein können.
Zweitens: Nachweise gehen verloren. Eine Belegdatei, die auf einem Laptop, einem alten Backup-Laufwerk oder einem beliebigen Kanal gespeichert ist, ist kein Prüfpfad. In einem rechtlichen oder Compliance-Kontext sehen fehlende Belege wie fehlende Beweise aus.
Drittens: Manuelle Schritte skalieren nicht. Ein Solo-Entwickler kann gelegentlich einen Release-Commit zeitstempeln. Ein Startup mit 15 Repositories, mehreren Mitwirkenden und täglichen Merges kann sich nicht darauf verlassen, dass jemand jeden Abend manuell Hashes exportiert.
Timestamp GIT automatisiert das gesamte OpenTimestamps-Protokoll hinter einem verwalteten Dienst. Das Produkt liest Ihren Quellcode nicht. Es sammelt nur Commit-Hashes, bündelt sie und erstellt kryptografische Nachweise, die in der Bitcoin-Blockchain eingebettet werden. Sie berühren nie eine CLI, Sie bauen nie einen Merkle-Baum, und Sie überwachen nie einen Bestätigungsprozess.
Einmalige Einrichtung: Verbinden Sie Ihr Repository
Der Einrichtungsweg ist so konzipiert, dass er einmal durchgeführt und dann vergessen wird.
Sie beginnen mit der Installation der Timestamp GIT GitHub-App und wählen die Repositories aus, die Sie überwachen möchten. Öffentliche Repositories können über den kostenlosen Open-Source-Plan abgedeckt werden. Private Repositories sind über die Pro-Agency- oder Enterprise-ZK-Pläne verfügbar.
Timestamp GIT bietet zwei Bereitstellungsmodi.
Standardmodus
Im Standardmodus überwacht die GitHub-App Ihr Repository über GitHub-Webhooks. Wenn ein neuer Commit erscheint, liest die App nur den HEAD-Commit-Hash.
Die GitHub-Berechtigungen erfordern Lesezugriff auf das Quell-Repository, da GitHub keinen Nur-Commit-Hash-Zugriffsbereich anbietet. Timestamp GIT benötigt außerdem Lese-Schreib-Zugriff auf das Ziel-Repository, in das die Nachweise geschrieben werden. Der Nachweis-Branch kann im selben Repository oder in einem separaten Schatten-Repository liegen.
Der wichtige Punkt: Ihr Quellcode wird niemals gelesen, kopiert oder gespeichert. Nur Commit-Hashes gelangen in die Timestamp-GIT-Pipeline.
Enterprise-ZK-Modus
Der Enterprise-ZK-Modus ist für Teams gedacht, die keinem Dritten Lesezugriff auf ein Repository gewähren können. Stattdessen läuft eine 12-zeilige GitHub Action auf Ihrer eigenen Infrastruktur und überträgt nur den Commit-Hash an die Timestamp-GIT-API.
In diesem Modus benötigt Timestamp GIT nur Lese-Schreib-Zugriff auf das Ziel-Repository, in dem die Nachweise gespeichert werden. Es benötigt keinen Lesezugriff auf das Quell-Repository. Ihr Quellcode verlässt niemals Ihre Umgebung.
Nach der ersten Verbindung gibt es keine manuellen Schritte. Jeder Commit in einem überwachten Repository wird automatisch erfasst.
Die automatisierte Pipeline: Vom Commit zum Bitcoin-Anker
Sobald ein Repository verbunden ist, übernimmt die Automatisierungs-Pipeline den Rest.
Die Pipeline funktioniert so:
-
Commit-Erkennung
Die GitHub-App erkennt neue Commits über Webhooks, oder Ihre GitHub Action überträgt Commit-Hashes an die API. -
Hash-Warteschlange
Commit-Hashes werden in einem In-Memory-Schlüssel-Wert-Speicher zur Bündelung gespeichert. -
Nächtliche Bündelung
Jede Nacht gruppiert ein Worker ausstehende Hashes und erstellt eine Manifest-.txt-Datei für jedes Repository. -
Merkle-Baum und OpenTimestamps
Timestamp GIT baut nativ einen Merkle-Baum, erstellt OpenTimestamps-Nachweise unter Verwendung öffentlicher Kalender und verankert die Merkle-Wurzel in der Bitcoin-Blockchain. -
Nachweis-Zustellung
Das Manifest und die.ots-Belegdateien werden zurück in einen dedizierten Timestamps-Branch oder ein Schatten-Repository übertragen.
Die Bitcoin-Bestätigung dauert normalerweise einige Stunden, in der Regel etwa drei Stunden. Das bedeutet, dass Nachweise normalerweise am nächsten Tag nach Einreichung der nächtlichen Bündelung verfügbar sind.
Sie können den aktuellen Status eines Repositories über die öffentliche API prüfen:
curl -s https://timestampgit.dev/api/statusLast/acme/widget-api
curl -s https://timestampgit.dev/api/statusCount/acme/widget-api
curl -s https://timestampgit.dev/api/statusSummary/acme/widget-api
Private Repositories hängen einen verschlüsselten HMAC an diese URLs an, sodass nur autorisierte Benutzer den Status sehen können. Der HMAC ist spezifisch für die Timestamp-GIT-Serverinstanz.
Die API stellt außerdem Verifizierungs- und Berichts-Endpunkte bereit:
GET /api/verify/{user}/{repo}/{date}liefert die vollständigen Merkle-Chain-Daten zur lokalen Verifizierung eines bestimmten Tages.GET /api/audit/{user}/{repo}lädt das vollständige Prüfprotokoll als CSV herunter.GET /api/report/{user}/{repo}/{date}lädt ein PDF-Zertifikat für ein bestimmtes Datum herunter.
Der Repository-Verwaltungs-Endpunkt, GET /api/repos/{user}, listet überwachte Repositories nach der Installation der GitHub-App auf.
Für den Enterprise-ZK-Modus stellt der Einrichtungsassistent eine signierte URL bereit. Die GitHub Action überträgt nur die Commit-Kennung an diese URL. Der Workflow ist bewusst klein gehalten, ohne dass ein Quellcode-Checkout über die bereits in GitHub Actions verfügbare Ereignisnutzlast hinaus erforderlich ist.
Überwachung und Fehlerbehandlung
Automatisierung sollte beobachtbar sein. Timestamp GIT bietet ein öffentliches Status-Dashboard für jedes Repository.
Das Dashboard umfasst:
- Nachweis-Lebensdauer
- Frühestes Ankerdatum
- Tägliche Regelmäßigkeit
- Bitcoin-Block- und Transaktionsdaten
- Eine Kalender-Heatmap
- Herunterladbares Prüf-CSV
- PDF-Zertifikat-Downloads
Sie können auch ein Verifizierungs-Badge in Ihre README einbetten. Der authentifizierte Endpunkt GET /api/badgeLink/{user}/{repo} liefert Badge-URLs und gebrauchsfertige Markdown-Snippets für Shields.io. Das Badge zeigt öffentlich den Verifizierungsstatus an und verlinkt auf die Verifizierungsseite.
Wenn die Bitcoin-Bestätigung länger als erwartet dauert, zeigt das Status-Dashboard, wo sich der Nachweis im Prozess befindet. Da das System nächtlich bündelt, bedeutet eine langsame Bestätigung normalerweise, dass der Nachweis einige Stunden später als üblich erscheint, anstatt zu verschwinden. Die in der Warteschlange befindlichen Hashes bleiben in der Pipeline, und Sie können die Statusseite für den aktuellen Zustand prüfen.
Die wichtige Garantie: Ihr Nachweis ist nicht davon abhängig, dass Timestamp GIT verfügbar bleibt. Die .ots-Dateien werden in Ihrem Repository gespeichert, und der Nachweis stützt sich nur auf SHA-256 und Bitcoin-Blockdaten. Sie können ihn lokal verifizieren, selbst wenn das Unternehmen verschwindet.
Best Practices für automatisiertes Zeitstempeln
Automatisierung beseitigt die manuelle Last, aber ein paar Gewohnheiten machen die Beweise stärker.
Stempeln Sie jeden Commit, nicht nur Releases.
Releases sind nützliche Meilensteine, aber eine kontinuierliche Kette von Commit-Hashes schafft eine viel reichhaltigere Aufzeichnung. Wenn ein Streitfall ein bestimmtes Implementierungsdetail betrifft, kann ein Zeitstempel auf Release-Ebene zu grob sein.
Verwenden Sie ein dediziertes Schatten-Repository für Nachweise.
Das Aufbewahren von .ots-Dateien und Manifestdateien in einem separaten Nachweis-Repository hält Ihr Haupt-Repository sauber. Es erleichtert auch die Prüfsammlung, da alle Nachweisdaten an einem Ort liegen.
Ziehen Sie Docker-Self-Hosting für luftabgeschottete Umgebungen in Betracht.
Timestamp GIT ist als Docker-Image für Teams verfügbar, die maximale Kontrolle benötigen. Die Schnellstart-Konfiguration lautet:
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
docker compose pull
docker compose up -d
docker compose logs -f timestampgit
Die Anwendung ist nach dem Start unter http://localhost:8080 verfügbar. Ein Einrichtungsassistent führt Sie durch das Verbinden Ihrer GitHub-App und die Konfiguration der Instanz. Eine zeitlich begrenzte Demo-Lizenz ist auf der Docker-Lizenzseite verfügbar.
Laden Sie Prüfberichte regelmäßig herunter.
Behandeln Sie das CSV-Prüfprotokoll und die PDF-Zertifikate als Rechtsdokumente. Speichern Sie sie zusammen mit Ihren anderen IP-Schutzaufzeichnungen. Warten Sie nicht auf einen Streitfall, um mit der Beweissammlung zu beginnen.
Kombinieren Sie Zeitstempel mit anderen IP-Schutzstrategien.
Zeitstempel sind kein Ersatz für Patente, Verträge oder Geschäftsgeheimnis-Richtlinien. Sie sind der kryptografische Nachweis, der diese anderen Strategien deutlich schwerer anfechtbar macht.
FAQ
Benötigt die GitHub-App Zugriff auf meinen Quellcode?
Nein. Im Standardmodus liest die GitHub-App nur den HEAD-Commit-Hash, nicht den Code selbst. Im Enterprise-ZK-Modus überträgt eine GitHub Action auf Ihrer Infrastruktur nur den Commit-Hash an die API, sodass der Quellcode niemals Ihre Umgebung verlässt.
Wie lange dauert es, bis ein Commit zeitgestempelt ist?
Commits werden nächtlich gebündelt. Der Bitcoin-Verankerungsprozess dauert nach Einreichung der Bündelung normalerweise einige Stunden, sodass Nachweise in der Regel am nächsten Tag verfügbar sind. Sie können das Status-Dashboard für Echtzeit-Updates prüfen.
Kann ich den Zeitstempel verifizieren, ohne mich auf Timestamp GIT zu verlassen?
Ja. Der Nachweis ist eine Standard-OpenTimestamps-.ots-Datei, die unabhängig mit öffentlichen Tools und der Bitcoin-Blockchain verifiziert werden kann. Timestamp GIT bietet außerdem eine browserbasierte Verifizierungsseite und herunterladbare PDF-Zertifikate.
Was passiert, wenn Timestamp GIT sein Geschäft aufgibt?
Ihre Nachweise bleiben gültig, weil sie in der Bitcoin-Blockchain verankert sind und nur offene Standards wie SHA-256 und OpenTimestamps verwenden. Sie können sie jederzeit offline verifizieren, und die .ots-Dateien werden in Ihrem Repository gespeichert.
Automatisieren Sie den Nachweis, behalten Sie die Kontrolle
Manuelles Zeitstempeln lässt sich intern leicht verkaufen, ist in der Praxis aber schwer aufrechtzuerhalten. Der Wert des Existenznachweises liegt in der Konsistenz: jeder Commit, jeden Tag, ohne fehlende Belege.
Timestamp GIT macht daraus einen Hintergrundprozess. Installieren Sie die GitHub-App einmal, verbinden Sie Ihre Repositories, und die nächtliche Pipeline übernimmt Commit-Hashes, Merkle-Bäume, OpenTimestamps-Nachweise, Bitcoin-Verankerung und Nachweis-Zustellung. Sie überwachen die Ergebnisse über ein Dashboard, Badges, CSV-Prüfungen und PDF-Zertifikate.
Öffentliche Repositories können kostenlos starten. Private Repositories werden durch Pro Agency und Enterprise ZK abgedeckt. Wenn Sie luftabgeschottete Kontrolle benötigen, bringt die Docker-Self-Hosting-Lizenz dieselbe Automatisierung in Ihre eigene Infrastruktur.
Beginnen Sie mit Timestamp GIT und machen Sie den Existenznachweis zu einem normalen Bestandteil Ihres Commit-Workflows.
Verwandte Beiträge
- OpenTimestamps-Alternative: Verwaltetes Zeitstempeln für Git
- Codeschutz für Freiberufler: Eine Zeitstempel-Lösung
- Wie Bitcoin beweisen kann, dass Ihre IP zuerst existierte