Aller au contenu

GET /v1/organizations/{org_id}/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.

GET /api/v1/organizations/{org_id}/projects/{project_id}/eol
Authorization: Bearer twa_votre_cle_ici
Paramètre Type Description
org_id UUID Identifiant de l’organisation
project_id UUID Identifiant du projet
[
{
"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
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 Projet inexistant, d’une autre organisation, ou hors de la restriction de projets de la clé
403 Cette clé API n'a pas le droit d'accéder à cette ressource. Le scope eol manque à la clé

Lister les versions en fin de vie imminente (≤ 90 jours)

import httpx
from datetime import date, timedelta
BASE = "https://app.techwatchalert.com/api/v1"
headers = {"Authorization": "Bearer twa_votre_cle_ici"}
org_id = "018e5678-abcd-7000-8000-000000000001"
project_id = "018e1234-abcd-7000-8000-000000000010"
# Récupérer les abonnements du projet
subs = httpx.get(f"{BASE}/organizations/{org_id}/projects/{project_id}/eol", headers=headers).json()
# Pour chaque cycle surveillé, récupérer la date de fin de vie
today = 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})")