Documentation Git - Logiciel Arpelin
Ce document présente la gestion de version du logiciel Arpelin dans le cadre de la certification NF525 - Logiciel Gestion de l'Encaissement.
La gestion de version Git répond aux exigences du §4.3.6 du référentiel NF525 concernant :
Le dépôt des sources et preuve d'authenticité du logiciel audité
La méthodologie incontestable d'identification de l'authenticité
La mise à disposition de l'empreinte de la version auditée
🏗️ Architecture de Versioning
Structure des Répertoires Versionnés
/var/www/
├── _main/ ← Code source principal (versionné)
├── _files/ ← Scripts privés PHP (versionné)
├── cms_client1/ ← Instances clients (non versionné)
├── cms_client2/ ← Instances clients (non versionné)
└── .git/ ← Dépôt Git local
Périmètre de Certification
✅ Versionné :
/var/www/_main
et/var/www/_files
❌ Exclu : Dossiers clients, données personnalisées, logs
🔧 Commandes Git de Base
Vérification de l'État
bash
# Voir l'état actuel du dépôt
git status
# Voir l'historique des versions
git log --oneline
# Voir les tags (versions officielles)
git tag
# Obtenir l'empreinte de la version actuelle
git rev-parse HEAD
Création d'une Nouvelle Version
bash
# 1. Ajouter les modifications
git add _main _files
# 2. Créer un commit avec description
git commit -m "Description des modifications"
# 3. Créer un tag de version (optionnel)
git tag v1.2.3
📦 Processus de Développement
1. Développement Normal
Modifier les fichiers dans
/var/www/_main
et/var/www/_files
Tester les modifications sur les instances clients
Valider le fonctionnement
2. Validation et Versioning
bash
# Vérifier les fichiers modifiés
git status
# Ajouter les modifications au suivi
git add _main _files
# Créer une version stable
git commit -m "Version 1.2 - Correction bug encaissement TVA"
# Marquer comme version officielle
git tag v1.2-stable
3. Types de Versions
Version Majeure (v2.0) : Nouvelles fonctionnalités impactant la certification
Version Mineure (v1.2) : Corrections, améliorations sans impact certification
Version Patch (v1.2.1) : Corrections de bugs urgents
📊 Commandes pour Audit NF525
Informations Requises par l'Auditeur
1. Empreinte de la Version Auditée
bash
# Obtenir l'empreinte SHA-1 du commit actuel
git rev-parse HEAD
# Exemple de sortie : a2fb03e1234567890abcdef...
2. Historique des Versions
bash
# Voir toutes les versions avec dates
git log --oneline --decorate
# Voir uniquement les versions taguées
git tag -l --sort=-version:refname
3. Vérification d'Intégrité
bash
# Vérifier que le dépôt n'est pas corrompu
git fsck
# Voir les statistiques du dépôt
git count-objects -v
4. Détails d'une Version Spécifique
bash
# Voir les détails d'un commit
git show a2fb03e
# Voir les fichiers modifiés dans un commit
git show --name-only a2fb03e
# Comparer deux versions
git diff v1.1..v1.2
🔍 Traçabilité et Conformité
Preuve d'Authenticité
Chaque commit Git génère automatiquement :
Empreinte SHA-1 unique et inaltérable
Horodatage précis (date, heure, timezone)
Contenu exact de tous les fichiers versionnés
Métadonnées : auteur, message de commit
Vérification d'Intégrité
bash
# Vérifier qu'aucun fichier n'a été modifié depuis le dernier commit
git diff --exit-code
# Si aucune sortie = aucune modification
# Si des différences s'affichent = modifications détectées
Extraction d'une Version
bash
# Créer une archive de la version actuelle
git archive HEAD --format=tar.gz -o arpelin-$(git describe --tags).tar.gz
# Extraire une version spécifique dans un dossier
git archive v1.2 --format=tar | tar -xf - -C /tmp/version-1.2/
📋 Procédures Documentées
Procédure de Développement
Développement sur environnement de production
/var/www/
Tests fonctionnels complets
Validation des fonctionnalités critiques
Commit avec message descriptif
Tag pour versions stables
Documentation des changements
Procédure de Sauvegarde
bash
# Sauvegarde quotidienne du dépôt Git
cp -r /var/www/.git /backup/git-$(date +%Y%m%d)/
# Vérification de la sauvegarde
cd /backup/git-$(date +%Y%m%d)/ && git fsck
Procédure de Rollback
bash
# Revenir à une version antérieure (lecture seule)
git checkout v1.1
# Créer une nouvelle version basée sur une ancienne
git checkout -b fix-from-v1.1 v1.1
# ... modifications ...
git commit -m "Correction basée sur v1.1"
git tag v1.1.1
⚠️ Consignes de Sécurité
Données Sensibles
❌ Ne jamais commiter : mots de passe, clés API, données clients
✅ Utiliser des variables d'environnement pour les configurations sensibles
✅ Fichier .gitignore pour exclure automatiquement certains fichiers
Exemple .gitignore
# Exclure les configurations sensibles
config/database.php
*.log
backup/
cms_client*/uploads/
Accès au Dépôt
🔒 Dépôt local uniquement sur le serveur de production
🔒 Accès limité : administrateur système uniquement
🔒 Pas d'accès externe (GitHub, GitLab...) pour le code de production
🎯 Pour les Auditeurs NF525
Vérifications Possibles
1. Conformité §4.3.6
bash
# L'auditeur peut vérifier :
git rev-parse HEAD # Empreinte disponible ✓
git log --oneline # Historique tracé ✓
git fsck # Intégrité vérifiée ✓
git show --stat HEAD # Contenu authentique ✓
2. Non-Altération Pendant l'Audit
bash
# Empreinte au début de l'audit
HASH_DEBUT=$(git rev-parse HEAD)
# ... tests de l'auditeur ...
# Empreinte à la fin de l'audit
HASH_FIN=$(git rev-parse HEAD)
# Vérification d'intégrité
if [ "$HASH_DEBUT" = "$HASH_FIN" ]; then
echo "Code non modifié pendant l'audit ✓"
else
echo "Modification détectée pendant l'audit ✗"
fi
3. Accès aux Versions Antérieures
bash
# Voir toutes les versions disponibles
git tag -l
# Examiner une version spécifique
git show v1.0-certification:_main/index.php
📞 Support et Contact
Responsable Technique : Emre KOSE Email : emre.kose@arpelin.fr Téléphone : +33 3 39 39 99 79
Responsable Certification NF525 : Emre KOSE
📚 Références
Référentiel NF525 - Partie 9 : Exigences qualité et documentaires
§4.3.6 : Dépôt des sources et preuve d'authenticité du logiciel audité
Documentation Git officielle : https://git-scm.com/doc
Document créé le : 17/07/2025
Last updated