release: v0.2.0 — endpoint unifié et PIN de compte Pronote
Bump version 0.1.2 → 0.2.0. CHANGELOG mis à jour : contrat ExternalEndpoint commun, unification AI_BASE_URL, PIN de compte Pronote et durcissement sécurité.
This commit is contained in:
@@ -5,6 +5,35 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [0.2.0] - 2026-09-13
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Prise en charge du PIN de compte Pronote (`PRONOTE_ACCOUNT_PIN`) pour l'authentification par mot de passe (#8).
|
||||||
|
- Contrat `ExternalEndpoint` commun (Pydantic v2 : `SecretStr`, `frozen`, `extra='forbid'`) pour les endpoints CalDAV, RSS et Pronote, avec nouvelles variables canoniques `CALDAV_ENDPOINT__URL`, `BLOG_ENDPOINT__URL`, `PRONOTE_ENDPOINT__URL`, `PRONOTE_ICAL_ENDPOINT__URL` (#16).
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Unification du contrat `AI_BASE_URL` entre les fournisseurs de synthèse (#17).
|
||||||
|
- Les anciennes variables `CALDAV_URL`, `BLOG_RSS_URL`, `PRONOTE_URL` et `PRONOTE_ICAL_URL` restent acceptées comme alias dépréciés (`DeprecationWarning`).
|
||||||
|
- `hide_input_in_errors=True` sur les paramètres Pronote/CalDAV/Blog : les valeurs sensibles ne fuitent plus dans les erreurs de validation.
|
||||||
|
- Schéma `file://` retiré du contrat des endpoints réseau ; HTTP restreint au loopback explicitement autorisé.
|
||||||
|
- Documentation alignée (`README.LLM.md`, `.env.example`, `GUIDE_DEV_PYTHON.md`, `docs/pronote-auth.md`) et métadonnées de packaging (identité et URL Gitea réelles).
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Sécurité : détection des PIN `*_PIN` littéraux (#48), des PIN en query string (`?pin=`, #58) et des placeholders d'URL documentaires (#34) par `check_secrets.py`.
|
||||||
|
- Sécurité : neutralisation de `__context__` et du traceback des exceptions expurgées (`raise ... from None` sorti des handlers) (#50).
|
||||||
|
- `qr_token` : `get_informations()` ignorée en mode `qr_token` (erreur pronotepy 20 sur les instances HubEduConnect) (#21).
|
||||||
|
- RSS : état mémoire confirmé après remplacement atomique avant l'acquittement des GUID (#49) ; GUID acquittés après livraison XMPP (#12).
|
||||||
|
- CalDAV : devoirs rendus transparents (#11) ; événements gérés sans UID ignorés (#47).
|
||||||
|
- Configuration : fenêtres de synchronisation négatives refusées (#14).
|
||||||
|
- CLI : exécutions dégradées rendues observables (#13).
|
||||||
|
- Pronote : parsing iCal fiabilisé pour l'année scolaire 2026.
|
||||||
|
- XMPP : correction du timeout (mode TLS et timeouts de connexion/nettoyage).
|
||||||
|
- Dry-run : simulation garantie sans persistance ; sérialisation du cycle QR/token local.
|
||||||
|
- Documentation : commande `cd` corrigée après clonage du dépôt Gitea (#56).
|
||||||
|
|
||||||
## [0.1.2] - 2026-09-10
|
## [0.1.2] - 2026-09-10
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "pronote-sync"
|
name = "pronote-sync"
|
||||||
version = "0.1.2"
|
version = "0.2.0"
|
||||||
description = "Synchronisation Pronote → CalDAV + XMPP"
|
description = "Synchronisation Pronote → CalDAV + XMPP"
|
||||||
license = {text = "MIT"}
|
license = {text = "MIT"}
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|||||||
Reference in New Issue
Block a user