Cela faisait un moment que je faisais de la veille sur les projets open source, mais je tombais souvent sur des listes incomplètes, manquant d’indicateurs clés comme la popularité mesurée par le nombre d’étoiles GitHub. Je me suis donc lancé le défi de créer ma liste ultime de projets open source en m’appuyant sur trois outils : n8n, ChatGPT et Google Sheets.
Choix des outils
Pour mettre en place mon système, j’ai utilisé trois outils complémentaires :
- n8n : pour automatiser la récupération et la qualification des dépôts open source.
- ChatGPT (via l’API OpenAI) : pour analyser et catégoriser les projets.
- Google Sheets : pour stocker et manipuler facilement les données.
Fonctionnement du projet
J’ai mis en place deux workflows principaux dans n8n :
1. Workflow « Scraping »
- Ce workflow prend en entrée une URL et recherche sur la page des liens pointant vers des dépôts GitHub ou GitLab.
- Pour chaque lien trouvé, il appelle le workflow de qualification.
- Enfin, il enregistre les informations obtenues dans un Google Sheet.
2. Workflow « Qualification de dépôt »
- Il récupère les informations brutes des dépôts via les API de GitHub et GitLab.
- Il utilise ensuite l’API de OpenAI pour obtenir deux types d’analyses complémentaires :
- Maturité du projet : en analysant le numéro de la dernière release.
- Catégorisation du projet : en analysant le fichier ReadMe.md du dépôt.

Les détails de la qualification
1. Analyse de la maturité
J’envoie le nom de la dernière release à GPT-3.5 et lui demande de me dire si cette version est une « pre-release » (inférieure à V1). Cela me permet de savoir si un projet est encore en phase de test ou s’il est déjà mature.
2. Catégorisation automatisée
J’envoie le contenu du ReadMe.md (limité à 15 000 caractères) à GPT-3.5 en lui demandant de structurer ses réponses au format JSON, incluant :
- Type de dépôt :
- Curation (liste de ressources)
- Solution (logiciel à exécuter ou déployer)
- Development (frameworks, bibliothèques…)
- Autre
- Support Docker : Le projet est-il déployable via Docker ou Docker Compose ?
- Catégories : Selon une liste prédéfinie.
Pourquoi Google Sheets ?
L’avantage de Google Sheets est de pouvoir corriger facilement les erreurs de qualification sans devoir coder un outil dédié. De plus, cela permet de partager simplement la liste.
Résultat final
Grâce à ce processus automatisé, j’ai pu compiler une liste impressionnante de projets open source. A date de publication de l’article :
- 2 454 solutions
- 660 curations
- 980 developments
Chaque projet est renseigné avec les informations suivantes :
- Nom et propriétaire du dépot
- Description : le champs de description du dépot
- Catégories: les catégories qualifiées par GPT
- Nombre d’étoiles
- L’url du dépot
- Type de projet : le type qualifié par GPT
- Licence (dont je pense qu’il y a des infos intéressantes à retirer par une petite analyse statistique)
- Date de création et dernière mise à jour : très utile pour se rendre compte qu’il y a trop de projets délaissés, même dans les plus populaires
- Dernière version et statut pre-release
- Compatibilité Docker
Ce que j’ai appris
Ce projet m’a apporté plusieurs enseignements :
1. La confirmation que l’automatisation rend possible l’impossible
Avec des outils simples et accessibles, on peut agréger des milliers de données qu’un humain seul mettrait des semaines à collecter.
2. L’optimisation des Prompts et les couts d’OpenAI
Obtenir des résultats précis de GPT-3.5 a nécessité plusieurs itérations. GPT-4o donne des réponses bien plus fiables, mais son coût est plus élevé. Pour ce projet, j’en ai eu globalement pour une diazine de dollars. Ce n’est vraiment rien. Mais c’est en utilisant GPT-3.5. J’ai testé quelques requêtes sur GPT-4o et les résultats sont clairement plus qualitatifs, autant dans la précision de la qualification que dans le respect de la consigne. Notamment, GPT-3.5 me renvoyait des catégories que je ne lui avais pas données en entrée. Pour ce sujet, l’ordre de grandeur de prix ne me semblait pas en valoir le coup, mais pour d’autres projets, je passerai surement par GPT-4o.
J’ai aussi eu plusieurs itérations sur le prompt. Trouver les bonnes consignes à donner n’est pas aussi simple. Et honnêtement, je ne pense pas avoir trouvé le meilleur prompt. Je pense que j’ai encore beaucoup à progresser sur ce sujet.
3. Complexité des Workflows n8n
Créer ces workflows n’a pas été aussi simple que prévu. J’ai dû peaufiner l’ »algorithmie » des tâches pour obtenir un bon équilibre entre performance et qualité des résultats.
Prochaines améliorations
Je vois déjà plusieurs axes d’amélioration :
- Passer à GPT-4o pour une meilleure précision.
- Mettre en place une mise à jour automatique des données évolutives (nombre d’étoiles, dernière version…).
- Ajouter d’autres plateformes comme SourceForge.
J’ai aussi d’autres idées à tester avec GPT + n8n :
- Relecture de code automatique sur un repo ou une merge request.
- Standardisation des messages de commit.
- Génération automatique de changelogs.
Accès à la liste
Les listes sont accessibles publiquement :
- Projets : Lien Google Sheet
- Curations : Lien Google Sheet
- Developments : Lien Google Sheet
- Catégories : Lien Google Sheet
N’hésitez pas à commenter et poser vos questions si un aspect du projet vous intéresse particulièrement ! 😊