Octokit.rb извлекает ресурсы из API последней версии - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу получить с GET /repos/:owner/:repo/releases/latest browser_download_url из GitHub v3 API.Проблема в том, что я не могу извлечь URL ресурса.Когда в репозитории больше выпусков, например, несколько сборок для разных платформ, я записываю один URL в файл json, а не несколько.Как я мог справиться с этим?

def cache_repositories(repos)
    @url_arr = []
    @name_arr = []
    version_res = []
    @version_arr = []
    download_url_res = []
    @download_url_arr = []

    repos.each {|repo|
      @name_arr << repo.name
      @url_arr << repo.html_url


      begin
        version_res << @client.latest_release(repo.full_name)

        version_res.each do |res|
          @version_arr << res.tag_name
          download_url_res << res.assets
          download_url_res.each do |download|
              download.each do |url|
               @download_url_arr << url.browser_download_url
            end
          end
      rescue
        @version_arr << ""
        @download_url_arr << ""
      end
    }

    repo_array_unsorted = @name_arr.zip(@url_arr, @version_arr, @download_url_arr)
    repo_array = repo_array_unsorted.map {|name, url, version, download_url| {:name => name, :url => url, :version => version, :download_url => download_url}}
    repo_array.to_json
  end

Мой JSON выглядит следующим образом:

[
    {
        "name": "bar1",
        "url": "https://github.com/foo/bar1",
        "version": "",
        "download_url": ""
    },
    {
        "name": "bar2",
        "url": "https://github.com/foo/bar2",
        "version": "",
        "download_url": ""
    },
    {
        "name": "bar3",
        "url": "https://github.com/foo/bar3",
        "version": "v21.9.10",
        "download_url": ""
    }
]
...