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_request_widget_entity.rb')
-rw-r--r--app/serializers/merge_request_widget_entity.rb20
1 files changed, 19 insertions, 1 deletions
diff --git a/app/serializers/merge_request_widget_entity.rb b/app/serializers/merge_request_widget_entity.rb
index 2a7afb57314..b7b9e7d1036 100644
--- a/app/serializers/merge_request_widget_entity.rb
+++ b/app/serializers/merge_request_widget_entity.rb
@@ -3,6 +3,8 @@
class MergeRequestWidgetEntity < Grape::Entity
include RequestAwareEntity
+ SUGGEST_PIPELINE = 'suggest_pipeline'
+
expose :id
expose :iid
@@ -14,6 +16,10 @@ class MergeRequestWidgetEntity < Grape::Entity
merge_request.project&.full_path
end
+ expose :can_create_pipeline_in_target_project do |merge_request|
+ can?(current_user, :create_pipeline, merge_request.target_project)
+ end
+
expose :email_patches_path do |merge_request|
project_merge_request_path(merge_request.project, merge_request, format: :patch)
end
@@ -60,6 +66,18 @@ class MergeRequestWidgetEntity < Grape::Entity
)
end
+ expose :user_callouts_path, if: -> (*) { Feature.enabled?(:suggest_pipeline) } do |merge_request|
+ user_callouts_path
+ end
+
+ expose :suggest_pipeline_feature_id, if: -> (*) { Feature.enabled?(:suggest_pipeline) } do |merge_request|
+ SUGGEST_PIPELINE
+ end
+
+ expose :is_dismissed_suggest_pipeline, if: -> (*) { Feature.enabled?(:suggest_pipeline) } do |merge_request|
+ current_user && current_user.dismissed_callout?(feature_name: SUGGEST_PIPELINE)
+ end
+
expose :human_access do |merge_request|
merge_request.project.team.human_max_access(current_user&.id)
end
@@ -119,7 +137,7 @@ class MergeRequestWidgetEntity < Grape::Entity
merge_request.source_branch_exists? &&
merge_request.source_project&.uses_default_ci_config? &&
!merge_request.source_project.has_ci? &&
- merge_request.commits_count.positive? &&
+ merge_request.commits_count > 0 &&
can?(current_user, :read_build, merge_request.source_project) &&
can?(current_user, :create_pipeline, merge_request.source_project)
end