Sha256: c7efc224489dce559720481bf8799bdb7d5a593ca86cc39728b784da706bfef9

Contents?: true

Size: 822 Bytes

Versions: 6

Compression:

Stored size: 822 Bytes

Contents

require_relative 'base_conditions_limiter'

module Gitlab
  module Triage
    module Limiters
      class ForbiddenLabelsConditionsLimiter < BaseConditionsLimiter
        def self.limiter_parameters
          []
        end

        def validate_condition(condition)
          raise ArgumentError, 'condition must be an array containing forbidden label values' unless condition.is_a?(Array)
        end

        def initialize_variables(forbidden_labels)
          @attribute = :labels
          @forbidden_labels = forbidden_labels
        end

        def resource_value
          @resource[@attribute]
        end

        def calculate
          label_intersection.empty?
        end

        private

        def label_intersection
          resource_value & @forbidden_labels
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
gitlab-triage-0.6.0 lib/gitlab/triage/limiters/forbidden_labels_conditions_limiter.rb
gitlab-triage-0.5.0 lib/gitlab/triage/limiters/forbidden_labels_conditions_limiter.rb
gitlab-triage-0.4.0 lib/gitlab/triage/limiters/forbidden_labels_conditions_limiter.rb
gitlab-triage-0.3.0 lib/gitlab/triage/limiters/forbidden_labels_conditions_limiter.rb
gitlab-triage-0.2.1 lib/gitlab/triage/limiters/forbidden_labels_conditions_limiter.rb
gitlab-triage-0.2.0 lib/gitlab/triage/limiters/forbidden_labels_conditions_limiter.rb