diff options
Diffstat (limited to 'app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb')
-rw-r--r-- | app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb b/app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb new file mode 100644 index 00000000000..2fe3104fe69 --- /dev/null +++ b/app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module Ci + module PipelineArtifacts + class CodeQualityMrDiffPresenter < Gitlab::View::Presenter::Delegated + include Gitlab::Utils::StrongMemoize + + def for_files(filenames) + quality_files = raw_report["files"].select { |key| filenames.include?(key) } + + { files: quality_files } + end + + private + + def raw_report + strong_memoize(:raw_report) do + self.each_blob do |blob| + Gitlab::Json.parse(blob).with_indifferent_access + end + end + end + end + end +end |