[bug] Le retry ne gère pas le rate limiting (HTTP 429) #11

Closed
opened 2026-03-12 04:38:22 +01:00 by admin · 0 comments
Owner

Contexte

Le retry dans _get_with_retry ne catch que requests.Timeout. Un HTTP 429 (rate limit) retourne un Response normal, passe raise_for_status() qui lève une HTTPError — pas une Timeout. Le retry ne se déclenche pas.

Sur une instance avec 100+ repos (300 requêtes séquentielles), un rate limit Gitea ferait crasher le dashboard avec un message générique au lieu de respecter le header Retry-After.

Fix

Le retry doit aussi gérer les réponses 429 : lire le header Retry-After, attendre, retenter.

Critères d'acceptation

  • Le retry gère HTTP 429 en plus de Timeout
  • Le header Retry-After est respecté
  • Test unitaire avec mock 429
## Contexte Le retry dans `_get_with_retry` ne catch que `requests.Timeout`. Un HTTP 429 (rate limit) retourne un Response normal, passe `raise_for_status()` qui lève une `HTTPError` — pas une `Timeout`. Le retry ne se déclenche pas. Sur une instance avec 100+ repos (300 requêtes séquentielles), un rate limit Gitea ferait crasher le dashboard avec un message générique au lieu de respecter le header `Retry-After`. ## Fix Le retry doit aussi gérer les réponses 429 : lire le header `Retry-After`, attendre, retenter. ## Critères d'acceptation - [ ] Le retry gère HTTP 429 en plus de Timeout - [ ] Le header `Retry-After` est respecté - [ ] Test unitaire avec mock 429
admin added the bug label 2026-03-12 04:38:38 +01:00
admin added this to the v1.3.0 milestone 2026-03-12 18:58:20 +01:00
admin closed this issue 2026-03-12 19:55:11 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/gitea-dashboard#11