Comment interagir avec l'API GitHub par programmation : Guide pour les développeurs Node.js

Découvrez l'API GitHub avec Node.js et Express ! Guide pour serveur Express, routes profils/repos, requêtes authentifiées.

Louis Dupont

Louis Dupont

5 June 2025

Comment interagir avec l'API GitHub par programmation : Guide pour les développeurs Node.js

GitHub est une plateforme essentielle pour les développeurs du monde entier, offrant un espace de collaboration, de partage de code et de contrôle de version. Bien que l'interface web de GitHub offre des fonctionnalités robustes, il existe de nombreux scénarios où vous souhaiterez interagir avec GitHub par programmation. C'est là que l'API GitHub entre en jeu.

L'API GitHub permet aux développeurs d'automatiser les flux de travail, de récupérer des données et d'intégrer les puissantes fonctionnalités de GitHub directement dans leurs applications. Que vous cherchiez à récupérer des informations utilisateur, à lister des référentiels ou à gérer les problèmes et les demandes de tirage, l'API GitHub offre un moyen flexible et efficace d'interagir avec GitHub par programmation, et dans ce guide, nous allons apprendre à l'utiliser !

Prérequis

Avant de vous lancer dans l'utilisation de l'API GitHub avec Node.js, vous devez avoir quelques prérequis en place. Cette section présentera les exigences de base et les connaissances dont vous aurez besoin pour suivre ce guide.

1. Connaissances de base de JavaScript et Node.js

Pour utiliser efficacement l'API GitHub avec Node.js, vous devez avoir une compréhension fondamentale de JavaScript, en particulier de la programmation asynchrone et des promesses, car ces concepts sont fréquemment utilisés lors des requêtes HTTP. La familiarité avec Node.js, y compris la configuration d'un projet et l'installation des dépendances, est également essentielle.

2. Compte GitHub

Vous avez besoin d'un compte GitHub pour accéder à l'API GitHub. Si vous n'en avez pas déjà un, vous pouvez vous inscrire gratuitement sur GitHub. De plus, vous devrez créer un jeton d'accès personnel pour authentifier vos requêtes. Nous verrons comment générer ce jeton dans une section ultérieure.

3. Node.js installé sur votre système

Assurez-vous que Node.js est installé sur votre machine. Si vous ne l'avez pas encore installé, vous pouvez télécharger la dernière version sur le site officiel de Node.js. Ce tutoriel utilisera Node.js, il est donc essentiel de l'avoir installé pour exécuter les exemples de code fournis.

4. Compréhension de base des API RESTful

Étant donné que l'API GitHub est une API RESTful, avoir une compréhension de base du fonctionnement des API REST sera bénéfique. Cela inclut la compréhension des méthodes HTTP (GET, POST, PUT, DELETE), des codes d'état et de la façon de gérer les réponses JSON.

5. Un éditeur de code

Un éditeur de code ou un environnement de développement intégré (IDE) comme Visual Studio Code, Sublime Text ou Atom vous aidera à écrire et à gérer votre code efficacement. Tout éditeur de code avec lequel vous êtes à l'aise conviendra à ce tutoriel.

Configuration de votre environnement

Avant de pouvoir commencer à faire des requêtes à l'API GitHub, nous devons configurer notre environnement de développement. Dans cette section, nous allons couvrir les étapes pour configurer Node.js, initialiser un nouveau projet et installer les bibliothèques nécessaires.

Étape 1 : Installer Node.js

Si vous n'avez pas encore installé Node.js, téléchargez la dernière version sur le site officiel de Node.js. Suivez les instructions d'installation spécifiques à votre système d'exploitation. Pour vérifier que Node.js est correctement installé, ouvrez votre terminal ou votre invite de commandes et exécutez :

node -v

Cette commande doit afficher le numéro de version de Node.js installé sur votre machine.

Étape 2 : Initialiser un nouveau projet Node.js

Ensuite, nous allons créer un nouveau répertoire pour notre projet et l'initialiser avec npm (Node Package Manager). Ouvrez votre terminal et exécutez les commandes suivantes :

mkdir github-api-tutorial
cd github-api-tutorial
npm init -y

La commande npm init -y crée un fichier package.json avec les paramètres par défaut, ce qui est nécessaire pour gérer les dépendances du projet.

Étape 3 : Installer les bibliothèques requises

Pour interagir avec l'API GitHub, nous avons besoin d'express et d'une bibliothèque cliente HTTP. Dans ce tutoriel, nous utiliserons axios, un client HTTP basé sur les promesses pour Node.js. Installez axios en exécutant :

npm install express axios

De plus, nous pourrions avoir besoin de dotenv pour gérer les variables d'environnement en toute sécurité. Ce package nous permet de charger les variables d'environnement à partir d'un fichier .env dans process.env, ce qui est utile pour stocker des informations sensibles comme les jetons d'API. Installez dotenv en exécutant :

npm install dotenv

Étape 4 : Créer un fichier .env

Créez un fichier .env dans la racine du répertoire de votre projet pour stocker votre jeton d'accès personnel GitHub. Ce fichier ne doit pas être validé dans le contrôle de version pour protéger vos informations sensibles.

GITHUB_TOKEN=your_personal_access_token_here

Remplacez your_personal_access_token_here par votre jeton d'accès personnel GitHub réel. Nous verrons comment générer ce jeton dans une section ultérieure.

Étape 5 : Configurer la structure du projet

Créez un nouveau fichier nommé index.js dans le répertoire racine de votre projet. Ce fichier servira de point d'entrée principal pour notre application Node.js.

Vous pouvez également configurer une structure de dossiers de base si vous prévoyez d'étendre votre projet. Une structure simple pourrait ressembler à ceci :

github-api-tutorial/
├── node_modules/
├── .env
├── index.js
├── package.json
└── package-lock.json

Création d'un jeton d'accès personnel GitHub

Pour accéder aux points de terminaison authentifiés et augmenter vos limites de débit d'API, vous avez besoin d'un jeton d'accès personnel GitHub. Github a un guide intéressant sur la façon de créer un jeton d'accès, que vous pouvez trouver ci-dessous ;

Les étapes sont également décrites ci-dessous pour que vous puissiez facilement les suivre :)

  1. Connectez-vous à votre compte GitHub et accédez à Paramètres.
  2. Dans la barre latérale gauche, cliquez sur Paramètres du développeur.
  3. Cliquez sur Jetons d'accès personnels puis sur Jetons (classiques).
  4. Cliquez sur le bouton Générer un nouveau jeton.
  5. Fournissez une note pour décrire le but du jeton (par exemple, "Tutoriel sur l'API GitHub").
  6. Sélectionnez les étendues ou les autorisations que vous souhaitez accorder à ce jeton. Pour ce tutoriel, sélectionnez repo (pour l'accès au référentiel) et user (pour l'accès aux informations utilisateur). Vous pouvez ajuster les étendues en fonction de vos besoins spécifiques.
  7. Cliquez sur Générer un jeton.
  8. Copiez le jeton généré et stockez-le dans votre fichier .env comme décrit précédemment. Remarque : Traitez ce jeton comme un mot de passe et ne le partagez jamais publiquement.

Configuration d'une application Express avec des routes pour les requêtes d'API GitHub

Créons un serveur Express de base avec deux routes : une pour récupérer le profil d'un utilisateur GitHub et une autre pour récupérer ses référentiels.

Voici à quoi votre fichier index.js pourrait ressembler :

// Importer les modules requis
require('dotenv').config();
const express = require('express');
const axios = require('axios');

const app = express();

// Middleware pour analyser les données JSON et URL-encodées
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// Route pour récupérer le profil utilisateur GitHub
app.get('/user/profile', async (req, res) => {
    try {
        const response = await axios.get('https://api.github.com/user', {
            headers: {
                'Authorization': `Bearer ${process.env.GITHUB_TOKEN}`
            }
        });
        res.json(response.data);  // Envoyer les données du profil utilisateur en tant que réponse JSON
    } catch (error) {
        res.status(500).json({ error: 'Erreur lors de la récupération du profil utilisateur', details: error.message });
    }
});

// Route pour récupérer les référentiels utilisateur GitHub
app.get('/user/repos', async (req, res) => {
    const username = req.query.username || 'irorochad'; // Par défaut 'irorochad' si aucun nom d'utilisateur n'est fourni
    try {
        const response = await axios.get(`https://api.github.com/users/${username}/repos`, {
            headers: {
                'Authorization': `Bearer ${process.env.GITHUB_TOKEN}`
            }
        });
        res.json(response.data);  // Envoyer les données des référentiels utilisateur en tant que réponse JSON
    } catch (error) {
        res.status(500).json({ error: 'Erreur lors de la récupération des référentiels utilisateur', details: error.message });
    }
});

// Démarrer le serveur
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Le serveur est en cours d'exécution sur http://localhost:${PORT}`);
});
Vous pouvez même envisager d'utiliser des contrôleurs pour le rendre plus lisible.

Explication du code :

Importer les modules requis :

Configurer le middleware :

Créer des routes :

Gestion des erreurs :

Démarrer le serveur :

3. Mettez à jour votre fichier .env

Assurez-vous que votre fichier .env contient ce qui suit :

GITHUB_TOKEN=your_personal_access_token_here
PORT=3000

Remplacez your_personal_access_token_here par votre jeton d'accès personnel GitHub réel.

4. Exécution de votre application

Pour exécuter votre application Express, utilisez la commande suivante :

node index.js

Votre serveur devrait maintenant être en cours d'exécution sur http://localhost:3000, et il est temps de tester nos points de terminaison !!!

Test de nos points de terminaison à l'aide d'Apidog

Page d'accueil d'Apidog

Apidog améliore la sécurité des API en offrant une documentation robuste, des tests automatisés et une surveillance en temps réel. Apidog aide également à la conformité aux normes de l'industrie comme le RGPD et la HIPAA, garantissant que vos API protègent efficacement les données des utilisateurs.

De plus, Apidog prend en charge la collaboration en équipe, favorisant un environnement de développement axé sur la sécurité. En intégrant Apidog, vous pouvez créer des API sécurisées, fiables et conformes, protégeant vos données et vos utilisateurs contre diverses menaces de sécurité.

button

Une fois que vous avez installé Apidog ou la version web, vous pouvez commencer par créer un nouveau projet et envoyer votre première requête.

Test du point de terminaison de récupération de l'utilisateur :

Avant de pouvoir appeler ce point de terminaison, nous devrons dire à Apidog que le point de terminaison nécessite un jeton d'accès, et nous devons fournir le jeton d'accès à Apidog pour lui permettre d'effectuer la requête.

Nous pouvons le faire en accédant à la section Auth de la page de requête et en insérant le jeton dans le champ où il est nécessaire, comme indiqué ci-dessous ;

Point de terminaison de récupération des utilisateurs

Comme vous pouvez le voir sur la capture d'écran ci-dessus, le point de terminaison de récupération de l'utilisateur fonctionne comme prévu, et c'est parce que notre serveur est en marche et que nous avons également transmis le jeton d'accès à Apidog. Sans le jeton d'accès, la requête échouera et nous ne pourrons pas voir les réponses concernant cette requête.

Test du point de terminaison de récupération du référentiel :

Résultats des points de terminaison de récupération du référentiel

Tout comme les points de terminaison fetch users, le point de terminaison fetch repo a également besoin d'un jeton d'accès pour effectuer l'appel.

Conclusion

L'intégration de l'API GitHub avec une application Node.js ouvre un monde de possibilités pour les développeurs qui cherchent à automatiser les flux de travail, à analyser les données ou à améliorer leurs applications avec les puissantes fonctionnalités de GitHub. Dans ce guide, nous avons parcouru le processus de configuration d'un serveur Express et de création de routes pour récupérer les informations de profil utilisateur et les référentiels de GitHub.

En suivant les étapes décrites, vous avez maintenant une compréhension fondamentale de la façon d'interagir avec l'API GitHub à l'aide de Node.js et Express. Vous pouvez facilement l'étendre en ajoutant d'autres routes pour explorer différents points de terminaison, tels que la gestion des problèmes, des demandes de tirage, et plus encore.

Explore more

Comment utiliser Deepseek R1 en local avec Cursor

Comment utiliser Deepseek R1 en local avec Cursor

Apprenez à configurer DeepSeek R1 local avec Cursor IDE pour une aide au codage IA privée et économique.

4 June 2025

Comment exécuter Gemma 3n sur Android ?

Comment exécuter Gemma 3n sur Android ?

Apprenez à installer et exécuter Gemma 3n sur Android via Google AI Edge Gallery.

3 June 2025

Comment utiliser Claude Code avec GitHub Actions

Comment utiliser Claude Code avec GitHub Actions

Découvrez Claude Code avec GitHub Actions : revues de code, corrections de bugs, implémentation de fonctionnalités. Tutoriel pour développeurs.

29 May 2025

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API