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/graphql/resolvers/ci')
-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
4 files changed, 39 insertions, 8 deletions
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