Voraussetzungen
Hinweis
Benutzerdefinierte Regeln für den Bereitstellungsschutz befinden sich derzeit in der public preview. Ä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_rulesenden. Lass im Anforderungstext denstateweg. 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 Eigenschaftstateim Anforderungstext entweder aufapprovedoder aufrejectedfest. 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/approvalssendest. 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.