Skip to main content
Skip to content

Gobernanza de la ejecución de flujos de GitHub Actions trabajo

Controla quién puede activar los flujos de trabajo de GitHub Actions y qué eventos pueden permitir su ejecución en toda la empresa, la organización y el repositorio.

¿Quién puede utilizar esta característica?

Repository administrators, organization owners, and enterprise owners

All public repositories, and private repositories on GitHub Team or GitHub Enterprise.

Con las protecciones de ejecución de flujo de trabajo, puede definir una lista de permitidos que controla quién puede desencadenar GitHub Actions flujos de trabajo y qué eventos pueden ejecutarlos. Para obtener más información, consulte Información sobre las políticas de Actions.

Nota:

GitHub ha agregado una directiva predeterminada que bloqueará el pull_request_target evento en repositorios públicos. Esta directiva se aplicará el 2 de diciembre de 2026. Consulte Uso seguro de pull_request_target.

Preparación para agregar protecciones

Al igual que los conjuntos de reglas, las protecciones de ejecución de flujos de trabajo se superponen a otras protecciones del mismo repositorio, organización o empresa.

En lugar de crear una única directiva amplia por cuenta, recomendamos crear varias directivas claramente definidas y superponer capas de protección en los distintos niveles de la cuenta. Los propietarios de empresas pueden crear protecciones en el nivel empresarial para directivas amplias y no negociables. Los propietarios de la organización y los administradores de repositorio pueden añadir más restricciones.

Para cada directiva que defina, piense en:

  1. A qué organizaciones o repositorios se dirigirá su protección. Por ejemplo, código abierto repositorios pueden necesitar restricciones más estrictas sobre quién puede desencadenar flujos de trabajo. Puede seleccionar repositorios según factores como la visibilidad, el estado de implementación o una propiedad personalizada.

  2. Qué flujos de trabajo se protegerán. Por ejemplo, los flujos de trabajo que implementan código de producción pueden necesitar un determinado nivel de protección, pero es posible que las automatizaciones menos confidenciales no necesiten el mismo nivel de protección. Puede definir el ámbito de las directivas a rutas de flujo de trabajo específicas o a flujos de trabajo necesarios.

  3. Quién debe poder ejecutar estos flujos de trabajo en los repositorios de destino. Esto puede ser usuarios con un rol determinado, cuentas de bot seleccionadas o un equipo específico. Considere la posibilidad de agrupar estos usuarios en una organización o equipo empresarial para que puedan ponerse en contacto fácilmente y hacer referencia a ellos en varios conjuntos de reglas. Consulta Creación de un equipo de organización o Creación de equipos empresariales.

Creación de una directiva de ejecución de flujo de trabajo

Primero, crea una nueva política de Acciones para el nivel de cuenta en el que estés trabajando.

En un repositorio u organización:

  1. Haga clic en la pestaña Configuración.
  2. En la barra lateral izquierda, en Acciones, haga clic en Directivas.

En una empresa:

  1. Haga clic en la pestaña Directivas .
  2. En la barra lateral izquierda, haga clic en Acciones y, a continuación, en Directivas.

Sugerencia

Para administrar directivas mediante programación, consulte Puntos de conexión de la API REST para las políticas de Acciones de GitHub.

Configuración de la directiva

A continuación, cree una nueva directiva.

  1. Elija un nombre para la directiva.
  2. Elija un estado de cumplimiento. Si selecciona Evaluar (GitHub Enterprise Cloud solo), podrá supervisar cuándo los usuarios alcanzarían la restricción en la información de la directiva.
  3. Dirija sus flujos de trabajo, organizaciones o repositorios deseados.
  4. Configure las siguientes protecciones de ejecución de flujo de trabajo.

Restringir actores

De forma predeterminada, cada usuario con acceso de escritura a un repositorio puede desencadenar flujos de trabajo. Las reglas de actores permiten separar quién aporta código de quién ejecuta la integración continua, por lo que puede conceder acceso de escritura a un colaborador sin otorgarle permiso para ejecutar flujos de trabajo.

Solo los actores permitidos podrán ejecutar los flujos de trabajo especificados en el repositorio de destino. Si también restringe eventos, estos usuarios solo podrán desencadenar flujos de trabajo con los eventos permitidos. Los actores no permitidos no podrán ejecutar los flujos de trabajo especificados.

GitHub Las características están exentas de estas restricciones para los procesos integrados que se ejecutan en GitHub Actions. Sin embargo, si ha creado flujos de trabajo que debe ejecutar la identidad asociada a una GitHub característica, como dependabot[bot], esta identidad debe agregarse como actor permitido.

Restricción de eventos

Las reglas de eventos controlan qué eventos se permiten, como push, pull_request, pull_request_targety workflow_dispatch.

Requerir el archivo de bloqueo

La protección Require lockfile bloquea las ejecuciones de flujos de trabajo seleccionados que no están incluidos en el archivo de bloqueo del repositorio. De este modo, los flujos de trabajo objetivo ejecutan código examinado y predecible, en lugar de lo que señale una etiqueta o rama en tiempo de ejecución. Esta protección y los archivos de bloqueo en general solo cubren las acciones llamadas en el nivel de paso (jobs.<job_id>.steps[*].uses). No cubren flujos de trabajo reutilizables llamados a nivel de job (jobs.<job_id>.uses). Si un flujo de trabajo reutilizable llamado no se incorpora al archivo de bloqueo en su propio repositorio, esta protección bloquea la ejecución del flujo de trabajo de llamada. Consulte Archivos de bloqueo de dependencias del flujo de trabajo.

Genere y compruebe los archivos de bloqueo en los repositorios de destino antes de establecer esta protección en Activo. De lo contrario, bloquearás las ejecuciones de flujo de trabajo en repositorios que no están listos. Para obtener un despliegue por fases, consulte Exigir el uso de archivos de bloqueo para las dependencias de action.

Puede mantener habilitada la directiva independiente Requerir que las acciones se fijen a un SHA de confirmación completo al adoptar archivos de bloqueo. Un lockfile satisface el requisito de fijación de SHA para los flujos de trabajo que se incorporan a un lockfile.

Ambas directivas son comprobaciones independientes y una ejecución de flujo de trabajo debe pasar ambas cuando estén habilitadas:

  • Un flujo de trabajo que se encuentra en el lockfile pasa ambas políticas, sin necesidad de SHA en el archivo de flujo de trabajo.
  • Un flujo de trabajo que no está en el lockfile, con uses: referencias fijadas a un SHA completo del commit, cumple el requisito de fijación SHA, pero está bloqueado por Require lockfile.
  • Ambas directivas bloquean un flujo de trabajo que no está en el archivo de bloqueo y que hace referencia, mediante uses:, a una etiqueta o rama.

Evaluación de directivas

Puede consultar información sobre las directivas para ver las ejecuciones de flujos de trabajo que se han bloqueado (para las directivas activas) o que se habrían bloqueado (para las directivas "evaluate"). Esta es una buena manera de comprobar que las directivas funcionan según lo previsto y no causan fricción innecesaria.

Para ver los datos, haga clic en la página Información de directiva. Lo encontrará directamente debajo de la página de directivas de GitHub Actions en la barra lateral del repositorio, la organización o la empresa.