diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 4e3c7bfb515..96bb214cf39 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -275,6 +275,14 @@ Dangerfile /ee/spec/services/software_license_policies/** /spec/finders/security/license_compliance_jobs_finder_spec.rb +^[Secure::Static Analysis] @gitlab-org/secure/static-analysis +/ee/lib/gitlab/checks/secrets_check.rb +/ee/spec/lib/gitlab/checks/secrets_check_spec.rb +/ee/spec/support/shared_contexts/secrets_check_shared_contexts.rb +/ee/spec/support/shared_examples/lib/gitlab/secrets_check_shared_examples.rb +/lib/gitlab/checks/changed_blobs.rb +/spec/lib/gitlab/checks/changed_blobs.rb + ^[Code Owners] @reprazent @kerrizor @garyh /ee/lib/gitlab/code_owners.rb /ee/lib/gitlab/code_owners/ diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml index 754d31a99b2..2095d2c1ca3 100644 --- a/.rubocop_todo/layout/line_length.yml +++ b/.rubocop_todo/layout/line_length.yml @@ -3703,6 +3703,7 @@ Layout/LineLength: - 'spec/lib/gitlab/import_export/uploads_manager_spec.rb' - 'spec/lib/gitlab/import_export/version_checker_spec.rb' - 'spec/lib/gitlab/import_sources_spec.rb' + - 'spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb' - 'spec/lib/gitlab/issuable_metadata_spec.rb' - 'spec/lib/gitlab/issues/rebalancing/state_spec.rb' - 'spec/lib/gitlab/jira/dvcs_spec.rb' diff --git a/.rubocop_todo/lint/ambiguous_operator_precedence.yml b/.rubocop_todo/lint/ambiguous_operator_precedence.yml index a7cac8214c0..5b352842a87 100644 --- a/.rubocop_todo/lint/ambiguous_operator_precedence.yml +++ b/.rubocop_todo/lint/ambiguous_operator_precedence.yml @@ -102,6 +102,7 @@ Lint/AmbiguousOperatorPrecedence: - 'spec/lib/gitlab/database/batch_count_spec.rb' - 'spec/lib/gitlab/database/consistency_checker_spec.rb' - 'spec/lib/gitlab/graphql/tracers/metrics_tracer_spec.rb' + - 'spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb' - 'spec/lib/gitlab/issues/rebalancing/state_spec.rb' - 'spec/lib/gitlab/kroki_spec.rb' - 'spec/lib/gitlab/memory/instrumentation_spec.rb' diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml index d8ea0ce942a..6f3b6141d36 100644 --- a/.rubocop_todo/rspec/feature_category.yml +++ b/.rubocop_todo/rspec/feature_category.yml @@ -3587,6 +3587,7 @@ RSpec/FeatureCategory: - 'spec/lib/gitlab/instrumentation/rate_limiting_gates_spec.rb' - 'spec/lib/gitlab/instrumentation/redis_base_spec.rb' - 'spec/lib/gitlab/instrumentation/redis_cluster_validator_spec.rb' + - 'spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb' - 'spec/lib/gitlab/instrumentation/redis_spec.rb' - 'spec/lib/gitlab/internal_post_receive/response_spec.rb' - 'spec/lib/gitlab/issuable/clone/attributes_rewriter_spec.rb' @@ -5323,7 +5324,6 @@ RSpec/FeatureCategory: - 'spec/views/layouts/devise_empty.html.haml_spec.rb' - 'spec/views/layouts/fullscreen.html.haml_spec.rb' - 'spec/views/layouts/profile.html.haml_spec.rb' - - 'spec/views/layouts/signup_onboarding.html.haml_spec.rb' - 'spec/views/layouts/terms.html.haml_spec.rb' - 'spec/views/notify/approved_merge_request_email.html.haml_spec.rb' - 'spec/views/notify/autodevops_disabled_email.text.erb_spec.rb' diff --git a/.rubocop_todo/rspec/named_subject.yml b/.rubocop_todo/rspec/named_subject.yml index dcaf7041819..0b1090a90c9 100644 --- a/.rubocop_todo/rspec/named_subject.yml +++ b/.rubocop_todo/rspec/named_subject.yml @@ -2332,6 +2332,7 @@ RSpec/NamedSubject: - 'spec/lib/gitlab/rack_attack_spec.rb' - 'spec/lib/gitlab/reactive_cache_set_cache_spec.rb' - 'spec/lib/gitlab/redis/boolean_spec.rb' + - 'spec/lib/gitlab/redis/cross_slot_spec.rb' - 'spec/lib/gitlab/redis/db_load_balancing_spec.rb' - 'spec/lib/gitlab/redis/multi_store_spec.rb' - 'spec/lib/gitlab/redis/queues_spec.rb' diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml index 31f59f51bf7..4bf891cd5c3 100644 --- a/.rubocop_todo/style/inline_disable_annotation.yml +++ b/.rubocop_todo/style/inline_disable_annotation.yml @@ -2517,6 +2517,7 @@ Style/InlineDisableAnnotation: - 'lib/gitlab/import_export/project/relation_factory.rb' - 'lib/gitlab/import_sources.rb' - 'lib/gitlab/instrumentation/redis_cluster_validator.rb' + - 'lib/gitlab/instrumentation/redis_interceptor.rb' - 'lib/gitlab/internal_events.rb' - 'lib/gitlab/issuable/clone/copy_resource_events_service.rb' - 'lib/gitlab/issues/rebalancing/state.rb' @@ -2555,6 +2556,7 @@ Style/InlineDisableAnnotation: - 'lib/gitlab/pagination/offset_pagination.rb' - 'lib/gitlab/pagination_delegate.rb' - 'lib/gitlab/patch/action_cable_subscription_adapter_identifier.rb' + - 'lib/gitlab/patch/node_loader.rb' - 'lib/gitlab/patch/prependable.rb' - 'lib/gitlab/patch/redis_cache_store.rb' - 'lib/gitlab/patch/sidekiq_cron_poller.rb' @@ -2571,6 +2573,7 @@ Style/InlineDisableAnnotation: - 'lib/gitlab/rack_attack.rb' - 'lib/gitlab/rack_attack/request.rb' - 'lib/gitlab/rack_attack/store.rb' + - 'lib/gitlab/redis/cross_slot.rb' - 'lib/gitlab/redis/hll.rb' - 'lib/gitlab/redis/multi_store.rb' - 'lib/gitlab/reference_extractor.rb' @@ -2939,7 +2942,9 @@ Style/InlineDisableAnnotation: - 'spec/lib/gitlab/pagination/keyset/order_spec.rb' - 'spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb' - 'spec/lib/gitlab/patch/database_config_spec.rb' + - 'spec/lib/gitlab/patch/node_loader_spec.rb' - 'spec/lib/gitlab/quick_actions/dsl_spec.rb' + - 'spec/lib/gitlab/redis/cross_slot_spec.rb' - 'spec/lib/gitlab/redis/multi_store_spec.rb' - 'spec/lib/gitlab/search/abuse_detection_spec.rb' - 'spec/lib/gitlab/shard_health_cache_spec.rb' diff --git a/Gemfile b/Gemfile index 3d4c5362426..e0f6f0a5f3a 100644 --- a/Gemfile +++ b/Gemfile @@ -288,9 +288,8 @@ gem 'js_regex', '~> 3.8' # rubocop:todo Gemfile/MissingFeatureCategory gem 'device_detector' # rubocop:todo Gemfile/MissingFeatureCategory # Redis -gem 'redis-namespace', '~> 1.10.0', feature_category: :redis -gem 'redis', '~> 5.0.0', feature_category: :redis -gem 'redis-clustering', '~> 5.0.0', feature_category: :redis +gem 'redis', '~> 4.8.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'redis-namespace', '~> 1.10.0' # rubocop:todo Gemfile/MissingFeatureCategory gem 'connection_pool', '~> 2.4' # rubocop:todo Gemfile/MissingFeatureCategory # Redis session store @@ -512,7 +511,7 @@ group :test do gem 'shoulda-matchers', '~> 5.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory gem 'email_spec', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory - gem 'webmock', '~> 3.19.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'webmock', '~> 3.20.0' # rubocop:todo Gemfile/MissingFeatureCategory gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory gem 'test-prof', '~> 1.3.1' # rubocop:todo Gemfile/MissingFeatureCategory diff --git a/Gemfile.checksum b/Gemfile.checksum index 48be2807e86..92e33d2e5f3 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -523,11 +523,9 @@ {"name":"recaptcha","version":"5.12.3","platform":"ruby","checksum":"37d1894add9e70a54d0c6c7f0ecbeedffbfa7d075acfbd4c509818dfdebdb7ee"}, {"name":"recursive-open-struct","version":"1.1.3","platform":"ruby","checksum":"a3538a72552fcebcd0ada657bdff313641a4a5fbc482c08cfb9a65acb1c9de5a"}, {"name":"redcarpet","version":"3.6.0","platform":"ruby","checksum":"8ad1889c0355ff4c47174af14edd06d62f45a326da1da6e8a121d59bdcd2e9e9"}, -{"name":"redis","version":"5.0.8","platform":"ruby","checksum":"3b770ea597850b26d6a9718fa184241e53e6c8a7ae0486ee8bfaefd29f26f3d8"}, +{"name":"redis","version":"4.8.0","platform":"ruby","checksum":"2000cf5014669c9dc821704b6d322a35a9a33852a95208911d9175d63b448a44"}, {"name":"redis-actionpack","version":"5.4.0","platform":"ruby","checksum":"f10cf649ab05914716d63334d7f709221ecc883b87cf348f90ecfe0c35ea3540"}, {"name":"redis-client","version":"0.19.0","platform":"ruby","checksum":"6ed9af23ff5aa87cf4d59439db77082b4cae5a0abbdd114ec5420bd63456324d"}, -{"name":"redis-cluster-client","version":"0.7.5","platform":"ruby","checksum":"12fd1c9eda17157a5cd2ce46afba13a024c28d24922092299a8daa9f46e4e78a"}, -{"name":"redis-clustering","version":"5.0.8","platform":"ruby","checksum":"8e2f3de3b1a700668eeac59125636e01be6ecd985e635a4d5649c47d71f6e166"}, {"name":"redis-namespace","version":"1.10.0","platform":"ruby","checksum":"2c1c6ea7c6c5e343e75b9bee3aa4c265e364a5b9966507397467af2bb3758d94"}, {"name":"redis-rack","version":"3.0.0","platform":"ruby","checksum":"abb50b82ae10ad4d11ca2e4901bfc2b98256cdafbbd95f80c86fc9e001478380"}, {"name":"redis-store","version":"1.10.0","platform":"ruby","checksum":"f258894f9f7e82834308a3d86242294f0cff2c9db9ae66e5cb4c553a5ec8b09e"}, @@ -710,7 +708,7 @@ {"name":"warning","version":"1.3.0","platform":"ruby","checksum":"23695a5d8e50bd5c46068931b529bee0b28e4982cbcefbe77d867800dde8069e"}, {"name":"webauthn","version":"3.0.0","platform":"ruby","checksum":"3f77d422c2a8a4b31e56cf42f83414bd066e0506e9896936e1730262dc4a20e6"}, {"name":"webfinger","version":"1.2.0","platform":"ruby","checksum":"7814ef1c85da47514f65c6e5ca14205fa9ce41ea2a70785e0c872842162852a2"}, -{"name":"webmock","version":"3.19.1","platform":"ruby","checksum":"eae7eee33989478188451f1fda4224d7fbe097c5c14e96b40b57347ef2d5d16d"}, +{"name":"webmock","version":"3.20.0","platform":"ruby","checksum":"cc33eaacc0fcfb5b36a127949557ab7089d4249b03a7cb0215dbc40e617a8365"}, {"name":"webrick","version":"1.8.1","platform":"ruby","checksum":"19411ec6912911fd3df13559110127ea2badd0c035f7762873f58afc803e158f"}, {"name":"websocket","version":"1.2.10","platform":"ruby","checksum":"2cc1a4a79b6e63637b326b4273e46adcddf7871caa5dc5711f2ca4061a629fa8"}, {"name":"websocket-driver","version":"0.7.6","platform":"java","checksum":"bc894b9e9d5aee55ac04b61003e1957c4ef411a5a048199587d0499785b505c3"}, diff --git a/Gemfile.lock b/Gemfile.lock index 8e3604c85fa..5d1139a6578 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1385,19 +1385,13 @@ GEM json recursive-open-struct (1.1.3) redcarpet (3.6.0) - redis (5.0.8) - redis-client (>= 0.17.0) + redis (4.8.0) redis-actionpack (5.4.0) actionpack (>= 5, < 8) redis-rack (>= 2.1.0, < 4) redis-store (>= 1.1.0, < 2) redis-client (0.19.0) connection_pool - redis-cluster-client (0.7.5) - redis-client (~> 0.12) - redis-clustering (5.0.8) - redis (= 5.0.8) - redis-cluster-client (>= 0.7.0) redis-namespace (1.10.0) redis (>= 4) redis-rack (3.0.0) @@ -1796,7 +1790,7 @@ GEM webfinger (1.2.0) activesupport httpclient (>= 2.4) - webmock (3.19.1) + webmock (3.20.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -2075,9 +2069,8 @@ DEPENDENCIES rbtrace (~> 0.4) re2 (= 2.7.0) recaptcha (~> 5.12) - redis (~> 5.0.0) + redis (~> 4.8.0) redis-actionpack (~> 5.4.0) - redis-clustering (~> 5.0.0) redis-namespace (~> 1.10.0) request_store (~> 1.5.1) responders (~> 3.0) @@ -2153,7 +2146,7 @@ DEPENDENCIES vmstat (~> 2.3.0) warning (~> 1.3.0) webauthn (~> 3.0) - webmock (~> 3.19.1) + webmock (~> 3.20.0) webrick (~> 1.8.1) wikicloth (= 0.8.1) yajl-ruby (~> 1.4.3) diff --git a/app/assets/javascripts/ci/job_details/store/getters.js b/app/assets/javascripts/ci/job_details/store/getters.js index db967da87fb..e48b4886967 100644 --- a/app/assets/javascripts/ci/job_details/store/getters.js +++ b/app/assets/javascripts/ci/job_details/store/getters.js @@ -34,7 +34,7 @@ export const emptyStateIllustration = (state) => state?.job?.status?.illustratio export const emptyStateAction = (state) => state?.job?.status?.action || null; /** - * Shared runners limit is only rendered when + * Instance/shared runners limit is only rendered when * used quota is bigger or equal than the limit * * @returns {Boolean} diff --git a/app/assets/javascripts/group_settings/components/shared_runners_form.vue b/app/assets/javascripts/group_settings/components/shared_runners_form.vue index d396169c0a3..1a5be851a4a 100644 --- a/app/assets/javascripts/group_settings/components/shared_runners_form.vue +++ b/app/assets/javascripts/group_settings/components/shared_runners_form.vue @@ -127,13 +127,13 @@ export default { :value="sharedRunnersToggleValue" :is-loading="isLoading" :disabled="isSharedRunnersToggleDisabled" - :label="__('Enable shared runners for this group')" - :description="__('Enable shared runners for all projects and subgroups in this group.')" + :label="__('Enable instance runners for this group')" + :description="__('Enable instance runners for all projects and subgroups in this group.')" data-testid="shared-runners-toggle" @change="onSharedRunnersToggle" >