77 lines
2.8 KiB
Python
77 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script de migration automatique pour fusionner gitlab_reports.json dans gitlab_issues.json.
|
|
|
|
Ce script est conçu pour être appelé AUTOMATIQUEMENT lors du déploiement.
|
|
Il garantit que toutes les issues sont suivies dans un seul fichier.
|
|
|
|
Usage:
|
|
python scripts/migrate_gitlab_tracking.py
|
|
"""
|
|
|
|
import os
|
|
import json
|
|
import sys
|
|
|
|
# Chemins des fichiers
|
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
TRACKING_FILE = os.path.join(BASE_DIR, "commandes", "gitlab_issues.json")
|
|
LEGACY_REPORTS_FILE = os.path.join(BASE_DIR, "data", "gitlab_reports.json")
|
|
|
|
|
|
def migrate_tracking():
|
|
"""Fusionne gitlab_reports.json dans gitlab_issues.json"""
|
|
print("🔄 Début de la migration GitLab tracking...")
|
|
|
|
# Charge le fichier principal
|
|
tracking = {}
|
|
if os.path.exists(TRACKING_FILE):
|
|
try:
|
|
with open(TRACKING_FILE, "r", encoding="utf-8") as f:
|
|
tracking = json.load(f)
|
|
print(f"✅ Chargé {len(tracking)} issues depuis gitlab_issues.json")
|
|
except Exception as e:
|
|
print(f"⚠️ Erreur chargement gitlab_issues.json: {e}")
|
|
|
|
# Fusionne avec l'ancien fichier
|
|
migrated_count = 0
|
|
if os.path.exists(LEGACY_REPORTS_FILE):
|
|
try:
|
|
with open(LEGACY_REPORTS_FILE, "r", encoding="utf-8") as f:
|
|
legacy_data = json.load(f)
|
|
|
|
for issue_iid, user_id in legacy_data.items():
|
|
if issue_iid not in tracking:
|
|
tracking[issue_iid] = {
|
|
"requester_id": user_id,
|
|
"last_note_id": 0,
|
|
"type": "legacy_report"
|
|
}
|
|
migrated_count += 1
|
|
|
|
print(f"✅ Migration: {migrated_count} issues fusionnées depuis gitlab_reports.json")
|
|
except Exception as e:
|
|
print(f"⚠️ Erreur migration gitlab_reports.json: {e}")
|
|
|
|
# Sauvegarde le résultat
|
|
if tracking:
|
|
os.makedirs(os.path.dirname(TRACKING_FILE), exist_ok=True)
|
|
temp_file = f"{TRACKING_FILE}.tmp"
|
|
with open(temp_file, "w", encoding="utf-8") as f:
|
|
json.dump(tracking, f, ensure_ascii=False, indent=2)
|
|
os.replace(temp_file, TRACKING_FILE)
|
|
print(f"✅ Sauvegardé {len(tracking)} issues dans gitlab_issues.json")
|
|
|
|
print("✅ Migration terminée avec succès !")
|
|
return migrated_count
|
|
|
|
|
|
if __name__ == "__main__":
|
|
migrated = migrate_tracking()
|
|
|
|
# Si des données ont été migrées, on peut optionnellement nettoyer l'ancien fichier
|
|
if migrated > 0:
|
|
print(f"\n💡 {migrated} issues ont été migrées depuis gitlab_reports.json")
|
|
print("💡 Tu peux maintenant supprimer data/gitlab_reports.json si tu veux.")
|
|
|
|
sys.exit(0)
|