Skip to main content
Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Asignar permisos a los jobs

Modificar los permisos predeterminados que se otorgan a GITHUB_TOKEN.

Nota: Los ejecutores hospedados en GitHub no son compatibles con GitHub Enterprise Server actualmente. Puedes encontrar más información sobre el soporte que se tiene planeado en el futuro en el Itinerario público de GitHub.

Resumen

Puedes utilizar permissions para modificar los permisos predeterminados que se le otorgan al GITHUB_TOKEN, agregando o eliminando el acceso conforme se requiera para que solo permitas el acceso mínimo requerido. Para obtener más información, consulta la sección "Autenticación en un flujo de trabajo".

Puedes utilizar los permissions ya sea como una clave de nivel superior, para aplicar todos los jobs en el flujo de trabajo, o dentro de jobs específicos. Cuando agregas la clave permissions dentro de un job específico, todas las acciones y comandos de ejecución dentro de este que utilicen el GITHUB_TOKEN obtendrán los derechos de acceso que especificas. Para obtener más información, consulta los jobs<job_id>permissions.

Los alcances y valores de acceso disponibles:

permissions:
  actions: read|write|none
  checks: read|write|none
  contents: read|write|none
  deployments: read|write|none
  issues: read|write|none
  discussions: read|write|none
  packages: read|write|none
  pages: read|write|none
  pull-requests: read|write|none
  repository-projects: read|write|none
  security-events: read|write|none
  statuses: read|write|none

Si especificas el acceso para cualquiera de estos alcances, todos aquellos que no se especifiquen se configuran como none.

Puedes utilizar la siguiente sintaxis para definir el acceso de lectura o escritura para todos los alcances disponibles:

permissions: read-all|write-all

Puedes utilizar la siguiente sintaxis para inhabilitar los permisos para todos los alcances disponibles:

permissions: {}

Puedes utilizar la clave permissions para agregar y eliminar los permisos de lectura para los repositorios bifurcados pero, habitualmente, no puedes otorgar acceso de escritura. La excepción a este comportamiento es donde un usuario administrador seleccionó la opción de Enviar tokens a los flujos de trabajo desde las solicitudes de cambios en la configuración de GitHub Actions. Para obtener más información, consulta la sección "Administrar la configuración de GitHub Actions en un repositorio".

Ejemplo: Asignar permisos a un GITHUB_TOKEN

Este ejemplo muestra los permisos que se están configurando para el GITHUB_TOKEN que aplicará a todos los jobs en el flujo de trabajo. Se otorga acceso de lectura a todos los permisos.

name: "My workflow"

on: [ push ]

permissions: read-all

jobs:
  ...

Asignar los permisos para un job específico

Para un job específico, puedes utilizar jobs.<job_id>.permissions para modificar los permisos predeterminados que se le otorgan al GITHUB_TOKEN, agregando o eliminando el acceso conforme se requiera para que solo permitas el acceso mínimo requerido. Para obtener más información, consulta la sección "Autenticación en un flujo de trabajo".

Si especificas el permiso dentro de una definición de job, puedes configurar un conjunto diferente de permisos para el GITHUB_TOKEN de cada job, en caso de que se requiera. Como alternativa, puedes especificar los permisos para todos los jobs en el flujo de trabajo. Para obtener más información sobre los permisos que se definen a nivel del flujo de trabajo, consulta los permissions.

Los alcances y valores de acceso disponibles:

permissions:
  actions: read|write|none
  checks: read|write|none
  contents: read|write|none
  deployments: read|write|none
  issues: read|write|none
  discussions: read|write|none
  packages: read|write|none
  pages: read|write|none
  pull-requests: read|write|none
  repository-projects: read|write|none
  security-events: read|write|none
  statuses: read|write|none

Si especificas el acceso para cualquiera de estos alcances, todos aquellos que no se especifiquen se configuran como none.

Puedes utilizar la siguiente sintaxis para definir el acceso de lectura o escritura para todos los alcances disponibles:

permissions: read-all|write-all

Puedes utilizar la siguiente sintaxis para inhabilitar los permisos para todos los alcances disponibles:

permissions: {}

Puedes utilizar la clave permissions para agregar y eliminar los permisos de lectura para los repositorios bifurcados pero, habitualmente, no puedes otorgar acceso de escritura. La excepción a este comportamiento es donde un usuario administrador seleccionó la opción de Enviar tokens a los flujos de trabajo desde las solicitudes de cambios en la configuración de GitHub Actions. Para obtener más información, consulta la sección "Administrar la configuración de GitHub Actions en un repositorio".

Ejemplo: Configurar los permisos para un job específico

Este ejemplo muestra los permisos que se están configurando para el GITHUB_TOKEN, los cuales solo aplicarán al job que se llama stale. Se otorga permiso de escritura a los alcances issues y pull-requests. El resto de los alcances no tendrán acceso.

jobs:
  stale:
    runs-on: ubuntu-latest

    permissions:
      issues: write
      pull-requests: write

    steps:
      - uses: actions/stale@v5