{"meta":{"title":"Démarrage rapide pour l’API REST GitHub","intro":"Découvrez comment commencer à utiliser l’API GitHub REST.","product":"API REST","breadcrumbs":[{"href":"/fr/rest","title":"API REST"},{"href":"/fr/rest/quickstart","title":"Démarrage rapide"}],"documentType":"article"},"body":"# Démarrage rapide pour l’API REST GitHub\n\nDécouvrez comment commencer à utiliser l’API GitHub REST.\n\n## Introduction\n\nCet article explique comment prendre rapidement en main l’API REST à l’aide de GitHub, GitHub CLI, `curl` ou JavaScript. Pour obtenir un guide plus détaillé, consultez [Prise en main de l’API REST](/fr/rest/guides/getting-started-with-the-rest-api).\n\n<div class=\"ghd-tool cli\">\n\n## Utilisation de GitHub CLI dans la ligne de commande\n\nGitHub CLI est le moyen le plus simple d’utiliser l’API GitHub REST à partir de la ligne de commande.\n\n1. Installez GitHub CLI sur macOS, Windows ou Linux. Pour en savoir plus, consultez [Installation](https://github.com/cli/cli?ref_product=cli\\&ref_type=engagement\\&ref_style=text#installation) dans le référentiel GitHub CLI.\n\n2. Pour vous authentifier sur GitHub, exécutez la commande suivante depuis votre terminal.\n\n   ```shell\n   gh auth login\n   ```\n\n3. Sélectionnez l'endroit où vous souhaitez vous authentifier :\n\n   * Si vous accédez à GitHub à GitHub.com, sélectionnez **GitHub.com**.\n   * Si vous accédez à GitHub sur un autre domaine, sélectionnez **Autre** , puis entrez votre nom d'hôte (par exemple : `octocorp.ghe.com`).\n\n4. Suivez les autres invites à l'écran.\n\n   GitHub CLI enregistre automatiquement vos identifiants Git lorsque vous choisissez HTTPS comme protocole préféré pour les opérations Git et que vous répondez « oui » à l'invite vous demandant si vous souhaitez vous authentifier sur Git avec vos identifiants GitHub. Ce procédé peut être utile car il vous permet d'utiliser les commandes Git telles que `git push` et `git pull`, sans avoir à configurer un gestionnaire d'informations d'identification distinct ou à utiliser SSH.\n\n5. Effectuez une requête à l’aide de la GitHub CLI`api` sous-commande, suivie du chemin d’accès. Utilisez l’indicateur `--method` ou `-X` pour spécifier la méthode. Pour plus d’informations, consultez la [GitHub CLI`api` documentation](https://cli.github.com/manual/gh_api).\n\n   Cet exemple interroge le point de terminaison « Get Octocat », qui utilise la méthode `GET` et le chemin d’accès `/octocat`. Pour obtenir la documentation de référence complète de ce point de terminaison, consultez [Points de terminaison d’API REST pour les métadonnées](/fr/rest/meta/meta#get-octocat).\n\n   ```shell copy\n   gh api /octocat --method GET\n   ```\n\n## Utilisation GitHub CLI dans GitHub Actions\n\nVous pouvez également utiliser GitHub CLI dans vos GitHub Actions flux de travail. Pour plus d’informations, consultez « [Utilisation de l’interface CLI GitHub dans les flux de travail](/fr/actions/using-workflows/using-github-cli-in-workflows) ».\n\n### S’authentifier avec un jeton d’accès\n\nAu lieu d’utiliser la commande `gh auth login`, passez un jeton d’accès en tant que variable d’environnement appelée `GH_TOKEN`.\nGitHub recommande d’utiliser le composant `GITHUB_TOKEN` intégré au lieu de créer un jeton. Si ce n’est pas possible, stockez votre jeton sous forme de secret et remplacez `GITHUB_TOKEN` dans l’exemple ci-dessous par le nom de votre secret. Pour plus d’informations sur `GITHUB_TOKEN`, consultez [Utiliser GITHUB\\_TOKEN pour l’authentification dans les flux de travail](/fr/actions/security-guides/automatic-token-authentication). Pour plus d’informations sur les secrets, consultez « [Utilisation de secrets dans GitHub Actions](/fr/actions/security-guides/encrypted-secrets) ».\n\nL’exemple de flux de travail suivant utilise le point de terminaison [List repository issues](/fr/rest/issues/issues#list-repository-issues)  et demande une liste de problèmes dans le référentiel `octocat/Spoon-Knife`.\n\n```yaml copy\non:\n  workflow_dispatch:\njobs:\n  use_api:\n    runs-on: ubuntu-latest\n    permissions:\n      issues: read\n    steps:\n      - env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        run: |\n          gh api https://api.github.com/repos/octocat/Spoon-Knife/issues\n```\n\n### Authentification avec un GitHub App\n\nSi vous vous authentifiez avec un GitHub App, vous pouvez créer un jeton d’accès d’installation dans votre workflow :\n\n1. Stockez votre GitHub AppID client en tant que variable de configuration. Dans l’exemple suivant, remplacez `APP_CLIENT_ID` par le nom de la variable de configuration. Vous pouvez trouver votre ID client dans la page paramètres de votre application ou via l’API. Pour plus d’informations, consultez « [Points de terminaison d’API REST pour GitHub Apps](/fr/rest/apps/apps#get-an-app) ». Pour plus d’informations concernant les variables de configuration, consultez [Stocker des informations dans des variables](/fr/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows).\n2. Générez une clé privée pour votre application. Stockez le contenu du fichier obtenu dans un secret. (Stockez l’intégralité du contenu du fichier, y compris `-----BEGIN RSA PRIVATE KEY-----` et `-----END RSA PRIVATE KEY-----`.) Dans l’exemple suivant, remplacez `APP_PRIVATE_KEY` par le nom du secret. Pour plus d’informations, consultez « [Gestion des clés privées pour les applications GitHub](/fr/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps) ». Pour plus d’informations sur les secrets, consultez « [Utilisation de secrets dans GitHub Actions](/fr/actions/security-guides/encrypted-secrets) ».\n3. Ajoutez une étape pour générer un jeton, puis utilisez ce jeton au lieu de `GITHUB_TOKEN`. Notez que ce jeton expire au bout de 60 minutes.\n   Par exemple :\n\n   ```yaml copy\n   on:\n     workflow_dispatch:\n   jobs:\n     track_pr:\n       runs-on: ubuntu-latest\n       steps:\n         - name: Generate token\n           id: generate-token\n           uses: actions/create-github-app-token@v3\n           with:\n             client-id: ${{ vars.APP_CLIENT_ID }}\n             private-key: ${{ secrets.APP_PRIVATE_KEY }}\n         - name: Use API\n           env:\n             GH_TOKEN: ${{ steps.generate-token.outputs.token }}\n           run: |\n             gh api https://api.github.com/repos/octocat/Spoon-Knife/issues\n   ```\n\n</div>\n\n<div class=\"ghd-tool javascript\">\n\n## Utilisation d’Octokit.js\n\nVous pouvez utiliser Octokit.js pour interagir avec l’API GitHub REST dans vos scripts JavaScript. Pour plus d’informations, consultez [Écriture de scripts avec l’API REST et JavaScript](/fr/rest/guides/scripting-with-the-rest-api-and-javascript).\n\n1. Créez un jeton d’accès. Par exemple, créez un jeton d’accès personal access token utilisateur ou un GitHub App jeton d’accès utilisateur. Vous utiliserez ce jeton pour authentifier votre demande. Vous devez donc lui accorder toutes les étendues ou autorisations requises pour accéder à ce point de terminaison. Pour plus d’informations, consultez [Authentification auprès de l’API REST](/fr/rest/overview/authenticating-to-the-rest-api) ou [Identifier et autoriser les utilisateurs pour GitHub Apps](/fr/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps).\n\n   > \\[!WARNING]\n   > Considérez le jeton d’accès comme un mot de passe.\n   >\n   > Pour sécuriser votre jeton, vous pouvez stocker votre jeton en tant que secret et exécuter votre script via GitHub Actions. Pour plus d’informations, consultez la section [Using Octokit.js GitHub Actions](#using-octokitjs-in-github-actions) .\n\n   Vous pouvez également stocker votre jeton en tant que Codespaces secret et exécuter votre script dans Codespaces. Pour plus d’informations, consultez [Gestion des secrets chiffrés pour vos espaces de code](/fr/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces).\n\n   > Si ces options ne sont pas possibles, envisagez d’utiliser un autre service CLI pour stocker votre jeton en toute sécurité.\n\n2. Installez `octokit`. Par exemple : `npm install octokit`. Pour découvrir d’autres manières d’installer ou charger `octokit`, consultez [le README d’Octokit.js](https://github.com/octokit/octokit.js/#readme).\n\n3. Importez `octokit` dans votre script. Par exemple : `import { Octokit } from \"octokit\";`. Pour d'autres moyens d'importer `octokit`, consultez le README d'Octokit.js.\n\n4. Créez une instance de `Octokit` avec votre jeton. Remplacez `YOUR-TOKEN` par votre jeton.\n\n   ```javascript copy\n   const octokit = new Octokit({ \n     auth: 'YOUR-TOKEN'\n   });\n   ```\n\n5. Utilisez `octokit.request` pour exécuter votre requête. Envoyez la méthode HTTP et le chemin en tant que premier argument. Spécifiez tous les paramètres de chemin, de requête et de corps dans un objet en tant que deuxième argument. Pour plus d’informations sur les paramètres, consultez [Prise en main de l’API REST](/fr/rest/guides/getting-started-with-the-rest-api#using-parameters).\n\n   Par exemple, dans la requête suivante, la méthode HTTP est `GET`, le chemin d’accès est `/repos/{owner}/{repo}/issues`, et les paramètres sont `owner: \"octocat\"`et .`repo: \"Spoon-Knife\"`\n\n   ```javascript copy\n   await octokit.request(\"GET /repos/{owner}/{repo}/issues\", {\n     owner: \"octocat\",\n     repo: \"Spoon-Knife\",\n   });\n   ```\n\n## Utilisation de Octokit.js dans GitHub Actions\n\nVous pouvez également exécuter vos scripts JavaScript dans vos GitHub Actions flux de travail. Pour plus d’informations, consultez « [Syntaxe de flux de travail pour GitHub Actions](/fr/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun) ».\n\n### S’authentifier avec un jeton d’accès\n\nGitHub recommande d’utiliser le composant `GITHUB_TOKEN` intégré au lieu de créer un jeton. Si ce n’est pas possible, stockez votre jeton sous forme de secret et remplacez `GITHUB_TOKEN` dans l’exemple ci-dessous par le nom de votre secret. Pour plus d’informations sur `GITHUB_TOKEN`, consultez [Utiliser GITHUB\\_TOKEN pour l’authentification dans les flux de travail](/fr/actions/security-guides/automatic-token-authentication). Pour plus d’informations sur les secrets, consultez « [Utilisation de secrets dans GitHub Actions](/fr/actions/security-guides/encrypted-secrets) ».\n\nL'exemple de flux de travail suivant :\n\n1. Consulte le contenu du dépôt.\n2. Il configure Node.js.\n3. Il installe `octokit`.\n4. Il stocke la valeur de `GITHUB_TOKEN` sous forme de variable d’environnement appelée `TOKEN` et exécute `.github/actions-scripts/use-the-api.mjs`, qui peut accéder à cette variable d’environnement en tant que `process.env.TOKEN`.\n\n```yaml\non:\n  workflow_dispatch:\njobs:\n  use_api_via_script:\n    runs-on: ubuntu-latest\n    permissions:\n      issues: read\n    steps:\n      - name: Check out repo content\n        uses: actions/checkout@v6\n\n      - name: Setup Node\n        uses: actions/setup-node@v4\n        with:\n          node-version: '16.17.0'\n          cache: npm\n\n      - name: Install dependencies\n        run: npm install octokit\n\n      - name: Run script\n        run: |\n          node .github/actions-scripts/use-the-api.mjs\n        env:\n          TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\nVoici un exemple de script JavaScript avec le chemin d’accès `.github/actions-scripts/use-the-api.mjs`au fichier.\n\n```javascript\nimport { Octokit } from \"octokit\"\n\nconst octokit = new Octokit({ \n  auth: process.env.TOKEN\n});\n\ntry {\n  const result = await octokit.request(\"GET /repos/{owner}/{repo}/issues\", {\n      owner: \"octocat\",\n      repo: \"Spoon-Knife\",\n    });\n\n  const titleAndAuthor = result.data.map(issue => {title: issue.title, authorID: issue.user.id})\n\n  console.log(titleAndAuthor)\n\n} catch (error) {\n  console.log(`Error! Status: ${error.status}. Message: ${error.response.data.message}`)\n}\n```\n\n### Authentification avec un GitHub App\n\nSi vous vous authentifiez avec un GitHub App, vous pouvez créer un jeton d’accès d’installation dans votre workflow :\n\n1. Stockez votre GitHub AppID client en tant que variable de configuration. Dans l’exemple suivant, remplacez `APP_CLIENT_ID` par le nom de la variable de configuration. Vous trouverez votre ID client dans la page paramètres de votre application ou via l’API d’application. Pour plus d’informations, consultez « [Points de terminaison d’API REST pour GitHub Apps](/fr/rest/apps/apps#get-an-app) ». Pour plus d’informations concernant les variables de configuration, consultez [Stocker des informations dans des variables](/fr/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows).\n2. Générez une clé privée pour votre application. Stockez le contenu du fichier obtenu dans un secret. (Stockez l’intégralité du contenu du fichier, y compris `-----BEGIN RSA PRIVATE KEY-----` et `-----END RSA PRIVATE KEY-----`.) Dans l’exemple suivant, remplacez `APP_PRIVATE_KEY` par le nom du secret. Pour plus d’informations, consultez « [Gestion des clés privées pour les applications GitHub](/fr/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps) ». Pour plus d’informations sur les secrets, consultez « [Utilisation de secrets dans GitHub Actions](/fr/actions/security-guides/encrypted-secrets) ».\n3. Ajoutez une étape pour générer un jeton, puis utilisez ce jeton au lieu de `GITHUB_TOKEN`. Notez que ce jeton expire au bout de 60 minutes. Par exemple :\n\n   ```yaml\n   on:\n     workflow_dispatch:\n   jobs:\n     use_api_via_script:\n       runs-on: ubuntu-latest\n       steps:\n         - name: Check out repo content\n           uses: actions/checkout@v6\n\n         - name: Setup Node\n           uses: actions/setup-node@v4\n           with:\n             node-version: '16.17.0'\n             cache: npm\n\n         - name: Install dependencies\n           run: npm install octokit\n\n         - name: Generate token\n           id: generate-token\n           uses: actions/create-github-app-token@v3\n           with:\n             client-id: ${{ vars.APP_CLIENT_ID }}\n             private-key: ${{ secrets.APP_PRIVATE_KEY }}\n\n         - name: Run script\n           run: |\n             node .github/actions-scripts/use-the-api.mjs\n           env:\n             TOKEN: ${{ steps.generate-token.outputs.token }}\n\n   ```\n\n</div>\n\n<div class=\"ghd-tool curl\">\n\n## Utilisation de `curl` dans la ligne de commande\n\n> \\[!NOTE]\n> Si vous souhaitez effectuer des demandes d’API à partir de la ligne de commande, GitHub vous recommande d’utiliser GitHub CLI, ce qui simplifie l’authentification et les demandes. Pour plus d’informations sur la prise en main de l’API REST à l’aide de GitHub CLI, consultez la version GitHub CLI de cet article.\n\n1. Installez `curl` s’il n’est pas déjà installé sur votre ordinateur. Pour vérifier si `curl` est installé, exécutez `curl --version` dans la ligne de commande. Si la sortie fournit des informations sur la version de `curl`, cela signifie que `curl` est installé. Si vous recevez un message comme `command not found: curl`, vous avez besoin de télécharger et d’installer `curl`. Pour plus d’informations, consultez [la page de téléchargement du projet curl](https://curl.se/download.html).\n\n2. Créez un jeton d’accès. Par exemple, créez un jeton d’accès personal access token utilisateur ou un GitHub App jeton d’accès utilisateur. Vous utiliserez ce jeton pour authentifier votre demande. Vous devez donc lui accorder toutes les étendues ou autorisations requises pour accéder au point de terminaison. Pour plus d’informations, consultez « [Authentification auprès de l’API REST](/fr/rest/overview/authenticating-to-the-rest-api) ».\n\n   > \\[!WARNING]\n   > Considérez le jeton d’accès comme un mot de passe.\n   >\n   > Pour sécuriser votre jeton, vous pouvez stocker votre jeton en tant que Codespaces secret et utiliser la ligne de commande via Codespaces. Pour plus d’informations, consultez [Gestion des secrets chiffrés pour vos espaces de code](/fr/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces).\n\n   > Vous pouvez également utiliser GitHub CLI à la place de `curl`.\n   > GitHub CLI s’occupe de l’authentification pour vous. Pour plus d’informations, consultez la GitHub CLI version de cette page.\n   >\n   > Si ces options ne sont pas possibles, envisagez d’utiliser un autre service CLI pour stocker votre jeton en toute sécurité.\n\n3. Utilisez la commande `curl` pour effectuer votre requête. Passez votre jeton dans un en-tête `Authorization`. Remplacez `YOUR-TOKEN` par votre jeton.\n\n   ```shell copy\n   curl --request GET \\\n   --url \"https://api.github.com/repos/octocat/Spoon-Knife/issues\" \\\n   --header \"Accept: application/vnd.github+json\" \\\n   --header \"Authorization: Bearer YOUR-TOKEN\"\n   ```\n\n   > \\[!NOTE]\n   > Dans la plupart des cas, vous pouvez utiliser `Authorization: Bearer` ou `Authorization: token` pour passer un jeton. Toutefois, si vous passez un jeton web JSON (JWT), vous devez utiliser `Authorization: Bearer`.\n\n## Utiliser les commandes `curl` dans GitHub Actions\n\nVous pouvez également utiliser des commandes `curl` dans vos workflows GitHub Actions.\n\n### S’authentifier avec un jeton d’accès\n\nGitHub recommande d’utiliser le composant `GITHUB_TOKEN` intégré au lieu de créer un jeton. Si ce n’est pas possible, stockez votre jeton sous forme de secret et remplacez `GITHUB_TOKEN` dans l’exemple ci-dessous par le nom de votre secret. Pour plus d’informations sur `GITHUB_TOKEN`, consultez [Utiliser GITHUB\\_TOKEN pour l’authentification dans les flux de travail](/fr/actions/security-guides/automatic-token-authentication). Pour plus d’informations sur les secrets, consultez « [Utilisation de secrets dans GitHub Actions](/fr/actions/security-guides/encrypted-secrets) ».\n\n```yaml copy\non:\n  workflow_dispatch:\njobs:\n  use_api:\n    runs-on: ubuntu-latest\n    permissions:\n      issues: read\n    steps:\n      - env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        run: |\n          curl --request GET \\\n          --url \"https://api.github.com/repos/octocat/Spoon-Knife/issues\" \\\n          --header \"Accept: application/vnd.github+json\" \\\n          --header \"Authorization: Bearer $GH_TOKEN\"\n```\n\n### Authentification avec un GitHub App\n\nSi vous vous authentifiez avec un GitHub App, vous pouvez créer un jeton d’accès d’installation dans votre workflow :\n\n1. Stockez votre GitHub AppID client en tant que variable de configuration. Dans l’exemple suivant, remplacez `APP_CLIENT_ID` par le nom de la variable de configuration. Vous trouverez votre ID client dans la page paramètres de votre application ou via l’API d’application. Pour plus d’informations, consultez « [Points de terminaison d’API REST pour GitHub Apps](/fr/rest/apps/apps#get-an-app) ». Pour plus d’informations concernant les variables de configuration, consultez [Stocker des informations dans des variables](/fr/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows).\n2. Générez une clé privée pour votre application. Stockez le contenu du fichier obtenu dans un secret. (Stockez l’intégralité du contenu du fichier, y compris `-----BEGIN RSA PRIVATE KEY-----` et `-----END RSA PRIVATE KEY-----`.) Dans l’exemple suivant, remplacez `APP_PRIVATE_KEY` par le nom du secret. Pour plus d’informations, consultez « [Gestion des clés privées pour les applications GitHub](/fr/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps) ». Pour plus d’informations sur le stockage de secrets, consultez « [Utilisation de secrets dans GitHub Actions](/fr/actions/security-guides/encrypted-secrets) ».\n3. Ajoutez une étape pour générer un jeton, puis utilisez ce jeton au lieu de `GITHUB_TOKEN`. Notez que ce jeton expire au bout de 60 minutes.\n   Par exemple :\n\n   ```yaml copy\n   on:\n     workflow_dispatch:\n   jobs:\n     use_api:\n       runs-on: ubuntu-latest\n       steps:\n         - name: Generate token\n           id: generate-token\n           uses: actions/create-github-app-token@v3\n           with:\n             client-id: ${{ vars.APP_CLIENT_ID }}\n             private-key: ${{ secrets.APP_PRIVATE_KEY }}\n\n         - name: Use API\n           env:\n             GH_TOKEN: ${{ steps.generate-token.outputs.token }}\n           run: |\n             curl --request GET \\\n             --url \"https://api.github.com/repos/octocat/Spoon-Knife/issues\" \\\n             --header \"Accept: application/vnd.github+json\" \\\n             --header \"Authorization: Bearer $GH_TOKEN\"\n\n   ```\n\n</div>\n\n## Étapes suivantes\n\nPour obtenir un guide plus détaillé, consultez [Bien démarrer avec l’API REST](/fr/rest/guides/getting-started-with-the-rest-api)."}