diff options
Diffstat (limited to 'app/serializers/merge_request_widget_entity.rb')
-rw-r--r-- | app/serializers/merge_request_widget_entity.rb | 20 |
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 |