{"meta":{"title":"Erstellen von benutzerdefinierten Regeln für den Bereitstellungsschutz","intro":"Verwende GitHub Apps, um den Schutz von Bereitstellungen mit Drittanbietersystemen zu automatisieren.","product":"GitHub Actions","breadcrumbs":[{"href":"/de/actions","title":"GitHub Actions"},{"href":"/de/actions/how-tos","title":"Anleitungen"},{"href":"/de/actions/how-tos/deploy","title":"Bereitstellen"},{"href":"/de/actions/how-tos/deploy/configure-and-manage-deployments","title":"Konfigurieren und Verwalten von Bereitstellungen"},{"href":"/de/actions/how-tos/deploy/configure-and-manage-deployments/create-custom-protection-rules","title":"Erstellen von benutzerdefinierten Schutzregeln"}],"documentType":"article"},"body":"# Erstellen von benutzerdefinierten Regeln für den Bereitstellungsschutz\n\nVerwende GitHub Apps, um den Schutz von Bereitstellungen mit Drittanbietersystemen zu automatisieren.\n\n## Voraussetzungen\n\n> \\[!NOTE]\n> Benutzerdefinierte Regeln für den Bereitstellungsschutz befinden sich derzeit in der öffentliche Vorschau. Änderungen sind vorbehalten.\n\nAllgemeine Informationen zu Bereitstellungsschutzregeln findest du unter [Implementierung mit GitHub Actions](/de/actions/concepts/use-cases/deploying-with-github-actions#using-custom-deployment-protection-rules).\n\n## Erstellen einer benutzerdefinierten Regel für den Bereitstellungsschutz mit GitHub Apps\n\n1. Erstelle eine GitHub App. Weitere Informationen finden Sie unter [Registrieren einer GitHub-App](/de/apps/creating-github-apps/creating-github-apps/creating-a-github-app). Konfiguriere die GitHub App wie folgt.\n   1. 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](/de/apps/creating-github-apps/creating-github-apps/about-the-user-authorization-callback-url).\n   2. Wähle unter „Berechtigungen“ die Option **Repositoryberechtigungen** aus.\n   3. Klicke rechts neben „Aktionen“ auf das Dropdownmenü und wähle **Zugriff: Schreibgeschützt** aus.\n\n      ```\n          ![Screenshot des Abschnitts \"Repositoryberechtigungen\" für eine neue GitHub App. Die Berechtigung „Aktionen“ zeigt „Schreibgeschützt“ und ist orange umrandet.](/assets/images/help/actions/actions-repo-permissions-read-only.png)\n      ```\n   4. Klicke rechts neben „Bereitstellungen“ auf das Dropdownmenü und wähle **Zugriff: Lesen und schreiben** aus.\n\n      ```\n          ![Screenshot des Abschnitts \"Repositoryberechtigungen\" für eine neue GitHub App. Die Berechtigung Bereitstellungen zeigt „Lesen und Schreiben“ und ist orange umrandet.](/assets/images/help/actions/actions-deployments-repo-permissions-read-and-write.png)\n      ```\n   5. Wähle unter „Ereignisse abonnieren“ die Option **Regel für Bereitstellungsschutz** aus.\n\n      ```\n          ![Screenshot des Abschnitts „Ereignisse abonnieren“ für eine neue GitHub-App. Das Kontrollkästchen für die Regel zum Schutz der Bereitstellung ist orange umrandet.](/assets/images/help/actions/actions-subscribe-to-events-deployment-protection-rules.png)\n      ```\n\n2. Installiere die benutzerdefinierte Bereitstellungsschutzregel in deinen Repositorys und aktiviere ihre Verwendung. Weitere Informationen finden Sie unter [Konfigurieren von benutzerdefinierten Regeln für den Bereitstellungsschutz](/de/actions/deployment/protecting-deployments/configuring-custom-deployment-protection-rules).\n\n## Genehmigen oder Ablehnen von Bereitstellungen\n\nSobald 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.\n\nBenutzerdefinierte Bereitstellungsschutzregeln sind nicht kompatibel, wenn die Umgebung eines Arbeitsablaufs auf `deployment: false` gesetzt ist. Weitere Informationen finden Sie unter [Implementierung mit GitHub Actions](/de/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#interaction-with-protection-rules).\n\n1. Validiere die eingehende `POST`-Anforderung. Weitere Informationen finden Sie unter [Validierung der Webhook-Lieferungen](/de/webhooks-and-events/webhooks/securing-your-webhooks#validating-payloads-from-github).\n\n2. Verwende ein JSON-Webtoken zur Authentifizierung als GitHub App. Weitere Informationen finden Sie unter [Authentifizieren als GitHub-App](/de/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app#about-authentication-as-a-github-app).\n\n3. 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](/de/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app).\n\n   ```shell\n   curl --request POST \\\n   --url \"https://api.github.com/app/installations/INSTALLATION_ID/ACCESS_TOKENS\" \\\n   --header \"Accept: application/vnd.github+json\" \\\n   --header \"Authorization: Bearer {jwt}\" \\\n   --header \"Content-Type: application/json\" \\\n   --data \\\n   '{ \\\n      \"repository_ids\": [321], \\\n      \"permissions\": { \\\n         \"deployments\": \"write\" \\\n      } \\\n   }'\n   ```\n\n4. 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 den `state` weg. Weitere Informationen finden Sie unter [REST-API-Endpunkte für Workflowausführungen](/de/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run). 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.\n\n5. Um eine Anforderung zu genehmigen oder abzulehnen, sende eine `POST`-Anforderung an `/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule`. Lege die Eigenschaft `state` im Anforderungstext entweder auf `approved` oder auf `rejected` fest. Weitere Informationen finden Sie unter [REST-API-Endpunkte für Workflowausführungen](/de/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run).\n\n6. 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](/de/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run).\n\n7. Optional können Sie die Bereitstellung auf GitHub überprüfen. Weitere Informationen finden Sie unter [Überprüfen von Bereitstellungen](/de/actions/managing-workflow-runs/reviewing-deployments).\n\n## Veröffentlichen von benutzerdefinierten Bereitstellungsschutzregeln im GitHub Marketplace\n\nDu kannst deine GitHub App im GitHub Marketplace veröffentlichen, um Entwickler\\*innen zu erlauben, geeignete Schutzregeln zu ermitteln und in ihren GitHub-Repositorys zu installieren. Alternativ dazu kannst du die vorhandenen benutzerdefinierten Regeln für den Bereitstellungsschutz durchsuchen, um für deine Anforderungen geeignete Regeln zu finden. Weitere Informationen findest du unter [Informationen zu GitHub Marketplace für Apps](/de/apps/publishing-apps-to-github-marketplace/github-marketplace-overview/about-github-marketplace) und [Auflisten einer App auf GitHub Marketplace](/de/apps/publishing-apps-to-github-marketplace/listing-an-app-on-github-marketplace)."}