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

Aprenda a usar GITHUB_TOKEN para autenticarse en nombre de GitHub Actions.

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

Para obtener información de referencia, consulta [Sintaxis del flujo de trabajo para Acciones de GitHub](/es/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#permissions).

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

Puede usar `GITHUB_TOKEN` mediante la sintaxis estándar para hacer referencia a secretos:`${{ secrets.GITHUB_TOKEN }}` . Algunos ejemplos de uso del `GITHUB_TOKEN` incluyen pasar el token como entrada a una acción o usarlo 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 Acciones de GitHub](/es/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#permissions).

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

En este flujo de trabajo de ejemplo se usa la [CLI de GitHub](/es/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-github-cli), 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. En este flujo de trabajo de ejemplo se crea un problema mediante la GitHub API REST:

```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 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
```

## 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/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#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 necesita un token que requiera permisos que no estén disponibles en `GITHUB_TOKEN`, cree GitHub App y genere 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 Acciones de GitHub](/es/enterprise-server@3.22/apps/creating-github-apps/authenticating-with-a-github-app/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow). Como alternativa, puede crear un personal access token, almacenarlo como un secreto en el repositorio y usar el token en el flujo de trabajo con la `${{ secrets.SECRET_NAME }}` sintaxis . Para más información, consulta [Administración de tokens de acceso personal](/es/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) y [Uso de secretos en Acciones de GitHub](/es/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets).

## Pasos siguientes

* [GITHUB\_TOKEN](/es/enterprise-server@3.22/actions/concepts/security/github_token)
* [Sintaxis del flujo de trabajo para Acciones de GitHub](/es/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#permissions)