REST-API-Endpunkte für Bereitstellungsschlüssel
Verwende die REST-API, um Bereitstellungsschlüssel zu erstellen und zu verwalten.
Informationen zu Bereitstellungsschlüsseln
Du kannst Projekte aus einem Repository in GitHub.com auf deinem Server starten, indem du einen Bereitstellungsschlüssel verwendest. Dabei handelt es sich um einen SSH-Schlüssel, der Zugriff auf ein einzelnes Repository gewährt. GitHub fügt den öffentlichen Teil des Schlüssels direkt an dein Repository anstatt an ein persönliches Konto an, und der private Teil des Schlüssels verbleibt auf deinem Server. Weitere Informationen finden Sie unter Durchführung von Bereitstellungen.
Bereitstellungsschlüssel können entweder mithilfe der folgenden API-Endpunkte oder mithilfe der GitHub Webschnittstelle eingerichtet werden. Weitere Informationen zum Einrichten von Bereitstellungsschlüsseln in der Webschnittstelle findest du unter Verwalten von Bereitstellungsschlüsseln.
In einigen Fällen wird ein Bereitstellungsschlüssel durch andere Aktivitäten gelöscht:
- Wenn der Bereitstellungsschlüssel mit einem personal access token erstellt wurde, führt das Löschen von personal access token auch zur Löschung des Bereitstellungsschlüssels. Regenerieren des personal access token löscht den Bereitstellungsschlüssel nicht.
- Wenn der Bereitstellungsschlüssel mit einem OAuth app Token erstellt wird, wird durch das Widerrufen des Tokens auch der Bereitstellungsschlüssel gelöscht.
Im Gegensatz dazu werden diese Vorgänge keinen Deploy-Key löschen:
- Wenn der Bereitstellungsschlüssel mit einem GitHub App Benutzerzugriffstoken erstellt wird, löscht das Widerrufen des Tokens nicht den Bereitstellungsschlüssel.
- Wenn der Bereitstellungsschlüssel mit einem GitHub App Installationszugriffstoken erstellt wird, wird beim Deinstallieren oder Löschen der App der Bereitstellungsschlüssel nicht gelöscht.
- Wenn der Bereitstellungsschlüssel mit einem personal access token erstellt wird, führt das Neugenerieren von personal access token nicht zur Löschung des Bereitstellungsschlüssels.
List deploy keys
Feinkörnige Zugriffstoken für "List deploy keys"
Dieser Endpunkt funktioniert mit den folgenden differenzierten Tokentypen.:
- GitHub-App-Benutzerzugriffstoken
- Zugriffstoken für GitHub App-Installation
- Feingranulare persönliche Zugriffstoken
Das differenzierte Token muss über den folgenden Berechtigungssatz verfügen.:
- "Administration" repository permissions (read)
Parameter für "List deploy keys"
| Name, Typ, BESCHREIBUNG |
|---|
accept string Setting to |
| Name, Typ, BESCHREIBUNG |
|---|
owner string ErforderlichThe account owner of the repository. The name is not case sensitive. |
repo string ErforderlichThe name of the repository without the |
| Name, Typ, BESCHREIBUNG |
|---|
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Standard: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Standard: |
HTTP-Antwortstatuscodes für "List deploy keys"
| Statuscode | BESCHREIBUNG |
|---|---|
200 | OK |
Codebeispiele für "List deploy keys"
Anforderungsbeispiel
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/keysResponse
Status: 200[
{
"id": 1,
"key": "ssh-rsa AAA...",
"url": "https://api.github.com/repos/octocat/Hello-World/keys/1",
"title": "octocat@octomac",
"verified": true,
"created_at": "2014-12-10T15:53:42Z",
"read_only": true,
"added_by": "octocat",
"last_used": "2022-01-10T15:53:42Z",
"enabled": true
}
]Create a deploy key
You can create a read-only deploy key.
Feinkörnige Zugriffstoken für "Create a deploy key"
Dieser Endpunkt funktioniert mit den folgenden differenzierten Tokentypen.:
- GitHub-App-Benutzerzugriffstoken
- Zugriffstoken für GitHub App-Installation
- Feingranulare persönliche Zugriffstoken
Das differenzierte Token muss über den folgenden Berechtigungssatz verfügen.:
- "Administration" repository permissions (write)
Parameter für "Create a deploy key"
| Name, Typ, BESCHREIBUNG |
|---|
accept string Setting to |
| Name, Typ, BESCHREIBUNG |
|---|
owner string ErforderlichThe account owner of the repository. The name is not case sensitive. |
repo string ErforderlichThe name of the repository without the |
| Name, Typ, BESCHREIBUNG |
|---|
title string A name for the key. |
key string ErforderlichThe contents of the key. |
read_only boolean If Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "Repository permission levels for an organization" and "Permission levels for a user account repository." |
HTTP-Antwortstatuscodes für "Create a deploy key"
| Statuscode | BESCHREIBUNG |
|---|---|
201 | Created |
422 | Validation failed, or the endpoint has been spammed. |
Codebeispiele für "Create a deploy key"
Anforderungsbeispiel
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/keys \
-d '{"title":"octocat@octomac","key":"ssh-rsa AAA...","read_only":true}'Response
Status: 201{
"id": 1,
"key": "ssh-rsa AAA...",
"url": "https://api.github.com/repos/octocat/Hello-World/keys/1",
"title": "octocat@octomac",
"verified": true,
"created_at": "2014-12-10T15:53:42Z",
"read_only": true,
"added_by": "octocat",
"last_used": "2022-01-10T15:53:42Z",
"enabled": true
}Get a deploy key
Feinkörnige Zugriffstoken für "Get a deploy key"
Dieser Endpunkt funktioniert mit den folgenden differenzierten Tokentypen.:
- GitHub-App-Benutzerzugriffstoken
- Zugriffstoken für GitHub App-Installation
- Feingranulare persönliche Zugriffstoken
Das differenzierte Token muss über den folgenden Berechtigungssatz verfügen.:
- "Administration" repository permissions (read)
Parameter für "Get a deploy key"
| Name, Typ, BESCHREIBUNG |
|---|
accept string Setting to |
| Name, Typ, BESCHREIBUNG |
|---|
owner string ErforderlichThe account owner of the repository. The name is not case sensitive. |
repo string ErforderlichThe name of the repository without the |
key_id integer ErforderlichThe unique identifier of the key. |
HTTP-Antwortstatuscodes für "Get a deploy key"
| Statuscode | BESCHREIBUNG |
|---|---|
200 | OK |
404 | Resource not found |
Codebeispiele für "Get a deploy key"
Anforderungsbeispiel
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/keys/KEY_IDResponse
Status: 200{
"id": 1,
"key": "ssh-rsa AAA...",
"url": "https://api.github.com/repos/octocat/Hello-World/keys/1",
"title": "octocat@octomac",
"verified": true,
"created_at": "2014-12-10T15:53:42Z",
"read_only": true,
"added_by": "octocat",
"last_used": "2022-01-10T15:53:42Z",
"enabled": true
}Delete a deploy key
Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead.
Feinkörnige Zugriffstoken für "Delete a deploy key"
Dieser Endpunkt funktioniert mit den folgenden differenzierten Tokentypen.:
- GitHub-App-Benutzerzugriffstoken
- Zugriffstoken für GitHub App-Installation
- Feingranulare persönliche Zugriffstoken
Das differenzierte Token muss über den folgenden Berechtigungssatz verfügen.:
- "Administration" repository permissions (write)
Parameter für "Delete a deploy key"
| Name, Typ, BESCHREIBUNG |
|---|
accept string Setting to |
| Name, Typ, BESCHREIBUNG |
|---|
owner string ErforderlichThe account owner of the repository. The name is not case sensitive. |
repo string ErforderlichThe name of the repository without the |
key_id integer ErforderlichThe unique identifier of the key. |
HTTP-Antwortstatuscodes für "Delete a deploy key"
| Statuscode | BESCHREIBUNG |
|---|---|
204 | No Content |
Codebeispiele für "Delete a deploy key"
Anforderungsbeispiel
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/repos/OWNER/REPO/keys/KEY_IDResponse
Status: 204