À propos du projet

GitHub Trending Reporter est un petit projet d'automatisation qui transforme la page quotidienne GitHub Trending en un site de rapports consultables et annotés par IA. Lors d'une exécution planifiée, il collecte la liste des dépôts tendance, recherche des détails supplémentaires via l'API GitHub, demande à un grand modèle de langage (LLM) de produire des résumés concis et des observations sur les tendances, écrit les résultats sous forme de rapports Markdown et de données JSON, puis construit et déploie un site Docusaurus sur GitHub Pages. L'ensemble de la séquence est piloté par un workflow GitHub Actions, aucun ขั้นตอน manuel n'est donc requis une fois les secrets configurés. Capacités clés décrites dans le README : - Scraping automatique de GitHub Trending, avec des options de filtrage par langage de programmation et le choix de plages temporelles quotidiennes, hebdomadaires ou mensuelles. - Analyse optionnelle basée sur LLM qui ajoute un résumé écrit par IA (environ 15-25 caractères) à chaque entrée de dépôt. - Présentation visuelle via un front-end Docusaurus, avec des rapports stockés sous forme de fichiers Markdown et des données brutes stockées en JSON. - Automatisation de bout en bout via GitHub Actions, couvrant la collecte, l'enrichissement, l'analyse, la génération de rapports et le déploiement du site. - Un point de terminaison de données publié, permettant aux agents ou applications externes de consommer la sortie JSON plutôt que de simplement la lire sur le site web. Le dépôt est organisé en une partie Python (main.py, trending_scraper.py, llm_analyzer.py, data_pusher.py, config.py, requirements.txt) et une partie Docusaurus/Node (src, docusaurus.config.js, package.json), avec reports/ et data/ contenant les sorties générées et .github/workflows/daily_report.yml contenant la tâche planifiée. L'exécution locale pour la génération de rapports nécessite l'installation des dépendances Python, la copie de .env.example vers .env et la fourniture d'une clé API, puis l'invocation de main.py avec les drapeaux --local et --no-push. L'aperçu du site web utilise le flux standard npm install et npm start. La configuration se fait via des variables d'environnement pour la clé LLM, l'URL de base et le nom du modèle, ainsi que des jetons GitHub utilisés pour récupérer les informations détaillées des dépôts et pour pousser les données générées. Les mêmes valeurs sont attendues comme secrets GitHub Actions. Les options de ligne de commande incluent un filtre de langue, une option since pour la fenêtre de tendance, des drapeaux pour ignorer l'envoi ou sauvegarder localement, un paramètre de date explicite au format AAAA-MM-JJ, et un commutateur pour ignorer l'analyse détaillée par projet. Pour les intégrations, le projet documente deux modèles d'URL : une page de rapport HTML sous reports/AAAA/MM/AAAA-MM-JJ et un fichier JSON brut sous data/AAAA/MM/AAAA-MM-JJ.json. La charge utile JSON contient la date, l'horodatage de génération, le nombre total de dépôts et un tableau de dépôts avec des champs tels que full_name, url, description, llm_summary, language, stars, stars_today, forks, topics et license. Un court exemple Python montre comment récupérer ce JSON avec requests et imprimer les entrées principales. Le README crédite le projet ai-git-trending comme source d'inspiration et indique que son approche de scraping, son workflow d'analyse LLM, son schéma de génération de rapports et son architecture globale ont servi de références. Des liens connexes pointent vers GitHub Trending, Docusaurus et ce projet source. La pile technique est décrite comme étant Python plus Docusaurus.