Retour à l'accueil

Git bundle et SHA-256 pour le transfert de code

L'article décrit une méthode de fixation du transfert de code source utilisant Git bundle et SHA-256. Le processus inclut la création d'un dump du dépôt, le calcul du hachage, et son intégration dans un acte signé. Cela assure la prouvabilité en cas de litiges pour les développeurs et les clients.

Fixation précise du code : bundle + SHA-256 dans les actes
Advertisement 728x90

Sécuriser les transferts de code source avec Git Bundle et SHA-256

Lors du transfert des droits exclusifs sur un logiciel, les accords se contentent souvent d'énoncer que « le résultat a été transféré » sans détailler le contenu. Cela crée des risques de litiges : le client peut prétendre que des fonctionnalités manquent, tandis que le développeur affirme le contraire. Git Bundle et le hachage SHA-256 résolvent ce problème en empaquetant le dépôt dans un fichier unique avec un identifiant vérifiable.

Créer un Git Bundle : Un dump complet du dépôt

Git Bundle empaquette l'intégralité du dépôt — objets, branches, étiquettes, historique — dans un seul fichier binaire. Il s'agit d'un artefact autonome, indépendant de tout stockage externe.

Commande pour créer :

Google AdInline article slot
# Sauvegarde complète de tout le dépôt (toutes les branches, toutes les étiquettes)
git bundle create projet.bundle --all

Le fichier projet.bundle peut être cloné comme d'habitude :

git clone projet.bundle projet-restaure

Avantages par rapport à la copie de .git :

  • Un seul fichier pour le stockage, le transfert et la signature.
  • Historique complet des commits, auteurs et dates.
  • Indépendance vis-à-vis des services d'hébergement Git.

Le bundle capture l'état au moment de la création, excluant toute modification ultérieure du dépôt d'origine.

Google AdInline article slot

Somme de contrôle : Un identifiant unique

Tout fichier peut être haché pour produire une empreinte immuable. SHA-256 est préféré : il est résistant aux collisions, contrairement à MD5/SHA-1.

Commandes pour Linux/macOS :

shasum -a 256 projet.bundle

Pour Windows :

Google AdInline article slot
certutil -hashfile projet.bundle SHA256

Le résultat est une chaîne de 64 caractères, par exemple a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e. Même la modification d'un seul bit change complètement le hachage.

Intégration dans les documents juridiques

Dans l'accord, spécifiez :

Le résultat du travail est transféré sous forme du fichier projet.bundle, somme de contrôle (SHA-256) : a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Signez-le avec une signature électronique via des systèmes de gestion électronique de documents, des services gouvernementaux (par exemple, Gosuslugi avec Goskey) ou une autorité de certification. La signature doit inclure un horodatage et une visualisation en PDF.

La signature électronique sécurise non seulement l'accord, mais incorpore également le hachage, liant le document au bundle spécifique.

Vérification en cas de litiges : Validation technique

En cas de désaccord :

  • Un expert calcule le SHA-256 du projet.bundle reçu.
  • Le compare avec le hachage de l'accord.
  • Clone le bundle et analyse le dépôt : commits, fichiers, fonctions.
# Restauration pour examen
git clone projet.bundle projet-restaure
cd projet-restaure
git log --oneline -10  # Derniers commits
git show HEAD:src/main.py  # Fichier spécifique

Si le hachage correspond, le code est authentique. Une divergence indique une altération.

Automatiser le processus

Script pour un usage régulier :

#!/bin/bash
NOM_DEPOT=projet
git bundle create ${NOM_DEPOT}.bundle --all
HACHAGE=$(shasum -a 256 ${NOM_DEPOT}.bundle | cut -d' ' -f1)
echo "SHA-256 : $HACHAGE"
# Insérer $HACHAGE dans l'accord et signer

Ajoutez une étape au CI/CD lors de la publication. Les agents IA peuvent générer automatiquement des accords avec des hachages.

Points clés

  • Le bundle capture le dépôt Git complet : historique, branches, étiquettes — sans perte.
  • SHA-256 garantit l'intégrité cryptographique : les collisions sont pratiquement impossibles.
  • La signature électronique avec hachage rend l'accord techniquement prouvable en justice.
  • Le processus prend <5 minutes : trois commandes + signature.
  • Les risques de litiges sont minimisés : l'altération du bundle est instantanément détectable.

— Editorial Team

Advertisement 728x90

Lire ensuite