2

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
4

0 に答える 0