From d7b1354b396d2e579fd6fe3c18a28b6ffe934f09 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 16 May 2022 15:08:39 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .rubocop.yml | 5 + .rubocop_todo.yml | 24 +-- .rubocop_todo/gitlab/namespaced_class.yml | 1 - .../rails/has_many_or_has_one_dependent.yml | 154 ++++++++++++++++++ .rubocop_todo/style/case_like_if.yml | 63 +++++++ .../diffs/components/diff_file_header.vue | 1 + .../issues/show/components/app.vue | 5 +- .../notes/components/comment_form.vue | 4 +- app/assets/stylesheets/framework/files.scss | 12 +- .../admin/application_settings_controller.rb | 1 + app/controllers/projects/jobs_controller.rb | 2 +- .../projects/merge_requests_controller.rb | 1 + app/helpers/application_settings_helper.rb | 3 +- app/helpers/issues_helper.rb | 2 +- app/models/application_setting.rb | 3 + app/models/ci/build.rb | 3 +- .../_issue_limits.html.haml | 4 +- .../_pipeline_limits.html.haml | 9 + .../application_settings/network.html.haml | 12 ++ .../issue_type/_details_header.html.haml | 4 +- app/workers/all_queues.yml | 9 - .../migration/guard_worker.rb | 6 +- .../expire_build_instance_artifacts_worker.rb | 25 --- .../development/remove_diff_header_icons.yml | 8 + ...6175548_ci_pipeline_config_auto_devops.yml | 2 +- ...7_action_monthly_active_users_ide_edit.yml | 2 +- .../counts_28d/20210216180814_events.yml | 2 +- .../20210216181923_successful_deployments.yml | 2 +- .../20210216181924_failed_deployments.yml | 2 +- .../20210216181937_failed_deployments.yml | 2 +- .../20210216181941_successful_deployments.yml | 2 +- .../20210216182051_protected_branches.yml | 2 +- .../20210216183644_gitlab_project.yml | 3 + .../counts_28d/20210216183646_gitlab.yml | 3 + .../counts_28d/20210216183648_github.yml | 3 + .../counts_28d/20210216183650_bitbucket.yml | 3 + .../20210216183652_bitbucket_server.yml | 3 + .../counts_28d/20210216183653_gitea.yml | 3 + .../metrics/counts_28d/20210216183655_git.yml | 3 + .../counts_28d/20210216183657_manifest.yml | 3 + .../20210216183659_gitlab_migration.yml | 3 + .../counts_28d/20210216183703_fogbugz.yml | 3 + .../counts_28d/20210216183705_phabricator.yml | 3 + .../20210216183711_gitlab_migration.yml | 3 + ..._users_committing_ciconfigfile_monthly.yml | 2 +- .../20210910132229_user_auth_by_provider.yml | 2 +- ...ics_ci_cd_deployment_frequency_monthly.yml | 2 +- ...06_p_analytics_ci_cd_lead_time_monthly.yml | 2 +- ...6175516_ci_pipeline_config_auto_devops.yml | 2 +- .../counts_all/20210216175525_ci_builds.yml | 2 +- .../20210216180638_gitlab_project.yml | 3 + .../counts_all/20210216180639_gitlab.yml | 3 + .../counts_all/20210216180641_github.yml | 3 + .../counts_all/20210216180643_bitbucket.yml | 3 + .../20210216180645_bitbucket_server.yml | 3 + .../counts_all/20210216180647_gitea.yml | 3 + .../metrics/counts_all/20210216180649_git.yml | 3 + .../counts_all/20210216180650_manifest.yml | 3 + .../20210216180652_gitlab_migration.yml | 3 + .../counts_all/20210216180656_fogbugz.yml | 3 + .../counts_all/20210216180658_phabricator.yml | 3 + .../20210216180703_gitlab_migration.yml | 3 + .../counts_all/20210216180754_events.yml | 2 +- ...10216180931_projects_prometheus_active.yml | 2 +- .../20210216181249_feature_flags.yml | 2 +- .../20210216181914_environments.yml | 2 +- ...423005644_i_analytics_dev_ops_adoption.yml | 2 +- ...045402_ci_runners_instance_type_active.yml | 2 +- ...502050341_ci_runners_group_type_active.yml | 2 +- ...2050834_ci_runners_project_type_active.yml | 2 +- .../20210514141520_project_imports_total.yml | 2 +- .../20210204124829_active_user_count.yml | 2 +- .../20210204124912_prometheus_enabled.yml | 2 +- config/sidekiq_queues.yml | 2 - ...roject_user_sha_to_application_settings.rb | 7 + db/schema_migrations/20220511191503 | 1 + db/structure.sql | 1 + doc/administration/pages/index.md | 2 +- doc/api/settings.md | 1 + doc/ci/pipelines/merge_trains.md | 4 +- doc/development/redis.md | 9 +- doc/policy/maintenance.md | 2 + .../settings/account_and_limit_settings.md | 48 ++++-- .../settings/rate_limit_on_issues_creation.md | 2 +- .../rate_limit_on_pipelines_creation.md | 33 ++++ lib/api/settings.rb | 1 + lib/gitlab/ci/trace.rb | 10 +- lib/gitlab/tracking/event_definition.rb | 1 - lib/gitlab/usage/metric_definition.rb | 13 +- .../count_bulk_imports_entities_metric.rb | 39 +++++ .../count_imported_projects_metric.rb | 57 +++++++ .../instrumentations/database_metric.rb | 20 ++- lib/gitlab/usage/metrics/query.rb | 24 ++- lib/gitlab/usage_data.rb | 54 ++---- lib/gitlab/usage_data_non_sql_metrics.rb | 4 + locale/gitlab.pot | 9 + .../application_settings_controller_spec.rb | 11 ++ spec/features/admin/admin_settings_spec.rb | 14 +- .../issues/show/components/app_spec.js | 21 ++- .../notes/components/comment_form_spec.js | 2 +- ...count_bulk_imports_entities_metric_spec.rb | 106 ++++++++++++ .../count_imported_projects_metric_spec.rb | 70 ++++++++ spec/lib/gitlab/usage/metrics/query_spec.rb | 32 ++++ .../gitlab/usage/service_ping_report_spec.rb | 64 +++----- ...tic_iterations_cadences_start_date_spec.rb | 3 +- spec/models/application_setting_spec.rb | 6 + spec/requests/api/settings_spec.rb | 35 ++++ .../lib/gitlab/ci/ci_trace_shared_examples.rb | 4 +- .../migration/guard_worker_spec.rb | 11 +- spec/workers/every_sidekiq_worker_spec.rb | 1 - ...re_build_instance_artifacts_worker_spec.rb | 75 --------- 111 files changed, 966 insertions(+), 316 deletions(-) create mode 100644 .rubocop_todo/rails/has_many_or_has_one_dependent.yml create mode 100644 .rubocop_todo/style/case_like_if.yml create mode 100644 app/views/admin/application_settings/_pipeline_limits.html.haml delete mode 100644 app/workers/expire_build_instance_artifacts_worker.rb create mode 100644 config/feature_flags/development/remove_diff_header_icons.yml create mode 100644 db/migrate/20220511191503_add_pipeline_create_limit_per_project_user_sha_to_application_settings.rb create mode 100644 db/schema_migrations/20220511191503 create mode 100644 doc/user/admin_area/settings/rate_limit_on_pipelines_creation.md create mode 100644 lib/gitlab/usage/metrics/instrumentations/count_bulk_imports_entities_metric.rb create mode 100644 lib/gitlab/usage/metrics/instrumentations/count_imported_projects_metric.rb create mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/count_bulk_imports_entities_metric_spec.rb create mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_metric_spec.rb delete mode 100644 spec/workers/expire_build_instance_artifacts_worker_spec.rb diff --git a/.rubocop.yml b/.rubocop.yml index 3ad7255732b..cb70ff168be 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -276,6 +276,11 @@ Rails/InverseOf: Rails/UniqueValidationWithoutIndex: Enabled: false +Rails/HasManyOrHasOneDependent: + Include: + - app/models/**/*.rb + - ee/app/models/**/*.rb + Rails/HelperInstanceVariable: Include: - app/helpers/**/*.rb diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 88694e05229..72ce67b08da 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,17 +1,7 @@ -# This configuration was generated by -# `rubocop --auto-gen-config` -# on 2021-02-24 14:52:20 UTC using RuboCop version 0.93.1. -# The point is for the user to remove these configuration records -# one by one as the offenses are removed from the code base. -# Note that changes in the inspected code, or installation of new -# versions of RuboCop, may require this file to be generated again. - -# Configuration parameters: Include. -# Include: app/models/**/*.rb -Rails/HasManyOrHasOneDependent: - Enabled: false - -# Offense count: 42 -# Cop supports --auto-correct. -Style/CaseLikeIf: - Enabled: false +# This configuration is no longer used. +# +# The RuboCop TODO lists are located in `.rubocop_todo/**/*.yml`. +# +# Please use `rake rubocop:todo:generate` to generate TODOs. +# +# See https://docs.gitlab.com/ee/development/rake_tasks.html#generate-initial-rubocop-todo-list diff --git a/.rubocop_todo/gitlab/namespaced_class.yml b/.rubocop_todo/gitlab/namespaced_class.yml index a92520bbe30..0f974bc5002 100644 --- a/.rubocop_todo/gitlab/namespaced_class.yml +++ b/.rubocop_todo/gitlab/namespaced_class.yml @@ -773,7 +773,6 @@ Gitlab/NamespacedClass: - 'app/workers/emails_on_push_worker.rb' - 'app/workers/error_tracking_issue_link_worker.rb' - 'app/workers/expire_build_artifacts_worker.rb' - - 'app/workers/expire_build_instance_artifacts_worker.rb' - 'app/workers/expire_job_cache_worker.rb' - 'app/workers/expire_pipeline_cache_worker.rb' - 'app/workers/export_csv_worker.rb' diff --git a/.rubocop_todo/rails/has_many_or_has_one_dependent.yml b/.rubocop_todo/rails/has_many_or_has_one_dependent.yml new file mode 100644 index 00000000000..92ba718bfff --- /dev/null +++ b/.rubocop_todo/rails/has_many_or_has_one_dependent.yml @@ -0,0 +1,154 @@ +--- +Rails/HasManyOrHasOneDependent: + # Offense count: 593 + # Temporarily disabled due to too many offenses + Enabled: false + Exclude: + - 'app/models/alert_management/alert.rb' + - 'app/models/analytics/cycle_analytics/project_value_stream.rb' + - 'app/models/analytics/cycle_analytics/stage_event_hash.rb' + - 'app/models/application_setting/term.rb' + - 'app/models/bulk_import.rb' + - 'app/models/bulk_imports/entity.rb' + - 'app/models/bulk_imports/export.rb' + - 'app/models/ci/bridge.rb' + - 'app/models/ci/build.rb' + - 'app/models/ci/pipeline.rb' + - 'app/models/ci/pipeline_schedule.rb' + - 'app/models/ci/processable.rb' + - 'app/models/ci/ref.rb' + - 'app/models/ci/resource_group.rb' + - 'app/models/ci/runner.rb' + - 'app/models/ci/stage.rb' + - 'app/models/ci/trigger.rb' + - 'app/models/ci/trigger_request.rb' + - 'app/models/ci/unit_test.rb' + - 'app/models/clusters/agent.rb' + - 'app/models/clusters/applications/knative.rb' + - 'app/models/clusters/cluster.rb' + - 'app/models/clusters/project.rb' + - 'app/models/commit_status.rb' + - 'app/models/concerns/ci/metadatable.rb' + - 'app/models/concerns/integrations/has_data_fields.rb' + - 'app/models/concerns/issuable.rb' + - 'app/models/concerns/label_eventable.rb' + - 'app/models/concerns/milestone_eventable.rb' + - 'app/models/concerns/packages/debian/distribution.rb' + - 'app/models/concerns/protected_ref.rb' + - 'app/models/concerns/state_eventable.rb' + - 'app/models/concerns/timebox.rb' + - 'app/models/concerns/versioned_description.rb' + - 'app/models/concerns/with_uploads.rb' + - 'app/models/customer_relations/contact.rb' + - 'app/models/deploy_key.rb' + - 'app/models/deploy_token.rb' + - 'app/models/deployment.rb' + - 'app/models/design_management/design.rb' + - 'app/models/design_management/version.rb' + - 'app/models/environment.rb' + - 'app/models/error_tracking/error.rb' + - 'app/models/event.rb' + - 'app/models/experiment.rb' + - 'app/models/fork_network.rb' + - 'app/models/gpg_key.rb' + - 'app/models/group.rb' + - 'app/models/hooks/web_hook.rb' + - 'app/models/integration.rb' + - 'app/models/issue.rb' + - 'app/models/jira_connect_installation.rb' + - 'app/models/label.rb' + - 'app/models/lfs_object.rb' + - 'app/models/list.rb' + - 'app/models/member.rb' + - 'app/models/merge_request.rb' + - 'app/models/merge_request_context_commit.rb' + - 'app/models/milestone.rb' + - 'app/models/namespace.rb' + - 'app/models/namespaces/project_namespace.rb' + - 'app/models/note.rb' + - 'app/models/operations/feature_flag.rb' + - 'app/models/operations/feature_flags/strategy.rb' + - 'app/models/operations/feature_flags/user_list.rb' + - 'app/models/packages/debian/project_distribution.rb' + - 'app/models/packages/dependency.rb' + - 'app/models/packages/dependency_link.rb' + - 'app/models/packages/package.rb' + - 'app/models/packages/package_file.rb' + - 'app/models/pages_domain.rb' + - 'app/models/plan.rb' + - 'app/models/pool_repository.rb' + - 'app/models/project.rb' + - 'app/models/projects/topic.rb' + - 'app/models/prometheus_alert.rb' + - 'app/models/prometheus_metric.rb' + - 'app/models/release.rb' + - 'app/models/snippet.rb' + - 'app/models/terraform/state.rb' + - 'app/models/user.rb' + - 'app/models/wiki_page/meta.rb' + - 'app/models/work_items/type.rb' + - 'app/models/x509_certificate.rb' + - 'app/models/x509_issuer.rb' + - 'ee/app/models/analytics/devops_adoption/enabled_namespace.rb' + - 'ee/app/models/analytics/devops_adoption/snapshot.rb' + - 'ee/app/models/approval_merge_request_rule.rb' + - 'ee/app/models/approval_project_rule.rb' + - 'ee/app/models/boards/epic_board.rb' + - 'ee/app/models/boards/epic_list.rb' + - 'ee/app/models/compliance_management/framework.rb' + - 'ee/app/models/concerns/ee/iteration_eventable.rb' + - 'ee/app/models/concerns/ee/protected_branch.rb' + - 'ee/app/models/concerns/ee/protected_ref.rb' + - 'ee/app/models/concerns/ee/weight_eventable.rb' + - 'ee/app/models/concerns/geo/eventable.rb' + - 'ee/app/models/concerns/issue_widgets/acts_like_requirement.rb' + - 'ee/app/models/concerns/security/scan_execution_policy.rb' + - 'ee/app/models/dast/profile.rb' + - 'ee/app/models/dast_site.rb' + - 'ee/app/models/dast_site_profile.rb' + - 'ee/app/models/dast_site_validation.rb' + - 'ee/app/models/ee/alert_management/alert.rb' + - 'ee/app/models/ee/analytics/cycle_analytics/stage_event_hash.rb' + - 'ee/app/models/ee/board.rb' + - 'ee/app/models/ee/ci/build.rb' + - 'ee/app/models/ee/ci/job_artifact.rb' + - 'ee/app/models/ee/ci/pipeline.rb' + - 'ee/app/models/ee/deployment.rb' + - 'ee/app/models/ee/environment.rb' + - 'ee/app/models/ee/epic.rb' + - 'ee/app/models/ee/group.rb' + - 'ee/app/models/ee/issue.rb' + - 'ee/app/models/ee/iteration.rb' + - 'ee/app/models/ee/label.rb' + - 'ee/app/models/ee/lfs_object.rb' + - 'ee/app/models/ee/merge_request.rb' + - 'ee/app/models/ee/merge_request_diff.rb' + - 'ee/app/models/ee/milestone.rb' + - 'ee/app/models/ee/namespace.rb' + - 'ee/app/models/ee/pages_deployment.rb' + - 'ee/app/models/ee/plan.rb' + - 'ee/app/models/ee/project.rb' + - 'ee/app/models/ee/upload.rb' + - 'ee/app/models/ee/user.rb' + - 'ee/app/models/ee/vulnerability.rb' + - 'ee/app/models/elastic/reindexing_subtask.rb' + - 'ee/app/models/elastic/reindexing_task.rb' + - 'ee/app/models/geo/event.rb' + - 'ee/app/models/geo_node.rb' + - 'ee/app/models/incident_management/escalation_policy.rb' + - 'ee/app/models/incident_management/oncall_participant.rb' + - 'ee/app/models/incident_management/oncall_rotation.rb' + - 'ee/app/models/incident_management/oncall_schedule.rb' + - 'ee/app/models/integrations/gitlab_slack_application.rb' + - 'ee/app/models/iterations/cadence.rb' + - 'ee/app/models/protected_environment.rb' + - 'ee/app/models/protected_environments/approval_rule.rb' + - 'ee/app/models/push_rule.rb' + - 'ee/app/models/saml_provider.rb' + - 'ee/app/models/security/finding.rb' + - 'ee/app/models/security/scan.rb' + - 'ee/app/models/security/training_provider.rb' + - 'ee/app/models/vulnerabilities/finding.rb' + - 'ee/app/models/vulnerabilities/identifier.rb' + - 'ee/app/models/vulnerabilities/remediation.rb' + - 'ee/app/models/vulnerabilities/scanner.rb' diff --git a/.rubocop_todo/style/case_like_if.yml b/.rubocop_todo/style/case_like_if.yml new file mode 100644 index 00000000000..f1e349fe836 --- /dev/null +++ b/.rubocop_todo/style/case_like_if.yml @@ -0,0 +1,63 @@ +--- +# Cop supports --auto-correct. +Style/CaseLikeIf: + # Offense count: 60 + # Temporarily disabled due to too many offenses + Enabled: false + Exclude: + - 'app/controllers/concerns/issuable_actions.rb' + - 'app/controllers/groups/dependency_proxy/application_controller.rb' + - 'app/controllers/projects/labels_controller.rb' + - 'app/graphql/types/ci/job_need_union.rb' + - 'app/helpers/avatars_helper.rb' + - 'app/helpers/broadcast_messages_helper.rb' + - 'app/helpers/issues_helper.rb' + - 'app/helpers/routing/pseudonymization_helper.rb' + - 'app/models/integrations/jira.rb' + - 'app/models/members/member_task.rb' + - 'app/models/namespace.rb' + - 'app/models/packages/go/module_version.rb' + - 'app/serializers/group_child_serializer.rb' + - 'app/services/google_cloud/generate_pipeline_service.rb' + - 'app/services/issuable/bulk_update_service.rb' + - 'app/services/todo_service.rb' + - 'ee/app/controllers/concerns/credentials_inventory_actions.rb' + - 'ee/app/finders/ee/notes_finder.rb' + - 'ee/app/helpers/ee/branches_helper.rb' + - 'ee/app/helpers/ee/namespace_storage_limit_alert_helper.rb' + - 'ee/app/services/epics/tree_reorder_service.rb' + - 'ee/app/services/merge_request_approval_settings/update_service.rb' + - 'ee/lib/gitlab/alert_management/alert_payload_field_extractor.rb' + - 'ee/spec/config/metrics/every_metric_definition_spec.rb' + - 'ee/spec/features/boards/user_adds_lists_to_board_spec.rb' + - 'ee/spec/features/issues/user_bulk_edits_issues_spec.rb' + - 'ee/spec/features/projects/custom_projects_template_spec.rb' + - 'ee/spec/support/matchers/ee/epic_aggregate_matchers.rb' + - 'lib/api/helpers/label_helpers.rb' + - 'lib/gitlab/analytics/unique_visits.rb' + - 'lib/gitlab/ci/ansi2html.rb' + - 'lib/gitlab/ci/ansi2json/converter.rb' + - 'lib/gitlab/ci/build/image.rb' + - 'lib/gitlab/identifier.rb' + - 'lib/gitlab/issues/rebalancing/state.rb' + - 'lib/gitlab/pagination/gitaly_keyset_pager.rb' + - 'lib/gitlab/utils.rb' + - 'lib/gitlab/utils/strong_memoize.rb' + - 'qa/qa/git/repository.rb' + - 'qa/qa/scenario/bootable.rb' + - 'rubocop/cop/gitlab/keys_first_and_values_first.rb' + - 'spec/features/boards/user_adds_lists_to_board_spec.rb' + - 'spec/lib/gitlab/auth/auth_finders_spec.rb' + - 'spec/lib/gitlab/database/load_balancing_spec.rb' + - 'spec/lib/omni_auth/strategies/jwt_spec.rb' + - 'spec/models/concerns/sha_attribute_spec.rb' + - 'spec/models/preloaders/labels_preloader_spec.rb' + - 'spec/requests/api/rubygem_packages_spec.rb' + - 'spec/requests/api/terraform/modules/v1/packages_spec.rb' + - 'spec/services/resource_events/change_state_service_spec.rb' + - 'spec/support/helpers/filter_spec_helper.rb' + - 'spec/support/matchers/abort_matcher.rb' + - 'spec/support/shared_examples/metrics/active_record_subscriber_shared_examples.rb' + - 'spec/support/shared_examples/requests/api/notes_shared_examples.rb' + - 'spec/support/shared_examples/uploaders/object_storage_shared_examples.rb' + - 'spec/workers/loose_foreign_keys/cleanup_worker_spec.rb' diff --git a/app/assets/javascripts/diffs/components/diff_file_header.vue b/app/assets/javascripts/diffs/components/diff_file_header.vue index 260896ccb90..a75262ee303 100644 --- a/app/assets/javascripts/diffs/components/diff_file_header.vue +++ b/app/assets/javascripts/diffs/components/diff_file_header.vue @@ -302,6 +302,7 @@ export default { @click="handleFileNameClick" >