class Gitlab::Triage::Policies::BasePolicy

Constants

InvalidPolicyError

Attributes

network[R]
policy_spec[R]
resources[R]
summary[RW]
type[R]

Public Class Methods

new(type, policy_spec, resources, network) click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 12
def initialize(type, policy_spec, resources, network)
  @type = type
  @policy_spec = policy_spec
  @resources = resources
  @network = network
end

Public Instance Methods

actions() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 45
def actions
  @actions ||= policy_spec.fetch(:actions) { {} }
end
build_issue() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 62
def build_issue
  raise NotImplementedError
end
comment?() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 57
def comment?
  # The actual keys are strings
  (actions.keys.map(&:to_sym) - [:summarize, :comment_on_summary]).any?
end
comment_on_summary?() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 53
def comment_on_summary?
  actions.key?(:comment_on_summary)
end
name() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 23
def name
  @name ||= (policy_spec[:name] || "#{type}-#{object_id}")
end
source() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 27
def source
  case type
  when 'epics'
    'groups'
  else
    'projects'
  end
end
source_id_sym() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 36
def source_id_sym
  case type
  when 'epics'
    :group_id
  else
    :project_id
  end
end
summarize?() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 49
def summarize?
  actions.key?(:summarize)
end
validate!() click to toggle source
# File lib/gitlab/triage/policies/base_policy.rb, line 19
def validate!
  raise InvalidPolicyError, 'Policies that comment_on_summary must include summarize action' if comment_on_summary? && !summarize?
end