summaryrefslogtreecommitdiff
path: root/lib/api/variables.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api/variables.rb')
-rw-r--r--lib/api/variables.rb124
1 files changed, 0 insertions, 124 deletions
diff --git a/lib/api/variables.rb b/lib/api/variables.rb
deleted file mode 100644
index 75df0e050a6..00000000000
--- a/lib/api/variables.rb
+++ /dev/null
@@ -1,124 +0,0 @@
-# frozen_string_literal: true
-
-module API
- class Variables < ::API::Base
- include PaginationParams
-
- before { authenticate! }
- before { authorize! :admin_build, user_project }
-
- feature_category :pipeline_authoring
-
- helpers Helpers::VariablesHelpers
-
- params do
- requires :id, type: String, desc: 'The ID of a project'
- end
-
- resource :projects, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
- desc 'Get project variables' do
- success Entities::Ci::Variable
- end
- params do
- use :pagination
- end
- get ':id/variables' do
- variables = user_project.variables
- present paginate(variables), with: Entities::Ci::Variable
- end
-
- desc 'Get a specific variable from a project' do
- success Entities::Ci::Variable
- end
- params do
- requires :key, type: String, desc: 'The key of the variable'
- end
- # rubocop: disable CodeReuse/ActiveRecord
- get ':id/variables/:key' do
- variable = find_variable(user_project, params)
- not_found!('Variable') unless variable
-
- present variable, with: Entities::Ci::Variable
- end
- # rubocop: enable CodeReuse/ActiveRecord
-
- desc 'Create a new variable in a project' do
- success Entities::Ci::Variable
- end
- params do
- requires :key, type: String, desc: 'The key of the variable'
- requires :value, type: String, desc: 'The value of the variable'
- optional :protected, type: Boolean, desc: 'Whether the variable is protected'
- optional :masked, type: Boolean, desc: 'Whether the variable is masked'
- optional :variable_type, type: String, values: ::Ci::Variable.variable_types.keys, desc: 'The type of variable, must be one of env_var or file. Defaults to env_var'
- optional :environment_scope, type: String, desc: 'The environment_scope of the variable'
- end
- post ':id/variables' do
- variable = ::Ci::ChangeVariableService.new(
- container: user_project,
- current_user: current_user,
- params: { action: :create, variable_params: declared_params(include_missing: false) }
- ).execute
-
- if variable.valid?
- present variable, with: Entities::Ci::Variable
- else
- render_validation_error!(variable)
- end
- end
-
- desc 'Update an existing variable from a project' do
- success Entities::Ci::Variable
- end
- params do
- optional :key, type: String, desc: 'The key of the variable'
- optional :value, type: String, desc: 'The value of the variable'
- optional :protected, type: Boolean, desc: 'Whether the variable is protected'
- optional :masked, type: Boolean, desc: 'Whether the variable is masked'
- optional :variable_type, type: String, values: ::Ci::Variable.variable_types.keys, desc: 'The type of variable, must be one of env_var or file'
- optional :environment_scope, type: String, desc: 'The environment_scope of the variable'
- optional :filter, type: Hash, desc: 'Available filters: [environment_scope]. Example: filter[environment_scope]=production'
- end
- # rubocop: disable CodeReuse/ActiveRecord
- put ':id/variables/:key' do
- variable = find_variable(user_project, params)
- not_found!('Variable') unless variable
-
- variable = ::Ci::ChangeVariableService.new(
- container: user_project,
- current_user: current_user,
- params: { action: :update, variable: variable, variable_params: declared_params(include_missing: false).except(:key, :filter) }
- ).execute
-
- if variable.valid?
- present variable, with: Entities::Ci::Variable
- else
- render_validation_error!(variable)
- end
- end
- # rubocop: enable CodeReuse/ActiveRecord
-
- desc 'Delete an existing variable from a project' do
- success Entities::Ci::Variable
- end
- params do
- requires :key, type: String, desc: 'The key of the variable'
- optional :filter, type: Hash, desc: 'Available filters: [environment_scope]. Example: filter[environment_scope]=production'
- end
- # rubocop: disable CodeReuse/ActiveRecord
- delete ':id/variables/:key' do
- variable = find_variable(user_project, params)
- not_found!('Variable') unless variable
-
- ::Ci::ChangeVariableService.new(
- container: user_project,
- current_user: current_user,
- params: { action: :destroy, variable: variable }
- ).execute
-
- no_content!
- end
- # rubocop: enable CodeReuse/ActiveRecord
- end
- end
-end