Este artículo describe cómo iniciar rápidamente con la API de REST de GitHub utilizando el CLI de GitHub, JavaScript o cURL. Para obtener una guía más detallada, consulta la sección "Iniciar con la API de REST".
Iniciar utilizando el CLI de GitHub
Utilizar el CLI de GitHub en la línea de comando
El CLI de GitHub es la forma más fácil de utilizar la API de REST de GitHub desde la línea de comandos.
-
Instala el CLI de GitHub si aún no lo has hecho. Para obtener las instrucciones de instalación, consulta el repositorio del CLI de GitHub.
-
Utiliza el subcomando
auth loginpara autenticarte en el CLI de GitHub. Para obtener más información, consulta la documentación deauth logindel CLI de GitHub.gh auth login -
Utiliza el subcomando
apipara hacer tu solicitud de la API. Para obtener más información, consulta la documentación deapidel CLI de GitHub.gh api repos/octocat/Spoon-Knife/issues
Utilizar el CLI de GitHub en GitHub Actions
También puedes utilizar el CLI de GitHub en tus flujos de trabajo de GitHub Actions. Para obtener más información, consulta la sección "Utilizar el CLI de GitHub en los flujos de trabajo".
En vez de utilizar el comando gh auth login, pasa un token de acceso como una variable de ambiente llamada GH_TOKEN. GitHub recomienda que utilices el GITHUB_TOKEN integrado en vez de crear un token. Si esto es imposible, almacena tu token como un secreto y reemplaza a GITHUB_TOKEN por el nombre de tu secreto en el siguiente ejemplo. Para obtener más información sobre el GITHUB_TOKEN, consulta ""Automatic token authentication". Para obtener más información sobre los secretos, consulta la sección "Secretos cifrados".
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api repos/octocat/Spoon-Knife/issues
Si te estás autenticando con una GitHub App, puedes crear un token de acceso a la instalación dentro de tu flujo de trabajo:
- Almacena la ID de tu GitHub App como un secreto. En el siguiente ejemplo, reemplaza
APP_IDcon el nombre del secreto. Puedes encontrar tu ID de app en la página de ajustes de tu app o mediante la API de la misma. Para obtener más información, consulta la sección "Apps". Para obtener más información sobre los secretos, consulta la sección "Secretos cifrados". - Generar una llave privada para tu app. Almacena el contenido del archivo resultante como un secreto. (Almacena todo el contenido del archivo, incluyendo
-----BEGIN RSA PRIVATE KEY-----y-----END RSA PRIVATE KEY-----.) En el siguiente ejemplo, reemplaza aAPP_PEMcon el nombre del secreto. Para obtener más información, consulta la sección "Autenticarse con GitHub Apps". - Agrega un paso para generar un token y utilizarlo en vez de
GITHUB_TOKEN. Nota que este token expirará después de 60 minutos. Por ejemplo:
# This workflow uses actions that are not certified by GitHub.
# Estas las proporcionan entidades terceras y las gobiernan
# condiciones de servicio, políticas de privacidad y documentación de soporte
# documentación.
on:
workflow_dispatch:
jobs:
track_pr:
runs-on: ubuntu-latest
steps:
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@36464acb844fc53b9b8b2401da68844f6b05ebb0
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PEM }}
- name: Use API
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
run: |
gh api repos/octocat/Spoon-Knife/issues
Comenzar a utilizar JavaScript
Puedes utilizar Octokit.js para interactuar con la API de REST de GitHub en tus scripts de JavaScript. Para obtener más información, consulta el README de Octokit.js.
Utilizar Octokit.js
-
Crear un token de acceso. Por ejemplo, crea un token de acceso personal (PAT) o un token de acceso de usuario a servidor de GitHub App. For more information, see "Creating a personal access token" or "Identifying and authorizing users for GitHub Apps."
Advertencia: Trata a tu token de acceso como si fuera una contraseña.
Para mantener seguro a tu token, puedes almacenarlo como un secreto y ejecutar tu script mediante GitHub Actions. For more information, see the "Using Octokit.js in GitHub Actions" section.
You can also store your token as a Codespaces secret and run your script in Codespaces. Para obtener más información, consulta la sección "Administrar los secretos cifrados para tus codespaces".
Si estas opciones no son posibles, considera utilizar otro servicio tal como el 1Password CLI para almacenar tu token de forma segura.
-
Install
octokit. For example,npm install octokit. For other ways to install or loadoctokit, see the Octokit.js README. -
Import
octokitin your script. For example,import { Octokit } from "octokit";. For other ways to importoctokit, see the Octokit.js README. -
Create an instance of
Octokitwith your token. ReplaceYOUR-TOKENwith your token.const octokit = new Octokit({ auth: 'YOUR-TOKEN' }); -
Use
octokit.requestto execute your request. Send the HTTP method and path as the first argument. Specify any path, query, and body parameters in an object as the second argument. For example, in the following request the HTTP method isGET, the path is/repos/{owner}/{repo}/issues, and the parameters areowner: "octocat"andrepo: "Spoon-Knife".await octokit.request("GET /repos/{owner}/{repo}/issues", { owner: "octocat", repo: "Spoon-Knife", });
Using Octokit.js in GitHub Actions
You can also execute your JavaScript scripts in your GitHub Actions workflows. Para obtener más información, consultala sección "Sintaxis de flujo de trabajo para GitHub Actions".
GitHub recomienda que utilices el GITHUB_TOKEN integrado en vez de crear un token. Si esto es imposible, almacena tu token como un secreto y reemplaza a GITHUB_TOKEN por el nombre de tu secreto en el siguiente ejemplo. Para obtener más información sobre el GITHUB_TOKEN, consulta ""Automatic token authentication". Para obtener más información sobre los secretos, consulta la sección "Secretos cifrados".
El siguiente flujo de trabajo de ejemplo:
- Verifica el contenido del repositorio
- Configura a Node.js
- Instala
octokit - Almacena el valor de
GITHUB_TOKENcomo una variable de ambiente llamadaTOKENy ejecuta.github/actions-scripts/use-the-api.mjs, que puede acceder a esa variable de ambiente comoprocess.env.TOKEN
Flujo de trabajo de ejemplo:
on:
workflow_dispatch:
jobs:
use_api_via_script:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- name: Check out repo content
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: '16.15.0'
cache: npm
- name: Install dependencies
run: npm install octokit
- name: Run script
run: |
node .github/actions-scripts/use-the-api.mjs
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
Script de JavaScript de ejemplo con la ruta de archivo .github/actions-scripts/use-the-api.mjs:
import { Octokit } from "octokit"
const octokit = new Octokit({
auth: process.env.TOKEN
});
try {
const result = await octokit.request("GET /repos/{owner}/{repo}/issues", {
owner: "octocat",
repo: "Spoon-Knife",
});
const titleAndAuthor = result.data.map(issue => {title: issue.title, authorID: issue.user.id})
console.log(titleAndAuthor)
} catch (error) {
console.log(`Error! Status: ${error.status}. Message: ${error.response.data.message}`)
}
Si te estás autenticando con una GitHub App, puedes crear un token de acceso a la instalación dentro de tu flujo de trabajo:
- Almacena la ID de tu GitHub App como un secreto. En el siguiente ejemplo, reemplaza
APP_IDcon el nombre del secreto. Puedes encontrar tu ID de app en la página de ajustes de tu app o mediante la API de la misma. Para obtener más información, consulta la sección "Apps". Para obtener más información sobre los secretos, consulta la sección "Secretos cifrados". - Generar una llave privada para tu app. Almacena el contenido del archivo resultante como un secreto. (Almacena todo el contenido del archivo, incluyendo
-----BEGIN RSA PRIVATE KEY-----y-----END RSA PRIVATE KEY-----.) En el siguiente ejemplo, reemplaza aAPP_PEMcon el nombre del secreto. Para obtener más información, consulta la sección "Autenticarse con GitHub Apps". - Agrega un paso para generar un token y utilizarlo en vez de
GITHUB_TOKEN. Nota que este token expirará después de 60 minutos. Por ejemplo:
# This workflow uses actions that are not certified by GitHub.
# Estas las proporcionan entidades terceras y las gobiernan
# condiciones de servicio, políticas de privacidad y documentación de soporte
# documentación.
on:
workflow_dispatch:
jobs:
use_api_via_script:
runs-on: ubuntu-latest
steps:
- name: Check out repo content
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: '16.15.0'
cache: npm
- name: Install dependencies
run: npm install octokit
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@36464acb844fc53b9b8b2401da68844f6b05ebb0
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PEM }}
- name: Run script
run: |
node .github/actions-scripts/use-the-api.mjs
env:
TOKEN: ${{ steps.generate_token.outputs.token }}
Getting started using cURL
Using cURL in the command line
Note: If you want to make API requests from the command line, GitHub recommends that you use CLI de GitHub, which simplifies authentication and requests. For more information about getting started with the REST API using CLI de GitHub, see the CLI de GitHub version of this article.
-
Install cURL if cURL isn't already installed on your machine. To check if cURL is installed, execute
curl --versionin the command line. If the output is information about the cURL version, cURL is installed. If you get a message similar tocommand not found: curl, you need to download and install cURL. Para obtener más información, consulta la página de descarga del proyecto cURL. -
Crear un token de acceso. Por ejemplo, crea un token de acceso personal (PAT) o un token de acceso de usuario a servidor de GitHub App. For more information, see "Creating a personal access token" or "Identifying and authorizing users for GitHub Apps."
Advertencia: Trata a tu token de acceso como si fuera una contraseña.
To keep your token secure, you can store your token as a Codespaces secret and use the command line through Codespaces. Para obtener más información, consulta la sección "Administrar los secretos cifrados para tus codespaces".
You can also use CLI de GitHub instead of cURL. El CLI de GitHub se encargará de la autenticación por ti. Para obtener más información, consulta la versión del CLI de GitHub de esta página.
Si estas opciones no son posibles, considera utilizar otro servicio tal como el 1Password CLI para almacenar tu token de forma segura.
-
Use the
cURLcommand to make your request. Pass your token in anAuthorizationheader. ReplaceYOUR-TOKENwith your token.curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github.v3+json" \ --header "Authorization: Bearer YOUR-TOKEN"Nota: In most cases, you can use
Authorization: BearerorAuthorization: tokento pass a token. However, if you are passing a JSON web token (JWT), you must useAuthorization: Bearer.
Using cURL in GitHub Actions
You can also use cURL in your GitHub Actions workflows.
GitHub recomienda que utilices el GITHUB_TOKEN integrado en vez de crear un token. Si esto es imposible, almacena tu token como un secreto y reemplaza a GITHUB_TOKEN por el nombre de tu secreto en el siguiente ejemplo. Para obtener más información sobre el GITHUB_TOKEN, consulta ""Automatic token authentication". Para obtener más información sobre los secretos, consulta la sección "Secretos cifrados".
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl --request GET \
--url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
--header "Accept: application/vnd.github.v3+json" \
--header "Authorization: Bearer $GH_TOKEN"
Si te estás autenticando con una GitHub App, puedes crear un token de acceso a la instalación dentro de tu flujo de trabajo:
- Almacena la ID de tu GitHub App como un secreto. En el siguiente ejemplo, reemplaza
APP_IDcon el nombre del secreto. Puedes encontrar tu ID de app en la página de ajustes de tu app o mediante la API de la misma. Para obtener más información, consulta la sección "Apps". Para obtener más información sobre los secretos, consulta la sección "Secretos cifrados". - Generar una llave privada para tu app. Almacena el contenido del archivo resultante como un secreto. (Almacena todo el contenido del archivo, incluyendo
-----BEGIN RSA PRIVATE KEY-----y-----END RSA PRIVATE KEY-----.) En el siguiente ejemplo, reemplaza aAPP_PEMcon el nombre del secreto. Para obtener más información, consulta la sección "Autenticarse con GitHub Apps". - Agrega un paso para generar un token y utilizarlo en vez de
GITHUB_TOKEN. Nota que este token expirará después de 60 minutos. Por ejemplo:
# This workflow uses actions that are not certified by GitHub.
# Estas las proporcionan entidades terceras y las gobiernan
# condiciones de servicio, políticas de privacidad y documentación de soporte
# documentación.
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
steps:
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@36464acb844fc53b9b8b2401da68844f6b05ebb0
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PEM }}
- name: Use API
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
run: |
curl --request GET \
--url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
--header "Accept: application/vnd.github.v3+json" \
--header "Authorization: Bearer $GH_TOKEN"
Pasos siguientes
Para obtener una guía más detallada, consulta la sección "Iniciar con la API de REST".