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

  1. Développement sur environnement de production /var/www/

  2. Tests fonctionnels complets

  3. Validation des fonctionnalités critiques

  4. Commit avec message descriptif

  5. Tag pour versions stables

  6. 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