Introducción
En este artículo se describe cómo empezar a trabajar rápidamente con la GitHub API REST mediante GitHub CLI, curlo JavaScript. Para ver una guía más detallada, consulta Introducción a la API REST.
Uso de GitHub CLI en la línea de comandos
GitHub CLI es la manera más fácil de usar la GitHub API REST desde la línea de comandos.
-
Instale GitHub CLI en macOS, Windows o Linux. Para obtener más información, consulte Instalación en el repositorio de GitHub CLI.
-
Para autenticarte en GitHub, ejecuta el siguiente comando desde el terminal.
gh auth login -
Selecciona dónde deseas autenticarte:
- Si accedes a GitHub en GitHub.com, selecciona GitHub.com.
- Si accedes a GitHub en un dominio diferente, selecciona Other y, a continuación, escribe tu nombre de host (por ejemplo:
octocorp.ghe.com).
-
Sigue el resto de las instrucciones que aparecen en pantalla.
GitHub CLI almacena automáticamente sus credenciales de Git automáticamente cuando elija HTTPS como su protocolo preferido para las operaciones de Git y responda “yes” cuando le pregunten si quiere autenticarse en Git con sus credenciales GitHub. Esto puede ser útil, ya que permite usar comandos Git como
git pushygit pullsin necesidad de configurar un administrador de credenciales independiente o usar SSH. -
Realice una solicitud utilizando el subcomando GitHub CLI
api, seguido de la ruta. Usa la marca--methodo-Xpara especificar el método. Para obtener más información, consulte la GitHub CLIapidocumentación.En este ejemplo se hace una solicitud al punto de conexión “Obtener Octocat”, que usa el método
GETy la ruta de acceso/octocat. Para obtener la documentación de referencia completa de este punto de conexión, consulta Puntos de conexión de la API de REST para metadatos.Shell gh api /octocat --method GET
gh api /octocat --method GET
Uso de GitHub CLI en GitHub Actions
También puede usar GitHub CLI en los GitHub Actions flujos de trabajo. Para más información, consulta Uso de GitHub CLI en flujos de trabajo.
Autenticación con token de acceso
En lugar de usar el comando gh auth login, pasa el token de acceso como una variable de entorno denominada GH_TOKEN.
GitHub recomienda que utilice el GITHUB_TOKEN integrado en lugar de crear un token. Si esto no es posible, almacena el token como secreto y reemplaza GITHUB_TOKEN en el ejemplo siguiente por el nombre del secreto. Para obtener más información sobre GITHUB_TOKEN, consulta Uso de GITHUB_TOKEN para la autenticación en flujos de trabajo. Para obtener más información sobre secretos, consulta Uso de secretos en Acciones de GitHub.
El siguiente flujo de trabajo de ejemplo usa el endpoint List repository issues y solicita una lista de incidencias en el octocat/Spoon-Knife repositorio.
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
Autenticación con GitHub App
Si se autentica con un GitHub App, puede crear un token de acceso de una instalación dentro de su flujo de trabajo:
-
Guarde el ID de cliente de GitHub App como variable de configuración. En el ejemplo siguiente, reemplaza
APP_CLIENT_IDpor el nombre de la variable de configuración. Puede encontrar el identificador de cliente en la página de configuración de la aplicación o a través de la API. Para más información, consulta Puntos de conexión de la API de REST para GitHub Apps. Para obtener más información sobre las variables de configuración, consulta Almacenamiento de información en variables. -
Generar una llave privada para tu app. Almacena el contenido del archivo resultante como un secreto. (Almacena todo el contenido del archivo, incluido el contenido de
-----BEGIN RSA PRIVATE KEY-----y-----END RSA PRIVATE KEY-----). En el siguiente ejemplo, reemplazaAPP_PRIVATE_KEYpor el nombre del secreto. Para más información, consulta Administración de claves privadas para aplicaciones de GitHub. Para obtener más información sobre secretos, consulta Uso de secretos en Acciones de GitHub. -
Agrega un paso para generar un token y use ese token en lugar de
GITHUB_TOKEN. Ten en cuenta que este token expirará después de 60 minutos. Por ejemplo:YAML on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: actions/create-github-app-token@v3 with: client-id: ${{ vars.APP_CLIENT_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} - name: Use API env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | gh api https://api.github.com/repos/octocat/Spoon-Knife/issueson: workflow_dispatch: jobs: