diff options
Diffstat (limited to 'app/serializers/pipeline_serializer.rb')
-rw-r--r-- | app/serializers/pipeline_serializer.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/app/serializers/pipeline_serializer.rb b/app/serializers/pipeline_serializer.rb index 4cbb58fb4f0..0e79d269ae7 100644 --- a/app/serializers/pipeline_serializer.rb +++ b/app/serializers/pipeline_serializer.rb @@ -15,6 +15,7 @@ class PipelineSerializer < BaseSerializer if resource.is_a?(ActiveRecord::Relation) resource = resource.preload( :user, + :trigger_requests, statuses: { project: [:project_feature, :namespace] }, project: :namespace) @@ -22,6 +23,17 @@ class PipelineSerializer < BaseSerializer resource = @paginator.paginate(resource) end + resource = resource.preload([ + :retryable_builds, + :cancelable_statuses, + :trigger_requests, + :project, + { pending_builds: :project }, + { manual_actions: :project }, + { artifacts: :project } + ]) + end + preload_commit_authors(resource) elsif paginated? raise Gitlab::Serializer::Pagination::InvalidResourceError @@ -79,4 +91,11 @@ class PipelineSerializer < BaseSerializer a.alternative_email || a.email end end + + def represent_stages(resource) + return {} unless resource.present? + + data = represent(resource, { only: [{ details: [:stages] }] }) + data.dig(:details, :stages) || [] + end end |