diff --git a/.rubocop.yml b/.rubocop.yml index 14983e36b4c..d829fbfc06c 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -595,6 +595,21 @@ Gitlab/BoundedContexts: - 'lib/**/*' - 'ee/lib/**/*' +Gitlab/HardDeleteCalls: + Enabled: true + Exclude: + - 'spec/**/*' + - 'ee/spec/**/*' + - 'ee/db/fixtures/**/*' + - 'lib/tasks/**/*.rake' + - 'ee/lib/tasks/**/*.rake' + - 'app/services/groups/destroy_service.rb' + - 'app/services/projects/destroy_service.rb' + - 'app/workers/group_destroy_worker.rb' + - 'app/workers/project_destroy_worker.rb' + - 'ee/app/services/namespaces/groups/adjourned_deletion_service.rb' + - 'ee/app/services/projects/adjourned_deletion_service.rb' + Gitlab/PolicyRuleBoolean: Enabled: true Include: diff --git a/.rubocop_todo/gitlab/hard_delete_calls.yml b/.rubocop_todo/gitlab/hard_delete_calls.yml new file mode 100644 index 00000000000..17abb4aeb08 --- /dev/null +++ b/.rubocop_todo/gitlab/hard_delete_calls.yml @@ -0,0 +1,18 @@ +--- +Gitlab/HardDeleteCalls: + Details: grace period + Exclude: + - 'app/controllers/admin/groups_controller.rb' + - 'app/controllers/admin/projects_controller.rb' + - 'app/controllers/groups_controller.rb' + - 'app/controllers/organizations/groups_controller.rb' + - 'app/controllers/projects_controller.rb' + - 'app/services/groups/mark_for_deletion_service.rb' + - 'app/services/projects/mark_for_deletion_service.rb' + - 'app/services/projects/overwrite_project_service.rb' + - 'app/services/users/destroy_service.rb' + - 'app/workers/anti_abuse/banned_user_project_deletion_worker.rb' + - 'app/workers/projects/inactive_projects_deletion_cron_worker.rb' + - 'lib/api/groups.rb' + - 'lib/api/projects.rb' + - 'lib/gitlab/background_migration/delete_orphaned_groups.rb' diff --git a/.rubocop_todo/gitlab/rails/attr_encrypted.yml b/.rubocop_todo/gitlab/rails/attr_encrypted.yml index 1c742e356b0..c536f132dbe 100644 --- a/.rubocop_todo/gitlab/rails/attr_encrypted.yml +++ b/.rubocop_todo/gitlab/rails/attr_encrypted.yml @@ -53,7 +53,6 @@ Gitlab/Rails/AttrEncrypted: - 'ee/app/models/dependency_proxy/packages/setting.rb' - 'ee/app/models/geo_node.rb' - 'ee/app/models/merge_requests/external_status_check.rb' - - 'ee/app/models/remote_development/workspace_variable.rb' - 'ee/app/models/status_page/project_setting.rb' - 'ee/app/models/system_access/group_microsoft_application.rb' - 'ee/app/models/system_access/group_microsoft_graph_access_token.rb' diff --git a/.rubocop_todo/gitlab/service_response.yml b/.rubocop_todo/gitlab/service_response.yml index e3662cb7d48..d43f0e0b535 100644 --- a/.rubocop_todo/gitlab/service_response.yml +++ b/.rubocop_todo/gitlab/service_response.yml @@ -27,7 +27,6 @@ Gitlab/ServiceResponse: - 'app/services/packages/debian/create_distribution_service.rb' - 'app/services/packages/mark_package_for_destruction_service.rb' - 'app/services/packages/rubygems/dependency_resolver_service.rb' - - 'app/services/snippets/base_service.rb' - 'app/services/timelogs/base_service.rb' - 'app/services/work_items/create_and_link_service.rb' - 'app/services/work_items/create_from_task_service.rb' diff --git a/Gemfile b/Gemfile index 45661ce48a9..f0b7b43e80e 100644 --- a/Gemfile +++ b/Gemfile @@ -522,7 +522,7 @@ group :development, :test do gem 'spring-commands-rspec', '~> 1.0.4', feature_category: :shared gem 'gitlab-styles', '~> 13.1.0', feature_category: :tooling, require: false - gem 'haml_lint', '~> 0.58', feature_category: :tooling + gem 'haml_lint', '~> 0.58', feature_category: :tooling, require: false # Benchmarking & profiling gem 'benchmark-ips', '~> 2.14.0', require: false, feature_category: :shared diff --git a/app/assets/javascripts/ci/common/pipeline_inputs/inputs_table_skeleton_loader.vue b/app/assets/javascripts/ci/common/pipeline_inputs/inputs_table_skeleton_loader.vue index a71651c2b72..e0f146cd1d0 100644 --- a/app/assets/javascripts/ci/common/pipeline_inputs/inputs_table_skeleton_loader.vue +++ b/app/assets/javascripts/ci/common/pipeline_inputs/inputs_table_skeleton_loader.vue @@ -1,5 +1,6 @@ diff --git a/app/assets/javascripts/ci/common/pipeline_inputs/pipeline_inputs_form.vue b/app/assets/javascripts/ci/common/pipeline_inputs/pipeline_inputs_form.vue index ed058d5ffad..f1e20939ab4 100644 --- a/app/assets/javascripts/ci/common/pipeline_inputs/pipeline_inputs_form.vue +++ b/app/assets/javascripts/ci/common/pipeline_inputs/pipeline_inputs_form.vue @@ -20,6 +20,11 @@ export default { type: String, required: true, }, + savedInputs: { + type: Array, + required: false, + default: () => [], + }, }, emits: ['update-inputs'], data() { @@ -36,8 +41,20 @@ export default { ref: this.queryRef, }; }, + skip() { + return !this.projectPath; + }, update({ project }) { - return project?.ciPipelineCreationInputs || []; + const queryInputs = project?.ciPipelineCreationInputs || []; + const savedInputsMap = Object.fromEntries( + this.savedInputs.map(({ name, value }) => [name, value]), + ); + + // if there are any saved inputs, overwrite the values + return queryInputs.map((input) => ({ + ...input, + default: savedInputsMap[input.name] ?? input.default, + })); }, error(error) { createAlert({ @@ -83,7 +100,7 @@ export default { diff --git a/app/assets/javascripts/ci/common/pipeline_inputs/pipeline_inputs_table.vue b/app/assets/javascripts/ci/common/pipeline_inputs/pipeline_inputs_table.vue index c3bd6654dc7..19f18cdf1d9 100644 --- a/app/assets/javascripts/ci/common/pipeline_inputs/pipeline_inputs_table.vue +++ b/app/assets/javascripts/ci/common/pipeline_inputs/pipeline_inputs_table.vue @@ -52,9 +52,8 @@ export default {