Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers/merge_requests/pipeline_entity.rb')
-rw-r--r--app/serializers/merge_requests/pipeline_entity.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/app/serializers/merge_requests/pipeline_entity.rb b/app/serializers/merge_requests/pipeline_entity.rb
new file mode 100644
index 00000000000..97d7620154e
--- /dev/null
+++ b/app/serializers/merge_requests/pipeline_entity.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+class MergeRequests::PipelineEntity < Grape::Entity
+ include RequestAwareEntity
+
+ expose :id
+ expose :active?, as: :active
+
+ expose :path do |pipeline|
+ project_pipeline_path(pipeline.project, pipeline)
+ end
+
+ expose :flags do
+ expose :merge_request_pipeline?, as: :merge_request_pipeline
+ end
+
+ expose :commit, using: CommitEntity
+
+ expose :details do
+ expose :name do |pipeline|
+ pipeline.present.name
+ end
+
+ expose :detailed_status, as: :status, with: DetailedStatusEntity do |pipeline|
+ pipeline.detailed_status(request.current_user)
+ end
+
+ expose :stages, using: StageEntity
+ end
+
+ # Coverage isn't always necessary (e.g. when displaying project pipelines in
+ # the UI). Instead of creating an entirely different entity we just allow the
+ # disabling of this specific field whenever necessary.
+ expose :coverage, unless: proc { options[:disable_coverage] }
+
+ expose :ref do
+ expose :branch?, as: :branch
+ end
+
+ expose :triggered_by_pipeline, as: :triggered_by, with: TriggeredPipelineEntity
+ expose :triggered_pipelines, as: :triggered, using: TriggeredPipelineEntity
+end