42 lines
944 B
Ruby
42 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
|