debian-mirror-gitlab/app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb
2021-06-08 01:23:25 +05:30

28 lines
744 B
Ruby

# frozen_string_literal: true
module Ci
module PipelineArtifacts
class CodeQualityMrDiffPresenter < Gitlab::View::Presenter::Delegated
include Gitlab::Utils::StrongMemoize
def for_files(merge_request)
filenames = merge_request.new_paths
mr_diff_report = raw_report(merge_request.id)
quality_files = mr_diff_report["files"]&.select { |key| filenames.include?(key) }
{ files: quality_files }
end
private
def raw_report(merge_request_id)
strong_memoize(:raw_report) do
self.each_blob do |blob|
Gitlab::Json.parse(blob).with_indifferent_access.fetch("merge_request_#{merge_request_id}", {})
end
end
end
end
end
end