# Schnellstart für GitHub REST-API

Erfahre mehr über die ersten Schritte mit der GitHub-REST-API.

## Einführung

Dieser 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).

<div class="ghd-tool cli">

## Verwendung von GitHub CLI in der Befehlszeile

Die GitHub CLI ist der einfachste Weg, um die GitHub-REST-API über die Befehlszeile zu nutzen.

1. 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.

2. Führe den folgenden Befehl im Terminal aus, um dich bei GitHub zu authentifizieren.

   ```shell
   gh auth login
   ```

3. Wähle aus, wo du dich authentifizieren möchtest:

   * Wenn du über GitHub auf GitHub.com zugreifst, wähle **GitHub.com** aus.
   * 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`.

4. Befolge die restlichen Anweisungen auf dem Bildschirm.

   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.

5. 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).

   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).

   ```shell copy
   gh api /octocat --method GET
   ```

## Verwendung von GitHub CLI in GitHub Actions

Du 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).

### Authentifizieren mit einem Zugriffstoken

Anstatt 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).

Der 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.

```yaml copy
on:
  workflow_dispatch:
jobs:
  use_api:
    runs-on: ubuntu-latest
    permissions:
      issues: read
    steps:
      - env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
```

### Authentifizieren mit einer GitHub App

Wenn du dich mit einer GitHub App authentifizierst, kannst du innerhalb deines Workflows ein Zugriffstoken für die Installation erstellen:

1. 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).
2. 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).
3. 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:

   ```yaml copy
   on:
     workflow_dispatch:
   jobs:
     track_pr:
       runs-on: ubuntu-latest
       steps:
         - name: Generate token
           id: generate-token
           uses: actions/create-github-app-token@v2
           with:
             app-id: ${{ vars.APP_ID }}
             private-key: ${{ secrets.APP_PEM }}
         - name: Use API
           env:
             GH_TOKEN: ${{ steps.generate-token.outputs.token }}
           run: |
             gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
   ```

</div>

<div class="ghd-tool javascript">

## Verwenden von „Octokit.js“

Du 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).

1. 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).

   > \[!WARNING]
   > Behandeln Sie das Zugriffstoken wie ein Kennwort.
   >
   > 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).

   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).

   > Wenn diese Optionen nicht verfügbar sind, erwägen Sie, einen anderen CLI-Dienst zu nutzen, um Ihr Token sicher zu speichern.

2. 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).

3. 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).

4. Erstellen Sie eine Instance von `Octokit` mit Ihrem Token. Ersetzen Sie `YOUR-TOKEN` durch Ihren Token.

   ```javascript copy
   const octokit = new Octokit({ 
     auth: 'YOUR-TOKEN'
   });
   ```

5. 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).

   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"`.

   ```javascript copy
   await octokit.request("GET /repos/{owner}/{repo}/issues", {
     owner: "octocat",
     repo: "Spoon-Knife",
   });
   ```

## Verwenden von „Octokit.js“ in GitHub Actions

Du 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).

### Authentifizieren mit einem Zugriffstoken

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).

Der folgende Beispielworkflow:

1. Überprüfen des Repositoryinhalts
2. Einrichten von Node.js
3. Installieren von `octokit`
4. 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

```yaml
on:
  workflow_dispatch:
jobs:
  use_api_via_script:
    runs-on: ubuntu-latest
    permissions:
      issues: read
    steps:
      - name: Check out repo content
        uses: actions/checkout@v6

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: '16.17.0'
          cache: npm

      - name: Install dependencies
        run: npm install octokit

      - name: Run script
        run: |
          node .github/actions-scripts/use-the-api.mjs
        env:
          TOKEN: ${{ secrets.GITHUB_TOKEN }}
```

Im Folgenden sehen Sie ein Beispiel-Javascript-Skript mit dem Dateipfad `.github/actions-scripts/use-the-api.mjs`.

```javascript
import { Octokit } from "octokit"

const octokit = new Octokit({ 
  auth: process.env.TOKEN
});

try {
  const result = await octokit.request("GET /repos/{owner}/{repo}/issues", {
      owner: "octocat",
      repo: "Spoon-Knife",
    });

  const titleAndAuthor = result.data.map(issue => {title: issue.title, authorID: issue.user.id})

  console.log(titleAndAuthor)

} catch (error) {
  console.log(`Error! Status: ${error.status}. Message: ${error.response.data.message}`)
}
```

### Authentifizieren mit einer GitHub App

Wenn du dich mit einer GitHub App authentifizierst, kannst du innerhalb deines Workflows ein Zugriffstoken für die Installation erstellen:

1. 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).
2. 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).
3. 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:

   ```yaml
   on:
     workflow_dispatch:
   jobs:
     use_api_via_script:
       runs-on: ubuntu-latest
       steps:
         - name: Check out repo content
           uses: actions/checkout@v6

         - name: Setup Node
           uses: actions/setup-node@v4
           with:
             node-version: '16.17.0'
             cache: npm

         - name: Install dependencies
           run: npm install octokit

         - name: Generate token
           id: generate-token
           uses: actions/create-github-app-token@v2
           with:
             app-id: ${{ vars.APP_ID }}
             private-key: ${{ secrets.APP_PEM }}

         - name: Run script
           run: |
             node .github/actions-scripts/use-the-api.mjs
           env:
             TOKEN: ${{ steps.generate-token.outputs.token }}

   ```

</div>

<div class="ghd-tool curl">

## Verwenden von `curl` in der Befehlszeile

> \[!NOTE]
> 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.

1. 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).

2. 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).

   > \[!WARNING]
   > Behandeln Sie das Zugriffstoken wie ein Kennwort.
   >
   > 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).

   > 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.
   >
   > Wenn diese Optionen nicht verfügbar sind, erwägen Sie, einen anderen CLI-Dienst zu nutzen, um Ihr Token sicher zu speichern.

3. 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.

   ```shell copy
   curl --request GET \
   --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
   --header "Accept: application/vnd.github+json" \
   --header "Authorization: Bearer YOUR-TOKEN"
   ```

   > \[!NOTE]
   > 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.

## Verwenden von `curl` Befehlen in GitHub Actions

Du kannst `curl`-Befehle auch in deinen GitHub Actions-Workflows verwenden.

### Authentifizieren mit einem Zugriffstoken

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).

```yaml copy
on:
  workflow_dispatch:
jobs:
  use_api:
    runs-on: ubuntu-latest
    permissions:
      issues: read
    steps:
      - env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          curl --request GET \
          --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
          --header "Accept: application/vnd.github+json" \
          --header "Authorization: Bearer $GH_TOKEN"
```

### Authentifizieren mit einer GitHub App

Wenn du dich mit einer GitHub App authentifizierst, kannst du innerhalb deines Workflows ein Zugriffstoken für die Installation erstellen:

1. 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).
2. 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).
3. 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:

   ```yaml copy
   on:
     workflow_dispatch:
   jobs:
     use_api:
       runs-on: ubuntu-latest
       steps:
         - name: Generate token
           id: generate-token
           uses: actions/create-github-app-token@v2
           with:
             app-id: ${{ vars.APP_ID }}
             private-key: ${{ secrets.APP_PEM }}

         - name: Use API
           env:
             GH_TOKEN: ${{ steps.generate-token.outputs.token }}
           run: |
             curl --request GET \
             --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
             --header "Accept: application/vnd.github+json" \
             --header "Authorization: Bearer $GH_TOKEN"

   ```

</div>

## Nächste Schritte

Einen ausführlicheren Leitfaden findest du unter [Erste Schritte mit der REST-API](/de/rest/guides/getting-started-with-the-rest-api).