Comment horodater cryptographiquement les commits Git (sans outils CLI)
La plupart des développeurs considèrent git log comme un enregistrement fiable du moment où le travail a été effectué. Mais l’historique Git standard n’est pas digne de confiance sur le plan cryptographique : les dates de commit peuvent être définies sur n’importe quelle valeur, l’historique peut être réécrit avec un force-push, et un dépôt hébergé sur GitHub peut être modifié par des personnes disposant d’un accès administrateur. Si un troll de brevets, un ancien sous-traitant ou un concurrent vous demande de prouver quand une implémentation spécifique existait, votre git log local est souvent rejeté comme étant intéressé.
Ce guide vous montre comment horodater cryptographiquement des commits Git sans installer OpenTimestamps, sans exécuter un nœud Bitcoin et sans apprendre des outils bruts en ligne de commande. Vous utiliserez Timestamp GIT, une GitHub App gérée qui lit uniquement vos hachages de commit, les regroupe chaque nuit, les ancre dans Bitcoin et réécrit des reçus de preuve .ots. À la fin, chaque commit d’un dépôt surveillé sera vérifiable par rapport à la blockchain Bitcoin.
Si vous découvrez le concept sous-jacent, consultez Preuve d’existence dans les logiciels : guide du débutant. Cet article reste concentré sur la tâche de configuration.
Prérequis
Vous n’avez besoin d’aucune expertise cryptographique, mais vous devez disposer de :
- Un compte GitHub avec au moins un dépôt que vous souhaitez protéger.
- L’accès à la GitHub App Timestamp GIT, disponible sur le site Web de Timestamp GIT.
- Une familiarité de base avec les flux de travail Git normaux, comme les commits et les pushs.
- Un dépôt public si vous souhaitez commencer gratuitement. Les dépôts privés sont disponibles sur les formules payantes.
Aucune installation locale, aucun client OpenTimestamps ni portefeuille Bitcoin n’est requis pour la configuration standard.
Étape par étape : configurer l’horodatage automatique
Étape 1 : installer la GitHub App Timestamp GIT
Commencez depuis le site Web de Timestamp GIT ou le GitHub Marketplace. Cliquez sur Installer la GitHub App, choisissez si l’application doit être installée sur votre compte personnel ou sur une organisation, puis terminez le flux d’autorisation GitHub.
L’application devient un service géré : après l’installation, elle surveille les dépôts sélectionnés et ancre automatiquement les commits. Vous n’avez pas besoin d’ajouter des hooks post-commit ni de modifier votre flux de travail de développement.
Étape 2 : accorder les autorisations requises
Timestamp GIT fonctionne selon deux modes :
- Mode Standard : la GitHub App lit uniquement le dernier hachage de commit de votre dépôt source. Comme le système d’autorisations de GitHub ne propose pas d’accès « hachage de commit uniquement », l’application nécessite un accès en lecture seule au dépôt source. Elle nécessite également un accès en lecture-écriture au dépôt cible où les fichiers de preuve seront écrits.
- Mode Enterprise ZK : une courte GitHub Action s’exécute sur votre infrastructure et envoie uniquement le hachage de commit à l’API Timestamp GIT. Dans ce mode, aucun accès en lecture au dépôt source n’est requis. Vous avez uniquement besoin d’un accès en lecture-écriture au dépôt cible où les preuves sont stockées.
Pour la plupart des utilisateurs, le Mode Standard est le bon point de départ. Le point important est que Timestamp GIT ne lit jamais votre code source, quel que soit le mode.
Étape 3 : sélectionner les dépôts à surveiller
Pendant l’installation, choisissez si l’application doit surveiller tous les dépôts actuels et futurs ou uniquement certains dépôts sélectionnés. Si vous testez avec un dépôt public, sélectionnez ce dépôt maintenant.
Les fichiers de preuve peuvent être écrits dans le même dépôt sur une branche dédiée, ou dans un dépôt fantôme séparé. Utiliser le même dépôt est courant pour les petits projets. Un dépôt fantôme séparé est utile si vous souhaitez garder les fichiers de preuve totalement hors du dépôt principal.
Étape 4 : confirmer la configuration dans le tableau de bord
Après l’installation, ouvrez https://timestampgit.dev/repos. Vous devriez y voir vos dépôts surveillés.
Vérifiez que :
- Le dépôt source apparaît dans la liste.
- La cible de preuve est configurée comme prévu.
- Le dépôt est marqué comme actif.
Si le dépôt n’apparaît pas, revenez aux paramètres d’installation de la GitHub App et confirmez que les bons dépôts sont sélectionnés.
Étape 5 : créer un nouveau commit
Timestamp GIT ne traite que les commits effectués après la connexion du dépôt. Créez un commit normal et poussez-le :
git add src/validation.js
git commit -m "Add payment validation logic"
git push origin main
Vous n’exécutez rien d’autre. La GitHub App détecte automatiquement le nouveau commit via les webhooks.
Étape 6 : attendre le processus de traitement par lots nocturne
Timestamp GIT n’ancre pas chaque commit immédiatement. Les commits sont collectés dans une file d’attente, et un worker nocturne les regroupe peu après minuit UTC.
Le worker :
- Crée un fichier manifeste pour chaque dépôt.
- Construit un arbre de Merkle à partir des hachages de commit en attente.
- Crée des preuves OpenTimestamps.
- Ancre la racine de Merkle dans la blockchain Bitcoin.
La confirmation Bitcoin prend normalement plusieurs heures. Le processus complet d’écriture des preuves peut prendre quelques heures au total, alors ne vous attendez pas à ce qu’un badge ou une page de statut se mette à jour quelques minutes après avoir poussé votre commit.
Étape 7 : vérifier la livraison des preuves
Une fois le lot confirmé, Timestamp GIT renvoie les fichiers de preuve vers la cible que vous avez choisie. Vous verrez une branche dédiée timestamps ou un dépôt fantôme contenant :
manifests/2026-08-25.txt
proofs/2026-08-25.ots
Le fichier .ots est votre reçu cryptographique. Vous pouvez le conserver, le publier ou le remettre à un auditeur. La preuve est indépendante de l’infrastructure de Timestamp GIT.
Comment confirmer que cela a fonctionné (vérification)
Le moyen le plus rapide de confirmer que l’horodatage est actif est d’ouvrir la page de statut du dépôt :
https://timestampgit.dev/status/{user}/{repo}
Remplacez {user} et {repo} par votre nom d’utilisateur GitHub ou votre organisation et le nom du dépôt. La page de statut affiche la date d’ancrage la plus ancienne, la régularité quotidienne, les données de bloc et de transaction Bitcoin, ainsi qu’une carte de chaleur calendaire.
Pour une vérification lisible par machine, vous pouvez appeler l’API de statut publique :
curl -s https://timestampgit.dev/api/statusLast/octocat/hello-world
La réponse contient les informations du dernier bloc Bitcoin ancré. Pour les dépôts privés, l’URL inclut un HMAC chiffré afin que seuls les utilisateurs autorisés puissent accéder au statut.
Pour afficher le statut de la preuve directement dans votre README, ouvrez le tableau de bord du dépôt et copiez le markdown du badge intégrable. Il ressemblera à ceci :
[](https://timestampgit.dev/status/YOUR_USER/YOUR_REPO)
Le tableau de bord fournit l’extrait complet, y compris l’URL de badge Shields.io correcte pour votre dépôt.
Pour une vérification de preuve plus approfondie, visitez :
https://timestampgit.dev/verification/{user}/{repo}/{date}
Cette page parcourt la vérification de la chaîne de Merkle localement dans votre navigateur. Vous pouvez également télécharger un certificat PDF pour une date spécifique ou exporter le registre d’audit complet au format CSV depuis le tableau de bord de statut.
Si vous souhaitez vérifier le fichier .ots de manière totalement indépendante, vous pouvez le télécharger et le vérifier par rapport à la blockchain Bitcoin à l’aide des outils open source OpenTimestamps. Timestamp GIT ne vous oblige pas à le faire manuellement, mais l’option existe parce que la preuve est indépendante du fournisseur. Pour une procédure détaillée, consultez Comment vérifier les horodatages de vos commits Git.
Résolution des problèmes courants
Problème : aucune preuve n’apparaît après un commit.
Solution : confirmez que le dépôt est toujours sélectionné dans les paramètres d’installation de la GitHub App. Confirmez également que le commit a été effectué après l’installation. Les commits effectués avant la connexion de l’application ne sont pas traités rétroactivement.
Problème : la branche de preuve n’a pas été créée.
Solution : vérifiez que l’application dispose d’un accès en écriture au dépôt cible. Si vous écrivez les preuves dans un autre dépôt, cette cible doit disposer d’un accès en lecture-écriture. Utiliser un dépôt fantôme résout souvent ce problème proprement.
Problème : le badge de vérification affiche un statut inconnu ou obsolète.
Solution : attendez que le lot nocturne soit terminé et que la confirmation Bitcoin ait lieu. Cela prend normalement plusieurs heures après minuit UTC. Actualisez le badge une fois que les fichiers de preuve ont été réécrits.
Problème : le statut du dépôt privé n’est pas visible par les autres.
Solution : les URL de statut des dépôts privés incluent un HMAC chiffré. Utilisez le lien de badge authentifié du tableau de bord Timestamp GIT plutôt que le point de terminaison de statut public.
Problème : vous avez besoin d’un déploiement air-gapped ou auto-hébergé.
Solution : Timestamp GIT est disponible sous forme de licence Docker auto-hébergée. Une configuration Docker Compose minimale ressemble à ceci :
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
- ./license.lic:/app/license.lic:ro
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
Après le démarrage, l’application est disponible à l’adresse http://localhost:8080, et un assistant de configuration vous guide pour connecter votre GitHub App. Une licence de démonstration à durée limitée est disponible sur la page de licence Docker.
FAQ
Comment Timestamp GIT horodate-t-il cryptographiquement mes commits Git ?
Timestamp GIT extrait le hachage SHA-1 ou SHA-256 de chaque commit, regroupe ces hachages quotidiennement, construit un arbre de Merkle et ancre la racine de Merkle dans la blockchain Bitcoin à l’aide du protocole OpenTimestamps. Cela crée une preuve immuable que le commit existait à ce moment-là.
Dois-je exécuter des outils CLI ou comprendre OpenTimestamps ?
Non. Timestamp GIT est une GitHub App gérée. Une fois installée, elle surveille automatiquement vos dépôts et ancre les commits chaque nuit. Vous n’avez pas besoin d’exécuter de commandes ni de gérer le protocole sous-jacent.
Mon code source est-il exposé pendant l’horodatage ?
Non. Timestamp GIT lit uniquement le hachage de commit, qui est une empreinte cryptographique, et non le code réel. En mode Enterprise ZK, même le hachage de commit est envoyé depuis votre infrastructure via une GitHub Action, de sorte que votre code source ne quitte jamais votre environnement.
Puis-je vérifier l’horodatage de manière indépendante sans dépendre de Timestamp GIT ?
Oui. La preuve est stockée sous forme de fichier de reçu .ots standard. N’importe qui peut le télécharger et le vérifier par rapport à la blockchain Bitcoin à l’aide des outils open source OpenTimestamps. La preuve reste valide même si Timestamp GIT disparaît.
Conclusion
Vous disposez désormais d’un horodatage cryptographique automatique pour vos commits Git. Après une installation unique de la GitHub App, chaque commit d’un dépôt surveillé est regroupé chaque nuit, ancré dans Bitcoin et converti en un reçu de preuve .ots vérifiable. Le processus ne nécessite aucun outil CLI local, aucune commande OpenTimestamps manuelle et aucune expertise Bitcoin.
Les dépôts publics peuvent commencer gratuitement. Les dépôts privés sont disponibles sur les formules payantes. Installez la GitHub App dès aujourd’hui et rendez votre historique de commits juridiquement défendable.
Articles connexes
- Tarifs de Timestamp GIT : des formules pour chaque développeur
- Preuve d’existence dans les logiciels : guide du débutant
- Comment vérifier les horodatages de vos commits Git
- Défendez votre logiciel contre les trolls de brevets grâce aux horodatages
- OpenTimestamps vs Timestamp GIT : lequel convient à votre code ?
- Configurez l’horodatage automatique des commits Git en quelques minutes