Используя GitHub API через Octokit.js и просматривая документы для getContextForUser (https://docs.github.com/en/rest/users/users#get-contextual-information-for-a-user), он упоминает, что при указании subject_type вам также необходимо указать subject_id. Для subject_id указано: «Использует идентификатор для указанного вами subject_type».
Я понятия не имею, где вы берете соответствующие subject_id для subject_type. Я искал вверх и вниз, но безуспешно. Кто-нибудь знает, где можно найти карту с идентификатором subject_type?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


subject_id — это идентификатор объекта, о котором вы хотите получить информацию. Например, если вы хотите получить информацию о репозитории (в данном случае о типе субъекта), вам нужно будет передать идентификатор репозитория, о котором вы хотите получить информацию.
На мой взгляд, немного сбивает с толку то, что в документах API говорится, что это должна быть строка, тогда как обычно это числовой идентификатор.
Давайте рассмотрим пример: скажем, мы хотим знать, что такое ховеркарта Торвальда в хранилище torvalds/linux. Во-первых, нам нужно получить идентификатор репозитория:
> curl https://api.github.com/repos/torvalds/linux
{
"id": 2325298,
# ...
С помощью этого идентификатора мы можем запросить тип субъекта repository:
> 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"
}
]
}
Точно так же вы можете получить идентификатор запроса на включение.
Вы должны быть осторожны с тем, какой идентификатор вы используете: хотя запрос на включение в репозиторий обычно идентифицируется небольшим числом (тот, который вы видите в URL-адресе), рассматриваемый API не имеет контекста репозитория, поэтому вы необходимо передать глобальный идентификатор.
> curl "https://api.github.com/repos/torvalds/linux/pulls/486"
{
"url": "https://api.github.com/repos/torvalds/linux/pulls/486",
"id": 150630598,
# ...
А затем используйте тип темы pull_request, чтобы получить роль Линуса в нем:
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"
}
]
}
Обратите внимание, что конечная точка для извлечения контекстной информации требует аутентификации, поэтому вам придется добавить заголовок в образцы curl.
Если вы часто экспериментируете с GitHub API, я рекомендую установить Интерфейс командной строки GitHub, потому что он позволяет вам выполнять аутентифицированные запросы следующим образом:
> gh api /repos/torvals/linux
Отлично, @schalkneethling. Не могли бы вы принять это как ответ, если он работает?
О, гениально! Спасибо, @retab. Я собираюсь попробовать.