diff --git a/.gitlab/ci/database.gitlab-ci.yml b/.gitlab/ci/database.gitlab-ci.yml index 37befd78bb5..082d44633f8 100644 --- a/.gitlab/ci/database.gitlab-ci.yml +++ b/.gitlab/ci/database.gitlab-ci.yml @@ -72,7 +72,7 @@ db:check-schema-single-db: db:check-migrations: extends: - .db-job-base - - .use-pg13 # Should match the db same version used by GDK + - .use-pg14 # Should match the db same version used by GDK - .rails:rules:ee-and-foss-mr-with-migration script: - git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME --depth 20 diff --git a/.rubocop_todo/style/percent_literal_delimiters.yml b/.rubocop_todo/style/percent_literal_delimiters.yml index 172e42de70f..ab096ed9a5a 100644 --- a/.rubocop_todo/style/percent_literal_delimiters.yml +++ b/.rubocop_todo/style/percent_literal_delimiters.yml @@ -2,99 +2,7 @@ # Cop supports --autocorrect. Style/PercentLiteralDelimiters: Exclude: - - 'ee/spec/mailers/ci_minutes_usage_mailer_spec.rb' - - 'ee/spec/mailers/credentials_inventory_mailer_spec.rb' - - 'ee/spec/mailers/ee/emails/profile_spec.rb' - - 'ee/spec/mailers/emails/namespace_storage_usage_mailer_spec.rb' - - 'ee/spec/mailers/license_mailer_spec.rb' - - 'ee/spec/mailers/notify_spec.rb' - - 'ee/spec/models/approval_project_rule_spec.rb' - - 'ee/spec/models/ci/build_spec.rb' - - 'ee/spec/models/ci/pipeline_spec.rb' - - 'ee/spec/models/concerns/ee/issuable_spec.rb' - - 'ee/spec/models/concerns/ee/project_security_scanners_information_spec.rb' - - 'ee/spec/models/ee/ci/job_artifact_spec.rb' - - 'ee/spec/models/ee/ci/runner_spec.rb' - - 'ee/spec/models/ee/groups/feature_setting_spec.rb' - - 'ee/spec/models/ee/integrations/jira_spec.rb' - - 'ee/spec/models/ee/personal_access_token_spec.rb' - - 'ee/spec/models/instance_security_dashboard_spec.rb' - - 'ee/spec/models/issue_spec.rb' - - 'ee/spec/models/project_feature_spec.rb' - - 'ee/spec/models/protected_environment_spec.rb' - - 'ee/spec/models/push_rule_spec.rb' - - 'ee/spec/models/repository_spec.rb' - - 'ee/spec/models/saml_provider_spec.rb' - - 'ee/spec/models/security/scan_spec.rb' - - 'ee/spec/models/vulnerabilities/historical_statistic_spec.rb' - - 'ee/spec/models/vulnerabilities/stat_diff_spec.rb' - - 'ee/spec/models/vulnerabilities/statistic_spec.rb' - - 'ee/spec/policies/group_policy_spec.rb' - - 'ee/spec/policies/project_policy_spec.rb' - - 'ee/spec/presenters/merge_request_approver_presenter_spec.rb' - - 'ee/spec/requests/admin/user_permission_exports_controller_spec.rb' - - 'ee/spec/requests/api/dependencies_spec.rb' - - 'ee/spec/requests/api/epics_spec.rb' - - 'ee/spec/requests/api/geo_spec.rb' - - 'ee/spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb' - - 'ee/spec/requests/api/graphql/project/alert_management/http_integrations_spec.rb' - - 'ee/spec/requests/api/internal/base_spec.rb' - - 'ee/spec/requests/api/issues_spec.rb' - - 'ee/spec/requests/api/merge_requests_spec.rb' - - 'ee/spec/requests/api/wikis_spec.rb' - - 'ee/spec/requests/lfs_locks_api_spec.rb' - - 'ee/spec/serializers/merge_request_widget_entity_spec.rb' - - 'ee/spec/services/admin/email_service_spec.rb' - - 'ee/spec/services/base_count_service_spec.rb' - - 'ee/spec/services/ci/compare_security_reports_service_spec.rb' - - 'ee/spec/services/ci/sync_reports_to_approval_rules_service_spec.rb' - - 'ee/spec/services/ee/auth/container_registry_authentication_service_spec.rb' - - 'ee/spec/services/ee/groups/autocomplete_service_spec.rb' - - 'ee/spec/services/ee/members/create_service_spec.rb' - - 'ee/spec/services/ee/protected_branches/create_service_spec.rb' - - 'ee/spec/services/ee/users/update_service_spec.rb' - - 'ee/spec/services/elastic/data_migration_service_spec.rb' - - 'ee/spec/services/geo/cache_invalidation_event_store_spec.rb' - - 'ee/spec/services/jira/jql_builder_service_spec.rb' - - 'ee/spec/services/personal_access_tokens/rotation_verifier_service_spec.rb' - - 'ee/spec/services/protected_environments/search_service_spec.rb' - - 'ee/spec/services/security/dependency_list_service_spec.rb' - - 'ee/spec/services/security/token_revocation_service_spec.rb' - - 'ee/spec/services/system_notes/vulnerabilities_service_spec.rb' - - 'ee/spec/support/helpers/ee/login_helpers.rb' - - 'ee/spec/support/license_scanning_reports/license_scanning_report_helper.rb' - - 'ee/spec/support/prometheus/additional_metrics_shared_examples.rb' - - 'ee/spec/support/protected_tags/access_control_shared_examples.rb' - - 'ee/spec/support/shared_examples/finders/geo/file_registry_finder_shared_examples.rb' - - 'ee/spec/support/shared_examples/finders/geo/registry_finder_shared_examples.rb' - - 'ee/spec/support/shared_examples/lib/gitlab/git_access_shared_examples.rb' - - 'ee/spec/support/shared_examples/requests/api/graphql/incident_management/escalation_policies_shared_examples.rb' - - 'ee/spec/validators/json_schema_validator_spec.rb' - - 'ee/spec/views/operations/index.html.haml_spec.rb' - - 'ee/spec/views/shared/credentials_inventory/personal_access_tokens/_personal_access_token.html.haml_spec.rb' - - 'ee/spec/workers/ee/issuable_export_csv_worker_spec.rb' - - 'ee/spec/workers/project_cache_worker_spec.rb' - - 'ee/spec/workers/repository_import_worker_spec.rb' - 'metrics_server/metrics_server.rb' - - 'qa/qa/ee/page/dashboard/projects.rb' - - 'qa/qa/ee/page/group/settings/general.rb' - - 'qa/qa/ee/page/project/issue/show.rb' - - 'qa/qa/ee/page/project/job/show.rb' - - 'qa/qa/ee/page/project/packages/index.rb' - - 'qa/qa/ee/page/project/show.rb' - - 'qa/qa/ee/page/project/snippet/index.rb' - - 'qa/qa/ee/page/project/wiki/show.rb' - - 'qa/qa/resource/events/project.rb' - - 'qa/qa/resource/personal_access_token_cache.rb' - - 'qa/qa/resource/visibility.rb' - - 'qa/qa/service/cluster_provider/gcloud.rb' - - 'qa/qa/service/praefect_manager.rb' - - 'qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb' - - 'qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb' - - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb' - - 'qa/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb' - - 'qa/spec/git/repository_spec.rb' - - 'qa/spec/page/view_spec.rb' - 'spec/benchmarks/banzai_benchmark.rb' - 'spec/commands/sidekiq_cluster/cli_spec.rb' - 'spec/components/pajamas/component_spec.rb' diff --git a/qa/qa/resource/events/project.rb b/qa/qa/resource/events/project.rb index 693fdd6168f..4b265bab558 100644 --- a/qa/qa/resource/events/project.rb +++ b/qa/qa/resource/events/project.rb @@ -7,21 +7,21 @@ module QA include Events::Base def push_events(commit_message) - QA::Runtime::Logger.info(%[#{self.class.name} - wait for and fetch push events"]) + QA::Runtime::Logger.info(%(#{self.class.name} - wait for and fetch push events")) fetch_events do events(action: 'pushed').select { |event| event.dig(:push_data, :commit_title) == commit_message } end end def wait_for_merge(title) - QA::Runtime::Logger.info(%[#{self.class.name} - wait_for_merge with title "#{title}"]) + QA::Runtime::Logger.info(%(#{self.class.name} - wait_for_merge with title "#{title}")) wait_for_event do events(action: 'accepted', target_type: 'merge_request').any? { |event| event[:target_title] == title } end end def wait_for_push(commit_message) - QA::Runtime::Logger.info(%[#{self.class.name} - wait_for_push with commit message "#{commit_message}"]) + QA::Runtime::Logger.info(%(#{self.class.name} - wait_for_push with commit message "#{commit_message}")) wait_for_event do events(action: 'pushed').any? { |event| event.dig(:push_data, :commit_title) == commit_message } end @@ -32,7 +32,7 @@ module QA end def wait_for_push_new_branch(branch_name = self.default_branch) - QA::Runtime::Logger.info(%[#{self.class.name} - wait_for_push_new_branch with branch_name "#{branch_name}"]) + QA::Runtime::Logger.info(%(#{self.class.name} - wait_for_push_new_branch with branch_name "#{branch_name}")) wait_for_event do events(action: 'pushed').any? { |event| event.dig(:push_data, :ref) == branch_name } end diff --git a/qa/qa/resource/personal_access_token_cache.rb b/qa/qa/resource/personal_access_token_cache.rb index 078df8e6779..08f2443eff6 100644 --- a/qa/qa/resource/personal_access_token_cache.rb +++ b/qa/qa/resource/personal_access_token_cache.rb @@ -9,9 +9,9 @@ module QA token = @personal_access_tokens[username] log_message = if token - %[Retrieved cached token for username: #{username}, last six chars of token:#{token[-6..]}] + %(Retrieved cached token for username: #{username}, last six chars of token:#{token[-6..]}) else - %[No cached token found for username: #{username}] + %(No cached token found for username: #{username}) end QA::Runtime::Logger.info(log_message) @@ -20,7 +20,7 @@ module QA end def self.set_token_for_username(username, token) - QA::Runtime::Logger.info(%[Caching token for username: #{username}, last six chars of token:#{token[-6..]}]) + QA::Runtime::Logger.info(%(Caching token for username: #{username}, last six chars of token:#{token[-6..]})) @personal_access_tokens[username] = token end end diff --git a/qa/qa/resource/visibility.rb b/qa/qa/resource/visibility.rb index b31bd3fca49..f75fcac2975 100644 --- a/qa/qa/resource/visibility.rb +++ b/qa/qa/resource/visibility.rb @@ -8,7 +8,7 @@ module QA end class VisibilityLevel - %i(public internal private).each do |level| + %i[public internal private].each do |level| const_set(level.upcase, level) end end diff --git a/qa/qa/service/cluster_provider/gcloud.rb b/qa/qa/service/cluster_provider/gcloud.rb index 7993cf4ab4d..3ee851753f9 100644 --- a/qa/qa/service/cluster_provider/gcloud.rb +++ b/qa/qa/service/cluster_provider/gcloud.rb @@ -13,7 +13,7 @@ module QA def initialize(rbac:) super(rbac: rbac) @attempts = 0 - @available_regions = %w( + @available_regions = %w[ asia-east1 asia-east2 asia-northeast1 asia-south1 asia-southeast1 australia-southeast1 @@ -21,7 +21,7 @@ module QA northamerica-northeast1 southamerica-east1 us-central1 us-east1 us-east4 us-west1 us-west2 - ) + ] end def setup diff --git a/qa/qa/service/praefect_manager.rb b/qa/qa/service/praefect_manager.rb index 56627e51b76..6188760d019 100644 --- a/qa/qa/service/praefect_manager.rb +++ b/qa/qa/service/praefect_manager.rb @@ -288,9 +288,9 @@ module QA def modify_repo_access_time(node, repo_path, update_time) repo = "/var/opt/gitlab/git-data/repositories/#{repo_path}" - shell(%{ + shell(%( docker exec --user git #{node} bash -c 'find #{repo} -exec touch -d "#{update_time}" {} \\;' - }) + )) end private diff --git a/qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb b/qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb index 87faec86947..614e2c4d306 100644 --- a/qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb +++ b/qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb @@ -10,7 +10,7 @@ module QA include Support::API let(:project_name) { "project-archive-download-#{SecureRandom.hex(8)}" } - let(:archive_types) { %w(tar.gz tar.bz2 tar zip) } + let(:archive_types) { %w[tar.gz tar.bz2 tar zip] } let(:users) do { diff --git a/qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb b/qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb index 8b6c35ea63d..43f35f5dee5 100644 --- a/qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb +++ b/qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb @@ -34,7 +34,7 @@ module QA def mailhog_json Support::Retrier.retry_until(sleep_interval: 1) do - Runtime::Logger.debug(%[retrieving "#{QA::Runtime::MailHog.api_messages_url}"]) + Runtime::Logger.debug(%(retrieving "#{QA::Runtime::MailHog.api_messages_url}")) mailhog_response = get QA::Runtime::MailHog.api_messages_url @@ -43,8 +43,8 @@ module QA subjects = mailhog_data.dig('items') .map { |item| mailhog_item_subject(item) } - Runtime::Logger.debug(%[Total number of emails: #{total}]) - Runtime::Logger.debug(%[Subjects:\n#{subjects.join("\n")}]) + Runtime::Logger.debug(%(Total number of emails: #{total})) + Runtime::Logger.debug(%(Subjects:\n#{subjects.join("\n")})) # Expect at least two invitation messages: group and project mailhog_data if mailhog_project_message_count(subjects) >= 1 diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb index 69d8467e6ea..3e21332c6ec 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb @@ -106,7 +106,7 @@ module QA QA::Service::Shellout.shell("docker cp #{runner_name}:/etc/gitlab-runner/config.toml #{tempdir.path}") File.open(tempdir.path, 'a') do |f| - f << %[ allowed_pull_policies = #{allowed_policies}\n] + f << %( allowed_pull_policies = #{allowed_policies}\n) end QA::Service::Shellout.shell("docker cp #{tempdir.path} #{runner_name}:/etc/gitlab-runner/config.toml") diff --git a/qa/spec/git/repository_spec.rb b/qa/spec/git/repository_spec.rb index 1b88cba2ba5..513e807dd99 100644 --- a/qa/spec/git/repository_spec.rb +++ b/qa/spec/git/repository_spec.rb @@ -7,7 +7,7 @@ RSpec.describe QA::Git::Repository do let(:logger) { instance_double(Logger, info: nil, debug: nil) } let(:repo_uri) { 'http://foo/bar.git' } let(:repo_uri_with_credentials) { 'http://root@foo/bar.git' } - let(:env_vars) { [%q{HOME="temp"}] } + let(:env_vars) { [%q(HOME="temp")] } let(:extra_env_vars) { [] } let(:run_params) { { env: env_vars + extra_env_vars, log_prefix: "Git: " } } let(:repository) do diff --git a/qa/spec/page/view_spec.rb b/qa/spec/page/view_spec.rb index 3342b387ed1..1f89e8829b4 100644 --- a/qa/spec/page/view_spec.rb +++ b/qa/spec/page/view_spec.rb @@ -56,7 +56,7 @@ RSpec.describe QA::Page::View do it 'returns an array of errors related to missing elements' do expect(subject.errors).not_to be_empty expect(subject.errors.first) - .to match %r(Missing element `.*` in `.*/some/file.html` view) + .to match %r{Missing element `.*` in `.*/some/file.html` view} end end end @@ -65,7 +65,7 @@ RSpec.describe QA::Page::View do it 'returns an error when it is not able to find the partial' do expect(subject.errors).to be_one expect(subject.errors.first) - .to match %r(Missing view partial `.*/some/file.html`!) + .to match %r{Missing view partial `.*/some/file.html`!} end end end diff --git a/spec/features/profiles/user_visits_profile_preferences_page_spec.rb b/spec/features/profiles/user_visits_profile_preferences_page_spec.rb index 033711f699e..4da1a7ba81a 100644 --- a/spec/features/profiles/user_visits_profile_preferences_page_spec.rb +++ b/spec/features/profiles/user_visits_profile_preferences_page_spec.rb @@ -57,7 +57,7 @@ RSpec.describe 'User visits the profile preferences page', :js, feature_category end describe 'User changes their language', :js do - it 'creates a flash message', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/31404' do + it 'creates a flash message' do select_from_listbox 'English', from: 'English' click_button 'Save changes'