Introduction

L'utilisation de GitHub Actions pour automatiser les publications Twitter peut être une solution efficace pour les développeurs. Dans cet article, nous allons explorer comment automatiser les publications Twitter en utilisant GitHub Actions, JBang et l'API Twitter.

Contexte Technique

Le système se compose de trois composants principaux : un générateur de queue, un script de publication et un workflow GitHub Actions. Le générateur de queue utilise JBang pour scanner les fichiers YAML de contenu, les mélanger aléatoirement et produire trois fichiers : social/queue.txt, social/tweets.yaml et social/state.yaml. Le script de publication lit l'index actuel, récupère le texte du tweet pré-rédigé et publie sur l'API Twitter v2 en utilisant OAuth 1.0a.

Le workflow GitHub Actions est déclenché tous les lundis à 10h00 (heure de l'Est) et utilise JBang pour exécuter le script de publication. Les fichiers de state sont suivis via des fichiers commités, et non via des bases de données externes.

Analyse et Implications

L'automatisation des publications Twitter avec GitHub Actions offre plusieurs avantages, notamment la possibilité de pré-rédiger des tweets, de les revoir et de les modifier avant leur publication. Le système est également résilient, car il peut survivre aux échecs et reprendre où il s'est arrêté. De plus, l'historique Git permet de suivre ce qui a été publié et quand.

Cependant, il est important de noter que l'utilisation de l'API Twitter peut entraîner des coûts, même si ceux-ci sont relativement faibles (environ 0,01 $ par tweet). Il est également important de prendre en compte les limitations de l'API Twitter et les exigences de OAuth 1.0a.

Perspective

Il existe plusieurs pistes d'amélioration pour ce système, notamment l'ajout de la prise en charge de Bluesky et la mise en place d'un suivi des hashes de contenu pour détecter les modifications apportées aux tweets pré-rédigés. L'implémentation est open source et peut être utilisée comme point de départ pour d'autres projets d'automatisation de publications sur les réseaux sociaux.