Autenticación automática de token

GitHub proporciona un token que puedes usar para autenticar en nombre de GitHub Actions.

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.

Acerca del secreto del GITHUB_TOKEN

Al inicio de cada ejecución de flujo de trabajo, GitHub crea automáticamente un secreto único de GITHUB_TOKEN para utilizar en tu flujo de trabajo. Puedes usar el GITHUB_TOKEN para autenticarte en una ejecución de flujo de trabajo.

Cuando habilitas GitHub Actions, GitHub instala una GitHub App en tu repositorio. El secreto del GITHUB_TOKEN es un token de acceso de instalación de GitHub App. Puedes usar el token de acceso de instalación para autenticarte en nombre de la GitHub App instalado en tu repositorio. Los permisos del token están limitados al repositorio que contiene tu flujo de trabajo. Para obtener más información, consulta "Permisos para el GITHUB_TOKEN."

Antes de que comience cada job, GitHub extrae un token de acceso de instalación para éste. El token expira cuando el trabajo termina.

El token también está disponible en el contexto github.token. Para obtener más información, consulta "Contextos".

Usar el GITHUB_TOKEN en un flujo de trabajo

Puedes utilizar el GITHUB_TOKEN si utilizas la sintaxis estándar para referenciar secretos: ${{ secrets.GITHUB_TOKEN }}. Los ejemplos de uso del GITHUB_TOKEN incluyen pasar el token como entrada a una acción o utilizarlo para hacer una solicitud autenticada a la API de GitHub.

Cuando utilizas el GITHUB_TOKEN del repositorio para realizar tareas por parte de la app de GitHub Actions, los eventos que GITHUB_TOKEN desencadena no crearán una ejecución de flujo de trabajo. Esto impide que crees ejecuciones de flujo de trabajo recursivas por accidente. Por ejemplo, si un flujo de trabajo sube código utilizando el GITHUB_TOKEN del repositorio, no se ejecutará un nuevo flujo de trabajo aún si el repositorio contiene alguno configurado para ejecutarse cuando ocurran eventos de subida de información.

Ejemplo 1: pasar el GITHUB_TOKEN como entrada

Este flujo de trabajo de ejemplo usa la acción de etiquetadora, que necesita el GITHUB_TOKEN como el valor para el parámetro de entrada repo-token:

name: Pull request labeler

on: [ pull_request_target ]

jobs:
  triage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/labeler@v2
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}

Ejemplo 2: llamar a la API de REST

Puedes usar el GITHUB_TOKEN para realizar llamadas API autenticadas. Este flujo de trabajo de ejemplo crea una propuesta mediante la API REST del GitHub:

name: Create issue on commit

on: [ push ]

jobs:
  create_commit:
    runs-on: ubuntu-latest 
    steps:
      - name: Create issue using REST API
        run: |
          curl --request POST \
          --url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \
          --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
          --header 'content-type: application/json' \
          --data '{
            "title": "Automated issue for commit: ${{ github.sha }}",
            "body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n The commit hash was: _${{ github.sha }}_."
            }' \
          --fail

Permisos para el GITHUB_TOKEN

Para obtener mpas información sobre las terminales de la API a los que pueden acceder las GitHub Apps con cada permiso, consulta la sección " Permisos de las GitHub App".

ÁmbitoTipo de accesoAcceso por repositorios bifurcados
accioneslectura/escrituralectura
verificacioneslectura/escrituralectura
contenidoslectura/escrituralectura
implementacioneslectura/escrituralectura
propuestaslectura/escrituralectura
metadatoslecturalectura
paqueteslectura/escrituralectura
solicitudes de extracciónlectura/escrituralectura
proyectos de repositoriolectura/escrituralectura
estadoslectura/escrituralectura

Si necesitas un token que requiere permisos que no están disponibles en el GITHUB_TOKEN, puedes crear un token de acceso personal y establecerlo como un secreto en tu repositorio:

  1. Usa o crea un token con los permisos adecuados para ese repositorio. Para obtener más información, consulta la sección "Crear un token de acceso personal".
  2. Añade el token como un secreto en el repositorio de tu flujo de trabajo y haz referencia a él mediante la sintaxis ${{ secrets.SECRET_NAME }}. Para obtener más información, consulta "Crear y usar secretos cifrados."

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.