summaryrefslogtreecommitdiff
path: root/app/serializers
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2018-09-17 09:01:12 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2018-09-17 09:01:12 +0000
commitcdc4cd09e74bebf52250581dcbd99cfd8848aaeb (patch)
treef1cd11e9c147974e85d07ba94d9bff7959a4f19c /app/serializers
parente1b0ac5b8fc523ddbfbda1f8a30888b61b82374e (diff)
parentc80abb40fcb3b2dc35c62aa30d374f2889247746 (diff)
downloadgitlab-ce-cdc4cd09e74bebf52250581dcbd99cfd8848aaeb.tar.gz
Merge branch '50461-add-retried-builds-in-pipeline-stage-endpoint' into 'master'
Add retried jobs to pipeline stages Closes #50461 See merge request gitlab-org/gitlab-ce!21558
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/stage_entity.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/app/serializers/stage_entity.rb b/app/serializers/stage_entity.rb
index ca8fa7e7877..029dd3d0684 100644
--- a/app/serializers/stage_entity.rb
+++ b/app/serializers/stage_entity.rb
@@ -19,6 +19,12 @@ class StageEntity < Grape::Entity
latest_statuses
end
+ expose :retried,
+ if: -> (_, opts) { opts[:retried] },
+ with: JobEntity do |stage|
+ retried_statuses
+ end
+
expose :detailed_status, as: :status, with: DetailedStatusEntity
expose :path do |stage|
@@ -48,9 +54,19 @@ class StageEntity < Grape::Entity
@grouped_statuses ||= stage.statuses.latest_ordered.group_by(&:status)
end
+ def grouped_retried_statuses
+ @grouped_retried_statuses ||= stage.statuses.retried_ordered.group_by(&:status)
+ end
+
def latest_statuses
HasStatus::ORDERED_STATUSES.map do |ordered_status|
grouped_statuses.fetch(ordered_status, [])
end.flatten
end
+
+ def retried_statuses
+ HasStatus::ORDERED_STATUSES.map do |ordered_status|
+ grouped_retried_statuses.fetch(ordered_status, [])
+ end.flatten
+ end
end