Skip to main content

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.

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 im Repository GitHub CLI.

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

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

    • Wenn du über GitHub.com auf GitHub 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.

    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.

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

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. Weitere Informationen zu Geheimnissen findest du unter Verwenden von Geheimnissen in GitHub-Aktionen.

Der folgende Beispielworkflow verwendet den Endpunkt Repositoryprobleme. auflisten und fordert eine Liste der Probleme in einem Repository an, das Sie . Ersetzen Sie HOSTNAME durch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen Sie REPO-OWNER durch den Namen des Kontos, das das Repository besitzt. Ersetzen Sie REPO-NAME durch den Namen des Repositorys.

YAML
on:
  workflow_dispatch:
jobs:
  use_api:
    runs-on: ubuntu-latest
    permissions:
      issues: read
    steps:
      - env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          gh api http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/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. Weitere Informationen zu Konfigurationsvariablen findest du unter Speichern von Informationen in Variablen.

  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. Weitere Informationen zu Geheimnissen findest du unter Verwenden von Geheimnissen in GitHub-Aktionen.

  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. Ersetzen Sie im folgenden Beispiel HOSTNAME durch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen Sie REPO-OWNER durch den Namen des Kontos, das das Repository besitzt. Ersetzen Sie REPO-NAME durch den Namen des Repositorys.

    YAML
    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 http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues
    

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.

  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 oder Identifizieren und Autorisieren von Benutzern für GitHub Apps.

    Warnung

    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.

    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.

  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.

  4. Erstellen Sie eine Instance von Octokit mit Ihrem Token. Ersetzen Sie HOSTNAME durch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen Sie YOUR-TOKEN durch Ihren Token.

    JavaScript
    const octokit = new Octokit({ 
      baseUrl: "http(s)://HOSTNAME/api/v3",
      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.

    In der folgenden Anfrage ist die HTTP-Methode beispielsweise GET, der Pfad /repos/{owner}/{repo}/issues und die Pfadparameter sind owner: "REPO-OWNER" und repo: "REPO-NAME".Ersetzen Sie REPO-OWNER durch den Namen des Kontos, das das Repository besitzt, und REPO-NAME mit dem Namen des Repository.

    JavaScript
    await octokit.request("GET /repos/{owner}/{repo}/issues", {
      owner: "REPO-OWNER",
      repo: "REPO-NAME",
    });
    

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.

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. Weitere Informationen zu Geheimnissen findest du unter Verwenden von Geheimnissen in GitHub-Aktionen.

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
on:
  workflow_dispatch:
jobs:
  use_api_via_script:
    runs-on: ubuntu-latest
    permissions:
      issues: read
    steps:
      - name: Check out repo content
        uses: actions/checkout@v5

      - 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.. Ersetzen Sie HOSTNAME durch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen Sie REPO-OWNER durch den Namen des Kontos, das das Repository besitzt. Ersetzen Sie REPO-NAME durch den Namen des Repositorys.

import { Octokit } from "octokit"

const octokit = new Octokit({ 
  baseUrl: "http(s)://HOSTNAME/api/v3",
  auth: process.env.TOKEN
});

try {
  const result = await octokit.request("GET /repos/{owner}/{repo}/issues", {
      owner: "REPO-OWNER",
      repo: "REPO-NAME",
    });

  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. Weitere Informationen zu Konfigurationsvariablen findest du unter Speichern von Informationen in Variablen.

  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. Weitere Informationen zu Geheimnissen findest du unter Verwenden von Geheimnissen in GitHub-Aktionen.

  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:

    on:
      workflow_dispatch:
    jobs:
      use_api_via_script:
        runs-on: ubuntu-latest
        steps:
          - name: Check out repo content
            uses: actions/checkout@v5
    
          - 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 }}
    
    

Verwenden von curl in der Befehlszeile

Hinweis

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.

  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.

    Warnung

    Behandeln Sie das Zugriffstoken wie ein Kennwort.

    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 HOSTNAME durch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen Sie REPO-OWNER durch den Namen des Kontos, das das Repository besitzt. Ersetzen Sie REPO-NAME durch den Namen des Repositorys. Ersetzen Sie YOUR-TOKEN durch Ihr Token.

    Shell
    curl --request GET \
    --url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \
    --header "Accept: application/vnd.github+json" \
    --header "Authorization: Bearer YOUR-TOKEN"
    

    Hinweis

    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. Weitere Informationen zu Geheimnissen findest du unter Verwenden von Geheimnissen in GitHub-Aktionen.

Im folgenden Beispiel ersetzen Sie HOSTNAME durch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen Sie REPO-OWNER durch den Namen des Kontos, das das Repository besitzt. Ersetzen Sie REPO-NAME durch den Namen des Repositorys.

YAML
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 "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/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. Weitere Informationen zu Konfigurationsvariablen findest du unter Speichern von Informationen in Variablen.

  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. Weitere Informationen zum Speichern von Geheimnissen findest du unter Verwenden von Geheimnissen in GitHub-Aktionen.

  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. Ersetzen Sie im folgenden Beispiel HOSTNAME durch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen Sie REPO-OWNER durch den Namen des Kontos, das das Repository besitzt. Ersetzen Sie REPO-NAME durch den Namen des Repositorys.

    YAML
    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 "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \
              --header "Accept: application/vnd.github+json" \
              --header "Authorization: Bearer $GH_TOKEN"
    
    

Nächste Schritte

Einen ausführlicheren Leitfaden findest du unter Erste Schritte mit der REST-API.