Почему github API не показывает мне список всех репозиториев?
Пример:
https://github.com/github
https://api.github.com/search/repositories?q=user:github+sort:updated
Используя первую ссылку, мы видим 296 хранилищ, используя второе, которое я получаю "total_count ": 173. Как я могу искать во всех 296 репозиториях, используя github API?
Я считаю, что API скрывает архивированные репозитории от результатов. +archived:true это должно показать вам еще 42 или около того. Но это не добавляет до 296, поэтому я использую пользовательский API (https://api.github.com/users/github/repos) вместо этого, который может возвращать более одного типа хранилища за раз.
+archived:true
Кажется, есть некоторая зависимость от search API, который скрывает некоторые репозитории, которые не документированы.
search
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
Общедоступная веб-страница включает архивированные репозитории. API-запрос не выполняется.