Skip to main content

Esta versión de GitHub Enterprise Server se discontinuará el 2024-03-07. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Realización de solicitudes de API autenticadas con una aplicación de GitHub en un flujo de trabajo de Acciones de GitHub

Puedes utilizar un token de acceso de instalación desde GitHub App para realizar solicitudes de API autenticadas en un flujo de trabajo de GitHub Actions. También puedes pasar el token a una acción personalizada para habilitar la acción para realizar solicitudes de API autenticadas.

Acerca de la autenticación de GitHub Actions

Si necesitas realizar solicitudes de API autenticadas en un flujo de trabajo de GitHub Actions o necesitas ejecutar una acción personalizada que requiera un token, debes usar el GITHUB_TOKEN integrado si es posible. Sin embargo, GITHUB_TOKEN solo puedes acceder a los recursos dentro del repositorio del flujo de trabajo. Si necesitas acceder a recursos adicionales, como recursos de una organización o en otro repositorio, puedes usar GitHub App. Para más información sobre por qué podrías usar GitHub App sobre personal access token, consulta "Acerca de la creación de GitHub Apps".

Autenticación con una GitHub App

Para usar una instancia de GitHub App para realizar solicitudes de API autenticadas, debes registrar una instancia de GitHub App, almacenar las credenciales de la aplicación e instalar la aplicación. Una vez hecho esto, puedes usar la aplicación para crear un token de acceso de instalación, que se puede usar para realizar solicitudes de API autenticadas en un flujo de trabajo de GitHub Actions. También puedes pasar el token de acceso de instalación a una acción personalizada que requiera un token.

  1. Registra una instancia de GitHub App. Proporciona al registro de tu instancia de GitHub App los permisos necesarios para acceder a los recursos deseados. Para obtener más información, vea «Registro de una instancia de GitHub App» y «Elección de permisos para una aplicación de GitHub».

  2. Almacene el identificador de la aplicación de GitHub App como una variable de configuración de GitHub Actions. Puedes encontrar el id. de la aplicación en la página de configuración de la aplicación. El id. de la aplicación es diferente del id. de cliente. Para más información sobre cómo desplazarte a la página de configuración en tu GitHub App, consulta "Modificación del registro de una instancia de GitHub App". Para obtener más información sobre el almacenamiento de variables de configuración, consulte "variables".

  3. Generar una llave privada para tu app. Almacena el contenido del archivo resultante como un secreto. (Almacena todo el contenido del archivo, incluidos -----BEGIN RSA PRIVATE KEY----- y -----END RSA PRIVATE KEY-----). Para más información, consulta "Administración de claves privadas para aplicaciones de GitHub". Para obtener más información sobre cómo almacenar secretos, consulta "Uso de secretos en Acciones de GitHub".

  4. Instala la GitHub App en la cuenta de usuario u organización y concédele acceso a todos los repositorios a los que desees que acceda el flujo de trabajo. Para obtener más información, vea «Instalación de tu propia instancia de GitHub App».

  5. En el flujo de trabajo de GitHub Actions, crea un token de acceso de instalación que podrás utilizar para realizar solicitudes a la API.

    Para ello, puede usar una acción creada previamente como se muestra en el ejemplo siguiente. Si prefieres no usar una acción de terceros, puedes bifurcar y modificar la acción tibdex/github-app-token, o puedes escribir un script para que el flujo de trabajo cree manualmente un token de instalación. Para más información, consulte "Autenticación como una instalación de una aplicación de GitHub."

    En el siguiente flujo de trabajo de ejemplo se usa la acción tibdex/github-app-token para generar un token de acceso de instalación. A continuación, el flujo de trabajo usa el token para realizar una solicitud de API a través de la GitHub CLI.

    En el flujo de trabajo siguiente, reemplace APP_ID por el nombre de la variable de configuración donde se almacenó el identificador de aplicación. Reemplaza APP_PRIVATE_KEY por el nombre del secreto que contiene la clave privada de la aplicación.

YAML

# Este flujo de trabajo usa acciones que no GitHub no certifica.
# Estas las proporcionan entidades terceras y las gobiernan
# condiciones de servicio, políticas de privacidad y documentación de soporte
# en línea.

# GitHub recomienda anclar acciones a un SHA de confirmación.
# Para obtener una versión más reciente, debes actualizar el SHA.
# También puedes hacer referencia a una etiqueta o rama, pero la acción puede cambiar sin ninguna advertencia.

on:
  workflow_dispatch:
jobs:
  demo_app_authentication:
    runs-on: ubuntu-latest
    steps:
      - name: Generate a token
        id: generate-token
        uses: tibdex/github-app-token@32691ba7c9e7063bd457bd8f2a5703138591fa58 # v1.9.0
        with:
          app_id: ${{ vars.APP_ID }}
          private_key: ${{ secrets.APP_PRIVATE_KEY }}

      - name: Use the token
        env:
          GH_TOKEN: ${{ steps.generate-token.outputs.token }}
        run: |
          gh api octocat