2

尝试使用 octokit 查询 github api,我有以下功能需要 3-4 分钟,有没有人看到一个明显的问题,为什么它需要这么慢?我试图通过循环遍历组织中的每个 repo,并从那里检查 repo 的顶级贡献者并随后进行排序,从而找到组织内的顶级贡献者。

def get_top_internal(client)
    repos = client.org_repos(params[:org])
    contributor_count_hash = Hash.new(0)
    contributors = []
    repos.each do |repo|
      contributors = client.contributors(repo.full_name,anon=true,per_page:10)
      contributors.each do |contributor|
        contributor_count_hash[contributor.login] += contributor.contributions
      end
    end
    sorted = contributor_count_hash.sort_by {|arr| arr[1]}
    sorted = sorted.slice!(-5..-1)

    user_names = sorted.map {|arr| arr[0]}
    debugger
    return_array = contributors.select {|user| user_names.include? user[:login]}
  end
4

0 回答 0