Requisitos previos
Nota:
Las reglas de protección de implementación personalizadas se encuentran actualmente en versión preliminar pública y están sujetas a cambios.
Para obtener información general sobre las reglas de protección de implementación, consulta Desplegar con GitHub Actions.
Creación de una regla de protección de implementación personalizada con GitHub Apps
-
Crea un GitHub App. Para más información, consulta Registro de una instancia de GitHub App. Configura los datos de GitHub App como se indica a continuación.
- Opcionalmente, en el campo de texto URL de devolución de llamada en "Identificación y autorización de usuarios", escribe la dirección URL de devolución de llamada. Para más información, consulta Acerca de la dirección URL de devolución de llamada de autorización de usuario.
- En "Permisos", selecciona Permisos de repositorio.
- A la derecha de "Acciones", haz clic en el menú desplegable y selecciona Acceso: Solo lectura.
- A la derecha de "Implementaciones", haz clic en el menú desplegable y selecciona Acceso: Lectura y escritura.
- En "Suscribirse a eventos", selecciona Regla de protección de implementación.
-
Instala la regla de protección de implementación personalizada en los repositorios y habilítala para su uso. Para más información, consulta Configuración de reglas de protección de implementación personalizadas.
Aprobación o rechazo de implementaciones
Una vez que un flujo de trabajo alcanza un trabajo que hace referencia a un entorno que tiene habilitada la regla de protección de implementación personalizada, GitHub envía una solicitud POST
a una dirección URL que configura que contiene la carga útil deployment_protection_rule
. Puedes escribir la regla de protección de implementación para enviar automáticamente solicitudes de API REST que aprueben o rechacen la implementación en función de la carga deployment_protection_rule
. Configura las solicitudes de la API REST de la siguiente manera.
-
Valida la solicitud entrante
POST
. Para más información, consulta Validación de entregas de webhook. -
Usa un JSON Web Token para autenticarte como GitHub App. Para más información, consulta Autenticarse como una GitHub App.
-
Con el identificador de instalación de la carga del webhook
deployment_protection_rule
, genera un token de instalación. Para más información, consulta Acerca de la autenticación con una aplicación de GitHub.curl --request POST \ --url "https://api.github.com/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" \ } \ }'
-
Opcionalmente, para agregar un informe de estado sin realizar ninguna otra acción a GitHub, envía una solicitud
POST
a/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule
. En el cuerpo de la solicitud, omite elstate
Para más información, consulta Puntos de conexión de API de REST para ejecuciones de flujo de trabajo. Puedes publicar un informe de estado en la misma implementación hasta 10 veces. Los informes de estado admiten el formato Markdown y pueden tener hasta 1024 caracteres de longitud. -
Para aprobar o rechazar una solicitud, envía una solicitud
POST
a/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule
. En el cuerpo de la solicitud, establece la propiedadstate
enapproved
orejected
. Para más información, consulta Puntos de conexión de API de REST para ejecuciones de flujo de trabajo. -
Opcionalmente, solicita el estado de una aprobación para una ejecución de flujo de trabajo mediante el envío de una solicitud
GET
a/repos/OWNER/REPOSITORY_ID/actions/runs/RUN_ID/approvals
. Para más información, consulta Puntos de conexión de API de REST para ejecuciones de flujo de trabajo. -
Opcionalmente, revisa la implementación en GitHub. Para más información, consulta Revisar los despliegues.
Publicación de reglas de protección de implementación personalizadas en los datos GitHub Marketplace
Puedes publicar GitHub App en GitHub Marketplace para permitir a los desarrolladores detectar reglas de protección adecuadas e instalarlos en sus repositorios de GitHub. O bien, puedes examinar las reglas de protección de implementación personalizadas existentes para satisfacer tus necesidades. Para más información, consulta Acerca de Marketplace de GitHub para aplicaciones y Listar una app en GitHub Marketplace.