GET /v1/projects/{id}/eol
Les abonnements EOL permettent de surveiller la fin de vie et la fin de support de versions logicielles spécifiques. Chaque abonnement est rattaché à un projet.
Lister les abonnements EOL d’un projet
Section intitulée « Lister les abonnements EOL d’un projet »GET /api/v1/projects/{project_id}/eolAuthorization: Bearer twa_votre_cle_iciParamètres de chemin
Section intitulée « Paramètres de chemin »| Paramètre | Type | Description |
|---|---|---|
project_id | UUID | Identifiant du projet |
Aucun paramètre de requête
Section intitulée « Aucun paramètre de requête »Réponse 200 OK
Section intitulée « Réponse 200 OK »[ { "id": "018eaaaa-0000-7000-8000-000000000040", "product_id": "nodejs", "cycle": "18", "notify_before_eol_days": 90, "notify_before_support_days": 30, "created_at": "2024-05-10T12:00:00Z" }, { "id": "018eaaaa-0000-7000-8000-000000000041", "product_id": "ubuntu", "cycle": "22.04", "notify_before_eol_days": null, "notify_before_support_days": null, "created_at": "2024-05-10T12:05:00Z" }, { "id": "018eaaaa-0000-7000-8000-000000000042", "product_id": "postgresql", "cycle": null, "notify_before_eol_days": null, "notify_before_support_days": null, "created_at": "2024-06-01T09:00:00Z" }]| Champ | Type | Description |
|---|---|---|
id | string (UUID) | Identifiant de l’abonnement |
product_id | string | Identifiant du produit (ex : nodejs, ubuntu, postgresql) — correspond aux IDs du catalogue EOL |
cycle | string | null | Version spécifique surveillée (ex : "18", "22.04"). null = surveillance du produit entier (nouvelles releases) |
notify_before_eol_days | integer | null | Délai d’alerte avant fin de vie en jours. null = utilise le réglage par défaut du projet |
notify_before_support_days | integer | null | Délai d’alerte avant fin de support en jours. null = utilise le réglage par défaut du projet |
created_at | string (ISO 8601) | Date de création de l’abonnement |
Deux types d’abonnements
Section intitulée « Deux types d’abonnements »cycle | Type | Comportement |
|---|---|---|
null | Abonnement produit | Alerte quand une nouvelle version/cycle est publiée pour ce produit |
"18", "22.04", etc. | Abonnement cycle | Alerte avant la fin de vie ou fin de support de cette version précise |
| Code | Détail | Cause |
|---|---|---|
404 | Projet introuvable | project_id inexistant |
403 | Accès refusé à ce projet | Projet non accessible |
Lister les versions en fin de vie imminente (≤ 90 jours)
import httpxfrom datetime import date, timedelta
BASE = "https://app.techwatchalert.com/api/v1"headers = {"Authorization": "Bearer twa_votre_cle_ici"}project_id = "018e1234-abcd-7000-8000-000000000010"
# Récupérer les abonnements du projetsubs = httpx.get(f"{BASE}/projects/{project_id}/eol", headers=headers).json()
# Pour chaque cycle surveillé, récupérer la date de fin de vietoday = date.today()soon = today + timedelta(days=90)
for sub in subs: if sub["cycle"] is None: continue # abonnement produit, pas de date EOL
cycles = httpx.get( f"{BASE}/eol/products/{sub['product_id']}/cycles", headers=headers, ).json()["cycles"]
for c in cycles: if c["cycle"] != sub["cycle"]: continue eol = c.get("eol") if isinstance(eol, str): # format "YYYY-MM-DD" eol_date = date.fromisoformat(eol) if today <= eol_date <= soon: days_left = (eol_date - today).days print(f"{sub['product_id']} {c['cycle']} — EOL dans {days_left} jours ({eol_date})")