# Uso de GITHUB_TOKEN para la autenticación en flujos de trabajo

Aprende a usarGITHUB_TOKEN para la autenticación en nombre de GitHub Actions.

En este tutorial se explica cómo usar `GITHUB_TOKEN` para la autenticación en flujos de trabajo de GitHub Actions, incluidos ejemplos para pasar el token a acciones, realizar solicitudes de API y configurar permisos para la automatización segura.

Para obtener información de referencia, consulta [Sintaxis del flujo de trabajo para GitHub Actions](/es/actions/reference/workflow-syntax-for-github-actions#permissions).

## Uso de `GITHUB_TOKEN` en un flujo de trabajo

Puedes usar `GITHUB_TOKEN` mediante la sintaxis estándar para hacer referencia a secretos: `${{ secrets.GITHUB_TOKEN }}`. Los ejemplos de uso de `GITHUB_TOKEN` incluyen pasar el token como entrada a una acción, o bien utilizarlo para realizar una solicitud autenticada a la API de GitHub.

> \[!IMPORTANT]
> Una acción puede acceder a `GITHUB_TOKEN` mediante el contexto `github.token` incluso si el flujo de trabajo no pasa explícitamente `GITHUB_TOKEN` a la acción. Como procedimiento de seguridad correcto, siempre debe asegurarse de que las acciones solo tengan el acceso mínimo necesario para limitar los permisos que se conceden a `GITHUB_TOKEN`. Para más información, consulta [Sintaxis del flujo de trabajo para GitHub Actions](/es/actions/reference/workflow-syntax-for-github-actions#permissions).

### Ejemplo 1: Pasar `GITHUB_TOKEN` como entrada

En este flujo de trabajo de ejemplo se usa la [CLI de GitHub](/es/actions/using-workflows/using-github-cli-in-workflows), que necesita `GITHUB_TOKEN` como valor para el parámetro de entrada `GH_TOKEN`:

```yaml copy
name: Open new issue
on: workflow_dispatch

jobs:
  open-issue:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
    steps:
      - run: |
          gh issue --repo ${{ github.repository }} \
            create --title "Issue title" --body "Issue body"
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```

### Ejemplo 2: llamar a la API de REST

Puede usar `GITHUB_TOKEN` para realizar llamadas API autenticadas. Este flujo de trabajo de ejemplo crea una incidencia mediante la API REST del GitHub:

```yaml
name: Create issue on commit

on: [ push ]

jobs:
  create_issue:
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
      - name: Create issue using REST API
        run: |
          curl --request POST \
          --url https://api.github.com/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
```

## Modificación de los permisos para `GITHUB_TOKEN`

Usa la clave `permissions` del archivo de flujo de trabajo a fin de modificar los permisos para `GITHUB_TOKEN` en un flujo de trabajo completo o en trabajos individuales. Esto te permite configurar los permisos mínimos requeridos para un flujo de trabajo o job. Como práctica de seguridad recomendada, debe conceder el permiso de acceso menos necesario a `GITHUB_TOKEN`.

A fin de ver la lista de permisos disponibles para su uso y sus nombres con parámetros, consulta [Administración de tokens de acceso personal](/es/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#account-permissions).

En los dos ejemplos de flujo de trabajo mostrados antes en este artículo se muestra cómo se usa la clave `permissions` en el nivel de trabajo.

## Otorgar permisos adicionales

Si necesitas un token que requiera permisos que no estén disponibles en `GITHUB_TOKEN`, crea una instancia de GitHub App y genera un token de acceso de instalación dentro del flujo de trabajo. Para más información, consulta [Realización de solicitudes de API autenticadas con una aplicación de GitHub en un flujo de trabajo de GitHub Actions](/es/apps/creating-github-apps/guides/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow). Como alternativa, puedes crear un personal access token, almacenarlo como secreto en el repositorio y usar el token en el flujo de trabajo con la sintaxis `${{ secrets.SECRET_NAME }}`. Para más información, consulta [Administración de tokens de acceso personal](/es/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) y [Uso de secretos en Acciones de GitHub](/es/actions/security-guides/using-secrets-in-github-actions).

## Pasos siguientes

* [GITHUB\_TOKEN](/es/actions/concepts/security/github_token)
* [Sintaxis del flujo de trabajo para GitHub Actions](/es/actions/reference/workflow-syntax-for-github-actions#permissions)