Prérequis
Remarque
Les règles de protection de déploiement personnalisées sont actuellement en bêta et sont susceptibles d’être modifiées.
Pour obtenir des informations générales sur les règles de protection du déploiement, consultez Déploiement avec GitHub Actions.
Création d’une règle de protection de déploiement personnalisée avec GitHub Apps
-
Créez une GitHub App. Pour plus d’informations, consultez « Inscription d’une application GitHub ». Configurez l’GitHub App comme suit.
-
Si vous le souhaitez, dans le champ de texte URL de rappel, sous « Identification et autorisation des utilisateurs », entrez l’URL de rappel. Pour plus d’informations, consultez « À propos de l’URL de rappel d’autorisation utilisateur ».
-
Sous « Autorisations », sélectionnez Autorisations du dépôt.
-
À droite d’« Actions », cliquez sur le menu déroulant et sélectionnez Accès : lecture seule.
 -
À droite de « Déploiements », cliquez sur le menu déroulant et sélectionnez Accès : Lecture et écriture.
 -
Sous « S’abonner aux événements », sélectionnez Règle de protection du déploiement.

-
-
Installez la règle de protection de déploiement personnalisée dans vos dépôts et activez-la pour l’utiliser. Pour plus d’informations, consultez « Configuration de règles de protection de déploiement personnalisées ».
Approbation ou rejet de déploiements
Une fois qu’un workflow atteint un travail qui référence un environnement sur lequel la règle de protection de déploiement personnalisée est activée, GitHub envoie une requête POST à une URL que vous configurez contenant la charge utile deployment_protection_rule. Vous pouvez écrire votre règle de protection du déploiement pour envoyer automatiquement des requêtes d’API REST qui approuvent ou rejettent le déploiement en fonction de la charge utile deployment_protection_rule. Configurez vos requêtes d’API REST comme suit.
-
Validez la requête
POSTentrante. Pour plus d’informations, consultez « Validation des livraisons de webhook ». -
Utilisez un jeton web JSON pour l’authentification en tant que GitHub App. Pour plus d’informations, consultez « Authentification en tant qu’application GitHub ».
-
À l’aide de l’ID d’installation de la charge utile
deployment_protection_ruledu webhook, générez un jeton d’installation. Pour plus d’informations, consultez « À propos de l’authentification avec une application GitHub ».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" \ } \ }' -
Si vous souhaitez ajouter un rapport d’état sans effectuer d’autre action sur GitHub, envoyez une demande
POSTà/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule. Dans le corps de la requête, omettez lestate. Pour plus d’informations, consultez « Points de terminaison d'API REST pour l'exécution des workflows ». Vous pouvez publier un rapport d’état sur le même déploiement jusqu’à 10 fois. Les rapports d’état prennent en charge la mise en forme Markdown et peuvent avoir jusqu’à 1 024 caractères. -
Pour approuver ou rejeter une requête, envoyez une requête
POSTà/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule. Dans le corps de la requête, attribuez à la propriétéstatela valeurapprovedourejected. Pour plus d’informations, consultez « Points de terminaison d'API REST pour l'exécution des workflows ». -
Si vous le souhaitez, demandez l’état d’une approbation pour une exécution de workflow en envoyant une requête
GETà/repos/OWNER/REPOSITORY_ID/actions/runs/RUN_ID/approvals. Pour plus d’informations, consultez « Points de terminaison d'API REST pour l'exécution des workflows ». -
Si vous le souhaitez, examinez le déploiement sur GitHub. Pour plus d’informations, consultez « Révision des déploiements ».