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.
-
Installiere GitHub CLI unter macOS, Windows oder Linux. Weitere Informationen finden Sie unter Installation im Repository GitHub CLI.
-
Führe den folgenden Befehl im Terminal aus, um dich bei GitHub zu authentifizieren.
gh auth login -
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.
-
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 pushundgit pullverwenden können, ohne eine separate Anmeldeinformationsverwaltung einrichten oder SSH verwenden zu müssen. -
Machen Sie eine Anforderung mit dem GitHub CLI
api-Unterbefehl, gefolgt von dem Pfad. Verwende das Flag--methododer-X, um die Methode anzugeben. Weitere Informationen findest du in der Dokumentation zu GitHub CLIapi.In diesem Beispiel wird eine Anforderung an den Endpunkt „Get Octocat“ gestellt, der die Methode
GETund den Pfad/octocatverwendet. Die vollständige Referenzdokumentation für diesen Endpunkt findest du unter REST-API-Endpunkte für Metadaten.Shell gh api /octocat --method GET
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.
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
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:
-
Speichern Sie die ID Ihrer GitHub App als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel
APP_IDdurch 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. -
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 BeispielAPP_PEMdurch 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. -
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 BeispielHOSTNAMEdurch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen SieREPO-OWNERdurch den Namen des Kontos, das das Repository besitzt. Ersetzen SieREPO-NAMEdurch 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/issueson: 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.
-
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.
-
Installiere
octokit. Beispiel:npm install octokit. Informationen über andere Möglichkeiten zum Installieren oder Laden vonoctokitfindest du in der Octokit.js-Infodatei. -
Importiere
octokitin dein Skript. Beispiel:import { Octokit } from "octokit";. Informationen über andere Möglichkeiten zum Importieren vonoctokitfindest du in der Octokit.js-Infodatei. -
Erstellen Sie eine Instance von
Octokitmit Ihrem Token. Ersetzen SieHOSTNAMEdurch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen SieYOUR-TOKENdurch Ihren Token.JavaScript const octokit = new Octokit({ baseUrl: "http(s)://HOSTNAME/api/v3", auth: 'YOUR-TOKEN' });const octokit = new Octokit({ baseUrl: "http(s)://HOSTNAME/api/v3", auth: 'YOUR-TOKEN' }); -
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}/issuesund die Pfadparameter sindowner: "REPO-OWNER"undrepo: "REPO-NAME".Ersetzen SieREPO-OWNERdurch den Namen des Kontos, das das Repository besitzt, undREPO-NAMEmit dem Namen des Repository.JavaScript await octokit.request("GET /repos/{owner}/{repo}/issues", { owner: "REPO-OWNER", repo: "REPO-NAME", });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:
- Überprüfen des Repositoryinhalts
- Einrichten von Node.js
- Installieren von
octokit - Speichern des Werts von
GITHUB_TOKENals Umgebungsvariable namensTOKENund Ausführen des Skripts.github/actions-scripts/use-the-api.mjs, das auf diese Umgebungsvariable alsprocess.env.TOKENzugreifen 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:
-
Speichern Sie die ID Ihrer GitHub App als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel
APP_IDdurch 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. -
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 BeispielAPP_PEMdurch 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. -
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.
-
Installiere
curlauf deinem Computer, sofern nicht bereits geschehen. Um festzustellen, obcurlbereits installiert ist, führe an der Befehlszeilecurl --versionaus. Wenn die Ausgabe Informationen über die Version voncurlenthält, bedeutet dies, dasscurlinstalliert ist. Wenn du eine Meldung der Artcommand not found: curlerhältst, musst ducurlherunterladen und installieren. Weitere Informationen findest du auf der Downloadseite für das curl-Projekt. -
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
curlauch 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.
-
Verwenden Sie den Befehl
curl, um Ihre Anforderung auszuführen. Übergeben Sie Ihr Token in einemAuthorizationHeader.Ersetzen SieHOSTNAMEdurch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen SieREPO-OWNERdurch den Namen des Kontos, das das Repository besitzt. Ersetzen SieREPO-NAMEdurch den Namen des Repositorys. Ersetzen SieYOUR-TOKENdurch 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"
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: BeareroderAuthorization: tokenverwenden, um ein Token zu übergeben. Wenn du jedoch ein JWT (JSON Web Token) übergibst, musst duAuthorization: Bearerverwenden.
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.
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"
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:
-
Speichern Sie die ID Ihrer GitHub App als Konfigurationsvariable. Ersetzen Sie im folgenden Beispiel
APP_IDdurch 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. -
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 BeispielAPP_PEMdurch 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. -
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 BeispielHOSTNAMEdurch den Namen von Ihre GitHub Enterprise Server-Instance. Ersetzen SieREPO-OWNERdurch den Namen des Kontos, das das Repository besitzt. Ersetzen SieREPO-NAMEdurch 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"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.