Sha256: bbae32f456d0133f8f880ab1d550304133701f20d9317ded049e746fe04de94f

Contents?: true

Size: 642 Bytes

Versions: 1

Compression:

Stored size: 642 Bytes

Contents

require 'gitlab_reviewbot/gitlab'

module Danger
  module AssignStrategies
    class LeastBusyStrategy < Strategy
      def assignees(amount)
        review_counter = client.fetch_users_for_group(group_name).reduce({}) do |counter, user|
          counter[user.id] = user
          counter
        end

        users = client.users_with_pending_mr_review(project_id) do |counter, user|
          next if counter[user.id].nil?
          counter[user.id].review_count += 1
          counter
        end
        users.filter { |u| u.id != author.id }
             .sort_by(&:review_count)
             .last(amount)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
danger-gitlab_reviewbot-1.0.0 lib/gitlab_reviewbot/strategies/least_busy.rb