## Résumé
Expose un contrat de codes de sortie stable pour systemd et la supervision :
- `0` : exécution complète ;
- `2` : exécution dégradée, avec données Pronote disponibles ;
- `1` : échec critique.
## Changements
- ajoute la classification centrale du résultat pipeline dans la CLI ;
- conserve l'exécution des étapes utiles en mode dégradé ;
- couvre les erreurs CalDAV et XMPP par des tests CLI ;
- documente le contrat, le dry-run et le comportement systemd dans le guide versionné ;
- aligne la page wiki `Déploiement`.
## Validation
- 11 tests `tests/e2e/test_cli.py`
- pre-commit complet : Ruff, formatage, mypy, Bandit, YAML, conflits et detect-secrets
- `git diff --check`
Closes #13
Revue OpenCode prise en compte. Aucun blocage ni changement supplémentaire identifié ; le contrat des codes de sortie et la poursuite des étapes en mode dégradé sont acceptés. La PR #40 est prête pour fusion.
Revue OpenCode prise en compte. Aucun blocage ni changement supplémentaire identifié ; le contrat des codes de sortie et la poursuite des étapes en mode dégradé sont acceptés. La PR #40 est prête pour fusion.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Résumé
Expose un contrat de codes de sortie stable pour systemd et la supervision :
0: exécution complète ;2: exécution dégradée, avec données Pronote disponibles ;1: échec critique.Changements
Déploiement.Validation
tests/e2e/test_cli.pygit diff --checkCloses #13
Revue indépendante (analyse statique + vérification d'exécution).
Contrat de sortie : centralisé dans
pronote_sync/cli/main.py—0complet,2dégradé avec données Pronote,1critique ; une erreurCRITICALprime sur le dégradé. Vérifié empiriquement : complet=0, dégradé=2,data is None=1, critique avec données=1.Mode dégradé : les étapes ultérieures (blog, comparaison, CalDAV, synthèse, envoi XMPP) restent exécutées.
Dry-run documenté (
docs/exploitation.md) ; messages de statut expurgés.Exécution : 11 tests
tests/e2e/test_cli.py, suite complète 756 passés ;ruff check,ruff format --check,mypyverts ; guide d'exploitation et wikiDéploiementcohérents.Aucun blocage.
OK pour fusion
Revue OpenCode prise en compte. Aucun blocage ni changement supplémentaire identifié ; le contrat des codes de sortie et la poursuite des étapes en mode dégradé sont acceptés. La PR #40 est prête pour fusion.