Почему поиск по API GitHub не находит все репозитории - PullRequest
2 голосов
/ 11 апреля 2019

Почему github API не показывает мне список всех репозиториев?

Пример:

https://github.com/github

https://api.github.com/search/repositories?q=user:github+sort:updated

Используя первую ссылку, мы видим 296 хранилищ, используя второе, которое я получаю "total_count ": 173. Как я могу искать во всех 296 репозиториях, используя github API?

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Я считаю, что API скрывает архивированные репозитории от результатов. +archived:true это должно показать вам еще 42 или около того. Но это не добавляет до 296, поэтому я использую пользовательский API (https://api.github.com/users/github/repos) вместо этого, который может возвращать более одного типа хранилища за раз.

Кажется, есть некоторая зависимость от search API, который скрывает некоторые репозитории, которые не документированы.

https://api.github.com/users/github/repos?type=all&per_page=100 ==> 100 https://api.github.com/users/github/repos?type=all&per_page=100&page=2 ==> 100 https://api.github.com/users/github/repos?type=all&per_page=100&page=3 ==> 96

curl https://api.github.com/users/github/repos\?type\=all\&per_page\=100 | jq length
curl https://api.github.com/users/github/repos\?type\=all\&per_page\=100\&page\=2 | jq length
curl https://api.github.com/users/github/repos\?type\=all\&per_page\=100\&page\=3 | jq length

Сортировка по обновлению

sds-users:() ➜  (11/04 19:18) /tmp curl "https://api.github.com/users/github/repos?type=all&per_page=10&sort=updated" | jq '.[].updated_at'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 54509  100 54509    0     0  76340      0 --:--:-- --:--:-- --:--:-- 76450
"2019-04-11T18:15:05Z"
"2019-04-11T18:05:00Z"
"2019-04-11T18:02:57Z"
"2019-04-11T17:41:47Z"
"2019-04-11T17:35:55Z"
"2019-04-11T16:46:28Z"
"2019-04-11T16:20:20Z"
"2019-04-11T16:17:09Z"
"2019-04-11T15:48:31Z"
"2019-04-11T15:27:31Z"
sds-users:() ➜  (11/04 19:18) /tmp
1 голос
/ 11 апреля 2019

Общедоступная веб-страница включает архивированные репозитории. API-запрос не выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...