Skip to main content

Solución de problemas

Aprende cómo resolver los problemas más comunes que las personas pueden encontrar en la API de REST.

Si detecta elementos extraños en la API, a continuación se muestra una lista de posibles soluciones a algunos de estos problemas que podrías experimentar.

Error 400 de una versión de API no admitida

Debes usar el encabezado X-GitHub-Api-Version para especificar una versión de API. Por ejemplo:

curl --encabezado "X-GitHub-Api-Version:2022-11-28" https://api.github.com/zen

Si especificas una versión que no existe, recibirás un error 400.

Para obtener más información, vea «Versiones de API».

Error 404 para un repositorio existente

Habitualmente, enviamos un error 404 cuando el cliente no está correctamente autenticado. En estos caso, debería ver 403 Forbidden. Pero como no queremos proporcionar ningún tipo de información sobre los repositorios privados, en su lugar la API devuelve un error 404.

Para solucionarlo, asegúrese de que está autenticando correctamente, el token de acceso de OAuth tiene los ámbitos necesarios, las restricciones de aplicaciones de terceros no bloquean el acceso y que el token no haya expirado ni se haya revocado.

No se devolvieron todos los resultados

La mayoría de las llamadas API que acceden a una lista de recursos (por ejemplo, usuarios, incidencias, etc. ) admiten la paginación. Si realiza solicitudes y recibe un conjunto de resultados incompleto, es probable que solo esté viendo la primera página. Tendrá que solicitar las páginas restantes para obtener más resultados.

Es importante que no intente adivinar el formato de la URL de paginación. No todas las llamadas API usan la misma estructura. En su lugar, puedes extraer la información de paginación del encabezado de vínculo, que se devuelve en todas las solicitudes. Para más información sobre la paginación, consulta "Uso de la paginación en la API de REST".

Errores de autenticación básicos

Desde el 13 de noviembre de 2020, la autenticación con nombre de usuario y contraseña a la API de REST y a la API de Autorizaciones de OAuth se obsoletizaron y ya no funcionan.

Uso de username/password para la autenticación básica

Si usa username y password para las llamadas API, ya no podrán autenticarse. Por ejemplo:

curl -u YOUR-USERNAME:YOUR-PASSWORD https://api.github.com/user/repos

En su lugar, usapersonal access token o un token de acceso para GitHub App al probar los puntos de conexión o realizar el desarrollo local:

curl -H 'Authorization: Bearer YOUR-TOKEN' https://api.github.com/user/repos

Para obtener más información, vea «Administración de tokens de acceso personal» y «Acerca de la autenticación con una aplicación de GitHub».

En el caso de las OAuth app, debe usar el flujo de la aplicación web para generar un token de OAuth que se usará en el encabezado de la llamada API:

curl -H 'Authorization: Bearer YOUR-OAUTH-TOKEN' https://api.github.com/user/repos

Tiempos de espera

Si a GitHub Enterprise Cloud le toma más de 10 segundos procesar una solicitud de la API, GitHub Enterprise Cloud terminará la solicitud y recibirás una respuesta de tiempo de espera excedido.

Errores por permisos insuficientes

Si usa un GitHub App o fine-grained personal access token y recibe un error debido a que el token no tiene permisos suficientes, puede usar el encabezado X-Accepted-GitHub-Permissions para identificar los permisos necesarios para acceder al punto de conexión de la API de REST.

El valor del encabezado X-Accepted-GitHub-Permissions es una lista separada por comas de los permisos necesarios para usar el punto de conexión. En ocasiones, puede elegir entre varios conjuntos de permisos. En estos casos, varias listas separadas por comas se separarán mediante un punto y coma.

Por ejemplo:

  • X-Accepted-GitHub-Permissions: contents=read significa que GitHub App o fine-grained personal access token necesitan acceso de lectura al permiso de contenido.
  • X-Accepted-GitHub-Permissions: pull_requests=write,contents=read significa que sus GitHub App o fine-grained personal access token necesitan acceso de escritura a la solicitud de incororación de cambios y acceso de lectura al permiso de contenido.
  • X-Accepted-GitHub-Permissions: pull_requests=read,contents=read; issues=read,contents=read significa que sus GitHub App o fine-grained personal access token necesitan acceso de lectura a la solicitud de incorporación de cambios y acceso de lectura al permiso de contenido o acceso de lectura al permiso de incidencias y acceso de lectura al permiso de contenido.