Automatisches Zeitstempeln jedes Git-Commits mit einer GitHub-App
Jedes Mal, wenn du committest, erzeugt Git bereits einen eindeutigen Hash, der den exakten Zustand deines Repositorys identifiziert. Dieser Hash ist ein kryptografisch sicherer Fingerabdruck deiner Arbeit zu diesem Zeitpunkt. Was er für sich genommen nicht ist, ist ein Beweis dafür, wann die Arbeit existiert hat. Diesen Hash in unveränderliche, gerichtsfeste Beweise umzuwandeln, bedeutete früher einen manuellen Prozess: zusätzliche Befehle ausführen, die Ausgabe überwachen, Belegdateien speichern und das Ganze für jeden Commit wiederholen.
Die automatisierte Alternative ist einfacher: Installiere einmalig eine GitHub-App, wähle deine Repositorys aus und lass jeden zukünftigen Commit an die Bitcoin-Blockchain anbinden – während du schläfst.
Timestamp GIT ist ein verwalteter Dienst, der genau auf dieser Idee aufbaut. Er automatisiert das OpenTimestamps-Protokoll vollständig, sodass du nie eine CLI bedienen, eine Bitcoin-Transaktion erstellen oder Beweisdateien von Hand verwalten musst. Dieser Artikel behandelt die einmalige Einrichtung, die nächtliche Automatisierungspipeline, das Monitoring, Best Practices und häufige Fragen.
Einmalige Einrichtung: Installation der Timestamp-GIT-GitHub-App
Das gesamte Produkt ist um einen einzigen Einrichtungsablauf herum konzipiert. Danach ist das Committen von Code die einzige Aktion, die du noch ausführen musst.
Standardmodus: GitHub-App
- Installiere die Timestamp-GIT-GitHub-App aus dem GitHub Marketplace.
- Erteile die während der Installation angeforderten Berechtigungen. Im Standardmodus benötigt die App Lesezugriff auf das Quell-Repository, da GitHub-Berechtigungen keinen reinen Commit-Hash-Bereich anbieten. Timestamp GIT liest, kopiert oder speichert deinen Quellcode niemals.
- Wähle die Repositorys aus, die du überwachen möchtest. Öffentliche Repositorys werden im kostenlosen Open-Source-Plan unterstützt; private Repositorys erfordern einen kostenpflichtigen Plan.
- Lege fest, wo die Beweisdateien gespeichert werden sollen. Du kannst sie in einem dedizierten
timestamps-Branch im selben Repository ablegen oder in einem separaten Ziel-Repository. Ein separates Schatten-Repository hält deine Haupt-Source-Historie sauber.
Nach der Installation überwacht die GitHub-App die ausgewählten Repositorys automatisch. Es gibt keine CLI-Tools zu installieren, keine OpenTimestamps-Befehle zu lernen und keine manuellen Schritte nach der Einrichtung.
Enterprise-ZK-Modus: GitHub Action
Für Organisationen, die maximale Isolation wünschen, bietet Timestamp GIT einen Enterprise-ZK-Modus an. Anstatt der GitHub-App Lesezugriff auf dein Quell-Repository zu gewähren, läuft eine GitHub Action auf deiner eigenen Infrastruktur und überträgt nur den Commit-Hash an die Timestamp-GIT-API.
Der Workflow sieht folgendermaßen aus:
name: timestamp-git-zk
on:
push:
jobs:
timestamp:
runs-on: ubuntu-latest
steps:
- name: Push commit hash to Timestamp GIT
env:
COMMIT_SHA: ${{ github.sha }}
REPO: ${{ github.repository }}
run: |
curl -fsS -X POST \
-H "Authorization: Bearer ${{ secrets.TIMESTAMP_GIT_HMAC }}" \
-H "Content-Type: application/json" \
-d "{\"repo\":\"$REPO\",\"hash\":\"$COMMIT_SHA\"}" \
"${{ vars.TIMESTAMP_GIT_API_URL }}"
Die genaue API-URL, die Repository-Kennungen und das HMAC-Geheimnis werden während des Enterprise-Einrichtungsassistenten bereitgestellt. Der wichtige Punkt ist, was der Workflow nicht tut: Er sendet niemals Quellcode, Dateien oder Repository-Inhalte. Er sendet einen Commit-Hash und sonst nichts.
In diesem Modus benötigt Timestamp GIT überhaupt keinen Lesezugriff auf dein Quell-Repository.
Die automatisierte Pipeline: Vom Commit zum Bitcoin-Anker
Sobald die GitHub-App oder die GitHub Action eingerichtet ist, wird das Zeitstempeln zu einem Hintergrundjob.
1. Commit-Erkennung
Im Standardmodus empfängt die GitHub-App Webhooks, wenn neue Commits in deinen überwachten Repositorys eingehen. Im Enterprise-ZK-Modus überträgt deine GitHub Action den Commit-Hash direkt an die API.
2. Hash-Warteschlange
Erkannte Commit-Hashes gelangen in einen In-Memory-Key-Value-Speicher, wo sie auf die Stapelverarbeitung warten. Timestamp GIT scannt deinen Code nicht, klont dein vollständiges Repository nicht und prüft keine Dateiinhalte.
3. Nächtlicher Cron-Worker
Jede Nacht gruppiert ein Worker alle ausstehenden Hashes nach Repository. Für jedes Repository erstellt er eine Manifestdatei, baut nativ einen Merkle-Baum auf und erstellt OpenTimestamps-Beweise unter Verwendung öffentlicher OTS-Kalender.
4. Bitcoin-Verankerung
Die Merkle-Wurzel des täglichen Stapels wird mithilfe des OpenTimestamps-Protokolls in eine Bitcoin-Transaktion eingebettet. Sobald diese Transaktion in einem Bitcoin-Block bestätigt ist, wird der Anker unveränderlich. Keine Instanz – einschließlich Timestamp GIT – kann ihn verändern oder fälschen.
Die Bitcoin-Bestätigung dauert normalerweise etwa drei Stunden. Das bedeutet, dass ein Commit, der während des Arbeitstags erstellt wurde, in der Regel bis zum nächsten Morgen verankert ist.
5. Beweisauslieferung
Nach der Bestätigung werden die Manifest- und .ots-Belegdateien an deinen konfigurierten Beweis-Speicherort zurückübertragen: entweder ein dedizierter Timestamps-Branch oder ein Schatten-Repository. Die Beweisdateien sind kleine Text- und Binärdateien, die belegen, dass dein Commit-Hash existierte, bevor der Bitcoin-Block geschürft wurde.
Du kannst den letzten verankerten Block für ein öffentliches Repository mit einem einfachen API-Aufruf abfragen:
curl -s https://timestampgit.dev/api/statusLast/your-org/your-repo
Die Antwort enthält die Informationen zum letzten verankerten Bitcoin-Block. Weitere Endpunkte liefern die Gesamtzahl der gestempelten Commits, kombinierte Statuszusammenfassungen und vollständige Merkle-Chain-Daten für einen bestimmten Tag.
Monitoring und Fehlerbehandlung
Automatisierung ist nur dann nützlich, wenn du sehen kannst, dass sie funktioniert.
Repository-Status-Dashboard
Jedes verbundene Repository erhält eine öffentliche oder authentifizierte Statusseite. Das Dashboard zeigt:
- Beweis-Langlebigkeit: wie weit dein frühestes Ankerdatum zurückreicht
- Tägliche Regelmäßigkeit: ob Commits konsistent gestapelt werden
- Bitcoin-Block- und Transaktionsdaten für jeden Anker
- Eine Kalender-Heatmap für eine visuelle Ansicht der Aktivität
Die Statusseite gibt dir eine schnelle Antwort auf die Frage: „Wurden die gestrigen Commits verankert?“
Audit- und Compliance-Exporte
Timestamp GIT stellt herunterladbare Audit-Aufzeichnungen bereit:
# Vollständiges Audit-Protokoll als CSV herunterladen
curl -o audit.csv https://timestampgit.dev/api/audit/your-org/your-repo
Du kannst auch ein PDF-Zertifikat für ein bestimmtes Datum herunterladen. Diese Exporte sind nützlich für Compliance-Archive, rechtliche Prüfungen oder IP-Dokumentation auf Vorstandsebene.
Umgang mit verpassten Commits
Im Normalbetrieb wird ein Commit, der den nächtlichen Stapel verpasst – beispielsweise weil eine Webhook-Zustellung verzögert wurde – beim nächsten nächtlichen Lauf aufgegriffen. Das stapelorientierte Design bedeutet, dass vorübergehende Ausfälle kein manuelles erneutes Ausführen erfordern.
Datenschutz bei privaten Repositorys
Bei privaten Repositorys sind die Status-Endpunkte mit einem verschlüsselten HMAC geschützt. Nur autorisierte Benutzer mit der korrekten URL-Signatur können den Repository-Status einsehen. Das HMAC ist spezifisch für die Serverinstanz, sodass Statusdaten nicht öffentlich zugänglich sind.
Best Practices für automatisiertes Zeitstempeln
Eine GitHub-App kann die Mechanik automatisieren, aber einige Konfigurationsentscheidungen machen die Beweise stärker und einfacher zu verwalten.
Überwache alle aktiven Repositorys
Überwache nicht nur Release-Branches. Streitigkeiten um den Stand der Technik hängen oft von einem frühen experimentellen Commit, einem Work-in-Progress-Branch oder einem schnellen Prototyp ab. Aktiviere das Monitoring für jedes Repository, in dem bedeutsamer Code geschrieben wird.
Verwende ein dediziertes Schatten-Repository
Wenn du nicht möchtest, dass Beweisdateien dein Haupt-Repository überladen, konfiguriere Timestamp GIT so, dass Beweise in ein separates Repository übertragen werden. Das hält die Source-Historie sauber und gibt Anwälten, Auditoren und Compliance-Teams dennoch einen zentralen Ort für Beweisbelege.
Wähle den Enterprise-ZK-Modus für maximale Isolation
Wenn dein Code hochsensibel ist oder deine Sicherheitsrichtlinie Lesezugriff Dritter auf Quell-Repositorys verbietet, verwende den Enterprise-ZK-Modus. Der GitHub-Action-Ansatz bedeutet, dass dein Quellcode deine Umgebung niemals verlässt. Timestamp GIT erhält ausschließlich Commit-Hashes.
Archiviere Audit-CSVs regelmäßig
Die .ots-Dateien sind der kryptografische Beweis, aber Audit-CSVs sind die menschenlesbare Aufzeichnung. Lade sie nach einem Zeitplan herunter und speichere sie zusammen mit deinen anderen Compliance-Dokumenten. In einem Streitfall spart ein sauberes chronologisches Protokoll Zeit.
Füge Verifikations-Badges zu deiner README hinzu
Öffentliche Repositorys können ein Verifikations-Badge anzeigen, das auf die Timestamp-GIT-Statusseite verlinkt. Die Repository-Verbindungsseite stellt Badge-URLs und Markdown-Snippets bereit. Ein typisches Badge sieht so aus:
[](https://timestampgit.dev/status/your-org/your-repo)
Jeder, der das Repository ansieht, kann durchklicken und den aktuellen Zeitstempel-Status überprüfen, ohne etwas installieren zu müssen.
FAQ
Wie stempelt die GitHub-App meine Commits automatisch mit Zeitstempeln?
Nach der Installation überwacht die GitHub-App deine ausgewählten Repositorys. Jede Nacht sammelt sie alle neuen Commit-Hashes, erstellt einen Merkle-Baum, verankert die Wurzel über OpenTimestamps in der Bitcoin-Blockchain und überträgt die .ots-Beweisdateien zurück an dein Repository. Es sind keine manuellen Schritte erforderlich.
Benötigt die GitHub-App Zugriff auf meinen Quellcode?
Im Standardmodus benötigt die GitHub-App Lesezugriff auf das Quell-Repository, um Commit-Hashes zu lesen, da GitHub-Berechtigungen diesen Bereich erfordern. Timestamp GIT liest, kopiert oder speichert deinen Quellcode jedoch niemals – es verarbeitet nur den Commit-Hash. Im Enterprise-ZK-Modus läuft eine GitHub Action auf deiner Infrastruktur und überträgt nur den Commit-Hash an die API, sodass die App überhaupt keinen Zugriff auf dein Quell-Repository hat.
Wie lange dauert es, bis ein Commit auf Bitcoin mit einem Zeitstempel versehen ist?
Commits werden nächtlich gestapelt. Nachdem der Stapel verarbeitet wurde, wird die Bitcoin-Transaktion übertragen. Die Bestätigung auf der Bitcoin-Blockchain dauert in der Regel etwa drei Stunden, danach werden die Beweisdateien in dein Repository geschrieben. Ein Commit, der tagsüber erstellt wurde, hat seinen Zeitstempel-Beweis in der Regel am nächsten Morgen verfügbar.
Kann ich den Zeitstempel verifizieren, ohne mich auf Timestamp GIT zu verlassen?
Ja. Der Beweis ist eine Standard-OpenTimestamps-.ots-Datei. Du kannst sie herunterladen und lokal mit einem beliebigen OpenTimestamps-Verifikationstool gegen die Bitcoin-Blockchain prüfen. Timestamp GIT bietet außerdem eine webbasierte Verifikationsseite und PDF-Zertifikate für mehr Komfort.
Fazit: Einrichten und vergessen
Timestamp GIT verwandelt den kryptografischen Schutz des Stands der Technik von einer manuellen Pflichtaufgabe in einen automatischen Hintergrundprozess. Installiere die GitHub-App einmalig, wähle deine Repositorys aus, und jeder zukünftige Commit durchläuft dieselbe Pipeline: Hash-Erkennung, nächtliche Stapelverarbeitung, Merkle-Baum-Konstruktion, Bitcoin-Verankerung und Beweisauslieferung.
Das Sicherheitsmodell ist bewusst Zero-Knowledge ausgelegt. Dein Quellcode wird niemals gelesen oder gespeichert. Der Standardmodus verarbeitet nur Commit-Hashes, und der Enterprise-ZK-Modus behält selbst diese Hashes unter deiner Kontrolle, bis du sie an die API überträgst.
Die Preisgestaltung deckt die gängigen Fälle ab: Open Source ist für öffentliche Repositorys kostenlos, Pro Agency kostet 49 $/Monat für private Repositorys, und Enterprise ZK kostet 199 $/Monat mit GitHub-Actions-Unterstützung. Für air-gapped oder selbstverwaltete Umgebungen ist außerdem eine selbst gehostete Docker-Lizenz verfügbar.
Wenn du immer noch manuell Zeitstempel für einzelne Commits erstellst, ist der schnellere Weg die Installation der Timestamp-GIT-GitHub-App oder die Anforderung einer selbst gehosteten Docker-Lizenz für maximale Kontrolle.
Verwandte Beiträge
- Timestamp GIT vs. manuelles OpenTimestamps: Was ist besser?
- So beweist du den Stand der Technik für Software: Ein Leitfaden für Entwickler
- So schützt du deine Software vor Patent-Trollen