diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-29 09:06:31 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-29 09:06:31 +0000 |
commit | 6b13a226ddfc49140d58e7e88f8703ae0ed90574 (patch) | |
tree | 9a92431e484354f43230fa87adc00a2edbf6f09c /app/serializers | |
parent | 2ac93cb80c4c0a57fde86de8262b569d1e9b9e51 (diff) | |
download | gitlab-ce-6b13a226ddfc49140d58e7e88f8703ae0ed90574.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/serializers')
-rw-r--r-- | app/serializers/deployment_entity.rb | 11 | ||||
-rw-r--r-- | app/serializers/environment_status_entity.rb | 4 | ||||
-rw-r--r-- | app/serializers/merge_request_poll_widget_entity.rb | 4 | ||||
-rw-r--r-- | app/serializers/pipeline_entity.rb | 4 |
4 files changed, 20 insertions, 3 deletions
diff --git a/app/serializers/deployment_entity.rb b/app/serializers/deployment_entity.rb index e6421315b34..94773eeebd0 100644 --- a/app/serializers/deployment_entity.rb +++ b/app/serializers/deployment_entity.rb @@ -37,6 +37,9 @@ class DeploymentEntity < Grape::Entity expose :commit, using: CommitEntity, if: -> (*) { include_details? } expose :manual_actions, using: JobEntity, if: -> (*) { include_details? && can_create_deployment? } expose :scheduled_actions, using: JobEntity, if: -> (*) { include_details? && can_create_deployment? } + expose :playable_build, expose_nil: false, if: -> (*) { include_details? && can_create_deployment? } do |deployment, options| + JobEntity.represent(deployment.playable_build, options.merge(only: [:play_path, :retry_path])) + end expose :cluster, using: ClusterBasicEntity @@ -47,7 +50,7 @@ class DeploymentEntity < Grape::Entity end def can_create_deployment? - can?(request.current_user, :create_deployment, request.project) + can?(request.current_user, :create_deployment, project) end def can_read_deployables? @@ -56,6 +59,10 @@ class DeploymentEntity < Grape::Entity # because it triggers a policy evaluation that involves multiple # Gitaly calls that might not be cached. # - can?(request.current_user, :read_build, request.project) + can?(request.current_user, :read_build, project) + end + + def project + request.try(:project) || options[:project] end end diff --git a/app/serializers/environment_status_entity.rb b/app/serializers/environment_status_entity.rb index 811cc2ad5af..40db23c143e 100644 --- a/app/serializers/environment_status_entity.rb +++ b/app/serializers/environment_status_entity.rb @@ -37,6 +37,10 @@ class EnvironmentStatusEntity < Grape::Entity es.deployment.try(:formatted_deployment_time) end + expose :deployment, as: :details do |es, options| + DeploymentEntity.represent(es.deployment, options.merge(project: es.project, only: [:playable_build])) + end + expose :changes private diff --git a/app/serializers/merge_request_poll_widget_entity.rb b/app/serializers/merge_request_poll_widget_entity.rb index 2a61187a856..028de38e42a 100644 --- a/app/serializers/merge_request_poll_widget_entity.rb +++ b/app/serializers/merge_request_poll_widget_entity.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true -class MergeRequestPollWidgetEntity < IssuableEntity +class MergeRequestPollWidgetEntity < Grape::Entity + include RequestAwareEntity + expose :auto_merge_strategy expose :available_auto_merge_strategies do |merge_request| AutoMergeService.new(merge_request.project, current_user).available_strategies(merge_request) # rubocop: disable CodeReuse/ServiceClass diff --git a/app/serializers/pipeline_entity.rb b/app/serializers/pipeline_entity.rb index 94e8b174f0f..cddb894fd64 100644 --- a/app/serializers/pipeline_entity.rb +++ b/app/serializers/pipeline_entity.rb @@ -77,6 +77,10 @@ class PipelineEntity < Grape::Entity cancel_project_pipeline_path(pipeline.project, pipeline) end + expose :failed_builds, if: -> (*) { can_retry? }, using: JobEntity do |pipeline| + pipeline.builds.failed + end + private alias_method :pipeline, :object |