首页 文章

使用Powershell下载随机GitHub存储库

提问于
浏览
1

我想抽样随机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 回答

  • 2

    你很亲密这应该工作:

    [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 allways的调用代表相同的最后100个回购,因此无需随机化数字 .

    第一次调用的列表为您提供了100 Repos的api URL . 因此,随机检查其中一个并使用另一个WebRequest克隆该URL以克隆到存储库的api URL .

相关问题