Publier sur Dev.to depuis un serveur, avec 130 lignes de Python et zéro dépendance
Description and use
Automating Dev.to article publishing with a 130‑line Python script without external dependencies, including title validation and tag filtering.
Problem
Automatiser la publication d’articles Markdown sur Dev.to depuis un serveur sans dépendances ni SDK, afin de réduire la charge manuelle lorsqu’on publie plusieurs fois par semaine.
Outcome
Le script publie automatiquement les articles, évitant les erreurs de titre vide et de tags inconnus, et fonctionne sur un serveur sans dépendances externes.
Workflow
- 1. Stocker la clé API dans un fichier .env et la charger via load_env.
- 2. Lire le fichier Markdown et extraire le front‑matter sans PyYAML.
- 3. Valider la présence d’un champ title avant toute requête réseau.
- 4. Filtrer les tags contre une liste blanche VALID_TAGS.
- 5. Construire la charge JSON et envoyer une requête POST à https://dev.to/api/articles avec l’en‑tête api‑key et User‑Agent.
- 6. Gérer les erreurs 403 (sans User‑Agent) et 422 (tags invalides).
Evidence
La clé API, dans l'en-tête api-key. Elle se génère dans les paramètres du compte Dev.to.
Un en-tête User-Agent. Sans lui, vous prenez un 403 et vous cherchez pendant vingt minutes pourquoi votre clé « ne marche pas ».
Un fichier sans champ title a été publié sous le titre « Sans titre ».
Dev.to n'accepte que des tags de sa liste. Un tag inconnu renvoie 422 — tag not found.
- Record date: 2026-11-02T11:14:09.970Z