summaryrefslogtreecommitdiff
path: root/app/serializers/pipeline_serializer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers/pipeline_serializer.rb')
-rw-r--r--app/serializers/pipeline_serializer.rb19
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