41 lines
944 B
Ruby
41 lines
944 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module Ci
|
|
class ProjectConfig
|
|
class Source
|
|
include Gitlab::Utils::StrongMemoize
|
|
|
|
def initialize(project, sha, custom_content, pipeline_source, pipeline_source_bridge)
|
|
@project = project
|
|
@sha = sha
|
|
@custom_content = custom_content
|
|
@pipeline_source = pipeline_source
|
|
@pipeline_source_bridge = pipeline_source_bridge
|
|
end
|
|
|
|
def exists?
|
|
strong_memoize(:exists) do
|
|
content.present?
|
|
end
|
|
end
|
|
|
|
def content
|
|
raise NotImplementedError
|
|
end
|
|
|
|
def source
|
|
raise NotImplementedError
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :project, :sha, :custom_content, :pipeline_source, :pipeline_source_bridge
|
|
|
|
def ci_config_path
|
|
@ci_config_path ||= project.ci_config_path_or_default
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|