{"meta":{"title":"Erstellen von benutzerdefinierten Regeln für den Bereitstellungsschutz","intro":"Verwenden Sie 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\nVerwenden Sie 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/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-custom-deployment-protection-rules).\n\n## Erstellen einer benutzerdefinierten Bereitstellungsschutzregel mit GitHub Apps\n\n1. Erstellen Sie eine GitHub App. Weitere Informationen finden Sie unter [Registrieren einer GitHub-App](/de/apps/creating-github-apps/registering-a-github-app/registering-a-github-app). Konfigurieren Sie folgendes GitHub App :\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/registering-a-github-app/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![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\n1. Klicke rechts neben „Bereitstellungen“ auf das Dropdownmenü und wähle **Zugriff: Lesen und schreiben** aus.\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\n1. Wähle unter „Ereignisse abonnieren“ die Option **Regel für Bereitstellungsschutz** aus.\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\n1. 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/how-tos/deploy/configure-and-manage-deployments/configure-custom-protection-rules).\n\n## Genehmigen oder Ablehnen von Bereitstellungen\n\nSobald ein Workflow einen Job erreicht, der auf eine Umgebung verweist, für die die benutzerdefinierte Bereitstellungsschutzregel aktiviert ist, sendet GitHub eine `POST`-Anforderung an eine von Ihnen konfigurierte URL, die die `deployment_protection_rule`-Payload enthält. 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/using-webhooks/validating-webhook-deliveries#validating-webhook-deliveries).\n\n2. Verwenden Sie ein JSON Web Token, um sich als GitHub App zu authentifizieren. 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/apps/creating-github-apps/authenticating-with-a-github-app/about-authentication-with-a-github-app#authentication-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. Optional können Sie, um einen Statusbericht hinzuzufügen, ohne an GitHub eine andere Aktion vorzunehmen, eine `POST` Anfrage 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 überprüfen Sie die Bereitstellung auf GitHub. Weitere Informationen finden Sie unter [Überprüfen von Bereitstellungen](/de/actions/how-tos/deploy/configure-and-manage-deployments/review-deployments).\n\n## Veröffentlichen von benutzerdefinierten Bereitstellungsschutzregeln in GitHub Marketplace\n\nSie können Ihr GitHub App auf der GitHub Marketplace veröffentlichen, damit Entwickler geeignete Schutzregeln finden und sie in ihren GitHub-Repositories installieren können. 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/github-marketplace/github-marketplace-overview/about-github-marketplace-for-apps) und [Auflisten einer App auf GitHub Marketplace](/de/apps/github-marketplace/listing-an-app-on-github-marketplace)."}