Получение subject_id для пользовательского API GitHub subject_type

Используя 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?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

О, гениально! Спасибо, @retab. Я собираюсь попробовать.

schalkneethling 09.05.2022 11:35

Отлично, @schalkneethling. Не могли бы вы принять это как ответ, если он работает?

rethab 09.05.2022 12:13

Другие вопросы по теме