1# frozen_string_literal: true 2# rubocop: disable Graphql/ResolverType 3 4module Resolvers 5 class MergeRequestPipelinesResolver < BaseResolver 6 # The GraphQL type here gets defined in this include 7 include ::ResolvesPipelines 8 include ::CachingArrayResolver 9 10 alias_method :merge_request, :object 11 12 # Return at most 500 pipelines for each MR. 13 # Merge requests generally have many fewer pipelines than this. 14 def self.field_options 15 super.merge(max_page_size: 500) 16 end 17 18 def resolve(**args) 19 return unless project 20 21 super 22 end 23 24 def query_for(args) 25 resolve_pipelines(project, args).merge(merge_request.all_pipelines) 26 end 27 28 def model_class 29 ::Ci::Pipeline 30 end 31 32 def query_input(**args) 33 args 34 end 35 36 def project 37 merge_request.source_project 38 end 39 end 40end 41# rubocop: enable Graphql/ResolverType 42