Usando la API de GitHub a través de Octokit.js y mirando los documentos de getContextForUser ( https://docs.github.com/en/rest/users/users#get-contextual-information-for-a-user ), menciona que al especificar el subject_type , también debe especificar el subject_id . Para subject_id , indica: "Utiliza el ID para el subject_type que especificó".
No tengo idea de dónde obtienes el subject_id relevante para el subject_type . He buscado alto y bajo pero sin éxito. ¿Alguien sabe dónde se puede encontrar un mapa que muestre la ID de un subject_type ?
El subject_id es el ID de lo que desea obtener información. Por ejemplo, si desea tener información sobre un repositorio (en este caso, el tipo de tema), debe pasar la ID del repositorio sobre el que desea obtener información.
En mi opinión, es un poco confuso que los documentos de la API digan que debe ser una cadena, mientras que normalmente es una identificación numérica.
Echemos un vistazo a un ejemplo: digamos que queremos saber cuál es la hovercard de Torvald en el repositorio torvalds/linux . Primero, necesitamos obtener la ID del repositorio:
> curl https://api.github.com/repos/torvalds/linux { "id": 2325298, # ... Con este ID, podemos consultar el repository de tipo de asunto:
> curl "https://api.github.com/users/torvalds/hovercard?subject_type=repository&subject_id=2325298" { "contexts": [ { "message": "Owns this repository", "octicon": "repo" }, { "message": "Committed to this repository in the past day", "octicon": "git-commit" } ] }Del mismo modo, puede obtener el ID de la solicitud de extracción.
Sin embargo, debe tener cuidado con la ID que está utilizando: si bien las solicitudes de extracción dentro de un repositorio se identifican con un número típicamente pequeño (el que ve en la URL), la API en cuestión no tiene contexto del repositorio, por lo que debe necesita pasar la identificación global.
> curl "https://api.github.com/repos/torvalds/linux/pulls/486" { "url": "https://api.github.com/repos/torvalds/linux/pulls/486", "id": 150630598, # ... Y luego use el tipo de asunto pull_request para obtener el rol de Linus en él:
curl "https://api.github.com/users/torvalds/hovercard?subject_type=pull_request&subject_id=150630598" { "contexts": [ { "message": "Owns this repository", "octicon": "repo" }, { "message": "Committed to this repository in the past day", "octicon": "git-commit" } ] }Tenga en cuenta que el punto final para obtener información contextual requiere autenticación, por lo que deberá agregar un encabezado a las muestras de curl.
Si experimenta con frecuencia con la API de GitHub, le recomiendo que instale la CLI de GitHub , ya que le permite ejecutar consultas autenticadas de la siguiente manera:
> gh api /repos/torvals/linux