# Schnellstart für GitHub REST-API

Erfahren Sie, wie Sie mit der GitHub REST-API beginnen.

## Einführung

In diesem Artikel wird beschrieben, wie Sie schnell mit der GitHub REST-API mit GitHub CLI, `curl`oder JavaScript beginnen. Einen ausführlicheren Leitfaden findest du unter [Erste Schritte mit der REST-API](/de/rest/using-the-rest-api/getting-started-with-the-rest-api).

<div class="ghd-tool cli">

## Verwenden von GitHub CLI in der Befehlszeile

GitHub CLI ist die einfachste Möglichkeit, die GitHub REST-API über die Befehlszeile zu verwenden.

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. Stellen Sie eine Anforderung mithilfe des GitHub CLI`api` Unterbefehls vor, gefolgt vom Pfad. Verwende das Flag `--method` oder `-X`, um die Methode anzugeben. Weitere Informationen finden Sie in der [GitHub CLI`api` Dokumentation](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
   ```

## Verwenden von GitHub CLI in GitHub Actions

Sie können GitHub CLI auch in Ihren GitHub Actions-Workflows verwenden. Weitere Informationen finden Sie unter [Verwenden GitHub CLI in Workflows](/de/actions/how-tos/write-workflows/choose-what-workflows-do/use-github-cli).

### Authentifizieren mit einem Zugriffstoken

Anstatt den Befehl `gh auth login` zu verwenden, übergibst du ein Zugriffstoken als Umgebungsvariable namens `GH_TOKEN`.
GitHub empfiehlt, das integrierte `GITHUB_TOKEN`-Token zu verwenden, 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/tutorials/authenticate-with-github_token). Weitere Informationen zu Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets).

Der folgende Beispielworkflow verwendet den Endpunkt [Repositoryprobleme auflisten](/de/rest/issues/issues#list-repository-issues) und stellt eine Anforderung an ein von Ihnen angegebenes – das `octocat/Spoon-Knife`Repository
– mit einer Liste der Probleme dar.

```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 einem GitHub App

Wenn Sie sich mit einem GitHub Appauthentifizieren, können Sie ein Installationszugriffstoken in Ihrem Workflow erstellen:

1. Speichern Sie ihre GitHub AppClient-ID als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel `APP_CLIENT_ID` durch den Namen der Konfigurationsvariablen. Sie finden Ihre Client-ID auf der Einstellungsseite für Ihre 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/how-tos/write-workflows/choose-what-workflows-do/use-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_PRIVATE_KEY` 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/how-tos/write-workflows/choose-what-workflows-do/use-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 copy
   on:
     workflow_dispatch:
   jobs:
     track_pr:
       runs-on: ubuntu-latest
       steps:
         - name: Generate token
           id: generate-token
           uses: actions/create-github-app-token@v3
           with:
             client-id: ${{ vars.APP_CLIENT_ID }}
             private-key: ${{ secrets.APP_PRIVATE_KEY }}
         - 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“

Sie können Octokit.js verwenden, um mit der GitHub REST-API in Ihren JavaScript-Skripts 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. Erstellen Sie z. B. ein personal access token Benutzerzugriffstoken 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/authentication/authenticating-to-the-rest-api) oder [Identifizieren und Autorisieren von Benutzern für GitHub Apps](/de/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user).

   > \[!WARNING]
   > Behandeln Sie das Zugriffstoken wie ein Kennwort.
   >
   > Um Ihr Token sicher aufzubewahren, können Sie es als Secret speichern und Ihr Skript über GitHub Actions ausführen. Weitere Informationen finden Sie im Abschnitt ["Using Octokit.js" GitHub Actions](#using-octokitjs-in-github-actions) .

   Sie können Ihr Token auch als Codespaces geheimes Geheimnis speichern und Ihr Skript in Codespacesausführen. Weitere Informationen findest du unter [Verwalten verschlüsselter Geheimnisse für deine Codespaces](/de/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-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 Instanz von `Octokit` mit Ihrem Token. Ersetzen Sie `YOUR-TOKEN` durch Ihr 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/using-the-rest-api/getting-started-with-the-rest-api#parameters).

   Zum Beispiel ist in der folgenden Anfrage die HTTP-Methode `GET`, der Pfad `/repos/{owner}/{repo}/issues`, und die Parameter sind `owner: "octocat"` und `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

Sie können Ihre JavaScript-Skripts auch in Ihren GitHub Actions Workflows ausführen. Weitere Informationen finden Sie unter [Workflowsyntax für GitHub Actions](/de/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsrun).

### Authentifizieren mit einem Zugriffstoken

GitHub empfiehlt, das integrierte `GITHUB_TOKEN`-Token zu verwenden, 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/tutorials/authenticate-with-github_token). Weitere Informationen zu Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/how-tos/write-workflows/choose-what-workflows-do/use-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 einem GitHub App

Wenn Sie sich mit einem GitHub Appauthentifizieren, können Sie ein Installationszugriffstoken in Ihrem Workflow erstellen:

1. Speichern Sie ihre GitHub AppClient-ID als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel `APP_CLIENT_ID` durch den Namen der Konfigurationsvariablen. Sie finden Ihre Client-ID auf der Einstellungsseite für Ihre App oder über die App-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/how-tos/write-workflows/choose-what-workflows-do/use-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_PRIVATE_KEY` 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/how-tos/write-workflows/choose-what-workflows-do/use-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@v3
           with:
             client-id: ${{ vars.APP_CLIENT_ID }}
             private-key: ${{ secrets.APP_PRIVATE_KEY }}

         - 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 Sie API-Anforderungen über die Befehlszeile stellen möchten, GitHub empfiehlt die Verwendung GitHub CLI, die die Authentifizierung und Anforderungen vereinfacht. Weitere Informationen zu den ersten Schritten mit der REST-API mit GitHub CLI finden Sie 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. Erstellen Sie z. B. ein personal access token Benutzerzugriffstoken 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/authentication/authenticating-to-the-rest-api).

   > \[!WARNING]
   > Behandeln Sie das Zugriffstoken wie ein Kennwort.
   >
   > Um Ihr Token sicher aufzubewahren, können Sie Ihr Token als Codespaces Secret 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-your-account-specific-secrets-for-github-codespaces).

   > Sie können auch GitHub CLI anstelle von `curl` verwenden.
   > GitHub CLI kümmert sich um die Authentifizierung für Sie. Weitere Informationen finden Sie 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 ein 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

Sie können auch `curl` Befehle in Ihren GitHub Actions Workflows verwenden.

### Authentifizieren mit einem Zugriffstoken

GitHub empfiehlt, das integrierte `GITHUB_TOKEN`-Token zu verwenden, 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/tutorials/authenticate-with-github_token). Weitere Informationen zu Geheimnissen findest du unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/how-tos/write-workflows/choose-what-workflows-do/use-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 einem GitHub App

Wenn Sie sich mit einem GitHub Appauthentifizieren, können Sie ein Installationszugriffstoken in Ihrem Workflow erstellen:

1. Speichern Sie ihre GitHub AppClient-ID als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel `APP_CLIENT_ID` durch den Namen der Konfigurationsvariablen. Sie finden Ihre Client-ID auf der Einstellungsseite für Ihre App oder über die App-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/how-tos/write-workflows/choose-what-workflows-do/use-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_PRIVATE_KEY` 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/how-tos/write-workflows/choose-what-workflows-do/use-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 copy
   on:
     workflow_dispatch:
   jobs:
     use_api:
       runs-on: ubuntu-latest
       steps:
         - name: Generate token
           id: generate-token
           uses: actions/create-github-app-token@v3
           with:
             client-id: ${{ vars.APP_CLIENT_ID }}
             private-key: ${{ secrets.APP_PRIVATE_KEY }}

         - 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/using-the-rest-api/getting-started-with-the-rest-api).