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:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 12:55:51 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 12:55:51 +0300
commite8d2c2579383897a1dd7f9debd359abe8ae8373d (patch)
treec42be41678c2586d49a75cabce89322082698334 /app/graphql/resolvers
parentfc845b37ec3a90aaa719975f607740c22ba6a113 (diff)
Add latest changes from gitlab-org/gitlab@14-1-stable-eev14.1.0-rc42
Diffstat (limited to 'app/graphql/resolvers')
-rw-r--r--app/graphql/resolvers/alert_management/alert_resolver.rb2
-rw-r--r--app/graphql/resolvers/alert_management/integrations_resolver.rb4
-rw-r--r--app/graphql/resolvers/board_list_issues_resolver.rb2
-rw-r--r--app/graphql/resolvers/ci/config_resolver.rb8
-rw-r--r--app/graphql/resolvers/ci/job_token_scope_resolver.rb21
-rw-r--r--app/graphql/resolvers/ci/runners_resolver.rb16
-rw-r--r--app/graphql/resolvers/ci/template_resolver.rb2
-rw-r--r--app/graphql/resolvers/concerns/issue_resolver_arguments.rb2
-rw-r--r--app/graphql/resolvers/issues_resolver.rb1
-rw-r--r--app/graphql/resolvers/milestones_resolver.rb20
-rw-r--r--app/graphql/resolvers/projects/jira_projects_resolver.rb6
11 files changed, 67 insertions, 17 deletions
diff --git a/app/graphql/resolvers/alert_management/alert_resolver.rb b/app/graphql/resolvers/alert_management/alert_resolver.rb
index 008641ed88a..62744e719da 100644
--- a/app/graphql/resolvers/alert_management/alert_resolver.rb
+++ b/app/graphql/resolvers/alert_management/alert_resolver.rb
@@ -12,7 +12,7 @@ module Resolvers
argument :statuses, [Types::AlertManagement::StatusEnum],
as: :status,
required: false,
- description: 'Alerts with the specified statues. For example, [TRIGGERED].'
+ description: 'Alerts with the specified statues. For example, `[TRIGGERED]`.'
argument :sort, Types::AlertManagement::AlertSortEnum,
description: 'Sort alerts by this criteria.',
diff --git a/app/graphql/resolvers/alert_management/integrations_resolver.rb b/app/graphql/resolvers/alert_management/integrations_resolver.rb
index cb7e73c2d1a..a97650e95d9 100644
--- a/app/graphql/resolvers/alert_management/integrations_resolver.rb
+++ b/app/graphql/resolvers/alert_management/integrations_resolver.rb
@@ -34,7 +34,7 @@ module Resolvers
def prometheus_integrations
return [] unless prometheus_integrations_allowed?
- Array(project.prometheus_service)
+ Array(project.prometheus_integration)
end
def http_integrations
@@ -54,7 +54,7 @@ module Resolvers
def expected_integration_types
[].tap do |types|
types << ::AlertManagement::HttpIntegration if http_integrations_allowed?
- types << ::PrometheusService if prometheus_integrations_allowed?
+ types << ::Integrations::Prometheus if prometheus_integrations_allowed?
end
end
end
diff --git a/app/graphql/resolvers/board_list_issues_resolver.rb b/app/graphql/resolvers/board_list_issues_resolver.rb
index dac93b91469..25fb35ec74b 100644
--- a/app/graphql/resolvers/board_list_issues_resolver.rb
+++ b/app/graphql/resolvers/board_list_issues_resolver.rb
@@ -16,7 +16,7 @@ module Resolvers
filter_params = item_filters(args[:filters]).merge(board_id: list.board.id, id: list.id)
service = ::Boards::Issues::ListService.new(list.board.resource_parent, context[:current_user], filter_params)
- offset_pagination(service.execute)
+ service.execute
end
# https://gitlab.com/gitlab-org/gitlab/-/issues/235681
diff --git a/app/graphql/resolvers/ci/config_resolver.rb b/app/graphql/resolvers/ci/config_resolver.rb
index 252c9d3acf0..f2e33251b9c 100644
--- a/app/graphql/resolvers/ci/config_resolver.rb
+++ b/app/graphql/resolvers/ci/config_resolver.rb
@@ -18,6 +18,10 @@ module Resolvers
required: true,
description: 'The project of the CI config.'
+ argument :sha, GraphQL::STRING_TYPE,
+ required: false,
+ description: "Sha for the pipeline."
+
argument :content, GraphQL::STRING_TYPE,
required: true,
description: "Contents of `.gitlab-ci.yml`."
@@ -26,11 +30,11 @@ module Resolvers
required: false,
description: 'Run pipeline creation simulation, or only do static check.'
- def resolve(project_path:, content:, dry_run: false)
+ def resolve(project_path:, content:, sha: nil, dry_run: false)
project = authorized_find!(project_path: project_path)
result = ::Gitlab::Ci::Lint
- .new(project: project, current_user: context[:current_user])
+ .new(project: project, current_user: context[:current_user], sha: sha)
.validate(content, dry_run: dry_run)
response(result).merge(merged_yaml: result.merged_yaml)
diff --git a/app/graphql/resolvers/ci/job_token_scope_resolver.rb b/app/graphql/resolvers/ci/job_token_scope_resolver.rb
new file mode 100644
index 00000000000..ca76a7b94fc
--- /dev/null
+++ b/app/graphql/resolvers/ci/job_token_scope_resolver.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+module Resolvers
+ module Ci
+ class JobTokenScopeResolver < BaseResolver
+ include Gitlab::Graphql::Authorize::AuthorizeResource
+
+ authorize :admin_project
+ description 'Container for resources that can be accessed by a CI job token from the current project. Null if job token scope setting is disabled.'
+ type ::Types::Ci::JobTokenScopeType, null: true
+
+ def resolve
+ authorize!(object)
+
+ return unless object.ci_job_token_scope_enabled?
+
+ ::Ci::JobToken::Scope.new(object)
+ end
+ end
+ end
+end
diff --git a/app/graphql/resolvers/ci/runners_resolver.rb b/app/graphql/resolvers/ci/runners_resolver.rb
index 3ad1e2780dd..5074a248e18 100644
--- a/app/graphql/resolvers/ci/runners_resolver.rb
+++ b/app/graphql/resolvers/ci/runners_resolver.rb
@@ -3,6 +3,8 @@
module Resolvers
module Ci
class RunnersResolver < BaseResolver
+ include LooksAhead
+
type Types::Ci::RunnerType.connection_type, null: true
argument :status, ::Types::Ci::RunnerStatusEnum,
@@ -25,10 +27,11 @@ module Resolvers
required: false,
description: 'Sort order of results.'
- def resolve(**args)
- ::Ci::RunnersFinder
- .new(current_user: current_user, params: runners_finder_params(args))
- .execute
+ def resolve_with_lookahead(**args)
+ apply_lookahead(
+ ::Ci::RunnersFinder
+ .new(current_user: current_user, params: runners_finder_params(args))
+ .execute)
end
private
@@ -39,7 +42,10 @@ module Resolvers
type_type: params[:type],
tag_name: params[:tag_list],
search: params[:search],
- sort: params[:sort]&.to_s
+ sort: params[:sort]&.to_s,
+ preload: {
+ tag_name: node_selection&.selects?(:tag_list)
+ }
}.compact
end
end
diff --git a/app/graphql/resolvers/ci/template_resolver.rb b/app/graphql/resolvers/ci/template_resolver.rb
index dd910116544..7f5a1a486d7 100644
--- a/app/graphql/resolvers/ci/template_resolver.rb
+++ b/app/graphql/resolvers/ci/template_resolver.rb
@@ -6,7 +6,7 @@ module Resolvers
type Types::Ci::TemplateType, null: true
argument :name, GraphQL::STRING_TYPE, required: true,
- description: 'Name of the CI/CD template to search for.'
+ description: 'Name of the CI/CD template to search for. Template must be formatted as `Name.gitlab-ci.yml`.'
alias_method :project, :object
diff --git a/app/graphql/resolvers/concerns/issue_resolver_arguments.rb b/app/graphql/resolvers/concerns/issue_resolver_arguments.rb
index aa08d62c6a5..c24f4dedc0e 100644
--- a/app/graphql/resolvers/concerns/issue_resolver_arguments.rb
+++ b/app/graphql/resolvers/concerns/issue_resolver_arguments.rb
@@ -11,7 +11,7 @@ module IssueResolverArguments
description: 'IID of the issue. For example, "1".'
argument :iids, [GraphQL::STRING_TYPE],
required: false,
- description: 'List of IIDs of issues. For example, ["1", "2"].'
+ description: 'List of IIDs of issues. For example, `["1", "2"]`.'
argument :label_name, [GraphQL::STRING_TYPE, null: true],
required: false,
description: 'Labels applied to this issue.'
diff --git a/app/graphql/resolvers/issues_resolver.rb b/app/graphql/resolvers/issues_resolver.rb
index 93e679b2d0c..2017eb7decd 100644
--- a/app/graphql/resolvers/issues_resolver.rb
+++ b/app/graphql/resolvers/issues_resolver.rb
@@ -15,6 +15,7 @@ module Resolvers
type Types::IssueType.connection_type, null: true
NON_STABLE_CURSOR_SORTS = %i[priority_asc priority_desc
+ popularity_asc popularity_desc
label_priority_asc label_priority_desc
milestone_due_asc milestone_due_desc].freeze
diff --git a/app/graphql/resolvers/milestones_resolver.rb b/app/graphql/resolvers/milestones_resolver.rb
index 1241b41501d..4fa4c939a23 100644
--- a/app/graphql/resolvers/milestones_resolver.rb
+++ b/app/graphql/resolvers/milestones_resolver.rb
@@ -25,14 +25,27 @@ module Resolvers
required: false,
description: 'A date that the milestone contains.'
+ argument :sort, Types::MilestoneSortEnum,
+ description: 'Sort milestones by this criteria.',
+ required: false,
+ default_value: :due_date_asc
+
type Types::MilestoneType.connection_type, null: true
+ NON_STABLE_CURSOR_SORTS = %i[expired_last_due_date_asc expired_last_due_date_desc].freeze
+
def resolve(**args)
validate_timeframe_params!(args)
authorize!
- MilestonesFinder.new(milestones_finder_params(args)).execute
+ milestones = MilestonesFinder.new(milestones_finder_params(args)).execute
+
+ if non_stable_cursor_sort?(args[:sort])
+ offset_pagination(milestones)
+ else
+ milestones
+ end
end
private
@@ -43,6 +56,7 @@ module Resolvers
state: args[:state] || 'all',
title: args[:title],
search_title: args[:search_title],
+ sort: args[:sort],
containing_date: args[:containing_date]
}.merge!(transform_timeframe_parameters(args)).merge!(parent_id_parameters(args))
end
@@ -64,5 +78,9 @@ module Resolvers
def parse_gids(gids)
gids&.map { |gid| GitlabSchema.parse_gid(gid, expected_type: Milestone).model_id }
end
+
+ def non_stable_cursor_sort?(sort)
+ NON_STABLE_CURSOR_SORTS.include?(sort)
+ end
end
end
diff --git a/app/graphql/resolvers/projects/jira_projects_resolver.rb b/app/graphql/resolvers/projects/jira_projects_resolver.rb
index de85e8c42e6..864acb6d759 100644
--- a/app/graphql/resolvers/projects/jira_projects_resolver.rb
+++ b/app/graphql/resolvers/projects/jira_projects_resolver.rb
@@ -34,16 +34,16 @@ module Resolvers
private
- alias_method :jira_service, :object
+ alias_method :jira_integration, :object
def project
- jira_service&.project
+ jira_integration&.project
end
def jira_projects(name:)
args = { query: name }.compact
- Jira::Requests::Projects::ListService.new(project.jira_service, args).execute
+ Jira::Requests::Projects::ListService.new(project.jira_integration, args).execute
end
end
end