refactor(config): migrer RSS et Pronote vers l'endpoint commun et durcir le contrat #64

Merged
OpenCode merged 5 commits from refactor/issue-16-endpoints-rss-pronote into main 2026-09-13 16:40:15 +02:00
Collaborator

Résumé

Reprend les migrations RSS (#60) et Pronote (#61) restées hors de main après une fusion empilée erronée, les rebase sur main (qui contient déjà #59 CalDAV et les correctifs sécurité #53/#54/#58) et applique les corrections du ticket #63.

  • Rebase de 097a27f (RSS) et ee89f13 (Pronote) sur main — aucun correctif sécurité de main n'est annulé (fichiers #53/#54/#58 byte-identiques).
  • Contrat ExternalEndpoint durci : schéma file retiré (réseau uniquement), URLs avec userinfo rejetées.
  • hide_input_in_errors=True sur PronoteSettings/CalDAVSettings/BlogSettings.
  • Fixtures file:// migrées vers https:// mocké (responses) ; matrice de tests paramétrée du contrat (précédence alias, loopback, extra/frozen, userinfo, redaction).
  • Suppression du contournement model_construct de l'alias CALDAV_URL : l'alias est désormais validé comme le champ canonique.
  • Retrait du support file:// de fetch_ical (branche morte) et de l'exemple résiduel du guide.
  • Documentation alignée : README.LLM.md, .env.example, GUIDE_DEV_PYTHON.md, docs/pronote-auth.md.

Validation

  • pytest --cov : 880 passés, couverture 95,17 %
  • ruff check . et ruff format --check . : OK
  • mypy . : Success (111 fichiers)
  • bandit -r pronote_sync/ : 0 constat
  • Revue indépendante, audit de sécurité et vérification : APPROVED / APPROVED / VERIFIED

Suivi

## Résumé Reprend les migrations RSS (#60) et Pronote (#61) restées hors de `main` après une fusion empilée erronée, les rebase sur `main` (qui contient déjà #59 CalDAV et les correctifs sécurité #53/#54/#58) et applique les corrections du ticket #63. - Rebase de `097a27f` (RSS) et `ee89f13` (Pronote) sur `main` — aucun correctif sécurité de `main` n'est annulé (fichiers #53/#54/#58 byte-identiques). - Contrat `ExternalEndpoint` durci : schéma `file` retiré (réseau uniquement), URLs avec userinfo rejetées. - `hide_input_in_errors=True` sur `PronoteSettings`/`CalDAVSettings`/`BlogSettings`. - Fixtures `file://` migrées vers `https://` mocké (`responses`) ; matrice de tests paramétrée du contrat (précédence alias, loopback, extra/frozen, userinfo, redaction). - Suppression du contournement `model_construct` de l'alias `CALDAV_URL` : l'alias est désormais validé comme le champ canonique. - Retrait du support `file://` de `fetch_ical` (branche morte) et de l'exemple résiduel du guide. - Documentation alignée : `README.LLM.md`, `.env.example`, `GUIDE_DEV_PYTHON.md`, `docs/pronote-auth.md`. ## Validation - `pytest --cov` : 880 passés, couverture 95,17 % - `ruff check .` et `ruff format --check .` : OK - `mypy .` : Success (111 fichiers) - `bandit -r pronote_sync/` : 0 constat - Revue indépendante, audit de sécurité et vérification : APPROVED / APPROVED / VERIFIED ## Suivi - Closes #16 (migration CalDAV + RSS + Pronote désormais complète dans `main`) - Closes #63 - Supersedes #61 (à fermer sans merge)
OpenCode added 5 commits 2026-09-13 15:47:48 +02:00
Co-authored-by: Codex <codex@antoineve.me>
Co-authored-by: Codex <codex@antoineve.me>
Retire le schéma file du contrat ExternalEndpoint (CalDAV, Pronote iCal, Blog RSS) : seuls https et le loopback http CalDAV explicite restent acceptés. Rejette les URLs contenant userinfo. Ajoute hide_input_in_errors aux Settings. Réécrit les fixtures file:// en https mocké et ajoute une matrice de tests paramétrée du contrat.

Refs #63
Documente le schéma *_ENDPOINT__URL unique, le statut déprécié des anciens noms et le refus de file:// et des credentials embarqués dans README.LLM.md, .env.example, GUIDE_DEV_PYTHON.md et docs/pronote-auth.md.

Refs #63
Supprime le contournement model_construct : l'alias CALDAV_URL est désormais validé comme le champ canonique (userinfo, host et port rejetés). Retire le support file:// de fetch_ical et corrige l'exemple résiduel du guide. Ajoute les tests négatifs de l'alias legacy et adapte le test de sécurité CalDAV au contrat durci.

Refs #63
OpenCode merged commit e5c14a9304 into main 2026-09-13 16:40:15 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AntoineVe/college-infos#64