{"meta":{"title":"Schnellstart für GitHub REST-API","intro":"Erfahre mehr über die ersten Schritte mit der GitHub-REST-API.","product":"REST-API","breadcrumbs":[{"href":"/de/rest","title":"REST-API"},{"href":"/de/rest/quickstart","title":"Schnellstart"}],"documentType":"article"},"body":"# Schnellstart für GitHub REST-API\n\nErfahre mehr über die ersten Schritte mit der GitHub-REST-API.\n\n## Einführung\n\nDieser Artikel enthält Informationen zum schnellen Einstieg in die GitHub-REST-API mithilfe von GitHub CLI, `curl` oder JavaScript. Einen ausführlicheren Leitfaden findest du unter [Erste Schritte mit der REST-API](/de/rest/guides/getting-started-with-the-rest-api).\n\n<div class=\"ghd-tool cli\">\n\n## Verwendung von GitHub CLI in der Befehlszeile\n\nDie GitHub CLI ist der einfachste Weg, um die GitHub-REST-API über die Befehlszeile zu nutzen.\n\n1. Installiere GitHub CLI unter macOS, Windows oder Linux. Weitere Informationen finden Sie unter [Installation](https://github.com/cli/cli?ref_product=cli\\&ref_type=engagement\\&ref_style=text#installation) im Repository GitHub CLI.\n\n2. Führe den folgenden Befehl im Terminal aus, um dich bei GitHub zu authentifizieren.\n\n   ```shell\n   gh auth login\n   ```\n\n3. Wähle aus, wo du dich authentifizieren möchtest:\n\n   * Wenn du über GitHub auf github.com zugreifst, wähle **github.com** aus.\n   * Wenn du über eine andere Domäne auf GitHub zugreifst, wähle **Other** aus, und gib dann den Hostnamen ein, z. B. `octocorp.ghe.com`.\n\n4. Befolge die restlichen Anweisungen auf dem Bildschirm.\n\n   GitHub CLI speichert automatisch Ihre Git-Anmeldeinformationen für Sie, wenn Sie HTTPS als bevorzugtes Protokoll für Git-Operationen auswählen und die Frage, ob Sie sich bei Git mit Ihren GitHub-Anmeldeinformationen authentifizieren möchten, mit „Ja“ beantworten. Dies kann nützlich sein, da Sie damit Git-Befehle wie `git push` und `git pull` verwenden können, ohne eine separate Anmeldeinformationsverwaltung einrichten oder SSH verwenden zu müssen.\n\n5. Machen Sie eine Anforderung mit dem GitHub CLI `api`-Unterbefehl, gefolgt von dem Pfad. Verwende das Flag `--method` oder `-X`, um die Methode anzugeben. Weitere Informationen findest du in der Dokumentation zu [GitHub CLI `api`](https://cli.github.com/manual/gh_api).\n\n   In diesem Beispiel wird eine Anforderung an den Endpunkt „Get Octocat“ gestellt, der die Methode `GET` und den Pfad `/octocat` verwendet. Die vollständige Referenzdokumentation für diesen Endpunkt findest du unter [REST-API-Endpunkte für Metadaten](/de/rest/meta/meta#get-octocat).\n\n   ```shell copy\n   gh api /octocat --method GET\n   ```\n\n## Verwendung von GitHub CLI in GitHub Actions\n\nDu kannst die GitHub CLI auch in deinen GitHub Actions-Workflows verwenden. Weitere Informationen finden Sie unter [Verwenden GitHub CLI in Workflows](/de/actions/using-workflows/using-github-cli-in-workflows).\n\n### Authentifizieren mit einem Zugriffstoken\n\nAnstatt den Befehl `gh auth login` zu verwenden, übergibst du ein Zugriffstoken als Umgebungsvariable namens `GH_TOKEN`. GitHub empfiehlt, dass du das integrierte `GITHUB_TOKEN` verwendest, anstatt ein Token zu erstellen. Wenn das nicht möglich ist, speichere dein Token als Geheimnis, und ersetze `GITHUB_TOKEN` im folgenden Beispiel durch den Namen deines Geheimnisses. Weitere Informationen zu `GITHUB_TOKEN` findest du unter [Verwenden von GITHUB\\_TOKEN für die Authentifizierung in Workflows](/de/actions/security-guides/automatic-token-authentication). Weitere Informationen zu Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/security-guides/encrypted-secrets).\n\nDer folgende Beispielworkflow verwendet den Endpunkt [Repositoryprobleme. auflisten](/de/rest/issues/issues#list-repository-issues) und fordert eine Liste der Probleme in im `octocat/Spoon-Knife`-Repository angeben.\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### Authentifizieren mit einer GitHub App\n\nWenn du dich mit einer GitHub App authentifizierst, kannst du innerhalb deines Workflows ein Zugriffstoken für die Installation erstellen:\n\n1. Speichern Sie die ID Ihrer GitHub App als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel `APP_ID` durch den Namen der Konfigurationsvariablen. Du findest die App-ID auf der Einstellungsseite deiner App oder über die API. Weitere Informationen finden Sie unter [REST-API-Endpunkte für GitHub Apps](/de/rest/apps/apps#get-an-app). Weitere Informationen zu Konfigurationsvariablen findest du unter [Speichern von Informationen in Variablen](/de/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows).\n2. Generiere einen privaten Schlüssel für deine App. Speichere den Inhalt der resultierenden Datei als Geheimnis. (Speichere den gesamten Inhalt der Datei, einschließlich `-----BEGIN RSA PRIVATE KEY-----` und `-----END RSA PRIVATE KEY-----`.) Ersetze im folgenden Beispiel `APP_PEM` durch den Namen des Geheimnisses. Weitere Informationen finden Sie unter [Verwalten privater Schlüssel für GitHub Apps](/de/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps). Weitere Informationen zu Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/security-guides/encrypted-secrets).\n3. Füge einen Schritt zum Generieren eines Tokens hinzu, und verwende diesen Token anstelle von `GITHUB_TOKEN`. Beachte, dass dieses Token nach 60 Minuten abläuft. Zum Beispiel:\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@v2\n           with:\n             app-id: ${{ vars.APP_ID }}\n             private-key: ${{ secrets.APP_PEM }}\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## Verwenden von „Octokit.js“\n\nDu kannst „Octokit.js“ verwenden, um in deinen JavaScript-Skripts mit der GitHub-REST-API zu interagieren. Weitere Informationen findest du unter [Skripterstellung mit der REST-API und JavaScript](/de/rest/guides/scripting-with-the-rest-api-and-javascript).\n\n1. Erstelle ein Zugriffstoken. Erstelle zum Beispiel ein personal access token oder ein GitHub App-Benutzerzugriffstoken. Sie verwenden dieses Token, um Ihre Anforderung zu authentifizieren, daher sollten Sie ihm alle Bereiche oder Berechtigungen erteilen, die für den Zugriff auf diesen Endpunkt erforderlich sind. Weitere Informationen finden Sie unter [Authentifizieren bei der REST-API](/de/rest/overview/authenticating-to-the-rest-api) oder [Identifizieren und Autorisieren von Benutzern für GitHub Apps](/de/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps).\n\n   > \\[!WARNING]\n   > Behandeln Sie das Zugriffstoken wie ein Kennwort.\n   >\n   > Um dein Token zu schützen, kannst du es als Geheimnis speichern und dein Skript über GitHub Actions ausführen. Weitere Informationen findest du im Abschnitt [Verwenden von Octokit.js in GitHub Actions](#using-octokitjs-in-github-actions).\n\n   Du kannst dein Token auch als Codespaces-Geheimnis speichern und dein Skript in Codespaces ausführen. Weitere Informationen findest du unter [Verwalten verschlüsselter Geheimnisse für deine Codespaces](/de/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces).\n\n   > Wenn diese Optionen nicht verfügbar sind, erwägen Sie, einen anderen CLI-Dienst zu nutzen, um Ihr Token sicher zu speichern.\n\n2. Installiere `octokit`. Beispiel: `npm install octokit`. Informationen über andere Möglichkeiten zum Installieren oder Laden von `octokit` findest du in der [Octokit.js-Infodatei](https://github.com/octokit/octokit.js/#readme).\n\n3. Importiere `octokit` in dein Skript. Beispiel: `import { Octokit } from \"octokit\";`. Informationen über andere Möglichkeiten zum Importieren von `octokit` findest du in der [Octokit.js-Infodatei](https://github.com/octokit/octokit.js/#readme).\n\n4. Erstellen Sie eine Instance von `Octokit` mit Ihrem Token. Ersetzen Sie `YOUR-TOKEN` durch Ihren Token.\n\n   ```javascript copy\n   const octokit = new Octokit({ \n     auth: 'YOUR-TOKEN'\n   });\n   ```\n\n5. Verwenden Sie `octokit.request`, um Ihre Anforderung auszuführen. Übergib die HTTP-Methode und den Pfad als erstes Argument. Gib alle Pfad-, Abfrage- und Textparameter als zweites Argument in einem Objekt an. Weitere Informationen zu Parametern findest du unter [Erste Schritte mit der REST-API](/de/rest/guides/getting-started-with-the-rest-api#using-parameters).\n\n   In der folgenden Anfrage ist die HTTP-Methode beispielsweise `GET`, der Pfad `/repos/{owner}/{repo}/issues` und die Pfadparameter sind `owner: \"octocat\"` and `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## Verwenden von „Octokit.js“ in GitHub Actions\n\nDu kannst auch deine JavaScript-Skripts in deinen GitHub Actions-Workflows ausführen. Weitere Informationen finden Sie unter [Workflowsyntax für GitHub Actions](/de/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun).\n\n### Authentifizieren mit einem Zugriffstoken\n\nGitHub empfiehlt, dass du das integrierte `GITHUB_TOKEN` verwendest, anstatt ein Token zu erstellen. Wenn das nicht möglich ist, speichere dein Token als Geheimnis, und ersetze `GITHUB_TOKEN` im folgenden Beispiel durch den Namen deines Geheimnisses. Weitere Informationen zu `GITHUB_TOKEN` findest du unter [Verwenden von GITHUB\\_TOKEN für die Authentifizierung in Workflows](/de/actions/security-guides/automatic-token-authentication). Weitere Informationen zu Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/security-guides/encrypted-secrets).\n\nDer folgende Beispielworkflow:\n\n1. Überprüfen des Repositoryinhalts\n2. Einrichten von Node.js\n3. Installieren von `octokit`\n4. Speichern des Werts von `GITHUB_TOKEN` als Umgebungsvariable namens `TOKEN` und Ausführen des Skripts `.github/actions-scripts/use-the-api.mjs`, das auf diese Umgebungsvariable als `process.env.TOKEN` zugreifen kann\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\nIm Folgenden sehen Sie ein Beispiel-Javascript-Skript mit dem Dateipfad `.github/actions-scripts/use-the-api.mjs`.\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### Authentifizieren mit einer GitHub App\n\nWenn du dich mit einer GitHub App authentifizierst, kannst du innerhalb deines Workflows ein Zugriffstoken für die Installation erstellen:\n\n1. Speichern Sie die ID Ihrer GitHub App als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel `APP_ID` durch den Namen der Konfigurationsvariablen. Du kannst die App-ID auf der Einstellungsseite deiner App oder durch die App-API finden. Weitere Informationen finden Sie unter [REST-API-Endpunkte für GitHub Apps](/de/rest/apps/apps#get-an-app). Weitere Informationen zu Konfigurationsvariablen findest du unter [Speichern von Informationen in Variablen](/de/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows).\n2. Generiere einen privaten Schlüssel für deine App. Speichere den Inhalt der resultierenden Datei als Geheimnis. (Speichere den gesamten Inhalt der Datei, einschließlich `-----BEGIN RSA PRIVATE KEY-----` und `-----END RSA PRIVATE KEY-----`.) Ersetze im folgenden Beispiel `APP_PEM` durch den Namen des Geheimnisses. Weitere Informationen finden Sie unter [Verwalten privater Schlüssel für GitHub Apps](/de/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps). Weitere Informationen zu Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/security-guides/encrypted-secrets).\n3. Füge einen Schritt zum Generieren eines Tokens hinzu, und verwende diesen Token anstelle von `GITHUB_TOKEN`. Beachte, dass dieses Token nach 60 Minuten abläuft. Beispiel:\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@v2\n           with:\n             app-id: ${{ vars.APP_ID }}\n             private-key: ${{ secrets.APP_PEM }}\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## Verwenden von `curl` in der Befehlszeile\n\n> \\[!NOTE]\n> Wenn du API-Anforderungen über die Befehlszeile ausführen möchtest, empfiehlt GitHub die Verwendung der GitHub CLI, da dies die Authentifizierung und das Ausführen von Anforderungen vereinfacht. Weitere Informationen zu den ersten Schritten mit der REST-API unter Verwendung der GitHub CLI findest du in der GitHub CLI-Version dieses Artikels.\n\n1. Installiere `curl` auf deinem Computer, sofern nicht bereits geschehen. Um festzustellen, ob `curl` bereits installiert ist, führe an der Befehlszeile `curl --version` aus. Wenn die Ausgabe Informationen über die Version von `curl` enthält, bedeutet dies, dass `curl` installiert ist. Wenn du eine Meldung der Art `command not found: curl` erhältst, musst du `curl` herunterladen und installieren. Weitere Informationen findest du auf der [Downloadseite für das curl-Projekt](https://curl.se/download.html).\n\n2. Erstelle ein Zugriffstoken. Erstelle zum Beispiel ein personal access token oder ein GitHub App-Benutzerzugriffstoken. Sie verwenden dieses Token, um Ihre Anforderung zu authentifizieren, daher sollten Sie ihm alle Bereiche oder Berechtigungen erteilen, die für den Zugriff auf den Endpunkt erforderlich sind. Weitere Informationen finden Sie unter [Authentifizieren bei der REST-API](/de/rest/overview/authenticating-to-the-rest-api).\n\n   > \\[!WARNING]\n   > Behandeln Sie das Zugriffstoken wie ein Kennwort.\n   >\n   > Um dein Token zu schützen, kannst du es als Codespaces-Geheimnis speichern und die Befehlszeile über Codespaces verwenden. Weitere Informationen findest du unter [Verwalten verschlüsselter Geheimnisse für deine Codespaces](/de/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces).\n\n   > Du kannst anstelle von `curl` auch die GitHub CLI verwenden. Die GitHub CLI übernimmt die Authentifizierung für dich. Weitere Informationen findest du in der GitHub CLI-Version dieser Seite.\n   >\n   > Wenn diese Optionen nicht verfügbar sind, erwägen Sie, einen anderen CLI-Dienst zu nutzen, um Ihr Token sicher zu speichern.\n\n3. Verwenden Sie den Befehl `curl`, um Ihre Anforderung auszuführen. Übergeben Sie Ihr Token in einem `Authorization` Header. Ersetzen Sie `YOUR-TOKEN` durch Ihr Token.\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   > In den meisten Fällen kannst du `Authorization: Bearer` oder `Authorization: token` verwenden, um ein Token zu übergeben. Wenn du jedoch ein JWT (JSON Web Token) übergibst, musst du `Authorization: Bearer` verwenden.\n\n## Verwenden von `curl` Befehlen in GitHub Actions\n\nDu kannst `curl`-Befehle auch in deinen GitHub Actions-Workflows verwenden.\n\n### Authentifizieren mit einem Zugriffstoken\n\nGitHub empfiehlt, dass du das integrierte `GITHUB_TOKEN` verwendest, anstatt ein Token zu erstellen. Wenn das nicht möglich ist, speichere dein Token als Geheimnis, und ersetze `GITHUB_TOKEN` im folgenden Beispiel durch den Namen deines Geheimnisses. Weitere Informationen zu `GITHUB_TOKEN` findest du unter [Verwenden von GITHUB\\_TOKEN für die Authentifizierung in Workflows](/de/actions/security-guides/automatic-token-authentication). Weitere Informationen zu Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/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### Authentifizieren mit einer GitHub App\n\nWenn du dich mit einer GitHub App authentifizierst, kannst du innerhalb deines Workflows ein Zugriffstoken für die Installation erstellen:\n\n1. Speichern Sie die ID Ihrer GitHub App als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel `APP_ID` durch den Namen der Konfigurationsvariablen. Du kannst die App-ID auf der Einstellungsseite deiner App oder durch die App-API finden. Weitere Informationen finden Sie unter [REST-API-Endpunkte für GitHub Apps](/de/rest/apps/apps#get-an-app). Weitere Informationen zu Konfigurationsvariablen findest du unter [Speichern von Informationen in Variablen](/de/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows).\n2. Generiere einen privaten Schlüssel für deine App. Speichere den Inhalt der resultierenden Datei als Geheimnis. (Speichere den gesamten Inhalt der Datei, einschließlich `-----BEGIN RSA PRIVATE KEY-----` und `-----END RSA PRIVATE KEY-----`.) Ersetze im folgenden Beispiel `APP_PEM` durch den Namen des Geheimnisses. Weitere Informationen finden Sie unter [Verwalten privater Schlüssel für GitHub Apps](/de/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps). Weitere Informationen zum Speichern von Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/security-guides/encrypted-secrets).\n3. Füge einen Schritt zum Generieren eines Tokens hinzu, und verwende diesen Token anstelle von `GITHUB_TOKEN`. Beachte, dass dieses Token nach 60 Minuten abläuft. Zum Beispiel:\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@v2\n           with:\n             app-id: ${{ vars.APP_ID }}\n             private-key: ${{ secrets.APP_PEM }}\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## Nächste Schritte\n\nEinen ausführlicheren Leitfaden findest du unter [Erste Schritte mit der REST-API](/de/rest/guides/getting-started-with-the-rest-api)."}