Скачать случайные репозитории GitHub с Powershell - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу выбрать случайные общедоступные репозитории GitHub, чтобы загрузить их один за другим для статистических целей.Я попытался использовать следующий код Powershell:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$id = Get-Random -Minimum 0 -Maximum 500
$jsonContent = Invoke-WebRequest "http://api.github.com/repositories?since=$id" | ConvertFrom-Json

Я получил список общедоступных репозиториев, но не могу ограничить их количество.Я пробовал с ?page=1&per_page=1, но это не сработало.Я просто хочу разобрать с clone_url до git clone.

Есть идеи?Также приветствуются другие решения для загрузки случайных репозиториев с github.

1 Ответ

0 голосов
/ 10 декабря 2018

Вы были близки.Это должно работать:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$id = Get-Random -Minimum 0 -Maximum 99
$jsonContent = Invoke-WebRequest "http://api.github.com/repositories?since=1" | ConvertFrom-Json

$gitUrl = Invoke-WebRequest -Uri ($jsonContent[$id].url) | ConvertFrom-Json |  Select-Object -ExpandProperty git_url

git clone $gitUrl

Если вы хотите клонировать через ssh, обязательно измените git_url на ssh_url.

Объяснение

Вызов на http://api.github.com/repositories?since=x всегда представляет те же самые последние 100 репо, поэтому нет необходимости рандомизировать номер там.

В списке от первого вызова вы найдете API-адрес для 100 репо.Так что случайным образом отметьте один из них и с помощью URL-адреса откройте URL-адрес API хранилища.

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