- ✅ Validation obligatoire de
LLM_API_KEYavec erreur explicite si manquante - ✅ Amélioration de la gestion SSL avec support des certificats CA locaux
- ✅ Hash avec salt pour les codes secrets (fonction
hash_secret_with_salt) - ✅ Validation du schéma JSON des réponses LLM avec
validate_quiz_schema - ✅ Comparaison constante des hashs pour éviter les attaques par timing
- ✅ Refactorisation complète en modules séparés :
diffquiz/config.py: Configuration centralisée avec pydanticdiffquiz/git_utils.py: Utilitaires Gitdiffquiz/llm_client.py: Client API LLMdiffquiz/quiz_generator.py: Génération et validation des quizdiffquiz/html_generator.py: Génération HTMLdiffquiz/security.py: Fonctions de sécuritédiffquiz/exceptions.py: Exceptions personnalisées
- ✅ Renommage de
generate_quiz 1.py→generate_quiz.py
- ✅ Ajout de type hints sur toutes les fonctions
- ✅ Remplacement de
print()parloggingstructuré - ✅ Extraction des constantes magiques dans la configuration
- ✅ Gestion d'erreurs améliorée avec exceptions personnalisées
- ✅ Documentation avec docstrings
- ✅ Création de tests unitaires de base :
tests/test_security.py: Tests de sécuritétests/test_git_utils.py: Tests des utilitaires Gittests/test_quiz_generator.py: Tests de génération de quiz
- ✅ Configuration pytest avec couverture de code
- ✅ Ajout de
requirements.txtavec pydantic et pytest - ✅ Mise à jour des fichiers CI/CD pour utiliser
requirements.txt
- ✅ Mise à jour de
.github/workflows/test.pipeline.ymlpour le nouveau chemin - ✅ Mise à jour de
.gitlab-ci.ymlpour le nouveau chemin - ✅ Installation des dépendances depuis
requirements.txt
- ✅ Création de
CHANGELOG.md - ✅ Documentation des modules avec docstrings
- Le fichier
generate_quiz 1.pya été renommé engenerate_quiz.py - La variable d'environnement
LLM_API_KEYest maintenant obligatoire (erreur si manquante) - Nouvelle structure modulaire : le code est maintenant dans le package
diffquiz/
Pour migrer depuis l'ancienne version :
- Renommer les références à
generate_quiz 1.py→generate_quiz.py - Installer les dépendances :
pip install -r requirements.txt - S'assurer que
LLM_API_KEYest définie dans les variables d'environnement - Mettre à jour les scripts CI/CD si nécessaire