octokit で github api をクエリしようとすると、次の関数があり、3 ~ 4 分かかります。組織内の各レポをループし、そこからレポのトップコントリビューターをチェックしてからソートすることにより、組織内のトップコントリビューターを見つけようとしています。
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