Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-02-05 19:20:45 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-02-05 19:20:45 +0300
commitd298fad0c0564454271cba11e6f20c19681534ac (patch)
tree0a19d07d8b3bdd2574617305c300e404f2ace581 /config
parentc9f9eec79cab801a50db698f682aacffbedf07f7 (diff)
Add latest changes from gitlab-org/gitlab@13-9-stable-eev13.9.0-rc41
Diffstat (limited to 'config')
-rw-r--r--config/application.rb36
-rw-r--r--config/boot.rb2
-rw-r--r--config/dependency_decisions.yml8
-rw-r--r--config/environment.rb2
-rw-r--r--config/environments/development.rb2
-rw-r--r--config/environments/production.rb2
-rw-r--r--config/environments/test.rb2
-rw-r--r--config/feature_categories.yml3
-rw-r--r--config/feature_flags/development/add_issues_button.yml2
-rw-r--r--config/feature_flags/development/ajax_new_deploy_token.yml2
-rw-r--r--config/feature_flags/development/allow_group_deploy_token.yml2
-rw-r--r--config/feature_flags/development/api_always_use_application_json.yml (renamed from config/feature_flags/development/api_json_content_type.yml)2
-rw-r--r--config/feature_flags/development/archive_rate_limit.yml6
-rw-r--r--config/feature_flags/development/batch_suggestions.yml6
-rw-r--r--config/feature_flags/development/board_new_list.yml (renamed from config/feature_flags/development/variables_in_include_section_ci.yml)8
-rw-r--r--config/feature_flags/development/branches_pagination_without_count.yml (renamed from config/feature_flags/development/optional_code_owners_sections.yml)6
-rw-r--r--config/feature_flags/development/builds.yml8
-rw-r--r--config/feature_flags/development/cached_sidebar_open_issues_count.yml8
-rw-r--r--config/feature_flags/development/canary_ingress_weight_control.yml2
-rw-r--r--config/feature_flags/development/changelog_api.yml8
-rw-r--r--config/feature_flags/development/ci_accept_frontend_prometheus_metrics.yml (renamed from config/feature_flags/development/graphql_pipeline_header.yml)8
-rw-r--r--config/feature_flags/development/ci_auto_cancel_all_pipelines.yml8
-rw-r--r--config/feature_flags/development/ci_disallow_to_create_merge_request_pipelines_in_target_project.yml2
-rw-r--r--config/feature_flags/development/ci_instance_variables_ui.yml2
-rw-r--r--config/feature_flags/development/ci_job_jwt.yml2
-rw-r--r--config/feature_flags/development/ci_jwt_signing_key.yml2
-rw-r--r--config/feature_flags/development/ci_mini_pipeline_gl_dropdown.yml (renamed from config/feature_flags/development/new_pipeline_form_prefilled_vars.yml)10
-rw-r--r--config/feature_flags/development/ci_store_pipeline_messages.yml2
-rw-r--r--config/feature_flags/development/ci_synchronous_artifact_parsing.yml2
-rw-r--r--config/feature_flags/development/ci_validate_build_dependencies.yml8
-rw-r--r--config/feature_flags/development/ci_validate_build_dependencies_override.yml (renamed from config/feature_flags/development/ci_disable_validates_dependencies.yml)4
-rw-r--r--config/feature_flags/development/codequality_backend_comparison.yml8
-rw-r--r--config/feature_flags/development/context_commits.yml6
-rw-r--r--config/feature_flags/development/core_security_mr_widget_downloads.yml8
-rw-r--r--config/feature_flags/development/dag_pipeline_tab.yml8
-rw-r--r--config/feature_flags/development/deploy_keys_on_protected_branches.yml2
-rw-r--r--config/feature_flags/development/drop_license_management_artifact.yml6
-rw-r--r--config/feature_flags/development/dynamic_nonce_creation.yml8
-rw-r--r--config/feature_flags/development/feature_flag_api.yml2
-rw-r--r--config/feature_flags/development/feature_flag_permissions.yml2
-rw-r--r--config/feature_flags/development/file_identifier_hash.yml6
-rw-r--r--config/feature_flags/development/forking.yml8
-rw-r--r--config/feature_flags/development/forward_deployment_enabled.yml2
-rw-r--r--config/feature_flags/development/generic_packages.yml2
-rw-r--r--config/feature_flags/development/gitaly_upload_pack_gitaly_hooks.yml8
-rw-r--r--config/feature_flags/development/gitlab_ci_trace_read_consistency.yml8
-rw-r--r--config/feature_flags/development/graphql_individual_release_page.yml2
-rw-r--r--config/feature_flags/development/graphql_milestone_stats.yml2
-rw-r--r--config/feature_flags/development/graphql_pipeline_details_users.yml8
-rw-r--r--config/feature_flags/development/graphql_release_data.yml2
-rw-r--r--config/feature_flags/development/graphql_releases_page.yml2
-rw-r--r--config/feature_flags/development/group_wiki_import_export.yml (renamed from config/feature_flags/development/gitlab_experiments.yml)8
-rw-r--r--config/feature_flags/development/honor_escaped_markdown.yml8
-rw-r--r--config/feature_flags/development/import_requirements_csv.yml8
-rw-r--r--config/feature_flags/development/improved_merge_diff_highlighting.yml8
-rw-r--r--config/feature_flags/development/instance_statistics.yml2
-rw-r--r--config/feature_flags/development/integrations_test_webhook_optimizations.yml (renamed from config/feature_flags/development/jira_sync_builds.yml)8
-rw-r--r--config/feature_flags/development/issue_rebalancing_optimization.yml8
-rw-r--r--config/feature_flags/development/issues.yml8
-rw-r--r--config/feature_flags/development/jira_issues_show_integration.yml (renamed from config/feature_flags/development/jira_sync_feature_flags.yml)8
-rw-r--r--config/feature_flags/development/kubernetes_agent_on_gitlab_com.yml8
-rw-r--r--config/feature_flags/development/lfs_check.yml4
-rw-r--r--config/feature_flags/development/local_file_reviews.yml (renamed from config/feature_flags/development/metrics_dashboard.yml)10
-rw-r--r--config/feature_flags/development/merge_request_rebase_nowait_lock.yml6
-rw-r--r--config/feature_flags/development/merge_request_refs_cleanup.yml8
-rw-r--r--config/feature_flags/development/merge_requests.yml8
-rw-r--r--config/feature_flags/development/migrate_user_mentions.yml2
-rw-r--r--config/feature_flags/development/new_release_page.yml2
-rw-r--r--config/feature_flags/development/not_issuable_queries.yml2
-rw-r--r--config/feature_flags/development/optimized_issuable_label_filter.yml4
-rw-r--r--config/feature_flags/development/optimized_merge_request_count_with_merged_at_filter.yml8
-rw-r--r--config/feature_flags/development/optimized_timebox_queries.yml8
-rw-r--r--config/feature_flags/development/pages.yml8
-rw-r--r--config/feature_flags/development/pages_serve_from_deployments.yml2
-rw-r--r--config/feature_flags/development/pages_serve_from_legacy_storage.yml8
-rw-r--r--config/feature_flags/development/pages_serve_from_migrated_zip.yml8
-rw-r--r--config/feature_flags/development/pages_serve_with_zip_file_protocol.yml2
-rw-r--r--config/feature_flags/development/pages_update_legacy_storage.yml (renamed from config/feature_flags/development/ci_pipeline_open_merge_requests.yml)10
-rw-r--r--config/feature_flags/development/preset_root_ancestor_for_labels.yml8
-rw-r--r--config/feature_flags/development/prohibit_hexadecimal_branch_names.yml6
-rw-r--r--config/feature_flags/development/release_evidence.yml2
-rw-r--r--config/feature_flags/development/release_mr_issue_urls.yml2
-rw-r--r--config/feature_flags/development/remove_comment_close_reopen.yml8
-rw-r--r--config/feature_flags/development/repository.yml8
-rw-r--r--config/feature_flags/development/repository_archive_hotlinking_interception.yml6
-rw-r--r--config/feature_flags/development/secure_security_and_compliance_configuration_page_on_ce.yml (renamed from config/feature_flags/development/core_security_mr_widget.yml)10
-rw-r--r--config/feature_flags/development/similarity_search.yml2
-rw-r--r--config/feature_flags/development/snippets.yml8
-rw-r--r--config/feature_flags/development/specialized_project_authorization_workers.yml4
-rw-r--r--config/feature_flags/development/track_unique_visits.yml2
-rw-r--r--config/feature_flags/development/tribute_autocomplete.yml2
-rw-r--r--config/feature_flags/development/unlink_fork_network_upon_visibility_decrease.yml6
-rw-r--r--config/feature_flags/development/usage_data_i_ci_secrets_management_vault_build_created.yml2
-rw-r--r--config/feature_flags/development/usage_data_i_code_review_user_add_suggestion.yml (renamed from config/feature_flags/development/operations.yml)8
-rw-r--r--config/feature_flags/development/usage_data_i_code_review_user_apply_suggestion.yml8
-rw-r--r--config/feature_flags/development/usage_data_i_code_review_user_assigned.yml (renamed from config/feature_flags/development/squash_options.yml)6
-rw-r--r--config/feature_flags/development/usage_data_i_code_review_user_resolve_thread.yml8
-rw-r--r--config/feature_flags/development/usage_data_i_code_review_user_review_requested.yml (renamed from config/feature_flags/development/deploy_tokens_api.yml)8
-rw-r--r--config/feature_flags/development/usage_data_i_code_review_user_unresolve_thread.yml8
-rw-r--r--config/feature_flags/development/usage_data_i_testing_group_code_coverage_project_click_total.yml (renamed from config/feature_flags/development/ci_live_trace_use_fog_attributes.yml)8
-rw-r--r--config/feature_flags/development/usage_data_i_testing_load_performance_widget_total.yml8
-rw-r--r--config/feature_flags/development/usage_data_track_quickactions.yml (renamed from config/feature_flags/development/vue_issuable_sidebar.yml)8
-rw-r--r--config/feature_flags/development/usage_data_unique_users_committing_ciconfigfile.yml (renamed from config/feature_flags/development/ci_allow_failure_with_exit_codes.yml)10
-rw-r--r--config/feature_flags/development/use_workhorse_s3_client.yml2
-rw-r--r--config/feature_flags/development/vue_notification_dropdown.yml8
-rw-r--r--config/feature_flags/development/vue_project_members_list.yml (renamed from config/feature_flags/development/jira_sync_deployments.yml)10
-rw-r--r--config/feature_flags/development/webperf_experiment.yml8
-rw-r--r--config/feature_flags/development/wiki.yml8
-rw-r--r--config/feature_flags/development/wiki_housekeeping.yml (renamed from config/feature_flags/development/whats_new_drawer.yml)10
-rw-r--r--config/feature_flags/development/workhorse_archive_cache_disabled.yml6
-rw-r--r--config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml8
-rw-r--r--config/feature_flags/experiment/in_product_marketing_emails_experiment_percentage.yml8
-rw-r--r--config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml2
-rw-r--r--config/feature_flags/experiment/members_invite_email.yml8
-rw-r--r--config/feature_flags/ops/scalability_ci_fetch_sha.yml8
-rw-r--r--config/gitlab.yml.example6
-rw-r--r--config/helpers/incremental_webpack_compiler.js128
-rw-r--r--config/initializers/01_secret_token.rb2
-rw-r--r--config/initializers/0_acts_as_taggable.rb2
-rw-r--r--config/initializers/0_inject_enterprise_edition_module.rb35
-rw-r--r--config/initializers/0_inject_feature_flags.rb2
-rw-r--r--config/initializers/0_post_deployment_migrations.rb2
-rw-r--r--config/initializers/1_settings.rb13
-rw-r--r--config/initializers/2_gitlab.rb2
-rw-r--r--config/initializers/5_backend.rb2
-rw-r--r--config/initializers/6_validations.rb2
-rw-r--r--config/initializers/7_prometheus_metrics.rb47
-rw-r--r--config/initializers/7_redis.rb2
-rw-r--r--config/initializers/8_devise.rb2
-rw-r--r--config/initializers/8_gitaly.rb2
-rw-r--r--config/initializers/9_fast_gettext.rb2
-rw-r--r--config/initializers/action_dispatch_http_mime_negotiation.rb2
-rw-r--r--config/initializers/action_mailer_hooks.rb2
-rw-r--r--config/initializers/active_record_data_types.rb2
-rw-r--r--config/initializers/active_record_ping.rb2
-rw-r--r--config/initializers/active_record_preloader.rb2
-rw-r--r--config/initializers/active_record_schema_ignore_tables.rb2
-rw-r--r--config/initializers/active_record_table_definition.rb2
-rw-r--r--config/initializers/ar_speed_up_migration_checking.rb2
-rw-r--r--config/initializers/asset_proxy_settings.rb2
-rw-r--r--config/initializers/attr_encrypted_no_db_connection.rb2
-rw-r--r--config/initializers/backtrace_silencers.rb2
-rw-r--r--config/initializers/batch_loader.rb2
-rw-r--r--config/initializers/bootstrap_form.rb2
-rw-r--r--config/initializers/bullet.rb2
-rw-r--r--config/initializers/cluster_events_before_phased_restart.rb2
-rw-r--r--config/initializers/console_message.rb2
-rw-r--r--config/initializers/cookies_serializer.rb2
-rw-r--r--config/initializers/date_time_formats.rb2
-rw-r--r--config/initializers/default_url_options.rb2
-rw-r--r--config/initializers/deprecations.rb2
-rw-r--r--config/initializers/direct_upload_support.rb2
-rw-r--r--config/initializers/doorkeeper.rb2
-rw-r--r--config/initializers/doorkeeper_openid_connect.rb2
-rw-r--r--config/initializers/etag_caching.rb2
-rw-r--r--config/initializers/faraday.rb3
-rw-r--r--config/initializers/fill_shards.rb2
-rw-r--r--config/initializers/fix_local_cache_middleware.rb2
-rw-r--r--config/initializers/fog_google_https_private_urls.rb2
-rw-r--r--config/initializers/forbid_sidekiq_in_transactions.rb2
-rw-r--r--config/initializers/gettext_rails_i18n_patch.rb2
-rw-r--r--config/initializers/gitlab_kas_secret.rb2
-rw-r--r--config/initializers/gitlab_shell_secret_token.rb2
-rw-r--r--config/initializers/gitlab_workhorse_secret.rb2
-rw-r--r--config/initializers/go_get.rb2
-rw-r--r--config/initializers/grpc.rb2
-rw-r--r--config/initializers/hamlit.rb2
-rw-r--r--config/initializers/health_check.rb2
-rw-r--r--config/initializers/http_hostname_override.rb2
-rw-r--r--config/initializers/kaminari_active_record_relation_methods_with_limit.rb2
-rw-r--r--config/initializers/kaminari_config.rb2
-rw-r--r--config/initializers/lograge.rb2
-rw-r--r--config/initializers/mail_encoding_patch.rb2
-rw-r--r--config/initializers/mime_types.rb2
-rw-r--r--config/initializers/mini_magick.rb2
-rw-r--r--config/initializers/new_framework_defaults.rb2
-rw-r--r--config/initializers/octokit.rb2
-rw-r--r--config/initializers/omniauth.rb2
-rw-r--r--config/initializers/peek.rb3
-rw-r--r--config/initializers/postgresql_cte.rb2
-rw-r--r--config/initializers/premailer.rb2
-rw-r--r--config/initializers/query_limiting.rb2
-rw-r--r--config/initializers/rack_attack_logging.rb38
-rw-r--r--config/initializers/rack_lineprof.rb2
-rw-r--r--config/initializers/relative_naming_ci_namespace.rb2
-rw-r--r--config/initializers/request_context.rb2
-rw-r--r--config/initializers/request_profiler.rb2
-rw-r--r--config/initializers/routing_draw.rb2
-rw-r--r--config/initializers/sentry.rb2
-rw-r--r--config/initializers/server_uptime.rb2
-rw-r--r--config/initializers/session_store.rb2
-rw-r--r--config/initializers/sherlock.rb2
-rw-r--r--config/initializers/sprockets.rb2
-rw-r--r--config/initializers/static_files.rb2
-rw-r--r--config/initializers/time_zone.rb2
-rw-r--r--config/initializers/tracing.rb1
-rw-r--r--config/initializers/trusted_proxies.rb2
-rw-r--r--config/initializers/validate_puma.rb8
-rw-r--r--config/initializers/warden.rb2
-rw-r--r--config/initializers/workhorse_multipart.rb2
-rw-r--r--config/initializers/wrap_parameters.rb2
-rw-r--r--config/initializers/zz_metrics.rb16
-rw-r--r--config/initializers_before_autoloader/000_inflections.rb2
-rw-r--r--config/known_invalid_graphql_queries.yml1
-rw-r--r--config/metrics/counts_28d/deployments.yml5
-rw-r--r--config/metrics/counts_7d/g_project_management_issue_title_changed_weekly.yml5
-rw-r--r--config/metrics/counts_all/deployments.yml5
-rw-r--r--config/metrics/license/recorded_at.yml5
-rw-r--r--config/metrics/license/uuid.yml6
-rw-r--r--config/metrics/schema.json13
-rw-r--r--config/metrics/settings/database_adapter.yml5
-rw-r--r--config/object_store_settings.rb16
-rw-r--r--config/puma.example.development.rb2
-rw-r--r--config/puma.rb.example2
-rw-r--r--config/puma_actioncable.example.development.rb2
-rw-r--r--config/routes.rb27
-rw-r--r--config/routes/admin.rb2
-rw-r--r--config/routes/api.rb2
-rw-r--r--config/routes/dashboard.rb2
-rw-r--r--config/routes/development.rb2
-rw-r--r--config/routes/explore.rb2
-rw-r--r--config/routes/git_http.rb6
-rw-r--r--config/routes/google_api.rb2
-rw-r--r--config/routes/group.rb1
-rw-r--r--config/routes/help.rb2
-rw-r--r--config/routes/import.rb2
-rw-r--r--config/routes/legacy_builds.rb2
-rw-r--r--config/routes/merge_requests.rb1
-rw-r--r--config/routes/project.rb11
-rw-r--r--config/routes/repository.rb2
-rw-r--r--config/routes/sherlock.rb2
-rw-r--r--config/routes/sidekiq.rb2
-rw-r--r--config/routes/snippets.rb2
-rw-r--r--config/routes/uploads.rb2
-rw-r--r--config/routes/wiki.rb2
-rw-r--r--config/sidekiq_queues.yml12
-rw-r--r--config/smime_signature_settings.rb2
-rw-r--r--config/spring.rb2
-rw-r--r--config/webpack.config.js26
239 files changed, 902 insertions, 418 deletions
diff --git a/config/application.rb b/config/application.rb
index a8b6bc937cf..7e15d02a6da 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -176,12 +176,15 @@ module Gitlab
config.assets.precompile << "notify.css"
config.assets.precompile << "mailers/*.css"
config.assets.precompile << "page_bundles/_mixins_and_variables_and_functions.css"
+ config.assets.precompile << "page_bundles/admin/application_settings_metrics_and_profiling.css"
+ config.assets.precompile << "page_bundles/admin/jobs_index.css"
config.assets.precompile << "page_bundles/alert_management_details.css"
config.assets.precompile << "page_bundles/alert_management_settings.css"
config.assets.precompile << "page_bundles/boards.css"
config.assets.precompile << "page_bundles/build.css"
config.assets.precompile << "page_bundles/ci_status.css"
config.assets.precompile << "page_bundles/cycle_analytics.css"
+ config.assets.precompile << "page_bundles/security_discover.css"
config.assets.precompile << "page_bundles/dev_ops_report.css"
config.assets.precompile << "page_bundles/environments.css"
config.assets.precompile << "page_bundles/epics.css"
@@ -287,6 +290,14 @@ module Gitlab
methods: :any,
expose: headers_to_expose
end
+
+ # Cross-origin requests must be enabled for the Authorization code with PKCE OAuth flow when used from a browser.
+ allow do
+ origins '*'
+ resource '/oauth/token',
+ credentials: false,
+ methods: [:post]
+ end
end
# Use caching across all environments
@@ -368,30 +379,5 @@ module Gitlab
end
end
end
-
- config.after_initialize do
- # Devise (see initializers/8_devise.rb) already reloads routes if
- # eager loading is enabled, so don't do this twice since it's
- # expensive.
- Rails.application.reload_routes! unless config.eager_load
-
- project_url_helpers = Module.new do
- extend ActiveSupport::Concern
-
- Gitlab::Application.routes.named_routes.helper_names.each do |name|
- next unless name.include?('namespace_project')
-
- define_method(name.sub('namespace_project', 'project')) do |project, *args|
- send(name, project&.namespace, project, *args)
- end
- end
- end
-
- # We add the MilestonesRoutingHelper because we know that this does not
- # conflict with the methods defined in `project_url_helpers`, and we want
- # these methods available in the same places.
- Gitlab::Routing.add_helpers(project_url_helpers)
- Gitlab::Routing.add_helpers(TimeboxesRoutingHelper)
- end
end
end
diff --git a/config/boot.rb b/config/boot.rb
index da4e6b7290c..41bf7953737 100644
--- a/config/boot.rb
+++ b/config/boot.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
# Set up gems listed in the Gemfile.
diff --git a/config/dependency_decisions.yml b/config/dependency_decisions.yml
index c12ede63fba..774254d2ff1 100644
--- a/config/dependency_decisions.yml
+++ b/config/dependency_decisions.yml
@@ -310,7 +310,7 @@
- dompurify
- Apache-2.0
- :who: Lukas Eipert
- :why: "https://github.com/cure53/DOMPurify/blob/main/LICENSE and https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31928#note_346604841"
+ :why: https://github.com/cure53/DOMPurify/blob/main/LICENSE and https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31928#note_346604841
:versions: []
:when: 2020-08-13 13:42:46.508082000 Z
- - :permit
@@ -325,3 +325,9 @@
:why: Used to generate documentation. https://pypi.org/project/docutils/0.13.1/
:versions: []
:when: 2020-10-05 20:22:55.955189491 Z
+- - :permit
+ - WTFPL
+ - :who: Stan Hu
+ :why: https://github.com/xijo/reverse_markdown/blob/master/LICENSE
+ :versions: []
+ :when: 2021-02-03 08:47:28.792907000 Z
diff --git a/config/environment.rb b/config/environment.rb
index 426333bb469..d5abe55806c 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Load the Rails application.
require_relative 'application'
diff --git a/config/environments/development.rb b/config/environments/development.rb
index 31a3af77ba1..146cdd4f5a7 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb
diff --git a/config/environments/production.rb b/config/environments/production.rb
index d9b3ee354b0..e1a7db8d860 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 4e359cd308c..2c6ab3bbc79 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'gitlab/testing/request_blocker_middleware'
require 'gitlab/testing/robots_blocker_middleware'
require 'gitlab/testing/request_inspector_middleware'
diff --git a/config/feature_categories.yml b/config/feature_categories.yml
index 805cc3b50a3..5c7ae175d1d 100644
--- a/config/feature_categories.yml
+++ b/config/feature_categories.yml
@@ -66,6 +66,7 @@
- jenkins_importer
- jira_importer
- kubernetes_management
+- license
- license_compliance
- live_preview
- load_testing
@@ -84,7 +85,6 @@
- privacy_control_center
- product_analytics
- projects
-- provision
- purchase
- quality_management
- release_evidence
@@ -113,6 +113,7 @@
- usability_testing
- usage_ping
- users
+- utilization
- value_stream_management
- vulnerability_database
- vulnerability_management
diff --git a/config/feature_flags/development/add_issues_button.yml b/config/feature_flags/development/add_issues_button.yml
index cc4727a29c4..12a6ef61bba 100644
--- a/config/feature_flags/development/add_issues_button.yml
+++ b/config/feature_flags/development/add_issues_button.yml
@@ -1,7 +1,7 @@
---
name: add_issues_button
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47898
-rollout_issue_url:
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/292803
milestone: '13.6'
type: development
group: group::project management
diff --git a/config/feature_flags/development/ajax_new_deploy_token.yml b/config/feature_flags/development/ajax_new_deploy_token.yml
index 9a6826e6993..6b0d9697006 100644
--- a/config/feature_flags/development/ajax_new_deploy_token.yml
+++ b/config/feature_flags/development/ajax_new_deploy_token.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27141
rollout_issue_url:
milestone: '12.10'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: false
diff --git a/config/feature_flags/development/allow_group_deploy_token.yml b/config/feature_flags/development/allow_group_deploy_token.yml
index 91437352ad8..83f8f86b02c 100644
--- a/config/feature_flags/development/allow_group_deploy_token.yml
+++ b/config/feature_flags/development/allow_group_deploy_token.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23460
rollout_issue_url:
milestone: '12.8'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/api_json_content_type.yml b/config/feature_flags/development/api_always_use_application_json.yml
index 5653a834e62..4405ef64012 100644
--- a/config/feature_flags/development/api_json_content_type.yml
+++ b/config/feature_flags/development/api_always_use_application_json.yml
@@ -1,5 +1,5 @@
---
-name: api_json_content_type
+name: api_always_use_application_json
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/42229
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/270067
milestone: '13.6'
diff --git a/config/feature_flags/development/archive_rate_limit.yml b/config/feature_flags/development/archive_rate_limit.yml
index ee4af4d2835..3318d7fa939 100644
--- a/config/feature_flags/development/archive_rate_limit.yml
+++ b/config/feature_flags/development/archive_rate_limit.yml
@@ -1,8 +1,8 @@
---
name: archive_rate_limit
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25750
rollout_issue_url:
-milestone:
+milestone: '12.9'
type: development
-group:
+group: group::source code
default_enabled: false
diff --git a/config/feature_flags/development/batch_suggestions.yml b/config/feature_flags/development/batch_suggestions.yml
index f2bb0a8f9cb..b6180a6990b 100644
--- a/config/feature_flags/development/batch_suggestions.yml
+++ b/config/feature_flags/development/batch_suggestions.yml
@@ -1,8 +1,8 @@
---
name: batch_suggestions
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/34782
rollout_issue_url:
-milestone:
+milestone: '13.1'
type: development
-group:
+group: group::code review
default_enabled: true
diff --git a/config/feature_flags/development/variables_in_include_section_ci.yml b/config/feature_flags/development/board_new_list.yml
index f6fc810e6f2..e80da8c554f 100644
--- a/config/feature_flags/development/variables_in_include_section_ci.yml
+++ b/config/feature_flags/development/board_new_list.yml
@@ -1,8 +1,8 @@
---
-name: variables_in_include_section_ci
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50188/
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/294294
+name: board_new_list
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52061
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299366
milestone: '13.8'
type: development
-group: group::compliance
+group: group::project management
default_enabled: false
diff --git a/config/feature_flags/development/optional_code_owners_sections.yml b/config/feature_flags/development/branches_pagination_without_count.yml
index a7933f42fc9..e342f302b2c 100644
--- a/config/feature_flags/development/optional_code_owners_sections.yml
+++ b/config/feature_flags/development/branches_pagination_without_count.yml
@@ -1,8 +1,8 @@
---
-name: optional_code_owners_sections
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51002
+name: branches_pagination_without_count
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50759
rollout_issue_url:
-milestone: '13.8'
+milestone: '13.9'
type: development
group: group::source code
default_enabled: true
diff --git a/config/feature_flags/development/builds.yml b/config/feature_flags/development/builds.yml
deleted file mode 100644
index 9787c2b1e20..00000000000
--- a/config/feature_flags/development/builds.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: builds
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group:
-default_enabled: true
diff --git a/config/feature_flags/development/cached_sidebar_open_issues_count.yml b/config/feature_flags/development/cached_sidebar_open_issues_count.yml
new file mode 100644
index 00000000000..e94566057fc
--- /dev/null
+++ b/config/feature_flags/development/cached_sidebar_open_issues_count.yml
@@ -0,0 +1,8 @@
+---
+name: cached_sidebar_open_issues_count
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49739
+rollout_issue_url:
+milestone: '13.8'
+type: development
+group: group::product planning
+default_enabled: false
diff --git a/config/feature_flags/development/canary_ingress_weight_control.yml b/config/feature_flags/development/canary_ingress_weight_control.yml
index b2b5a3e5dfa..66d3f2de0ea 100644
--- a/config/feature_flags/development/canary_ingress_weight_control.yml
+++ b/config/feature_flags/development/canary_ingress_weight_control.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43816
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/260295
milestone: '13.5'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/changelog_api.yml b/config/feature_flags/development/changelog_api.yml
new file mode 100644
index 00000000000..1c90f05a0ed
--- /dev/null
+++ b/config/feature_flags/development/changelog_api.yml
@@ -0,0 +1,8 @@
+---
+name: changelog_api
+introduced_by_url: '13.9'
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300043
+milestone: '13.9'
+type: development
+group: group::source code
+default_enabled: false
diff --git a/config/feature_flags/development/graphql_pipeline_header.yml b/config/feature_flags/development/ci_accept_frontend_prometheus_metrics.yml
index 1d400c17452..b795b2505d8 100644
--- a/config/feature_flags/development/graphql_pipeline_header.yml
+++ b/config/feature_flags/development/ci_accept_frontend_prometheus_metrics.yml
@@ -1,8 +1,8 @@
---
-name: graphql_pipeline_header
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39494
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/254235
-milestone: '13.5'
+name: ci_accept_frontend_prometheus_metrics
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52820
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300770
+milestone: '13.9'
type: development
group: group::pipeline authoring
default_enabled: false
diff --git a/config/feature_flags/development/ci_auto_cancel_all_pipelines.yml b/config/feature_flags/development/ci_auto_cancel_all_pipelines.yml
deleted file mode 100644
index 7dfc6146b08..00000000000
--- a/config/feature_flags/development/ci_auto_cancel_all_pipelines.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: ci_auto_cancel_all_pipelines
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46686
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/275997
-milestone: '13.6'
-type: development
-group: group::pipeline authoring
-default_enabled: true
diff --git a/config/feature_flags/development/ci_disallow_to_create_merge_request_pipelines_in_target_project.yml b/config/feature_flags/development/ci_disallow_to_create_merge_request_pipelines_in_target_project.yml
index 4b134457a20..3962af65540 100644
--- a/config/feature_flags/development/ci_disallow_to_create_merge_request_pipelines_in_target_project.yml
+++ b/config/feature_flags/development/ci_disallow_to_create_merge_request_pipelines_in_target_project.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40724
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/235119
milestone: '13.4'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: false
diff --git a/config/feature_flags/development/ci_instance_variables_ui.yml b/config/feature_flags/development/ci_instance_variables_ui.yml
index f5cd2d21bd1..73bc0346818 100644
--- a/config/feature_flags/development/ci_instance_variables_ui.yml
+++ b/config/feature_flags/development/ci_instance_variables_ui.yml
@@ -1,7 +1,7 @@
---
name: ci_instance_variables_ui
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33510
-rollout_issue_url:
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299879
milestone: '13.1'
type: development
group: group::continuous integration
diff --git a/config/feature_flags/development/ci_job_jwt.yml b/config/feature_flags/development/ci_job_jwt.yml
index cba278c9103..ef2f43175ed 100644
--- a/config/feature_flags/development/ci_job_jwt.yml
+++ b/config/feature_flags/development/ci_job_jwt.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28063
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/207125
milestone: '12.10'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/ci_jwt_signing_key.yml b/config/feature_flags/development/ci_jwt_signing_key.yml
index 4f37b49d797..021f4e49e41 100644
--- a/config/feature_flags/development/ci_jwt_signing_key.yml
+++ b/config/feature_flags/development/ci_jwt_signing_key.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/34249
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/258546
milestone: '13.6'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/new_pipeline_form_prefilled_vars.yml b/config/feature_flags/development/ci_mini_pipeline_gl_dropdown.yml
index 0354b18fafd..fccebf552a9 100644
--- a/config/feature_flags/development/new_pipeline_form_prefilled_vars.yml
+++ b/config/feature_flags/development/ci_mini_pipeline_gl_dropdown.yml
@@ -1,8 +1,8 @@
---
-name: new_pipeline_form_prefilled_vars
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44120
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/263276
-milestone: '13.5'
+name: ci_mini_pipeline_gl_dropdown
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52821
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300400
+milestone: '13.9'
type: development
group: group::continuous integration
-default_enabled: true
+default_enabled: false
diff --git a/config/feature_flags/development/ci_store_pipeline_messages.yml b/config/feature_flags/development/ci_store_pipeline_messages.yml
index ae20b11f79c..702e4d891a9 100644
--- a/config/feature_flags/development/ci_store_pipeline_messages.yml
+++ b/config/feature_flags/development/ci_store_pipeline_messages.yml
@@ -1,7 +1,7 @@
---
name: ci_store_pipeline_messages
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33762
-rollout_issue_url:
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/224199
milestone: '13.2'
type: development
group: group::continuous integration
diff --git a/config/feature_flags/development/ci_synchronous_artifact_parsing.yml b/config/feature_flags/development/ci_synchronous_artifact_parsing.yml
index a5cf148559f..ab3a35e409b 100644
--- a/config/feature_flags/development/ci_synchronous_artifact_parsing.yml
+++ b/config/feature_flags/development/ci_synchronous_artifact_parsing.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26247
rollout_issue_url:
milestone: '12.9'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/ci_validate_build_dependencies.yml b/config/feature_flags/development/ci_validate_build_dependencies.yml
new file mode 100644
index 00000000000..885bdcf0c20
--- /dev/null
+++ b/config/feature_flags/development/ci_validate_build_dependencies.yml
@@ -0,0 +1,8 @@
+---
+name: ci_validate_build_dependencies
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14009
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/257852
+milestone: '10.3'
+type: development
+group: group::continuous integration
+default_enabled: true
diff --git a/config/feature_flags/development/ci_disable_validates_dependencies.yml b/config/feature_flags/development/ci_validate_build_dependencies_override.yml
index fd5b3d41eef..bce4b88ca39 100644
--- a/config/feature_flags/development/ci_disable_validates_dependencies.yml
+++ b/config/feature_flags/development/ci_validate_build_dependencies_override.yml
@@ -1,7 +1,7 @@
---
-name: ci_disable_validates_dependencies
+name: ci_validate_build_dependencies_override
introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14009
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/257847
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/257852
milestone: '10.3'
type: development
group: group::continuous integration
diff --git a/config/feature_flags/development/codequality_backend_comparison.yml b/config/feature_flags/development/codequality_backend_comparison.yml
new file mode 100644
index 00000000000..f7c3c14f674
--- /dev/null
+++ b/config/feature_flags/development/codequality_backend_comparison.yml
@@ -0,0 +1,8 @@
+---
+name: codequality_backend_comparison
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53068
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300796
+milestone: '13.9'
+type: development
+group: group::testing
+default_enabled: false
diff --git a/config/feature_flags/development/context_commits.yml b/config/feature_flags/development/context_commits.yml
index 270a058558b..bd71cf49da2 100644
--- a/config/feature_flags/development/context_commits.yml
+++ b/config/feature_flags/development/context_commits.yml
@@ -1,8 +1,8 @@
---
name: context_commits
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23701
rollout_issue_url:
-milestone:
+milestone: '12.8'
type: development
-group:
+group: group::code review
default_enabled: true
diff --git a/config/feature_flags/development/core_security_mr_widget_downloads.yml b/config/feature_flags/development/core_security_mr_widget_downloads.yml
deleted file mode 100644
index d89fbc302b3..00000000000
--- a/config/feature_flags/development/core_security_mr_widget_downloads.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: core_security_mr_widget_downloads
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48769
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/273418
-milestone: '13.7'
-type: development
-group: group::static analysis
-default_enabled: true
diff --git a/config/feature_flags/development/dag_pipeline_tab.yml b/config/feature_flags/development/dag_pipeline_tab.yml
deleted file mode 100644
index f2ae897df8e..00000000000
--- a/config/feature_flags/development/dag_pipeline_tab.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: dag_pipeline_tab
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30310
-rollout_issue_url:
-milestone: '13.0'
-type: development
-group: group::pipeline authoring
-default_enabled: true
diff --git a/config/feature_flags/development/deploy_keys_on_protected_branches.yml b/config/feature_flags/development/deploy_keys_on_protected_branches.yml
index 438726c0315..6306d5a63d4 100644
--- a/config/feature_flags/development/deploy_keys_on_protected_branches.yml
+++ b/config/feature_flags/development/deploy_keys_on_protected_branches.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35638
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/247866
milestone: '13.5'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: false
diff --git a/config/feature_flags/development/drop_license_management_artifact.yml b/config/feature_flags/development/drop_license_management_artifact.yml
index 1be40187b43..23c2290c07d 100644
--- a/config/feature_flags/development/drop_license_management_artifact.yml
+++ b/config/feature_flags/development/drop_license_management_artifact.yml
@@ -1,8 +1,8 @@
---
name: drop_license_management_artifact
-introduced_by_url:
-rollout_issue_url:
-milestone:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31247
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299114
+milestone: 13.0
type: development
group: group::composition analysis
default_enabled: true
diff --git a/config/feature_flags/development/dynamic_nonce_creation.yml b/config/feature_flags/development/dynamic_nonce_creation.yml
new file mode 100644
index 00000000000..b135f288554
--- /dev/null
+++ b/config/feature_flags/development/dynamic_nonce_creation.yml
@@ -0,0 +1,8 @@
+---
+name: dynamic_nonce_creation
+introduced_by_url:
+rollout_issue_url:
+milestone: '13.9'
+type: development
+group: group::manage
+default_enabled: false
diff --git a/config/feature_flags/development/feature_flag_api.yml b/config/feature_flags/development/feature_flag_api.yml
index 3dc1d87d741..167b5ff4cf2 100644
--- a/config/feature_flags/development/feature_flag_api.yml
+++ b/config/feature_flags/development/feature_flag_api.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18198
rollout_issue_url:
milestone: '12.4'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: false
diff --git a/config/feature_flags/development/feature_flag_permissions.yml b/config/feature_flags/development/feature_flag_permissions.yml
index b7a4e8cb1bb..48371af5221 100644
--- a/config/feature_flags/development/feature_flag_permissions.yml
+++ b/config/feature_flags/development/feature_flag_permissions.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10096
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/254981
milestone: '11.10'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: false
diff --git a/config/feature_flags/development/file_identifier_hash.yml b/config/feature_flags/development/file_identifier_hash.yml
index d5dc2b03eb6..84879e6c33e 100644
--- a/config/feature_flags/development/file_identifier_hash.yml
+++ b/config/feature_flags/development/file_identifier_hash.yml
@@ -1,8 +1,8 @@
---
name: file_identifier_hash
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33028
rollout_issue_url:
-milestone:
+milestone: '13.1'
type: development
-group:
+group: group::code review
default_enabled: false
diff --git a/config/feature_flags/development/forking.yml b/config/feature_flags/development/forking.yml
deleted file mode 100644
index 77e223d6268..00000000000
--- a/config/feature_flags/development/forking.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: forking
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group:
-default_enabled: true
diff --git a/config/feature_flags/development/forward_deployment_enabled.yml b/config/feature_flags/development/forward_deployment_enabled.yml
index b4ad2e75561..750fad15f15 100644
--- a/config/feature_flags/development/forward_deployment_enabled.yml
+++ b/config/feature_flags/development/forward_deployment_enabled.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24412
rollout_issue_url:
milestone: '12.8'
type: development
-group: group::progressive delivery
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/generic_packages.yml b/config/feature_flags/development/generic_packages.yml
index aa41fb58a56..b2ab35c713c 100644
--- a/config/feature_flags/development/generic_packages.yml
+++ b/config/feature_flags/development/generic_packages.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40045
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/239133
milestone: '13.4'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/gitaly_upload_pack_gitaly_hooks.yml b/config/feature_flags/development/gitaly_upload_pack_gitaly_hooks.yml
new file mode 100644
index 00000000000..86e268af772
--- /dev/null
+++ b/config/feature_flags/development/gitaly_upload_pack_gitaly_hooks.yml
@@ -0,0 +1,8 @@
+---
+name: gitaly_upload_pack_gitaly_hooks
+introduced_by_url:
+rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/807
+milestone: '13.9'
+type: development
+group:
+default_enabled: false
diff --git a/config/feature_flags/development/gitlab_ci_trace_read_consistency.yml b/config/feature_flags/development/gitlab_ci_trace_read_consistency.yml
new file mode 100644
index 00000000000..c9936a390dc
--- /dev/null
+++ b/config/feature_flags/development/gitlab_ci_trace_read_consistency.yml
@@ -0,0 +1,8 @@
+---
+name: gitlab_ci_trace_read_consistency
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46976
+rollout_issue_url:
+milestone: '13.9'
+type: development
+group: group::continuous integration
+default_enabled: false
diff --git a/config/feature_flags/development/graphql_individual_release_page.yml b/config/feature_flags/development/graphql_individual_release_page.yml
index 07eac51d380..8cf13ca4854 100644
--- a/config/feature_flags/development/graphql_individual_release_page.yml
+++ b/config/feature_flags/development/graphql_individual_release_page.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44779
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/263522
milestone: '13.5'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/graphql_milestone_stats.yml b/config/feature_flags/development/graphql_milestone_stats.yml
index f6873e1c9e9..2f09f2b188a 100644
--- a/config/feature_flags/development/graphql_milestone_stats.yml
+++ b/config/feature_flags/development/graphql_milestone_stats.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35066
rollout_issue_url:
milestone: '13.2'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/graphql_pipeline_details_users.yml b/config/feature_flags/development/graphql_pipeline_details_users.yml
new file mode 100644
index 00000000000..a52cf23c878
--- /dev/null
+++ b/config/feature_flags/development/graphql_pipeline_details_users.yml
@@ -0,0 +1,8 @@
+---
+name: graphql_pipeline_details_users
+introduced_by_url:
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299112
+milestone: '13.9'
+type: development
+group: group::pipeline authoring
+default_enabled: false
diff --git a/config/feature_flags/development/graphql_release_data.yml b/config/feature_flags/development/graphql_release_data.yml
index ef1f3dbba4c..a49d0ee1a6a 100644
--- a/config/feature_flags/development/graphql_release_data.yml
+++ b/config/feature_flags/development/graphql_release_data.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30753
rollout_issue_url:
milestone: '13.0'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/graphql_releases_page.yml b/config/feature_flags/development/graphql_releases_page.yml
index 541cf04bd79..b267f0543ec 100644
--- a/config/feature_flags/development/graphql_releases_page.yml
+++ b/config/feature_flags/development/graphql_releases_page.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33095
rollout_issue_url:
milestone: '13.4'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/gitlab_experiments.yml b/config/feature_flags/development/group_wiki_import_export.yml
index 51fa6aa4529..f9806ef0c28 100644
--- a/config/feature_flags/development/gitlab_experiments.yml
+++ b/config/feature_flags/development/group_wiki_import_export.yml
@@ -1,8 +1,8 @@
---
-name: gitlab_experiments
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45840
+name: group_wiki_import_export
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51873
rollout_issue_url:
-milestone: '13.7'
+milestone: '13.9'
type: development
-group: group::adoption
+group: group::editor
default_enabled: false
diff --git a/config/feature_flags/development/honor_escaped_markdown.yml b/config/feature_flags/development/honor_escaped_markdown.yml
new file mode 100644
index 00000000000..6a8f62d5b74
--- /dev/null
+++ b/config/feature_flags/development/honor_escaped_markdown.yml
@@ -0,0 +1,8 @@
+---
+name: honor_escaped_markdown
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45922
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300531
+milestone: '13.9'
+type: development
+group: 'group::project management'
+default_enabled: false
diff --git a/config/feature_flags/development/import_requirements_csv.yml b/config/feature_flags/development/import_requirements_csv.yml
deleted file mode 100644
index 736d2204b44..00000000000
--- a/config/feature_flags/development/import_requirements_csv.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: import_requirements_csv
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48060
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/284846
-milestone: '13.7'
-type: development
-group: group::product planning
-default_enabled: true
diff --git a/config/feature_flags/development/improved_merge_diff_highlighting.yml b/config/feature_flags/development/improved_merge_diff_highlighting.yml
new file mode 100644
index 00000000000..61978ff48da
--- /dev/null
+++ b/config/feature_flags/development/improved_merge_diff_highlighting.yml
@@ -0,0 +1,8 @@
+---
+name: improved_merge_diff_highlighting
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52499
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299884
+milestone: '13.9'
+type: development
+group: group::source code
+default_enabled: false
diff --git a/config/feature_flags/development/instance_statistics.yml b/config/feature_flags/development/instance_statistics.yml
index b5354561d03..3caddad8b69 100644
--- a/config/feature_flags/development/instance_statistics.yml
+++ b/config/feature_flags/development/instance_statistics.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40583
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/241711
milestone: '13.4'
type: development
-group: group::analytics
+group: group::optimize
default_enabled: true
diff --git a/config/feature_flags/development/jira_sync_builds.yml b/config/feature_flags/development/integrations_test_webhook_optimizations.yml
index 8cb054b848d..65108cdd516 100644
--- a/config/feature_flags/development/jira_sync_builds.yml
+++ b/config/feature_flags/development/integrations_test_webhook_optimizations.yml
@@ -1,8 +1,8 @@
---
-name: jira_sync_builds
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49348
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/292013
-milestone: '13.7'
+name: integrations_test_webhook_optimizations
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52646
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300105
+milestone: '13.9'
type: development
group: group::ecosystem
default_enabled: false
diff --git a/config/feature_flags/development/issue_rebalancing_optimization.yml b/config/feature_flags/development/issue_rebalancing_optimization.yml
new file mode 100644
index 00000000000..abaeb53f63d
--- /dev/null
+++ b/config/feature_flags/development/issue_rebalancing_optimization.yml
@@ -0,0 +1,8 @@
+---
+name: issue_rebalancing_optimization
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53384
+rollout_issue_url:
+milestone: '13.9'
+type: development
+group: group::project management
+default_enabled: false
diff --git a/config/feature_flags/development/issues.yml b/config/feature_flags/development/issues.yml
deleted file mode 100644
index a6ff572da52..00000000000
--- a/config/feature_flags/development/issues.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: issues
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group:
-default_enabled: true
diff --git a/config/feature_flags/development/jira_sync_feature_flags.yml b/config/feature_flags/development/jira_issues_show_integration.yml
index c5925766919..dd89ace22be 100644
--- a/config/feature_flags/development/jira_sync_feature_flags.yml
+++ b/config/feature_flags/development/jira_issues_show_integration.yml
@@ -1,8 +1,8 @@
---
-name: jira_sync_feature_flags
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50390
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/296990
-milestone: '13.8'
+name: jira_issues_show_integration
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52446
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299832
+milestone: '13.9'
type: development
group: group::ecosystem
default_enabled: false
diff --git a/config/feature_flags/development/kubernetes_agent_on_gitlab_com.yml b/config/feature_flags/development/kubernetes_agent_on_gitlab_com.yml
new file mode 100644
index 00000000000..fac509224e0
--- /dev/null
+++ b/config/feature_flags/development/kubernetes_agent_on_gitlab_com.yml
@@ -0,0 +1,8 @@
+---
+name: kubernetes_agent_on_gitlab_com
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53322
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300960
+milestone: '13.9'
+type: development
+group: group::configure
+default_enabled: false
diff --git a/config/feature_flags/development/lfs_check.yml b/config/feature_flags/development/lfs_check.yml
index 1a6413bd016..8e13d46a02f 100644
--- a/config/feature_flags/development/lfs_check.yml
+++ b/config/feature_flags/development/lfs_check.yml
@@ -1,8 +1,8 @@
---
name: lfs_check
introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/27451
-rollout_issue_url:
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/233550
milestone: '11.11'
type: development
-group:
+group: group::source code
default_enabled: true
diff --git a/config/feature_flags/development/metrics_dashboard.yml b/config/feature_flags/development/local_file_reviews.yml
index 39a7fd1260b..4001f6ade72 100644
--- a/config/feature_flags/development/metrics_dashboard.yml
+++ b/config/feature_flags/development/local_file_reviews.yml
@@ -1,8 +1,8 @@
---
-name: metrics_dashboard
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29634
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/257902
-milestone: '13.0'
+name: local_file_reviews
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51513
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/296674
+milestone: '13.9'
type: development
-group: group::monitor
+group: group::code review
default_enabled: true
diff --git a/config/feature_flags/development/merge_request_rebase_nowait_lock.yml b/config/feature_flags/development/merge_request_rebase_nowait_lock.yml
index 3ea69762c1d..73b8fe9ab63 100644
--- a/config/feature_flags/development/merge_request_rebase_nowait_lock.yml
+++ b/config/feature_flags/development/merge_request_rebase_nowait_lock.yml
@@ -1,8 +1,8 @@
---
name: merge_request_rebase_nowait_lock
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18481
rollout_issue_url:
-milestone:
+milestone: '12.5'
type: development
-group:
+group: group::code review
default_enabled: true
diff --git a/config/feature_flags/development/merge_request_refs_cleanup.yml b/config/feature_flags/development/merge_request_refs_cleanup.yml
new file mode 100644
index 00000000000..79ea3c8b7a7
--- /dev/null
+++ b/config/feature_flags/development/merge_request_refs_cleanup.yml
@@ -0,0 +1,8 @@
+---
+name: merge_request_refs_cleanup
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51558
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/296874
+milestone: '13.8'
+type: development
+group: group::code review
+default_enabled: false
diff --git a/config/feature_flags/development/merge_requests.yml b/config/feature_flags/development/merge_requests.yml
deleted file mode 100644
index 27f5f8b1085..00000000000
--- a/config/feature_flags/development/merge_requests.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: merge_requests
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group:
-default_enabled: true
diff --git a/config/feature_flags/development/migrate_user_mentions.yml b/config/feature_flags/development/migrate_user_mentions.yml
index df9e5477590..2b250994b5a 100644
--- a/config/feature_flags/development/migrate_user_mentions.yml
+++ b/config/feature_flags/development/migrate_user_mentions.yml
@@ -1,7 +1,7 @@
---
name: migrate_user_mentions
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/34378
-rollout_issue_url:
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/231175
milestone: '13.3'
type: development
group: group::project management
diff --git a/config/feature_flags/development/new_release_page.yml b/config/feature_flags/development/new_release_page.yml
index c3f757bfc41..7b73c296e4e 100644
--- a/config/feature_flags/development/new_release_page.yml
+++ b/config/feature_flags/development/new_release_page.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35367
rollout_issue_url:
milestone: '13.2'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/not_issuable_queries.yml b/config/feature_flags/development/not_issuable_queries.yml
index 80aba0fef0f..e5770d1a2ea 100644
--- a/config/feature_flags/development/not_issuable_queries.yml
+++ b/config/feature_flags/development/not_issuable_queries.yml
@@ -1,7 +1,7 @@
---
name: not_issuable_queries
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27639
-rollout_issue_url:
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/292809
milestone: '13.0'
type: development
group: group::project management
diff --git a/config/feature_flags/development/optimized_issuable_label_filter.yml b/config/feature_flags/development/optimized_issuable_label_filter.yml
index 4712cdaf230..8385b85e143 100644
--- a/config/feature_flags/development/optimized_issuable_label_filter.yml
+++ b/config/feature_flags/development/optimized_issuable_label_filter.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/34503
rollout_issue_url:
milestone: '13.4'
type: development
-group: group::analytics
-default_enabled: false
+group: group::optimize
+default_enabled: true
diff --git a/config/feature_flags/development/optimized_merge_request_count_with_merged_at_filter.yml b/config/feature_flags/development/optimized_merge_request_count_with_merged_at_filter.yml
new file mode 100644
index 00000000000..f27e14aab6c
--- /dev/null
+++ b/config/feature_flags/development/optimized_merge_request_count_with_merged_at_filter.yml
@@ -0,0 +1,8 @@
+---
+name: optimized_merge_request_count_with_merged_at_filter
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52113
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299347
+milestone: '13.9'
+type: development
+group: group::optimize
+default_enabled: false
diff --git a/config/feature_flags/development/optimized_timebox_queries.yml b/config/feature_flags/development/optimized_timebox_queries.yml
index 215242046c5..eea0b149079 100644
--- a/config/feature_flags/development/optimized_timebox_queries.yml
+++ b/config/feature_flags/development/optimized_timebox_queries.yml
@@ -1,8 +1,8 @@
---
name: optimized_timebox_queries
-introduced_by_url:
-rollout_issue_url:
-milestone:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/32953
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/34043
+milestone: '13.1'
type: development
-group:
+group: group::project management
default_enabled: true
diff --git a/config/feature_flags/development/pages.yml b/config/feature_flags/development/pages.yml
deleted file mode 100644
index b32ab9af770..00000000000
--- a/config/feature_flags/development/pages.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: pages
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group:
-default_enabled: true
diff --git a/config/feature_flags/development/pages_serve_from_deployments.yml b/config/feature_flags/development/pages_serve_from_deployments.yml
index f73e9f5b49d..d13bf2dfaa5 100644
--- a/config/feature_flags/development/pages_serve_from_deployments.yml
+++ b/config/feature_flags/development/pages_serve_from_deployments.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46320
rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/2932
milestone: '13.6'
type: development
-group: group::Release Management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/pages_serve_from_legacy_storage.yml b/config/feature_flags/development/pages_serve_from_legacy_storage.yml
new file mode 100644
index 00000000000..37d83106737
--- /dev/null
+++ b/config/feature_flags/development/pages_serve_from_legacy_storage.yml
@@ -0,0 +1,8 @@
+---
+name: pages_serve_from_legacy_storage
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/issues/297228
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/297524
+milestone: '13.8'
+type: development
+group: group::release
+default_enabled: true
diff --git a/config/feature_flags/development/pages_serve_from_migrated_zip.yml b/config/feature_flags/development/pages_serve_from_migrated_zip.yml
new file mode 100644
index 00000000000..18b912215b6
--- /dev/null
+++ b/config/feature_flags/development/pages_serve_from_migrated_zip.yml
@@ -0,0 +1,8 @@
+---
+name: pages_serve_from_migrated_zip
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52573
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/300021
+milestone: '13.9'
+type: development
+group: group::release
+default_enabled: false
diff --git a/config/feature_flags/development/pages_serve_with_zip_file_protocol.yml b/config/feature_flags/development/pages_serve_with_zip_file_protocol.yml
index 7700cf7fae5..2ac0cba2bce 100644
--- a/config/feature_flags/development/pages_serve_with_zip_file_protocol.yml
+++ b/config/feature_flags/development/pages_serve_with_zip_file_protocol.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46320
rollout_issue_url:
milestone: '13.6'
type: development
-group: group::Release Management
+group: group::release
default_enabled: false
diff --git a/config/feature_flags/development/ci_pipeline_open_merge_requests.yml b/config/feature_flags/development/pages_update_legacy_storage.yml
index 7e2ae1edd34..4a228b4cb8b 100644
--- a/config/feature_flags/development/ci_pipeline_open_merge_requests.yml
+++ b/config/feature_flags/development/pages_update_legacy_storage.yml
@@ -1,8 +1,8 @@
---
-name: ci_pipeline_open_merge_requests
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38673
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/292727
-milestone: '13.7'
-group: group::memory
+name: pages_update_legacy_storage
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50683
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/296138
+milestone: '13.9'
type: development
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/preset_root_ancestor_for_labels.yml b/config/feature_flags/development/preset_root_ancestor_for_labels.yml
new file mode 100644
index 00000000000..9851bceccd7
--- /dev/null
+++ b/config/feature_flags/development/preset_root_ancestor_for_labels.yml
@@ -0,0 +1,8 @@
+---
+name: preset_root_ancestor_for_labels
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52236
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299521
+milestone: '13.9'
+type: development
+group: group::plan
+default_enabled: false
diff --git a/config/feature_flags/development/prohibit_hexadecimal_branch_names.yml b/config/feature_flags/development/prohibit_hexadecimal_branch_names.yml
index cf90ccd0f69..916312b1005 100644
--- a/config/feature_flags/development/prohibit_hexadecimal_branch_names.yml
+++ b/config/feature_flags/development/prohibit_hexadecimal_branch_names.yml
@@ -1,8 +1,8 @@
---
name: prohibit_hexadecimal_branch_names
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/28439ca4b1dd14f22a5a6ad14530f6bf1046f8bc
rollout_issue_url:
-milestone:
+milestone: '12.10'
type: development
-group:
+group: group::source code
default_enabled: true
diff --git a/config/feature_flags/development/release_evidence.yml b/config/feature_flags/development/release_evidence.yml
index 87648e6a261..3ba5ed86c71 100644
--- a/config/feature_flags/development/release_evidence.yml
+++ b/config/feature_flags/development/release_evidence.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26509
rollout_issue_url:
milestone: '12.10'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/release_mr_issue_urls.yml b/config/feature_flags/development/release_mr_issue_urls.yml
index b017a716b51..4f9b43ce4e1 100644
--- a/config/feature_flags/development/release_mr_issue_urls.yml
+++ b/config/feature_flags/development/release_mr_issue_urls.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18727
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/276619
milestone: '12.4'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/remove_comment_close_reopen.yml b/config/feature_flags/development/remove_comment_close_reopen.yml
new file mode 100644
index 00000000000..1d3bf305cae
--- /dev/null
+++ b/config/feature_flags/development/remove_comment_close_reopen.yml
@@ -0,0 +1,8 @@
+---
+name: remove_comment_close_reopen
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49614
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/198562
+milestone: '13.9'
+type: development
+group: group::code review
+default_enabled: false
diff --git a/config/feature_flags/development/repository.yml b/config/feature_flags/development/repository.yml
deleted file mode 100644
index a9dd6cbdcb5..00000000000
--- a/config/feature_flags/development/repository.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: repository
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group:
-default_enabled: true
diff --git a/config/feature_flags/development/repository_archive_hotlinking_interception.yml b/config/feature_flags/development/repository_archive_hotlinking_interception.yml
index 6b684e5a8c7..56943627231 100644
--- a/config/feature_flags/development/repository_archive_hotlinking_interception.yml
+++ b/config/feature_flags/development/repository_archive_hotlinking_interception.yml
@@ -1,8 +1,8 @@
---
name: repository_archive_hotlinking_interception
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/50c11f278d18fe1f3fb12eb595067216bb58ade2
rollout_issue_url:
-milestone:
+milestone: '12.10'
type: development
-group:
+group: group::source code
default_enabled: true
diff --git a/config/feature_flags/development/core_security_mr_widget.yml b/config/feature_flags/development/secure_security_and_compliance_configuration_page_on_ce.yml
index dfeb30cd83a..e86211243a1 100644
--- a/config/feature_flags/development/core_security_mr_widget.yml
+++ b/config/feature_flags/development/secure_security_and_compliance_configuration_page_on_ce.yml
@@ -1,8 +1,8 @@
---
-name: core_security_mr_widget
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44639
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/249543
-milestone: '13.5'
+name: secure_security_and_compliance_configuration_page_on_ce
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50282
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/294076
+milestone: '13.9'
type: development
group: group::static analysis
-default_enabled: true
+default_enabled: false
diff --git a/config/feature_flags/development/similarity_search.yml b/config/feature_flags/development/similarity_search.yml
index 312ab767eb0..978095c94b5 100644
--- a/config/feature_flags/development/similarity_search.yml
+++ b/config/feature_flags/development/similarity_search.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/37300/
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38675
milestone: '13.3'
type: development
-group: group::analytics
+group: group::optimize
default_enabled: true
diff --git a/config/feature_flags/development/snippets.yml b/config/feature_flags/development/snippets.yml
deleted file mode 100644
index ee06c54e237..00000000000
--- a/config/feature_flags/development/snippets.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: snippets
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group:
-default_enabled: true
diff --git a/config/feature_flags/development/specialized_project_authorization_workers.yml b/config/feature_flags/development/specialized_project_authorization_workers.yml
index f3dbf09af14..16d6d4ed82f 100644
--- a/config/feature_flags/development/specialized_project_authorization_workers.yml
+++ b/config/feature_flags/development/specialized_project_authorization_workers.yml
@@ -1,8 +1,8 @@
---
name: specialized_project_authorization_workers
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31377
-rollout_issue_url:
+rollout_issue_url:
milestone: '13.0'
type: development
group: group::access
-default_enabled: false
+default_enabled: true
diff --git a/config/feature_flags/development/track_unique_visits.yml b/config/feature_flags/development/track_unique_visits.yml
index 80d969cc65b..b11539e830b 100644
--- a/config/feature_flags/development/track_unique_visits.yml
+++ b/config/feature_flags/development/track_unique_visits.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33146
rollout_issue_url:
milestone: '13.2'
type: development
-group: group::analytics
+group: group::optimize
default_enabled: true
diff --git a/config/feature_flags/development/tribute_autocomplete.yml b/config/feature_flags/development/tribute_autocomplete.yml
index 47fbd11f844..02094350b32 100644
--- a/config/feature_flags/development/tribute_autocomplete.yml
+++ b/config/feature_flags/development/tribute_autocomplete.yml
@@ -1,7 +1,7 @@
---
name: tribute_autocomplete
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/32671
-rollout_issue_url:
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/292804
milestone: '13.2'
type: development
group: group::project management
diff --git a/config/feature_flags/development/unlink_fork_network_upon_visibility_decrease.yml b/config/feature_flags/development/unlink_fork_network_upon_visibility_decrease.yml
index 986f002aa1d..c94b48d8329 100644
--- a/config/feature_flags/development/unlink_fork_network_upon_visibility_decrease.yml
+++ b/config/feature_flags/development/unlink_fork_network_upon_visibility_decrease.yml
@@ -1,8 +1,8 @@
---
name: unlink_fork_network_upon_visibility_decrease
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20466
rollout_issue_url:
-milestone:
+milestone: '12.6'
type: development
-group:
+group: group::source code
default_enabled: true
diff --git a/config/feature_flags/development/usage_data_i_ci_secrets_management_vault_build_created.yml b/config/feature_flags/development/usage_data_i_ci_secrets_management_vault_build_created.yml
index 58a28139a35..de3ca4fc689 100644
--- a/config/feature_flags/development/usage_data_i_ci_secrets_management_vault_build_created.yml
+++ b/config/feature_flags/development/usage_data_i_ci_secrets_management_vault_build_created.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46515
rollout_issue_url:
milestone: '13.6'
type: development
-group: group::release management
+group: group::release
default_enabled: true
diff --git a/config/feature_flags/development/operations.yml b/config/feature_flags/development/usage_data_i_code_review_user_add_suggestion.yml
index 5b5537ed740..832be26d50d 100644
--- a/config/feature_flags/development/operations.yml
+++ b/config/feature_flags/development/usage_data_i_code_review_user_add_suggestion.yml
@@ -1,8 +1,8 @@
---
-name: operations
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48347
+name: usage_data_i_code_review_user_add_suggestion
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52189
rollout_issue_url:
-milestone: '13.7'
+milestone: '13.9'
type: development
-group: group::editor
+group: group::code review
default_enabled: true
diff --git a/config/feature_flags/development/usage_data_i_code_review_user_apply_suggestion.yml b/config/feature_flags/development/usage_data_i_code_review_user_apply_suggestion.yml
new file mode 100644
index 00000000000..03aa1691825
--- /dev/null
+++ b/config/feature_flags/development/usage_data_i_code_review_user_apply_suggestion.yml
@@ -0,0 +1,8 @@
+---
+name: usage_data_i_code_review_user_apply_suggestion
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52189
+rollout_issue_url:
+milestone: '13.9'
+type: development
+group: group::code review
+default_enabled: true
diff --git a/config/feature_flags/development/squash_options.yml b/config/feature_flags/development/usage_data_i_code_review_user_assigned.yml
index bea03c6e9b2..f18208e44dc 100644
--- a/config/feature_flags/development/squash_options.yml
+++ b/config/feature_flags/development/usage_data_i_code_review_user_assigned.yml
@@ -1,8 +1,8 @@
---
-name: squash_options
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/33930
+name: usage_data_i_code_review_user_assigned
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52194
rollout_issue_url:
-milestone: '13.2'
+milestone: '13.9'
type: development
group: group::code review
default_enabled: true
diff --git a/config/feature_flags/development/usage_data_i_code_review_user_resolve_thread.yml b/config/feature_flags/development/usage_data_i_code_review_user_resolve_thread.yml
new file mode 100644
index 00000000000..8c7af83bab4
--- /dev/null
+++ b/config/feature_flags/development/usage_data_i_code_review_user_resolve_thread.yml
@@ -0,0 +1,8 @@
+---
+name: usage_data_i_code_review_user_resolve_thread
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52130
+rollout_issue_url:
+milestone: '13.9'
+type: development
+group: group::code review
+default_enabled: true
diff --git a/config/feature_flags/development/deploy_tokens_api.yml b/config/feature_flags/development/usage_data_i_code_review_user_review_requested.yml
index b9741e05d7e..540ac1f61e1 100644
--- a/config/feature_flags/development/deploy_tokens_api.yml
+++ b/config/feature_flags/development/usage_data_i_code_review_user_review_requested.yml
@@ -1,8 +1,8 @@
---
-name: deploy_tokens_api
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25219
+name: usage_data_i_code_review_user_review_requested
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52194
rollout_issue_url:
-milestone: '12.9'
+milestone: '13.9'
type: development
-group: group::package
+group: group::code review
default_enabled: true
diff --git a/config/feature_flags/development/usage_data_i_code_review_user_unresolve_thread.yml b/config/feature_flags/development/usage_data_i_code_review_user_unresolve_thread.yml
new file mode 100644
index 00000000000..49b860416c5
--- /dev/null
+++ b/config/feature_flags/development/usage_data_i_code_review_user_unresolve_thread.yml
@@ -0,0 +1,8 @@
+---
+name: usage_data_i_code_review_user_unresolve_thread
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52130
+rollout_issue_url:
+milestone: '13.9'
+type: development
+group: group::code review
+default_enabled: true
diff --git a/config/feature_flags/development/ci_live_trace_use_fog_attributes.yml b/config/feature_flags/development/usage_data_i_testing_group_code_coverage_project_click_total.yml
index 20a38d77407..c4850caaf9d 100644
--- a/config/feature_flags/development/ci_live_trace_use_fog_attributes.yml
+++ b/config/feature_flags/development/usage_data_i_testing_group_code_coverage_project_click_total.yml
@@ -1,8 +1,8 @@
---
-name: ci_live_trace_use_fog_attributes
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47536
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/285079
-milestone: '13.6'
+name: usage_data_i_testing_group_code_coverage_project_click_total
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51411
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299893
+milestone: '13.8'
type: development
group: group::testing
default_enabled: true
diff --git a/config/feature_flags/development/usage_data_i_testing_load_performance_widget_total.yml b/config/feature_flags/development/usage_data_i_testing_load_performance_widget_total.yml
new file mode 100644
index 00000000000..3ffb9bceb99
--- /dev/null
+++ b/config/feature_flags/development/usage_data_i_testing_load_performance_widget_total.yml
@@ -0,0 +1,8 @@
+---
+name: usage_data_i_testing_load_performance_widget_total
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52688
+rollout_issue_url:
+milestone: '13.9'
+type: development
+group: group::testing
+default_enabled: true
diff --git a/config/feature_flags/development/vue_issuable_sidebar.yml b/config/feature_flags/development/usage_data_track_quickactions.yml
index 47c17db1206..57f698f7031 100644
--- a/config/feature_flags/development/vue_issuable_sidebar.yml
+++ b/config/feature_flags/development/usage_data_track_quickactions.yml
@@ -1,8 +1,8 @@
---
-name: vue_issuable_sidebar
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18199
-rollout_issue_url:
-milestone: '12.4'
+name: usage_data_track_quickactions
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52398
+rollout_issue_url:
+milestone: '13.9'
type: development
group: group::project management
default_enabled: false
diff --git a/config/feature_flags/development/ci_allow_failure_with_exit_codes.yml b/config/feature_flags/development/usage_data_unique_users_committing_ciconfigfile.yml
index 1d33a162445..ebe8125aa65 100644
--- a/config/feature_flags/development/ci_allow_failure_with_exit_codes.yml
+++ b/config/feature_flags/development/usage_data_unique_users_committing_ciconfigfile.yml
@@ -1,8 +1,8 @@
---
-name: ci_allow_failure_with_exit_codes
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49145
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/292024
-milestone: '13.7'
+name: usage_data_unique_users_committing_ciconfigfile
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52172
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299403
+milestone: '13.9'
type: development
group: group::pipeline authoring
-default_enabled: true
+default_enabled: false
diff --git a/config/feature_flags/development/use_workhorse_s3_client.yml b/config/feature_flags/development/use_workhorse_s3_client.yml
index 7f14d51a66c..3c34c420ebf 100644
--- a/config/feature_flags/development/use_workhorse_s3_client.yml
+++ b/config/feature_flags/development/use_workhorse_s3_client.yml
@@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35480
rollout_issue_url:
milestone: '13.2'
type: development
-group:
+group: group::source code
default_enabled: true
diff --git a/config/feature_flags/development/vue_notification_dropdown.yml b/config/feature_flags/development/vue_notification_dropdown.yml
new file mode 100644
index 00000000000..4c4f67fe928
--- /dev/null
+++ b/config/feature_flags/development/vue_notification_dropdown.yml
@@ -0,0 +1,8 @@
+---
+name: vue_notification_dropdown
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52068
+rollout_issue_url:
+milestone: '13.8'
+type: development
+group: group::optimize
+default_enabled: false
diff --git a/config/feature_flags/development/jira_sync_deployments.yml b/config/feature_flags/development/vue_project_members_list.yml
index 8a644d43ba0..37eb9167ddd 100644
--- a/config/feature_flags/development/jira_sync_deployments.yml
+++ b/config/feature_flags/development/vue_project_members_list.yml
@@ -1,8 +1,8 @@
---
-name: jira_sync_deployments
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49757
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/294034
-milestone: '13.7'
+name: vue_project_members_list
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52148
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299954
+milestone: '13.9'
type: development
-group: group::ecosystem
+group: group::access
default_enabled: false
diff --git a/config/feature_flags/development/webperf_experiment.yml b/config/feature_flags/development/webperf_experiment.yml
deleted file mode 100644
index 50408df0555..00000000000
--- a/config/feature_flags/development/webperf_experiment.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: webperf_experiment
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group: group::editor
-default_enabled: false
diff --git a/config/feature_flags/development/wiki.yml b/config/feature_flags/development/wiki.yml
deleted file mode 100644
index 008852d2c13..00000000000
--- a/config/feature_flags/development/wiki.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: wiki
-introduced_by_url:
-rollout_issue_url:
-milestone:
-type: development
-group: group::editor
-default_enabled: true
diff --git a/config/feature_flags/development/whats_new_drawer.yml b/config/feature_flags/development/wiki_housekeeping.yml
index c06dfbe1fe6..aeff94b471b 100644
--- a/config/feature_flags/development/whats_new_drawer.yml
+++ b/config/feature_flags/development/wiki_housekeeping.yml
@@ -1,8 +1,8 @@
---
-name: whats_new_drawer
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38975
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/254186
-milestone: '13.3'
+name: wiki_housekeeping
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51576
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/299343
+milestone: '13.9'
type: development
-group: group::retention
+group: group::editor
default_enabled: false
diff --git a/config/feature_flags/development/workhorse_archive_cache_disabled.yml b/config/feature_flags/development/workhorse_archive_cache_disabled.yml
index e7871d9062b..e40741863d4 100644
--- a/config/feature_flags/development/workhorse_archive_cache_disabled.yml
+++ b/config/feature_flags/development/workhorse_archive_cache_disabled.yml
@@ -1,8 +1,8 @@
---
name: workhorse_archive_cache_disabled
-introduced_by_url:
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/16325
rollout_issue_url:
-milestone:
+milestone: '10.5'
type: development
-group:
+group: group::source code
default_enabled: false
diff --git a/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml b/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml
deleted file mode 100644
index d4a695502f9..00000000000
--- a/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: default_to_issues_board_experiment_percentage
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43939
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/268298
-milestone: '13.5'
-type: experiment
-group: group::conversion
-default_enabled: true
diff --git a/config/feature_flags/experiment/in_product_marketing_emails_experiment_percentage.yml b/config/feature_flags/experiment/in_product_marketing_emails_experiment_percentage.yml
new file mode 100644
index 00000000000..8cb198a2102
--- /dev/null
+++ b/config/feature_flags/experiment/in_product_marketing_emails_experiment_percentage.yml
@@ -0,0 +1,8 @@
+---
+name: in_product_marketing_emails_experiment_percentage
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50679
+rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/303
+milestone: "13.9"
+type: experiment
+group: group::activation
+default_enabled: false
diff --git a/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml b/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml
index 6fac63b381c..216726178f1 100644
--- a/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml
+++ b/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml
@@ -1,7 +1,7 @@
---
name: invite_members_new_dropdown_experiment_percentage
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50069
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/268129
+rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/291
milestone: '13.8'
type: experiment
group: group::expansion
diff --git a/config/feature_flags/experiment/members_invite_email.yml b/config/feature_flags/experiment/members_invite_email.yml
new file mode 100644
index 00000000000..5bf0b9d10d0
--- /dev/null
+++ b/config/feature_flags/experiment/members_invite_email.yml
@@ -0,0 +1,8 @@
+---
+name: members_invite_email
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51223
+rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/325
+milestone: '13.9'
+type: experiment
+group: group::expansion
+default_enabled: false
diff --git a/config/feature_flags/ops/scalability_ci_fetch_sha.yml b/config/feature_flags/ops/scalability_ci_fetch_sha.yml
deleted file mode 100644
index e8133f16072..00000000000
--- a/config/feature_flags/ops/scalability_ci_fetch_sha.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: scalability_ci_fetch_sha
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51208
-rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/746
-milestone: '13.8'
-type: ops
-group: team::Scalability
-default_enabled: false
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index 92e7501d49d..29b60aa91c5 100644
--- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example
@@ -165,6 +165,9 @@ production: &base
## Disable jQuery and CSS animations
# disable_animations: true
+ ## Application settings cache expiry in seconds (default: 60)
+ # application_settings_cache_seconds: 60
+
## Reply by email
# Allow users to comment on issues and merge requests by replying to notification emails.
# For documentation on how to set this up, see http://doc.gitlab.com/ce/administration/reply_by_email.html
@@ -432,7 +435,7 @@ production: &base
cron: "0 * * * *"
# Execute scheduled triggers
pipeline_schedule_worker:
- cron: "19 * * * *"
+ cron: "3-59/10 * * * *"
# Remove expired build artifacts
expire_build_artifacts_worker:
cron: "*/7 * * * *"
@@ -1239,6 +1242,7 @@ production: &base
## Matomo analytics.
# matomo_url: '_your_matomo_url'
# matomo_site_id: '_your_matomo_site_id'
+ # matomo_disable_cookies: false
rack_attack:
git_basic_auth:
diff --git a/config/helpers/incremental_webpack_compiler.js b/config/helpers/incremental_webpack_compiler.js
new file mode 100644
index 00000000000..786bb6071fa
--- /dev/null
+++ b/config/helpers/incremental_webpack_compiler.js
@@ -0,0 +1,128 @@
+const fs = require('fs');
+const path = require('path');
+
+const log = (msg, ...rest) => console.log(`IncrementalWebpackCompiler: ${msg}`, ...rest);
+
+// If we force a recompile immediately, the page reload doesn't seem to work.
+// Five seconds seem to work fine and the user can read the message
+const TIMEOUT = 5000;
+
+class NoopCompiler {
+ constructor() {
+ this.enabled = false;
+ }
+
+ filterEntryPoints(entryPoints) {
+ return entryPoints;
+ }
+
+ logStatus() {}
+
+ setupMiddleware() {}
+}
+
+class IncrementalWebpackCompiler {
+ constructor(historyFilePath) {
+ this.enabled = true;
+ this.history = {};
+ this.compiledEntryPoints = new Set([
+ // Login page
+ 'pages.sessions.new',
+ // Explore page
+ 'pages.root',
+ ]);
+ this.historyFilePath = historyFilePath;
+ this._loadFromHistory();
+ }
+
+ filterEntryPoints(entrypoints) {
+ return Object.fromEntries(
+ Object.entries(entrypoints).map(([key, val]) => {
+ if (this.compiledEntryPoints.has(key)) {
+ return [key, val];
+ }
+ return [key, ['./webpack_non_compiled_placeholder.js']];
+ }),
+ );
+ }
+
+ logStatus(totalCount) {
+ const current = this.compiledEntryPoints.size;
+ log(`Currently compiling route entrypoints: ${current} of ${totalCount}`);
+ }
+
+ setupMiddleware(app, server) {
+ app.use((req, res, next) => {
+ const fileName = path.basename(req.url);
+
+ /**
+ * We are only interested in files that have a name like `pages.foo.bar.chunk.js`
+ * because those are the ones corresponding to our entry points.
+ *
+ * This filters out hot update files that are for example named "pages.foo.bar.[hash].hot-update.js"
+ */
+ if (fileName.startsWith('pages.') && fileName.endsWith('.chunk.js')) {
+ const chunk = fileName.replace(/\.chunk\.js$/, '');
+
+ this._addToHistory(chunk);
+
+ if (!this.compiledEntryPoints.has(chunk)) {
+ log(`First time we are seeing ${chunk}. Adding to compilation.`);
+
+ this.compiledEntryPoints.add(chunk);
+
+ setTimeout(() => {
+ server.middleware.invalidate(() => {
+ if (server.sockets) {
+ server.sockWrite(server.sockets, 'content-changed');
+ }
+ });
+ }, TIMEOUT);
+ }
+ }
+
+ next();
+ });
+ }
+
+ // private methods
+
+ _addToHistory(chunk) {
+ if (!this.history[chunk]) {
+ this.history[chunk] = { lastVisit: null, count: 0 };
+ }
+ this.history[chunk].lastVisit = Date.now();
+ this.history[chunk].count += 1;
+
+ try {
+ fs.writeFileSync(this.historyFilePath, JSON.stringify(this.history), 'utf8');
+ } catch (e) {
+ log('Warning – Could not write to history', e.message);
+ }
+ }
+
+ _loadFromHistory() {
+ try {
+ this.history = JSON.parse(fs.readFileSync(this.historyFilePath, 'utf8'));
+ const entryPoints = Object.keys(this.history);
+ log(`Successfully loaded history containing ${entryPoints.length} entry points`);
+ /*
+ TODO: Let's ask a few folks to give us their history file after a milestone of usage
+ Then we can make smarter decisions on when to throw out rather than rendering everything
+ Something like top 20/30/40 entries visited in the last 7/10/15 days might be sufficient
+ */
+ this.compiledEntryPoints = new Set([...this.compiledEntryPoints, ...entryPoints]);
+ } catch (e) {
+ log(`No history found...`);
+ }
+ }
+}
+
+module.exports = (enabled, historyFilePath) => {
+ log(`Status – ${enabled ? 'enabled' : 'disabled'}`);
+
+ if (enabled) {
+ return new IncrementalWebpackCompiler(historyFilePath);
+ }
+ return new NoopCompiler();
+};
diff --git a/config/initializers/01_secret_token.rb b/config/initializers/01_secret_token.rb
index d7e725477eb..c4520b4b313 100644
--- a/config/initializers/01_secret_token.rb
+++ b/config/initializers/01_secret_token.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# WARNING: Before you make a change to secrets.yml, read the development guide for GitLab secrets
# doc/development/application_secrets.md.
#
diff --git a/config/initializers/0_acts_as_taggable.rb b/config/initializers/0_acts_as_taggable.rb
index 50dc47673ab..9a92b8f2d18 100644
--- a/config/initializers/0_acts_as_taggable.rb
+++ b/config/initializers/0_acts_as_taggable.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
ActsAsTaggableOn.strict_case_match = true
# tags_counter enables caching count of tags which results in an update whenever a tag is added or removed
diff --git a/config/initializers/0_inject_enterprise_edition_module.rb b/config/initializers/0_inject_enterprise_edition_module.rb
index b3ebb44ef25..7478727f869 100644
--- a/config/initializers/0_inject_enterprise_edition_module.rb
+++ b/config/initializers/0_inject_enterprise_edition_module.rb
@@ -6,12 +6,7 @@ module InjectEnterpriseEditionModule
def prepend_if_ee(constant, with_descendants: false)
return unless Gitlab.ee?
- ee_module = constant.constantize
- prepend(ee_module)
-
- if with_descendants
- descendants.each { |descendant| descendant.prepend(ee_module) }
- end
+ prepend_module(constant.constantize, with_descendants)
end
def extend_if_ee(constant)
@@ -21,6 +16,34 @@ module InjectEnterpriseEditionModule
def include_if_ee(constant)
include(constant.constantize) if Gitlab.ee?
end
+
+ def prepend_ee_mod(with_descendants: false)
+ return unless Gitlab.ee?
+
+ prepend_module(ee_module, with_descendants)
+ end
+
+ def extend_ee_mod
+ extend(ee_module) if Gitlab.ee?
+ end
+
+ def include_ee_mod
+ include(ee_module) if Gitlab.ee?
+ end
+
+ private
+
+ def prepend_module(mod, with_descendants)
+ prepend(mod)
+
+ if with_descendants
+ descendants.each { |descendant| descendant.prepend(mod) }
+ end
+ end
+
+ def ee_module
+ ::EE.const_get(name, false)
+ end
end
Module.prepend(InjectEnterpriseEditionModule)
diff --git a/config/initializers/0_inject_feature_flags.rb b/config/initializers/0_inject_feature_flags.rb
index 5b33b3bb4ea..daf208bd960 100644
--- a/config/initializers/0_inject_feature_flags.rb
+++ b/config/initializers/0_inject_feature_flags.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# This needs to be loaded after
# config/initializers/0_inject_enterprise_edition_module.rb
diff --git a/config/initializers/0_post_deployment_migrations.rb b/config/initializers/0_post_deployment_migrations.rb
index 2d647f72840..dabb82c8525 100644
--- a/config/initializers/0_post_deployment_migrations.rb
+++ b/config/initializers/0_post_deployment_migrations.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Post deployment migrations are included by default. This file must be loaded
# before other initializers as Rails may otherwise memoize a list of migrations
# excluding the post deployment migrations.
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index bbed08f5044..2d8bab50635 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require_relative '../settings'
require_relative '../object_store_settings'
require_relative '../smime_signature_settings'
@@ -416,7 +418,7 @@ Settings.cron_jobs['stuck_ci_jobs_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['stuck_ci_jobs_worker']['cron'] ||= '0 * * * *'
Settings.cron_jobs['stuck_ci_jobs_worker']['job_class'] = 'StuckCiJobsWorker'
Settings.cron_jobs['pipeline_schedule_worker'] ||= Settingslogic.new({})
-Settings.cron_jobs['pipeline_schedule_worker']['cron'] ||= '19 * * * *'
+Settings.cron_jobs['pipeline_schedule_worker']['cron'] ||= '3-59/10 * * * *'
Settings.cron_jobs['pipeline_schedule_worker']['job_class'] = 'PipelineScheduleWorker'
Settings.cron_jobs['expire_build_artifacts_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['expire_build_artifacts_worker']['cron'] ||= '*/7 * * * *'
@@ -545,6 +547,12 @@ Settings.cron_jobs['manage_evidence_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['manage_evidence_worker']['cron'] ||= '0 * * * *'
Settings.cron_jobs['manage_evidence_worker']['job_class'] = 'Releases::ManageEvidenceWorker'
+Gitlab.com do
+ Settings.cron_jobs['namespaces_in_product_marketing_emails_worker'] ||= Settingslogic.new({})
+ Settings.cron_jobs['namespaces_in_product_marketing_emails_worker']['cron'] ||= '0 9 * * *'
+ Settings.cron_jobs['namespaces_in_product_marketing_emails_worker']['job_class'] = 'Namespaces::InProductMarketingEmailsWorker'
+end
+
Gitlab.ee do
Settings.cron_jobs['analytics_devops_adoption_create_all_snapshots_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['analytics_devops_adoption_create_all_snapshots_worker']['cron'] ||= '0 4 * * *'
@@ -597,6 +605,9 @@ Gitlab.ee do
Settings.cron_jobs['incident_sla_exceeded_check_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['incident_sla_exceeded_check_worker']['cron'] ||= '*/2 * * * *'
Settings.cron_jobs['incident_sla_exceeded_check_worker']['job_class'] = 'IncidentManagement::IncidentSlaExceededCheckWorker'
+ Settings.cron_jobs['incident_management_persist_oncall_rotation_worker'] ||= Settingslogic.new({})
+ Settings.cron_jobs['incident_management_persist_oncall_rotation_worker']['cron'] ||= '*/5 * * * *'
+ Settings.cron_jobs['incident_management_persist_oncall_rotation_worker']['job_class'] = 'IncidentManagement::OncallRotations::PersistAllRotationsShiftsJob'
Settings.cron_jobs['import_software_licenses_worker'] ||= Settingslogic.new({})
Settings.cron_jobs['import_software_licenses_worker']['cron'] ||= '0 3 * * 0'
Settings.cron_jobs['import_software_licenses_worker']['job_class'] = 'ImportSoftwareLicensesWorker'
diff --git a/config/initializers/2_gitlab.rb b/config/initializers/2_gitlab.rb
index 8b7f245b7b0..5b78a471f8a 100644
--- a/config/initializers/2_gitlab.rb
+++ b/config/initializers/2_gitlab.rb
@@ -1 +1,3 @@
+# frozen_string_literal: true
+
require_dependency 'gitlab'
diff --git a/config/initializers/5_backend.rb b/config/initializers/5_backend.rb
index 46854af9b55..78910bb7675 100644
--- a/config/initializers/5_backend.rb
+++ b/config/initializers/5_backend.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
unless Rails.env.test?
required_version = Gitlab::VersionInfo.parse(Gitlab::Shell.version_required)
current_version = Gitlab::VersionInfo.parse(Gitlab::Shell.version)
diff --git a/config/initializers/6_validations.rb b/config/initializers/6_validations.rb
index 827b15e5c8d..060b04be824 100644
--- a/config/initializers/6_validations.rb
+++ b/config/initializers/6_validations.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
def storage_validation_error(message)
raise "#{message}. Please fix this in your gitlab.yml before starting GitLab."
end
diff --git a/config/initializers/7_prometheus_metrics.rb b/config/initializers/7_prometheus_metrics.rb
index 65ff6b656b9..a304f861db8 100644
--- a/config/initializers/7_prometheus_metrics.rb
+++ b/config/initializers/7_prometheus_metrics.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'prometheus/client'
# Keep separate directories for separate processes
@@ -39,6 +41,32 @@ Sidekiq.configure_server do |config|
end
if !Rails.env.test? && Gitlab::Metrics.prometheus_metrics_enabled?
+ # When running Puma in a Single mode, `on_master_start` and `on_worker_start` are the same.
+ # Thus, we order these events to run `reinitialize_on_pid_change` with `force: true` first.
+ Gitlab::Cluster::LifecycleEvents.on_master_start do
+ # Ensure that stale Prometheus metrics don't accumulate over time
+ Prometheus::CleanupMultiprocDirService.new.execute
+
+ ::Prometheus::Client.reinitialize_on_pid_change(force: true)
+
+ if Gitlab::Runtime.unicorn?
+ Gitlab::Metrics::Samplers::UnicornSampler.instance(Settings.monitoring.unicorn_sampler_interval).start
+ elsif Gitlab::Runtime.puma?
+ Gitlab::Metrics::Samplers::PumaSampler.instance.start
+ end
+
+ Gitlab::Metrics.gauge(:deployments, 'GitLab Version', {}, :max).set({ version: Gitlab::VERSION }, 1)
+
+ unless Gitlab::Runtime.sidekiq?
+ Gitlab::Metrics::RequestsRackMiddleware.initialize_metrics
+ end
+
+ Gitlab::Ci::Parsers.instrument!
+ rescue IOError => e
+ Gitlab::ErrorTracking.track_exception(e)
+ Gitlab::Metrics.error_detected!
+ end
+
Gitlab::Cluster::LifecycleEvents.on_worker_start do
defined?(::Prometheus::Client.reinitialize_on_pid_change) && Prometheus::Client.reinitialize_on_pid_change
@@ -53,25 +81,8 @@ if !Rails.env.test? && Gitlab::Metrics.prometheus_metrics_enabled?
if Gitlab.ee? && Gitlab::Runtime.sidekiq?
Gitlab::Metrics::Samplers::GlobalSearchSampler.instance.start
end
- rescue IOError => e
- Gitlab::ErrorTracking.track_exception(e)
- Gitlab::Metrics.error_detected!
- end
-
- Gitlab::Cluster::LifecycleEvents.on_master_start do
- ::Prometheus::Client.reinitialize_on_pid_change(force: true)
-
- if Gitlab::Runtime.unicorn?
- Gitlab::Metrics::Samplers::UnicornSampler.instance(Settings.monitoring.unicorn_sampler_interval).start
- elsif Gitlab::Runtime.puma?
- Gitlab::Metrics::Samplers::PumaSampler.instance.start
- end
- Gitlab::Metrics.gauge(:deployments, 'GitLab Version', {}, :max).set({ version: Gitlab::VERSION }, 1)
-
- unless Gitlab::Runtime.sidekiq?
- Gitlab::Metrics::RequestsRackMiddleware.initialize_metrics
- end
+ Gitlab::Ci::Parsers.instrument!
rescue IOError => e
Gitlab::ErrorTracking.track_exception(e)
Gitlab::Metrics.error_detected!
diff --git a/config/initializers/7_redis.rb b/config/initializers/7_redis.rb
index af4967521b8..a6025a6dbf0 100644
--- a/config/initializers/7_redis.rb
+++ b/config/initializers/7_redis.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Make sure we initialize a Redis connection pool before multi-threaded
# execution starts by
# 1. Sidekiq
diff --git a/config/initializers/8_devise.rb b/config/initializers/8_devise.rb
index a4841a11a00..3cac012c2f7 100644
--- a/config/initializers/8_devise.rb
+++ b/config/initializers/8_devise.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Use this hook to configure devise mailer, warden hooks and so forth. The first
# four configuration values can also be set straight in your models.
Devise.setup do |config|
diff --git a/config/initializers/8_gitaly.rb b/config/initializers/8_gitaly.rb
index f4f116e67f7..d7b5bfbc269 100644
--- a/config/initializers/8_gitaly.rb
+++ b/config/initializers/8_gitaly.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'uri'
Gitlab.config.repositories.storages.keys.each do |storage|
diff --git a/config/initializers/9_fast_gettext.rb b/config/initializers/9_fast_gettext.rb
index f836e6e971d..0c28a1b7ce8 100644
--- a/config/initializers/9_fast_gettext.rb
+++ b/config/initializers/9_fast_gettext.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
FastGettext.default_available_locales = Gitlab::I18n.available_locales
I18n.available_locales = Gitlab::I18n.available_locales
diff --git a/config/initializers/action_dispatch_http_mime_negotiation.rb b/config/initializers/action_dispatch_http_mime_negotiation.rb
index 6c31de2de55..2d6afb97a60 100644
--- a/config/initializers/action_dispatch_http_mime_negotiation.rb
+++ b/config/initializers/action_dispatch_http_mime_negotiation.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Starting with Rails 5, Rails tries to determine the request format based on
# the extension of the full URL path if no explicit `format` param or `Accept`
# header is provided, like when simply browsing to a page in your browser.
diff --git a/config/initializers/action_mailer_hooks.rb b/config/initializers/action_mailer_hooks.rb
index 41e34b6eb20..46d5e387d9d 100644
--- a/config/initializers/action_mailer_hooks.rb
+++ b/config/initializers/action_mailer_hooks.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
unless Gitlab.config.gitlab.email_enabled
ActionMailer::Base.register_interceptor(::Gitlab::Email::Hook::DisableEmailInterceptor)
ActionMailer::Base.logger = nil
diff --git a/config/initializers/active_record_data_types.rb b/config/initializers/active_record_data_types.rb
index 3fa999e9908..f8f0a69622f 100644
--- a/config/initializers/active_record_data_types.rb
+++ b/config/initializers/active_record_data_types.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# ActiveRecord custom data type for storing datetimes with timezone information.
# See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11229
diff --git a/config/initializers/active_record_ping.rb b/config/initializers/active_record_ping.rb
index 349a7e4a496..196f587f565 100644
--- a/config/initializers/active_record_ping.rb
+++ b/config/initializers/active_record_ping.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# # frozen_string_literal: true
if Gitlab::Utils.to_boolean(ENV['ENABLE_ACTIVERECORD_EMPTY_PING'], default: false)
diff --git a/config/initializers/active_record_preloader.rb b/config/initializers/active_record_preloader.rb
index d585ecda307..349ca6c4831 100644
--- a/config/initializers/active_record_preloader.rb
+++ b/config/initializers/active_record_preloader.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module ActiveRecord
module Associations
class Preloader
diff --git a/config/initializers/active_record_schema_ignore_tables.rb b/config/initializers/active_record_schema_ignore_tables.rb
index 0a840bbf1d8..55c44e00c40 100644
--- a/config/initializers/active_record_schema_ignore_tables.rb
+++ b/config/initializers/active_record_schema_ignore_tables.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
# Ignore dynamically managed partitions in static application schema
ActiveRecord::SchemaDumper.ignore_tables += ["#{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}.*"]
diff --git a/config/initializers/active_record_table_definition.rb b/config/initializers/active_record_table_definition.rb
index 9220620da41..3c6311f034f 100644
--- a/config/initializers/active_record_table_definition.rb
+++ b/config/initializers/active_record_table_definition.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# ActiveRecord custom method definitions with timezone information.
# See https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/11229
diff --git a/config/initializers/ar_speed_up_migration_checking.rb b/config/initializers/ar_speed_up_migration_checking.rb
index c4ffcc54cb2..778b2ee0cb1 100644
--- a/config/initializers/ar_speed_up_migration_checking.rb
+++ b/config/initializers/ar_speed_up_migration_checking.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
if Rails.env.test?
require 'active_record/migration'
diff --git a/config/initializers/asset_proxy_settings.rb b/config/initializers/asset_proxy_settings.rb
index 92247aba1b8..48eedcee681 100644
--- a/config/initializers/asset_proxy_settings.rb
+++ b/config/initializers/asset_proxy_settings.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
#
# Asset proxy settings
#
diff --git a/config/initializers/attr_encrypted_no_db_connection.rb b/config/initializers/attr_encrypted_no_db_connection.rb
index 7ad458929db..f8d0effbbad 100644
--- a/config/initializers/attr_encrypted_no_db_connection.rb
+++ b/config/initializers/attr_encrypted_no_db_connection.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module AttrEncrypted
module Adapters
module ActiveRecord
diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb
index 2f892f78112..f3e01d23448 100644
--- a/config/initializers/backtrace_silencers.rb
+++ b/config/initializers/backtrace_silencers.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Rails.backtrace_cleaner.remove_silencers!
# This allows us to see the proper caller of SQL calls in {development,test}.log
diff --git a/config/initializers/batch_loader.rb b/config/initializers/batch_loader.rb
index 2e2256b0eb9..d88b43fbcea 100644
--- a/config/initializers/batch_loader.rb
+++ b/config/initializers/batch_loader.rb
@@ -1 +1,3 @@
+# frozen_string_literal: true
+
Rails.application.config.middleware.use(BatchLoader::Middleware)
diff --git a/config/initializers/bootstrap_form.rb b/config/initializers/bootstrap_form.rb
index bbc1d83a63f..8121bc8bf1d 100644
--- a/config/initializers/bootstrap_form.rb
+++ b/config/initializers/bootstrap_form.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module BootstrapFormBuilderCustomization
def label_class
"label-bold"
diff --git a/config/initializers/bullet.rb b/config/initializers/bullet.rb
index d1f72ca3ce7..2d21514b121 100644
--- a/config/initializers/bullet.rb
+++ b/config/initializers/bullet.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
def bullet_enabled?
Gitlab::Utils.to_boolean(ENV['ENABLE_BULLET'].to_s)
end
diff --git a/config/initializers/cluster_events_before_phased_restart.rb b/config/initializers/cluster_events_before_phased_restart.rb
index aae5470d6ae..d029adbe363 100644
--- a/config/initializers/cluster_events_before_phased_restart.rb
+++ b/config/initializers/cluster_events_before_phased_restart.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Technical debt, this should be ideally upstreamed.
#
# However, there's currently no way to hook before doing
diff --git a/config/initializers/console_message.rb b/config/initializers/console_message.rb
index fe47195062b..2c05c2c9a24 100644
--- a/config/initializers/console_message.rb
+++ b/config/initializers/console_message.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# rubocop:disable Rails/Output
if Gitlab::Runtime.console?
# note that this will not print out when using `spring`
diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb
index e9a71f32581..375a23fdfd6 100644
--- a/config/initializers/cookies_serializer.rb
+++ b/config/initializers/cookies_serializer.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Be sure to restart your server when you modify this file.
Rails.application.config.action_dispatch.use_cookies_with_metadata = true
diff --git a/config/initializers/date_time_formats.rb b/config/initializers/date_time_formats.rb
index 1939ced512d..44d07869033 100644
--- a/config/initializers/date_time_formats.rb
+++ b/config/initializers/date_time_formats.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# :short - 10 Nov
# :medium - Nov 10, 2007
# :long - November 10, 2007
diff --git a/config/initializers/default_url_options.rb b/config/initializers/default_url_options.rb
index de2cdc6ecae..138a8e467c7 100644
--- a/config/initializers/default_url_options.rb
+++ b/config/initializers/default_url_options.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
default_url_options = {
host: Gitlab.config.gitlab.host,
protocol: Gitlab.config.gitlab.protocol,
diff --git a/config/initializers/deprecations.rb b/config/initializers/deprecations.rb
index 2b07ca665e2..3d03efe67e0 100644
--- a/config/initializers/deprecations.rb
+++ b/config/initializers/deprecations.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
if Rails.env.development? || ENV['GITLAB_LEGACY_PATH_LOG_MESSAGE']
deprecator = ActiveSupport::Deprecation.new('11.0', 'GitLab')
diff --git a/config/initializers/direct_upload_support.rb b/config/initializers/direct_upload_support.rb
index 919b80b79c0..880aea7d114 100644
--- a/config/initializers/direct_upload_support.rb
+++ b/config/initializers/direct_upload_support.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
class DirectUploadsValidator
SUPPORTED_DIRECT_UPLOAD_PROVIDERS = [ObjectStorage::Config::GOOGLE_PROVIDER,
ObjectStorage::Config::AWS_PROVIDER,
diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb
index 6b54b5074d5..1cf70909997 100644
--- a/config/initializers/doorkeeper.rb
+++ b/config/initializers/doorkeeper.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Doorkeeper.configure do
# Change the ORM that doorkeeper will use.
# Currently supported options are :active_record, :mongoid2, :mongoid3, :mongo_mapper
diff --git a/config/initializers/doorkeeper_openid_connect.rb b/config/initializers/doorkeeper_openid_connect.rb
index 3523776c4f7..12a963ce45d 100644
--- a/config/initializers/doorkeeper_openid_connect.rb
+++ b/config/initializers/doorkeeper_openid_connect.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Doorkeeper::OpenidConnect.configure do
issuer Gitlab.config.gitlab.url
diff --git a/config/initializers/etag_caching.rb b/config/initializers/etag_caching.rb
index eba88801141..2e5574d2602 100644
--- a/config/initializers/etag_caching.rb
+++ b/config/initializers/etag_caching.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# This middleware has to come after Gitlab::Metrics::RackMiddleware
# in the middleware stack, because it tracks events with
# GitLab Performance Monitoring
diff --git a/config/initializers/faraday.rb b/config/initializers/faraday.rb
new file mode 100644
index 00000000000..2700751e79f
--- /dev/null
+++ b/config/initializers/faraday.rb
@@ -0,0 +1,3 @@
+# frozen_string_literal: true
+
+::Faraday::Request.register_middleware(gitlab_error_callback: -> { ::Gitlab::Faraday::ErrorCallback })
diff --git a/config/initializers/fill_shards.rb b/config/initializers/fill_shards.rb
index 90c0d63e4fe..e2889f59574 100644
--- a/config/initializers/fill_shards.rb
+++ b/config/initializers/fill_shards.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# The explicit schema version check is needed because during our migration rollback testing,
# `Shard.connected?` could be cached and return true even though the table doesn't exist
return unless Shard.connected?
diff --git a/config/initializers/fix_local_cache_middleware.rb b/config/initializers/fix_local_cache_middleware.rb
index 2644ee6a7d3..94da6d9c0e0 100644
--- a/config/initializers/fix_local_cache_middleware.rb
+++ b/config/initializers/fix_local_cache_middleware.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module LocalCacheRegistryCleanupWithEnsure
LocalCacheRegistry =
ActiveSupport::Cache::Strategy::LocalCache::LocalCacheRegistry
diff --git a/config/initializers/fog_google_https_private_urls.rb b/config/initializers/fog_google_https_private_urls.rb
index ef6afb2b686..78cbd41a609 100644
--- a/config/initializers/fog_google_https_private_urls.rb
+++ b/config/initializers/fog_google_https_private_urls.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
#
# Monkey patching the https support for private urls
# See https://gitlab.com/gitlab-org/gitlab/issues/4879
diff --git a/config/initializers/forbid_sidekiq_in_transactions.rb b/config/initializers/forbid_sidekiq_in_transactions.rb
index f505fb5843a..85ec8cad0a3 100644
--- a/config/initializers/forbid_sidekiq_in_transactions.rb
+++ b/config/initializers/forbid_sidekiq_in_transactions.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module Sidekiq
module Worker
EnqueueFromTransactionError = Class.new(StandardError)
diff --git a/config/initializers/gettext_rails_i18n_patch.rb b/config/initializers/gettext_rails_i18n_patch.rb
index 09c9b325a04..c23049e93c9 100644
--- a/config/initializers/gettext_rails_i18n_patch.rb
+++ b/config/initializers/gettext_rails_i18n_patch.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'gettext_i18n_rails/haml_parser'
require 'gettext_i18n_rails_js/parser/javascript'
require 'json'
diff --git a/config/initializers/gitlab_kas_secret.rb b/config/initializers/gitlab_kas_secret.rb
index 5e86e954684..8955f71a597 100644
--- a/config/initializers/gitlab_kas_secret.rb
+++ b/config/initializers/gitlab_kas_secret.rb
@@ -1 +1,3 @@
+# frozen_string_literal: true
+
Gitlab::Kas.ensure_secret!
diff --git a/config/initializers/gitlab_shell_secret_token.rb b/config/initializers/gitlab_shell_secret_token.rb
index 529dcdd4644..e11f65bb8ca 100644
--- a/config/initializers/gitlab_shell_secret_token.rb
+++ b/config/initializers/gitlab_shell_secret_token.rb
@@ -1 +1,3 @@
+# frozen_string_literal: true
+
Gitlab::Shell.ensure_secret_token!
diff --git a/config/initializers/gitlab_workhorse_secret.rb b/config/initializers/gitlab_workhorse_secret.rb
index ed54dc11098..5c959a72bd1 100644
--- a/config/initializers/gitlab_workhorse_secret.rb
+++ b/config/initializers/gitlab_workhorse_secret.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
begin
Gitlab::Workhorse.secret
rescue
diff --git a/config/initializers/go_get.rb b/config/initializers/go_get.rb
index 7e7896b4900..830579f4a8a 100644
--- a/config/initializers/go_get.rb
+++ b/config/initializers/go_get.rb
@@ -1 +1,3 @@
+# frozen_string_literal: true
+
Rails.application.config.middleware.use(Gitlab::Middleware::Go)
diff --git a/config/initializers/grpc.rb b/config/initializers/grpc.rb
index b96962fe7db..66b212ef131 100644
--- a/config/initializers/grpc.rb
+++ b/config/initializers/grpc.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'logger'
GRPC_LOGGER = Logger.new(Rails.root.join('log/grpc.log'))
diff --git a/config/initializers/hamlit.rb b/config/initializers/hamlit.rb
index b5bcae4bbfc..dda38d2a61f 100644
--- a/config/initializers/hamlit.rb
+++ b/config/initializers/hamlit.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Hamlit::RailsTemplate.set_options(attr_quote: '"')
Hamlit::Filters.remove_filter('coffee')
diff --git a/config/initializers/health_check.rb b/config/initializers/health_check.rb
index 1496f20afc1..0b35aaf115b 100644
--- a/config/initializers/health_check.rb
+++ b/config/initializers/health_check.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
HealthCheck.setup do |config|
config.standard_checks = %w(database migrations cache)
config.full_checks = %w(database migrations cache)
diff --git a/config/initializers/http_hostname_override.rb b/config/initializers/http_hostname_override.rb
index 58dd380326f..5d2739c1f58 100644
--- a/config/initializers/http_hostname_override.rb
+++ b/config/initializers/http_hostname_override.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# This override allows passing `@hostname_override` to the SNI protocol,
# which is used to lookup the correct SSL certificate in the
# request handshake process.
diff --git a/config/initializers/kaminari_active_record_relation_methods_with_limit.rb b/config/initializers/kaminari_active_record_relation_methods_with_limit.rb
index 55b98cda520..982cb69e532 100644
--- a/config/initializers/kaminari_active_record_relation_methods_with_limit.rb
+++ b/config/initializers/kaminari_active_record_relation_methods_with_limit.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module Kaminari
# Active Record specific page scope methods implementations
module ActiveRecordRelationMethodsWithLimit
diff --git a/config/initializers/kaminari_config.rb b/config/initializers/kaminari_config.rb
index 3cbe9a058d7..8e10079ce36 100644
--- a/config/initializers/kaminari_config.rb
+++ b/config/initializers/kaminari_config.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Kaminari.configure do |config|
config.default_per_page = 20
config.max_per_page = 100
diff --git a/config/initializers/lograge.rb b/config/initializers/lograge.rb
index 5b068c15aad..e8479bc6aa4 100644
--- a/config/initializers/lograge.rb
+++ b/config/initializers/lograge.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Only use Lograge for Rails
unless Gitlab::Runtime.sidekiq?
Rails.application.reloader.to_prepare do
diff --git a/config/initializers/mail_encoding_patch.rb b/config/initializers/mail_encoding_patch.rb
index d53b058ba75..11a96625e08 100644
--- a/config/initializers/mail_encoding_patch.rb
+++ b/config/initializers/mail_encoding_patch.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Monkey patch mail 2.7.1 to fix quoted-printable issues with newlines
# The issues upstream invalidate SMIME signatures under some conditions
# This was working properly in 2.6.6
diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb
index acbdf8de5a6..5329232cc92 100644
--- a/config/initializers/mime_types.rb
+++ b/config/initializers/mime_types.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Be sure to restart your server when you modify this file.
# Add new mime types for use in respond_to blocks:
diff --git a/config/initializers/mini_magick.rb b/config/initializers/mini_magick.rb
index db0e7bbaaa3..8e3e55279f7 100644
--- a/config/initializers/mini_magick.rb
+++ b/config/initializers/mini_magick.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
MiniMagick.configure do |config|
config.cli = :graphicsmagick
end
diff --git a/config/initializers/new_framework_defaults.rb b/config/initializers/new_framework_defaults.rb
index 115ee08dbb6..3d3ee5299e2 100644
--- a/config/initializers/new_framework_defaults.rb
+++ b/config/initializers/new_framework_defaults.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Remove this `if` condition when upgraded to rails 5.0.
# The body must be kept.
# Be sure to restart your server when you modify this file.
diff --git a/config/initializers/octokit.rb b/config/initializers/octokit.rb
index b3749258ec5..cd8c8ec24ee 100644
--- a/config/initializers/octokit.rb
+++ b/config/initializers/octokit.rb
@@ -1 +1,3 @@
+# frozen_string_literal: true
+
Octokit.middleware.insert_after Octokit::Middleware::FollowRedirects, Gitlab::Octokit::Middleware
diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb
index a2720ab9986..85984772d05 100644
--- a/config/initializers/omniauth.rb
+++ b/config/initializers/omniauth.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
if Gitlab::Auth::Ldap::Config.enabled?
module OmniAuth::Strategies
Gitlab::Auth::Ldap::Config.available_servers.each do |server|
diff --git a/config/initializers/peek.rb b/config/initializers/peek.rb
index fa74d8620f4..85bfc4f0214 100644
--- a/config/initializers/peek.rb
+++ b/config/initializers/peek.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'peek/adapters/redis'
Peek::Adapters::Redis.prepend ::Gitlab::PerformanceBar::RedisAdapterWhenPeekEnabled
@@ -11,6 +13,7 @@ Peek.into Peek::Views::Gitaly
Peek.into Peek::Views::RedisDetailed
Peek.into Peek::Views::Elasticsearch
Peek.into Peek::Views::Rugged
+Peek.into Peek::Views::ExternalHttp
Peek.into Peek::Views::BulletDetailed if defined?(Bullet)
Peek.into Peek::Views::Tracing if Labkit::Tracing.tracing_url_enabled?
diff --git a/config/initializers/postgresql_cte.rb b/config/initializers/postgresql_cte.rb
index 68d53c4edbf..1ea0b4cfb58 100644
--- a/config/initializers/postgresql_cte.rb
+++ b/config/initializers/postgresql_cte.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Adds support for WITH statements when using PostgreSQL. The code here is taken
# from https://github.com/shmay/ctes_in_my_pg which at the time of writing has
# not been pushed to RubyGems. The license of this repository is as follows:
diff --git a/config/initializers/premailer.rb b/config/initializers/premailer.rb
index 87f8e67ef1c..77077888af3 100644
--- a/config/initializers/premailer.rb
+++ b/config/initializers/premailer.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# See https://github.com/fphilipe/premailer-rails#configuration
Premailer::Rails.config.merge!(
generate_text_part: false,
diff --git a/config/initializers/query_limiting.rb b/config/initializers/query_limiting.rb
index 66864d1898e..66aefc97c6a 100644
--- a/config/initializers/query_limiting.rb
+++ b/config/initializers/query_limiting.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
if Gitlab::QueryLimiting.enable?
require_dependency 'gitlab/query_limiting/active_support_subscriber'
require_dependency 'gitlab/query_limiting/transaction'
diff --git a/config/initializers/rack_attack_logging.rb b/config/initializers/rack_attack_logging.rb
deleted file mode 100644
index 7b0a8f0d7dd..00000000000
--- a/config/initializers/rack_attack_logging.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-# frozen_string_literal: true
-#
-# Adds logging for all Rack Attack blocks and throttling events.
-
-ActiveSupport::Notifications.subscribe(/rack_attack/) do |name, start, finish, request_id, payload|
- req = payload[:request]
-
- case req.env['rack.attack.match_type']
- when :throttle, :blocklist, :track
- rack_attack_info = {
- message: 'Rack_Attack',
- env: req.env['rack.attack.match_type'],
- remote_ip: req.ip,
- request_method: req.request_method,
- path: req.fullpath,
- matched: req.env['rack.attack.matched']
- }
-
- throttles_with_user_information = [
- :throttle_authenticated_api,
- :throttle_authenticated_web,
- :throttle_authenticated_protected_paths_api,
- :throttle_authenticated_protected_paths_web
- ]
-
- if throttles_with_user_information.include? req.env['rack.attack.matched'].to_sym
- user_id = req.env['rack.attack.match_discriminator']
- user = User.find_by(id: user_id)
-
- rack_attack_info[:user_id] = user_id
- rack_attack_info['meta.user'] = user.username unless user.nil?
- end
-
- Gitlab::AuthLogger.error(rack_attack_info)
- when :safelist
- Gitlab::Instrumentation::Throttle.safelist = req.env['rack.attack.matched']
- end
-end
diff --git a/config/initializers/rack_lineprof.rb b/config/initializers/rack_lineprof.rb
index f7172fce9bc..e66bfd88907 100644
--- a/config/initializers/rack_lineprof.rb
+++ b/config/initializers/rack_lineprof.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# The default colors of rack-lineprof can be very hard to look at in terminals
# with darker backgrounds. This patch tweaks the colors a bit so the output is
# actually readable.
diff --git a/config/initializers/relative_naming_ci_namespace.rb b/config/initializers/relative_naming_ci_namespace.rb
index d9d3034150f..7380597722a 100644
--- a/config/initializers/relative_naming_ci_namespace.rb
+++ b/config/initializers/relative_naming_ci_namespace.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Description: https://coderwall.com/p/heed_q/rails-routing-and-namespaced-models
#
# This allows us to use CI ActiveRecord objects in all routes and use it:
diff --git a/config/initializers/request_context.rb b/config/initializers/request_context.rb
index f79f1f32d70..99e51ce498a 100644
--- a/config/initializers/request_context.rb
+++ b/config/initializers/request_context.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Rails.application.configure do |config|
config.middleware.insert_after RequestStore::Middleware, Gitlab::Middleware::RequestContext
end
diff --git a/config/initializers/request_profiler.rb b/config/initializers/request_profiler.rb
index fb5a7b8372e..8e426772b9a 100644
--- a/config/initializers/request_profiler.rb
+++ b/config/initializers/request_profiler.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Rails.application.configure do |config|
config.middleware.use(Gitlab::RequestProfiler::Middleware)
end
diff --git a/config/initializers/routing_draw.rb b/config/initializers/routing_draw.rb
index f0f74954eef..4978073633c 100644
--- a/config/initializers/routing_draw.rb
+++ b/config/initializers/routing_draw.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Adds draw method into Rails routing
# It allows us to keep routing split into files
ActionDispatch::Routing::Mapper.prepend Gitlab::Patch::DrawRoute
diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb
index a1eddd6a2c2..df80d4f7f73 100644
--- a/config/initializers/sentry.rb
+++ b/config/initializers/sentry.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Be sure to restart your server when you modify this file.
require 'gitlab/current_settings'
diff --git a/config/initializers/server_uptime.rb b/config/initializers/server_uptime.rb
index 46bf242e143..9e58a848007 100644
--- a/config/initializers/server_uptime.rb
+++ b/config/initializers/server_uptime.rb
@@ -1 +1,3 @@
+# frozen_string_literal: true
+
Rails.application.config.booted_at = Time.now
diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb
index da24881885e..6e0cd33aa96 100644
--- a/config/initializers/session_store.rb
+++ b/config/initializers/session_store.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Be sure to restart your server when you modify this file.
require 'gitlab/current_settings'
diff --git a/config/initializers/sherlock.rb b/config/initializers/sherlock.rb
index 8f2ababb712..ba33ffa13c5 100644
--- a/config/initializers/sherlock.rb
+++ b/config/initializers/sherlock.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
if Gitlab::Sherlock.enabled?
Rails.application.configure do |config|
config.middleware.use(Gitlab::Sherlock::Middleware)
diff --git a/config/initializers/sprockets.rb b/config/initializers/sprockets.rb
index a20b7dc75e9..d0660574eb6 100644
--- a/config/initializers/sprockets.rb
+++ b/config/initializers/sprockets.rb
@@ -1 +1,3 @@
+# frozen_string_literal: true
+
Sprockets.register_compressor 'application/javascript', :terser, Terser::Compressor
diff --git a/config/initializers/static_files.rb b/config/initializers/static_files.rb
index 4e19fec084a..3cdb5a5abcf 100644
--- a/config/initializers/static_files.rb
+++ b/config/initializers/static_files.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
app = Rails.application
if app.config.public_file_server.enabled
diff --git a/config/initializers/time_zone.rb b/config/initializers/time_zone.rb
index bca7411ad63..8ad6b2d3447 100644
--- a/config/initializers/time_zone.rb
+++ b/config/initializers/time_zone.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Time.zone = Gitlab.config.gitlab.time_zone || Time.zone
# The default is normally set by Rails in the
# active_support.initialize_time_zone Railtie, but we need to set it
diff --git a/config/initializers/tracing.rb b/config/initializers/tracing.rb
index 3058bdeb84e..3f066953c23 100644
--- a/config/initializers/tracing.rb
+++ b/config/initializers/tracing.rb
@@ -8,6 +8,7 @@ if Labkit::Tracing.enabled?
# Instrument Redis
Labkit::Tracing::Redis.instrument
+ Labkit::Tracing::ExternalHttp.instrument
# Instrument Rails
Labkit::Tracing::Rails::ActiveRecordSubscriber.instrument
diff --git a/config/initializers/trusted_proxies.rb b/config/initializers/trusted_proxies.rb
index a4528020c06..79e4b831c5e 100644
--- a/config/initializers/trusted_proxies.rb
+++ b/config/initializers/trusted_proxies.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Override Rack::Request to make use of the same list of trusted_proxies
# as the ActionDispatch::Request object. This is necessary for libraries
# like rack_attack where they don't use ActionDispatch, and we want them
diff --git a/config/initializers/validate_puma.rb b/config/initializers/validate_puma.rb
index ac5678c4b5a..bce9ddb9a66 100644
--- a/config/initializers/validate_puma.rb
+++ b/config/initializers/validate_puma.rb
@@ -1,5 +1,13 @@
# frozen_string_literal: true
+def allow_single_mode?
+ return false if Gitlab.com?
+
+ Gitlab::Utils.to_boolean(ENV['PUMA_SKIP_CLUSTER_VALIDATION'])
+end
+
if Gitlab::Runtime.puma? && ::Puma.cli_config.options[:workers].to_i == 0
+ return if allow_single_mode?
+
raise 'Puma is only supported in Cluster-mode: workers > 0'
end
diff --git a/config/initializers/warden.rb b/config/initializers/warden.rb
index 3cfab52efd1..2517c0cf5c2 100644
--- a/config/initializers/warden.rb
+++ b/config/initializers/warden.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Rails.application.configure do |config|
Warden::Manager.after_set_user(scope: :user) do |user, auth, opts|
Gitlab::Auth::UniqueIpsLimiter.limit_user!(user)
diff --git a/config/initializers/workhorse_multipart.rb b/config/initializers/workhorse_multipart.rb
index 9c170d1adfa..b68a6fc6ee5 100644
--- a/config/initializers/workhorse_multipart.rb
+++ b/config/initializers/workhorse_multipart.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Rails.application.configure do |config|
# ApolloUploadServer::Middleware expects to find uploaded files ready to use
config.middleware.insert_before(ApolloUploadServer::Middleware, Gitlab::Middleware::Multipart)
diff --git a/config/initializers/wrap_parameters.rb b/config/initializers/wrap_parameters.rb
index 999df20181e..85b2d840618 100644
--- a/config/initializers/wrap_parameters.rb
+++ b/config/initializers/wrap_parameters.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Be sure to restart your server when you modify this file.
#
# This file contains settings for ActionController::ParamsWrapper which
diff --git a/config/initializers/zz_metrics.rb b/config/initializers/zz_metrics.rb
index 430e4d60d61..d0e22187454 100644
--- a/config/initializers/zz_metrics.rb
+++ b/config/initializers/zz_metrics.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# This file was prefixed with zz_ because we want to load it the last!
# See: https://gitlab.com/gitlab-org/gitlab-foss/issues/55611
@@ -154,9 +156,13 @@ if Gitlab::Metrics.enabled? && !Rails.env.test? && !(Rails.env.development? && d
# of the ActiveRecord methods. This has to take place _after_ initializing as
# for some unknown reason calling eager_load! earlier breaks Devise.
Gitlab::Application.config.after_initialize do
- Rails.application.eager_load!
+ # We should move all the logic of this file to somewhere else
+ # and require it after `Rails.application.initialize!` in `environment.rb` file.
+ models_path = Rails.root.join('app', 'models').to_s
- models = Rails.root.join('app', 'models').to_s
+ Dir.glob("**/*.rb", base: models_path).sort.each do |file|
+ require_dependency file
+ end
regex = Regexp.union(
ActiveRecord::Querying.public_instance_methods(false).map(&:to_s)
@@ -172,7 +178,7 @@ if Gitlab::Metrics.enabled? && !Rails.env.test? && !(Rails.env.development? && d
else
loc = method.source_location
- loc && loc[0].start_with?(models) && method.source =~ regex
+ loc && loc[0].start_with?(models_path) && method.source =~ regex
end
end
@@ -202,4 +208,8 @@ if Gitlab::Metrics.enabled? && !Rails.env.test? && !(Rails.env.development? && d
class ::Redis::Client
prepend TrackNewRedisConnections
end
+
+ Labkit::NetHttpPublisher.labkit_prepend!
+ Labkit::ExconPublisher.labkit_prepend!
+ Labkit::HTTPClientPublisher.labkit_prepend!
end
diff --git a/config/initializers_before_autoloader/000_inflections.rb b/config/initializers_before_autoloader/000_inflections.rb
index 85c53ab4320..9eb1ebe77bf 100644
--- a/config/initializers_before_autoloader/000_inflections.rb
+++ b/config/initializers_before_autoloader/000_inflections.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Be sure to restart your server when you modify this file.
# Add new inflection rules using the following format
diff --git a/config/known_invalid_graphql_queries.yml b/config/known_invalid_graphql_queries.yml
index 8ea9b662aa7..770366d76cf 100644
--- a/config/known_invalid_graphql_queries.yml
+++ b/config/known_invalid_graphql_queries.yml
@@ -2,4 +2,3 @@
filenames:
- ee/app/assets/javascripts/on_demand_scans/graphql/dast_scan_create.mutation.graphql
- ee/app/assets/javascripts/oncall_schedules/graphql/mutations/update_oncall_schedule_rotation.mutation.graphql
- - ee/app/assets/javascripts/oncall_schedules/graphql/mutations/destroy_oncall_rotation.mutation.graphql
diff --git a/config/metrics/counts_28d/deployments.yml b/config/metrics/counts_28d/deployments.yml
index dabd50ef5be..02d620c214e 100644
--- a/config/metrics/counts_28d/deployments.yml
+++ b/config/metrics/counts_28d/deployments.yml
@@ -1,11 +1,8 @@
-name: deployments
+key_path: counts_monthly.deployments
description: Total deployments count for recent 28 days
value_type: integer
stage: release
status: data_available
-default_generation: generation_1
-full_path:
- generation_1: counts_monthy.deployments
milestone: 13.2
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35493
group: 'group::ops release'
diff --git a/config/metrics/counts_7d/g_project_management_issue_title_changed_weekly.yml b/config/metrics/counts_7d/g_project_management_issue_title_changed_weekly.yml
index 997263f9e30..5f8492f13c1 100644
--- a/config/metrics/counts_7d/g_project_management_issue_title_changed_weekly.yml
+++ b/config/metrics/counts_7d/g_project_management_issue_title_changed_weekly.yml
@@ -1,12 +1,9 @@
-name: g_project_management_issue_title_changed_weekly
+key_path: redis_hll_counters.issues_edit.g_project_management_issue_title_changed_weekly
description: Distinct users count that changed issue title in a group for last recent week
value_type: integer
product_category: issue_tracking
stage: plan
status: data_available
-default_generation: generation_1
-full_path:
- generation_1: redis_hll_counters.issues_edit.g_project_management_issue_title_changed_weekly
milestone: 13.6
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/issues/229918
group: 'group::project management'
diff --git a/config/metrics/counts_all/deployments.yml b/config/metrics/counts_all/deployments.yml
index bb78e8d6144..abddb09c3dd 100644
--- a/config/metrics/counts_all/deployments.yml
+++ b/config/metrics/counts_all/deployments.yml
@@ -1,11 +1,8 @@
-name: deployments
+key_path: counts.deployments
description: Total deployments count
value_type: integer
stage: release
status: data_available
-default_generation: generation_1
-full_path:
- generation_1: counts.deployments
milestone: 8.12
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/735
group: 'group::ops release'
diff --git a/config/metrics/license/recorded_at.yml b/config/metrics/license/recorded_at.yml
index 5b2b3b37290..0ffb65de671 100644
--- a/config/metrics/license/recorded_at.yml
+++ b/config/metrics/license/recorded_at.yml
@@ -1,12 +1,9 @@
-name: recorded_at
+key_path: recorded_at
description: When the Usage Ping computation was started
value_type: string
product_category: collection
stage: growth
status: data_available
-default_generation: generation_1
-full_path:
- generation_1: recorded_at
milestone: 8.10
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/557
group: group::product analytics
diff --git a/config/metrics/license/uuid.yml b/config/metrics/license/uuid.yml
index 38e0d74fc22..86b38a26cbc 100644
--- a/config/metrics/license/uuid.yml
+++ b/config/metrics/license/uuid.yml
@@ -1,13 +1,9 @@
-name: uuid
+key_path: uuid
description: GitLab instance unique identifier
value_type: string
product_category: collection
stage: growth
status: data_available
-default_generation: generation_1
-full_path:
- generation_1: uuid
- generation_2: license.uuid
milestone: 9.1
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/1521
group: group::product analytics
diff --git a/config/metrics/schema.json b/config/metrics/schema.json
index 4d1120a7d8d..d9a53c88e5d 100644
--- a/config/metrics/schema.json
+++ b/config/metrics/schema.json
@@ -1,8 +1,8 @@
{
"type": "object",
- "required": ["name", "description", "value_type", "status", "default_generation", "full_path", "group", "time_frame", "data_source", "distribution", "tier"],
+ "required": ["key_path", "description", "value_type", "status", "group", "time_frame", "data_source", "distribution", "tier"],
"properties": {
- "name": {
+ "key_path": {
"type": "string"
},
"description": {
@@ -22,12 +22,6 @@
"type": ["string"],
"enum": ["data_available", "planned", "in_progress", "implmented"]
},
- "default_generation": {
- "type": "string"
- },
- "full_path": {
- "type": "object"
- },
"milestone": {
"type": ["number", "null"]
},
@@ -61,6 +55,9 @@
"type": "string",
"enum": ["free", "starter", "premium", "ultimate", "bronze", "silver", "gold"]
}
+ },
+ "skip_validation": {
+ "type": "boolean"
}
}
}
diff --git a/config/metrics/settings/database_adapter.yml b/config/metrics/settings/database_adapter.yml
index b24fc933a08..b80906ab025 100644
--- a/config/metrics/settings/database_adapter.yml
+++ b/config/metrics/settings/database_adapter.yml
@@ -1,12 +1,9 @@
-name: adapter
+key_path: database.adapter
description: This metric only returns a value of PostgreSQL in supported versions of GitLab. It could be removed from the usage ping. Historically MySQL was also supported.
value_type: string
product_category: collection
stage: growth
status: data_available
-default_generation: generation_1
-full_path:
- generation_1: database.adapter
group: group::enablement distribution
time_frame: none
data_source: database
diff --git a/config/object_store_settings.rb b/config/object_store_settings.rb
index 9f5323426d9..938129757f1 100644
--- a/config/object_store_settings.rb
+++ b/config/object_store_settings.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Set default values for object_store settings
class ObjectStoreSettings
SUPPORTED_TYPES = %w(artifacts external_diffs lfs uploads packages dependency_proxy terraform_state pages).freeze
@@ -78,7 +80,7 @@ class ObjectStoreSettings
# "background_upload" => false,
# "proxy_download" => false,
# "remote_directory" => "artifacts"
- # }
+ # }
#
# Settings.lfs['object_store'] = {
# "enabled" => true,
@@ -97,7 +99,7 @@ class ObjectStoreSettings
# "background_upload" => false,
# "proxy_download" => true,
# "remote_directory" => "lfs-objects"
- # }
+ # }
#
# Note that with the common config:
# 1. Only one object store credentials can now be used. This is
@@ -124,6 +126,9 @@ class ObjectStoreSettings
target_config = common_config.merge(overrides.slice(*ALLOWED_OBJECT_STORE_OVERRIDES))
section = settings.try(store_type)
+ # Admins can selectively disable object storage for a specific
+ # type as an override in the consolidated settings.
+ next unless overrides.fetch('enabled', true)
next unless section
if section['enabled'] && target_config['bucket'].blank?
@@ -140,6 +145,8 @@ class ObjectStoreSettings
target_config['consolidated_settings'] = true
section['object_store'] = target_config
end
+
+ settings
end
private
@@ -152,8 +159,9 @@ class ObjectStoreSettings
return false unless settings.dig('object_store', 'connection').present?
WORKHORSE_ACCELERATED_TYPES.each do |store|
- # to_h is needed because something strange happens to
- # Settingslogic#dig when stub_storage_settings is run in tests:
+ # to_h is needed because we define `default` as a Gitaly storage name
+ # in stub_storage_settings. This causes Settingslogic to redefine Hash#default,
+ # which causes Hash#dig to fail when the key doesn't exist: https://gitlab.com/gitlab-org/gitlab/-/issues/286873
#
# (byebug) section.dig
# *** ArgumentError Exception: wrong number of arguments (given 0, expected 1+)
diff --git a/config/puma.example.development.rb b/config/puma.example.development.rb
index 28c2af3acb3..1901b5a0c1c 100644
--- a/config/puma.example.development.rb
+++ b/config/puma.example.development.rb
@@ -86,7 +86,7 @@ end
# https://github.com/puma/puma/blob/master/5.0-Upgrade.md#nakayoshi_fork
if defined?(nakayoshi_fork)
- nakayoshi_fork unless ENV['DISABLE_PUMA_NAKAYOSHI_FORK'] == 'true'
+ nakayoshi_fork if ENV['ENABLE_PUMA_NAKAYOSHI_FORK'] == 'true'
end
# Use json formatter
diff --git a/config/puma.rb.example b/config/puma.rb.example
index 9fc354a8fe8..6684919e912 100644
--- a/config/puma.rb.example
+++ b/config/puma.rb.example
@@ -76,7 +76,7 @@ end
# https://github.com/puma/puma/blob/master/5.0-Upgrade.md#nakayoshi_fork
if defined?(nakayoshi_fork)
- nakayoshi_fork unless ENV['DISABLE_PUMA_NAKAYOSHI_FORK'] == 'true'
+ nakayoshi_fork if ENV['ENABLE_PUMA_NAKAYOSHI_FORK'] == 'true'
end
# Use json formatter
diff --git a/config/puma_actioncable.example.development.rb b/config/puma_actioncable.example.development.rb
index d0da3dcd8f2..a12b4523848 100644
--- a/config/puma_actioncable.example.development.rb
+++ b/config/puma_actioncable.example.development.rb
@@ -86,7 +86,7 @@ end
# https://github.com/puma/puma/blob/master/5.0-Upgrade.md#nakayoshi_fork
if defined?(nakayoshi_fork)
- nakayoshi_fork unless ENV['DISABLE_PUMA_NAKAYOSHI_FORK'] == 'true'
+ nakayoshi_fork if ENV['ENABLE_PUMA_NAKAYOSHI_FORK'] == 'true'
end
# Use json formatter
diff --git a/config/routes.rb b/config/routes.rb
index 31e483df326..90a26c0a20f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'sidekiq/web'
require 'sidekiq/cron/web'
require 'product_analytics/collector_app'
@@ -60,9 +62,10 @@ Rails.application.routes.draw do
end
# Search
- get 'search' => 'search#show'
+ get 'search' => 'search#show', as: :search
get 'search/autocomplete' => 'search#autocomplete', as: :search_autocomplete
get 'search/count' => 'search#count', as: :search_count
+ get 'search/opensearch' => 'search#opensearch', as: :search_opensearch
# JSON Web Token
get 'jwt/auth' => 'jwt#auth'
@@ -158,6 +161,7 @@ Rails.application.routes.draw do
get :db_spin
get :sleep
get :kill
+ post :gc
end
end
@@ -288,7 +292,28 @@ Rails.application.routes.draw do
get '/sitemap' => 'sitemap#show', format: :xml
end
+ # Creates shorthand helper methods for project resources.
+ # For example; for the `namespace_project_path` this also creates `project_path`.
+ #
+ # TODO: We don't need the `Gitlab::Routing` module at all as we can use
+ # the `direct` DSL method of Rails to define url helpers. Move all the
+ # custom url helpers to use the `direct` DSL method and remove the `Gitlab::Routing`.
+ # For more information: https://gitlab.com/gitlab-org/gitlab/-/issues/299583
+ Gitlab::Application.routes.set.filter_map { |route| route.name if route.name&.include?('namespace_project') }.each do |name|
+ new_name = name.sub('namespace_project', 'project')
+
+ direct(new_name) do |project, *args|
+ # This is due to a bug I've found in Rails.
+ # For more information: https://gitlab.com/gitlab-org/gitlab/-/issues/299591
+ args.pop if args.last == {}
+
+ send("#{name}_url", project&.namespace, project, *args)
+ end
+ end
+
root to: "root#index"
get '*unmatched_route', to: 'application#route_not_found'
end
+
+Gitlab::Routing.add_helpers(TimeboxesRoutingHelper)
diff --git a/config/routes/admin.rb b/config/routes/admin.rb
index 71a927f59b9..3e04f0d97cb 100644
--- a/config/routes/admin.rb
+++ b/config/routes/admin.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
namespace :admin do
resources :users, constraints: { id: %r{[a-zA-Z./0-9_\-]+} } do
resources :keys, only: [:show, :destroy]
diff --git a/config/routes/api.rb b/config/routes/api.rb
index 5dbfcc98f0f..dcbc98991e2 100644
--- a/config/routes/api.rb
+++ b/config/routes/api.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
post '/api/graphql', to: 'graphql#execute'
mount GraphiQL::Rails::Engine, at: '/-/graphql-explorer', graphql_path: Gitlab::Utils.append_path(Gitlab.config.gitlab.relative_url_root, '/api/graphql')
diff --git a/config/routes/dashboard.rb b/config/routes/dashboard.rb
index 7e29a36f020..6a3aa5ff0c1 100644
--- a/config/routes/dashboard.rb
+++ b/config/routes/dashboard.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
resource :dashboard, controller: 'dashboard', only: [] do
get :issues, action: :issues_calendar, constraints: lambda { |req| req.format == :ics }
get :issues
diff --git a/config/routes/development.rb b/config/routes/development.rb
index 9b2b47c6a21..4ea53e14120 100644
--- a/config/routes/development.rb
+++ b/config/routes/development.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
if Rails.env.development?
# Make the built-in Rails routes available in development, otherwise they'd
# get swallowed by the `namespace/project` route matcher below.
diff --git a/config/routes/explore.rb b/config/routes/explore.rb
index 59b53bdcf42..c6bf98b6fb3 100644
--- a/config/routes/explore.rb
+++ b/config/routes/explore.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
namespace :explore do
resources :projects, only: [:index] do
collection do
diff --git a/config/routes/git_http.rb b/config/routes/git_http.rb
index 715d4b5cc59..6899a89cc7d 100644
--- a/config/routes/git_http.rb
+++ b/config/routes/git_http.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
scope(path: '*repository_path', format: false) do
constraints(repository_path: Gitlab::PathRegex.repository_git_route_regex) do
scope(module: :repositories) do
@@ -42,7 +44,7 @@ scope(path: '*repository_path', format: false) do
wiki_redirect = redirect do |params, request|
container_path = params[:repository_path].delete_suffix('.wiki.git')
path = File.join(container_path, '-', 'wikis')
- path << "?#{request.query_string}" unless request.query_string.blank?
+ path += "?#{request.query_string}" unless request.query_string.blank?
path
end
@@ -54,7 +56,7 @@ scope(path: '*repository_path', format: false) do
constraints(repository_path: Gitlab::PathRegex.repository_route_regex) do
ref_redirect = redirect do |params, request|
path = "#{params[:repository_path]}.git/info/refs"
- path << "?#{request.query_string}" unless request.query_string.blank?
+ path += "?#{request.query_string}" unless request.query_string.blank?
path
end
diff --git a/config/routes/google_api.rb b/config/routes/google_api.rb
index a119b47c176..06f8d988072 100644
--- a/config/routes/google_api.rb
+++ b/config/routes/google_api.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
scope '-' do
namespace :google_api do
resource :auth, only: [], controller: :authorizations do
diff --git a/config/routes/group.rb b/config/routes/group.rb
index 012d5926872..e1ae860f6ec 100644
--- a/config/routes/group.rb
+++ b/config/routes/group.rb
@@ -111,6 +111,7 @@ constraints(::Constraints::GroupUrlConstrainer.new) do
resources :container_registries, only: [:index, :show], controller: 'registry/repositories'
resource :dependency_proxy, only: [:show, :update]
+ resources :email_campaigns, only: :index
end
scope(path: '*id',
diff --git a/config/routes/help.rb b/config/routes/help.rb
index 446310ba314..2a0aba8b632 100644
--- a/config/routes/help.rb
+++ b/config/routes/help.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
get 'help' => 'help#index'
get 'help/shortcuts' => 'help#shortcuts'
get 'help/instance_configuration' => 'help#instance_configuration'
diff --git a/config/routes/import.rb b/config/routes/import.rb
index 5f94fb8d058..64830ef1e52 100644
--- a/config/routes/import.rb
+++ b/config/routes/import.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Alias import callbacks under the /users/auth endpoint so that
# the OAuth2 callback URL can be restricted under http://example.com/users/auth
# instead of http://example.com.
diff --git a/config/routes/legacy_builds.rb b/config/routes/legacy_builds.rb
index 5ab2b953ce1..c08b581e101 100644
--- a/config/routes/legacy_builds.rb
+++ b/config/routes/legacy_builds.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
resources :builds, only: [:index, :show], constraints: { id: /\d+/ } do
collection do
resources :artifacts, only: [], controller: 'build_artifacts' do
diff --git a/config/routes/merge_requests.rb b/config/routes/merge_requests.rb
index 41d831f239e..b0bab1717a6 100644
--- a/config/routes/merge_requests.rb
+++ b/config/routes/merge_requests.rb
@@ -18,6 +18,7 @@ resources :merge_requests, concerns: :awardable, except: [:new, :create, :show],
get :coverage_reports
get :terraform_reports
get :codequality_reports
+ get :codequality_mr_diff_reports
scope constraints: ->(req) { req.format == :json }, as: :json do
get :commits
diff --git a/config/routes/project.rb b/config/routes/project.rb
index 2e61bc8175e..e6df2532479 100644
--- a/config/routes/project.rb
+++ b/config/routes/project.rb
@@ -37,6 +37,10 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
end
end
+ namespace :security do
+ resource :configuration, only: [:show], controller: :configuration
+ end
+
resources :artifacts, only: [:index, :destroy]
resources :packages, only: [:index, :show, :destroy], module: :packages
@@ -87,6 +91,9 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
resource :lint, only: [:show, :create]
resource :pipeline_editor, only: [:show], controller: :pipeline_editor, path: 'editor'
resources :daily_build_group_report_results, only: [:index], constraints: { format: /(csv|json)/ }
+ namespace :prometheus_metrics do
+ resources :histograms, only: [:create], constraints: { format: 'json' }
+ end
end
namespace :settings do
@@ -132,7 +139,7 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
end
end
- resources :project_members, except: [:show, :new, :edit], constraints: { id: %r{[a-zA-Z./0-9_\-#%+]+} }, concerns: :access_requestable do
+ resources :project_members, except: [:show, :new, :edit], constraints: { id: %r{[a-zA-Z./0-9_\-#%+:]+} }, concerns: :access_requestable do
collection do
delete :leave
@@ -219,7 +226,7 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
resources :starrers, only: [:index]
resources :forks, only: [:index, :new, :create]
- resources :group_links, only: [:create, :update, :destroy], constraints: { id: /\d+/ }
+ resources :group_links, only: [:create, :update, :destroy], constraints: { id: /\d+|:id/ }
resource :import, only: [:new, :create, :show]
resource :avatar, only: [:show, :destroy]
diff --git a/config/routes/repository.rb b/config/routes/repository.rb
index 43837f2ce34..61a407d5a35 100644
--- a/config/routes/repository.rb
+++ b/config/routes/repository.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# All routing related to repository browsing
resource :repository, only: [:create] do
diff --git a/config/routes/sherlock.rb b/config/routes/sherlock.rb
index c9969f91c36..a9be434dba7 100644
--- a/config/routes/sherlock.rb
+++ b/config/routes/sherlock.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
if Gitlab::Sherlock.enabled?
namespace :sherlock do
resources :transactions, only: [:index, :show] do
diff --git a/config/routes/sidekiq.rb b/config/routes/sidekiq.rb
index 36ec8bc1d54..5f6755fc3b3 100644
--- a/config/routes/sidekiq.rb
+++ b/config/routes/sidekiq.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
constraints ::Constraints::AdminConstrainer.new do
mount Sidekiq::Web, at: '/admin/sidekiq', as: :sidekiq
end
diff --git a/config/routes/snippets.rb b/config/routes/snippets.rb
index 9e0c42fa07d..5c162d0c37f 100644
--- a/config/routes/snippets.rb
+++ b/config/routes/snippets.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
resources :snippets, except: [:create, :update, :destroy], concerns: :awardable, constraints: { id: /\d+/ } do
member do
get :raw
diff --git a/config/routes/uploads.rb b/config/routes/uploads.rb
index fb8af76397c..71a868175a9 100644
--- a/config/routes/uploads.rb
+++ b/config/routes/uploads.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
scope path: :uploads do
# Note attachments and User/Group/Project avatars
get "-/system/:model/:mounted_as/:id/:filename",
diff --git a/config/routes/wiki.rb b/config/routes/wiki.rb
index 49ad39e8369..4d14743b3d3 100644
--- a/config/routes/wiki.rb
+++ b/config/routes/wiki.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
scope(controller: :wikis) do
scope(path: 'wikis', as: :wikis) do
get :git_access
diff --git a/config/sidekiq_queues.yml b/config/sidekiq_queues.yml
index d5b3925131e..678b585e6d7 100644
--- a/config/sidekiq_queues.yml
+++ b/config/sidekiq_queues.yml
@@ -158,6 +158,12 @@
- 1
- - group_saml_group_sync
- 1
+- - group_wikis_git_garbage_collect
+ - 1
+- - groups_schedule_bulk_repository_shard_moves
+ - 1
+- - groups_update_repository_storage
+ - 1
- - hashed_storage
- 1
- - import_issues_csv
@@ -166,6 +172,8 @@
- 2
- - incident_management_apply_incident_sla_exceeded_label
- 1
+- - incident_management_oncall_rotations_persist_shifts_job
+ - 1
- - invalid_gpg_signature_update
- 2
- - irker
@@ -270,6 +278,8 @@
- 1
- - project_update_repository_storage
- 1
+- - projects_git_garbage_collect
+ - 1
- - prometheus_create_default_alerts
- 1
- - propagate_integration
@@ -360,5 +370,7 @@
- 1
- - web_hooks_destroy
- 1
+- - wikis_git_garbage_collect
+ - 1
- - x509_certificate_revoke
- 1
diff --git a/config/smime_signature_settings.rb b/config/smime_signature_settings.rb
index 4a8cf1a06f7..4b50e01dba0 100644
--- a/config/smime_signature_settings.rb
+++ b/config/smime_signature_settings.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Set default values for email_smime settings
class SmimeSignatureSettings
def self.parse(email_smime)
diff --git a/config/spring.rb b/config/spring.rb
index 0092d0fd1b0..3f00e6ab23f 100644
--- a/config/spring.rb
+++ b/config/spring.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
%w(
.ruby-version
.rbenv-vars
diff --git a/config/webpack.config.js b/config/webpack.config.js
index 958b27d674d..19059c35c46 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -9,6 +9,7 @@ const MonacoWebpackPlugin = require('./plugins/monaco_webpack');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const CopyWebpackPlugin = require('copy-webpack-plugin');
const vendorDllHash = require('./helpers/vendor_dll_hash');
+const createIncrementalWebpackCompiler = require('./helpers/incremental_webpack_compiler');
const ROOT_PATH = path.resolve(__dirname, '..');
const VENDOR_DLL = process.env.WEBPACK_VENDOR_DLL && process.env.WEBPACK_VENDOR_DLL !== 'false';
@@ -23,6 +24,10 @@ const DEV_SERVER_ALLOWED_HOSTS =
process.env.DEV_SERVER_ALLOWED_HOSTS && process.env.DEV_SERVER_ALLOWED_HOSTS.split(',');
const DEV_SERVER_HTTPS = process.env.DEV_SERVER_HTTPS && process.env.DEV_SERVER_HTTPS !== 'false';
const DEV_SERVER_LIVERELOAD = IS_DEV_SERVER && process.env.DEV_SERVER_LIVERELOAD !== 'false';
+const INCREMENTAL_COMPILER_ENABLED =
+ IS_DEV_SERVER &&
+ process.env.DEV_SERVER_INCREMENTAL &&
+ process.env.DEV_SERVER_INCREMENTAL !== 'false';
const WEBPACK_REPORT = process.env.WEBPACK_REPORT && process.env.WEBPACK_REPORT !== 'false';
const WEBPACK_MEMORY_TEST =
process.env.WEBPACK_MEMORY_TEST && process.env.WEBPACK_MEMORY_TEST !== 'false';
@@ -48,6 +53,11 @@ let autoEntriesCount = 0;
let watchAutoEntries = [];
const defaultEntries = ['./main'];
+const incrementalCompiler = createIncrementalWebpackCompiler(
+ INCREMENTAL_COMPILER_ENABLED,
+ path.join(CACHE_PATH, 'incremental-webpack-compiler-history.json'),
+);
+
function generateEntries() {
// generate automatic entry points
const autoEntries = {};
@@ -97,7 +107,7 @@ function generateEntries() {
jira_connect_app: './jira_connect/index.js',
};
- return Object.assign(manualEntries, autoEntries);
+ return Object.assign(manualEntries, incrementalCompiler.filterEntryPoints(autoEntries));
}
const alias = {
@@ -495,9 +505,13 @@ module.exports = {
watchAutoEntries.forEach((watchPath) => compilation.contextDependencies.add(watchPath));
// report our auto-generated bundle count
- console.log(
- `${autoEntriesCount} entries from '/pages' automatically added to webpack output.`,
- );
+ if (incrementalCompiler.enabled) {
+ incrementalCompiler.logStatus(autoEntriesCount);
+ } else {
+ console.log(
+ `${autoEntriesCount} entries from '/pages' automatically added to webpack output.`,
+ );
+ }
callback();
});
@@ -576,8 +590,10 @@ module.exports = {
*/
new webpack.IgnorePlugin(/moment/, /pikaday/),
].filter(Boolean),
-
devServer: {
+ before(app, server) {
+ incrementalCompiler.setupMiddleware(app, server);
+ },
host: DEV_SERVER_HOST,
port: DEV_SERVER_PORT,
public: DEV_SERVER_PUBLIC_ADDR,