class Gitlab::Dangerfiles::Weightage::Reviewers
Weights after (current multiplier of 2)
------------------------------
——————————–+ | reviewer type | weight(times in reviewer pool) | ------------------------------
——————————–+ | reduced capacity reviewer | 1 | | reviewer | 2 | | hungry reviewer | 4 | | reduced capacity traintainer | 3 | | traintainer | 6 | | hungry traintainer | 8 | ------------------------------
——————————–+
@api private
Constants
- DEFAULT_REVIEWER_WEIGHT
- TRAINTAINER_WEIGHT
Attributes
reviewers[R]
traintainers[R]
Public Class Methods
new(reviewers, traintainers)
click to toggle source
# File lib/gitlab/dangerfiles/weightage/reviewers.rb, line 26 def initialize(reviewers, traintainers) @reviewers = reviewers @traintainers = traintainers end
Public Instance Methods
execute()
click to toggle source
# File lib/gitlab/dangerfiles/weightage/reviewers.rb, line 31 def execute # TODO: take CODEOWNERS into account? # https://gitlab.com/gitlab-org/gitlab/issues/26723 weighted_reviewers + weighted_traintainers end
Private Instance Methods
add_weighted_reviewer(reviewers, reviewer, weight)
click to toggle source
# File lib/gitlab/dangerfiles/weightage/reviewers.rb, line 54 def add_weighted_reviewer(reviewers, reviewer, weight) if reviewer.reduced_capacity reviewers.fill(reviewer, reviewers.size, weight) elsif reviewer.hungry reviewers.fill(reviewer, reviewers.size, weight * Gitlab::Dangerfiles::Weightage::CAPACITY_MULTIPLIER + DEFAULT_REVIEWER_WEIGHT) else reviewers.fill(reviewer, reviewers.size, weight * Gitlab::Dangerfiles::Weightage::CAPACITY_MULTIPLIER) end end
weighted_reviewers()
click to toggle source
# File lib/gitlab/dangerfiles/weightage/reviewers.rb, line 42 def weighted_reviewers reviewers.each_with_object([]) do |reviewer, total_reviewers| add_weighted_reviewer(total_reviewers, reviewer, Gitlab::Dangerfiles::Weightage::BASE_REVIEWER_WEIGHT) end end
weighted_traintainers()
click to toggle source
# File lib/gitlab/dangerfiles/weightage/reviewers.rb, line 48 def weighted_traintainers traintainers.each_with_object([]) do |reviewer, total_traintainers| add_weighted_reviewer(total_traintainers, reviewer, TRAINTAINER_WEIGHT) end end