Sha256: cb827e7e10bbc0ff5d4fe3574f471d0219eb91dbf46c09b151c1b053b239112a

Contents?: true

Size: 802 Bytes

Versions: 3

Compression:

Stored size: 802 Bytes

Contents

require 'gitlab_reviewbot/gitlab'

module Danger
  module AssignStrategies
    class LeastBusyStrategy < Strategy
      def assignees(amount)
        users_in_group = fetch_users_in_group()
        author = fetch_author()
        invalid_assignees = [ fetch_author() ] + fetch_assigned_reviewers()

        users_with_reviews_pending = client.users_with_pending_mr_review(project_id)
        users_without_reviews_pending = users_in_group.filter { |u| ! users_with_reviews_pending.include? u }

        (users_with_reviews_pending + users_without_reviews_pending).filter { |u| u.id != author.id }
                                                                    .sort_by(&:review_count)
                                                                    .first(amount)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
danger-gitlab_reviewbot-1.1.0 lib/gitlab_reviewbot/strategies/least_busy.rb
danger-gitlab_reviewbot-1.0.2 lib/gitlab_reviewbot/strategies/least_busy.rb
danger-gitlab_reviewbot-1.0.1 lib/gitlab_reviewbot/strategies/least_busy.rb