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/mutations')
-rw-r--r--app/graphql/mutations/alert_management/prometheus_integration/create.rb2
-rw-r--r--app/graphql/mutations/ci/job_token_scope/add_project.rb5
-rw-r--r--app/graphql/mutations/ci/pipeline_schedule/create.rb30
-rw-r--r--app/graphql/mutations/ci/pipeline_schedule/update.rb14
-rw-r--r--app/graphql/mutations/ci/pipeline_schedule/variable_input_type.rb7
-rw-r--r--app/graphql/mutations/ci/project_ci_cd_settings_update.rb2
-rw-r--r--app/graphql/mutations/ci/runner/create.rb24
-rw-r--r--app/graphql/mutations/environments/create.rb5
-rw-r--r--app/graphql/mutations/environments/update.rb5
9 files changed, 56 insertions, 38 deletions
diff --git a/app/graphql/mutations/alert_management/prometheus_integration/create.rb b/app/graphql/mutations/alert_management/prometheus_integration/create.rb
index 9c3aefce033..b06a4f58df5 100644
--- a/app/graphql/mutations/alert_management/prometheus_integration/create.rb
+++ b/app/graphql/mutations/alert_management/prometheus_integration/create.rb
@@ -17,7 +17,7 @@ module Mutations
description: 'Whether the integration is receiving alerts.'
argument :api_url, GraphQL::Types::String,
- required: true,
+ required: false,
description: 'Endpoint at which Prometheus can be queried.'
def resolve(args)
diff --git a/app/graphql/mutations/ci/job_token_scope/add_project.rb b/app/graphql/mutations/ci/job_token_scope/add_project.rb
index 6071d6750c2..0358bb11c58 100644
--- a/app/graphql/mutations/ci/job_token_scope/add_project.rb
+++ b/app/graphql/mutations/ci/job_token_scope/add_project.rb
@@ -35,14 +35,13 @@ module Mutations
def resolve(project_path:, target_project_path:, direction: nil)
project = authorized_find!(project_path)
target_project = Project.find_by_full_path(target_project_path)
- frozen_outbound = project.frozen_outbound_job_token_scopes?
- if direction == :outbound && frozen_outbound
+ if direction == :outbound
raise Gitlab::Graphql::Errors::ArgumentError, 'direction: OUTBOUND scope entries can only be removed. ' \
'Only INBOUND scope can be expanded.'
end
- direction ||= frozen_outbound ? :inbound : :outbound
+ direction ||= :inbound
result = ::Ci::JobTokenScope::AddProjectService
.new(project, current_user)
diff --git a/app/graphql/mutations/ci/pipeline_schedule/create.rb b/app/graphql/mutations/ci/pipeline_schedule/create.rb
index 65b355cd80f..71a366ed342 100644
--- a/app/graphql/mutations/ci/pipeline_schedule/create.rb
+++ b/app/graphql/mutations/ci/pipeline_schedule/create.rb
@@ -51,14 +51,28 @@ module Mutations
params = pipeline_schedule_attrs.merge(variables_attributes: variables.map(&:to_h))
- schedule = ::Ci::CreatePipelineScheduleService
- .new(project, current_user, params)
- .execute
-
- unless schedule.persisted?
- return {
- pipeline_schedule: nil, errors: schedule.errors.full_messages
- }
+ if ::Feature.enabled?(:ci_refactoring_pipeline_schedule_create_service, project)
+ response = ::Ci::PipelineSchedules::CreateService
+ .new(project, current_user, params)
+ .execute
+
+ schedule = response.payload
+
+ unless response.success?
+ return {
+ pipeline_schedule: nil, errors: response.errors
+ }
+ end
+ else
+ schedule = ::Ci::CreatePipelineScheduleService
+ .new(project, current_user, params)
+ .execute
+
+ unless schedule.persisted?
+ return {
+ pipeline_schedule: nil, errors: schedule.errors.full_messages
+ }
+ end
end
{
diff --git a/app/graphql/mutations/ci/pipeline_schedule/update.rb b/app/graphql/mutations/ci/pipeline_schedule/update.rb
index a0b5e793ecb..aff0a5494e7 100644
--- a/app/graphql/mutations/ci/pipeline_schedule/update.rb
+++ b/app/graphql/mutations/ci/pipeline_schedule/update.rb
@@ -43,7 +43,7 @@ module Mutations
def resolve(id:, variables: [], **pipeline_schedule_attrs)
schedule = authorized_find!(id: id)
- params = pipeline_schedule_attrs.merge(variables_attributes: variables.map(&:to_h))
+ params = pipeline_schedule_attrs.merge(variables_attributes: variable_attributes_for(variables))
service_response = ::Ci::PipelineSchedules::UpdateService
.new(schedule, current_user, params)
@@ -54,6 +54,18 @@ module Mutations
errors: service_response.errors
}
end
+
+ private
+
+ def variable_attributes_for(variables)
+ variables.map do |variable|
+ variable.to_h.tap do |hash|
+ hash[:id] = GlobalID::Locator.locate(hash[:id]).id if hash[:id]
+
+ hash[:_destroy] = hash.delete(:destroy)
+ end
+ end
+ end
end
end
end
diff --git a/app/graphql/mutations/ci/pipeline_schedule/variable_input_type.rb b/app/graphql/mutations/ci/pipeline_schedule/variable_input_type.rb
index 54a6ad92448..eb6a78eb67a 100644
--- a/app/graphql/mutations/ci/pipeline_schedule/variable_input_type.rb
+++ b/app/graphql/mutations/ci/pipeline_schedule/variable_input_type.rb
@@ -8,11 +8,18 @@ module Mutations
description 'Attributes for the pipeline schedule variable.'
+ PipelineScheduleVariableID = ::Types::GlobalIDType[::Ci::PipelineScheduleVariable]
+
+ argument :id, PipelineScheduleVariableID, required: false, description: 'ID of the variable to mutate.'
+
argument :key, GraphQL::Types::String, required: true, description: 'Name of the variable.'
argument :value, GraphQL::Types::String, required: true, description: 'Value of the variable.'
argument :variable_type, Types::Ci::VariableTypeEnum, required: true, description: 'Type of the variable.'
+
+ argument :destroy, GraphQL::Types::Boolean, required: false,
+ description: 'Boolean option to destroy the variable.'
end
end
end
diff --git a/app/graphql/mutations/ci/project_ci_cd_settings_update.rb b/app/graphql/mutations/ci/project_ci_cd_settings_update.rb
index d4e55fd1792..082c345adf6 100644
--- a/app/graphql/mutations/ci/project_ci_cd_settings_update.rb
+++ b/app/graphql/mutations/ci/project_ci_cd_settings_update.rb
@@ -39,7 +39,7 @@ module Mutations
def resolve(full_path:, **args)
project = authorized_find!(full_path)
- if args[:job_token_scope_enabled] && project.frozen_outbound_job_token_scopes?
+ if args[:job_token_scope_enabled]
raise Gitlab::Graphql::Errors::ArgumentError, 'job_token_scope_enabled can only be set to false'
end
diff --git a/app/graphql/mutations/ci/runner/create.rb b/app/graphql/mutations/ci/runner/create.rb
index 7eca6c27d10..4d4134781a5 100644
--- a/app/graphql/mutations/ci/runner/create.rb
+++ b/app/graphql/mutations/ci/runner/create.rb
@@ -37,8 +37,6 @@ module Mutations
parse_gid(**args)
- check_feature_flag(**args)
-
super
end
@@ -79,28 +77,6 @@ module Mutations
GitlabSchema.parse_gid(args[:project_id], expected_type: ::Project)
end
end
-
- def check_feature_flag(**args)
- case args[:runner_type]
- when 'instance_type'
- if Feature.disabled?(:create_runner_workflow_for_admin, current_user)
- raise Gitlab::Graphql::Errors::ResourceNotAvailable,
- '`create_runner_workflow_for_admin` feature flag is disabled.'
- end
- when 'group_type'
- namespace = find_object(**args).sync
- if Feature.disabled?(:create_runner_workflow_for_namespace, namespace)
- raise Gitlab::Graphql::Errors::ResourceNotAvailable,
- '`create_runner_workflow_for_namespace` feature flag is disabled.'
- end
- when 'project_type'
- project = find_object(**args).sync
- if project && Feature.disabled?(:create_runner_workflow_for_namespace, project.namespace)
- raise Gitlab::Graphql::Errors::ResourceNotAvailable,
- '`create_runner_workflow_for_namespace` feature flag is disabled.'
- end
- end
- end
end
end
end
diff --git a/app/graphql/mutations/environments/create.rb b/app/graphql/mutations/environments/create.rb
index 271585eb06c..f18ce0eba97 100644
--- a/app/graphql/mutations/environments/create.rb
+++ b/app/graphql/mutations/environments/create.rb
@@ -35,6 +35,11 @@ module Mutations
required: false,
description: 'Cluster agent of the environment.'
+ argument :kubernetes_namespace,
+ GraphQL::Types::String,
+ required: false,
+ description: 'Kubernetes namespace of the environment.'
+
field :environment,
Types::EnvironmentType,
null: true,
diff --git a/app/graphql/mutations/environments/update.rb b/app/graphql/mutations/environments/update.rb
index 431a7add00e..07ab22685cc 100644
--- a/app/graphql/mutations/environments/update.rb
+++ b/app/graphql/mutations/environments/update.rb
@@ -28,6 +28,11 @@ module Mutations
required: false,
description: 'Cluster agent of the environment.'
+ argument :kubernetes_namespace,
+ GraphQL::Types::String,
+ required: false,
+ description: 'Kubernetes namespace of the environment.'
+
field :environment,
Types::EnvironmentType,
null: true,