Aujourd’hui, nous allons faire communiquer deux géants : Google Sheets et GitHub.
Imaginez un instant : vous souhaitez suivre l’activité d’un développeur prolifique (ou la vôtre !) sans avoir à rafraîchir sa page GitHub tous les jours. Mieux encore, vous voulez recevoir un email automatique dès qu’un nouveau projet est publié, et que tout cela soit archivé proprement dans un tableau Google Sheets.
C’est exactement ce que fait le script que nous allons décortiquer aujourd’hui. C’est un excellent exemple de la puissance de Google Apps Script pour connecter des services entre eux.
L’objectif du script
Ce script ne se contente pas de copier des données. Il agit comme un véritable assistant de veille technologique. Voici son flux de travail :
- Récupération : Il interroge l’API de GitHub pour lister tous les dépôts publics d’un utilisateur.
- Comparaison intelligente : Il regarde ce qu’il y a déjà dans votre Google Sheet.
- Notification : S’il trouve un dépôt qui n’était pas là avant, il vous envoie un email récapitulatif. 📧
- Mise à jour : Il efface et réécrit la liste complète pour que les statistiques (comme le nombre d’étoiles ⭐) soient toujours à jour.
Tutoriel : Comment installer ce tableau de bord
Pas besoin d’être un expert en code, suivez simplement ces étapes :
1. Préparez le terrain
Ouvrez une nouvelle feuille de calcul Google Sheets. Donnez-lui un nom, par exemple « Suivi GitHub ».
2. Ouvrez l’éditeur de script
Dans le menu du haut, allez dans Extensions > Apps Script.
3. Le Code
Supprimez tout le code qui s’y trouve par défaut et collez le script présent sur Code.gs.
Note importante pour la personnalisation :
À la ligne 21, repérez const NOM_UTILISATEUR = ‘FabriceFx’;. Remplacez ‘FabriceFx’ par le nom d’utilisateur GitHub que vous souhaitez surveiller (par exemple ‘google’, ‘facebook’, ou votre propre pseudo).
4. Sauvegardez et lancez
Cliquez sur l’icône de disquette 💾 pour sauvegarder. Ensuite, actualisez votre page Google Sheets.
Vous verrez apparaître un nouveau menu personnalisé en haut : ⚡ GitHub Actions.
Cliquez sur Importer & Notifier. Lors de la première exécution, Google vous demandera des autorisations (accès à Gmail pour envoyer la notif, et à UrlFetchApp pour contacter GitHub). Acceptez-les.
Zoom sur les fonctionnalités « Pro » du script
Pour ceux qui veulent comprendre pourquoi ce script est performant, voici une analyse rapide de ses meilleures pratiques.
1. La performance avant tout
Le script utilise une technique très efficace pour comparer les données :
anciensNomsSet = new Set(valeursActuelles.flat()); // ... const nouveauxDepots = listeDepots.filter(depot => !anciensNomsSet.has(depot.name));
Au lieu de comparer chaque nouveau dépôt à chaque ligne du fichier (ce qui serait lent), il crée un Set (un ensemble unique). La vérification de l’existence d’un dépôt est quasi instantanée, même si vous avez 5000 lignes !
2. Gestion de la pagination API
L’API de GitHub ne renvoie que 100 résultats par page. Si l’utilisateur a 250 dépôts, un script basique en raterait 150.
La fonction recupererTousLesDepots utilise une boucle while pour tourner les pages automatiquement jusqu’à ce qu’il n’y ait plus de résultats. C’est robuste et complet.
3. Notification ciblée
Le script n’envoie pas d’email inutilement.
if (nouveauxDepots.length > 0) {
envoyerNotificationEmail(...);
}
Vous ne serez dérangé que s’il y a réellement du nouveau contenu.
Le résultat
Une fois le script exécuté, votre feuille de calcul sera formatée automatiquement avec des en-têtes grisés et en gras. Vous aurez les colonnes suivantes :
- Nom du Dépôt (avec lien cliquable)
- Description
- Langage Principal
- Nombre d’étoiles (Stars)
- Date de dernière mise à jour
Et si des nouveautés sont détectées, vérifiez votre boîte Gmail, vous aurez reçu un rapport HTML propre avec les liens directs !
Une petite astuce pour la route ? 💡
Si vous voulez que ce script s’exécute tout seul chaque matin :
- Dans l’éditeur Apps Script, cliquez sur l’icône d’horloge (Déclencheurs) à gauche.
- Ajoutez un déclencheur.
- Sélectionnez la fonction
importerDepotsGitHub. - Choisissez « Source de l’événement » : Basé sur le temps > Déclencheur journalier.
Et voilà ! Votre veille technologique est maintenant 100% automatisée.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.