Voraussetzungen
Hinweis
Benutzerdefinierte Regeln für den Bereitstellungsschutz befinden sich derzeit in der beta. Änderungen sind vorbehalten.
Allgemeine Informationen zu Bereitstellungsschutzregeln findest du unter Bereitstellen mit GitHub Actions.
Erstellen einer benutzerdefinierten Regel für den Bereitstellungsschutz mit GitHub Apps
-
Erstelle eine GitHub App. Weitere Informationen finden Sie unter Registrieren einer GitHub-App. Konfiguriere die GitHub App wie folgt.
- Optional kannst du im Textfeld Rückruf-URL unter „Identifizieren und Autorisieren von Benutzern“ die Rückruf-URL eingeben. Weitere Informationen finden Sie unter Informationen zur Rückruf-URL für die Benutzerautorisierung.
- Wähle unter „Berechtigungen“ die Option Repositoryberechtigungen aus.
- Klicke rechts neben „Aktionen“ auf das Dropdownmenü und wähle Zugriff: Schreibgeschützt aus.
- Klicke rechts neben „Bereitstellungen“ auf das Dropdownmenü und wähle Zugriff: Lesen und schreiben aus.
- Wähle unter „Ereignisse abonnieren“ die Option Regel für Bereitstellungsschutz aus.
-
Installiere die benutzerdefinierte Bereitstellungsschutzregel in deinen Repositorys und aktiviere ihre Verwendung. Weitere Informationen finden Sie unter Konfigurieren von benutzerdefinierten Regeln für den Bereitstellungsschutz.
Genehmigen oder Ablehnen von Bereitstellungen
Sobald ein Workflow einen Auftrag erreicht, der auf eine Umgebung mit aktivierter benutzerdefinierter Bereitstellungsschutzregel verweist, sendet GitHub eine POST
-Anforderung mit der Payload deployment_protection_rule
an die von dir konfigurierte URL. Du kannst deine Bereitstellungsschutzregel so schreiben, dass automatisch REST-API-Anforderungen zum Genehmigen oder Ablehnen der Bereitstellung basierend auf der Payload deployment_protection_rule
gesendet werden. Konfiguriere deine REST-API-Anforderungen wie folgt.
-
Validiere die eingehende
POST
-Anforderung. Weitere Informationen finden Sie unter Validierung von Webhook-Zustellung. -
Verwende ein JSON-Webtoken zur Authentifizierung als GitHub App. Weitere Informationen finden Sie unter Authentifizieren als GitHub-App.
-
Generiere ein Installationstoken unter Verwendung der Installations-ID aus der Webhookpayload
deployment_protection_rule
. Weitere Informationen finden Sie unter Informationen zur Authentifizierung mit einer GitHub-App.curl --request POST \ --url "http(s)://HOSTNAME/api/v3/app/installations/INSTALLATION_ID/ACCESS_TOKENS" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer {jwt}" \ --header "Content-Type: application/json" \ --data \ '{ \ "repository_ids": [321], \ "permissions": { \ "deployments": "write" \ } \ }'
-
Um einen Statusbericht hinzuzufügen, ohne weitere Aktionen auf GitHub auszuführen, können Sie optional eine
POST
-Anforderung an/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule
senden. Lass im Anforderungstext denstate
weg. Weitere Informationen finden Sie unter REST-API-Endpunkte für Workflowausführungen. Du kannst einen Statusbericht bis zu zehn Mal an ein und dieselbe Bereitstellung posten. Statusberichte unterstützen die Markdownformatierung und können bis zu 1024 Zeichen lang sein. -
Um eine Anforderung zu genehmigen oder abzulehnen, sende eine
POST
-Anforderung an/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule
. Lege die Eigenschaftstate
im Anforderungstext entweder aufapproved
oder aufrejected
fest. Weitere Informationen finden Sie unter REST-API-Endpunkte für Workflowausführungen. -
Optional kannst du den Status einer Genehmigung für eine Workflowausführung anfordern, indem du eine
GET
-Anforderung an/repos/OWNER/REPOSITORY_ID/actions/runs/RUN_ID/approvals
sendest. Weitere Informationen finden Sie unter REST-API-Endpunkte für Workflowausführungen. -
Oder Sie sehen sich die Bereitstellung auf GitHub an. Weitere Informationen finden Sie unter Überprüfen von Bereitstellungen.