CI / test (push) Failing after 1m37s
- Dockerfile: copie du code avant installation (le package installé n'est plus vide — I6), utilisateur non-root, HEALTHCHECK - compose: version: obsolète retiré, variables d'auth, healthcheck - pyproject: version 0.2.0, jinja2 <4, config pytest - LICENSE (MIT), CHANGELOG 0.2.0, README réécrit (configuration, sécurité, API, tests), .dockerignore
74 lines
3.8 KiB
Markdown
74 lines
3.8 KiB
Markdown
# Changelog
|
|
|
|
## 0.2.0 — 2026-10-11
|
|
|
|
Consolidation complète à partir d'un audit du code 0.1.0 (chaque correctif
|
|
marqué « confirmé » avait été reproduit par un test avant correction).
|
|
|
|
### Critiques corrigés
|
|
- **Perte de données en Docker** : `KANBANTE_DB_PATH` est enfin lue par le
|
|
code — la base SQLite atterrit dans le volume `/data` comme prévu.
|
|
- **Authentification** : Basic Auth optionnelle mais recommandée
|
|
(`KANBANTE_AUTH_USER` / `KANBANTE_AUTH_PASSWORD`, `KANBANTE_REQUIRE_AUTH=1`
|
|
pour refuser de servir sans), protection CSRF (double-submit) sur tous
|
|
les POST, avertissement bruyant au démarrage quand l'auth est absente.
|
|
- **Synchro bidirectionnelle** : déplacer une carte vers « Terminé » ferme
|
|
l'issue dans Gitea, la ressortir la rouvre (`KANBANTE_SYNC_GITEA=0` pour
|
|
désactiver). L'état local est réconcilié à chaque chargement de board
|
|
(fermées → Terminé, supprimées → purgées).
|
|
|
|
### Importants corrigés
|
|
- Classification des projets : fenêtre d'activité glissante configurable
|
|
(`KANBANTE_ACTIVE_WINDOW_DAYS`, défaut 365) et vrai drapeau `archived`
|
|
de Gitea — fini l'année codée en dur et l'onglet « Archivés » mensonger.
|
|
- Pagination complète des appels Gitea (le plafond serveur de 50 réponses
|
|
par page ne tronque plus les dépôts ni les issues, en silence).
|
|
- `get_board_state` ne plante plus sur une colonne inconnue ; migration
|
|
automatique des bases 0.1.0 (colonne `position`, `notes.updated_at`,
|
|
nettoyage des lignes invalides).
|
|
- Gitea injoignable → page d'erreur 502 propre (JSON pour l'API) au lieu
|
|
d'un 500 brut ; `/api/readiness` teste réellement SQLite et Gitea,
|
|
`/api/health` reste un liveness sans dépendance.
|
|
- Dockerfile : installation après copie du code (le package installé
|
|
n'est plus vide), utilisateur non-root, `HEALTHCHECK`, `.dockerignore`.
|
|
|
|
### Ajouts
|
|
- **Ordre des cartes persisté** dans chaque colonne (aller-retour
|
|
glisser-déposer → rechargement).
|
|
- **Création d'issues** depuis le board (`POST /api/issues`).
|
|
- **Vue Focus** (`/focus`) : tout ce qui est En cours / En révision,
|
|
tous projets actifs confondus.
|
|
- Filtres par texte et par étiquette sur le board ; les cartes lient
|
|
vers l'issue Gitea ; les pull requests ne sont plus affichées comme
|
|
des issues.
|
|
- Suite de tests `pytest` (modèles, client Gitea, API, auth/CSRF) et
|
|
CI Gitea Actions (`.gitea/workflows/ci.yml`).
|
|
- Fichier `LICENSE` (MIT, annoncé par le README depuis la 0.1.0).
|
|
|
|
### Détails
|
|
- Client Gitea entièrement asynchrone (les routes ne bloquent plus la
|
|
boucle d'événements), cache mémoire court des listes, en-tête
|
|
`Authorization` seulement si un jeton est configuré, uid résolu via
|
|
`/user` (plus de `uid=1` ni d'utilisateur codés en dur), `.env` chargé
|
|
depuis la racine du projet seulement.
|
|
- Bibliothèques JS (HTMX, Alpine, SortableJS) **vendorées** dans
|
|
`static/vendor/` : plus aucune dépendance CDN à l'exécution.
|
|
- Glisser-déposer : en cas d'échec serveur, la carte est replacée et le
|
|
toast d'erreur est rouge ; les déplacements envoient l'ordre complet
|
|
des colonnes source et destination.
|
|
- API : codes HTTP corrects (400 colonne invalide, 403 CSRF, 413 note
|
|
trop longue — limite configurable), `lifespan` FastAPI à la place de
|
|
`on_event` déprécié, imports nettoyés.
|
|
- CSS : fond des badges corrigé (`color-mix()` remplace l'invalide
|
|
`var(--accent)20`).
|
|
- Recherche du dashboard : le nom des dépôts passe par un attribut
|
|
`data-search` échappé, plus aucune interpolation dans du JS.
|
|
- `docker-compose.yml` : clé `version:` obsolète retirée, variables
|
|
d'auth exposées, healthcheck.
|
|
|
|
## 0.1.0 — 2026-07-07
|
|
|
|
Version initiale : dashboard des projets Gitea, board Kanban 5 colonnes
|
|
par dépôt (glisser-déposer SortableJS), notes par projet, état local
|
|
SQLite, thème sombre, Dockerfile + docker-compose.
|