summaryrefslogtreecommitdiff
path: root/app/serializers/ci/downloadable_artifact_entity.rb
blob: 2e8aafcee4303e4c556a08f1d67c5819d983c020 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# frozen_string_literal: true

module Ci
  class DownloadableArtifactEntity < Grape::Entity
    include RequestAwareEntity

    expose :artifacts do |pipeline, options|
      artifacts = pipeline.downloadable_artifacts

      if Feature.enabled?(:non_public_artifacts)
        artifacts = artifacts.select { |artifact| can?(request.current_user, :read_job_artifacts, artifact) }
      end

      BuildArtifactEntity.represent(artifacts, options.merge(project: pipeline.project))
    end
  end
end