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