Skip to main content

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, curloder JavaScript beginnen. Einen ausführlicheren Leitfaden findest du unter Erste Schritte mit der REST-API.

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 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 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 CLIapi Unterbefehls vor, gefolgt vom Pfad. Verwende das Flag --method oder -X, um die Methode anzugeben. Weitere Informationen finden Sie in der GitHub CLIapi Dokumentation.

    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
    

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.

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

Der folgende Beispielworkflow verwendet den Endpunkt Repository-Issues auflisten und ruft eine Liste von Issues in einem Repository ab, das Sie angeben. 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 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. 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_PRIVATE_KEY 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@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 http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues
    

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.

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

    Warnung

    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 .

    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 Instanz von Octokit mit Ihrem Token. Ersetzen Sie HOSTNAME durch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen Sie YOUR-TOKEN durch Ihr 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.

    Zum Beispiel ist in der folgenden Anfrage die HTTP-Methode GET, der Pfad /repos/{owner}/{repo}/issues, und die Parameter sind owner: "REPO-OWNER", repo: "REPO-NAME". Ersetzen Sie den REPO-OWNER Namen des Kontos, das das Repository besitzt, und REPO-NAME durch den Namen des Repositorys.

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

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.

Authentifizieren mit einem Zugriffstoken

GitHub empfiehlt, das integrierte GITHUB_TOKEN zu verwenden, anstatt selbst 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@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. 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 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. 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_PRIVATE_KEY 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@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 }}
    
    

Verwenden von curl in der Befehlszeile

Hinweis

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.

  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.

    Warnung

    Behandeln Sie das Zugriffstoken wie ein Kennwort.

    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 Ihr Token in einer Authorization Kopfzeile. 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

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

Authentifizieren mit einem Zugriffstoken

GitHub empfiehlt, das integrierte GITHUB_TOKEN zu verwenden, statt 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.

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
    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 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. 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_PRIVATE_KEY 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@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 "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.