diff options
Diffstat (limited to 'app/graphql/types/query_type.rb')
-rw-r--r-- | app/graphql/types/query_type.rb | 184 |
1 files changed, 77 insertions, 107 deletions
diff --git a/app/graphql/types/query_type.rb b/app/graphql/types/query_type.rb index 7263f792bae..990ba1fb7fc 100644 --- a/app/graphql/types/query_type.rb +++ b/app/graphql/types/query_type.rb @@ -7,56 +7,17 @@ module Types # The design management context object needs to implement #issue DesignManagementObject = Struct.new(:issue) - field :project, Types::ProjectType, - null: true, - resolver: Resolvers::ProjectResolver, - description: "Find a project." - - field :projects, Types::ProjectType.connection_type, - null: true, - resolver: Resolvers::ProjectsResolver, - description: "Find projects visible to the current user." - - field :group, Types::GroupType, - null: true, - resolver: Resolvers::GroupResolver, - description: "Find a group." - - field :current_user, Types::UserType, - null: true, - description: "Get information about current user." - - field :namespace, Types::NamespaceType, - null: true, - resolver: Resolvers::NamespaceResolver, - description: "Find a namespace." - - field :metadata, Types::MetadataType, - null: true, - resolver: Resolvers::MetadataResolver, - description: 'Metadata about GitLab.' - - field :query_complexity, Types::QueryComplexityType, + field :board_list, ::Types::BoardListType, null: true, - description: 'Information about the complexity of the GraphQL query.' - - field :snippets, - Types::SnippetType.connection_type, + resolver: Resolvers::BoardListResolver + field :ci_application_settings, Types::Ci::ApplicationSettingType, null: true, - resolver: Resolvers::SnippetsResolver, - description: 'Find Snippets visible to the current user.' - - field :design_management, Types::DesignManagementType, - null: false, - description: 'Fields related to design management.' - - field :milestone, ::Types::MilestoneType, + description: 'CI related settings that apply to the entire instance.' + field :ci_config, resolver: Resolvers::Ci::ConfigResolver, complexity: 126 # AUTHENTICATED_MAX_COMPLEXITY / 2 + 1 + field :ci_variables, + Types::Ci::InstanceVariableType.connection_type, null: true, - extras: [:lookahead], - description: 'Find a milestone.' do - argument :id, ::Types::GlobalIDType[Milestone], required: true, description: 'Find a milestone by its ID.' - end - + description: "List of the instance's CI/CD variables." field :container_repository, Types::ContainerRepositoryDetailsType, null: true, description: 'Find a container repository.' do @@ -65,107 +26,116 @@ module Types required: true, description: 'Global ID of the container repository.' end - - field :package, - description: 'Find a package. This field can only be resolved for one query in any single request. Returns `null` if a package has no `default` status.', - resolver: Resolvers::PackageDetailsResolver - - field :user, Types::UserType, - null: true, - description: 'Find a user.', - resolver: Resolvers::UserResolver - - field :users, Types::UserType.connection_type, + field :current_user, Types::UserType, null: true, - description: 'Find users.', - resolver: Resolvers::UsersResolver - + description: "Get information about current user." + field :design_management, Types::DesignManagementType, + null: false, + description: 'Fields related to design management.' field :echo, resolver: Resolvers::EchoResolver - - field :issues, + field :gitpod_enabled, GraphQL::Types::Boolean, null: true, - alpha: { milestone: '15.6' }, - resolver: Resolvers::IssuesResolver, - description: 'Issues visible by the current user.' \ - ' Returns null if the `root_level_issues_query` feature flag is disabled.' - + description: "Whether Gitpod is enabled in application settings." + field :group, Types::GroupType, + null: true, + resolver: Resolvers::GroupResolver, + description: "Find a group." field :issue, Types::IssueType, null: true, description: 'Find an issue.' do argument :id, ::Types::GlobalIDType[::Issue], required: true, description: 'Global ID of the issue.' end - - field :work_item, Types::WorkItemType, + field :issues, null: true, - resolver: Resolvers::WorkItemResolver, - alpha: { milestone: '15.1' }, - description: 'Find a work item.' - + alpha: { milestone: '15.6' }, + resolver: Resolvers::IssuesResolver, + description: 'Find issues visible to the current user.' \ + ' At least one filter must be provided.' \ + ' Returns `null` if the `root_level_issues_query` feature flag is disabled.' + field :jobs, + ::Types::Ci::JobType.connection_type, + null: true, + description: 'All jobs on this GitLab instance.', + resolver: ::Resolvers::Ci::AllJobsResolver field :merge_request, Types::MergeRequestType, null: true, description: 'Find a merge request.' do argument :id, ::Types::GlobalIDType[::MergeRequest], required: true, description: 'Global ID of the merge request.' end - - field :usage_trends_measurements, Types::Admin::Analytics::UsageTrends::MeasurementType.connection_type, + field :metadata, Types::MetadataType, null: true, - description: 'Get statistics on the instance.', - resolver: Resolvers::Admin::Analytics::UsageTrends::MeasurementsResolver - - field :ci_application_settings, Types::Ci::ApplicationSettingType, + resolver: Resolvers::MetadataResolver, + description: 'Metadata about GitLab.' + field :milestone, ::Types::MilestoneType, null: true, - description: 'CI related settings that apply to the entire instance.' - - field :runner_platforms, resolver: Resolvers::Ci::RunnerPlatformsResolver - field :runner_setup, resolver: Resolvers::Ci::RunnerSetupResolver - + extras: [:lookahead], + description: 'Find a milestone.' do + argument :id, ::Types::GlobalIDType[Milestone], required: true, description: 'Find a milestone by its ID.' + end + field :namespace, Types::NamespaceType, + null: true, + resolver: Resolvers::NamespaceResolver, + description: "Find a namespace." + field :package, + description: 'Find a package. This field can only be resolved for one query in any single request. Returns `null` if a package has no `default` status.', + resolver: Resolvers::PackageDetailsResolver + field :project, Types::ProjectType, + null: true, + resolver: Resolvers::ProjectResolver, + description: "Find a project." + field :projects, Types::ProjectType.connection_type, + null: true, + resolver: Resolvers::ProjectsResolver, + description: "Find projects visible to the current user." + field :query_complexity, Types::QueryComplexityType, + null: true, + description: 'Information about the complexity of the GraphQL query.' field :runner, Types::Ci::RunnerType, null: true, resolver: Resolvers::Ci::RunnerResolver, extras: [:lookahead], description: "Find a runner." - + field :runner_platforms, resolver: Resolvers::Ci::RunnerPlatformsResolver + field :runner_setup, resolver: Resolvers::Ci::RunnerSetupResolver field :runners, Types::Ci::RunnerType.connection_type, null: true, resolver: Resolvers::Ci::RunnersResolver, description: "Find runners visible to the current user." - - field :ci_variables, - Types::Ci::InstanceVariableType.connection_type, + field :snippets, + Types::SnippetType.connection_type, null: true, - description: "List of the instance's CI/CD variables." - - field :ci_config, resolver: Resolvers::Ci::ConfigResolver, complexity: 126 # AUTHENTICATED_MAX_COMPLEXITY / 2 + 1 - + resolver: Resolvers::SnippetsResolver, + description: 'Find Snippets visible to the current user.' field :timelogs, Types::TimelogType.connection_type, null: true, description: 'Find timelogs visible to the current user.', extras: [:lookahead], complexity: 5, resolver: ::Resolvers::TimelogResolver - - field :board_list, ::Types::BoardListType, - null: true, - resolver: Resolvers::BoardListResolver - field :todo, null: true, resolver: Resolvers::TodoResolver - field :topics, Types::Projects::TopicType.connection_type, null: true, resolver: Resolvers::TopicsResolver, description: "Find project topics." - - field :gitpod_enabled, GraphQL::Types::Boolean, + field :usage_trends_measurements, Types::Admin::Analytics::UsageTrends::MeasurementType.connection_type, null: true, - description: "Whether Gitpod is enabled in application settings." - - field :jobs, - ::Types::Ci::JobType.connection_type, + description: 'Get statistics on the instance.', + resolver: Resolvers::Admin::Analytics::UsageTrends::MeasurementsResolver + field :user, Types::UserType, null: true, - description: 'All jobs on this GitLab instance.', - resolver: ::Resolvers::Ci::AllJobsResolver + description: 'Find a user.', + resolver: Resolvers::UserResolver + field :users, Types::UserType.connection_type, + null: true, + description: 'Find users.', + resolver: Resolvers::UsersResolver + field :work_item, Types::WorkItemType, + null: true, + resolver: Resolvers::WorkItemResolver, + alpha: { milestone: '15.1' }, + description: 'Find a work item.' def design_management DesignManagementObject.new(nil) |