debian-mirror-gitlab/lib/gitlab/ci/pipeline/seed/processable/resource_group.rb
2021-03-11 19:13:27 +05:30

39 lines
1 KiB
Ruby

# frozen_string_literal: true
module Gitlab
module Ci
module Pipeline
module Seed
module Processable
class ResourceGroup < Seed::Base
include Gitlab::Utils::StrongMemoize
attr_reader :processable, :resource_group_key
def initialize(processable, resource_group_key)
@processable = processable
@resource_group_key = resource_group_key
end
def to_resource
return unless resource_group_key.present?
resource_group = processable.project.resource_groups
.safe_find_or_create_by(key: expanded_resource_group_key)
resource_group if resource_group.persisted?
end
private
def expanded_resource_group_key
strong_memoize(:expanded_resource_group_key) do
ExpandVariables.expand(resource_group_key, -> { processable.simple_variables })
end
end
end
end
end
end
end
end