diff --git a/app/graphql/types/clusters/agent_type.rb b/app/graphql/types/clusters/agent_type.rb index 546252b2285..5d7b8815cde 100644 --- a/app/graphql/types/clusters/agent_type.rb +++ b/app/graphql/types/clusters/agent_type.rb @@ -71,3 +71,5 @@ module Types end end end + +Types::Clusters::AgentType.prepend_mod diff --git a/doc/administration/load_balancer.md b/doc/administration/load_balancer.md index 988bddcfe62..869019a0d01 100644 --- a/doc/administration/load_balancer.md +++ b/doc/administration/load_balancer.md @@ -115,14 +115,18 @@ Configure DNS for an alternate SSH hostname such as `altssh.gitlab.example.com`. It is strongly recommend that multi-node deployments configure load balancers to use the [readiness check](../user/admin_area/monitoring/health_check.md#readiness) to ensure a node is ready to accept traffic, before routing traffic to it. This is especially important when utilizing Puma, as there is a brief period during a restart where Puma doesn't accept requests. - +If you are using [AWS's Classic Load Balancer](https://docs.aws.amazon.com/en_en/elasticloadbalancing/latest/classic/elb-ssl-security-policy.html#ssl-ciphers) +in GitLab 15.0 or later, you must to enable the `AES256-GCM-SHA384` cipher in NGINX. +See [AES256-GCM-SHA384 SSL cipher no longer allowed by default by NGINX](https://docs.gitlab.com/omnibus/update/gitlab_15_changes.html#aes256-gcm-sha384-ssl-cipher-no-longer-allowed-by-default-by-nginx) +for more information. + +The default ciphers for a GitLab version can be +viewed in the [`files/gitlab-cookbooks/gitlab/attributes/default.rb`](https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/files/gitlab-cookbooks/gitlab/attributes/default.rb) +file and selecting the Git tag that correlates with your target GitLab version +(for example `15.0.5+ee.0`). If required by your load balancer, you can then define +[custom SSL ciphers](https://docs.gitlab.com/omnibus/settings/nginx.html#using-custom-ssl-ciphers) +for NGINX. diff --git a/doc/administration/reference_architectures/10k_users.md b/doc/administration/reference_architectures/10k_users.md index 3c6455c5178..a5075336101 100644 --- a/doc/administration/reference_architectures/10k_users.md +++ b/doc/administration/reference_architectures/10k_users.md @@ -142,10 +142,12 @@ Before starting, you should take note of the following requirements / guidance f This reference architecture was built and tested on Google Cloud Platform (GCP) using the [Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) -CPU platform. On different hardware you may find that adjustments, either lower -or higher, are required for your CPU or node counts. For more information, see -our [Sysbench](https://github.com/akopytov/sysbench)-based -[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). +CPU platform as a baseline ([Sysbench benchmark](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks)). + +Newer, similarly sized CPUs are supported and may have improved performance as a result. For Omnibus environments, ARM-based equivalents are also supported. + +NOTE: +Any "burstable" instance types are not recommended due to inconsistent performance. ### Supported infrastructure diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 1a774603863..96b1e541f92 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -72,10 +72,12 @@ Before starting, you should take note of the following requirements / guidance f This reference architecture was built and tested on Google Cloud Platform (GCP) using the [Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) -CPU platform. On different hardware you may find that adjustments, either lower -or higher, are required for your CPU or node counts. For more information, see -our [Sysbench](https://github.com/akopytov/sysbench)-based -[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). +CPU platform as a baseline ([Sysbench benchmark](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks)). + +Newer, similarly sized CPUs are supported and may have improved performance as a result. For Omnibus environments, ARM-based equivalents are also supported. + +NOTE: +Any "burstable" instance types are not recommended due to inconsistent performance. ### Supported infrastructure diff --git a/doc/administration/reference_architectures/25k_users.md b/doc/administration/reference_architectures/25k_users.md index 331dde19994..59ce0ce072b 100644 --- a/doc/administration/reference_architectures/25k_users.md +++ b/doc/administration/reference_architectures/25k_users.md @@ -142,10 +142,12 @@ Before starting, you should take note of the following requirements / guidance f This reference architecture was built and tested on Google Cloud Platform (GCP) using the [Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) -CPU platform. On different hardware you may find that adjustments, either lower -or higher, are required for your CPU or node counts. For more information, see -our [Sysbench](https://github.com/akopytov/sysbench)-based -[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). +CPU platform as a baseline ([Sysbench benchmark](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks)). + +Newer, similarly sized CPUs are supported and may have improved performance as a result. For Omnibus environments, ARM-based equivalents are also supported. + +NOTE: +Any "burstable" instance types are not recommended due to inconsistent performance. ### Supported infrastructure diff --git a/doc/administration/reference_architectures/2k_users.md b/doc/administration/reference_architectures/2k_users.md index 435d4c92b74..a0a2f7e4b85 100644 --- a/doc/administration/reference_architectures/2k_users.md +++ b/doc/administration/reference_architectures/2k_users.md @@ -78,10 +78,12 @@ Before starting, you should take note of the following requirements / guidance f This reference architecture was built and tested on Google Cloud Platform (GCP) using the [Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) -CPU platform. On different hardware you may find that adjustments, either lower -or higher, are required for your CPU or node counts. For more information, see -our [Sysbench](https://github.com/akopytov/sysbench)-based -[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). +CPU platform as a baseline ([Sysbench benchmark](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks)). + +Newer, similarly sized CPUs are supported and may have improved performance as a result. For Omnibus environments, ARM-based equivalents are also supported. + +NOTE: +Any "burstable" instance types are not recommended due to inconsistent performance. ### Supported infrastructure diff --git a/doc/administration/reference_architectures/3k_users.md b/doc/administration/reference_architectures/3k_users.md index 80c725971cb..bf9b9f47c16 100644 --- a/doc/administration/reference_architectures/3k_users.md +++ b/doc/administration/reference_architectures/3k_users.md @@ -148,10 +148,12 @@ Before starting, you should take note of the following requirements / guidance f This reference architecture was built and tested on Google Cloud Platform (GCP) using the [Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) -CPU platform. On different hardware you may find that adjustments, either lower -or higher, are required for your CPU or node counts. For more information, see -our [Sysbench](https://github.com/akopytov/sysbench)-based -[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). +CPU platform as a baseline ([Sysbench benchmark](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks)). + +Newer, similarly sized CPUs are supported and may have improved performance as a result. For Omnibus environments, ARM-based equivalents are also supported. + +NOTE: +Any "burstable" instance types are not recommended due to inconsistent performance. ### Supported infrastructure diff --git a/doc/administration/reference_architectures/50k_users.md b/doc/administration/reference_architectures/50k_users.md index 2be706e4b56..9a086f173d7 100644 --- a/doc/administration/reference_architectures/50k_users.md +++ b/doc/administration/reference_architectures/50k_users.md @@ -142,10 +142,12 @@ Before starting, you should take note of the following requirements / guidance f This reference architecture was built and tested on Google Cloud Platform (GCP) using the [Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) -CPU platform. On different hardware you may find that adjustments, either lower -or higher, are required for your CPU or node counts. For more information, see -our [Sysbench](https://github.com/akopytov/sysbench)-based -[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). +CPU platform as a baseline ([Sysbench benchmark](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks)). + +Newer, similarly sized CPUs are supported and may have improved performance as a result. For Omnibus environments, ARM-based equivalents are also supported. + +NOTE: +Any "burstable" instance types are not recommended due to inconsistent performance. ### Supported infrastructure diff --git a/doc/administration/reference_architectures/5k_users.md b/doc/administration/reference_architectures/5k_users.md index 9bfc0eb42c7..5301d55300f 100644 --- a/doc/administration/reference_architectures/5k_users.md +++ b/doc/administration/reference_architectures/5k_users.md @@ -145,10 +145,12 @@ Before starting, you should take note of the following requirements / guidance f This reference architecture was built and tested on Google Cloud Platform (GCP) using the [Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) -CPU platform. On different hardware you may find that adjustments, either lower -or higher, are required for your CPU or node counts. For more information, see -our [Sysbench](https://github.com/akopytov/sysbench)-based -[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). +CPU platform as a baseline ([Sysbench benchmark](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks)). + +Newer, similarly sized CPUs are supported and may have improved performance as a result. For Omnibus environments, ARM-based equivalents are also supported. + +NOTE: +Any "burstable" instance types are not recommended due to inconsistent performance. ### Supported infrastructure diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index 5a52df38970..5a33b2ebc44 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -10387,6 +10387,7 @@ GitLab CI/CD configuration template. | `name` | [`String`](#string) | Name of the cluster agent. | | `project` | [`Project`](#project) | Project this cluster agent is associated with. | | `updatedAt` | [`Time`](#time) | Timestamp the cluster agent was updated. | +| `vulnerabilityImages` | [`VulnerabilityContainerImageConnection`](#vulnerabilitycontainerimageconnection) | Container images reported on the agent vulnerabilities. (see [Connections](#connections)) | | `webPath` | [`String`](#string) | Web path of the cluster agent. | #### Fields with arguments diff --git a/doc/user/project/import/svn.md b/doc/user/project/import/svn.md index b88abf91ae1..97ea889e36f 100644 --- a/doc/user/project/import/svn.md +++ b/doc/user/project/import/svn.md @@ -5,30 +5,21 @@ group: Import info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments --- -# Migrating from SVN to GitLab **(FREE)** +# Migrate from Subversion to GitLab **(FREE)** -Subversion (SVN) is a central version control system (VCS) while -Git is a distributed version control system. There are some major differences -between the two, for more information consult your favorite search engine. +GitLab uses Git as its version control system. If you're using Subversion (SVN) as your version control system, +you can migrate to using a Git repository in GitLab in two ways: -There are two approaches to SVN to Git migration: +- Using SubGit to set up a temporary mirror of the SVN repository for GitLab. You can use the SVN repository and the Git + repository at the same time, and check everything functions properly before removing access to the SVN repository and + shutting down the mirror. +- Using `svn2git` to migrate immediately from SVN to Git. You stop using SVN, migrate the SVN repository, then + start using the Git repository in GitLab. -- [Git/SVN Mirror](#smooth-migration-with-a-gitsvn-mirror-using-subgit) which: - - Makes the GitLab repository to mirror the SVN project. - - Git and SVN repositories are kept in sync; you can use either one. - - Smoothens the migration process and allows you to manage migration risks. +## Migrate using SubGit -- [Cut over migration](#cut-over-migration-with-svn2git) which: - - Translates and imports the existing data and history from SVN to Git. - - Is a fire and forget approach, good for smaller teams. - -## Smooth migration with a Git/SVN mirror using SubGit - -[SubGit](https://subgit.com) is a tool for a smooth, stress-free SVN to Git -migration. It creates a writable Git mirror of a local or remote Subversion -repository and that way you can use both Subversion and Git as long as you like. -It requires access to your GitLab server as it talks with the Git repositories -directly in a file system level. +[SubGit](https://subgit.com) creates a writable Git mirror of a local or remote SVN repository. SubGit requires access +to your GitLab server because it accesses the Git repositories directly at the file-system level. ### SubGit prerequisites @@ -110,7 +101,7 @@ source, academic and startup projects. For any questions related to SVN to GitLab migration with SubGit, you can contact the SubGit team directly at [support@subgit.com](mailto:support@subgit.com). -## Cut over migration with svn2git +## Migrate using `svn2git` NOTE: Any issues with svn2git should be directed to the [relevant project and maintainer](https://github.com/nirvdrum/svn2git). @@ -183,8 +174,3 @@ git remote add origin git@gitlab.com:/.git git push --all origin git push --tags origin ``` - -## Contribute to this guide - -We welcome all contributions that would expand this guide with instructions on -how to migrate from SVN and other version control systems. diff --git a/lib/gitlab/ci/parsers/security/common.rb b/lib/gitlab/ci/parsers/security/common.rb index 13a159f3745..c0ccf69666d 100644 --- a/lib/gitlab/ci/parsers/security/common.rb +++ b/lib/gitlab/ci/parsers/security/common.rb @@ -7,16 +7,16 @@ module Gitlab class Common SecurityReportParserError = Class.new(Gitlab::Ci::Parsers::ParserError) - def self.parse!(json_data, report, vulnerability_finding_signatures_enabled = false, validate: false) - new(json_data, report, vulnerability_finding_signatures_enabled, validate: validate).parse! + def self.parse!(json_data, report, signatures_enabled: false, validate: false) + new(json_data, report, signatures_enabled: signatures_enabled, validate: validate).parse! end - def initialize(json_data, report, vulnerability_finding_signatures_enabled = false, validate: false) + def initialize(json_data, report, signatures_enabled: false, validate: false) @json_data = json_data @report = report @project = report.project @validate = validate - @vulnerability_finding_signatures_enabled = vulnerability_finding_signatures_enabled + @signatures_enabled = signatures_enabled end def parse! @@ -119,7 +119,7 @@ module Gitlab evidence = create_evidence(data['evidence']) signatures = create_signatures(tracking_data(data)) - if @vulnerability_finding_signatures_enabled && !signatures.empty? + if @signatures_enabled && !signatures.empty? # NOT the signature_sha - the compare key is hashed # to create the project_fingerprint highest_priority_signature = signatures.max_by(&:priority) @@ -149,7 +149,7 @@ module Gitlab details: data['details'] || {}, signatures: signatures, project_id: @project.id, - vulnerability_finding_signatures_enabled: @vulnerability_finding_signatures_enabled)) + vulnerability_finding_signatures_enabled: @signatures_enabled)) end def create_signatures(tracking) diff --git a/spec/graphql/types/clusters/agent_type_spec.rb b/spec/graphql/types/clusters/agent_type_spec.rb index 3f4faccf15d..bb1006c55c0 100644 --- a/spec/graphql/types/clusters/agent_type_spec.rb +++ b/spec/graphql/types/clusters/agent_type_spec.rb @@ -9,5 +9,5 @@ RSpec.describe GitlabSchema.types['ClusterAgent'] do it { expect(described_class).to require_graphql_authorizations(:read_cluster) } - it { expect(described_class).to have_graphql_fields(fields) } + it { expect(described_class).to include_graphql_fields(*fields) } end diff --git a/spec/lib/gitlab/ci/parsers/security/common_spec.rb b/spec/lib/gitlab/ci/parsers/security/common_spec.rb index 6495d1f654b..6aa82e7e25c 100644 --- a/spec/lib/gitlab/ci/parsers/security/common_spec.rb +++ b/spec/lib/gitlab/ci/parsers/security/common_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common do } end - where(vulnerability_finding_signatures_enabled: [true, false]) + where(signatures_enabled: [true, false]) with_them do let_it_be(:pipeline) { create(:ci_pipeline) } @@ -44,7 +44,7 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common do let(:validator_class) { Gitlab::Ci::Parsers::Security::Validators::SchemaValidator } let(:data) { {}.merge(scanner_data) } let(:json_data) { data.to_json } - let(:parser) { described_class.new(json_data, report, vulnerability_finding_signatures_enabled, validate: validate) } + let(:parser) { described_class.new(json_data, report, signatures_enabled: signatures_enabled, validate: validate) } subject(:parse_report) { parser.parse! } @@ -191,7 +191,7 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common do context 'report parsing' do before do - artifact.each_blob { |blob| described_class.parse!(blob, report, vulnerability_finding_signatures_enabled) } + artifact.each_blob { |blob| described_class.parse!(blob, report, signatures_enabled: signatures_enabled) } end describe 'parsing finding.name' do @@ -465,7 +465,7 @@ RSpec.describe Gitlab::Ci::Parsers::Security::Common do finding = report.findings.first highest_signature = finding.signatures.max_by(&:priority) - identifiers = if vulnerability_finding_signatures_enabled + identifiers = if signatures_enabled "#{finding.report_type}-#{finding.primary_identifier.fingerprint}-#{highest_signature.signature_hex}-#{report.project_id}" else "#{finding.report_type}-#{finding.primary_identifier.fingerprint}-#{finding.location.fingerprint}-#{report.project_id}" diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index 320e9e0cd66..97b5133d4e6 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -3464,7 +3464,8 @@ RSpec.describe API::MergeRequests do context 'when merge request branch does not allow force push' do before do - create(:protected_branch, project: project, name: merge_request.source_branch, allow_force_push: false) + create_params = { name: merge_request.source_branch, allow_force_push: false, merge_access_levels_attributes: [{ access_level: Gitlab::Access::DEVELOPER }] } + ProtectedBranches::CreateService.new(project, project.first_owner, create_params).execute end it 'returns 403' do diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml index 1d3b34f8ebf..6c9e0944c54 100644 --- a/spec/support/rspec_order_todo.yml +++ b/spec/support/rspec_order_todo.yml @@ -9499,143 +9499,6 @@ - './spec/routing/projects/security/configuration_controller_routing_spec.rb' - './spec/routing/routing_spec.rb' - './spec/routing/uploads_routing_spec.rb' -- './spec/rubocop/code_reuse_helpers_spec.rb' -- './spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb' -- './spec/rubocop/cop/active_record_association_reload_spec.rb' -- './spec/rubocop/cop/api/base_spec.rb' -- './spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb' -- './spec/rubocop/cop/avoid_becomes_spec.rb' -- './spec/rubocop/cop/avoid_break_from_strong_memoize_spec.rb' -- './spec/rubocop/cop/avoid_keyword_arguments_in_sidekiq_workers_spec.rb' -- './spec/rubocop/cop/avoid_return_from_blocks_spec.rb' -- './spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb' -- './spec/rubocop/cop/ban_catch_throw_spec.rb' -- './spec/rubocop/cop/code_reuse/finder_spec.rb' -- './spec/rubocop/cop/code_reuse/presenter_spec.rb' -- './spec/rubocop/cop/code_reuse/serializer_spec.rb' -- './spec/rubocop/cop/code_reuse/service_class_spec.rb' -- './spec/rubocop/cop/code_reuse/worker_spec.rb' -- './spec/rubocop/cop/database/disable_referential_integrity_spec.rb' -- './spec/rubocop/cop/database/establish_connection_spec.rb' -- './spec/rubocop/cop/database/multiple_databases_spec.rb' -- './spec/rubocop/cop/database/rescue_query_canceled_spec.rb' -- './spec/rubocop/cop/database/rescue_statement_timeout_spec.rb' -- './spec/rubocop/cop/default_scope_spec.rb' -- './spec/rubocop/cop/destroy_all_spec.rb' -- './spec/rubocop/cop/file_decompression_spec.rb' -- './spec/rubocop/cop/filename_length_spec.rb' -- './spec/rubocop/cop/gemspec/avoid_executing_git_spec.rb' -- './spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb' -- './spec/rubocop/cop/gitlab/avoid_uploaded_file_from_params_spec.rb' -- './spec/rubocop/cop/gitlab/bulk_insert_spec.rb' -- './spec/rubocop/cop/gitlab/change_timezone_spec.rb' -- './spec/rubocop/cop/gitlab/const_get_inherit_false_spec.rb' -- './spec/rubocop/cop/gitlab/delegate_predicate_methods_spec.rb' -- './spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb' -- './spec/rubocop/cop/gitlab/duplicate_spec_location_spec.rb' -- './spec/rubocop/cop/gitlab/event_store_subscriber_spec.rb' -- './spec/rubocop/cop/gitlab/except_spec.rb' -- './spec/rubocop/cop/gitlab/feature_available_usage_spec.rb' -- './spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb' -- './spec/rubocop/cop/gitlab/httparty_spec.rb' -- './spec/rubocop/cop/gitlab/intersect_spec.rb' -- './spec/rubocop/cop/gitlab/json_spec.rb' -- './spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb' -- './spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb' -- './spec/rubocop/cop/gitlab/namespaced_class_spec.rb' -- './spec/rubocop/cop/gitlab/policy_rule_boolean_spec.rb' -- './spec/rubocop/cop/gitlab/predicate_memoization_spec.rb' -- './spec/rubocop/cop/gitlab/rails_logger_spec.rb' -- './spec/rubocop/cop/gitlab/union_spec.rb' -- './spec/rubocop/cop/graphql/authorize_types_spec.rb' -- './spec/rubocop/cop/graphql/descriptions_spec.rb' -- './spec/rubocop/cop/graphql/gid_expected_type_spec.rb' -- './spec/rubocop/cop/graphql/graphql_name_position_spec.rb' -- './spec/rubocop/cop/graphql/id_type_spec.rb' -- './spec/rubocop/cop/graphql/json_type_spec.rb' -- './spec/rubocop/cop/graphql/old_types_spec.rb' -- './spec/rubocop/cop/graphql/resolver_type_spec.rb' -- './spec/rubocop/cop/group_public_or_visible_to_user_spec.rb' -- './spec/rubocop/cop/ignored_columns_spec.rb' -- './spec/rubocop/cop/include_sidekiq_worker_spec.rb' -- './spec/rubocop/cop/inject_enterprise_edition_module_spec.rb' -- './spec/rubocop/cop/lint/last_keyword_argument_spec.rb' -- './spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb' -- './spec/rubocop/cop/migration/add_column_with_default_spec.rb' -- './spec/rubocop/cop/migration/add_concurrent_foreign_key_spec.rb' -- './spec/rubocop/cop/migration/add_concurrent_index_spec.rb' -- './spec/rubocop/cop/migration/add_index_spec.rb' -- './spec/rubocop/cop/migration/add_limit_to_text_columns_spec.rb' -- './spec/rubocop/cop/migration/add_reference_spec.rb' -- './spec/rubocop/cop/migration/add_timestamps_spec.rb' -- './spec/rubocop/cop/migration/background_migration_base_class_spec.rb' -- './spec/rubocop/cop/migration/background_migration_record_spec.rb' -- './spec/rubocop/cop/migration/background_migrations_spec.rb' -- './spec/rubocop/cop/migration/complex_indexes_require_name_spec.rb' -- './spec/rubocop/cop/migration/create_table_with_foreign_keys_spec.rb' -- './spec/rubocop/cop/migration/datetime_spec.rb' -- './spec/rubocop/cop/migration/drop_table_spec.rb' -- './spec/rubocop/cop/migration/migration_record_spec.rb' -- './spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb' -- './spec/rubocop/cop/migration/prevent_index_creation_spec.rb' -- './spec/rubocop/cop/migration/prevent_strings_spec.rb' -- './spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb' -- './spec/rubocop/cop/migration/remove_column_spec.rb' -- './spec/rubocop/cop/migration/remove_concurrent_index_spec.rb' -- './spec/rubocop/cop/migration/remove_index_spec.rb' -- './spec/rubocop/cop/migration/safer_boolean_column_spec.rb' -- './spec/rubocop/cop/migration/schedule_async_spec.rb' -- './spec/rubocop/cop/migration/sidekiq_queue_migrate_spec.rb' -- './spec/rubocop/cop/migration/timestamps_spec.rb' -- './spec/rubocop/cop/migration/update_column_in_batches_spec.rb' -- './spec/rubocop/cop/migration/versioned_migration_class_spec.rb' -- './spec/rubocop/cop/migration/with_lock_retries_disallowed_method_spec.rb' -- './spec/rubocop/cop/migration/with_lock_retries_with_change_spec.rb' -- './spec/rubocop/cop/performance/active_record_subtransaction_methods_spec.rb' -- './spec/rubocop/cop/performance/active_record_subtransactions_spec.rb' -- './spec/rubocop/cop/performance/ar_count_each_spec.rb' -- './spec/rubocop/cop/performance/ar_exists_and_present_blank_spec.rb' -- './spec/rubocop/cop/performance/readlines_each_spec.rb' -- './spec/rubocop/cop/prefer_class_methods_over_module_spec.rb' -- './spec/rubocop/cop/project_path_helper_spec.rb' -- './spec/rubocop/cop/put_group_routes_under_scope_spec.rb' -- './spec/rubocop/cop/put_project_routes_under_scope_spec.rb' -- './spec/rubocop/cop/qa/ambiguous_page_object_name_spec.rb' -- './spec/rubocop/cop/qa/element_with_pattern_spec.rb' -- './spec/rubocop/cop/qa/selector_usage_spec.rb' -- './spec/rubocop/cop/rspec/any_instance_of_spec.rb' -- './spec/rubocop/cop/rspec/be_success_matcher_spec.rb' -- './spec/rubocop/cop/rspec/env_assignment_spec.rb' -- './spec/rubocop/cop/rspec/expect_gitlab_tracking_spec.rb' -- './spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb' -- './spec/rubocop/cop/rspec/factory_bot/inline_association_spec.rb' -- './spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb' -- './spec/rubocop/cop/rspec/htt_party_basic_auth_spec.rb' -- './spec/rubocop/cop/rspec/modify_sidekiq_middleware_spec.rb' -- './spec/rubocop/cop/rspec/timecop_freeze_spec.rb' -- './spec/rubocop/cop/rspec/timecop_travel_spec.rb' -- './spec/rubocop/cop/rspec/top_level_describe_path_spec.rb' -- './spec/rubocop/cop/rspec/web_mock_enable_spec.rb' -- './spec/rubocop/cop/ruby_interpolation_in_translation_spec.rb' -- './spec/rubocop/cop/safe_params_spec.rb' -- './spec/rubocop/cop/scalability/bulk_perform_with_context_spec.rb' -- './spec/rubocop/cop/scalability/cron_worker_context_spec.rb' -- './spec/rubocop/cop/scalability/file_uploads_spec.rb' -- './spec/rubocop/cop/scalability/idempotent_worker_spec.rb' -- './spec/rubocop/cop/sidekiq_load_balancing/worker_data_consistency_spec.rb' -- './spec/rubocop/cop/sidekiq_options_queue_spec.rb' -- './spec/rubocop/cop/static_translation_definition_spec.rb' -- './spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb' -- './spec/rubocop/cop_todo_spec.rb' -- './spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb' -- './spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb' -- './spec/rubocop/cop/usage_data/instrumentation_superclass_spec.rb' -- './spec/rubocop/cop/usage_data/large_table_spec.rb' -- './spec/rubocop/cop/user_admin_spec.rb' -- './spec/rubocop/formatter/todo_formatter_spec.rb' -- './spec/rubocop/migration_helpers_spec.rb' -- './spec/rubocop/qa_helpers_spec.rb' -- './spec/rubocop/todo_dir_spec.rb' - './spec/scripts/changed-feature-flags_spec.rb' - './spec/scripts/determine-qa-tests_spec.rb' - './spec/scripts/failed_tests_spec.rb'