rspec unit pg12 16/28
Passed Started
by
@mrincon

Miguel Rincon
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on green-3.shared-gitlab-org.runners-manager.gitlab.com/default EuhiQzPR3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:c5abf812eff57d99cd4ae9b4d688261207b59905c5d0ca50c5e57f75669dbf10 for postgres:12 with digest postgres@sha256:0619094e4045d67b34b9b4de10d4c433d03cd032c95145d259a97b3081562936 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:b5a61c880115e6a29b90b90aef1973eb232e48d3547092deb27f519e1ae98f11 for redis:6.0-alpine with digest redis@sha256:10c7dc799ef793b4c76fb5ef074fd1186121151b90a799b01393e137220bb61e ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...18Running on runner-euhiqzpr-project-278964-concurrent-0 via runner-euhiqzpr-shared-gitlab-org-1668428679-f12e14d0...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 134386, done. 25remote: Counting objects: 100% (134386/134386), done. 26remote: Compressing objects: 100% (87585/87585), done.27remote: Total 134386 (delta 60655), reused 92571 (delta 41765), pack-reused 0 28Receiving objects: 100% (134386/134386), 116.33 MiB | 33.23 MiB/s, done.29Resolving deltas: 100% (60655/60655), done.31 * [new ref] refs/pipelines/693894100 -> refs/pipelines/69389410032Checking out 5648e5c9 as refs/merge-requests/102535/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-16 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 41Successfully extracted cache43Downloading artifacts for compile-test-assets (3318206277)...44Downloading artifacts from coordinator... ok id=3318206277 responseStatus=200 OK token=-qRUR17E45Downloading artifacts for detect-tests (3318206299)...46Downloading artifacts from coordinator... ok id=3318206299 responseStatus=200 OK token=-qRUR17E47Downloading artifacts for retrieve-tests-metadata (3318206306)...48Downloading artifacts from coordinator... ok id=3318206306 responseStatus=200 OK token=-qRUR17E49Downloading artifacts for setup-test-env (3318206286)...50Downloading artifacts from coordinator... ok id=3318206286 responseStatus=200 OK token=-qRUR17E52Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh690Using decomposed database config (config/database.yml.decomposed-postgresql)691$ setup_db_user_only692CREATE ROLE693GRANT694==> 'setup_db_user_only' succeeded in 0 seconds.695$ bundle exec rake db:drop db:create db:schema:load db:migrate696Dropped database 'gitlabhq_test'697Dropped database 'gitlabhq_test_ci'698Dropped database 'gitlabhq_geo_test'699Created database 'gitlabhq_test'700Created database 'gitlabhq_test_ci'701Created database 'gitlabhq_geo_test'702==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 35 seconds.703$ setup_db_praefect704SELECT pg_catalog.set_config('search_path', '', false);705CREATE DATABASE praefect_test ENCODING 'UTF8';706==> 'setup_db_praefect' succeeded in 0 seconds.707$ source ./scripts/rspec_helpers.sh708$ run_timed_command "gem install knapsack --no-document"709$ gem install knapsack --no-document710Successfully installed knapsack-4.0.07111 gem installed712==> 'gem install knapsack --no-document' succeeded in 0 seconds.713$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"827$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"828SKIP_FLAKY_TESTS_AUTOMATICALLY: true829RETRY_FAILED_TESTS_IN_NEW_PROCESS: true830KNAPSACK_GENERATE_REPORT: true831FLAKY_RSPEC_GENERATE_REPORT: true832KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb833KNAPSACK_LOG_LEVEL: debug834KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_16_28_report.json835FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json836FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_16_28_report.json837NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_16_28_report.json838SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_16_28_report.txt839RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_16_28_report.txt840CRYSTALBALL: 841Knapsack node specs:842spec/finders/merge_requests_finder_spec.rb843spec/lib/gitlab/metrics/subscribers/active_record_spec.rb844spec/services/projects/overwrite_project_service_spec.rb845spec/services/git/branch_hooks_service_spec.rb846spec/finders/groups_finder_spec.rb847spec/lib/gitlab/background_migration/migrate_merge_request_diff_commit_users_spec.rb848spec/models/operations/feature_flags/strategy_spec.rb849spec/policies/ci/build_policy_spec.rb850spec/policies/note_policy_spec.rb851spec/views/search/_results.html.haml_spec.rb852spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb853spec/lib/gitlab/data_builder/push_spec.rb854spec/models/ci/ref_spec.rb855spec/models/draft_note_spec.rb856spec/services/groups/import_export/import_service_spec.rb857spec/models/concerns/token_authenticatable_spec.rb858spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb859spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb860spec/models/commit_range_spec.rb861spec/lib/backup/manager_spec.rb862spec/models/integrations/prometheus_spec.rb863spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb864spec/services/merge_requests/create_pipeline_service_spec.rb865spec/services/projects/move_access_service_spec.rb866spec/services/snippets/destroy_service_spec.rb867spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb868spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb869spec/services/wiki_pages/update_service_spec.rb870spec/lib/gitlab/sanitizers/exif_spec.rb871spec/graphql/mutations/merge_requests/set_assignees_spec.rb872spec/services/pages/migrate_from_legacy_storage_service_spec.rb873spec/finders/environments/environments_by_deployments_finder_spec.rb874spec/services/branches/delete_merged_service_spec.rb875spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb876spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb877spec/lib/gitlab/auth/saml/user_spec.rb878spec/services/groups/autocomplete_service_spec.rb879spec/lib/gitlab_spec.rb880spec/tasks/gitlab/cleanup_rake_spec.rb881spec/lib/gitlab/ci/config/entry/bridge_spec.rb882spec/services/issuable/common_system_notes_service_spec.rb883spec/lib/gitlab/legacy_github_import/importer_spec.rb884spec/services/deployments/archive_in_project_service_spec.rb885spec/lib/expand_variables_spec.rb886spec/lib/sidebars/projects/menus/settings_menu_spec.rb887spec/lib/object_storage/config_spec.rb888spec/policies/personal_snippet_policy_spec.rb889spec/lib/gitlab/middleware/multipart_spec.rb890spec/services/service_ping/submit_service_ping_service_spec.rb891spec/lib/bulk_imports/projects/pipelines/design_bundle_pipeline_spec.rb892spec/models/ci/freeze_period_status_spec.rb893spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb894spec/services/merge_requests/update_assignees_service_spec.rb895spec/lib/gitlab/ci/config/external/file/project_spec.rb896spec/graphql/types/base_enum_spec.rb897spec/services/todos/destroy/project_private_service_spec.rb898spec/lib/gitlab/alert_management/payload/generic_spec.rb899spec/lib/gitlab/database/count_spec.rb900spec/lib/banzai/object_renderer_spec.rb901spec/serializers/fork_namespace_entity_spec.rb902spec/services/uploads/destroy_service_spec.rb903spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb904spec/lib/banzai/pipeline/description_pipeline_spec.rb905spec/lib/sidebars/projects/panel_spec.rb906spec/lib/gitlab/authorized_keys_spec.rb907spec/services/ci/run_scheduled_build_service_spec.rb908spec/finders/packages/go/version_finder_spec.rb909spec/lib/gitlab/object_hierarchy_spec.rb910spec/serializers/diffs_metadata_entity_spec.rb911spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb912spec/lib/gitlab/error_tracking_spec.rb913spec/services/metrics/dashboard/update_dashboard_service_spec.rb914spec/models/packages/debian/group_distribution_key_spec.rb915spec/views/admin/dashboard/index.html.haml_spec.rb916spec/lib/gitlab/prometheus/additional_metrics_parser_spec.rb917spec/lib/gitlab/git/hook_env_spec.rb918spec/finders/concerns/finder_methods_spec.rb919spec/lib/backup/database_spec.rb920spec/helpers/ci/status_helper_spec.rb921spec/graphql/mutations/customer_relations/contacts/create_spec.rb922spec/lib/gitlab/slash_commands/issue_show_spec.rb923spec/lib/gitlab/database/load_balancing/configuration_spec.rb924spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb925spec/serializers/release_serializer_spec.rb926spec/services/deployments/create_service_spec.rb927spec/lib/gitlab/hook_data/project_builder_spec.rb928spec/lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator_spec.rb929spec/lib/gitlab/ci/build/policy/variables_spec.rb930spec/lib/gitlab/auth/o_auth/provider_spec.rb931spec/models/preloaders/group_root_ancestor_preloader_spec.rb932spec/lib/gitlab/lograge/custom_options_spec.rb933spec/workers/environments/auto_stop_worker_spec.rb934spec/scripts/changed-feature-flags_spec.rb935spec/workers/gitlab/jira_import/import_issue_worker_spec.rb936spec/policies/ci/pipeline_schedule_policy_spec.rb937spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb938spec/lib/gitlab/serverless/service_spec.rb939spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb940spec/lib/gitlab/web_hooks/rate_limiter_spec.rb941spec/lib/gitlab/auth/ip_rate_limiter_spec.rb942spec/helpers/notifications_helper_spec.rb943spec/services/bulk_imports/file_decompression_service_spec.rb944spec/serializers/merge_request_user_entity_spec.rb945spec/lib/gitlab/ci/pipeline/expression/token_spec.rb946spec/lib/gitlab/diff/file_collection/base_spec.rb947spec/lib/gitlab/ci/secure_files/cer_spec.rb948spec/workers/every_sidekiq_worker_spec.rb949spec/workers/projects/import_export/relation_export_worker_spec.rb950spec/finders/projects/export_job_finder_spec.rb951spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb952spec/rubocop/cop/put_group_routes_under_scope_spec.rb953spec/lib/gitlab/jira_import/issues_importer_spec.rb954spec/lib/error_tracking/stacktrace_builder_spec.rb955spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb956spec/lib/gitlab/github_import/representation/protected_branch_spec.rb957spec/presenters/packages/pypi/simple_index_presenter_spec.rb958spec/services/loose_foreign_keys/batch_cleaner_service_spec.rb959spec/services/ci/update_pending_build_service_spec.rb960spec/graphql/mutations/labels/create_spec.rb961spec/policies/personal_access_token_policy_spec.rb962spec/graphql/mutations/todos/mark_done_spec.rb963spec/lib/gitlab/git_post_receive_spec.rb964spec/rubocop/cop/migration/schedule_async_spec.rb965spec/models/work_items/widgets/start_and_due_date_spec.rb966spec/rubocop/cop/safe_params_spec.rb967spec/workers/pages_worker_spec.rb968spec/presenters/alert_management/alert_presenter_spec.rb969spec/lib/gitlab/usage_data_counters/web_ide_counter_spec.rb970spec/models/concerns/has_user_type_spec.rb971spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb972spec/services/ci/destroy_secure_file_service_spec.rb973spec/models/diff_viewer/image_spec.rb974spec/lib/gitlab/sidekiq_queue_spec.rb975spec/lib/gitlab/log_timestamp_formatter_spec.rb976spec/views/admin/identities/index.html.haml_spec.rb977spec/lib/gitlab/import_export/uploads_saver_spec.rb978spec/lib/gitlab/email/attachment_uploader_spec.rb979spec/models/raw_usage_data_spec.rb980spec/models/diff_viewer/server_side_spec.rb981spec/lib/gitlab/web_ide/config_spec.rb982spec/services/work_items/delete_service_spec.rb983spec/rubocop/cop/database/multiple_databases_spec.rb984spec/lib/tasks/gitlab/metrics_exporter_task_spec.rb985spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb986spec/lib/system_check/base_check_spec.rb987spec/lib/gitlab/throttle_spec.rb988spec/lib/gitlab/gitlab_import/client_spec.rb989spec/services/merge_requests/mergeability/logger_spec.rb990spec/lib/bulk_imports/groups/pipelines/group_pipeline_spec.rb991spec/workers/jira_connect/sync_deployments_worker_spec.rb992spec/helpers/ci/jobs_helper_spec.rb993spec/views/profiles/preferences/show.html.haml_spec.rb994spec/workers/update_merge_requests_worker_spec.rb995spec/policies/clusters/agent_policy_spec.rb996spec/models/integrations/chat_message/issue_message_spec.rb997spec/support_specs/time_travel_spec.rb998spec/models/work_items/widgets/base_spec.rb999spec/services/projects/open_merge_requests_count_service_spec.rb1000spec/lib/api/every_api_endpoint_spec.rb1001spec/lib/gitlab/metrics/delta_spec.rb1002spec/lib/gitlab/diff/formatters/image_formatter_spec.rb1003spec/scripts/lib/glfm/verify_all_generated_files_are_up_to_date_spec.rb1004spec/helpers/admin/identities_helper_spec.rb1005spec/services/import/gitlab_projects/file_acquisition_strategies/file_upload_spec.rb1006spec/services/merge_requests/resolve_todos_service_spec.rb1007spec/lib/gitlab/middleware/multipart/handler_spec.rb1008spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb1009spec/services/bulk_imports/archive_extraction_service_spec.rb1010spec/lib/gitlab/event_store/event_spec.rb1011spec/helpers/projects/pipeline_helper_spec.rb1012spec/models/users/saved_reply_spec.rb1013spec/views/projects/commits/show.html.haml_spec.rb1014spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb1015spec/lib/bulk_imports/projects/pipelines/auto_devops_pipeline_spec.rb1016spec/lib/gitlab/ci/config/entry/stage_spec.rb1017spec/serializers/ci/downloadable_artifact_serializer_spec.rb1018spec/support_specs/helpers/stub_method_calls_spec.rb1019spec/lib/banzai/filter/plantuml_filter_spec.rb1020spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb1021spec/lib/gitlab/tab_width_spec.rb1022spec/lib/csv_builders/stream_spec.rb1023spec/serializers/fork_namespace_serializer_spec.rb1024spec/views/shared/web_hooks/_web_hook_disabled_alert.html.haml_spec.rb1025spec/views/admin/application_settings/_ci_cd.html.haml_spec.rb1026spec/rubocop/cop/gitlab/httparty_spec.rb1027spec/services/keys/destroy_service_spec.rb1028spec/models/alerting/project_alerting_setting_spec.rb1029spec/workers/integrations/execute_worker_spec.rb1030spec/workers/jira_connect/retry_request_worker_spec.rb1031spec/lib/gitlab/memory/watchdog/monitor/heap_fragmentation_spec.rb1032spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb1033spec/models/gpg_key_subkey_spec.rb1034spec/models/user_canonical_email_spec.rb1035spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb1036spec/lib/gitlab/github_import/page_counter_spec.rb1037spec/lib/gitlab/config/entry/validator_spec.rb1038spec/validators/js_regex_validator_spec.rb1039spec/models/license_template_spec.rb1040spec/serializers/project_import_entity_spec.rb1041spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb1042spec/serializers/move_to_project_serializer_spec.rb1043spec/lib/gitlab/database/migrations/observers/query_details_spec.rb1044spec/graphql/types/clusters/agent_token_status_enum_spec.rb1045spec/rubocop/cop/rspec/htt_party_basic_auth_spec.rb1046spec/db/development/add_security_training_providers_spec.rb1047spec/graphql/types/error_tracking/sentry_error_stack_trace_entry_type_spec.rb1048spec/serializers/access_token_entity_base_spec.rb1049spec/services/authorized_project_update/project_access_changed_service_spec.rb1050spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb1051spec/lib/gitlab/external_authorization/cache_spec.rb1052spec/lib/gitlab/insecure_key_fingerprint_spec.rb1053spec/initializers/rdoc_segfault_patch_spec.rb1054spec/lib/gitlab/ci_access_spec.rb1055spec/initializers/action_cable_subscription_adapter_identifier_spec.rb1056spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb1057spec/lib/api/helpers/graphql_helpers_spec.rb1058spec/lib/bitbucket/collection_spec.rb1059spec/workers/concerns/pipeline_background_queue_spec.rb1060Filter specs:1061Running specs:1062Running all node tests without filter1063spec/finders/merge_requests_finder_spec.rb1064spec/lib/gitlab/metrics/subscribers/active_record_spec.rb1065spec/services/projects/overwrite_project_service_spec.rb1066spec/services/git/branch_hooks_service_spec.rb1067spec/finders/groups_finder_spec.rb1068spec/lib/gitlab/background_migration/migrate_merge_request_diff_commit_users_spec.rb1069spec/models/operations/feature_flags/strategy_spec.rb1070spec/policies/ci/build_policy_spec.rb1071spec/policies/note_policy_spec.rb1072spec/views/search/_results.html.haml_spec.rb1073spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb1074spec/lib/gitlab/data_builder/push_spec.rb1075spec/models/ci/ref_spec.rb1076spec/models/draft_note_spec.rb1077spec/services/groups/import_export/import_service_spec.rb1078spec/models/concerns/token_authenticatable_spec.rb1079spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb1080spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb1081spec/models/commit_range_spec.rb1082spec/lib/backup/manager_spec.rb1083spec/models/integrations/prometheus_spec.rb1084spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb1085spec/services/merge_requests/create_pipeline_service_spec.rb1086spec/services/projects/move_access_service_spec.rb1087spec/services/snippets/destroy_service_spec.rb1088spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb1089spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb1090spec/services/wiki_pages/update_service_spec.rb1091spec/lib/gitlab/sanitizers/exif_spec.rb1092spec/graphql/mutations/merge_requests/set_assignees_spec.rb1093spec/services/pages/migrate_from_legacy_storage_service_spec.rb1094spec/finders/environments/environments_by_deployments_finder_spec.rb1095spec/services/branches/delete_merged_service_spec.rb1096spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb1097spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb1098spec/lib/gitlab/auth/saml/user_spec.rb1099spec/services/groups/autocomplete_service_spec.rb1100spec/lib/gitlab_spec.rb1101spec/tasks/gitlab/cleanup_rake_spec.rb1102spec/lib/gitlab/ci/config/entry/bridge_spec.rb1103spec/services/issuable/common_system_notes_service_spec.rb1104spec/lib/gitlab/legacy_github_import/importer_spec.rb1105spec/services/deployments/archive_in_project_service_spec.rb1106spec/lib/expand_variables_spec.rb1107spec/lib/sidebars/projects/menus/settings_menu_spec.rb1108spec/lib/object_storage/config_spec.rb1109spec/policies/personal_snippet_policy_spec.rb1110spec/lib/gitlab/middleware/multipart_spec.rb1111spec/services/service_ping/submit_service_ping_service_spec.rb1112spec/lib/bulk_imports/projects/pipelines/design_bundle_pipeline_spec.rb1113spec/models/ci/freeze_period_status_spec.rb1114spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb1115spec/services/merge_requests/update_assignees_service_spec.rb1116spec/lib/gitlab/ci/config/external/file/project_spec.rb1117spec/graphql/types/base_enum_spec.rb1118spec/services/todos/destroy/project_private_service_spec.rb1119spec/lib/gitlab/alert_management/payload/generic_spec.rb1120spec/lib/gitlab/database/count_spec.rb1121spec/lib/banzai/object_renderer_spec.rb1122spec/serializers/fork_namespace_entity_spec.rb1123spec/services/uploads/destroy_service_spec.rb1124spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb1125spec/lib/banzai/pipeline/description_pipeline_spec.rb1126spec/lib/sidebars/projects/panel_spec.rb1127spec/lib/gitlab/authorized_keys_spec.rb1128spec/services/ci/run_scheduled_build_service_spec.rb1129spec/finders/packages/go/version_finder_spec.rb1130spec/lib/gitlab/object_hierarchy_spec.rb1131spec/serializers/diffs_metadata_entity_spec.rb1132spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb1133spec/lib/gitlab/error_tracking_spec.rb1134spec/services/metrics/dashboard/update_dashboard_service_spec.rb1135spec/models/packages/debian/group_distribution_key_spec.rb1136spec/views/admin/dashboard/index.html.haml_spec.rb1137spec/lib/gitlab/prometheus/additional_metrics_parser_spec.rb1138spec/lib/gitlab/git/hook_env_spec.rb1139spec/finders/concerns/finder_methods_spec.rb1140spec/lib/backup/database_spec.rb1141spec/helpers/ci/status_helper_spec.rb1142spec/graphql/mutations/customer_relations/contacts/create_spec.rb1143spec/lib/gitlab/slash_commands/issue_show_spec.rb1144spec/lib/gitlab/database/load_balancing/configuration_spec.rb1145spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb1146spec/serializers/release_serializer_spec.rb1147spec/services/deployments/create_service_spec.rb1148spec/lib/gitlab/hook_data/project_builder_spec.rb1149spec/lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator_spec.rb1150spec/lib/gitlab/ci/build/policy/variables_spec.rb1151spec/lib/gitlab/auth/o_auth/provider_spec.rb1152spec/models/preloaders/group_root_ancestor_preloader_spec.rb1153spec/lib/gitlab/lograge/custom_options_spec.rb1154spec/workers/environments/auto_stop_worker_spec.rb1155spec/scripts/changed-feature-flags_spec.rb1156spec/workers/gitlab/jira_import/import_issue_worker_spec.rbKnapsack report generator started!1157Run options: exclude {:quarantine=>true, :level=>"migration"}1158Test environment set up in 1.870957203 seconds1159MergeRequestsFinder1160 multiple projects with merge requests1161 #execute1162 filters by scope1163 filters by project_id1164 filters by projects1165 filters by non_archived1166 filters by source project id1167 filters by state1168 does not raise any exception with complex filters1169 filtering by author1170 using OR1171 returns merge requests created by any of the given users1172 when feature flag is disabled1173 does not add any filter1174 with nonexistent author ID and MR term using CTE for search1175 returns no results1176 filtering by not author ID1177 returns merge requests not created by that user1178 filters by commit sha1179 when commit belongs to the merge request1180 filters by commit sha1181 when commit is a squash commit1182 filters by commit sha1183 when commit is a merge commit1184 filters by commit sha1185 filters by merged_at date1186 merged_after1187 is expected to eq [#<MergeRequest id:58 group1/project1!1>]1188 merged_before1189 is expected to eq [#<MergeRequest id:63 group1/project1!2>]1190 when both merged_after and merged_before is given1191 is expected to eq [#<MergeRequest id:67 group1/project1!2>]1192 when project_id is given1193 is expected to eq [#<MergeRequest id:71 group1/project1!2>]1194 queries merge_request_metrics.target_project_id table1195 filtering by group1196 includes all merge requests when user has access excluding merge requests from projects the user does not have access to1197 filters by group including subgroups1198 filters by group projects including subgroups1199 :iid parameter1200 behaves like scalar or array parameter1201 takes scalar values1202 takes array values1203 source_branch parameter1204 behaves like scalar or array parameter1205 takes scalar values1206 takes array values1207 target_branch parameter1208 behaves like scalar or array parameter1209 takes scalar values1210 takes array values1211 :label_name parameter1212 accepts a single label1213 accepts an array of labels, all of which must match1214 draft state1215 returns all items if no valid wip param exists1216 returns all items if no valid draft param exists1217 behaves like draft MRs filtering1218 filters by wip => 11219 behaves like draft MRs filtering1220 filters by wip => 11221 behaves like draft MRs filtering1222 filters by wip => true1223 behaves like draft MRs filtering1224 filters by wip => true1225 behaves like draft MRs filtering1226 filters by wip => yes1227 behaves like draft MRs filtering1228 filters by wip => 01229 behaves like draft MRs filtering1230 filters by wip => 01231 behaves like draft MRs filtering1232 filters by wip => false1233 behaves like draft MRs filtering1234 filters by wip => false1235 behaves like draft MRs filtering1236 filters by wip => no1237 behaves like draft MRs filtering1238 filters by wip => 11239 behaves like draft MRs filtering1240 filters by wip => 11241 behaves like draft MRs filtering1242 filters by wip => true1243 behaves like draft MRs filtering1244 filters by wip => true1245 behaves like draft MRs filtering1246 filters by wip => yes1247 behaves like draft MRs filtering1248 filters by wip => 01249 behaves like draft MRs filtering1250 filters by wip => 01251 behaves like draft MRs filtering1252 filters by wip => false1253 behaves like draft MRs filtering1254 filters by wip => false1255 behaves like draft MRs filtering1256 filters by wip => no1257 behaves like draft MRs filtering1258 filters by wip => 11259 behaves like draft MRs filtering1260 filters by wip => 11261 behaves like draft MRs filtering1262 filters by wip => true1263 behaves like draft MRs filtering1264 filters by wip => true1265 behaves like draft MRs filtering1266 filters by wip => yes1267 behaves like draft MRs filtering1268 filters by wip => 01269 behaves like draft MRs filtering1270 filters by wip => 01271 behaves like draft MRs filtering1272 filters by wip => false1273 behaves like draft MRs filtering1274 filters by wip => false1275 behaves like draft MRs filtering1276 filters by wip => no1277 behaves like draft MRs filtering1278 filters by draft => 11279 behaves like draft MRs filtering1280 filters by draft => 11281 behaves like draft MRs filtering1282 filters by draft => true1283 behaves like draft MRs filtering1284 filters by draft => true1285 behaves like draft MRs filtering1286 filters by draft => yes1287 behaves like draft MRs filtering1288 filters by draft => 01289 behaves like draft MRs filtering1290 filters by draft => 01291 behaves like draft MRs filtering1292 filters by draft => false1293 behaves like draft MRs filtering1294 filters by draft => false1295 behaves like draft MRs filtering1296 filters by draft => no1297 behaves like draft MRs filtering1298 filters by draft => 11299 behaves like draft MRs filtering1300 filters by draft => 11301 behaves like draft MRs filtering1302 filters by draft => true1303 behaves like draft MRs filtering1304 filters by draft => true1305 behaves like draft MRs filtering1306 filters by draft => yes1307 behaves like draft MRs filtering1308 filters by draft => 01309 behaves like draft MRs filtering1310 filters by draft => 01311 behaves like draft MRs filtering1312 filters by draft => false1313 behaves like draft MRs filtering1314 filters by draft => false1315 behaves like draft MRs filtering1316 filters by draft => no1317 behaves like draft MRs filtering1318 filters by draft => 11319 behaves like draft MRs filtering1320 filters by draft => 11321 behaves like draft MRs filtering1322 filters by draft => true1323 behaves like draft MRs filtering1324 filters by draft => true1325 behaves like draft MRs filtering1326 filters by draft => yes1327 behaves like draft MRs filtering1328 filters by draft => 01329 behaves like draft MRs filtering1330 filters by draft => 01331 behaves like draft MRs filtering1332 filters by draft => false1333 behaves like draft MRs filtering1334 filters by draft => false1335 behaves like draft MRs filtering1336 filters by draft => no1337 behaves like draft MRs filtering1338 filters by draft => 11339 behaves like draft MRs filtering1340 filters by draft => 11341 behaves like draft MRs filtering1342 filters by draft => true1343 behaves like draft MRs filtering1344 filters by draft => true1345 behaves like draft MRs filtering1346 filters by draft => yes1347 behaves like draft MRs filtering1348 filters by draft => 01349 behaves like draft MRs filtering1350 filters by draft => 01351 behaves like draft MRs filtering1352 filters by draft => false1353 behaves like draft MRs filtering1354 filters by draft => false1355 behaves like draft MRs filtering1356 filters by draft => no1357 filter by deployment1358 returns the relevant merge requests1359 when a deployment does not contain any merge requests1360 returns an empty result1361 .scalar_params1362 contains scalar params related to merge requests1363 assignee filtering1364 behaves like assignee ID filter1365 returns issuables assigned to that user1366 behaves like assignee NOT ID filter1367 returns issuables not assigned to that user1368 behaves like assignee username filter1369 returns issuables assigned to those users1370 behaves like assignee NOT username filter1371 returns issuables not assigned to those users1372 behaves like no assignee filter1373 returns issuables not assigned to any assignee1374 returns issuables not assigned to any assignee1375 behaves like any assignee filter1377 returns issuables assigned to any assignee1378 returns issuables assigned to any assignee1379 reviewer filtering1380 by reviewer_id1381 is expected to contain exactly #<MergeRequest id:466 group1/project1!1> and #<MergeRequest id:467 group1/project1!2>1382 by NOT reviewer_id1383 is expected to contain exactly #<MergeRequest id:472 group231/project244!1>, #<MergeRequest id:473 group232/project245!1>, and #<MergeRequest id:1 group1/group2/project2!1>1384 by reviewer_username1385 is expected to contain exactly #<MergeRequest id:474 group1/project1!1> and #<MergeRequest id:475 group1/project1!2>1386 by NOT reviewer_username1387 is expected to contain exactly #<MergeRequest id:480 group235/project248!1>, #<MergeRequest id:481 group236/project249!1>, and #<MergeRequest id:1 group1/group2/project2!1>1388 by reviewer_id=None1389 is expected to contain exactly #<MergeRequest id:485 group238/project251!1> and #<MergeRequest id:1 group1/group2/project2!1>1390 by reviewer_id=Any1391 is expected to contain exactly #<MergeRequest id:486 group1/project1!1>, #<MergeRequest id:487 group1/project1!2>, and #<MergeRequest id:488 group239/project252!1>1392 by reviewer_id with unknown user1393 is expected to be empty1394 by NOT reviewer_id with unknown user1395 is expected to be empty1396 filtering by group milestone1397 returns merge requests assigned to that group milestone1398 using NOT1399 returns MRs not assigned to that group milestone1400 filtering by approved by username1401 sort: nil1402 returns merge requests approved by that user1403 sort: "milestone"1404 returns merge requests approved by that user1405 sort: "merged_at"1406 returns merge requests approved by that user1407 sort: "merged_at_desc"1408 returns merge requests approved by that user1409 sort: "closed_at"1410 returns merge requests approved by that user1411 sort: "closed_at_desc"1412 returns merge requests approved by that user1413 not filter1414 returns merge requests not approved by that user1415 when filtering by author and not approved by1416 returns merge requests authored by user and not approved by user21417 filtering by approved by user ID1418 returns merge requests approved by that user1419 with sorting by milestone1420 returns merge requests approved by that user1421 filtering by created_at/updated_at1422 filters by created_after1423 filters by created_before1424 filters by created_after and created_before1425 filters by updated_after1426 filters by updated_before1427 filters by updated_after and updated_before1428 filtering by the merge request deployments1429 filters merge requests deployed to a given environment1430 filters merge requests deployed before a given date1431 filters merge requests ignoring empty deployed_before1432 filters merge requests ignoring invalid deployed_before1433 filters merge requests deployed after a given date1434 filters merge requests ignoring empty deployed_after1435 filters merge requests ignoring invalid deployed_after1436 filtering by search text1437 with anonymous user1438 with disable_anonymous_search feature flag enabled1439 does not perform search1440 with disable_anonymous_search feature flag disabled1441 returns matching merge requests1442 #row_count1443 returns the number of rows for the default state1444 returns the number of rows for a given state1445 returns -1 if the query times out1446 external authorization1447 behaves like a finder with external authorization service1448 finds the subject1449 with an external authorization service1450 does not include the subject when no project was given1451 includes the subject when a project id was given1452 when projects require different access levels for merge requests1453 with admin user1454 when admin mode is enabled1455 returns all merge requests1456 when admin mode is disabled1457 returns public and internal merge requests1458 when project restricts merge requests1459 returns nothing to to non members1460 with external user1461 returns only public merge requests1462 with authenticated user1463 returns public and internal merge requests1464 being added to the private project1465 as a guest1466 does not return merge requests from the private project1467 as a developer1468 returns merge requests from the private project1469 being added to the public project with private repo access1470 as a guest1471 returns merge requests from the project1472 as a reporter1473 returns merge requests from the project1474 being added to the internal project with private repo access1475 as a guest1476 returns merge requests from the project1477 as a reporter1478 returns merge requests from the project1479 #count_by_state1480 when filtering by multiple labels1481 returns the correnct counts1482 when filtering by approved_by_usernames1483 returns the correnct counts1484Gitlab::Metrics::Subscribers::ActiveRecord1485 .load_balancing_metric_counter_keys1486 multiple databases1487 has expected keys1488 single database1489 has expected keys (PENDING: Skipping because multiple databases are set up)1490 does not have ci keys (PENDING: Skipping because multiple databases are set up)1491 .load_balancing_metric_duration_keys1492 multiple databases1493 has expected keys1494 single database1495 has expected keys (PENDING: Skipping because multiple databases are set up)1496 does not have ci keys (PENDING: Skipping because multiple databases are set up)1497 #transaction1498 when both web and background transaction are available1499 captures the metrics for web only1500 when web transaction is available1501 captures the metrics for web only1502 when background transaction is available1503 captures the metrics for web only1504 #sql1505 without Marginalia comments1506 behaves like track generic sql events1507 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: false1508 marks the current thread as using the database1509 behaves like record ActiveRecord metrics1510 when both web and background transaction are available1511 captures the metrics for web only1512 behaves like record ActiveRecord metrics in a metrics transaction1513 increments only db counters1514 observes sql_duration metric1515 when web transaction is available1516 behaves like record ActiveRecord metrics in a metrics transaction1517 increments only db counters1518 observes sql_duration metric1519 when background transaction is available1520 behaves like record ActiveRecord metrics in a metrics transaction1521 increments only db counters1522 observes sql_duration metric1523 behaves like store ActiveRecord info in RequestStore1524 prevents db counters from leaking to the next transaction1525 name: "SQL", sql_query: "WITH active_milestones AS (SELECT COUNT(*), state FROM milestones GROUP BY state) SELECT * FROM active_milestones", record_query: true, record_write_query: false, record_cached_query: false1526 marks the current thread as using the database1527 behaves like record ActiveRecord metrics1528 when both web and background transaction are available1529 captures the metrics for web only1530 behaves like record ActiveRecord metrics in a metrics transaction1531 increments only db counters1532 observes sql_duration metric1533 when web transaction is available1534 behaves like record ActiveRecord metrics in a metrics transaction1535 increments only db counters1536 observes sql_duration metric1537 when background transaction is available1538 behaves like record ActiveRecord metrics in a metrics transaction1539 increments only db counters1540 observes sql_duration metric1541 behaves like store ActiveRecord info in RequestStore1542 prevents db counters from leaking to the next transaction1543 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10 FOR UPDATE", record_query: true, record_write_query: true, record_cached_query: false1544 marks the current thread as using the database1545 behaves like record ActiveRecord metrics1546 when both web and background transaction are available1547 captures the metrics for web only1548 behaves like record ActiveRecord metrics in a metrics transaction1549 increments only db counters1550 observes sql_duration metric1551 when web transaction is available1552 behaves like record ActiveRecord metrics in a metrics transaction1553 increments only db counters1554 observes sql_duration metric1555 when background transaction is available1556 behaves like record ActiveRecord metrics in a metrics transaction1557 increments only db counters1558 observes sql_duration metric1559 behaves like store ActiveRecord info in RequestStore1560 prevents db counters from leaking to the next transaction1561 name: "SQL", sql_query: "WITH archived_rows AS (SELECT * FROM users WHERE archived = true) INSERT INTO products_log SELECT * FROM archived_rows", record_query: true, record_write_query: true, record_cached_query: false1562 marks the current thread as using the database1563 behaves like record ActiveRecord metrics1564 when both web and background transaction are available1565 captures the metrics for web only1566 behaves like record ActiveRecord metrics in a metrics transaction1567 increments only db counters1568 observes sql_duration metric1569 when web transaction is available1570 behaves like record ActiveRecord metrics in a metrics transaction1571 increments only db counters1572 observes sql_duration metric1573 when background transaction is available1574 behaves like record ActiveRecord metrics in a metrics transaction1575 increments only db counters1576 observes sql_duration metric1577 behaves like store ActiveRecord info in RequestStore1578 prevents db counters from leaking to the next transaction1579 name: "SQL", sql_query: "DELETE FROM users where id = 10", record_query: true, record_write_query: true, record_cached_query: false1580 marks the current thread as using the database1581 behaves like record ActiveRecord metrics1582 when both web and background transaction are available1583 captures the metrics for web only1584 behaves like record ActiveRecord metrics in a metrics transaction1585 increments only db counters1586 observes sql_duration metric1587 when web transaction is available1588 behaves like record ActiveRecord metrics in a metrics transaction1589 increments only db counters1590 observes sql_duration metric1591 when background transaction is available1592 behaves like record ActiveRecord metrics in a metrics transaction1593 increments only db counters1594 observes sql_duration metric1595 behaves like store ActiveRecord info in RequestStore1596 prevents db counters from leaking to the next transaction1597 name: "SQL", sql_query: "INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects", record_query: true, record_write_query: true, record_cached_query: false1598 marks the current thread as using the database1599 behaves like record ActiveRecord metrics1600 when both web and background transaction are available1601 captures the metrics for web only1602 behaves like record ActiveRecord metrics in a metrics transaction1603 increments only db counters1604 observes sql_duration metric1605 when web transaction is available1606 behaves like record ActiveRecord metrics in a metrics transaction1607 increments only db counters1608 observes sql_duration metric1609 when background transaction is available1610 behaves like record ActiveRecord metrics in a metrics transaction1611 increments only db counters1612 observes sql_duration metric1613 behaves like store ActiveRecord info in RequestStore1614 prevents db counters from leaking to the next transaction1615 name: "SQL", sql_query: "UPDATE users SET admin = true WHERE id = 10", record_query: true, record_write_query: true, record_cached_query: false1616 marks the current thread as using the database1617 behaves like record ActiveRecord metrics1618 when both web and background transaction are available1619 captures the metrics for web only1620 behaves like record ActiveRecord metrics in a metrics transaction1621 increments only db counters1622 observes sql_duration metric1623 when web transaction is available1624 behaves like record ActiveRecord metrics in a metrics transaction1625 increments only db counters1626 observes sql_duration metric1627 when background transaction is available1628 behaves like record ActiveRecord metrics in a metrics transaction1629 increments only db counters1630 observes sql_duration metric1631 behaves like store ActiveRecord info in RequestStore1632 prevents db counters from leaking to the next transaction1633 name: "CACHE", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: true1634 marks the current thread as using the database1635 behaves like record ActiveRecord metrics1636 when both web and background transaction are available1637 captures the metrics for web only1638 behaves like record ActiveRecord metrics in a metrics transaction1639 increments only db counters1640 observes sql_duration metric1641 when web transaction is available1642 behaves like record ActiveRecord metrics in a metrics transaction1643 increments only db counters1644 observes sql_duration metric1645 when background transaction is available1646 behaves like record ActiveRecord metrics in a metrics transaction1647 increments only db counters1648 observes sql_duration metric1649 behaves like store ActiveRecord info in RequestStore1650 prevents db counters from leaking to the next transaction1651 name: "SCHEMA", sql_query: "SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = any(cons.conkey) WHERE cons.contype = 'p' AND cons.conrelid = '\"projects\"'::regclass", record_query: false, record_write_query: false, record_cached_query: false1652 marks the current thread as using the database1653 behaves like record ActiveRecord metrics1654 when both web and background transaction are available1655 captures the metrics for web only1656 behaves like record ActiveRecord metrics in a metrics transaction1657 increments only db counters1658 observes sql_duration metric1659 when web transaction is available1660 behaves like record ActiveRecord metrics in a metrics transaction1661 increments only db counters1662 observes sql_duration metric1663 when background transaction is available1664 behaves like record ActiveRecord metrics in a metrics transaction1665 increments only db counters1666 observes sql_duration metric1667 behaves like store ActiveRecord info in RequestStore1668 prevents db counters from leaking to the next transaction1669 name: nil, sql_query: "BEGIN", record_query: false, record_write_query: false, record_cached_query: false1670 marks the current thread as using the database1671 behaves like record ActiveRecord metrics1672 when both web and background transaction are available1673 captures the metrics for web only1674 behaves like record ActiveRecord metrics in a metrics transaction1675 increments only db counters1676 observes sql_duration metric1677 when web transaction is available1678 behaves like record ActiveRecord metrics in a metrics transaction1679 increments only db counters1680 observes sql_duration metric1681 when background transaction is available1682 behaves like record ActiveRecord metrics in a metrics transaction1683 increments only db counters1684 observes sql_duration metric1685 behaves like store ActiveRecord info in RequestStore1686 prevents db counters from leaking to the next transaction1687 name: nil, sql_query: "COMMIT", record_query: false, record_write_query: false, record_cached_query: false1688 marks the current thread as using the database1689 behaves like record ActiveRecord metrics1690 when both web and background transaction are available1691 captures the metrics for web only1692 behaves like record ActiveRecord metrics in a metrics transaction1693 increments only db counters1694 observes sql_duration metric1695 when web transaction is available1696 behaves like record ActiveRecord metrics in a metrics transaction1697 increments only db counters1698 observes sql_duration metric1699 when background transaction is available1700 behaves like record ActiveRecord metrics in a metrics transaction1701 increments only db counters1702 observes sql_duration metric1703 behaves like store ActiveRecord info in RequestStore1704 prevents db counters from leaking to the next transaction1705 with Marginalia comments1706 behaves like track generic sql events1707 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: false1708 marks the current thread as using the database1709 behaves like record ActiveRecord metrics1710 when both web and background transaction are available1711 captures the metrics for web only1712 behaves like record ActiveRecord metrics in a metrics transaction1713 increments only db counters1714 observes sql_duration metric1715 when web transaction is available1716 behaves like record ActiveRecord metrics in a metrics transaction1717 increments only db counters1718 observes sql_duration metric1719 when background transaction is available1720 behaves like record ActiveRecord metrics in a metrics transaction1721 increments only db counters1722 observes sql_duration metric1723 behaves like store ActiveRecord info in RequestStore1724 prevents db counters from leaking to the next transaction1725 name: "SQL", sql_query: "WITH active_milestones AS (SELECT COUNT(*), state FROM milestones GROUP BY state) SELECT * FROM active_milestones", record_query: true, record_write_query: false, record_cached_query: false1726 marks the current thread as using the database1727 behaves like record ActiveRecord metrics1728 when both web and background transaction are available1729 captures the metrics for web only1730 behaves like record ActiveRecord metrics in a metrics transaction1731 increments only db counters1732 observes sql_duration metric1733 when web transaction is available1734 behaves like record ActiveRecord metrics in a metrics transaction1735 increments only db counters1736 observes sql_duration metric1737 when background transaction is available1738 behaves like record ActiveRecord metrics in a metrics transaction1739 increments only db counters1740 observes sql_duration metric1741 behaves like store ActiveRecord info in RequestStore1742 prevents db counters from leaking to the next transaction1743 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10 FOR UPDATE", record_query: true, record_write_query: true, record_cached_query: false1744 marks the current thread as using the database1745 behaves like record ActiveRecord metrics1746 when both web and background transaction are available1747 captures the metrics for web only1748 behaves like record ActiveRecord metrics in a metrics transaction1749 increments only db counters1750 observes sql_duration metric1751 when web transaction is available1752 behaves like record ActiveRecord metrics in a metrics transaction1753 increments only db counters1754 observes sql_duration metric1755 when background transaction is available1756 behaves like record ActiveRecord metrics in a metrics transaction1757 increments only db counters1758 observes sql_duration metric1759 behaves like store ActiveRecord info in RequestStore1760 prevents db counters from leaking to the next transaction1761 name: "SQL", sql_query: "WITH archived_rows AS (SELECT * FROM users WHERE archived = true) INSERT INTO products_log SELECT * FROM archived_rows", record_query: true, record_write_query: true, record_cached_query: false1762 marks the current thread as using the database1763 behaves like record ActiveRecord metrics1764 when both web and background transaction are available1765 captures the metrics for web only1766 behaves like record ActiveRecord metrics in a metrics transaction1767 increments only db counters1768 observes sql_duration metric1769 when web transaction is available1770 behaves like record ActiveRecord metrics in a metrics transaction1771 increments only db counters1772 observes sql_duration metric1773 when background transaction is available1774 behaves like record ActiveRecord metrics in a metrics transaction1775 increments only db counters1776 observes sql_duration metric1777 behaves like store ActiveRecord info in RequestStore1778 prevents db counters from leaking to the next transaction1779 name: "SQL", sql_query: "DELETE FROM users where id = 10", record_query: true, record_write_query: true, record_cached_query: false1780 marks the current thread as using the database1781 behaves like record ActiveRecord metrics1782 when both web and background transaction are available1783 captures the metrics for web only1784 behaves like record ActiveRecord metrics in a metrics transaction1785 increments only db counters1786 observes sql_duration metric1787 when web transaction is available1788 behaves like record ActiveRecord metrics in a metrics transaction1789 increments only db counters1790 observes sql_duration metric1791 when background transaction is available1792 behaves like record ActiveRecord metrics in a metrics transaction1793 increments only db counters1794 observes sql_duration metric1795 behaves like store ActiveRecord info in RequestStore1796 prevents db counters from leaking to the next transaction1797 name: "SQL", sql_query: "INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects", record_query: true, record_write_query: true, record_cached_query: false1798 marks the current thread as using the database1799 behaves like record ActiveRecord metrics1800 when both web and background transaction are available1801 captures the metrics for web only1802 behaves like record ActiveRecord metrics in a metrics transaction1803 increments only db counters1804 observes sql_duration metric1805 when web transaction is available1806 behaves like record ActiveRecord metrics in a metrics transaction1807 increments only db counters1808 observes sql_duration metric1809 when background transaction is available1810 behaves like record ActiveRecord metrics in a metrics transaction1811 increments only db counters1812 observes sql_duration metric1813 behaves like store ActiveRecord info in RequestStore1814 prevents db counters from leaking to the next transaction1815 name: "SQL", sql_query: "UPDATE users SET admin = true WHERE id = 10", record_query: true, record_write_query: true, record_cached_query: false1816 marks the current thread as using the database1817 behaves like record ActiveRecord metrics1818 when both web and background transaction are available1819 captures the metrics for web only1820 behaves like record ActiveRecord metrics in a metrics transaction1821 increments only db counters1822 observes sql_duration metric1823 when web transaction is available1824 behaves like record ActiveRecord metrics in a metrics transaction1825 increments only db counters1826 observes sql_duration metric1827 when background transaction is available1828 behaves like record ActiveRecord metrics in a metrics transaction1829 increments only db counters1830 observes sql_duration metric1831 behaves like store ActiveRecord info in RequestStore1832 prevents db counters from leaking to the next transaction1833 name: "CACHE", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: true1834 marks the current thread as using the database1835 behaves like record ActiveRecord metrics1836 when both web and background transaction are available1837 captures the metrics for web only1838 behaves like record ActiveRecord metrics in a metrics transaction1839 increments only db counters1840 observes sql_duration metric1841 when web transaction is available1842 behaves like record ActiveRecord metrics in a metrics transaction1843 increments only db counters1844 observes sql_duration metric1845 when background transaction is available1846 behaves like record ActiveRecord metrics in a metrics transaction1847 increments only db counters1848 observes sql_duration metric1849 behaves like store ActiveRecord info in RequestStore1850 prevents db counters from leaking to the next transaction1851 name: "SCHEMA", sql_query: "SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = any(cons.conkey) WHERE cons.contype = 'p' AND cons.conrelid = '\"projects\"'::regclass", record_query: false, record_write_query: false, record_cached_query: false1852 marks the current thread as using the database1853 behaves like record ActiveRecord metrics1854 when both web and background transaction are available1855 captures the metrics for web only1856 behaves like record ActiveRecord metrics in a metrics transaction1857 increments only db counters1858 observes sql_duration metric1859 when web transaction is available1860 behaves like record ActiveRecord metrics in a metrics transaction1861 increments only db counters1862 observes sql_duration metric1863 when background transaction is available1864 behaves like record ActiveRecord metrics in a metrics transaction1865 increments only db counters1866 observes sql_duration metric1867 behaves like store ActiveRecord info in RequestStore1868 prevents db counters from leaking to the next transaction1869 name: nil, sql_query: "BEGIN", record_query: false, record_write_query: false, record_cached_query: false1870 marks the current thread as using the database1871 behaves like record ActiveRecord metrics1872 when both web and background transaction are available1873 captures the metrics for web only1874 behaves like record ActiveRecord metrics in a metrics transaction1875 increments only db counters1876 observes sql_duration metric1877 when web transaction is available1878 behaves like record ActiveRecord metrics in a metrics transaction1879 increments only db counters1880 observes sql_duration metric1881 when background transaction is available1882 behaves like record ActiveRecord metrics in a metrics transaction1883 increments only db counters1884 observes sql_duration metric1885 behaves like store ActiveRecord info in RequestStore1886 prevents db counters from leaking to the next transaction1887 name: nil, sql_query: "COMMIT", record_query: false, record_write_query: false, record_cached_query: false1888 marks the current thread as using the database1889 behaves like record ActiveRecord metrics1890 when both web and background transaction are available1891 captures the metrics for web only1892 behaves like record ActiveRecord metrics in a metrics transaction1893 increments only db counters1894 observes sql_duration metric1895 when web transaction is available1896 behaves like record ActiveRecord metrics in a metrics transaction1897 increments only db counters1898 observes sql_duration metric1899 when background transaction is available1900 behaves like record ActiveRecord metrics in a metrics transaction1901 increments only db counters1902 observes sql_duration metric1903 behaves like store ActiveRecord info in RequestStore1904 prevents db counters from leaking to the next transaction1905 Database Load Balancing enabled1906 without Marginalia comments1907 behaves like track sql events for each role1908 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: false1909 query using a connection to a replica1910 queries connection db role1911 behaves like record ActiveRecord metrics1912 when both web and background transaction are available1913 captures the metrics for web only1914 behaves like record ActiveRecord metrics in a metrics transaction1915 increments only db counters1916 observes sql_duration metric1917 when web transaction is available1918 behaves like record ActiveRecord metrics in a metrics transaction1919 increments only db counters1920 observes sql_duration metric1921 when background transaction is available1922 behaves like record ActiveRecord metrics in a metrics transaction1923 increments only db counters1924 observes sql_duration metric1925 behaves like store ActiveRecord info in RequestStore1926 prevents db counters from leaking to the next transaction1927 query using a connection to a primary1928 queries connection db role1929 behaves like record ActiveRecord metrics1930 when both web and background transaction are available1931 captures the metrics for web only1932 behaves like record ActiveRecord metrics in a metrics transaction1933 increments only db counters1934 observes sql_duration metric1935 when web transaction is available1936 behaves like record ActiveRecord metrics in a metrics transaction1937 increments only db counters1938 observes sql_duration metric1939 when background transaction is available1940 behaves like record ActiveRecord metrics in a metrics transaction1941 increments only db counters1942 observes sql_duration metric1943 behaves like store ActiveRecord info in RequestStore1944 prevents db counters from leaking to the next transaction1945 query using a connection to an unknown source1946 does not record DB role metrics1947 does not store DB roles into into RequestStore1948 name: "SQL", sql_query: "WITH active_milestones AS (SELECT COUNT(*), state FROM milestones GROUP BY state) SELECT * FROM active_milestones", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: false1949 query using a connection to a replica1950 queries connection db role1951 behaves like record ActiveRecord metrics1952 when both web and background transaction are available1953 captures the metrics for web only1954 behaves like record ActiveRecord metrics in a metrics transaction1955 increments only db counters1956 observes sql_duration metric1957 when web transaction is available1958 behaves like record ActiveRecord metrics in a metrics transaction1959 increments only db counters1960 observes sql_duration metric1961 when background transaction is available1962 behaves like record ActiveRecord metrics in a metrics transaction1963 increments only db counters1964 observes sql_duration metric1965 behaves like store ActiveRecord info in RequestStore1966 prevents db counters from leaking to the next transaction1967 query using a connection to a primary1968 queries connection db role1969 behaves like record ActiveRecord metrics1970 when both web and background transaction are available1971 captures the metrics for web only1972 behaves like record ActiveRecord metrics in a metrics transaction1973 increments only db counters1974 observes sql_duration metric1975 when web transaction is available1976 behaves like record ActiveRecord metrics in a metrics transaction1977 increments only db counters1978 observes sql_duration metric1979 when background transaction is available1980 behaves like record ActiveRecord metrics in a metrics transaction1981 increments only db counters1982 observes sql_duration metric1983 behaves like store ActiveRecord info in RequestStore1984 prevents db counters from leaking to the next transaction1985 query using a connection to an unknown source1986 does not record DB role metrics1987 does not store DB roles into into RequestStore1988 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10 FOR UPDATE", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false1989 query using a connection to a replica1990 queries connection db role1991 behaves like record ActiveRecord metrics1992 when both web and background transaction are available1993 captures the metrics for web only1994 behaves like record ActiveRecord metrics in a metrics transaction1995 increments only db counters1996 observes sql_duration metric1997 when web transaction is available1998 behaves like record ActiveRecord metrics in a metrics transaction1999 increments only db counters2000 observes sql_duration metric2001 when background transaction is available2002 behaves like record ActiveRecord metrics in a metrics transaction2003 increments only db counters2004 observes sql_duration metric2005 behaves like store ActiveRecord info in RequestStore2006 prevents db counters from leaking to the next transaction2007 query using a connection to a primary2008 queries connection db role2009 behaves like record ActiveRecord metrics2010 when both web and background transaction are available2011 captures the metrics for web only2012 behaves like record ActiveRecord metrics in a metrics transaction2013 increments only db counters2014 observes sql_duration metric2015 when web transaction is available2016 behaves like record ActiveRecord metrics in a metrics transaction2017 increments only db counters2018 observes sql_duration metric2019 when background transaction is available2020 behaves like record ActiveRecord metrics in a metrics transaction2021 increments only db counters2022 observes sql_duration metric2023 behaves like store ActiveRecord info in RequestStore2024 prevents db counters from leaking to the next transaction2025 query using a connection to an unknown source2026 does not record DB role metrics2027 does not store DB roles into into RequestStore2028 name: "SQL", sql_query: "WITH archived_rows AS (SELECT * FROM users WHERE archived = true) INSERT INTO products_log SELECT * FROM archived_rows", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2029 query using a connection to a replica2030 queries connection db role2031 behaves like record ActiveRecord metrics2032 when both web and background transaction are available2033 captures the metrics for web only2034 behaves like record ActiveRecord metrics in a metrics transaction2035 increments only db counters2036 observes sql_duration metric2037 when web transaction is available2038 behaves like record ActiveRecord metrics in a metrics transaction2039 increments only db counters2040 observes sql_duration metric2041 when background transaction is available2042 behaves like record ActiveRecord metrics in a metrics transaction2043 increments only db counters2044 observes sql_duration metric2045 behaves like store ActiveRecord info in RequestStore2046 prevents db counters from leaking to the next transaction2047 query using a connection to a primary2048 queries connection db role2049 behaves like record ActiveRecord metrics2050 when both web and background transaction are available2051 captures the metrics for web only2052 behaves like record ActiveRecord metrics in a metrics transaction2053 increments only db counters2054 observes sql_duration metric2055 when web transaction is available2056 behaves like record ActiveRecord metrics in a metrics transaction2057 increments only db counters2058 observes sql_duration metric2059 when background transaction is available2060 behaves like record ActiveRecord metrics in a metrics transaction2061 increments only db counters2062 observes sql_duration metric2063 behaves like store ActiveRecord info in RequestStore2064 prevents db counters from leaking to the next transaction2065 query using a connection to an unknown source2066 does not record DB role metrics2067 does not store DB roles into into RequestStore2068 name: "SQL", sql_query: "DELETE FROM users where id = 10", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2069 query using a connection to a replica2070 queries connection db role2071 behaves like record ActiveRecord metrics2072 when both web and background transaction are available2073 captures the metrics for web only2074 behaves like record ActiveRecord metrics in a metrics transaction2075 increments only db counters2076 observes sql_duration metric2077 when web transaction is available2078 behaves like record ActiveRecord metrics in a metrics transaction2079 increments only db counters2080 observes sql_duration metric2081 when background transaction is available2082 behaves like record ActiveRecord metrics in a metrics transaction2083 increments only db counters2084 observes sql_duration metric2085 behaves like store ActiveRecord info in RequestStore2086 prevents db counters from leaking to the next transaction2087 query using a connection to a primary2088 queries connection db role2089 behaves like record ActiveRecord metrics2090 when both web and background transaction are available2091 captures the metrics for web only2092 behaves like record ActiveRecord metrics in a metrics transaction2093 increments only db counters2094 observes sql_duration metric2095 when web transaction is available2096 behaves like record ActiveRecord metrics in a metrics transaction2097 increments only db counters2098 observes sql_duration metric2099 when background transaction is available2100 behaves like record ActiveRecord metrics in a metrics transaction2101 increments only db counters2102 observes sql_duration metric2103 behaves like store ActiveRecord info in RequestStore2104 prevents db counters from leaking to the next transaction2105 query using a connection to an unknown source2106 does not record DB role metrics2107 does not store DB roles into into RequestStore2108 name: "SQL", sql_query: "INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2109 query using a connection to a replica2110 queries connection db role2111 behaves like record ActiveRecord metrics2112 when both web and background transaction are available2113 captures the metrics for web only2114 behaves like record ActiveRecord metrics in a metrics transaction2115 increments only db counters2116 observes sql_duration metric2117 when web transaction is available2118 behaves like record ActiveRecord metrics in a metrics transaction2119 increments only db counters2120 observes sql_duration metric2121 when background transaction is available2122 behaves like record ActiveRecord metrics in a metrics transaction2123 increments only db counters2124 observes sql_duration metric2125 behaves like store ActiveRecord info in RequestStore2126 prevents db counters from leaking to the next transaction2127 query using a connection to a primary2128 queries connection db role2129 behaves like record ActiveRecord metrics2130 when both web and background transaction are available2131 captures the metrics for web only2132 behaves like record ActiveRecord metrics in a metrics transaction2133 increments only db counters2134 observes sql_duration metric2135 when web transaction is available2136 behaves like record ActiveRecord metrics in a metrics transaction2137 increments only db counters2138 observes sql_duration metric2139 when background transaction is available2140 behaves like record ActiveRecord metrics in a metrics transaction2141 increments only db counters2142 observes sql_duration metric2143 behaves like store ActiveRecord info in RequestStore2144 prevents db counters from leaking to the next transaction2145 query using a connection to an unknown source2146 does not record DB role metrics2147 does not store DB roles into into RequestStore2148 name: "SQL", sql_query: "UPDATE users SET admin = true WHERE id = 10", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2149 query using a connection to a replica2150 queries connection db role2151 behaves like record ActiveRecord metrics2152 when both web and background transaction are available2153 captures the metrics for web only2154 behaves like record ActiveRecord metrics in a metrics transaction2155 increments only db counters2156 observes sql_duration metric2157 when web transaction is available2158 behaves like record ActiveRecord metrics in a metrics transaction2159 increments only db counters2160 observes sql_duration metric2161 when background transaction is available2162 behaves like record ActiveRecord metrics in a metrics transaction2163 increments only db counters2164 observes sql_duration metric2165 behaves like store ActiveRecord info in RequestStore2166 prevents db counters from leaking to the next transaction2167 query using a connection to a primary2168 queries connection db role2169 behaves like record ActiveRecord metrics2170 when both web and background transaction are available2171 captures the metrics for web only2172 behaves like record ActiveRecord metrics in a metrics transaction2173 increments only db counters2174 observes sql_duration metric2175 when web transaction is available2176 behaves like record ActiveRecord metrics in a metrics transaction2177 increments only db counters2178 observes sql_duration metric2179 when background transaction is available2180 behaves like record ActiveRecord metrics in a metrics transaction2181 increments only db counters2182 observes sql_duration metric2183 behaves like store ActiveRecord info in RequestStore2184 prevents db counters from leaking to the next transaction2185 query using a connection to an unknown source2186 does not record DB role metrics2187 does not store DB roles into into RequestStore2188 name: "SQL", sql_query: "SELECT pg_current_wal_insert_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: true2189 query using a connection to a replica2190 queries connection db role2191 behaves like record ActiveRecord metrics2192 when both web and background transaction are available2193 captures the metrics for web only2194 behaves like record ActiveRecord metrics in a metrics transaction2195 increments only db counters2196 observes sql_duration metric2197 when web transaction is available2198 behaves like record ActiveRecord metrics in a metrics transaction2199 increments only db counters2200 observes sql_duration metric2201 when background transaction is available2202 behaves like record ActiveRecord metrics in a metrics transaction2203 increments only db counters2204 observes sql_duration metric2205 behaves like store ActiveRecord info in RequestStore2206 prevents db counters from leaking to the next transaction2207 query using a connection to a primary2208 queries connection db role2209 behaves like record ActiveRecord metrics2210 when both web and background transaction are available2211 captures the metrics for web only2212 behaves like record ActiveRecord metrics in a metrics transaction2213 increments only db counters2214 observes sql_duration metric2215 when web transaction is available2216 behaves like record ActiveRecord metrics in a metrics transaction2217 increments only db counters2218 observes sql_duration metric2219 when background transaction is available2220 behaves like record ActiveRecord metrics in a metrics transaction2221 increments only db counters2222 observes sql_duration metric2223 behaves like store ActiveRecord info in RequestStore2224 prevents db counters from leaking to the next transaction2225 query using a connection to an unknown source2226 does not record DB role metrics2227 does not store DB roles into into RequestStore2228 name: "SQL", sql_query: "SELECT pg_last_wal_replay_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: true2229 query using a connection to a replica2230 queries connection db role2231 behaves like record ActiveRecord metrics2232 when both web and background transaction are available2233 captures the metrics for web only2234 behaves like record ActiveRecord metrics in a metrics transaction2235 increments only db counters2236 observes sql_duration metric2237 when web transaction is available2238 behaves like record ActiveRecord metrics in a metrics transaction2239 increments only db counters2240 observes sql_duration metric2241 when background transaction is available2242 behaves like record ActiveRecord metrics in a metrics transaction2243 increments only db counters2244 observes sql_duration metric2245 behaves like store ActiveRecord info in RequestStore2246 prevents db counters from leaking to the next transaction2247 query using a connection to a primary2248 queries connection db role2249 behaves like record ActiveRecord metrics2250 when both web and background transaction are available2251 captures the metrics for web only2252 behaves like record ActiveRecord metrics in a metrics transaction2253 increments only db counters2254 observes sql_duration metric2255 when web transaction is available2256 behaves like record ActiveRecord metrics in a metrics transaction2257 increments only db counters2258 observes sql_duration metric2259 when background transaction is available2260 behaves like record ActiveRecord metrics in a metrics transaction2261 increments only db counters2262 observes sql_duration metric2263 behaves like store ActiveRecord info in RequestStore2264 prevents db counters from leaking to the next transaction2265 query using a connection to an unknown source2266 does not record DB role metrics2267 does not store DB roles into into RequestStore2268 name: "CACHE", sql_query: "SELECT pg_current_wal_insert_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: true2269 query using a connection to a replica2270 queries connection db role2271 behaves like record ActiveRecord metrics2272 when both web and background transaction are available2273 captures the metrics for web only2274 behaves like record ActiveRecord metrics in a metrics transaction2275 increments only db counters2276 observes sql_duration metric2277 when web transaction is available2278 behaves like record ActiveRecord metrics in a metrics transaction2279 increments only db counters2280 observes sql_duration metric2281 when background transaction is available2282 behaves like record ActiveRecord metrics in a metrics transaction2283 increments only db counters2284 observes sql_duration metric2285 behaves like store ActiveRecord info in RequestStore2286 prevents db counters from leaking to the next transaction2287 query using a connection to a primary2288 queries connection db role2289 behaves like record ActiveRecord metrics2290 when both web and background transaction are available2291 captures the metrics for web only2292 behaves like record ActiveRecord metrics in a metrics transaction2293 increments only db counters2294 observes sql_duration metric2295 when web transaction is available2296 behaves like record ActiveRecord metrics in a metrics transaction2297 increments only db counters2298 observes sql_duration metric2299 when background transaction is available2300 behaves like record ActiveRecord metrics in a metrics transaction2301 increments only db counters2302 observes sql_duration metric2303 behaves like store ActiveRecord info in RequestStore2304 prevents db counters from leaking to the next transaction2305 query using a connection to an unknown source2306 does not record DB role metrics2307 does not store DB roles into into RequestStore2308 name: "CACHE", sql_query: "SELECT pg_last_wal_replay_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: true2309 query using a connection to a replica2310 queries connection db role2311 behaves like record ActiveRecord metrics2312 when both web and background transaction are available2313 captures the metrics for web only2314 behaves like record ActiveRecord metrics in a metrics transaction2315 increments only db counters2316 observes sql_duration metric2317 when web transaction is available2318 behaves like record ActiveRecord metrics in a metrics transaction2319 increments only db counters2320 observes sql_duration metric2321 when background transaction is available2322 behaves like record ActiveRecord metrics in a metrics transaction2323 increments only db counters2324 observes sql_duration metric2325 behaves like store ActiveRecord info in RequestStore2326 prevents db counters from leaking to the next transaction2327 query using a connection to a primary2328 queries connection db role2329 behaves like record ActiveRecord metrics2330 when both web and background transaction are available2331 captures the metrics for web only2332 behaves like record ActiveRecord metrics in a metrics transaction2333 increments only db counters2334 observes sql_duration metric2335 when web transaction is available2336 behaves like record ActiveRecord metrics in a metrics transaction2337 increments only db counters2338 observes sql_duration metric2339 when background transaction is available2340 behaves like record ActiveRecord metrics in a metrics transaction2341 increments only db counters2342 observes sql_duration metric2343 behaves like store ActiveRecord info in RequestStore2344 prevents db counters from leaking to the next transaction2345 query using a connection to an unknown source2346 does not record DB role metrics2347 does not store DB roles into into RequestStore2348 name: "CACHE", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: false2349 query using a connection to a replica2350 queries connection db role2351 behaves like record ActiveRecord metrics2352 when both web and background transaction are available2353 captures the metrics for web only2354 behaves like record ActiveRecord metrics in a metrics transaction2355 increments only db counters2356 observes sql_duration metric2357 when web transaction is available2358 behaves like record ActiveRecord metrics in a metrics transaction2359 increments only db counters2360 observes sql_duration metric2361 when background transaction is available2362 behaves like record ActiveRecord metrics in a metrics transaction2363 increments only db counters2364 observes sql_duration metric2365 behaves like store ActiveRecord info in RequestStore2366 prevents db counters from leaking to the next transaction2367 query using a connection to a primary2368 queries connection db role2369 behaves like record ActiveRecord metrics2370 when both web and background transaction are available2371 captures the metrics for web only2372 behaves like record ActiveRecord metrics in a metrics transaction2373 increments only db counters2374 observes sql_duration metric2375 when web transaction is available2376 behaves like record ActiveRecord metrics in a metrics transaction2377 increments only db counters2378 observes sql_duration metric2379 when background transaction is available2380 behaves like record ActiveRecord metrics in a metrics transaction2381 increments only db counters2382 observes sql_duration metric2383 behaves like store ActiveRecord info in RequestStore2384 prevents db counters from leaking to the next transaction2385 query using a connection to an unknown source2386 does not record DB role metrics2387 does not store DB roles into into RequestStore2388 name: "SCHEMA", sql_query: "SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = any(cons.conkey) WHERE cons.contype = 'p' AND cons.conrelid = '\"projects\"'::regclass", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false2389 query using a connection to a replica2390 queries connection db role2391 behaves like record ActiveRecord metrics2392 when both web and background transaction are available2393 captures the metrics for web only2394 behaves like record ActiveRecord metrics in a metrics transaction2395 increments only db counters2396 observes sql_duration metric2397 when web transaction is available2398 behaves like record ActiveRecord metrics in a metrics transaction2399 increments only db counters2400 observes sql_duration metric2401 when background transaction is available2402 behaves like record ActiveRecord metrics in a metrics transaction2403 increments only db counters2404 observes sql_duration metric2405 behaves like store ActiveRecord info in RequestStore2406 prevents db counters from leaking to the next transaction2407 query using a connection to a primary2408 queries connection db role2409 behaves like record ActiveRecord metrics2410 when both web and background transaction are available2411 captures the metrics for web only2412 behaves like record ActiveRecord metrics in a metrics transaction2413 increments only db counters2414 observes sql_duration metric2415 when web transaction is available2416 behaves like record ActiveRecord metrics in a metrics transaction2417 increments only db counters2418 observes sql_duration metric2419 when background transaction is available2420 behaves like record ActiveRecord metrics in a metrics transaction2421 increments only db counters2422 observes sql_duration metric2423 behaves like store ActiveRecord info in RequestStore2424 prevents db counters from leaking to the next transaction2425 query using a connection to an unknown source2426 does not record DB role metrics2427 does not store DB roles into into RequestStore2428 name: nil, sql_query: "BEGIN", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false2429 query using a connection to a replica2430 queries connection db role2431 behaves like record ActiveRecord metrics2432 when both web and background transaction are available2433 captures the metrics for web only2434 behaves like record ActiveRecord metrics in a metrics transaction2435 increments only db counters2436 observes sql_duration metric2437 when web transaction is available2438 behaves like record ActiveRecord metrics in a metrics transaction2439 increments only db counters2440 observes sql_duration metric2441 when background transaction is available2442 behaves like record ActiveRecord metrics in a metrics transaction2443 increments only db counters2444 observes sql_duration metric2445 behaves like store ActiveRecord info in RequestStore2446 prevents db counters from leaking to the next transaction2447 query using a connection to a primary2448 queries connection db role2449 behaves like record ActiveRecord metrics2450 when both web and background transaction are available2451 captures the metrics for web only2452 behaves like record ActiveRecord metrics in a metrics transaction2453 increments only db counters2454 observes sql_duration metric2455 when web transaction is available2456 behaves like record ActiveRecord metrics in a metrics transaction2457 increments only db counters2458 observes sql_duration metric2459 when background transaction is available2460 behaves like record ActiveRecord metrics in a metrics transaction2461 increments only db counters2462 observes sql_duration metric2463 behaves like store ActiveRecord info in RequestStore2464 prevents db counters from leaking to the next transaction2465 query using a connection to an unknown source2466 does not record DB role metrics2467 does not store DB roles into into RequestStore2468 name: nil, sql_query: "COMMIT", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false2469 query using a connection to a replica2470 queries connection db role2471 behaves like record ActiveRecord metrics2472 when both web and background transaction are available2473 captures the metrics for web only2474 behaves like record ActiveRecord metrics in a metrics transaction2475 increments only db counters2476 observes sql_duration metric2477 when web transaction is available2478 behaves like record ActiveRecord metrics in a metrics transaction2479 increments only db counters2480 observes sql_duration metric2481 when background transaction is available2482 behaves like record ActiveRecord metrics in a metrics transaction2483 increments only db counters2484 observes sql_duration metric2485 behaves like store ActiveRecord info in RequestStore2486 prevents db counters from leaking to the next transaction2487 query using a connection to a primary2488 queries connection db role2489 behaves like record ActiveRecord metrics2490 when both web and background transaction are available2491 captures the metrics for web only2492 behaves like record ActiveRecord metrics in a metrics transaction2493 increments only db counters2494 observes sql_duration metric2495 when web transaction is available2496 behaves like record ActiveRecord metrics in a metrics transaction2497 increments only db counters2498 observes sql_duration metric2499 when background transaction is available2500 behaves like record ActiveRecord metrics in a metrics transaction2501 increments only db counters2502 observes sql_duration metric2503 behaves like store ActiveRecord info in RequestStore2504 prevents db counters from leaking to the next transaction2505 query using a connection to an unknown source2506 does not record DB role metrics2507 does not store DB roles into into RequestStore2508 with Marginalia comments2509 behaves like track sql events for each role2510 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: false2511 query using a connection to a replica2512 queries connection db role2513 behaves like record ActiveRecord metrics2514 when both web and background transaction are available2515 captures the metrics for web only2516 behaves like record ActiveRecord metrics in a metrics transaction2517 increments only db counters2518 observes sql_duration metric2519 when web transaction is available2520 behaves like record ActiveRecord metrics in a metrics transaction2521 increments only db counters2522 observes sql_duration metric2523 when background transaction is available2524 behaves like record ActiveRecord metrics in a metrics transaction2525 increments only db counters2526 observes sql_duration metric2527 behaves like store ActiveRecord info in RequestStore2528 prevents db counters from leaking to the next transaction2529 query using a connection to a primary2530 queries connection db role2531 behaves like record ActiveRecord metrics2532 when both web and background transaction are available2533 captures the metrics for web only2534 behaves like record ActiveRecord metrics in a metrics transaction2535 increments only db counters2536 observes sql_duration metric2537 when web transaction is available2538 behaves like record ActiveRecord metrics in a metrics transaction2539 increments only db counters2540 observes sql_duration metric2541 when background transaction is available2542 behaves like record ActiveRecord metrics in a metrics transaction2543 increments only db counters2544 observes sql_duration metric2545 behaves like store ActiveRecord info in RequestStore2546 prevents db counters from leaking to the next transaction2547 query using a connection to an unknown source2548 does not record DB role metrics2549 does not store DB roles into into RequestStore2550 name: "SQL", sql_query: "WITH active_milestones AS (SELECT COUNT(*), state FROM milestones GROUP BY state) SELECT * FROM active_milestones", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: false2551 query using a connection to a replica2552 queries connection db role2553 behaves like record ActiveRecord metrics2554 when both web and background transaction are available2555 captures the metrics for web only2556 behaves like record ActiveRecord metrics in a metrics transaction2557 increments only db counters2558 observes sql_duration metric2559 when web transaction is available2560 behaves like record ActiveRecord metrics in a metrics transaction2561 increments only db counters2562 observes sql_duration metric2563 when background transaction is available2564 behaves like record ActiveRecord metrics in a metrics transaction2565 increments only db counters2566 observes sql_duration metric2567 behaves like store ActiveRecord info in RequestStore2568 prevents db counters from leaking to the next transaction2569 query using a connection to a primary2570 queries connection db role2571 behaves like record ActiveRecord metrics2572 when both web and background transaction are available2573 captures the metrics for web only2574 behaves like record ActiveRecord metrics in a metrics transaction2575 increments only db counters2576 observes sql_duration metric2577 when web transaction is available2578 behaves like record ActiveRecord metrics in a metrics transaction2579 increments only db counters2580 observes sql_duration metric2581 when background transaction is available2582 behaves like record ActiveRecord metrics in a metrics transaction2583 increments only db counters2584 observes sql_duration metric2585 behaves like store ActiveRecord info in RequestStore2586 prevents db counters from leaking to the next transaction2587 query using a connection to an unknown source2588 does not record DB role metrics2589 does not store DB roles into into RequestStore2590 name: "SQL", sql_query: "SELECT * FROM users WHERE id = 10 FOR UPDATE", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2591 query using a connection to a replica2592 queries connection db role2593 behaves like record ActiveRecord metrics2594 when both web and background transaction are available2595 captures the metrics for web only2596 behaves like record ActiveRecord metrics in a metrics transaction2597 increments only db counters2598 observes sql_duration metric2599 when web transaction is available2600 behaves like record ActiveRecord metrics in a metrics transaction2601 increments only db counters2602 observes sql_duration metric2603 when background transaction is available2604 behaves like record ActiveRecord metrics in a metrics transaction2605 increments only db counters2606 observes sql_duration metric2607 behaves like store ActiveRecord info in RequestStore2608 prevents db counters from leaking to the next transaction2609 query using a connection to a primary2610 queries connection db role2611 behaves like record ActiveRecord metrics2612 when both web and background transaction are available2613 captures the metrics for web only2614 behaves like record ActiveRecord metrics in a metrics transaction2615 increments only db counters2616 observes sql_duration metric2617 when web transaction is available2618 behaves like record ActiveRecord metrics in a metrics transaction2619 increments only db counters2620 observes sql_duration metric2621 when background transaction is available2622 behaves like record ActiveRecord metrics in a metrics transaction2623 increments only db counters2624 observes sql_duration metric2625 behaves like store ActiveRecord info in RequestStore2626 prevents db counters from leaking to the next transaction2627 query using a connection to an unknown source2628 does not record DB role metrics2629 does not store DB roles into into RequestStore2630 name: "SQL", sql_query: "WITH archived_rows AS (SELECT * FROM users WHERE archived = true) INSERT INTO products_log SELECT * FROM archived_rows", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2631 query using a connection to a replica2632 queries connection db role2633 behaves like record ActiveRecord metrics2634 when both web and background transaction are available2635 captures the metrics for web only2636 behaves like record ActiveRecord metrics in a metrics transaction2637 increments only db counters2638 observes sql_duration metric2639 when web transaction is available2640 behaves like record ActiveRecord metrics in a metrics transaction2641 increments only db counters2642 observes sql_duration metric2643 when background transaction is available2644 behaves like record ActiveRecord metrics in a metrics transaction2645 increments only db counters2646 observes sql_duration metric2647 behaves like store ActiveRecord info in RequestStore2648 prevents db counters from leaking to the next transaction2649 query using a connection to a primary2650 queries connection db role2651 behaves like record ActiveRecord metrics2652 when both web and background transaction are available2653 captures the metrics for web only2654 behaves like record ActiveRecord metrics in a metrics transaction2655 increments only db counters2656 observes sql_duration metric2657 when web transaction is available2658 behaves like record ActiveRecord metrics in a metrics transaction2659 increments only db counters2660 observes sql_duration metric2661 when background transaction is available2662 behaves like record ActiveRecord metrics in a metrics transaction2663 increments only db counters2664 observes sql_duration metric2665 behaves like store ActiveRecord info in RequestStore2666 prevents db counters from leaking to the next transaction2667 query using a connection to an unknown source2668 does not record DB role metrics2669 does not store DB roles into into RequestStore2670 name: "SQL", sql_query: "DELETE FROM users where id = 10", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2671 query using a connection to a replica2672 queries connection db role2673 behaves like record ActiveRecord metrics2674 when both web and background transaction are available2675 captures the metrics for web only2676 behaves like record ActiveRecord metrics in a metrics transaction2677 increments only db counters2678 observes sql_duration metric2679 when web transaction is available2680 behaves like record ActiveRecord metrics in a metrics transaction2681 increments only db counters2682 observes sql_duration metric2683 when background transaction is available2684 behaves like record ActiveRecord metrics in a metrics transaction2685 increments only db counters2686 observes sql_duration metric2687 behaves like store ActiveRecord info in RequestStore2688 prevents db counters from leaking to the next transaction2689 query using a connection to a primary2690 queries connection db role2691 behaves like record ActiveRecord metrics2692 when both web and background transaction are available2693 captures the metrics for web only2694 behaves like record ActiveRecord metrics in a metrics transaction2695 increments only db counters2696 observes sql_duration metric2697 when web transaction is available2698 behaves like record ActiveRecord metrics in a metrics transaction2699 increments only db counters2700 observes sql_duration metric2701 when background transaction is available2702 behaves like record ActiveRecord metrics in a metrics transaction2703 increments only db counters2704 observes sql_duration metric2705 behaves like store ActiveRecord info in RequestStore2706 prevents db counters from leaking to the next transaction2707 query using a connection to an unknown source2708 does not record DB role metrics2709 does not store DB roles into into RequestStore2710 name: "SQL", sql_query: "INSERT INTO project_ci_cd_settings (project_id) SELECT id FROM projects", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2711 query using a connection to a replica2712 queries connection db role2713 behaves like record ActiveRecord metrics2714 when both web and background transaction are available2715 captures the metrics for web only2716 behaves like record ActiveRecord metrics in a metrics transaction2717 increments only db counters2718 observes sql_duration metric2719 when web transaction is available2720 behaves like record ActiveRecord metrics in a metrics transaction2721 increments only db counters2722 observes sql_duration metric2723 when background transaction is available2724 behaves like record ActiveRecord metrics in a metrics transaction2725 increments only db counters2726 observes sql_duration metric2727 behaves like store ActiveRecord info in RequestStore2728 prevents db counters from leaking to the next transaction2729 query using a connection to a primary2730 queries connection db role2731 behaves like record ActiveRecord metrics2732 when both web and background transaction are available2733 captures the metrics for web only2734 behaves like record ActiveRecord metrics in a metrics transaction2735 increments only db counters2736 observes sql_duration metric2737 when web transaction is available2738 behaves like record ActiveRecord metrics in a metrics transaction2739 increments only db counters2740 observes sql_duration metric2741 when background transaction is available2742 behaves like record ActiveRecord metrics in a metrics transaction2743 increments only db counters2744 observes sql_duration metric2745 behaves like store ActiveRecord info in RequestStore2746 prevents db counters from leaking to the next transaction2747 query using a connection to an unknown source2748 does not record DB role metrics2749 does not store DB roles into into RequestStore2750 name: "SQL", sql_query: "UPDATE users SET admin = true WHERE id = 10", record_query: true, record_write_query: true, record_cached_query: false, record_wal_query: false2751 query using a connection to a replica2752 queries connection db role2753 behaves like record ActiveRecord metrics2754 when both web and background transaction are available2755 captures the metrics for web only2756 behaves like record ActiveRecord metrics in a metrics transaction2757 increments only db counters2758 observes sql_duration metric2759 when web transaction is available2760 behaves like record ActiveRecord metrics in a metrics transaction2761 increments only db counters2762 observes sql_duration metric2763 when background transaction is available2764 behaves like record ActiveRecord metrics in a metrics transaction2765 increments only db counters2766 observes sql_duration metric2767 behaves like store ActiveRecord info in RequestStore2768 prevents db counters from leaking to the next transaction2769 query using a connection to a primary2770 queries connection db role2771 behaves like record ActiveRecord metrics2772 when both web and background transaction are available2773 captures the metrics for web only2774 behaves like record ActiveRecord metrics in a metrics transaction2775 increments only db counters2776 observes sql_duration metric2777 when web transaction is available2778 behaves like record ActiveRecord metrics in a metrics transaction2779 increments only db counters2780 observes sql_duration metric2781 when background transaction is available2782 behaves like record ActiveRecord metrics in a metrics transaction2783 increments only db counters2784 observes sql_duration metric2785 behaves like store ActiveRecord info in RequestStore2786 prevents db counters from leaking to the next transaction2787 query using a connection to an unknown source2788 does not record DB role metrics2789 does not store DB roles into into RequestStore2790 name: "SQL", sql_query: "SELECT pg_current_wal_insert_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: true2791 query using a connection to a replica2792 queries connection db role2793 behaves like record ActiveRecord metrics2794 when both web and background transaction are available2795 captures the metrics for web only2796 behaves like record ActiveRecord metrics in a metrics transaction2797 increments only db counters2798 observes sql_duration metric2799 when web transaction is available2800 behaves like record ActiveRecord metrics in a metrics transaction2801 increments only db counters2802 observes sql_duration metric2803 when background transaction is available2804 behaves like record ActiveRecord metrics in a metrics transaction2805 increments only db counters2806 observes sql_duration metric2807 behaves like store ActiveRecord info in RequestStore2808 prevents db counters from leaking to the next transaction2809 query using a connection to a primary2810 queries connection db role2811 behaves like record ActiveRecord metrics2812 when both web and background transaction are available2813 captures the metrics for web only2814 behaves like record ActiveRecord metrics in a metrics transaction2815 increments only db counters2816 observes sql_duration metric2817 when web transaction is available2818 behaves like record ActiveRecord metrics in a metrics transaction2819 increments only db counters2820 observes sql_duration metric2821 when background transaction is available2822 behaves like record ActiveRecord metrics in a metrics transaction2823 increments only db counters2824 observes sql_duration metric2825 behaves like store ActiveRecord info in RequestStore2826 prevents db counters from leaking to the next transaction2827 query using a connection to an unknown source2828 does not record DB role metrics2829 does not store DB roles into into RequestStore2830 name: "SQL", sql_query: "SELECT pg_last_wal_replay_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: false, record_wal_query: true2831 query using a connection to a replica2832 queries connection db role2833 behaves like record ActiveRecord metrics2834 when both web and background transaction are available2835 captures the metrics for web only2836 behaves like record ActiveRecord metrics in a metrics transaction2837 increments only db counters2838 observes sql_duration metric2839 when web transaction is available2840 behaves like record ActiveRecord metrics in a metrics transaction2841 increments only db counters2842 observes sql_duration metric2843 when background transaction is available2844 behaves like record ActiveRecord metrics in a metrics transaction2845 increments only db counters2846 observes sql_duration metric2847 behaves like store ActiveRecord info in RequestStore2848 prevents db counters from leaking to the next transaction2849 query using a connection to a primary2850 queries connection db role2851 behaves like record ActiveRecord metrics2852 when both web and background transaction are available2853 captures the metrics for web only2854 behaves like record ActiveRecord metrics in a metrics transaction2855 increments only db counters2856 observes sql_duration metric2857 when web transaction is available2858 behaves like record ActiveRecord metrics in a metrics transaction2859 increments only db counters2860 observes sql_duration metric2861 when background transaction is available2862 behaves like record ActiveRecord metrics in a metrics transaction2863 increments only db counters2864 observes sql_duration metric2865 behaves like store ActiveRecord info in RequestStore2866 prevents db counters from leaking to the next transaction2867 query using a connection to an unknown source2868 does not record DB role metrics2869 does not store DB roles into into RequestStore2870 name: "CACHE", sql_query: "SELECT pg_current_wal_insert_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: true2871 query using a connection to a replica2872 queries connection db role2873 behaves like record ActiveRecord metrics2874 when both web and background transaction are available2875 captures the metrics for web only2876 behaves like record ActiveRecord metrics in a metrics transaction2877 increments only db counters2878 observes sql_duration metric2879 when web transaction is available2880 behaves like record ActiveRecord metrics in a metrics transaction2881 increments only db counters2882 observes sql_duration metric2883 when background transaction is available2884 behaves like record ActiveRecord metrics in a metrics transaction2885 increments only db counters2886 observes sql_duration metric2887 behaves like store ActiveRecord info in RequestStore2888 prevents db counters from leaking to the next transaction2889 query using a connection to a primary2890 queries connection db role2891 behaves like record ActiveRecord metrics2892 when both web and background transaction are available2893 captures the metrics for web only2894 behaves like record ActiveRecord metrics in a metrics transaction2895 increments only db counters2896 observes sql_duration metric2897 when web transaction is available2898 behaves like record ActiveRecord metrics in a metrics transaction2899 increments only db counters2900 observes sql_duration metric2901 when background transaction is available2902 behaves like record ActiveRecord metrics in a metrics transaction2903 increments only db counters2904 observes sql_duration metric2905 behaves like store ActiveRecord info in RequestStore2906 prevents db counters from leaking to the next transaction2907 query using a connection to an unknown source2908 does not record DB role metrics2909 does not store DB roles into into RequestStore2910 name: "CACHE", sql_query: "SELECT pg_last_wal_replay_lsn()::text AS location", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: true2911 query using a connection to a replica2912 queries connection db role2913 behaves like record ActiveRecord metrics2914 when both web and background transaction are available2915 captures the metrics for web only2916 behaves like record ActiveRecord metrics in a metrics transaction2917 increments only db counters2918 observes sql_duration metric2919 when web transaction is available2920 behaves like record ActiveRecord metrics in a metrics transaction2921 increments only db counters2922 observes sql_duration metric2923 when background transaction is available2924 behaves like record ActiveRecord metrics in a metrics transaction2925 increments only db counters2926 observes sql_duration metric2927 behaves like store ActiveRecord info in RequestStore2928 prevents db counters from leaking to the next transaction2929 query using a connection to a primary2930 queries connection db role2931 behaves like record ActiveRecord metrics2932 when both web and background transaction are available2933 captures the metrics for web only2934 behaves like record ActiveRecord metrics in a metrics transaction2935 increments only db counters2936 observes sql_duration metric2937 when web transaction is available2938 behaves like record ActiveRecord metrics in a metrics transaction2939 increments only db counters2940 observes sql_duration metric2941 when background transaction is available2942 behaves like record ActiveRecord metrics in a metrics transaction2943 increments only db counters2944 observes sql_duration metric2945 behaves like store ActiveRecord info in RequestStore2946 prevents db counters from leaking to the next transaction2947 query using a connection to an unknown source2948 does not record DB role metrics2949 does not store DB roles into into RequestStore2950 name: "CACHE", sql_query: "SELECT * FROM users WHERE id = 10", record_query: true, record_write_query: false, record_cached_query: true, record_wal_query: false2951 query using a connection to a replica2952 queries connection db role2953 behaves like record ActiveRecord metrics2954 when both web and background transaction are available2955 captures the metrics for web only2956 behaves like record ActiveRecord metrics in a metrics transaction2957 increments only db counters2958 observes sql_duration metric2959 when web transaction is available2960 behaves like record ActiveRecord metrics in a metrics transaction2961 increments only db counters2962 observes sql_duration metric2963 when background transaction is available2964 behaves like record ActiveRecord metrics in a metrics transaction2965 increments only db counters2966 observes sql_duration metric2967 behaves like store ActiveRecord info in RequestStore2968 prevents db counters from leaking to the next transaction2969 query using a connection to a primary2970 queries connection db role2971 behaves like record ActiveRecord metrics2972 when both web and background transaction are available2973 captures the metrics for web only2974 behaves like record ActiveRecord metrics in a metrics transaction2975 increments only db counters2976 observes sql_duration metric2977 when web transaction is available2978 behaves like record ActiveRecord metrics in a metrics transaction2979 increments only db counters2980 observes sql_duration metric2981 when background transaction is available2982 behaves like record ActiveRecord metrics in a metrics transaction2983 increments only db counters2984 observes sql_duration metric2985 behaves like store ActiveRecord info in RequestStore2986 prevents db counters from leaking to the next transaction2987 query using a connection to an unknown source2988 does not record DB role metrics2989 does not store DB roles into into RequestStore2990 name: "SCHEMA", sql_query: "SELECT attr.attname FROM pg_attribute attr INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = any(cons.conkey) WHERE cons.contype = 'p' AND cons.conrelid = '\"projects\"'::regclass", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false2991 query using a connection to a replica2992 queries connection db role2993 behaves like record ActiveRecord metrics2994 when both web and background transaction are available2995 captures the metrics for web only2996 behaves like record ActiveRecord metrics in a metrics transaction2997 increments only db counters2998 observes sql_duration metric2999 when web transaction is available3000 behaves like record ActiveRecord metrics in a metrics transaction3001 increments only db counters3002 observes sql_duration metric3003 when background transaction is available3004 behaves like record ActiveRecord metrics in a metrics transaction3005 increments only db counters3006 observes sql_duration metric3007 behaves like store ActiveRecord info in RequestStore3008 prevents db counters from leaking to the next transaction3009 query using a connection to a primary3010 queries connection db role3011 behaves like record ActiveRecord metrics3012 when both web and background transaction are available3013 captures the metrics for web only3014 behaves like record ActiveRecord metrics in a metrics transaction3015 increments only db counters3016 observes sql_duration metric3017 when web transaction is available3018 behaves like record ActiveRecord metrics in a metrics transaction3019 increments only db counters3020 observes sql_duration metric3021 when background transaction is available3022 behaves like record ActiveRecord metrics in a metrics transaction3023 increments only db counters3024 observes sql_duration metric3025 behaves like store ActiveRecord info in RequestStore3026 prevents db counters from leaking to the next transaction3027 query using a connection to an unknown source3028 does not record DB role metrics3029 does not store DB roles into into RequestStore3030 name: nil, sql_query: "BEGIN", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false3031 query using a connection to a replica3032 queries connection db role3033 behaves like record ActiveRecord metrics3034 when both web and background transaction are available3035 captures the metrics for web only3036 behaves like record ActiveRecord metrics in a metrics transaction3037 increments only db counters3038 observes sql_duration metric3039 when web transaction is available3040 behaves like record ActiveRecord metrics in a metrics transaction3041 increments only db counters3042 observes sql_duration metric3043 when background transaction is available3044 behaves like record ActiveRecord metrics in a metrics transaction3045 increments only db counters3046 observes sql_duration metric3047 behaves like store ActiveRecord info in RequestStore3048 prevents db counters from leaking to the next transaction3049 query using a connection to a primary3050 queries connection db role3051 behaves like record ActiveRecord metrics3052 when both web and background transaction are available3053 captures the metrics for web only3054 behaves like record ActiveRecord metrics in a metrics transaction3055 increments only db counters3056 observes sql_duration metric3057 when web transaction is available3058 behaves like record ActiveRecord metrics in a metrics transaction3059 increments only db counters3060 observes sql_duration metric3061 when background transaction is available3062 behaves like record ActiveRecord metrics in a metrics transaction3063 increments only db counters3064 observes sql_duration metric3065 behaves like store ActiveRecord info in RequestStore3066 prevents db counters from leaking to the next transaction3067 query using a connection to an unknown source3068 does not record DB role metrics3069 does not store DB roles into into RequestStore3070 name: nil, sql_query: "COMMIT", record_query: false, record_write_query: false, record_cached_query: false, record_wal_query: false3071 query using a connection to a replica3072 queries connection db role3073 behaves like record ActiveRecord metrics3074 when both web and background transaction are available3075 captures the metrics for web only3076 behaves like record ActiveRecord metrics in a metrics transaction3077 increments only db counters3078 observes sql_duration metric3079 when web transaction is available3080 behaves like record ActiveRecord metrics in a metrics transaction3081 increments only db counters3082 observes sql_duration metric3083 when background transaction is available3084 behaves like record ActiveRecord metrics in a metrics transaction3085 increments only db counters3086 observes sql_duration metric3087 behaves like store ActiveRecord info in RequestStore3088 prevents db counters from leaking to the next transaction3089 query using a connection to a primary3090 queries connection db role3091 behaves like record ActiveRecord metrics3092 when both web and background transaction are available3093 captures the metrics for web only3094 behaves like record ActiveRecord metrics in a metrics transaction3095 increments only db counters3096 observes sql_duration metric3097 when web transaction is available3098 behaves like record ActiveRecord metrics in a metrics transaction3099 increments only db counters3100 observes sql_duration metric3101 when background transaction is available3102 behaves like record ActiveRecord metrics in a metrics transaction3103 increments only db counters3104 observes sql_duration metric3105 behaves like store ActiveRecord info in RequestStore3106 prevents db counters from leaking to the next transaction3107 query using a connection to an unknown source3108 does not record DB role metrics3109 does not store DB roles into into RequestStore3110Projects::OverwriteProjectService3111 #execute3112 when project does not have any relation3113 behaves like overwrite actions3114 moves deploy keys3115 moves notification settings3116 moves users stars3117 moves project group links3118 moves memberships and authorizations3119 schedules original project for deletion3120 renames the project3121 renames source project to temp name3122 moves lfs objects relationships3123 is expected to eq 33124 when project rename fails3125 source rename3126 moves relations back to source project and raises an exception3127 new project rename3128 moves relations back, renames source project back to original name and raises3129 when project with elements3130 behaves like overwrite actions3131 moves deploy keys3132 moves notification settings3133 moves users stars3134 moves project group links3135 moves memberships and authorizations3136 schedules original project for deletion3137 renames the project3138 renames source project to temp name3139 moves lfs objects relationships3140 is expected to eq 33141 when project rename fails3142 source rename3143 moves relations back to source project and raises an exception3144 new project rename3145 moves relations back, renames source project back to original name and raises3146 forks3147 when moving a root forked project3148 moves the descendant forks3149 updates the fork network3150 when moving a intermediate forked project3151 moves the descendant forks3152 moves the ascendant fork3153 does not update fork network3154 if an exception is raised3155 rollbacks changes3156 removes fork network member3157Git::BranchHooksService3158 Git Push Data3159 has expected push data attributes3160 with repository data3161 has expected attributes3162 with commits3163 is expected to be a kind of Array3164 has 1 element3165 the commit3166 is expected to eq 2014-02-27 08:57:31.000000000 +00003167 includes expected commit data3168 with a author3169 includes expected author data3170 Push Event3171 with an existing branch3172 generates a push event with one commit3173 with changing CI config3174 tracks the event3175 when usage ping is disabled3176 does not track the event3177 when the branch is not the main branch3178 does not track the event3179 when the CI config is a different path3180 does not track the event3181 with a new default branch3182 generates a push event with more than one commit3183 with a new non-default branch3184 generates a push event with more than one commit3185 removing a branch3186 generates a push event with no commits3187 Invalidating project cache3188 on default branch3189 create3190 is expected to receive invalidated_file_types(*(any args)) 1 time3191 update3192 is expected to receive perform_async(525, [:readme], [], false) 1 time3193 remove3194 is expected to receive invalidated_file_types(*(any args)) 1 time3195 on ordinary branch3196 create3197 is expected to receive invalidated_file_types(*(any args)) 1 time3198 update3199 is expected to receive invalidated_file_types(*(any args)) 1 time3200 remove3201 is expected to receive invalidated_file_types(*(any args)) 1 time3202 signatures3203 when the commit has a signature3204 when the signature is already cached3205 does not queue a CreateCommitSignatureWorker3206 when the signature is not yet cached3207 queues a CreateCommitSignatureWorker3208 can queue several commits to create the gpg signature3209 when the commit does not have a signature3210 does not queue a CreateCommitSignatureWorker3211 Processing commit messages3212 creating the default branch3213 processes a limited number of commit messages3214 collects the related metrics3215 when limit is not hit3216 does not collect the corresponding metric3217 updating the default branch3218 processes a limited number of commit messages3219 removing the default branch3220 does not process commit messages3221 creating a normal branch3222 processes a limited number of commit messages3223 updating a normal branch3224 processes a limited number of commit messages3225 removing a normal branch3226 does not process commit messages3227 when the project is forked3228 when commits already exists in the upstream project3229 does not process commit messages3230 when a commit does not exist in the upstream repo3231 processes the commit message3232 when the upstream project no longer exists3233 processes the commit messages3234 New branch detection3235 oldrev is the blank SHA3236 is treated as a new branch3237 oldrev is set3238 Gitaly does not know about the branch3239 is treated as a new branch3240 Gitaly knows about the branch3241 is not treated as a new branch3242 Metrics dashboard sync3243 with default branch3244 when adding files3245 also related3246 imports metrics to database3247 only unrelated3248 does not sync metrics to database3249 when deleting files3250 also related3251 imports metrics to database3252 only unrelated3253 does not sync metrics to database3254 when updating files3255 also related3256 imports metrics to database3257 only unrelated3258 does not sync metrics to database3259 without changes3260 does not sync metrics to database3261 with other branch3262 does not sync metrics to database3263GroupsFinder3264 #execute3265 root level groups3266 user_type: nil, params: {:all_available=>true}, results: [:public_group, :user_public_group]3267 is expected to contain exactly #<Group id:1243 @public_group> and #<Group id:1246 @user_public_group>3268 user_type: nil, params: {:all_available=>false}, results: [:public_group, :user_public_group]3269 is expected to contain exactly #<Group id:1249 @public_group> and #<Group id:1252 @user_public_group>3270 user_type: nil, params: {}, results: [:public_group, :user_public_group]3271 is expected to contain exactly #<Group id:1255 @public_group> and #<Group id:1258 @user_public_group>3272 user_type: :regular, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3273 is expected to contain exactly #<Group id:1261 @public_group>, #<Group id:1260 @internal_group>, #<Group id:1264 @user_public_group>, #<Group id:1263 @user_internal_group>, and #<Group id:1262 @user_private_group>3274 user_type: :regular, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3275 is expected to contain exactly #<Group id:1271 @user_public_group>, #<Group id:1270 @user_internal_group>, and #<Group id:1269 @user_private_group>3276 user_type: :regular, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3277 is expected to contain exactly #<Group id:1275 @public_group>, #<Group id:1274 @internal_group>, #<Group id:1278 @user_public_group>, #<Group id:1277 @user_internal_group>, and #<Group id:1276 @user_private_group>3278 user_type: :regular, params: {:min_access_level=>30}, results: [:user_public_group, :user_internal_group, :user_private_group]3279 is expected to contain exactly #<Group id:1285 @user_public_group>, #<Group id:1284 @user_internal_group>, and #<Group id:1283 @user_private_group>3280 user_type: :external, params: {:all_available=>true}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]3281 is expected to contain exactly #<Group id:1289 @public_group>, #<Group id:1292 @user_public_group>, #<Group id:1291 @user_internal_group>, and #<Group id:1290 @user_private_group>3282 user_type: :external, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3283 is expected to contain exactly #<Group id:1299 @user_public_group>, #<Group id:1298 @user_internal_group>, and #<Group id:1297 @user_private_group>3284 user_type: :external, params: {}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]3285 is expected to contain exactly #<Group id:1303 @public_group>, #<Group id:1306 @user_public_group>, #<Group id:1305 @user_internal_group>, and #<Group id:1304 @user_private_group>3286 user_type: :admin_without_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3287 is expected to contain exactly #<Group id:1310 @public_group>, #<Group id:1309 @internal_group>, #<Group id:1313 @user_public_group>, #<Group id:1312 @user_internal_group>, and #<Group id:1311 @user_private_group>3288 user_type: :admin_without_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3289 is expected to contain exactly #<Group id:1320 @user_public_group>, #<Group id:1319 @user_internal_group>, and #<Group id:1318 @user_private_group>3290 user_type: :admin_without_admin_mode, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3291 is expected to contain exactly #<Group id:1324 @public_group>, #<Group id:1323 @internal_group>, #<Group id:1327 @user_public_group>, #<Group id:1326 @user_internal_group>, and #<Group id:1325 @user_private_group>3292 user_type: :admin_with_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]3293 is expected to contain exactly #<Group id:1331 @public_group>, #<Group id:1330 @internal_group>, #<Group id:1329 @private_group>, #<Group id:1334 @user_public_group>, #<Group id:1333 @user_internal_group>, and #<Group id:1332 @user_private_group>3294 user_type: :admin_with_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3295 is expected to contain exactly #<Group id:1341 @user_public_group>, #<Group id:1340 @user_internal_group>, and #<Group id:1339 @user_private_group>3296 user_type: :admin_with_admin_mode, params: {}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]3297 is expected to contain exactly #<Group id:1345 @public_group>, #<Group id:1344 @internal_group>, #<Group id:1343 @private_group>, #<Group id:1348 @user_public_group>, #<Group id:1347 @user_internal_group>, and #<Group id:1346 @user_private_group>3298 subgroups3299 with [nil] parent3300 returns only top-level groups3301 without a user3302 only returns parent and public subgroups3303 with a user3304 returns parent, public, and internal subgroups3305 being member3306 returns parent, public subgroups, internal subgroups, and private subgroups user is member of3307 parent group private3308 being member of parent group3309 returns all subgroups3310 authorized to private project3311 project one level deep3312 includes the subgroup of the project3313 does not include private subgroups deeper down3314 project two levels deep3315 returns all the ancestor groups3316 returns the groups for a given parent3317 being minimal access member of parent group3318 do not return group with minimal_access access3319 with include parent group descendants3320 with nil parent3321 returns all accessible groups3322 without a user3323 only returns the group public descendants3324 when a user is present3325 returns the group public and internal descendants3326 when a parent group member is present3327 returns all group descendants3328 with search3329 returns all groups with matching title3330 returns all groups with matching path3331 does not search in full path if parent is set3332 with group descendants3333 searches in full path if descendant groups are not included3334 with include_ancestors3335 if include_ancestors is true3336 returns ancestors of user groups3337 returns subgroup if user is member of project of subgroup3338 returns only groups related to user groups if all_available is false3339 if include_ancestors is false3340 does not return private ancestors of user groups3341 returns project's parent group if user is member of project3342 returns only user groups and their descendants if all_available is false3343 when use_traversal_ids_groups_finder feature flags is disabled3344 root level groups3345 user_type: nil, params: {:all_available=>true}, results: [:public_group, :user_public_group]3346 is expected to contain exactly #<Group id:1440 @public_group> and #<Group id:1443 @user_public_group>3347 user_type: nil, params: {:all_available=>false}, results: [:public_group, :user_public_group]3348 is expected to contain exactly #<Group id:1446 @public_group> and #<Group id:1449 @user_public_group>3349 user_type: nil, params: {}, results: [:public_group, :user_public_group]3350 is expected to contain exactly #<Group id:1452 @public_group> and #<Group id:1455 @user_public_group>3351 user_type: :regular, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3352 is expected to contain exactly #<Group id:1458 @public_group>, #<Group id:1457 @internal_group>, #<Group id:1461 @user_public_group>, #<Group id:1460 @user_internal_group>, and #<Group id:1459 @user_private_group>3353 user_type: :regular, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3354 is expected to contain exactly #<Group id:1468 @user_public_group>, #<Group id:1467 @user_internal_group>, and #<Group id:1466 @user_private_group>3355 user_type: :regular, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3356 is expected to contain exactly #<Group id:1472 @public_group>, #<Group id:1471 @internal_group>, #<Group id:1475 @user_public_group>, #<Group id:1474 @user_internal_group>, and #<Group id:1473 @user_private_group>3357 user_type: :regular, params: {:min_access_level=>30}, results: [:user_public_group, :user_internal_group, :user_private_group]3358 is expected to contain exactly #<Group id:1482 @user_public_group>, #<Group id:1481 @user_internal_group>, and #<Group id:1480 @user_private_group>3359 user_type: :external, params: {:all_available=>true}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]3360 is expected to contain exactly #<Group id:1486 @public_group>, #<Group id:1489 @user_public_group>, #<Group id:1488 @user_internal_group>, and #<Group id:1487 @user_private_group>3361 user_type: :external, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3362 is expected to contain exactly #<Group id:1496 @user_public_group>, #<Group id:1495 @user_internal_group>, and #<Group id:1494 @user_private_group>3363 user_type: :external, params: {}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]3364 is expected to contain exactly #<Group id:1500 @public_group>, #<Group id:1503 @user_public_group>, #<Group id:1502 @user_internal_group>, and #<Group id:1501 @user_private_group>3365 user_type: :admin_without_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3366 is expected to contain exactly #<Group id:1507 @public_group>, #<Group id:1506 @internal_group>, #<Group id:1510 @user_public_group>, #<Group id:1509 @user_internal_group>, and #<Group id:1508 @user_private_group>3367 user_type: :admin_without_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3368 is expected to contain exactly #<Group id:1517 @user_public_group>, #<Group id:1516 @user_internal_group>, and #<Group id:1515 @user_private_group>3369 user_type: :admin_without_admin_mode, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3370 is expected to contain exactly #<Group id:1521 @public_group>, #<Group id:1520 @internal_group>, #<Group id:1524 @user_public_group>, #<Group id:1523 @user_internal_group>, and #<Group id:1522 @user_private_group>3371 user_type: :admin_with_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]3372 is expected to contain exactly #<Group id:1528 @public_group>, #<Group id:1527 @internal_group>, #<Group id:1526 @private_group>, #<Group id:1531 @user_public_group>, #<Group id:1530 @user_internal_group>, and #<Group id:1529 @user_private_group>3373 user_type: :admin_with_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3374 is expected to contain exactly #<Group id:1538 @user_public_group>, #<Group id:1537 @user_internal_group>, and #<Group id:1536 @user_private_group>3375 user_type: :admin_with_admin_mode, params: {}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]3376 is expected to contain exactly #<Group id:1542 @public_group>, #<Group id:1541 @internal_group>, #<Group id:1540 @private_group>, #<Group id:1545 @user_public_group>, #<Group id:1544 @user_internal_group>, and #<Group id:1543 @user_private_group>3377 subgroups3378 with [nil] parent3379 returns only top-level groups3380 without a user3381 only returns parent and public subgroups3382 with a user3383 returns parent, public, and internal subgroups3384 being member3385 returns parent, public subgroups, internal subgroups, and private subgroups user is member of3386 parent group private3387 being member of parent group3388 returns all subgroups3389 authorized to private project3390 project one level deep3391 includes the subgroup of the project3392 does not include private subgroups deeper down3393 project two levels deep3394 returns all the ancestor groups3395 returns the groups for a given parent3396 being minimal access member of parent group3397 do not return group with minimal_access access3398 with include parent group descendants3399 with nil parent3400 returns all accessible groups3401 without a user3402 only returns the group public descendants3403 when a user is present3404 returns the group public and internal descendants3405 when a parent group member is present3406 returns all group descendants3407 with search3408 returns all groups with matching title3409 returns all groups with matching path3410 does not search in full path if parent is set3411 with group descendants3412 searches in full path if descendant groups are not included3413 with include_ancestors3414 if include_ancestors is true3415 returns ancestors of user groups3416 returns subgroup if user is member of project of subgroup3417 returns only groups related to user groups if all_available is false3418 if include_ancestors is false3419 does not return private ancestors of user groups3420 returns project's parent group if user is member of project3421 returns only user groups and their descendants if all_available is false3422Operations::FeatureFlags::Strategy3423 validations3424 is expected to validate that :name is either ‹"default"›, ‹"gradualRolloutUserId"›, ‹"flexibleRollout"›, ‹"userWithId"›, or ‹"gitlabUserList"›, producing a custom validation error on failure3425 parameters3426 when the strategy name is invalid3427 invalid_name: nil3428 skips parameters validation3429 invalid_name: {}3430 skips parameters validation3431 invalid_name: []3432 skips parameters validation3433 invalid_name: "nothing"3434 skips parameters validation3435 invalid_name: 33436 skips parameters validation3437 when the strategy name is gradualRolloutUserId3438 allows the parameters in any order3439 invalid_parameters: nil3440 must have valid parameters for the strategy3441 invalid_parameters: {}3442 must have valid parameters for the strategy3443 invalid_parameters: {:percentage=>"40", :groupId=>"mygroup", :userIds=>"4"}3444 must have valid parameters for the strategy3445 invalid_parameters: {:percentage=>"40"}3446 must have valid parameters for the strategy3447 invalid_parameters: {:percentage=>"40", :groupId=>"mygroup", :extra=>nil}3448 must have valid parameters for the strategy3449 invalid_parameters: {:groupId=>"mygroup"}3450 must have valid parameters for the strategy3451 percentage3452 invalid_value: 503453 must be a string value between 0 and 100 inclusive and without a percentage sign3454 invalid_value: 40.03455 must be a string value between 0 and 100 inclusive and without a percentage sign3456 invalid_value: {:key=>"value"}3457 must be a string value between 0 and 100 inclusive and without a percentage sign3458 invalid_value: "garbage"3459 must be a string value between 0 and 100 inclusive and without a percentage sign3460 invalid_value: "101"3461 must be a string value between 0 and 100 inclusive and without a percentage sign3462 invalid_value: "-1"3463 must be a string value between 0 and 100 inclusive and without a percentage sign3464 invalid_value: "-10"3465 must be a string value between 0 and 100 inclusive and without a percentage sign3466 invalid_value: "1000"3467 must be a string value between 0 and 100 inclusive and without a percentage sign3468 invalid_value: "10.0"3469 must be a string value between 0 and 100 inclusive and without a percentage sign3470 invalid_value: "5%"3471 must be a string value between 0 and 100 inclusive and without a percentage sign3472 invalid_value: "25%"3473 must be a string value between 0 and 100 inclusive and without a percentage sign3474 invalid_value: "100hi"3475 must be a string value between 0 and 100 inclusive and without a percentage sign3476 invalid_value: "e100"3477 must be a string value between 0 and 100 inclusive and without a percentage sign3478 invalid_value: "30m"3479 must be a string value between 0 and 100 inclusive and without a percentage sign3480 invalid_value: " "3481 must be a string value between 0 and 100 inclusive and without a percentage sign3482 invalid_value: "\r\n"3483 must be a string value between 0 and 100 inclusive and without a percentage sign3484 invalid_value: "\n"3485 must be a string value between 0 and 100 inclusive and without a percentage sign3486 invalid_value: "\t"3487 must be a string value between 0 and 100 inclusive and without a percentage sign3488 invalid_value: "\n10"3489 must be a string value between 0 and 100 inclusive and without a percentage sign3490 invalid_value: "20\n"3491 must be a string value between 0 and 100 inclusive and without a percentage sign3492 invalid_value: "\n100"3493 must be a string value between 0 and 100 inclusive and without a percentage sign3494 invalid_value: "100\n"3495 must be a string value between 0 and 100 inclusive and without a percentage sign3496 invalid_value: "\n "3497 must be a string value between 0 and 100 inclusive and without a percentage sign3498 invalid_value: nil3499 must be a string value between 0 and 100 inclusive and without a percentage sign3500 valid_value: "0"3501 must be a string value between 0 and 100 inclusive and without a percentage sign3502 valid_value: "1"3503 must be a string value between 0 and 100 inclusive and without a percentage sign3504 valid_value: "10"3505 must be a string value between 0 and 100 inclusive and without a percentage sign3506 valid_value: "38"3507 must be a string value between 0 and 100 inclusive and without a percentage sign3508 valid_value: "100"3509 must be a string value between 0 and 100 inclusive and without a percentage sign3510 valid_value: "93"3511 must be a string value between 0 and 100 inclusive and without a percentage sign3512 groupId3513 invalid_value: nil3514 must be a string value of up to 32 lowercase characters3515 invalid_value: 43516 must be a string value of up to 32 lowercase characters3517 invalid_value: 50.03518 must be a string value of up to 32 lowercase characters3519 invalid_value: {}3520 must be a string value of up to 32 lowercase characters3521 invalid_value: "spaces bad"3522 must be a string value of up to 32 lowercase characters3523 invalid_value: "bad$"3524 must be a string value of up to 32 lowercase characters3525 invalid_value: "%bad"3526 must be a string value of up to 32 lowercase characters3527 invalid_value: "<bad"3528 must be a string value of up to 32 lowercase characters3529 invalid_value: "bad>"3530 must be a string value of up to 32 lowercase characters3531 invalid_value: "!bad"3532 must be a string value of up to 32 lowercase characters3533 invalid_value: ".bad"3534 must be a string value of up to 32 lowercase characters3535 invalid_value: "Bad"3536 must be a string value of up to 32 lowercase characters3537 invalid_value: "bad1"3538 must be a string value of up to 32 lowercase characters3539 invalid_value: ""3540 must be a string value of up to 32 lowercase characters3541 invalid_value: " "3542 must be a string value of up to 32 lowercase characters3543 invalid_value: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"3544 must be a string value of up to 32 lowercase characters3545 invalid_value: "ba_d"3546 must be a string value of up to 32 lowercase characters3547 invalid_value: "ba\nd"3548 must be a string value of up to 32 lowercase characters3549 valid_value: "somegroup"3550 must be a string value of up to 32 lowercase characters3551 valid_value: "anothergroup"3552 must be a string value of up to 32 lowercase characters3553 valid_value: "okay"3554 must be a string value of up to 32 lowercase characters3555 valid_value: "g"3556 must be a string value of up to 32 lowercase characters3557 valid_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"3558 must be a string value of up to 32 lowercase characters3559 when the strategy name is flexibleRollout3560 allows the parameters in the order rollout, stickiness, groupId3561 allows the parameters in the order rollout, groupId, stickiness3562 allows the parameters in the order stickiness, rollout, groupId3563 allows the parameters in the order stickiness, groupId, rollout3564 allows the parameters in the order groupId, rollout, stickiness3565 allows the parameters in the order groupId, stickiness, rollout3566 invalid_parameters: nil3567 must have valid parameters for the strategy3568 invalid_parameters: {}3569 must have valid parameters for the strategy3570 invalid_parameters: {:rollout=>"40"}3571 must have valid parameters for the strategy3572 invalid_parameters: {:groupId=>"mygroup"}3573 must have valid parameters for the strategy3574 invalid_parameters: {:stickiness=>"default"}3575 must have valid parameters for the strategy3576 invalid_parameters: {:rollout=>"40", :groupId=>"mygroup"}3577 must have valid parameters for the strategy3578 invalid_parameters: {:rollout=>"40", :stickiness=>"default"}3579 must have valid parameters for the strategy3580 invalid_parameters: {:groupId=>"mygroup", :stickiness=>"default"}3581 must have valid parameters for the strategy3582 invalid_parameters: {:rollout=>"40", :groupId=>"mygroup", :stickiness=>"default", :userIds=>"4"}3583 must have valid parameters for the strategy3584 invalid_parameters: {:rollout=>"40", :groupId=>"mygroup", :stickiness=>"default", :extra=>nil}3585 must have valid parameters for the strategy3586 rollout3587 invalid_value: 503588 must be a string value between 0 and 100 inclusive and without a percentage sign3589 invalid_value: 40.03590 must be a string value between 0 and 100 inclusive and without a percentage sign3591 invalid_value: {:key=>"value"}3592 must be a string value between 0 and 100 inclusive and without a percentage sign3593 invalid_value: "garbage"3594 must be a string value between 0 and 100 inclusive and without a percentage sign3595 invalid_value: "101"3596 must be a string value between 0 and 100 inclusive and without a percentage sign3597 invalid_value: "-1"3598 must be a string value between 0 and 100 inclusive and without a percentage sign3599 invalid_value: " "3600 must be a string value between 0 and 100 inclusive and without a percentage sign3601 invalid_value: "-10"3602 must be a string value between 0 and 100 inclusive and without a percentage sign3603 invalid_value: "1000"3604 must be a string value between 0 and 100 inclusive and without a percentage sign3605 invalid_value: "10.0"3606 must be a string value between 0 and 100 inclusive and without a percentage sign3607 invalid_value: "5%"3608 must be a string value between 0 and 100 inclusive and without a percentage sign3609 invalid_value: "25%"3610 must be a string value between 0 and 100 inclusive and without a percentage sign3611 invalid_value: "100hi"3612 must be a string value between 0 and 100 inclusive and without a percentage sign3613 invalid_value: "e100"3614 must be a string value between 0 and 100 inclusive and without a percentage sign3615 invalid_value: "30m"3616 must be a string value between 0 and 100 inclusive and without a percentage sign3617 invalid_value: "\r\n"3618 must be a string value between 0 and 100 inclusive and without a percentage sign3619 invalid_value: "\n"3620 must be a string value between 0 and 100 inclusive and without a percentage sign3621 invalid_value: "\t"3622 must be a string value between 0 and 100 inclusive and without a percentage sign3623 invalid_value: "\n10"3624 must be a string value between 0 and 100 inclusive and without a percentage sign3625 invalid_value: "20\n"3626 must be a string value between 0 and 100 inclusive and without a percentage sign3627 invalid_value: "\n100"3628 must be a string value between 0 and 100 inclusive and without a percentage sign3629 invalid_value: "100\n"3630 must be a string value between 0 and 100 inclusive and without a percentage sign3631 invalid_value: "\n "3632 must be a string value between 0 and 100 inclusive and without a percentage sign3633 invalid_value: nil3634 must be a string value between 0 and 100 inclusive and without a percentage sign3635 valid_value: "0"3636 must be a string value between 0 and 100 inclusive and without a percentage sign3637 valid_value: "1"3638 must be a string value between 0 and 100 inclusive and without a percentage sign3639 valid_value: "10"3640 must be a string value between 0 and 100 inclusive and without a percentage sign3641 valid_value: "38"3642 must be a string value between 0 and 100 inclusive and without a percentage sign3643 valid_value: "100"3644 must be a string value between 0 and 100 inclusive and without a percentage sign3645 valid_value: "93"3646 must be a string value between 0 and 100 inclusive and without a percentage sign3647 groupId3648 invalid_value: nil3649 must be a string value of up to 32 lowercase characters3650 invalid_value: 43651 must be a string value of up to 32 lowercase characters3652 invalid_value: 50.03653 must be a string value of up to 32 lowercase characters3654 invalid_value: {}3655 must be a string value of up to 32 lowercase characters3656 invalid_value: "spaces bad"3657 must be a string value of up to 32 lowercase characters3658 invalid_value: "bad$"3659 must be a string value of up to 32 lowercase characters3660 invalid_value: "%bad"3661 must be a string value of up to 32 lowercase characters3662 invalid_value: "<bad"3663 must be a string value of up to 32 lowercase characters3664 invalid_value: "bad>"3665 must be a string value of up to 32 lowercase characters3666 invalid_value: "!bad"3667 must be a string value of up to 32 lowercase characters3668 invalid_value: ".bad"3669 must be a string value of up to 32 lowercase characters3670 invalid_value: "Bad"3671 must be a string value of up to 32 lowercase characters3672 invalid_value: "bad1"3673 must be a string value of up to 32 lowercase characters3674 invalid_value: ""3675 must be a string value of up to 32 lowercase characters3676 invalid_value: " "3677 must be a string value of up to 32 lowercase characters3678 invalid_value: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"3679 must be a string value of up to 32 lowercase characters3680 invalid_value: "ba_d"3681 must be a string value of up to 32 lowercase characters3682 invalid_value: "ba\nd"3683 must be a string value of up to 32 lowercase characters3684 valid_value: "somegroup"3685 must be a string value of up to 32 lowercase characters3686 valid_value: "anothergroup"3687 must be a string value of up to 32 lowercase characters3688 valid_value: "okay"3689 must be a string value of up to 32 lowercase characters3690 valid_value: "g"3691 must be a string value of up to 32 lowercase characters3692 valid_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"3693 must be a string value of up to 32 lowercase characters3694 stickiness3695 invalid_value: nil3696 must be a string representing a supported stickiness setting3697 invalid_value: " "3698 must be a string representing a supported stickiness setting3699 invalid_value: "DEFAULT"3700 must be a string representing a supported stickiness setting3701 invalid_value: "DEFAULT\n"3702 must be a string representing a supported stickiness setting3703 invalid_value: "UserId"3704 must be a string representing a supported stickiness setting3705 invalid_value: "USER"3706 must be a string representing a supported stickiness setting3707 invalid_value: "USERID "3708 must be a string representing a supported stickiness setting3709 valid_value: "default"3710 must be a string representing a supported stickiness setting3711 valid_value: "userId"3712 must be a string representing a supported stickiness setting3713 valid_value: "sessionId"3714 must be a string representing a supported stickiness setting3715 valid_value: "random"3716 must be a string representing a supported stickiness setting3717 when the strategy name is userWithId3718 invalid_parameters: nil3719 must have valid parameters for the strategy3720 invalid_parameters: {:userIds=>"sam", :percentage=>"40"}3721 must have valid parameters for the strategy3722 invalid_parameters: {:userIds=>"sam", :some=>"param"}3723 must have valid parameters for the strategy3724 invalid_parameters: {:percentage=>"40"}3725 must have valid parameters for the strategy3726 invalid_parameters: {}3727 must have valid parameters for the strategy3728 userIds3729 valid_value: ""3730 is valid with a string of comma separated values3731 valid_value: "sam"3732 is valid with a string of comma separated values3733 valid_value: "1"3734 is valid with a string of comma separated values3735 valid_value: "a"3736 is valid with a string of comma separated values3737 valid_value: "uuid-of-some-kind"3738 is valid with a string of comma separated values3739 valid_value: "sam,fred,tom,jane,joe,mike"3740 is valid with a string of comma separated values3741 valid_value: "gitlab@example.com"3742 is valid with a string of comma separated values3743 valid_value: "123,4"3744 is valid with a string of comma separated values3745 valid_value: "UPPER,Case,charActeRS"3746 is valid with a string of comma separated values3747 valid_value: "0"3748 is valid with a string of comma separated values3749 valid_value: "$valid$email#2345\#$%..{}+=-)?\\/@example.com"3750 is valid with a string of comma separated values3751 valid_value: "spaces allowed"3752 is valid with a string of comma separated values3753 valid_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"3754 is valid with a string of comma separated values3755 valid_value: "a,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,ccc"3756 is valid with a string of comma separated values3757 valid_value: "many spaces"3758 is valid with a string of comma separated values3759 invalid_value: 13760 is invalid3761 invalid_value: 2.53762 is invalid3763 invalid_value: {}3764 is invalid3765 invalid_value: []3766 is invalid3767 invalid_value: nil3768 is invalid3769 invalid_value: "123\n456"3770 is invalid3771 invalid_value: "1,2,3,12\t3"3772 is invalid3773 invalid_value: "\n"3774 is invalid3775 invalid_value: "\n\r"3776 is invalid3777 invalid_value: "joe\r,sam"3778 is invalid3779 invalid_value: "1,2,2"3780 is invalid3781 invalid_value: "1,,2"3782 is invalid3783 invalid_value: "1,2,,,,"3784 is invalid3785 invalid_value: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"3786 is invalid3787 invalid_value: "1, ,2"3788 is invalid3789 invalid_value: "tim, ,7"3790 is invalid3791 invalid_value: " "3792 is invalid3793 invalid_value: " "3794 is invalid3795 invalid_value: " ,1"3796 is invalid3797 invalid_value: "1, "3798 is invalid3799 invalid_value: " leading,1"3800 is invalid3801 invalid_value: "1,trailing "3802 is invalid3803 invalid_value: "1, both ,2"3804 is invalid3805 when the strategy name is default3806 must be empty3807 invalid_value: {:groupId=>"hi", :percentage=>"7"}3808 must be empty3809 invalid_value: ""3810 must be empty3811 invalid_value: "nothing"3812 must be empty3813 invalid_value: 73814 must be empty3815 invalid_value: nil3816 must be empty3817 invalid_value: []3818 must be empty3819 invalid_value: 2.53820 must be empty3821 when the strategy name is gitlabUserList3822 is valid3823 invalid_value: {:groupId=>"default", :percentage=>"7"}3824 is invalid3825 invalid_value: ""3826 is invalid3827 invalid_value: "nothing"3828 is invalid3829 invalid_value: 73830 is invalid3831 invalid_value: nil3832 is invalid3833 invalid_value: []3834 is invalid3835 invalid_value: 2.53836 is invalid3837 invalid_value: {:userIds=>"user1"}3838 is invalid3839 associations3840 when name is gitlabUserList3841 is valid when associated with a user list3842 is invalid without a user list3843 is invalid when associated with a user list from another project3844 when name is default3845 is invalid when associated with a user list3846 is valid without a user list3847 when name is userWithId3848 is invalid when associated with a user list3849 is valid without a user list3850 when name is gradualRolloutUserId3851 is invalid when associated with a user list3852 is valid without a user list3853 when name is flexibleRollout3854 is invalid when associated with a user list3855 is valid without a user list3856Ci::BuildPolicy3857 #rules3858 when user does not have access to the project3859 when public builds are enabled3860 does not include ability to read build3861 when public builds are disabled3862 does not include ability to read build3863 when anonymous user has access to the project3864 when public builds are enabled3865 includes ability to read build3866 when public builds are disabled3867 does not include ability to read build3868 when team member has access to the project3869 team member is a guest3870 when public builds are enabled3871 includes ability to read build3872 when public builds are disabled3873 does not include ability to read build3874 team member is a reporter3875 when public builds are enabled3876 includes ability to read build3877 when public builds are disabled3878 does not include ability to read build3879 when maintainer is allowed to push to pipeline branch3880 enables update_build if user is maintainer3881 rules for protected ref3882 when no one can push or merge to the branch3883 does not include ability to update build3884 when developers can push to the branch3885 includes ability to update build3886 when no one can create the tag3887 does not include ability to update build3888 when no one can create the tag but it is not a tag3889 includes ability to update build3890 rules for erase build3891 when a developer erases a build3892 when developers can push to the branch3893 when the build was created by the developer3894 when the build was created for a protected ref3895 is expected to be disallowed :erase_build3896 when the build was created for an unprotected ref3897 is expected to be allowed :erase_build3898 when the build was created by the other3899 is expected to be disallowed :erase_build3900 when no one can push or merge to the branch3901 is expected to be disallowed :erase_build3902 when a maintainer erases a build3903 when maintainers can push to the branch3904 when the build was created by the maintainer3905 is expected to be allowed :erase_build3906 when the build was created by the other3907 is expected to be allowed :erase_build3908 when no one can push or merge to the branch3909 is expected to be disallowed :erase_build3910 when an admin erases a build3911 when the build was created for a protected branch3912 is expected to be allowed :erase_build3913 when the build was created for a protected tag3914 is expected to be allowed :erase_build3915 when the build was created for an unprotected ref3916 is expected to be allowed :erase_build3917 manage a web ide terminal3918 when create_web_ide_terminal access enabled3919 with admin3920 when admin mode enabled3921 is expected to be allowed :create_build_service_proxy3922 when admin mode disabled3923 is expected not to be allowed :create_build_service_proxy3924 when build is not from a webide pipeline3925 is expected not to be allowed :create_build_service_proxy3926 when build has no runner terminal3927 when admin mode enabled3928 is expected to be allowed :update_web_ide_terminal3929 is expected not to be allowed :create_build_service_proxy3930 when admin mode disabled3931 is expected not to be allowed :update_web_ide_terminal3932 is expected not to be allowed :create_build_service_proxy3933 feature flag "build_service_proxy" is disabled3934 is expected not to be allowed :create_build_service_proxy3935 with owner3936 behaves like allowed build owner access3937 is expected not to be allowed :create_build_service_proxy3938 when user is the owner of the job3939 is expected to be allowed :create_build_service_proxy3940 with maintainer3941 behaves like allowed build owner access3942 is expected not to be allowed :create_build_service_proxy3943 when user is the owner of the job3944 is expected to be allowed :create_build_service_proxy3945 with developer3946 behaves like forbidden access3947 is expected not to be allowed :create_build_service_proxy3948 when user is the owner of the job3949 is expected not to be allowed :create_build_service_proxy3950 with reporter3951 behaves like forbidden access3952 is expected not to be allowed :create_build_service_proxy3953 when user is the owner of the job3954 is expected not to be allowed :create_build_service_proxy3955 with guest3956 behaves like forbidden access3957 is expected not to be allowed :create_build_service_proxy3958 when user is the owner of the job3959 is expected not to be allowed :create_build_service_proxy3960 with non member3961 behaves like forbidden access3962 is expected not to be allowed :create_build_service_proxy3963 when user is the owner of the job3964 is expected not to be allowed :create_build_service_proxy3965 ability :create_build_terminal3966 when user can update_build3967 when job has terminal3968 when current user is the job owner3969 is expected to be allowed :create_build_terminal3970 when current user is not the job owner3971 is expected not to be allowed :create_build_terminal3972 when job does not have terminal3973 is expected not to be allowed :create_build_terminal3974 when user cannot update build3975 is expected not to be allowed :create_build_terminal3976NotePolicy3977 #rules3978 when the noteable is a deleted commit3979 allows to read3980 when the noteable is a commit3981 when the project is private3982 behaves like a discussion with a private noteable3983 when the note author can no longer see the noteable3984 behaves like user cannot read or act on the note3985 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji3986 when the note author can still see the noteable3987 can edit the note3988 when the project is public3989 when repository access level is private3990 behaves like a discussion with a private noteable3991 when the note author can no longer see the noteable3992 behaves like user cannot read or act on the note3993 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji3994 when the note author can still see the noteable3995 can edit the note3996 when the noteable is a Design3997 can read, award emoji and reposition the note3998 when project is private3999 behaves like user cannot read or act on the note4000 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji4001 when the noteable is a personal snippet4002 behaves like a note on a public noteable4003 can only read and award emoji on the note4004 when user is the author of the personal snippet4005 can edit note4006 when it is private4007 behaves like user cannot read or act on the note4008 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji4009 when the project is public4010 when user is not the author of the note4011 behaves like a note on a public noteable4012 can only read and award emoji on the note4013 when the note author is not a project member4014 can edit a note4015 when the noteable is a project snippet4016 can edit note4017 when it is private4018 behaves like a discussion with a private noteable4019 when the note author can no longer see the noteable4020 behaves like user cannot read or act on the note4021 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji4022 when the note author can still see the noteable4023 can edit the note4024 when a discussion is confidential4025 behaves like a discussion with a private noteable4026 when the note author can no longer see the noteable4027 behaves like user cannot read or act on the note4028 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji4029 when the note author can still see the noteable4030 can edit the note4031 when a discussion is locked4032 when the note author is a project member4033 can edit a note4034 when the note author is not a project member4035 can not edit a note4036 can read a note4037 for discussions4038 allows the author to manage the discussion4039 when the user does not have access to the noteable4040 behaves like a discussion with a private noteable4041 when the note author can no longer see the noteable4042 behaves like user cannot read or act on the note4043 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji4044 when the note author can still see the noteable4045 can edit the note4046 when it is a system note4047 when noteable is a public issue4048 when user is project member4049 behaves like user can read the note4050 allows the user to read the note4051 behaves like user can act on the note4052 allows the user to read the note4053 when user is not project member4054 behaves like user can read the note4055 allows the user to read the note4056 when user is anonymous4057 behaves like user can read the note4058 allows the user to read the note4059 when it is a system note referencing a confidential issue4060 when user is project member4061 behaves like user can read the note4062 allows the user to read the note4063 behaves like user can act on the note4064 allows the user to read the note4065 when user is not project member4066 behaves like user cannot read or act on the note4067 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji4068 when user is anonymous4069 behaves like user cannot read or act on the note4070 is expected to be disallowed :admin_note, :reposition_note, :resolve_note, :read_note, and :award_emoji4071 with confidential notes4072 for issues4073 disallows noteable assignees to read all notes4074 behaves like confidential notes permissions4075 does not allow non members to read confidential notes and replies4076 does not allow guests to read confidential notes and replies4077 allows reporter to read all notes but not resolve and admin them4078 allows developer to read and resolve all notes4079 allows maintainers to read all notes and admin them4080 disallows noteable author to read and resolve all notes4081 when admin mode is enabled4082 allows admins to read all notes and admin them4083 when admin mode is disabled4084 does not allow non members to read confidential notes and replies4085search/_results4086WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4087 displays the page size4088 when searching notes which contain quotes in markdown4089WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4090 renders plain quotes4091 when search results do not have a count4092WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4093 does not display the page size4094 rendering all types of search results4095 when scope is issues4096WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4097 does render the sidebar4098 when admin mode is enabled4099WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4100 renders the click text event tracking attributes4101 when admin mode is disabled4102WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4103 does not render the click text event tracking attributes4104 when scope is merge_requests4105WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4106 does render the sidebar4107 when admin mode is enabled4108WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4109 renders the click text event tracking attributes4110 when admin mode is disabled4111WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4112 does not render the click text event tracking attributes4113 git blame click tracking4114 when admin mode is enabled4115WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4116 renders the click link event tracking attributes4117 when admin mode is disabled4118WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4119 does not render the click link event tracking attributes4120 when scope is blobs4121WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4122 does not render the sidebar4123 when admin mode is enabled4124WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4125 renders the click text event tracking attributes4126 when admin mode is disabled4127WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4128 does not render the click text event tracking attributes4129 when scope is notes4130WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4131 does not render the sidebar4132 when admin mode is enabled4133WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4134 renders the click text event tracking attributes4135 when admin mode is disabled4136WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4137 does not render the click text event tracking attributes4138 when scope is wiki_blobs4139WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4140 does not render the sidebar4141 when admin mode is enabled4142WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4143 renders the click text event tracking attributes4144 when admin mode is disabled4145WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4146 does not render the click text event tracking attributes4147 when scope is milestones4148WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4149 does not render the sidebar4150 when admin mode is enabled4151WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4152 renders the click text event tracking attributes4153 when admin mode is disabled4154WARNING: An expectation of `:formatted_count` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/views/search/_results.html.haml_spec.rb:16:in `block (2 levels) in <top (required)>'.4155 does not render the click text event tracking attributes4156Gitlab::ImportExport::Group::LegacyTreeSaver4157 saves the group tree into a json object4158 saves group successfully4159 JSON4160 saves the correct json4161 has milestones4162 has labels4163 has boards4164 has board label list4165 has group members4166 has priorities associated to labels4167 has badges4168 group children4169 exports group children4170 exports group children of children4171 group members4172 exports group members as group owner4173 as admin4174 exports group members as admin4175 exports group members4176 group attributes4177 does not contain excluded attribute4178 does not contain excluded attribute4179 does not contain excluded attribute4180 does not contain excluded attribute4181 does not contain excluded attribute4182 does not contain excluded attribute4183 does not contain excluded attribute4184 does not contain excluded attribute4185Gitlab::DataBuilder::Push4186 .build4187 with changed files4188 returns commit hook data4189 without changed files4190 returns commit hook data without include deltas4191 .build_sample4192 is expected to be a kind of Hash4193 is expected to eq "1b12f15a11fc6e62177bef08f47bc7b5ce50b141"4194 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"4195 is expected to eq "refs/heads/master"4196 is expected to eq 34197 is expected to eq 34198 is expected to eq ["bar/branch-test.txt"]4199 is expected to eq []4200 is expected to eq []4201 contains project data4202 contains deprecated repository data4203 .sample_data4204 is expected to be a kind of Hash4205 is expected to eq "95790bf891e76fee5e1747ab589903a6a1f80f22"4206 is expected to eq "da1560886d4f094c3e6c9ef40349f7d38b5d27d7"4207 is expected to eq "refs/heads/master"4208 is expected to eq 154209 is expected to eq 14210 is expected to eq 14211 contains project data4212 .build4213 is expected to be a kind of Hash4214 is expected to eq "0000000000000000000000000000000000000000"4215 is expected to eq "5937ac0a7beb003549fc5fd26fc247adbce4a52e"4216 is expected to eq "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b"4217 is expected to eq "refs/tags/v1.1.0"4218 is expected to eq nil4219 is expected to eq "Sidney Jones762"4220 is expected to eq "user496"4221 is expected to eq "public-email@example.com"4222 is expected to eq "https://www.gravatar.com/avatar/c22a77c9e0ddf78ca6a11155b5183140?s=80&d=identicon"4223 is expected to eq 7774224 is expected to be a kind of Hash4225 is expected to be empty4226 is expected to be zero4227 contains project data4228 contains deprecated repository data4229 does not raise an error when given nil commits4230 .build_bulk4231 is expected to eq {:action=>:created, :ref_count=>2, :ref_type=>:branch}4232Ci::Ref4233 is expected to belong to project required: false4234 state machine transitions4235 unlock artifacts transition4236 pipline is locked4237 initial_state: :unknown, action: :succeed!, count: 14238 when transitioning states4239 calls unlock artifacts service4240 initial_state: :unknown, action: :do_fail!, count: 04241 when transitioning states4242 calls unlock artifacts service4243 initial_state: :success, action: :succeed!, count: 14244 when transitioning states4245 calls unlock artifacts service4246 initial_state: :success, action: :do_fail!, count: 04247 when transitioning states4248 calls unlock artifacts service4249 initial_state: :failed, action: :succeed!, count: 14250 when transitioning states4251 calls unlock artifacts service4252 initial_state: :failed, action: :do_fail!, count: 04253 when transitioning states4254 calls unlock artifacts service4255 initial_state: :fixed, action: :succeed!, count: 14256 when transitioning states4257 calls unlock artifacts service4258 initial_state: :fixed, action: :do_fail!, count: 04259 when transitioning states4260 calls unlock artifacts service4261 initial_state: :broken, action: :succeed!, count: 14262 when transitioning states4263 calls unlock artifacts service4264 initial_state: :broken, action: :do_fail!, count: 04265 when transitioning states4266 calls unlock artifacts service4267 initial_state: :still_failing, action: :succeed, count: 14268 when transitioning states4269 calls unlock artifacts service4270 initial_state: :still_failing, action: :do_fail, count: 04271 when transitioning states4272 calls unlock artifacts service4273 pipeline is unlocked4274 does not call unlock artifacts service4275 .ensure_for4276 when pipeline is a branch pipeline4277 behaves like ensures ci_ref4278 when ci_ref already exists4279 returns an existing ci_ref4280 when ci_ref does not exist yet4281 creates a new ci_ref4282 when pipeline is a tag pipeline4283 behaves like ensures ci_ref4284 when ci_ref already exists4285 returns an existing ci_ref4286 when ci_ref does not exist yet4287 creates a new ci_ref4288 when pipeline is a detached merge request pipeline4289 behaves like ensures ci_ref4290 when ci_ref already exists4291 returns an existing ci_ref4292 when ci_ref does not exist yet4293 creates a new ci_ref4294 #last_finished_pipeline_id4295 when there are no finished pipelines4296 returns nil4297 when there are finished pipelines4298 returns the pipeline id4299 when the pipeline a dangling pipeline4300 returns nil4301 #update_status_by!4302 when pipeline status is success or failed4303 pipeline_status: :success, current_ref_status: :unknown, expected_ref_status: :success4304 transitions the status via state machine4305 pipeline_status: :success, current_ref_status: :success, expected_ref_status: :success4306 transitions the status via state machine4307 pipeline_status: :success, current_ref_status: :failed, expected_ref_status: :fixed4308 transitions the status via state machine4309 pipeline_status: :success, current_ref_status: :fixed, expected_ref_status: :success4310 transitions the status via state machine4311 pipeline_status: :success, current_ref_status: :broken, expected_ref_status: :fixed4312 transitions the status via state machine4313 pipeline_status: :success, current_ref_status: :still_failing, expected_ref_status: :fixed4314 transitions the status via state machine4315 pipeline_status: :failed, current_ref_status: :unknown, expected_ref_status: :failed4316 transitions the status via state machine4317 pipeline_status: :failed, current_ref_status: :success, expected_ref_status: :broken4318 transitions the status via state machine4319 pipeline_status: :failed, current_ref_status: :failed, expected_ref_status: :still_failing4320 transitions the status via state machine4321 pipeline_status: :failed, current_ref_status: :fixed, expected_ref_status: :broken4322 transitions the status via state machine4323 pipeline_status: :failed, current_ref_status: :broken, expected_ref_status: :still_failing4324 transitions the status via state machine4325 pipeline_status: :failed, current_ref_status: :still_failing, expected_ref_status: :still_failing4326 transitions the status via state machine4327 when pipeline status is success4328 updates the status4329 when pipeline status is canceled4330 is expected to eq :unknown4331 when pipeline status is skipped4332 behaves like no-op4333 does nothing and returns nil4334 when pipeline status is not complete4335 behaves like no-op4336 does nothing and returns nil4337 when pipeline is not the latest pipeline4338 behaves like no-op4339 does nothing and returns nil4340 when pipeline does not belong to the ci_ref4341 behaves like no-op4342 does nothing and returns nil4343 loose foreign key on ci_refs.project_id4344 behaves like cleanup by a loose foreign key4345 cleans up (delete or nullify) the model4346DraftNote4347 validations4348 behaves like a valid diff positionable note4349 for commit4350 position diff refs matches commit diff refs4351 is valid4352 position diff refs does not match commit diff refs4353 is invalid4354 commit does not exist4355 is invalid4356 original_position=4357 doesn't accept non-hash JSON passed as a string4358 does accept a position hash as a string4359 doesn't accept an array4360 does accept a hash4361 position=4362 doesn't accept non-hash JSON passed as a string4363 does accept a position hash as a string4364 doesn't accept an array4365 does accept a hash4366 change_position=4367 doesn't accept non-hash JSON passed as a string4368 does accept a position hash as a string4369 doesn't accept an array4370 does accept a hash4371 schema validation4372 position_attrs: {:old_path=>"2RTFTDDdVFnqEV3XMuu3yur1bwFpUNjfVUgIOWj2ZV8Sw9SGIgffkiA0ULBMdMpbfLKcHHzxDU7mxB17Up0mcPbPMEq6QNnJgieB2l568eZ4kd58LjtoQXiwbX2zTZmkPTXWKWmcKKGfX8MfVEsWvW2l3Ul1dMvLBANz059HIBX7AmyuDLQJFY79ga3KiB2UF5GB1mLDp8rsjR3Le6w0ZFX7EtykbrGSA7bMUm4qpGtowcgbhLSZtkPdEUqNf6HnZBXpce3RFOyFRgLM9wFMWRuivlyY1PuQvLFxM3mlRJjIi0OldhZYfp3JUrZCtBfWK7Xl4JZNNTZdipGQ9ORUiGMmdoRFZlKZsRf1pjzzXoXrlsA2k70ERYsmIbOSktk6Z2hmSUAJqIHnAVklDDVRlCKocnJxnJymyHOmr0gfV4sdZAJbKoSa3HNPOmk4BBzLpBHbZTrpyDF5YD8tAjw697Igi3H0QDZVjQO2AAwbcJuDghmdFjeoLGzlpTQSWq5qOlNl0N1pK4TNtIh7GZro57msWTMmrGOcRk6dGvQf8ZWfhM2KSJnAyFI4VrBYZeZkjlLCVVoeqlW6f90RhUyfKWC1gUtNYeTUwYIunAujNb0TQ9c24cFYDeuJhJswQ3RwcLnRFLGIAMEv6PTKlmPQOShwaFHw5SRzSYMUSkuSXa5sqnxziAlobIZWNAocOdAyNqAQ4M4PLZevh4qfOiR3dbYfIjZMoUhc5VzbXq9uxOyCojwkU6VP5VGhyci9tRSOrkXsFy8TUqrfdzNO2SVVMPtT22abNAPcc3WO9JcNB4kwmJMB2XU5clxcDAmRgCNj7dcHtfNcOuaPy6107MLH25jKqKmznevhmu1ALD1Rj9dhurR591qLt5oQvroiq9tbMULUyK4JQmCCdhFMN35VWlmS2lI5wftvJEXIp627RC8svWsl9ZwhSUoLHuFlI6nyFR3hoRl2DEAPRitmzEEXmBZ9HwKo5HeQs8UVfCr5o"}4373 is expected to be invalid4374 position_attrs: {:new_path=>"tjhq9rSnjeGeHHIE8KbsXiz2WvyNLF5MdMAUoFUs1yCo6NM0RNEMiRqP0O719Vs82fgdx3i1UQiYJRyNxVajXagFZnBiXjHr6O9NouKDY6QWbOnw3bd4IsTCbHDZvgwYgiF3sniiULPMbPmWPDNTtuU6YfloEqMi4xMOtCyR5ISfauDsFtI7YfNPLpwzgb3pvjeGVWuOWEFy4TA6ojwkeOwdK5IntsBPbmxzUaITS05qp4FDJ6DJWKO1E23cLeSKDkdLstnXXlxvuF0CsFpok2QruOaYQVQMwGlLaLRZpG4k0S7KtkkOyZnZzyiHgEEvMSoZgX8MbElK9mZsey7EUEv0J0iTb7Yra5OmovRlLL3tz73BqI2w0soyZe82yd5wvhNZLTBALJh07Fqaywti007tRNdXdpwcVk1Kpsb34K8iTXaUaTSEdVGAtGb80PX2g1cIKuZstzPTtwWugnP4prqtmBBQnu7DIoV1GTMgNnUyMdxSAFNG6DJOm0N2Z8xyssLyESYUY1hfaUFxFqesOVeV8oUf0IIWrJkDvF7VU32C1uDlVOrEZLIqTZ4EB8BWgdSsOhx35PS3PxCv0PM0YL6ukFViCy5hfW8gx3PACQuIizzbUmBqmAXIMELA4ONHyRWecPADbtlpuaJ2qZLgyziYZfBYpWXnAPq97903jMRVlZQUlKU2n5dfTYGXP3LWCRCSB3g03sOxnX4qv5YYHb7SShfzNUBcCALmMBdtBwP87ySJTWQOckOArU5MKMFHUjWyRv33UCrkjVy1K9qqK3rYFsc29H14vNHvQCs94qcyEhO9fa35gYD9F78SwsWCS1yuzbDnKviw3xCEsbMURkoUuviY5252rC7jMzzwZpFeAMmOlVqp6eyXy71zLcllk8aog8U2DWtvJC67BlqPYmUYorT0YTcIL5Tx0QU2fVMJyJPhtl50maHLZRvKzUYUcm1hkW1XktdPV7ANvAdVWqSsXinTfwCJZqTOIHu2q"}4375 is expected to be invalid4376 position_attrs: {:old_line=>"foo"}4377 is expected to be invalid4378 position_attrs: {:new_line=>"foo"}4379 is expected to be invalid4380 position_attrs: {:line_range=>{:foo=>"bar"}}4381 is expected to be invalid4382 position_attrs: {:line_range=>{:line_code=>"lYFlCiYD3eJyasmmkynyMMEu4TnbPYhxMYfnTgAGrQhchlNpX7F5wOf9xdev0fVsxztHf0ZVkTIGDFUXUpUKK3NuHtZxcLywsSYFd"}}4383 is expected to be invalid4384 position_attrs: {:line_range=>{:type=>"9Ewtn69AjreULfTqYxZfmGBg0gFz8L6LZXWzaU23sN2biMznHS4c08atB0EK1cjpy9bUu39lZ073zbpYiJ4252bu71GFeWiHXs18T"}}4385 is expected to be invalid4386 position_attrs: {:line_range=>{:old_line=>"foo"}}4387 is expected to be invalid4388 position_attrs: {:line_range=>{:new_line=>"foo"}}4389 is expected to be invalid4390 delegations4391 is expected to delegate #file_path to the #diff_file object, allowing #diff_file to return nil4392 is expected to delegate #file_hash to the #diff_file object, allowing #diff_file to return nil4393 is expected to delegate #file_identifier_hash to the #diff_file object, allowing #diff_file to return nil4394 #line_code4395 stored line_code4396 returns stored line_code4397 none stored line_code4398 returns found line_code4399 #diff_file4400 when diff_file exists4401 returns an unfolded diff_file4402 when diff_file does not exist4403 returns nil4404Groups::ImportExport::ImportService4405 #async_execute4406 when the job can be successfully scheduled4407 creates group import state4408 enqueues an import job4409 marks the group import as in progress4410 returns truthy4411 when the job cannot be scheduled4412 returns falsey4413 does not mark the group import as created4414 with group_import_ndjson feature flag disabled4415 with a json file4416/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4417 uses LegacyTreeRestorer to import the file4418/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4419 tracks the event4420 with a ndjson file4421/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4422 fails to import4423 with group_import_ndjson feature flag enabled4424 when importing a ndjson export4425 when user has correct permissions4426/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4427 imports group structure successfully4428/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4429 tracks the event4430/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4431 removes import file4432/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4433 removes tmp files4434/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4435 logs the import success4436 when user does not have correct permissions4437/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4438 logs the error and raises an exception4439/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4440 tracks the error4441 when there are errors with the import file4442/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4443 logs the error and raises an exception4444 when there are errors with the sub-relations4445/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4446 successfully imports the group4447/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4448 logs the import success4449 when importing a json export4450 when user has correct permissions4451/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4452 imports group structure successfully4453/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4454 tracks the event4455/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4456 removes import file4457/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4458 removes tmp files4459/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4460 logs the import success4461 when user does not have correct permissions4462/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4463 logs the error and raises an exception4464/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4465 tracks the error4466 when there are errors with the import file4467/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4468 logs the error and raises an exception4469 when there are errors with the sub-relations4470/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4471 successfully imports the group4472/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4473 logs the import success4474User TokenAuthenticatable4475 behaves like TokenAuthenticatable4476 dynamically defined methods4477 is expected to respond to #find_by_feed_token4478 is expected to respond to #ensure_feed_token4479 is expected to respond to #set_feed_token4480 is expected to respond to #reset_feed_token!4481 SensitiveSerializableHash4482 includes the token field in list of sensitive attributes prevented from serialization4483 ensures authentication token4484 is expected to be a kind of String4485ApplicationSetting TokenAuthenticatable4486 behaves like TokenAuthenticatable4487 dynamically defined methods4488 is expected to respond to #find_by_runners_registration_token4489 is expected to respond to #ensure_runners_registration_token4490 is expected to respond to #set_runners_registration_token4491 is expected to respond to #reset_runners_registration_token!4492 SensitiveSerializableHash4493 includes the token field in list of sensitive attributes prevented from serialization4494 generating new token4495 token is not generated yet4496 token field accessor4497 is expected not to be blank4498 ensure_runners_registration_token4499 is expected to be a kind of String4500 is expected not to be blank4501 does not persist token4502 ensure_runners_registration_token!4503 persists new token as an encrypted string4504 does not persist token in a clear text4505 token is generated4506 persists a new token4507 setting new token4508 is expected to eq "0123456789"4509 multiple token fields4510 is expected to respond to #ensure_runners_registration_token4511 is expected to respond to #ensure_error_tracking_access_token4512 is expected to respond to #ensure_yet_another_token4513 setting same token field multiple times4514 raises error4515PersonalAccessToken TokenAuthenticatable4516 .find_by_token4517 finds the token4518 #set_token4519 sets new token4520 #ensure_token4521 token_digest does not exist4522 behaves like changes personal access token4523 sets new token4524 token_digest already generated4525 behaves like does not change personal access token4526 sets new token4527 #ensure_token!4528 token_digest does not exist4529 behaves like changes personal access token4530 sets new token4531 token_digest already generated4532 behaves like does not change personal access token4533 sets new token4534 #reset_token!4535 token_digest does not exist4536 behaves like changes personal access token4537 sets new token4538 token_digest already generated4539 behaves like changes personal access token4540 sets new token4541Ci::Build TokenAuthenticatable4542 behaves like TokenAuthenticatable4543 dynamically defined methods4544 is expected to respond to #find_by_token4545 is expected to respond to #ensure_token4546 is expected to respond to #set_token4547 is expected to respond to #reset_token!4548 SensitiveSerializableHash4549 includes the token field in list of sensitive attributes prevented from serialization4550 generating new token4551 token is not generated yet4552 token field accessor4553 makes it possible to access token4554 ensure_token4555 is expected to be a kind of String4556 is expected not to be blank4557 does not persist token4558 ensure_token!4559 persists a new token4560 persists new token as an encrypted string4561 does not persist a token in a clear text4562 #reset_token!4563 persists a new token4564 setting a new token4565 returns the token4566 writes a new encrypted token4567 does not write a new cleartext token4568 #token_with_expiration4569 #expirable?4570 is expected to eq false4571Ci::Runner TokenAuthenticatable4572 #token_expired?4573 when runner has no token expiration4574 is expected to eq false4575 when runner token is not expired4576 is expected to eq false4577 when runner token is expired4578 is expected to eq true4579 #token_with_expiration4580 #token4581 is expected to eq "a1uGSVayQDqorc43jg_n"4582 #token_expires_at4583 is expected to eq 2022-11-14 12:54:17.731244172 +00004584 #expirable?4585 is expected to eq true4586 .find_by_token4587 when runner has no token expiration4588 is expected to eq #<Ci::Runner id: 1, token: nil, created_at: "2022-11-14 12:54:12.714057675 +0000", updated_at: "2022-..., executor_type: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], tag_list: nil>4589 when runner token is not expired4590 is expected to eq #<Ci::Runner id: 2, token: nil, created_at: "2022-11-14 12:54:12.726999222 +0000", updated_at: "2022-...ote: nil, token_expires_at: "2022-11-14 12:54:17.731244172 +0000", allowed_plans: [], tag_list: nil>4591 when runner token is expired4592 is expected to be nil4593Project TokenAuthenticatable4594 behaves like prefixed token rotation4595 ensure_runners_token4596 token is not set4597 generates a new token4598 token is set, but does not match the prefix4599 generates a new token4600 token is set and matches prefix4601 leaves the token unchanged4602 ensure_runners_token!4603 token is not set4604 generates a new token4605 token is set, but does not match the prefix4606 generates a new token4607 token is set and matches prefix4608 leaves the token unchanged4609Group TokenAuthenticatable4610 behaves like prefixed token rotation4611 ensure_runners_token4612 token is not set4613 generates a new token4614 token is set, but does not match the prefix4615 generates a new token4616 token is set and matches prefix4617 leaves the token unchanged4618 ensure_runners_token!4619 token is not set4620 generates a new token4621 token is set, but does not match the prefix4622 generates a new token4623 token is set and matches prefix4624 leaves the token unchanged4625Gitlab::UsageDataCounters::IssueActivityUniqueCounter4626 can return the count of actions per user deduplicated4627 for Issue title edit actions4628 behaves like daily tracked issuable snowplow and service ping events with project4629 behaves like a daily tracked issuable snowplow and service ping events for given event params4630 is expected to eq 24631 does not track edit actions if author is not present4632 emits snowplow event4633 with route_hll_to_snowplow_phase2 disabled4634 does not emit snowplow event4635 for Issue description edit actions4636 behaves like daily tracked issuable snowplow and service ping events with project4637 behaves like a daily tracked issuable snowplow and service ping events for given event params4638 is expected to eq 24639 does not track edit actions if author is not present4640 emits snowplow event4641 with route_hll_to_snowplow_phase2 disabled4642 does not emit snowplow event4643 for Issue assignee edit actions4644 behaves like daily tracked issuable snowplow and service ping events with project4645 behaves like a daily tracked issuable snowplow and service ping events for given event params4646 is expected to eq 24647 does not track edit actions if author is not present4648 emits snowplow event4649 with route_hll_to_snowplow_phase2 disabled4650 does not emit snowplow event4651 for Issue make confidential actions4652 behaves like daily tracked issuable snowplow and service ping events with project4653 behaves like a daily tracked issuable snowplow and service ping events for given event params4654 is expected to eq 24655 does not track edit actions if author is not present4656 emits snowplow event4657 with route_hll_to_snowplow_phase2 disabled4658 does not emit snowplow event4659 for Issue make visible actions4660 behaves like daily tracked issuable snowplow and service ping events with project4661 behaves like a daily tracked issuable snowplow and service ping events for given event params4662 is expected to eq 24663 does not track edit actions if author is not present4664 emits snowplow event4665 with route_hll_to_snowplow_phase2 disabled4666 does not emit snowplow event4667 for Issue created actions4668 behaves like daily tracked issuable snowplow and service ping events with project4669 behaves like a daily tracked issuable snowplow and service ping events for given event params4670 is expected to eq 24671 does not track edit actions if author is not present4672 emits snowplow event4673 with route_hll_to_snowplow_phase2 disabled4674 does not emit snowplow event4675 for Issue closed actions4676 behaves like daily tracked issuable snowplow and service ping events with project4677 behaves like a daily tracked issuable snowplow and service ping events for given event params4678 is expected to eq 24679 does not track edit actions if author is not present4680 emits snowplow event4681 with route_hll_to_snowplow_phase2 disabled4682 does not emit snowplow event4683 for Issue reopened actions4684 behaves like daily tracked issuable snowplow and service ping events with project4685 behaves like a daily tracked issuable snowplow and service ping events for given event params4686 is expected to eq 24687 does not track edit actions if author is not present4688 emits snowplow event4689 with route_hll_to_snowplow_phase2 disabled4690 does not emit snowplow event4691 for Issue label changed actions4692 behaves like daily tracked issuable snowplow and service ping events with project4693 behaves like a daily tracked issuable snowplow and service ping events for given event params4694 is expected to eq 24695 does not track edit actions if author is not present4696 emits snowplow event4697 with route_hll_to_snowplow_phase2 disabled4698 does not emit snowplow event4699 for Issue label milestone actions4700 behaves like daily tracked issuable snowplow and service ping events with project4701 behaves like a daily tracked issuable snowplow and service ping events for given event params4702 is expected to eq 24703 does not track edit actions if author is not present4704 emits snowplow event4705 with route_hll_to_snowplow_phase2 disabled4706 does not emit snowplow event4707 for Issue cross-referenced actions4708 behaves like daily tracked issuable snowplow and service ping events with project4709 behaves like a daily tracked issuable snowplow and service ping events for given event params4710 is expected to eq 24711 does not track edit actions if author is not present4712 emits snowplow event4713 with route_hll_to_snowplow_phase2 disabled4714 does not emit snowplow event4715 for Issue moved actions4716 behaves like daily tracked issuable snowplow and service ping events with project4717 behaves like a daily tracked issuable snowplow and service ping events for given event params4718 is expected to eq 24719 does not track edit actions if author is not present4720 emits snowplow event4721 with route_hll_to_snowplow_phase2 disabled4722 does not emit snowplow event4723 for Issue cloned actions4724 behaves like daily tracked issuable snowplow and service ping events with project4725 behaves like a daily tracked issuable snowplow and service ping events for given event params4726 is expected to eq 24727 does not track edit actions if author is not present4728 emits snowplow event4729 with route_hll_to_snowplow_phase2 disabled4730 does not emit snowplow event4731 for Issue relate actions4732 behaves like daily tracked issuable snowplow and service ping events with project4733 behaves like a daily tracked issuable snowplow and service ping events for given event params4734 is expected to eq 24735 does not track edit actions if author is not present4736 emits snowplow event4737 with route_hll_to_snowplow_phase2 disabled4738 does not emit snowplow event4739 for Issue unrelate actions4740 behaves like daily tracked issuable snowplow and service ping events with project4741 behaves like a daily tracked issuable snowplow and service ping events for given event params4742 is expected to eq 24743 does not track edit actions if author is not present4744 emits snowplow event4745 with route_hll_to_snowplow_phase2 disabled4746 does not emit snowplow event4747 for Issue marked as duplicate actions4748 behaves like daily tracked issuable snowplow and service ping events with project4749 behaves like a daily tracked issuable snowplow and service ping events for given event params4750 is expected to eq 24751 does not track edit actions if author is not present4752 emits snowplow event4753 with route_hll_to_snowplow_phase2 disabled4754 does not emit snowplow event4755 for Issue locked actions4756 behaves like daily tracked issuable snowplow and service ping events with project4757 behaves like a daily tracked issuable snowplow and service ping events for given event params4758 is expected to eq 24759 does not track edit actions if author is not present4760 emits snowplow event4761 with route_hll_to_snowplow_phase2 disabled4762 does not emit snowplow event4763 for Issue unlocked actions4764 behaves like daily tracked issuable snowplow and service ping events with project4765 behaves like a daily tracked issuable snowplow and service ping events for given event params4766 is expected to eq 24767 does not track edit actions if author is not present4768 emits snowplow event4769 with route_hll_to_snowplow_phase2 disabled4770 does not emit snowplow event4771 for Issue designs added actions4772 behaves like daily tracked issuable snowplow and service ping events with project4773 behaves like a daily tracked issuable snowplow and service ping events for given event params4774 is expected to eq 24775 does not track edit actions if author is not present4776 emits snowplow event4777 with route_hll_to_snowplow_phase2 disabled4778 does not emit snowplow event4779 for Issue designs modified actions4780 behaves like daily tracked issuable snowplow and service ping events with project4781 behaves like a daily tracked issuable snowplow and service ping events for given event params4782 is expected to eq 24783 does not track edit actions if author is not present4784 emits snowplow event4785 with route_hll_to_snowplow_phase2 disabled4786 does not emit snowplow event4787 for Issue designs removed actions4788 behaves like daily tracked issuable snowplow and service ping events with project4789 behaves like a daily tracked issuable snowplow and service ping events for given event params4790 is expected to eq 24791 does not track edit actions if author is not present4792 emits snowplow event4793 with route_hll_to_snowplow_phase2 disabled4794 does not emit snowplow event4795 for Issue due date changed actions4796 behaves like daily tracked issuable snowplow and service ping events with project4797 behaves like a daily tracked issuable snowplow and service ping events for given event params4798 is expected to eq 24799 does not track edit actions if author is not present4800 emits snowplow event4801 with route_hll_to_snowplow_phase2 disabled4802 does not emit snowplow event4803 for Issue time estimate changed actions4804 behaves like daily tracked issuable snowplow and service ping events with project4805 behaves like a daily tracked issuable snowplow and service ping events for given event params4806 is expected to eq 24807 does not track edit actions if author is not present4808 emits snowplow event4809 with route_hll_to_snowplow_phase2 disabled4810 does not emit snowplow event4811 for Issue time spent changed actions4812 behaves like daily tracked issuable snowplow and service ping events with project4813 behaves like a daily tracked issuable snowplow and service ping events for given event params4814 is expected to eq 24815 does not track edit actions if author is not present4816 emits snowplow event4817 with route_hll_to_snowplow_phase2 disabled4818 does not emit snowplow event4819 for Issue comment added actions4820 behaves like daily tracked issuable snowplow and service ping events with project4821 behaves like a daily tracked issuable snowplow and service ping events for given event params4822 is expected to eq 24823 does not track edit actions if author is not present4824 emits snowplow event4825 with route_hll_to_snowplow_phase2 disabled4826 does not emit snowplow event4827 for Issue comment edited actions4828 behaves like daily tracked issuable snowplow and service ping events with project4829 behaves like a daily tracked issuable snowplow and service ping events for given event params4830 is expected to eq 24831 does not track edit actions if author is not present4832 emits snowplow event4833 with route_hll_to_snowplow_phase2 disabled4834 does not emit snowplow event4835 for Issue comment removed actions4836 behaves like daily tracked issuable snowplow and service ping events with project4837 behaves like a daily tracked issuable snowplow and service ping events for given event params4838 is expected to eq 24839 does not track edit actions if author is not present4840 emits snowplow event4841 with route_hll_to_snowplow_phase2 disabled4842 does not emit snowplow event4843CommitRange4844 raises ArgumentError when given an invalid range string4845 modules4846 is expected to includes the Referable module4847 #initialize4848 does not modify strings in-place4849 #to_s4850 is correct for three-dot syntax4851 is correct for two-dot syntax4852 #to_reference4853 returns a String reference to the object4854 returns a String reference to the object4855 supports a cross-project reference4856 #reference_link_text4857 returns a String reference to the object4858 returns a String reference to the object4859 supports a cross-project reference4860 #to_param4861 includes the correct keys4862 includes the correct values for a three-dot range4863 includes the correct values for a two-dot range4864 #exclude_start?4865 is false for three-dot ranges4866 is true for two-dot ranges4867 #valid_commits?4868 with a valid repo4869 is false when `sha_from` is invalid4870 is false when `sha_to` is invalid4871 is true when both `sha_from` and `sha_to` are valid4872 without a valid repo4873 returns false4874Backup::Manager4875 #run_create_task4876 calls the named task4877 disabled4878 informs the user4879 skipped4880 informs the user4881 task group skipped4882 informs the user4883 #run_restore_task4884 calls the named task4885 disabled4886 informs the user4887 pre_restore_warning4888 displays and waits for the user4889 does not continue when the user quits4890 post_restore_warning4891 displays and waits for the user4892 does not continue when the user quits4893 #create4894 creates a backup tar4895 when BACKUP is set4896 uses the given value as tar file name4897 tar fails4898 logs a failure4899 when SKIP env is set4900 executes tar4901 when the destination is optional4902 executes tar4903 many backup files4904 when keep_time is zero4905 removes no files4906 prints a skipped message4907 when no valid file is found4908 removes no files4909 prints a done message4910 when there are no files older than keep_time4911 removes no files4912 prints a done message4913 when keep_time is set to remove files4914 removes matching files with a human-readable versioned timestamp4915 removes matching files with a human-readable versioned timestamp with tagged EE4916 removes matching files with a human-readable non-versioned timestamp4917 removes matching files without a human-readable timestamp4918 does not remove files that are not old enough4919 does not remove non-matching files4920 prints a done message4921 when removing a file fails4922 removes the remaining expected files4923 sets the correct removed count4924 prints the error from file that could not be removed4925 cloud storage4926 skipped upload4927 informs the user4928 target path4929 uses the tar filename by default4930 adds the DIRECTORY environment variable if present4931 with AWS with server side encryption4932 with SSE-S3 without using storage_options4933 sets encryption attributes4934 with SSE-C (customer-provided keys) options4935 sets encryption attributes4936 with SSE-KMS options4937 sets encryption attributes4938 with Google provider4939 does not attempt to set ACL4940 with AzureRM provider4941 loads the provider4942 tar skipped4943 creates a non-tarred backup4944 incremental4945 when there are no backup files in the directory4946 fails the operation and prints an error4947 when there are two backup files in the directory and BACKUP variable is not set4948 prints the list of available backups4949 fails the operation and prints an error4950 when BACKUP variable is set to a non-existing file4951 fails the operation and prints an error4952 when BACKUP variable is set to a correct file4953 unpacks and packs the backup4954 untar fails4955 logs a failure4956 tar fails4957 logs a failure4958 on version mismatch4959 stops the process4960 when PREVIOUS_BACKUP variable is set to a non-existing file4961 fails the operation and prints an error4962 when PREVIOUS_BACKUP variable is set to a correct file4963 unpacks and packs the backup4964 untar fails4965 logs a failure4966 tar fails4967 logs a failure4968 on version mismatch4969 stops the process4970 when there is a non-tarred backup in the directory4971 updates the non-tarred backup4972 on version mismatch4973 stops the process4974 #restore4975 when there are no backup files in the directory4976 fails the operation and prints an error4977 when there are two backup files in the directory and BACKUP variable is not set4978 prints the list of available backups4979 fails the operation and prints an error4980 when BACKUP variable is set to a non-existing file4981 fails the operation and prints an error4982 when BACKUP variable is set to a correct file4983 unpacks the file4984 tar fails4985 logs a failure4986 on version mismatch4987 stops the process4988 when there is a non-tarred backup in the directory4989 selects the non-tarred backup to restore from4990 on version mismatch4991 stops the process4992Integrations::Prometheus4993 behaves like Integrations::BaseMonitoring4994 default values4995 is expected to eq :monitoring4996 redirects4997 does not follow redirects4998 Validations4999 when manual_configuration is enabled5000 validates presence of api_url5001 when manual configuration is disabled5002 does not validate presence of api_url5003 local connections allowed5004 does not validate presence of api_url5005 when the api_url domain points to localhost or local network5006 cannot query5007 can query when local requests are allowed5008 with self-monitoring project and internal Prometheus5009 allows self-monitoring project to connect to internal Prometheus5010 does not allow self-monitoring project to connect to other local URLs5011 #test5012 success5013 reads the discovery endpoint5014 failure5015 fails to read the discovery endpoint5016 when configuration is not valid5017 returns failure message5018 #prometheus_client5019 manual configuration is enabled5020 calls valid?5021 manual configuration is disabled5022 no client provided5023 when local requests are allowed5024 allows local requests5025 when local requests are blocked5026 blocks local requests5027 with self-monitoring project and internal Prometheus URL5028 allows local requests5029 behind IAP5030 includes the authorization header5031 when passed with token_credential_uri5032 param_name: :token_credential_uri5033 does not make any unexpected HTTP requests5034 param_name: :tokencredentialuri5035 does not make any unexpected HTTP requests5036 param_name: :Token_credential_uri5037 does not make any unexpected HTTP requests5038 param_name: :tokenCredentialUri5039 does not make any unexpected HTTP requests5040 #prometheus_available?5041 clusters with enabled prometheus5042 cluster belongs to project5043 returns true5044 cluster belongs to projects group5045 returns true5046 avoids N+1 queries5047 cluster belongs to gitlab instance5048 returns true5049 clusters with prometheus disabled5050 returns false5051 clusters without prometheus5052 returns false5053 no clusters5054 returns false5055 #synchronize_service_state before_save callback5056 no clusters with prometheus are installed5057 when integration is inactive5058 activates integration when manual_configuration is enabled5059 keeps integration inactive when manual_configuration is disabled5060 when integration is active5061 keeps the integration active when manual_configuration is enabled5062 inactivates the integration when manual_configuration is disabled5063 with prometheus installed in the cluster5064 when integration is inactive5065 activates integration when manual_configuration is enabled5066 activates integration when manual_configuration is disabled5067 when integration is active5068 keeps integration active when manual_configuration is enabled5069 keeps integration active when manual_configuration is disabled5070 #track_events after_commit callback5071 enabling manual_configuration5072 tracks enable event5073 tracks disable event5074 #editable?5075 is editable5076 when cluster exists with prometheus enabled5077 remains editable5078Gitlab::Gpg::InvalidGpgSignatureUpdater5079 #run5080 gpg signature did have an associated gpg key which was removed later5081 assigns the gpg key to the signature when the missing gpg key is added5082 does not assign the gpg key when an unrelated gpg key is added5083 gpg signature did not have an associated gpg key5084 updates the signature to being valid when the missing gpg key is added5085 keeps the signature at being invalid when an unrelated gpg key is added5086 gpg signature did have an associated unverified gpg key5087 updates the signature to being valid when the user updates the email address5088 keeps the signature at being invalid when the changed email address is still unrelated5089 gpg signature did not have an associated gpg subkey5090 updates the signature to being valid when the missing gpg key is added5091MergeRequests::CreatePipelineService5092 #execute5093 creates a detached merge request pipeline5094 defaults to merge_request_event5095 when push options contain ci.skip5096 creates a skipped pipeline5097 with fork merge request5098 when actor has permission to create pipelines in target project5099 creates a pipeline in the target project5100 when the feature is disabled in CI/CD settings5101 creates a pipeline in the source project5102 when source branch is protected5103 when actor does not have permission to update the protected branch in target project5104 creates a pipeline in the source project5105 when actor has permission to update the protected branch in target project5106 creates a pipeline in the target project5107 when actor has permission to create pipelines in forked project5108 creates a pipeline in the source project5109 when actor does not have permission to create pipelines5110 responds with error5111 when service is called multiple times5112 creates a pipeline once5113 when allow_duplicate option is true5114 creates pipelines multiple times5115 when .gitlab-ci.yml does not use workflow:rules5116 without only: [merge_requests] keyword5117 does not create a pipeline5118 with rules that specify creation on a tag5119 does not create a pipeline5120 when workflow:rules are specified5121 when rules request creation on merge request5122 creates a detached merge request pipeline5123 with rules do specify creation on a tag5124 does not create a pipeline5125 when merge request has no commits5126 does not create a pipeline5127Projects::MoveAccessService5128 #execute5129 when both projects are in the same namespace5130 does not refresh project owner authorized projects5131 behaves like move the accesses5132 moves the accesses5133 rollbacks if an exception is raised5134 when projects are in different namespaces5135 refreshes both project owner authorized projects5136 behaves like move the accesses5137 moves the accesses5138 rollbacks if an exception is raised5139 when remove_remaining_elements is false5140 does not remove remaining memberships5141 does not remove remaining group links5142 does not remove remaining authorizations5143Snippets::DestroyService5144 #execute5145 when snippet is nil5146 returns a ServiceResponse error5147 when ProjectSnippet5148 when user is able to admin_project_snippet5149 behaves like a successful destroy5150 deletes the snippet5151 returns ServiceResponse success5152 behaves like deletes the snippet repository5153 removes the snippet repository5154 when the repository deletion service raises an error5155 behaves like an unsuccessful destroy5156 does not delete the snippet5157 returns ServiceResponse error5158 when a destroy error is raised5159 behaves like an unsuccessful destroy5160 does not delete the snippet5161 returns ServiceResponse error5162 when repository is nil5163 does not schedule anything and return success5164 project statistics5165 updates stats after deletion5166 schedules a namespace statistics update5167 when user is not able to admin_project_snippet5168 behaves like an unsuccessful destroy5169 does not delete the snippet5170 returns ServiceResponse error5171 when PersonalSnippet5172 when user is able to admin_personal_snippet5173 schedules a namespace statistics update5174 behaves like a successful destroy5175 deletes the snippet5176 returns ServiceResponse success5177 behaves like deletes the snippet repository5178 removes the snippet repository5179 when the repository deletion service raises an error5180 behaves like an unsuccessful destroy5181 does not delete the snippet5182 returns ServiceResponse error5183 when a destroy error is raised5184 behaves like an unsuccessful destroy5185 does not delete the snippet5186 returns ServiceResponse error5187 when repository is nil5188 does not schedule anything and return success5189 when user is not able to admin_personal_snippet5190 behaves like an unsuccessful destroy5191 does not delete the snippet5192 returns ServiceResponse error5193 when the repository does not exists5194 does not schedule anything and return success5195Gitlab::SidekiqMiddleware::DuplicateJobs::DuplicateJob5196 #schedule5197 behaves like scheduling with deduplication class5198 calls schedule on the strategy5199 when the deduplication depends on a FF5200 when the feature flag is enabled5201 behaves like scheduling with deduplication class5202DEPRECATION WARNING: Invalid Feature Flag my_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)5203 calls schedule on the strategy5204 when the feature flag is disabled5205 behaves like scheduling with deduplication class5206DEPRECATION WARNING: Invalid Feature Flag my_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)5207 calls schedule on the strategy5208 #perform5209 calls perform on the strategy5210 with multi-store feature flags turned on5211 use Gitlab::Redis::DuplicateJobs.with5212 behaves like with Redis cookies5213 #check!5214 when there was no job in the queue yet5215 is expected to eq "123"5216 adds the idempotency key to the jobs payload5217 when TTL option is not set5218 behaves like sets Redis keys with correct TTL5219 adds an idempotency key with correct ttl5220 when TTL option is set5221 behaves like sets Redis keys with correct TTL5222 adds an idempotency key with correct ttl5223 when there was already a job with same arguments in the same queue5224 is expected to eq "existing-jid"5225 does not change the existing key's TTL5226 sets the existing jid5227 #update_latest_wal_location!5228 stores a wal location to redis with an offset relative to existing wal location5229 UPDATE_WAL_COOKIE_SCRIPT5230 does not create the key5231 when the key exists5232 updates all connections5233 preserves the ttl5234 and low offsets5235 updates only some connections5236 #latest_wal_locations5237 when job was deduplicated and wal locations were already persisted5238 is expected to eq {"ci"=>"def", "main"=>"abc"}5239 when job is not deduplication and wal locations were not persisted5240 is expected to be empty5241 #delete!5242 when we didn't track the definition5243 is expected not to raise Exception5244 when the key exists in redis5245 when the idempotency key is not part of the job5246 recalculates the idempotency hash5247 behaves like deleting the duplicate job5248 behaves like deleting keys from redis5249 removes the cookie key from redis5250 when the idempotency key is part of the job5251 does not recalculate the idempotency hash5252 behaves like deleting the duplicate job5253 behaves like deleting keys from redis5254 removes the cookie key from redis5255 #set_deduplicated_flag!5256 when the job is reschedulable5257 sets the key in Redis5258 sets, gets and cleans up the deduplicated flag5259 when the job is not reschedulable5260 does not set the key in Redis5261 does not set the deduplicated flag5262 #duplicate?5263 raises an error if the check wasn't performed5264 returns false if the existing jid equals the job jid5265 returns true if the existing jid is different from the job jid5266 when both multi-store feature flags are off5267 use Sidekiq.redis5268 behaves like with Redis cookies5269 #check!5270 when there was no job in the queue yet5271 is expected to eq "123"5272 adds the idempotency key to the jobs payload5273 when TTL option is not set5274 behaves like sets Redis keys with correct TTL5275 adds an idempotency key with correct ttl5276 when TTL option is set5277 behaves like sets Redis keys with correct TTL5278 adds an idempotency key with correct ttl5279 when there was already a job with same arguments in the same queue5280 is expected to eq "existing-jid"5281 does not change the existing key's TTL5282 sets the existing jid5283 #update_latest_wal_location!5284 stores a wal location to redis with an offset relative to existing wal location5285 UPDATE_WAL_COOKIE_SCRIPT5286 does not create the key5287 when the key exists5288 updates all connections5289 preserves the ttl5290 and low offsets5291 updates only some connections5292 #latest_wal_locations5293 when job was deduplicated and wal locations were already persisted5294 is expected to eq {"ci"=>"def", "main"=>"abc"}5295 when job is not deduplication and wal locations were not persisted5296 is expected to be empty5297 #delete!5298 when we didn't track the definition5299 is expected not to raise Exception5300 when the key exists in redis5301 when the idempotency key is not part of the job5302 recalculates the idempotency hash5303 behaves like deleting the duplicate job5304 behaves like deleting keys from redis5305 removes the cookie key from redis5306 when the idempotency key is part of the job5307 does not recalculate the idempotency hash5308 behaves like deleting the duplicate job5309 behaves like deleting keys from redis5310 removes the cookie key from redis5311 #set_deduplicated_flag!5312 when the job is reschedulable5313 sets the key in Redis5314 sets, gets and cleans up the deduplicated flag5315 when the job is not reschedulable5316 does not set the key in Redis5317 does not set the deduplicated flag5318 #duplicate?5319 raises an error if the check wasn't performed5320 returns false if the existing jid equals the job jid5321 returns true if the existing jid is different from the job jid5322 #scheduled?5323 returns false for non-scheduled jobs5324 scheduled jobs5325 returns true5326 #reschedule5327 reschedules the current job5328 #should_reschedule?5329 when the job is reschedulable5330 is expected to eq false5331 with deduplicated flag5332 is expected to eq true5333 when the job is not reschedulable5334 is expected to eq false5335 with deduplicated flag5336 is expected to eq false5337 #scheduled_at5338 returns when the job is scheduled at5339 #options5340 returns worker options5341 #idempotent?5342 when worker class does not exist5343 returns false5344 when worker class does not respond to #idempotent?5345 returns false5346 when worker class is not idempotent5347 returns false5348 when worker class is idempotent5349 returns true5350 when worker class is utilizing load balancing capabilities5351 returns true5352API::Helpers::Packages::DependencyProxyHelpers5353 #redirect_registry_request5354 with maven packages5355 application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"5356 behaves like executing redirect5357 redirects to package registry5358 application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5359 behaves like executing fallback5360 redirects to package registry5361 application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"5362 behaves like executing fallback5363 redirects to package registry5364 application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5365 behaves like executing fallback5366 redirects to package registry5367 application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"5368 behaves like executing fallback5369 redirects to package registry5370 application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"5371 behaves like executing fallback5372 redirects to package registry5373 application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"5374 behaves like executing redirect5375 redirects to package registry5376 application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"5377 behaves like executing fallback5378 redirects to package registry5379 when no target is present5380 behaves like executing redirect5381 redirects to package registry5382 when maven_central_request_forwarding is disabled5383 application_setting: true, forward_to_registry: true5384 behaves like executing fallback5385 redirects to package registry5386 application_setting: true, forward_to_registry: false5387 behaves like executing fallback5388 redirects to package registry5389 application_setting: false, forward_to_registry: true5390 behaves like executing fallback5391 redirects to package registry5392 application_setting: false, forward_to_registry: false5393 behaves like executing fallback5394 redirects to package registry5395 with npm packages5396 application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"5397 behaves like executing redirect5398 redirects to package registry5399 application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5400 behaves like executing fallback5401 redirects to package registry5402 application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"5403 behaves like executing fallback5404 redirects to package registry5405 application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5406 behaves like executing fallback5407 redirects to package registry5408 application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"5409 behaves like executing fallback5410 redirects to package registry5411 application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"5412 behaves like executing fallback5413 redirects to package registry5414 application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"5415 behaves like executing redirect5416 redirects to package registry5417 application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"5418 behaves like executing fallback5419 redirects to package registry5420 when no target is present5421 behaves like executing redirect5422 redirects to package registry5423 when maven_central_request_forwarding is disabled5424 application_setting: true, forward_to_registry: true5425 behaves like executing fallback5426 redirects to package registry5427 application_setting: true, forward_to_registry: false5428 behaves like executing fallback5429 redirects to package registry5430 application_setting: false, forward_to_registry: true5431 behaves like executing fallback5432 redirects to package registry5433 application_setting: false, forward_to_registry: false5434 behaves like executing fallback5435 redirects to package registry5436 with pypi packages5437 application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"5438 behaves like executing redirect5439 redirects to package registry5440 application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5441 behaves like executing fallback5442 redirects to package registry5443 application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"5444 behaves like executing fallback5445 redirects to package registry5446 application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5447 behaves like executing fallback5448 redirects to package registry5449 application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"5450 behaves like executing fallback5451 redirects to package registry5452 application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"5453 behaves like executing fallback5454 redirects to package registry5455 application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"5456 behaves like executing redirect5457 redirects to package registry5458 application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"5459 behaves like executing fallback5460 redirects to package registry5461 when no target is present5462 behaves like executing redirect5463 redirects to package registry5464 when maven_central_request_forwarding is disabled5465 application_setting: true, forward_to_registry: true5466 behaves like executing fallback5467 redirects to package registry5468 application_setting: true, forward_to_registry: false5469 behaves like executing fallback5470 redirects to package registry5471 application_setting: false, forward_to_registry: true5472 behaves like executing fallback5473 redirects to package registry5474 application_setting: false, forward_to_registry: false5475 behaves like executing fallback5476 redirects to package registry5477 with non-forwardable package type5478 conan5479 raises an error5480 nuget5481 raises an error5482 composer5483 raises an error5484 generic5485 raises an error5486 golang5487 raises an error5488 debian5489 raises an error5490 rubygems5491 raises an error5492 helm5493 raises an error5494 terraform_module5495 raises an error5496 rpm5497 raises an error5498 #registry_url5499 package_type: :maven, expected_result: "https://repo.maven.apache.org/maven2/test/123", params: {:path=>"test", :file_name=>"123", :project=>nil}5500 is expected to eq "https://repo.maven.apache.org/maven2/test/123"5501 package_type: :npm, expected_result: "https://registry.npmjs.org/test", params: {:package_name=>"test"}5502 is expected to eq "https://registry.npmjs.org/test"5503 package_type: :pypi, expected_result: "https://pypi.org/simple/test/", params: {:package_name=>"test"}5504 is expected to eq "https://pypi.org/simple/test/"5505 with non-forwardable package type conan5506 raises an error5507 with non-forwardable package type nuget5508 raises an error5509 with non-forwardable package type composer5510 raises an error5511 with non-forwardable package type generic5512 raises an error5513 with non-forwardable package type golang5514 raises an error5515 with non-forwardable package type debian5516 raises an error5517 with non-forwardable package type rubygems5518 raises an error5519 with non-forwardable package type helm5520 raises an error5521 with non-forwardable package type terraform_module5522 raises an error5523 with non-forwardable package type rpm5524 raises an error5525WikiPages::UpdateService5526 behaves like WikiPages::UpdateService#execute5527 updates the wiki page5528 executes webhooks5529 counts edit events5530 the page is at the top level5531 adds a new wiki page activity event5532 the page is in a subsection5533 adds a new wiki page activity event5534 when the options are bad5535 does not count an edit event5536 does not record the activity5537 reports the error5538 #execute5539 when wiki create fails due to git error5540 catches the thrown error and returns a ServiceResponse error5541Gitlab::Sanitizers::Exif5542 #batch_clean5543 filters only jpg/tiff images by filename5544 with image uploads5545 processes all uploads if range ID is not set5546 processes only uploads in the selected range5547 processes only uploads for the selected uploader5548 processes only uploads created since specified date5549 pauses if sleep_time is set5550 #clean5551 no dry run5552 removes exif from the image5553 ignores image without exif5554 raises an error if the exiftool fails with an error5555 for files that do not have the correct MIME type5556 cleans only jpg/tiff images with the correct mime types5557 dry run5558 doesn't change the image5559 #clean_existing_path5560 no dry run5561 removes exif from the image5562 ignores image without exif5563 raises an error if the exiftool fails with an error5564 for files that do not have the correct MIME type from file5565 cleans only jpg/tiff images with the correct mime types5566 skip_unallowed_types is false5567 for files that do not have the correct MIME type from input content5568 raises an error if not jpg/tiff images with the correct mime types5569 for files that do not have the correct MIME type from input content5570 raises an error if not jpg/tiff images with the correct mime types5571 skip_unallowed_types is true5572 for files that do not have the correct MIME type from input content5573 cleans only jpg/tiff images with the correct mime types5574 for files that do not have the correct MIME type from input content5575 cleans only jpg/tiff images with the correct mime types5576 dry run5577 doesn't change the image5578 #extra_tags5579 returns a list of keys for exif file5580 returns an empty list for file with only whitelisted and ignored tags5581Mutations::MergeRequests::SetAssignees5582 when the user does not have permissions5583 #resolve5584 behaves like permission level for merge request mutation is correctly verified5585 when the user is not a project member5586 behaves like when the user does not have access to the resource5587 raises an error5588 even if assigned to the merge request5589 does not modify merge request5590 even if reviewer of the merge request5591 raises an error5592 even if author of the merge request5593 raises an error5594 when the user is a project member5595 with guest role5596 behaves like when the user does not have access to the resource5597 raises an error5598 even if assigned to the merge request5599 does not modify merge request5600 even if reviewer of the merge request5601 raises an error5602 even if author of the merge request5603 raises an error5604 with reporter role5605 behaves like when the user does not have access to the resource5606 raises an error5607 even if assigned to the merge request5608 does not modify merge request5609 even if reviewer of the merge request5610 raises an error5611 even if author of the merge request5612 raises an error5613 behaves like an assignable resource5614 #resolve5615 raises an error if the resource is not accessible to the user5616 does not change assignees if the resource is not accessible to the assignees5617 returns an operational error if the resource is not accessible to the assignees5618 when the user can update the resource5619 replaces the assignee5620 returns errors when resource could not be updated5621 when passing an empty assignee list5622 removes all assignees5623 when passing "append" as true5624 is a NO-OP in FOSS5625 when passing "remove" as true5626 removes named assignee5627 does not remove unnamed assignee5628Pages::MigrateFromLegacyStorageService5629 #execute_with_threads5630 does not try to migrate pages if pages are not deployed5631 when pages are marked as deployed5632 when pages directory does not exist5633 counts project as errored5634 when mark_projects_as_not_deployed is set5635 counts project as migrated5636 when pages directory exists on disk5637 migrates pages projects without deployments5638 when deployed already exists for the project5639 does not try to migrate project5640 when there is work for multiple threads5641 uses multiple threads5642 #execute_for_batch5643 does not try to migrate pages if pages are not deployed5644 only tries to migrate projects with passed ids5645 when pages are marked as deployed5646 when pages directory does not exist5647 counts project as errored5648 when mark_projects_as_not_deployed is set5649 counts project as migrated5650 when pages directory exists on disk5651 migrates pages projects without deployments5652 when deployed already exists for the project5653 does not try to migrate project5654Environments::EnvironmentsByDeploymentsFinder5655 #execute5656 tagged deployment5657 does not return environment when commit is not part of deployment5658 only calls Gitaly twice when multiple environments are present5659 branch deployment5660 returns environment when ref is set5661 does not environment when ref is different5662 does not return environment when commit is not part of deployment5663 returns environment when commit constraint is not set5664 sha deployment5665 returns environment5666 does not return environment when sha is different5667 commit deployment5668 returns environment5669 recently updated5670 when last deployment to environment is the most recent one5671 finds recently updated environment5672 when last deployment to environment is not the most recent5673 does not find environment5674 when there are two environments that deploy to the same branch5675 finds both environments5676Branches::DeleteMergedService5677 #execute5678 deletes a branch that was merged5679 keeps branch that is unmerged5680 keeps "master"5681 keeps protected branches5682 keeps wildcard protected branches5683 ignores protected tags5684 user without rights5685 cannot execute5686 open merge requests5687 does not delete branches from open merge requests5688 #async_execute5689 calls DeleteMergedBranchesWorker async5690Gitlab::Prometheus::Queries::AdditionalMetricsDeploymentQuery5691 queries using specific time5692 metrics query context5693 project has Kubernetes service5694 when user configured kubernetes from CI/CD > Clusters5695 query context contains kube_namespace5696 behaves like query context containing environment slug and filter5697 contains ci_environment_slug5698 contains environment filter5699 project without Kubernetes service5700 query context contains empty kube_namespace5701 behaves like query context containing environment slug and filter5702 contains ci_environment_slug5703 contains environment filter5704 with one group where two metrics is found5705 some queries return results5706 return group data only for queries with results5707 with two groups with one metric each5708 both queries return results5709 return group data both queries5710 one query returns result5711 return group data only for query with results5712BulkImports::Common::Pipelines::MembersPipeline5713 when importing to group5714 #run5715 creates memberships for existing users5716 #load5717 creates new membership5718 when user_id is current user id5719 does not create new membership5720 when data is nil5721 does not create new membership5722 when user membership already exists with the same access level5723 does not create new membership5724 when portable is in a parent group5725 when the same membership exists in parent group5726 does not create new membership5727 when membership with higher access level exists in parent group5728 creates new direct membership5729 when membership with lower access level exists in parent group5730 does not create new membership5731 when importing to project5732 #run5733 creates memberships for existing users5734 #load5735 creates new membership5736 when user_id is current user id5737 does not create new membership5738 when data is nil5739 does not create new membership5740 when user membership already exists with the same access level5741 does not create new membership5742 when portable is in a parent group5743 when the same membership exists in parent group5744 does not create new membership5745 when membership with higher access level exists in parent group5746 creates new direct membership5747 when membership with lower access level exists in parent group5748 does not create new membership5749Gitlab::Auth::Saml::User5750 #save5751 account exists on server5752 and should bind with SAML5753 adds the SAML identity to the existing user5754 external groups5755 are defined5756 marks the user as external5757 are defined but the user does not belong there5758 does not mark the user as external5759 user was external, now should not be5760 makes user internal5761 no account exists on server5762 external groups5763 are defined5764 marks the user as external5765 are defined but the user does not belong there5766 does not mark the user as external5767 with auto_link_ldap_user disabled (default)5768 with allow_single_sign_on enabled5769 creates a user from SAML5770 with allow_single_sign_on default (["saml"])5771 does not throw an error5772 with allow_single_sign_on disabled5773 throws an error5774 with auto_link_ldap_user enabled5775 and at least one LDAP provider is defined5776 and a corresponding LDAP person5777 and no account for the LDAP user5778 creates a user with dual LDAP and SAML identities5779 and LDAP user has an account already5780 adds the omniauth identity to the LDAP account5781 saves successfully on subsequent tries, when both identities are present5782 when uid is an uid5783 behaves like find LDAP person5784 adds the omniauth identity to the LDAP account5785 when uid is a dn5786 behaves like find LDAP person5787 adds the omniauth identity to the LDAP account5788 when uid is an email5789 behaves like find LDAP person5790 adds the omniauth identity to the LDAP account5791 user has SAML user, and wants to add their LDAP identity5792 adds the LDAP identity to the existing SAML user5793 when signup is disabled5794 creates the user5795 when user confirmation email is enabled5796 creates and confirms the user anyway5797 when the current minimum password length is different from the default minimum password length5798 creates the user5799 blocking5800 signup with SAML only5801 dont block on create5802 does not block the user5803 block on create5804 blocks user5805 sign-in5806 dont block on create5807 is expected not to be blocked5808 block on create5809 is expected not to be blocked5810 #find_user5811 raw info hash attributes empty5812 does not mark user as external5813 #bypass_two_factor?5814 with authn_contexts_worth_two_factors configured5815 returns true when authn_context is worth two factors5816 returns false when authn_context is not worth two factors5817 returns false when authn_context is blank5818 without auth_contexts_worth_two_factors_configured5819 returns false when authn_context is present5820 returns false when authn_context is blank5821Groups::AutocompleteService5822 #labels_as_hash5823 returns labels from own group and ancestor groups5824 #issues5825 returns issues in group and subgroups5826 returns only confidential issues if confidential_only is true5827 #merge_requests5828 returns merge requests in group and subgroups5829 #milestones5830 returns milestones from group5831 returns milestones from groups and subgroups5832 returns only milestones that user can read5833 when group is public5834 returns milestones from groups and subgroups5835Gitlab5836 delegates root to GitlabEdition5837 delegates extensions to GitlabEdition5838 delegates ee? to GitlabEdition5839 delegates jh? to GitlabEdition5840 delegates ee to GitlabEdition5841 delegates jh to GitlabEdition5842 .revision5843 when a REVISION file exists5844 returns the actual Git revision5845 memoizes the revision5846 when no REVISION file exist5847 when the Git command succeeds5848 returns the actual Git revision5849 when the Git command fails5850 returns "Unknown"5851 .com?5852 is true when GITLAB_SIMULATE_SAAS is true and in development5853 is false when GITLAB_SIMULATE_SAAS is true and in test5854 when not simulating SaaS5855 is true when on https://gitlab.com5856 is true when on https://staging.gitlab.com5857 is true when on other gitlab subdomain5858 is true when on other gitlab subdomain with hyphen5859 is false when not on GitLab.com5860 .com5861 when on GitLab.com5862 is expected to equal true5863 when not on GitLab.com5864 is expected to be nil5865 .staging?5866 is false when on https://gitlab.com5867 is true when on https://staging.gitlab.com5868 is false when not on staging5869 .canary?5870 is true when CANARY env var is set to true5871 is false when CANARY env var is set to false5872 .com_and_canary?5873 is true when on .com and canary5874 is false when on .com but not on canary5875 .com_but_not_canary?5876 is false when on .com and canary5877 is true when on .com but not on canary5878 .org_or_com?5879 is true when on .com5880 is true when org5881 is false when not dev, org or com5882 .simulate_com?5883 when GITLAB_SIMULATE_SAAS is true5884 is false when test env5885 is true when dev env5886 is false when env is not dev5887 when GITLAB_SIMULATE_SAAS is false5888 is false when test env5889 is false when dev env5890 is false when env is not dev or test5891 .dev_or_test_env?5892 is true when test env5893 is true when dev env5894 is false when env is not dev or test5895 .http_proxy_env?5896 returns true when lower case https5897 returns true when upper case https5898 returns true when lower case http5899 returns true when upper case http5900 returns false when not set5901 .maintenance_mode?5902 returns true when maintenance mode is enabled5903 returns false when maintenance mode is disabled5904 returns false when maintenance mode column is not present5905gitlab:cleanup rake tasks5906 cleanup:project_uploads5907 with a fixable orphaned project upload file5908 with DRY_RUN disabled5909 moves the file to its proper location5910 logs action as done5911 with DRY_RUN explicitly enabled5912 behaves like does not move the file5913 does not move the file5914 logs action as able to be done5915 with DRY_RUN set to an unknown value5916 behaves like does not move the file5917 does not move the file5918 logs action as able to be done5919 with DRY_RUN unset5920 behaves like does not move the file5921 does not move the file5922 logs action as able to be done5923 gitlab:cleanup:orphan_job_artifact_files5924 runs the task without errors5925 with DRY_RUN set to false5926 passes dry_run correctly5927 gitlab:cleanup:orphan_lfs_file_references5928 runs the task without errors5929 with DRY_RUN set to false5930 passes dry_run correctly5931 gitlab:cleanup:orphan_lfs_files5932 runs RemoveUnreferencedLfsObjectsWorker5933 sessions5934 gitlab:cleanup:sessions:active_sessions_lookup_keys5935 runs the task without errors5936 removes expired active session lookup keys5937Gitlab::Ci::Config::Entry::Bridge5938 behaves like with inheritable CI config5939 does prepend an Inheritable mixin5940 all inheritable entries are covered5941 all entries do have inherit flag5942 for non-inheritable entries5943 entry_key: :stage5944 inheritable_class does not define entry5945 entry_key: :only5946 inheritable_class does not define entry5947 entry_key: :except5948 inheritable_class does not define entry5949 entry_key: :rules5950 inheritable_class does not define entry5951 entry_key: :variables5952 inheritable_class does not define entry5953 entry_key: :inherit5954 inheritable_class does not define entry5955 entry_key: :trigger5956 inheritable_class does not define entry5957 entry_key: :needs5958 inheritable_class does not define entry5959 entry_key: :parallel5960 inheritable_class does not define entry5961 .matching?5962 when config is not a hash5963 is expected to be falsey5964 when config is a regular job5965 is expected to be falsey5966 with rules5967 is expected to be falsey5968 when config is a bridge job5969 is expected to be truthy5970 with rules5971 is expected to be truthy5972 when config is a hidden job5973 is expected to be falsey5974 .new5975 when trigger config is a non-empty string5976 #valid?5977 is expected to be valid5978 #value5979 is returns a bridge job configuration5980 when bridge trigger is a hash5981 #valid?5982 is expected to be valid5983 #value5984 is returns a bridge job configuration hash5985 when bridge configuration contains trigger, when, extends, stage, only, except, and variables5986 is expected to be valid5987 when bridge configuration uses rules5988 is expected to be valid5989 when bridge configuration uses rules with job:when5990 is expected to be valid5991 when bridge configuration uses rules with only5992 is expected not to be valid5993 when bridge configuration uses rules with except5994 is expected not to be valid5995 when bridge has only job needs5996 #valid?5997 is expected not to be valid5998 when bridge config contains unknown keys5999 #valid?6000 is expected not to be valid6001 #errors6002 is returns an error about unknown config key6003 when bridge config contains build-specific attributes6004 #valid?6005 is expected not to be valid6006 #errors6007 returns an error message6008 when bridge config contains exit_codes6009 #valid?6010 is expected not to be valid6011 #errors6012 returns an error message6013 when bridge config contains parallel6014 when parallel config is a number6015 #valid?6016 is expected not to be valid6017 #errors6018 returns an error message6019 when parallel config is a matrix6020 #valid?6021 is expected to be valid6022 #value6023 is returns a bridge job configuration6024 when bridge trigger contains forward6025 #valid?6026 is expected to be valid6027 #value6028 returns a bridge job configuration hash6029 #manual_action?6030 when job is a manual action6031 is expected to be manual action6032 when job is not a manual action6033 is expected not to be manual action6034 #ignored?6035 when job is a manual action6036 when it is not specified if job is allowed to fail6037 is expected to be ignored6038 when job is allowed to fail6039 is expected to be ignored6040 when job is not allowed to fail6041 is expected not to be ignored6042 when job is not a manual action6043 when it is not specified if job is allowed to fail6044 is expected not to be ignored6045 when job is allowed to fail6046 is expected to be ignored6047 when job is not allowed to fail6048 is expected not to be ignored6049 #when6050 when bridge is a manual action6051 is expected to eq "manual"6052 when bridge has no `when` attribute6053 is expected to be nil6054 when the `when` keyword is not a string6055 when it is an array6056 returns error6057 when it is a boolean6058 returns error6059Issuable::CommonSystemNotesService6060 on issuable update6061 behaves like system note creation6062 creates 1 system note with the correct content6063 behaves like system note creation6064 creates 1 system note with the correct content6065 behaves like system note creation6066 creates 1 system note with the correct content6067 behaves like system note creation6068 creates 1 system note with the correct content6069 when new label is added6070 creates a resource label event6071 with merge requests Draft note6072 adding Draft note6073 behaves like system note creation6074 creates 1 system note with the correct content6075 and changing title6076 behaves like draft notes creation6077 creates Draft toggle and title change notes6078 removing Draft note6079 behaves like system note creation6080 creates 1 system note with the correct content6081 and changing title6082 behaves like draft notes creation6083 creates Draft toggle and title change notes6084 when changing dates6085 behaves like system note for issuable date changes6086 creates a system note for due_date set6087 creates a system note for start_date set6088 creates a note when both start and due date are changed6089 does not call SystemNoteService if no dates are changed6090 on issuable create6091 does not create system note for title and description6092 creates a resource label event for labels added6093 when changing milestones6094 does not create a system note for milestone set6095 creates a milestone change event6096 when changing dates6097 behaves like system note for issuable date changes6098 creates a system note for due_date set6099 creates a system note for start_date set6100 creates a note when both start and due date are changed6101 does not call SystemNoteService if no dates are changed6102Gitlab::LegacyGithubImport::Importer6103 when importing a Gitea project6104 behaves like Gitlab::LegacyGithubImport::Importer#execute6105 calls import methods6106 behaves like Gitlab::LegacyGithubImport::Importer#execute an error occurs6107 returns true6108 does not raise an error6109 stores error messages6110 behaves like Gitlab::LegacyGithubImport unit-testing6111 #clean_up_restored_branches6112 when pull request stills open6113 does not remove branches6114 when pull request is closed6115 does remove branches6116 #client6117 instantiates a Client6118Deployments::ArchiveInProjectService6119 #execute6120 when there are archivable deployments6121 returns result code6122 archives the deployment6123 when ref does not exist by some reason6124 does not raise an error6125 when there are no archivable deployments6126 returns result code6127ExpandVariables6128 #expand6129 table tests6130 behaves like common variable expansion6131 no expansion6132 is expected to eq "key"6133 simple expansion6134 is expected to eq "keyvalue"6135 simple with hash of variables6136 is expected to eq "keyvalue"6137 complex expansion6138 is expected to eq "keyvalue"6139 simple expansions6140 is expected to eq "keyvalueresult"6141 complex expansions6142 is expected to eq "keyvalueresult"6143 out-of-order expansion6144 is expected to eq "keyresultvalue"6145 out-of-order complex expansion6146 is expected to eq "keyresultvalue"6147 review-apps expansion6148 is expected to eq "review/feature/add-review-apps"6149 do not lazily access variables when no expansion6150 is expected to eq "key"6151 lazily access variables6152 is expected to eq "keyvalue"6153 simple expansion using Collection6154 is expected to eq "keyvalue"6155 with missing variables6156 missing variable6157 is expected to eq "key"6158 complex expansions with missing variable6159 is expected to eq "keyvalue"6160 complex expansions with missing variable for Windows6161 is expected to eq "keyvalue"6162 lazily inits variables6163 when expanding variable6164 calls block at most once6165 when no expansion is needed6166 does not call block6167 #expand_existing6168 table tests6169 behaves like common variable expansion6170 no expansion6171 is expected to eq "key"6172 simple expansion6173 is expected to eq "keyvalue"6174 simple with hash of variables6175 is expected to eq "keyvalue"6176 complex expansion6177 is expected to eq "keyvalue"6178 simple expansions6179 is expected to eq "keyvalueresult"6180 complex expansions6181 is expected to eq "keyvalueresult"6182 out-of-order expansion6183 is expected to eq "keyresultvalue"6184 out-of-order complex expansion6185 is expected to eq "keyresultvalue"6186 review-apps expansion6187 is expected to eq "review/feature/add-review-apps"6188 do not lazily access variables when no expansion6189 is expected to eq "key"6190 lazily access variables6191 is expected to eq "keyvalue"6192 simple expansion using Collection6193 is expected to eq "keyvalue"6194 with missing variables6195 missing variable6196 is expected to eq "key$variable"6197 complex expansions with missing variable6198 is expected to eq "keyvalue${variable2}"6199 complex expansions with missing variable for Windows6200 is expected to eq "keyvalue%variable2%"6201 lazily inits variables6202 when expanding variable6203 calls block at most once6204 when no expansion is needed6205 does not call block6206Sidebars::Projects::Menus::SettingsMenu6207 #render?6208 returns false when menu does not have any menu items6209 Menu items6210 General6211 behaves like access rights checks6212 is expected not to be nil6213 when the user does not have access6214 is expected to be nil6215 Integrations6216 behaves like access rights checks6217 is expected not to be nil6218 when the user does not have access6219 is expected to be nil6220 Webhooks6221 behaves like access rights checks6222 is expected not to be nil6223 when the user does not have access6224 is expected to be nil6225 Access Tokens6226 behaves like access rights checks6227 is expected not to be nil6228 when the user does not have access6229 is expected to be nil6230 Repository6231 behaves like access rights checks6232 is expected not to be nil6233 when the user does not have access6234 is expected to be nil6235 CI/CD6236 when project is archived6237 is expected to be nil6238 when project is not archived6239 is expected not to be nil6240 when the user does not have access6241 is expected to be nil6242 Monitor6243 when project is archived6244 is expected to be nil6245 when project is not archived6246 is expected not to be nil6247 is expected to eq "Monitor"6248 when the user does not have access6249 is expected to be nil6250 Pages6251 when pages are enabled6252 is expected not to be nil6253 when the user does not have access6254 is expected to be nil6255 when pages are not enabled6256 is expected to be nil6257 Merge requests6258 behaves like access rights checks6259 is expected not to be nil6260 when the user does not have access6261 is expected to be nil6262 Packages and registries6263 when container registry setting is disabled6264 is expected to be nil6265 when container registry setting is enabled6266 is expected not to be nil6267 when the user does not have access6268 is expected to be nil6269 when package registry setting is enabled6270 is expected not to be nil6271 when the user does not have access6272 is expected to be nil6273 Usage Quotas6274 is expected not to be nil6275 when the user does not have access6276 is expected to be nil6277ObjectStorage::Config6278 #credentials6279 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :provider=>"AWS", :region=>"us-east-1"}6280 #storage_options6281 is expected to eq {:server_side_encryption=>"AES256", :server_side_encryption_kms_key_id=>"arn:aws:12345"}6282 #enabled?6283 is expected to eq true6284 #bucket6285 is expected to eq "test-bucket"6286 #use_iam_profile6287 is expected to equal false6288 #use_path_style6289 is expected to equal false6290 with unconsolidated settings6291 consolidated_settings? returns false6292 is expected to equal false6293 with consolidated settings6294 consolidated_settings? returns true6295 is expected to equal true6296 with IAM profile configured6297 value: true, expected: true6298 coerces the value to a boolean6299 value: "true", expected: true6300 coerces the value to a boolean6301 value: "yes", expected: true6302 coerces the value to a boolean6303 value: false, expected: false6304 coerces the value to a boolean6305 value: "false", expected: false6306 coerces the value to a boolean6307 value: "no", expected: false6308 coerces the value to a boolean6309 value: nil, expected: false6310 coerces the value to a boolean6311 with path style configured6312 value: true, expected: true6313 coerces the value to a boolean6314 value: "true", expected: true6315 coerces the value to a boolean6316 value: "yes", expected: true6317 coerces the value to a boolean6318 value: false, expected: false6319 coerces the value to a boolean6320 value: "false", expected: false6321 coerces the value to a boolean6322 value: "no", expected: false6323 coerces the value to a boolean6324 value: nil, expected: false6325 coerces the value to a boolean6326 with hostname style access6327 #use_path_style? returns false6328 with AWS credentials6329 is expected to eq "AWS"6330 is expected to equal true6331 is expected to equal false6332 with Google credentials6333 is expected to eq "Google"6334 is expected to equal false6335 is expected to equal true6336 is expected to eq {}6337 with SSE-KMS enabled6338 is expected to equal true6339 is expected to eq "AES256"6340 is expected to eq "arn:aws:12345"6341 is expected to contain exactly "x-amz-server-side-encryption" and "x-amz-server-side-encryption-aws-kms-key-id"6342 with only server side encryption enabled6343 is expected to equal true6344 is expected to eq "AES256"6345 is expected to be nil6346 is expected to eq {"x-amz-server-side-encryption"=>"AES256"}6347 without encryption enabled6348 is expected to equal false6349 is expected to be nil6350 is expected to be nil6351 is expected to eq {}6352 with object storage disabled6353 is expected to equal false6354PersonalSnippetPolicy6355 public snippet6356 no user6357 is expected to be disallowed :update_snippet and :admin_snippet6358 regular user6359 is expected to be disallowed :update_snippet and :admin_snippet6360 author6361 is expected to be allowed :update_snippet and :admin_snippet6362 behaves like admin access with admin mode6363 admin user6364 is expected to be allowed :update_snippet and :admin_snippet6365 internal snippet6366 no user6367 is expected to be disallowed :update_snippet and :admin_snippet6368 regular user6369 is expected to be disallowed :update_snippet and :admin_snippet6370 external user6371 is expected to be disallowed :update_snippet and :admin_snippet6372 snippet author6373 is expected to be allowed :update_snippet and :admin_snippet6374 behaves like admin access with admin mode6375 admin user6376 is expected to be allowed :update_snippet and :admin_snippet6377 private snippet6378 no user6379 is expected to be disallowed :update_snippet and :admin_snippet6380 regular user6381 is expected to be disallowed :update_snippet and :admin_snippet6382 external user6383 is expected to be disallowed :update_snippet and :admin_snippet6384 snippet author6385 is expected to be allowed :update_snippet and :admin_snippet6386 behaves like admin access with admin mode6387 admin user6388 is expected to be allowed :update_snippet and :admin_snippet6389Gitlab::Middleware::Multipart6390 #call6391 remote file mode6392 behaves like handling all upload parameters conditions6393 one root parameter6394 builds an UploadedFile6395 two root parameters6396 builds UploadedFiles6397 one nested parameter6398 builds an UploadedFile6399 two nested parameters6400 builds UploadedFiles6401 one deeply nested parameter6402 builds an UploadedFile6403 two deeply nested parameters6404 builds UploadedFiles6405 three parameters nested at different levels6406 builds UploadedFiles6407 and a path set6408 builds an UploadedFile6409 local file mode6410 behaves like handling all upload parameters conditions6411 one root parameter6412 builds an UploadedFile6413 two root parameters6414 builds UploadedFiles6415 one nested parameter6416 builds an UploadedFile6417 two nested parameters6418 builds UploadedFiles6419 one deeply nested parameter6420 builds an UploadedFile6421 two deeply nested parameters6422 builds UploadedFiles6423 three parameters nested at different levels6424 builds UploadedFiles6425 when file is6426 in allowed paths6427 builds an UploadedFile6428 not in allowed paths6429 returns an error6430 with dummy params in remote mode6431 with an invalid secret6432 is expected to raise JWT::VerificationError6433 with an invalid issuer6434 is expected to raise JWT::InvalidIssuerError6435 with invalid rewritten field key6436 [file]6437 is expected to raise RuntimeError with "invalid field: \"[file]\""6438 ;file6439 is expected to raise RuntimeError with "invalid field: \";file\""6440 file]6441 is expected to raise RuntimeError with "invalid field: \"file]\""6442 ;file]6443 is expected to raise RuntimeError with "invalid field: \";file]\""6444 file]]6445 is expected to raise RuntimeError with "invalid field: \"file]]\""6446 file;;6447 is expected to raise RuntimeError with "invalid field: \"file;;\""6448 with an invalid upload key6449 behaves like rejecting the invalid key6450 raises an error6451 behaves like rejecting the invalid key6452 raises an error6453 behaves like rejecting the invalid key6454 raises an error6455 behaves like rejecting the invalid key6456 raises an error6457 behaves like rejecting the invalid key6458 raises an error6459 behaves like rejecting the invalid key6460 raises an error6461 behaves like rejecting the invalid key6462 raises an error6463 with a modified JWT payload6464 raises an error6465 with a modified JWT sig6466 raises an error6467ServicePing::SubmitService6468 when usage ping is disabled6469 behaves like does not run6470 is expected not to receive post(*(any args)) 0 times6471 when usage ping is disabled from GitLab config file6472 behaves like does not run6473 is expected not to receive post(*(any args)) 0 times6474 when product_intelligence_enabled is false6475 behaves like does not run6476 is expected not to receive post(*(any args)) 0 times6477 when product_intelligence_enabled is true6478 submits a service ping payload without errors6479 when usage ping is enabled6480 sends a POST request6481 and user requires usage stats consent6482 behaves like does not run6483 is expected not to receive post(*(any args)) 0 times6484 when conv_index data is passed6485 saves usage_data_id to version_usage_data_id_value6486 behaves like saves DevOps report data from the response6487 is expected to eq 31.376488 when only usage_data_id is passed in response6489 does not save DevOps report data6490 saves usage_data_id to version_usage_data_id_value6491 when version app usage_data_id is invalid6492 raises an exception6493 when DevOps report data is passed6494 behaves like saves DevOps report data from the response6495 is expected to eq 31.376496 with saving raw_usage_data6497 creates a raw_usage_data record6498 saves the correct payload6499 and usage ping response has unsuccessful status6500 raises an exception6501 and usage data is empty string6502 behaves like does not send a blank usage ping payload6503 is expected to raise ServicePing::SubmitService::SubmissionError6504 and usage data is nil6505 behaves like does not send a blank usage ping payload6506 is expected to raise ServicePing::SubmitService::SubmissionError6507 if version app response fails6508 raises SubmissionError6509 when skip_db_write passed to service6510 does not save RawUsageData6511 does not call DevOpsReport service6512 metadata reporting6513 submits metadata6514BulkImports::Projects::Pipelines::DesignBundlePipeline6515 #run6516 imports design repository into destination project and removes tmpdir6517 #extract6518 downloads & extracts design bundle filepath6519 #load6520 creates design repository from bundle6521 when lfs is disabled6522 returns6523 when file does not exist6524 returns6525 when path is directory6526 returns6527 when path is symlink6528 returns6529 when path is not under tmpdir6530 returns6531 when path is being traversed6532 raises an error6533 #after_run6534 removes tmpdir6535 when tmpdir does not exist6536 does not attempt to remove tmpdir6537Ci::FreezePeriodStatus6538 single freeze period6539 behaves like outside freeze period6540 is not frozen6541 behaves like within freeze period6542 is frozen6543 behaves like within freeze period6544 is frozen6545 behaves like outside freeze period6546 is not frozen6547 multiple freeze periods6548 behaves like outside freeze period6549 is not frozen6550 behaves like within freeze period6551 is frozen6552 behaves like within freeze period6553 is frozen6554 behaves like within freeze period6555 is frozen6556 behaves like within freeze period6557 is frozen6558 behaves like within freeze period6559 is frozen6560 behaves like outside freeze period6561 is not frozen6562 when period overlaps with itself6563 behaves like within freeze period6564 is frozen6565 behaves like outside freeze period6566 is not frozen6567Gitlab::ImportExport::SnippetRepoRestorer6568 when the snippet does not have a bundle file path6569 behaves like no bundle file present6570 creates the repository from the database content6571 does not call snippet update statistics service6572 when the repository creation fails6573 returns false6574 when the snippet bundle path is not present6575 behaves like no bundle file present6576 creates the repository from the database content6577 does not call snippet update statistics service6578 when the repository creation fails6579 returns false6580 when the snippet repository bundle exists6581 refreshes snippet statistics6582 when it is valid6583 creates the repository from the bundle6584 sets same shard in snippet repository as in the repository storage6585 when it is invalid6586 returns false and deletes the repository from disk and the database6587MergeRequests::UpdateAssigneesService6588 execute6589 when the parameters are valid6590 does not update the assignees if they do not have access6591 is more efficient than using the full update-service6592 when using sentinel values6593 when using assignee_ids6594 behaves like removing all assignees6595 removes all assignees6596 enqueues the correct background work6597 when using assignee_id6598 behaves like removing all assignees6599 removes all assignees6600 enqueues the correct background work6601 when the assignee_ids parameter is the empty list6602 behaves like removing all assignees6603 removes all assignees6604 enqueues the correct background work6605 behaves like it updates and enqueues the job6606 correctly updates the MR and enqueues the job6607Gitlab::Ci::Config::External::File::Project6608 #matching?6609 when a file and project is specified6610 returns true6611 with only file is specified6612 returns false6613 with only project is specified6614 returns false6615 with a missing local key6616 returns false6617 #valid?6618 when a valid path is used6619 is expected to be truthy6620 when user does not have permission to access file6621 returns false6622 when a valid path with custom ref is used6623 is expected to be truthy6624 when an empty file is used6625 returns false6626 when non-existing ref is used6627 returns false6628 when non-existing file is requested6629 returns false6630 when file is not a yaml file6631 returns false6632 when non-existing project is used with a masked variable6633 returns false with masked project name6634 when a project contained in an array is used with a masked variable6635 does not raise an error6636 #expand_context6637 inherits user, and target project and sha6638 #metadata6639 is expected to eq {:blob=>"http://localhost/namespace589/project1137/-/blob/b83d6e391c22777fca1ed3012fce84f633d7fed0/fi...ost/namespace589/project1137/-/raw/b83d6e391c22777fca1ed3012fce84f633d7fed0/file.yml", :type=>:file}6640 when project name and ref include masked variables6641 is expected to eq {:blob=>nil, :context_project=>"namespace588/project1136", :context_sha=>"12345", :extra=>{:project=>...xxxxxxxxxxxxxx", :ref=>"xxxxxxxxxxxxxxxxxxxxxxxx"}, :location=>"/file.yml", :raw=>nil, :type=>:file}6642Types::BaseEnum6643 adds a formatted `deprecated_reason` to the subject6644 appends to the description if given6645 does not append to the description if it is absent6646 adds information about the replacement if provided6647 supports named reasons: renamed6648 supports named reasons: alpha6649 supports :alpha6650 does not allow :alpha and :deprecated together6651 .from_rails_enum6652 contructs the correct values6653 .declarative_enum6654 #graphql_name6655 when the use_name is `true`6656 changes the graphql_name6657 when the use_name is `false`6658 does not change the graphql_name6659 #description6660 when the use_description is `true`6661 changes the description6662 when the use_description is `false`6663 does not change the description6664 #values6665 sets the values defined by the declarative enum6666 .enum6667 adds all enum values to #enum6668 is a HashWithIndefferentAccess6669 validations6670 raises an informative error if `deprecation_reason` is used6671 raises an error if a required property is missing6672 raises an error if milestone is not a String6673 visible?6674 defaults to true6675 when subject is deprecated6676 defaults to true6677 returns false if `remove_deprecated` is true in context6678Todos::Destroy::ProjectPrivateService6679 #execute6680 when a project set to private6681 removes issue todos for a user who is not a member6682 when project is not private6683 does not remove any todos6684Gitlab::AlertManagement::Payload::Generic6685 behaves like subclass has expected api6686 defines all public methods in the base class6687 #title6688 behaves like parsable alert payload field with fallback6689 without payload6690 is expected to eq "New: Alert"6691 with title6692 is expected to eq "some value"6693 #severity6694 when set6695 payload_severity: "critical", expected_severity: :critical6696 is expected to eq :critical6697 payload_severity: "high", expected_severity: :high6698 is expected to eq :high6699 payload_severity: "medium", expected_severity: :medium6700 is expected to eq :medium6701 payload_severity: "low", expected_severity: :low6702 is expected to eq :low6703 payload_severity: "info", expected_severity: :info6704 is expected to eq :info6705 payload_severity: "CRITICAL", expected_severity: :critical6706 is expected to eq :critical6707 payload_severity: "cRiTiCaL", expected_severity: :critical6708 is expected to eq :critical6709 payload_severity: "unmapped", expected_severity: nil6710 is expected to eq nil6711 payload_severity: 1, expected_severity: nil6712 is expected to eq nil6713 payload_severity: nil, expected_severity: nil6714 is expected to eq nil6715 without key6716 is expected to be nil6717 #monitoring_tool6718 behaves like parsable alert payload field6719 behaves like parsable alert payload field with fallback6720 without payload6721 is expected to eq nil6722 with monitoring_tool6723 is expected to eq "some value"6724 #service6725 behaves like parsable alert payload field6726 behaves like parsable alert payload field with fallback6727 without payload6728 is expected to eq nil6729 with service6730 is expected to eq "some value"6731 #hosts6732 behaves like parsable alert payload field6733 behaves like parsable alert payload field with fallback6734 without payload6735 is expected to eq nil6736 with hosts6737 is expected to eq "some value"6738 #starts_at6739 without start_time6740 is expected to eq 2022-11-14 12:59:00.000000000 +00006741 with start_time6742 is expected to eq 2022-11-14 12:49:00.000000000 +00006743 #runbook6744 behaves like parsable alert payload field6745 behaves like parsable alert payload field with fallback6746 without payload6747 is expected to eq nil6748 with runbook6749 is expected to eq "some value"6750 #gitlab_fingerprint6751 returns a fingerprint6752 #environment_name6753 behaves like parsable alert payload field6754 behaves like parsable alert payload field with fallback6755 without payload6756 is expected to eq nil6757 with gitlab_environment_name6758 is expected to eq "some value"6759 #description6760 behaves like parsable alert payload field6761 behaves like parsable alert payload field with fallback6762 without payload6763 is expected to eq nil6764 with description6765 is expected to eq "some value"6766 #ends_at6767 without end_time6768 is expected to be nil6769 with end_time6770 is expected to eq 2022-11-14 12:49:00.000000000 +00006771 #resolved?6772 without end time6773 is expected to eq false6774 with end time6775 is expected to eq true6776 #source6777 is expected to eq "Generic Alert Endpoint"6778 with alerting integration provided6779 is expected to eq "INTEGRATION"6780 with monitoring tool defined in the raw payload6781 is expected to eq "TOOL"6782Gitlab::Database::Count6783 .approximate_counts6784 fallbacks6785 gets results from first strategy6786 gets more results from second strategy if some counts are missing6787 does not get more results as soon as all counts are present6788 default strategies6789 with a read-only database6790 only uses the ExactCountStrategy6791 with a read-write database6792 uses the available strategies6793Banzai::ObjectRenderer6794 #render6795 with cache6796 renders and redacts an Array of objects6797 calls Banzai::ReferenceRedactor to perform redaction6798 retrieves field content using Banzai::Renderer.render_field6799 passes context to PostProcessPipeline6800 without cache6801 renders and redacts an Array of objects6802 calls Banzai::ReferenceRedactor to perform redaction6803 retrieves field content using Banzai::Renderer.cacheless_render_field6804ForkNamespaceEntity6805 renders json6806 includes id6807 includes name6808 includes description6809 includes markdown_description6810 includes visibility6811 includes full_name6812 includes created_at6813 includes updated_at6814 includes avatar_url6815 exposes path for forking project to the namespace6816 exposes forked_project_path when fork exists in namespace6817 exposes relative path to the namespace6818 exposes human readable permission level6819Uploads::DestroyService6820 #execute6821 when user is nil6822 behaves like upload not found6823 does not delete any upload6824 returns an error6825 when user cannot destroy upload6826 behaves like upload not found6827 does not delete any upload6828 returns an error6829 when user can destroy upload6830 deletes the upload6831 returns success response6832 when upload is not found6833 behaves like upload not found6834 does not delete any upload6835 returns an error6836 when upload secret is not found6837 behaves like upload not found6838 does not delete any upload6839 returns an error6840 when upload secret has invalid format6841 behaves like upload not found6842 does not delete any upload6843 returns an error6844 when unknown model is used6845 raises an error6846 when upload belongs to other model6847 behaves like upload not found6848 does not delete any upload6849 returns an error6850 when upload destroy fails6851 returns error6852Gitlab::Usage::Metrics::Instrumentations::DatabaseMetric6853 #value6854 calculates a correct result6855 does not cache the result of start and finish6856 with metric options specified with custom batch_size6857 calls metric with customized batch_size6858 calculates a correct result6859 with start and finish not called6860 calculates a correct result6861 with availability defined6862 responds to #available? properly6863 with availability not defined6864 responds to #available? properly6865 with cache_start_and_finish_as called6866 caches using the key name passed6867 with estimate_batch_distinct_count6868 with block passed to operation6869 calls the block passing HLL buckets as an argument6870 with custom timestamp column6871 calculates a correct result6872 with default timestamp column6873 calculates a correct result6874 with additional parameters passed via options6875 calculates a correct result6876 with unimplemented operation method used6877 raises an error6878Banzai::Pipeline::DescriptionPipeline6879 uses a limited allowlist6880 removes 'pre' elements6881 removes 'code' elements6882 removes 'img' elements6883 removes 'ol' elements6884 removes 'ul' elements6885 removes 'li' elements6886 still allows 'b' elements6887 still allows 'i' elements6888 still allows 'strong' elements6889 still allows 'em' elements6890 still allows 'a' elements6891 still allows 'ins' elements6892 still allows 'del' elements6893 still allows 'sup' elements6894 still allows 'sub' elements6895 still allows 'p' elements6896Sidebars::Projects::Panel6897 has a scope menu6898 Confluence menu item6899 when integration is present and active6900 confluence only6901 contains Confluence menu item6902 does not contain Wiki menu item6903 shimo only6904 contains Shimo menu item6905 confluence & shimo6906 contains Confluence menu item, not Shimo6907 when integration is not present6908 does not contain Confluence menu item6909 contains Wiki menu item6910Gitlab::AuthorizedKeys6911 #accessible?6912 authorized_keys file exists6913 can open file6914 is expected to be truthy6915 cannot open file6916 is expected to be falsey6917 authorized_keys file does not exist6918 is expected to be falsey6919 #create6920 authorized_keys file exists6921 is expected to be truthy6922 authorized_keys file does not exist6923 creates authorized_keys file6924 cannot create file6925 is expected to be falsey6926 #add_key6927 authorized_keys file exists6928 adds a line at the end of the file and strips trailing garbage6929 authorized_keys file does not exist6930 creates the file6931 #batch_add_keys6932 authorized_keys file exists6933 adds lines at the end of the file6934 invalid key6935 doesn't add keys6936 authorized_keys file does not exist6937 creates the file6938 #remove_key6939 authorized_keys file exists6940 removes the right line6941 authorized_keys file does not exist6942 is expected to be falsey6943 #clear6944 authorized_keys file exists6945 is expected to be truthy6946 authorized_keys file does not exist6947 is expected to be truthy6948 #list_key_ids6949 authorized_keys file exists6950 is expected to eq [1, 2, 3, 9000]6951 authorized_keys file does not exist6952 is expected to be empty6953Ci::RunScheduledBuildService6954 when user can update build6955 when build is scheduled6956 when scheduled_at is expired6957 can run the build6958 when build requires resource6959 transits to waiting for resource status6960 when scheduled_at is not expired6961 can not run the build6962 when build is not scheduled6963 can not run the build6964 when user can not update build6965 when build is scheduled6966 can not run the build6967Packages::Go::VersionFinder6968 #execute6969 for the root module6970 behaves like #execute6971 returns v1.0.1, v1.0.2, v1.0.3, v1.0.46972 for the package6973 behaves like #execute6974 returns nothing6975 for the submodule6976 behaves like #execute6977 returns v1.0.3, v1.0.46978 for the root module v26979 behaves like #execute6980 returns v2.0.06981 for the bad module6982 with gomod checking enabled6983 behaves like #execute6984 returns nothing6985 with gomod checking disabled6986 behaves like #execute6987 returns v1.0.46988 #find6989 with a ref6990 returns a ref version6991 with a semver tag6992 returns a version with a semver6993 with a semver tag string6994 returns a version with a semver6995 with a commit6996 retruns a commit version6997 with a pseudo-version6998 returns a pseudo version6999 with a string that is not a semantic version7000 returns nil7001 with a pseudo-version that does not reference a commit7002 behaves like #find with an invalid argument7003 raises an argument exception: invalid pseudo-version: unknown commit7004 with a pseudo-version with a short sha7005 behaves like #find with an invalid argument7006 raises an argument exception: invalid pseudo-version: revision is shorter than canonical7007 with a pseudo-version with an invalid timestamp7008 behaves like #find with an invalid argument7009 raises an argument exception: invalid pseudo-version: does not match version-control timestamp7010Gitlab::ObjectHierarchy7011 #base_and_ancestors7012 includes the base rows7013 includes all of the ancestors7014 can find ancestors upto a certain level7015 uses ancestors_base #initialize argument7016 does not allow the use of #update_all7017 hierarchy_order option7018 :asc7019 orders by child to parent7020 :desc7021 orders by parent to child7022 #base_and_descendants7023 includes the base rows7024 includes all the descendants7025 uses descendants_base #initialize argument7026 does not allow the use of #update_all7027 when with_depth is true7028 includes depth in the results7029 #descendants7030 includes only the descendants7031 #max_descendants_depth7032 when base relation is empty7033 is expected to be nil7034 when base has no children7035 is expected to eq 17036 when base has grandchildren7037 is expected to eq 37038 #ancestors7039 includes only the ancestors7040 can find ancestors upto a certain level7041 #all_objects7042 includes the base rows7043 includes the ancestors7044 includes the descendants7045 uses ancestors_base #initialize argument for ancestors7046 uses descendants_base #initialize argument for descendants7047 does not allow the use of #update_all7048DiffsMetadataEntity7049 as json7050 contain only required attributes7051 diff_files7052 serializes diff files metadata using DiffFileMetadataEntity7053 when merge_conflicts_in_diff is true7054 serializes diff files with conflicts7055Gitlab::Analytics::CycleAnalytics::StageEvents::CodeStageStart7056 needs connection with an issue via merge_requests_closing_issues table7057 behaves like value stream analytics event7058 is expected to be a kind of String7059 is expected to be a kind of Symbol7060 is expected to include ApplicationRecord(abstract)7061 is expected to respond to #timestamp_projection7062 is expected to respond to #html_description7063 is expected to be a kind of Array7064 #apply_query_customization7065 expects an ActiveRecord::Relation object as argument and returns a modified version of it7066 #hash_code7067 returns a hash that uniquely identifies an event7068 does not differ when the same object is built with the same params7069 behaves like LEFT JOIN-able value stream analytics event7070 can use the event as LEFT JOIN7071 when looking at the record with data7072 contains the timestamp expression7073 when looking at the record without data7074 returns nil for the timestamp expression7075Gitlab::ErrorTracking7076 .track_and_raise_for_dev_exception7077 when exceptions for dev should be raised7078 raises the exception7079 when exceptions for dev should not be raised7080 logs the exception with all attributes passed7081 calls Gitlab::ErrorTracking::Logger.error with formatted payload7082 .track_and_raise_exception7083 always raises the exception7084 calls Gitlab::ErrorTracking::Logger.error with formatted payload7085 .track_exception7086 calls Raven.capture_exception7087 calls Gitlab::ErrorTracking::Logger.error with formatted payload7088 with filterable parameters7089 filters parameters7090 the exception implements :sentry_extra_data7091 includes the extra data from the exception in the tracking information7092 the exception implements :sentry_extra_data, which returns nil7093 just includes the other extra info7094 event processors7095 custom GitLab context when using Raven.capture_exception directly7096 merges a default set of tags into the existing tags7097 merges the current user information into the existing user information7098 custom GitLab context when using Sentry.capture_exception directly7099 merges a default set of tags into the existing tags7100 merges the current user information into the existing user information7101 with sidekiq args7102 when the args does not have anything sensitive7103 ensures extra.sidekiq.args is a string7104 does not filter parameters when sending to Sentry7105 when the args has sensitive information7106 filters sensitive arguments before sending and logging7107 when the error is a GRPC error7108 when the GRPC error contains a debug_error_string value7109 sets the GRPC debug error string in the Sentry event and adds a custom fingerprint7110 when the GRPC error does not contain a debug_error_string value7111 does not do any processing on the event7112 when exception is excluded7113 does not report Gitlab::SidekiqMiddleware::RetryError exception to Sentry7114 does not report SubclassRetryError exception to Sentry7115 when processing invalid URI exceptions7116 when the error is a URI::InvalidURIError7117 filters the URI from the error message7118 when the error is a Addressable::URI::InvalidURIError7119 filters the URI from the error message7120 when request contains sensitive information7121 filters sensitive data7122Metrics::Dashboard::UpdateDashboardService7123 #execute7124 user does not have push right to repository7125 behaves like misconfigured dashboard service response with stepable7126 returns an appropriate message and status code7127 with rights to push to the repository7128 path traversal attack attempt7129 with a yml extension7130 behaves like misconfigured dashboard service response with stepable7131 returns an appropriate message and status code7132 without a yml extension7133 behaves like misconfigured dashboard service response with stepable7134 returns an appropriate message and status code7135 valid parameters7136 behaves like valid dashboard update process7137 delegates commit creation to Files::UpdateService7138 selected branch already exists7139 behaves like misconfigured dashboard service response with stepable7140 returns an appropriate message and status code7141 Files::UpdateService success7142 returns success7143 when the merge request does not succeed7144 returns an appropriate message and status code7145 with escaped characters in file name7146 escapes the special characters7147 when pushing to the default branch7148 does not create a merge request7149 Files::UpdateService fails7150 returns error7151Packages::Debian::GroupDistributionKey7152 behaves like Debian Distribution Key7153 relationships7154 is expected to belong to distribution class_name => Packages::Debian::GroupDistribution required: false inverse_of => key7155 validations7156 #distribution7157 is expected to validate that :distribution cannot be empty/falsy7158 #private_key7159 is expected to validate that :private_key cannot be empty/falsy7160 is expected to allow :private_key to be ‹"-----BEGIN PGP PRIVATE KEY BLOCK-----\n..."›7161 is expected not to allow :private_key to be ‹"A"›, producing a custom validation error on failure7162 #passphrase7163 is expected to validate that :passphrase cannot be empty/falsy7164 is expected to allow :passphrase to be ‹"P@$$w0rd"›7165 is expected to allow :passphrase to be ‹"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"›7166 is expected not to allow :passphrase to be ‹"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"›7167 #public_key7168 is expected to validate that :public_key cannot be empty/falsy7169 is expected to allow :public_key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\n..."›7170 is expected not to allow :public_key to be ‹"A"›, producing a custom validation error on failure7171 #fingerprint7172 is expected to validate that :passphrase cannot be empty/falsy7173 is expected to allow :passphrase to be ‹"abc"›7174 is expected to allow :passphrase to be ‹"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"›7175 is expected not to allow :passphrase to be ‹"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"›7176admin/dashboard/index.html.haml7177 shows version of GitLab Workhorse7178 includes revision of GitLab for pre VERSION7179 shows the tag for GitLab version7180 does not include license breakdown7181 when show_version_check? is true7182 renders the version check badge7183 GitLab KAS7184 KAS enabled7185 includes KAS version7186 KAS disabled7187 does not include KAS version7188Gitlab::Prometheus::AdditionalMetricsParser7189 #load_groups_from_yaml7190 parsing sample yaml7191 parses to two metric groups with 2 and 1 metric respectively7192 provide group data7193 provides metrics data7194 provides query data7195 group required fields7196 behaves like required field7197 when metrics is nil7198 throws parsing error7199 when metrics are not specified7200 throws parsing error7201 behaves like required field7202 when name is nil7203 throws parsing error7204 when name are not specified7205 throws parsing error7206 behaves like required field7207 when priority is nil7208 throws parsing error7209 when priority are not specified7210 throws parsing error7211 metrics fields parsing7212 behaves like required field7213 when title is nil7214 throws parsing error7215 when title are not specified7216 throws parsing error7217 behaves like required field7218 when required metrics is nil7219 throws parsing error7220 when required metrics are not specified7221 throws parsing error7222 behaves like required field7223 when weight is nil7224 throws parsing error7225 when weight are not specified7226 throws parsing error7227 behaves like required field7228 when queries is nil7229 throws parsing error7230 when queries are not specified7231 throws parsing error7232Gitlab::Git::HookEnv7233 .set7234 with RequestStore disabled7235 does not store anything7236 with RequestStore enabled7237 whitelist some `GIT_*` variables and stores them using RequestStore7238 .all7239 with RequestStore enabled7240 returns an env hash7241 .to_env_hash7242 with RequestStore enabled7243 input: nil, output: nil7244 puts the right value in the hash7245 input: "foo", output: "foo"7246 puts the right value in the hash7247 input: [], output: ""7248 puts the right value in the hash7249 input: ["foo"], output: "foo"7250 puts the right value in the hash7251 input: ["foo", "bar"], output: "foo:bar"7252 puts the right value in the hash7253 thread-safety7254 with RequestStore enabled7255 is thread-safe7256FinderMethods7257 #find_by!7258 returns the project if the user has access7259 raises not found when the project is not found by id7260 raises not found when the project is not found by filter7261 raises not found the user does not have access7262 ignores ordering7263 #find7264 returns the project if the user has access7265 raises not found when the project is not found by id7266 raises not found when the project is not found by filter7267 raises not found the user does not have access7268 ignores ordering7269 #find_by7270 returns the project if the user has access7271 returns nil when the project is not found by id7272 returns nil when the project is not found by filter7273 returns nil when the user does not have access7274 ignores ordering7275Backup::Database7276 #restore7277 when not forced727817279 warns the user and waits7280 has a pre restore warning7281 with an empty .gz file728217283 returns successfully7284 with a corrupted .gz file7285gzip: stdin: not in gzip format728617287 raises a backup error7288 when the restore command prints errors7289must be owner of extension pg_trgm7290WARNING: no privileges could be revoked for public7291This is a test error7292 filters out noise from errors and has a post restore warning7293 with PostgreSQL settings defined in the environment7294{"PG_VERSION"=>"12", "PGUSER"=>"postgres", "PGHOST"=>"test.example.com", "PGPASSWORD"=>"donotchange"}7295 overrides default config values7296 when the source file is missing7297 main database raises an error about missing source file7298 ci database tolerates missing source file7299Ci::StatusHelper7300 #ci_icon_for_status7301 renders to correct svg on success7302 renders the correct svg on failure7303 #ci_text_for_status7304 when status is manual7305 changes the status to blocked7306 when status is success7307 changes the status to passed7308 when status is something else7309 returns status unchanged7310 #pipeline_status_cache_key7311 builds a cache key for pipeline status7312 #render_status_with_link7313 renders a passed status icon7314 has 'Pipeline' as the status type in the title7315 has the success status icon7316 when pipeline has commit path7317 links to commit7318 does not contain a span element7319 has 'Pipeline' as the status type in the title7320 has the correct status icon7321 when different type than pipeline is provided7322 has the provided type in the title7323 when tooltip_placement is provided7324 has the provided tooltip placement7325 when additional CSS classes are provided7326 has appended extra class to icon classes7327 when container is provided7328 has the provided container in data7329 when icon_size is provided7330 has the svg class to change size7331Mutations::CustomerRelations::Contacts::Create7332 is expected to require graphql authorizations :admin_crm_contact7333 #resolve7334 when the user does not have permission7335 raises an error7336 when the user has permission7337 creates contact with correct values7338 when crm_enabled is false7339 raises an error7340 when the params are invalid7341 returns the validation error7342 when attaching to an organization7343 when all ok7344 creates contact with correct values7345 when organization does not exist7346 returns the relevant error7347 when organzation belongs to a different group7348 returns the relevant error7349Gitlab::SlashCommands::IssueShow7350 #execute7351 the issue exists7352 returns the issue7353 when its reference is given7354 shows the issue7355 the issue does not exist7356 returns not found7357 .match7358 matches the iid7359 accepts a reference7360Gitlab::Database::LoadBalancing::Configuration7361 .for_model7362 when load balancing is not configured7363 uses the default settings7364 when load balancing is configured7365 uses the custom configuration settings7366 when the load balancing configuration uses strings as the keys7367 uses the custom configuration settings7368 #load_balancing_enabled?7369 returns false when running inside a Rake task7370 returns true when hosts are configured7371 returns true when a service discovery record is configured7372 returns false when no hosts are configured and service discovery is disabled7373 #service_discovery_enabled?7374 returns false when running inside a Rake task7375 returns true when a record is configured7376 returns false when no record is configured7377 #pool_size7378 when a custom pool size is used7379 always reads the value from the model configuration7380 when the pool size is nil7381 returns the default pool size7382 #db_config_name7383 returns connection name as symbol7384 #db_config7385 returns exactly db_config7386AuthorizedProjectUpdate::ProjectRecalculatePerUserService#execute7387 returns success7388 when there are no changes to be made7389 does not change authorizations7390 when there are changes to be made7391 when addition is required7392 adds a new authorization record for the specific user7393 does not add a new authorization record for the other user7394 adds a new authorization record with the correct access level for the specific user7395 when removal is required7396 removes the authorization record for the specific user7397 does not remove the authorization record for the other user7398 when an update in access level is required7399 updates the authorization of the specific user to the correct access level7400 does not update the authorization of the other user to the correct access level7401ReleaseSerializer7402 #represent7403 when a single object is being serialized7404 serializes the label object7405 does not expose git-sha as sensitive information7406 when multiple objects are being serialized7407 serializes the array of releases7408Deployments::CreateService7409 #execute7410 creates a deployment7411 does not change the status if no status is given7412 when the last deployment has the same parameters7413 does not create a new deployment7414 #deployment_attributes7415 only includes attributes that we want to persist7416Gitlab::HookData::ProjectBuilder7417 #build7418 data7419 on create7420 is expected to eq "project_create"7421 behaves like includes the required attributes7422 includes the required attributes7423 behaves like does not include `old_path_with_namespace` attribute7424 does not include `old_path_with_namespace` attribute7425 on destroy7426 is expected to eq "project_destroy"7427 behaves like includes the required attributes7428 includes the required attributes7429 behaves like does not include `old_path_with_namespace` attribute7430 does not include `old_path_with_namespace` attribute7431 on rename7432 is expected to eq "project_rename"7433 behaves like includes the required attributes7434 includes the required attributes7435 behaves like includes `old_path_with_namespace` attribute7436 includes `old_path_with_namespace` attribute7437 on transfer7438 is expected to eq "project_transfer"7439 behaves like includes the required attributes7440 includes the required attributes7441 behaves like includes `old_path_with_namespace` attribute7442 includes `old_path_with_namespace` attribute7443Gitlab::Ci::Parsers::Sbom::Validators::CyclonedxSchemaValidator7444 with minimally valid report7445 is expected to be valid7446 when report has components7447 with minimally valid components7448 is expected to be valid7449 when components have versions7450 is expected to be valid7451 when components are not valid7452 is expected not to be valid7453 outputs errors for each validation failure7454 when report has metadata7455 is expected to be valid7456 when metadata has properties7457 when properties are valid7458 is expected to be valid7459 when properties are invalid7460 is expected not to be valid7461 outputs errors for each validation failure7462Gitlab::Ci::Build::Policy::Variables7463 #satisfied_by?7464 is satisfied by at least one matching statement7465 is satisfied by a matching pipeline variable7466 is not satisfied by an overridden empty variable7467 is satisfied by a truthy pipeline expression7468 is not satisfied by a falsy pipeline expression7469 is satisfied by a truthy expression using undefined variable7470 is not satisfied by a falsy expression using undefined variable7471 allows to evaluate regular CI variables7472 does not persist neither pipeline nor build7473 when a bridge job is used7474 is satisfied by a matching expression for a bridge job7475 when using project ci variables in environment scope7476 is satisfied by scoped variable match7477 is not satisfied when matching against overridden variable7478Gitlab::Auth::OAuth::Provider7479 .enabled?7480 when OmniAuth is disabled7481 allows database auth7482 allows LDAP auth7483 does not allow other OmniAuth providers7484 when OmniAuth is enabled7485 allows database auth7486 allows LDAP auth7487 allows other OmniAuth providers7488 .config_for7489 for an LDAP provider7490 when the provider exists7491 returns the config7492 when the provider does not exist7493 returns nil7494 for an OmniAuth provider7495 when the provider exists7496 returns the config7497 merges defaults with the given configuration7498 when the provider does not exist7499 returns nil7500 for an OpenID Connect provider7501 when the provider exists7502 returns the config7503 .label_for7504 when configuration specifies a custom label7505 returns the custom label name7506 when configuration does not specify a custom label7507 when the name does not correspond to a label mapping7508 returns the titleized name7509 when the name corresponds to a label mapping7510 returns the mapped name7511Preloaders::GroupRootAncestorPreloader7512 when the preloader is used7513 when no additional preloads are provided7514 behaves like executes N matching DB queries7515 executes the specified root_ancestor queries7516 strong_memoizes the correct root_ancestor7517 when additional preloads are provided7518 behaves like executes N matching DB queries7519 executes the specified root_ancestor queries7520 strong_memoizes the correct root_ancestor7521 when the preloader is not used7522 behaves like executes N matching DB queries7523 executes the specified root_ancestor queries7524 strong_memoizes the correct root_ancestor7525Gitlab::Lograge::CustomOptions7526 .call7527 ignores some parameters7528 formats the parameters7529 adds the current time7530 adds the user id7531 adds the response length7532 adds Cloudflare headers7533 adds the metadata7534 with log_response_length disabled7535 does not add the response length7536 when metadata is missing7537 does not break7538 trusted payload7539 is expected to include {:remote_ip => "192.168.1.2", :user_id => "test", :ua => "Nyxt", :queue_duration_s => 0.2, :response_bytes => 1234, :etag_route => "/etag", :request_urgency => :default, :target_duration_s => 1, :cf_ray => "778ae30c4a06119e1a9f081956e5e880", :cf_request_id => "6dda7b388c2c03cff87d298093e3fed9"}7540 payload with rejected fields7541 is expected to include {:request_urgency => :high}7542 is expected not to include {:something => "random"}7543 is expected not to include {:username => nil}7544 when correlation_id is overridden7545 sets the overridden value7546 when feature flags are present7547 and :feature_flag_log_states is enabled7548 adds feature flag events7549 and :feature_flag_log_states is disabled7550 does not track or add feature flag events7551Environments::AutoStopWorker7552 stops the environment7553 executes the stop action7554 when user does not have a permission to play the stop action7555 raises an error7556 when the environment has already been stopped7557 does not execute the stop action7558 when there are no deployments and associted stop actions7559 stops the environment7560 when there are no corresponding environment record7561 ignores the invalid record7562scripts/changed-feature-flags7563 GetFeatureFlagsFromFiles7564 .extracted_flags7565 with definition files in the development directory7566 behaves like extract feature flags7567 returns feature flags on their own7568 returns feature flags and their state as enabled7569 returns feature flags and their state as disabled7570 does not return feature flags when there are mixed deleted and non-deleted definition files7571 with definition files in the ops directory7572 behaves like extract feature flags7573 returns feature flags on their own7574 returns feature flags and their state as enabled7575 returns feature flags and their state as disabled7576 does not return feature flags when there are mixed deleted and non-deleted definition files7577 with definition files in the experiment directory7578 ignores the files7579 with only deleted definition files7580 returns feature flags and their state as deleted7581 does not return feature flags when the desired state is enabled7582 does not return feature flags when the desired state is disabled7583Gitlab::JiraImport::ImportIssueWorker7584 modules7585 is expected to includes the ApplicationWorker module7586 is expected to includes the Gitlab::NotifyUponDeath module7587 is expected to includes the Gitlab::JiraImport::QueueOptions module7588 is expected to includes the Gitlab::Import::DatabaseHelpers module7589 #perform7590 when any exception raised while inserting to DB7591 record a failed to import issue7592 when record is successfully inserted7593 when import label does not exist7594 does not record import failure7595 when import label exists7596 does not record import failure7597 creates an issue with the correct attributes7598 when assignee_ids is nil7599 creates an issue without assignee7600 when assignee_ids is an empty array7601 creates an issue without assignee7602Ci::PipelineSchedulePolicy7603 rules7604 rules for protected ref7605 when no one can push or merge to the branch7606 does not include ability to play pipeline schedule7607 when developers can push to the branch7608 includes ability to update pipeline7609 when no one can create the tag7610 does not include ability to play pipeline schedule7611 when no one can create the tag but it is not a tag7612 includes ability to play pipeline schedule7613 rules for owner of schedule7614 includes abilities to do all operations on pipeline schedule7615 rules for a maintainer7616 allows for playing and destroying a pipeline schedule7617 does not allow for updating of an existing schedule7618 rules for non-owner of schedule7619 includes abilities to take ownership7620Gitlab::Metrics::Samplers::ThreadsSampler7621 behaves like metrics sampler7622 when sampling interval is passed explicitly7623 is expected to eq 427624 when sampling interval is passed through the environment7625 is expected to eq 427626 when no sampling interval is passed anywhere7627 uses the hardcoded default7628 #start7629 calls the sample method on the sampler thread7630 with warmup set to true7631 calls the sample method first on the caller thread7632 #safe_sample7633 calls #sample once7634 when sampling fails with error7635 recovers from errors7636 with logger7637 logs errors7638 #sample7639 sets the gauge for the concurrency total7640 thread counts7641 reports if any of the threads per group uses the db7642 thread names7643 thread_names: [nil], expected_names: ["unnamed"]7644 is expected to receive set({:thread_name=>"unnamed", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7645 thread_names: ["puma threadpool 1", "puma threadpool 001", "puma threadpool 002"], expected_names: ["puma threadpool"]7646 is expected to receive set({:thread_name=>"puma threadpool", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7647 thread_names: ["sidekiq_worker_thread"], expected_names: ["sidekiq_worker_thread"]7648 is expected to receive set({:thread_name=>"sidekiq_worker_thread", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7649 thread_names: ["some_sampler", "some_exporter"], expected_names: ["some_sampler", "some_exporter"]7650 is expected to receive set({:thread_name=>"some_exporter", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7651 thread_names: ["unknown", "thing"], expected_names: ["unrecognized"]7652 is expected to receive set({:thread_name=>"unrecognized", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7653Gitlab::Serverless::Service7654 exposes methods extracting data from the attributes hash7655 returns nil for missing attributes7656 #description7657 extracts the description in knative 7 format if available7658 extracts the description in knative 5/6 format if 7 is not available7659 #url7660 returns proxy URL if cluster has serverless domain7661 returns the URL from the knative 6/7 format7662 returns the URL from the knative 5 format7663CachingArrayResolver7664 #resolve7665 does not perform a union of a query with itself7666 force . resolve === to_a . query_for . query_input7667 there are more than MAX_UNION_SIZE queries7668 executes the queries in multiple batches7669 all queries return results7670 batches the queries7671 finds the correct values7672 one of the queries returns no results7673 finds the correct values7674 one of the queries has already been cached7675 avoids further queries7676 the resolver overrides item_found7677 receives item_found for each key the item mapped to7678 the max_page_size is lower than the total result size7679 respects the max_page_size, on a per subset basis7680 the field does not declare max_page_size7681 takes the page size from schema.default_max_page_size7682Gitlab::WebHooks::RateLimiter7683 #rate_limit!7684 when there is no plan limit7685 hook: project_hook7686 behaves like a hook that is never rate limited7687 is expected to eq false7688 hook: system_hook7689 behaves like a hook that is never rate limited7690 is expected to eq false7691 hook: integration_hook7692 behaves like a hook that is never rate limited7693 is expected to eq false7694 when there is a plan limit7695 hook: project_hook, limitless_hook_type: false7696 rate limits the hook, returning true when rate limited7697 hook: system_hook, limitless_hook_type: true7698 behaves like a hook that is never rate limited7699 is expected to eq false7700 hook: integration_hook, limitless_hook_type: true7701 behaves like a hook that is never rate limited7702 is expected to eq false7703 rate limit scope7704 rate limits all hooks from the same namespace7705 #rate_limited?7706 when no plan limit has been defined7707 hook: project_hook7708 is expected to eq false7709 hook: system_hook7710 is expected to eq false7711 hook: integration_hook7712 is expected to eq false7713 when there is a plan limit7714 when hook is not rate-limited7715 hook: project_hook7716 is expected to eq false7717 hook: system_hook7718 is expected to eq false7719 hook: integration_hook7720 is expected to eq false7721 when hook is rate-limited7722 hook: project_hook, limitless_hook_type: false7723 is expected to eq true7724 hook: system_hook, limitless_hook_type: true7725 is expected to eq false7726 hook: integration_hook, limitless_hook_type: true7727 is expected to eq false7728Gitlab::Auth::IpRateLimiter7729 #register_fail!7730 bans after 3 consecutive failures7731 with a whitelisted netmask7732 behaves like whitelisted IPs7733 does not ban after max retry limit7734 with a whitelisted IP7735 behaves like whitelisted IPs7736 does not ban after max retry limit7737 when IP is allow listed7738 behaves like skips the rate limiter7739 does not call Rack::Attack::Allow2Ban.reset!7740 does not call Rack::Attack::Allow2Ban.banned?7741 does not call Rack::Attack::Allow2Ban.filter7742 when rate limiter is disabled7743 behaves like skips the rate limiter7744 does not call Rack::Attack::Allow2Ban.reset!7745 does not call Rack::Attack::Allow2Ban.banned?7746 does not call Rack::Attack::Allow2Ban.filter7747 #trusted_ip?7748 when ip is in the trusted list7749 is expected to be truthy7750 when ip is not in the trusted list7751 is expected to be falsey7752NotificationsHelper7753 notification_icon7754 is expected to match "data-testid=\"notifications-off-icon\""7755 is expected to match "data-testid=\"notifications-off-icon\""7756 is expected to match "data-testid=\"notifications-icon\""7757 is expected to match "data-testid=\"at-icon\""7758 is expected to match "data-testid=\"earth-icon"7759 is expected to match "data-testid=\"eye-icon\""7760 is expected to equal ""7761 notification_title7762 is expected to match "Watch"7763 is expected to match "On mention"7764 is expected to match "Global"7765 #notification_icon_level7766 is expected to eq "owner_disabled"7767 is expected to eq "watch"7768 is expected to eq "participating"7769BulkImports::FileDecompressionService7770 #execute7771 decompresses specified file7772 when validate_import_decompressed_archive_size feature flag is enabled7773 performs decompressed file size validation7774 when validate_import_decompressed_archive_size feature flag is disabled7775 does not perform decompressed file size validation7776 when dir is not in tmpdir7777 raises an error7778 when path is being traversed7779 raises an error7780 when compressed file is a symlink7781 raises an error and removes the file7782 when decompressed file is a symlink7783 raises an error and removes the file7784MergeRequestUserEntity7785 #as_json7786 exposes needed attributes7787 when `status` is not preloaded7788 does not expose the availability attribute7789 when the user has not approved the merge-request7790 exposes that the user has not approved the MR7791 when the user has approved the merge-request7792 exposes that the user has approved the MR7793 when `status` is preloaded7794 exposes the availibility attribute7795 performance7796 is linear in the number of merge requests (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)7797Gitlab::Ci::Pipeline::Expression::Token7798 #value7799 returns raw token value7800 #lexeme7801 returns raw token lexeme7802 #build7803 delegates to lexeme after adding a value7804 allows passing only required arguments7805 #type7806 delegates type query to the lexeme7807 #to_lexeme7808 returns raw lexeme syntax component name7809Gitlab::Diff::FileCollection::Base7810 #overflow?7811 when it is not overflown7812 returns false7813 when it is overflown7814 returns true7815Gitlab::Ci::SecureFiles::Cer7816 # order random7817 when the supplied certificate can be parsed7818 #certificate_data7819 returns an OpenSSL::X509::Certificate object7820 #metadata7821 returns a hash with the expected keys7822 #id7823 returns the certificate serial number7824 #expires_at7825 returns the certificate expiration timestamp7826 #issuer7827 calls parse on X509Name7828 #subject7829 calls parse on X509Name7830 when the supplied certificate cannot be parsed7831 #certificate_data7832 assigns the error message and returns nil7833 #metadata7834 returns an empty hash7835 #expires_at7836 returns nil7837Every Sidekiq worker7838 does not use the default queue7839 uses the cronjob queue when the worker runs as a cronjob7840 has its queue in Gitlab::SidekiqConfig::QUEUE_CONFIG_PATHS7841 has its queue or namespace in config/sidekiq_queues.yml7842 has a value for loggable_arguments7843 feature category declarations7844 has a feature_category attribute7845 has a feature_category that maps to a value in feature_categories.yml7846 is (exclusively) memory-bound or high urgency, not both7847 has (exclusively) external dependencies or is high urgency, not both7848 retries7849 uses the default number of retries for new jobs7850 uses zero retries for cronjobs7851 uses specified numbers of retries for workers with exceptions encoded here7852Projects::ImportExport::RelationExportWorker7853 behaves like an idempotent worker7854 is labeled as idempotent7855 performs multiple times sequentially without raising an exception7856 #perform7857 when relation export has initial state queued7858 calls RelationExportService7859 when relation export does not have queued state7860 does not call RelationExportService7861Projects::ExportJobFinder7862 #execute7863 when queried for a project7864 scopes to the project7865 when queried by job id7866 filters records7867 when queried by status7868 filters records7869 when queried by invalid status7870 raises exception7871projects/settings/ci_cd/_autodevops_form7872 shows a warning message about Kubernetes cluster7873 when the project has an available kubernetes cluster7874 does not show a warning message about Kubernetes cluster7875 shows a warning message about base domain7876RuboCop::Cop::PutGroupRoutesUnderScope7877 # order random7878 does not register an offense for the root route7879 does not register an offense for the root route within scope7880 registers an offense when route is outside scope for `patch`7881 registers an offense when route is outside scope for `resource`7882 does not register an offense when resource is deep inside the scope7883 registers an offense when route is outside scope for `post`7884 registers an offense when route is outside scope for `get`7885 registers an offense when route is outside scope for `resources`7886 does not register an offense when resource inside the scope7887 registers an offense when route is outside scope for `put`7888 registers an offense when route is outside scope for `delete`7889Gitlab::JiraImport::IssuesImporter7890 #imported_items_cache_key7891 is expected to eq "jira-importer/already-imported/1252/issues"7892 behaves like raise exception if not implemented7893 is expected not to raise Exception7894 #execute7895 when no returned issues7896 does not schedule any import jobs7897 with results returned7898 when single page of results is returned7899 schedules 2 import jobs7900 when importing some issue raises an exception7901 schedules 2 import jobs7902 when duplicate results are returned7903 schedules 2 import jobs7904ErrorTracking::StacktraceBuilder7905 #stacktrace7906 with full error context7907 generates a correct stacktrace in expected format7908 when error context is missing7909 generates a stacktrace without context7910 when exception payload is a list7911 extracts a stracktrace7912 with empty payload7913 is expected to eq []7914 without exception field7915 is expected to eq []7916 without exception.values field7917 is expected to eq []7918 without any exception.values[].stacktrace fields7919 is expected to eq []7920 without any exception.values[].stacktrace.frame fields7921 is expected to eq []7922BulkImports::Groups::Pipelines::SubgroupEntitiesPipeline7923 #run7924 creates entities for the subgroups7925 #load7926 creates entities for the given data7927 pipeline parts7928 is expected to includes the BulkImports::Pipeline module7929 is expected to includes the BulkImports::Pipeline::Runner module7930 has extractors7931 has transformers7932Gitlab::GithubImport::Representation::ProtectedBranch7933 # order random7934 .from_api_response7935 behaves like a ProtectedBranch rule7936 returns an instance of ProtectedBranch7937 with ProtectedBranch7938 includes the protected branch ID (name) attribute7939 includes the protected branch allow_force_pushes attribute7940 includes the protected branch required_conversation_resolution attribute7941 includes the protected branch required_pull_request_reviews7942 includes the protected branch require_code_owner_reviews7943 .from_json_hash7944 behaves like a ProtectedBranch rule7945 returns an instance of ProtectedBranch7946 with ProtectedBranch7947 includes the protected branch ID (name) attribute7948 includes the protected branch allow_force_pushes attribute7949 includes the protected branch required_conversation_resolution attribute7950 includes the protected branch required_pull_request_reviews7951 includes the protected branch require_code_owner_reviews7952Packages::Pypi::SimpleIndexPresenter7953 #body7954 for project7955 behaves like pypi package presenter7956 version: ">=2.7", expected_version: ">=2.7"7957 contains links for all packages7958 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>"7959 contains links for all packages7960 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0"7961 contains links for all packages7962 for group7963 behaves like pypi package presenter7964 version: ">=2.7", expected_version: ">=2.7"7965 contains links for all packages7966 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>"7967 contains links for all packages7968 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0"7969 contains links for all packages7970 with package files pending destruction7971 is expected not to include "package_pending_destruction"7972LooseForeignKeys::BatchCleanerService7973-- create_table(:_test_loose_fk_parent_table)7974 -> 0.0054s7975-- create_table(:_test_loose_fk_child_table_1)7976 -> 0.0024s7977-- create_table(:_test_loose_fk_child_table_2)7978 -> 0.0021s7979-- execute("CREATE TRIGGER _test_loose_fk_parent_table_loose_fk_trigger\nAFTER DELETE ON _test_loose_fk_parent_table REFERENCING OLD TABLE AS old_table\nFOR EACH STATEMENT\nEXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();\n")7980 -> 0.0010s7981 when parent records are deleted7982 cleans up the child records7983 cleans up the pending parent DeletedRecord7984 records the DeletedRecord status updates7985 does not delete unrelated records7986 fair queueing7987 when the execution is over the limit7988 when the deleted record is under the maximum allowed cleanup attempts7989 updates the cleanup_attempts column7990 when the deleted record is above the maximum allowed cleanup attempts7991 reschedules the record7992 when over limit happens on the second cleanup call without skip locked7993 updates the cleanup_attempts column7994-- drop_table(:_test_loose_fk_parent_table)7995 -> 0.0030s7996-- drop_table(:_test_loose_fk_child_table_1)7997 -> 0.0015s7998-- drop_table(:_test_loose_fk_child_table_2)7999 -> 0.0014s8000Ci::UpdatePendingBuildService8001 #execute8002 validations8003 when model is invalid8004 raises an error8005 when params is invalid8006 raises an error8007 when model is a group with pending builds8008 updates all pending builds8009 when model is a project with pending builds8010 updates all pending builds8011Mutations::Labels::Create8012 is expected to require graphql authorizations :admin_label8013 when creating a project label8014 behaves like create labels mutation8015 #resolve8016 when the user does not have permission to create a label8017 raises an error8018 when the user can create a label8019 creates label with correct values8020 when creating a group label8021 behaves like create labels mutation8022 #resolve8023 when the user does not have permission to create a label8024 raises an error8025 when the user can create a label8026 creates label with correct values8027 #ready?8028 when passing both project_path and group_path8029 raises an argument error8030 when passing only project_path or group_path8031 does not raise an error8032PersonalAccessTokenPolicy8033 current_user is an administrator8034 not the owner of the token8035 is expected to be allowed :read_token8036 is expected to be allowed :revoke_token8037 owner of the token8038 is expected to be allowed :read_token8039 is expected to be allowed :revoke_token8040 current_user is not an administrator8041 not the owner of the token8042 is expected to be disallowed :read_token8043 is expected to be disallowed :revoke_token8044 owner of the token8045 is expected to be allowed :read_token8046 is expected to be allowed :revoke_token8047 subject of the impersonated token8048 is expected to be disallowed :read_token8049 is expected to be disallowed :revoke_token8050 current_user is a blocked administrator8051 owner of the token8052 is expected to be disallowed :read_token8053 is expected to be disallowed :revoke_token8054 not the owner of the token8055 is expected to be disallowed :read_token8056 is expected to be disallowed :revoke_token8057Mutations::Todos::MarkDone8058 is expected to require graphql authorizations :update_todo8059 #resolve8060 marks a single todo as done8061 handles a todo which is already done as expected8062 ignores requests for todos which do not belong to the current user8063Gitlab::GitPostReceive8064 #includes_branches?8065 with no branches8066 returns false8067 with branches8068 returns true8069 with malformed changes8070 returns false8071 #includes_tags?8072 with no tags8073 returns false8074 with tags8075 returns true8076 with malformed changes8077 returns false8078 #includes_default_branch?8079 with no default branch8080 returns false8081 with a project with no default branch8082 returns true8083 with default branch8084 returns true8085RuboCop::Cop::Migration::ScheduleAsync8086 # order random8087 outside of a migration8088 behaves like a disabled cop8089 does not register any offenses8090 in a migration8091 in an old migration8092 behaves like a disabled cop8093 does not register any offenses8094 that is recent8095 BackgroundMigrationWorker.perform_async8096 adds an offense when calling `BackgroundMigrationWorker.peform_async`8097 CiDatabaseWorker.perform_async8098 adds an offense when calling `CiDatabaseWorker.peform_async`8099 BackgroundMigrationWorker.perform_in8100 adds an offense8101 CiDatabaseWorker.perform_in8102 adds an offense8103 BackgroundMigrationWorker.bulk_perform_async8104 adds an offense8105 CiDatabaseWorker.bulk_perform_async8106 adds an offense8107 BackgroundMigrationWorker.bulk_perform_in8108 adds an offense8109 CiDatabaseWorker.bulk_perform_in8110 adds an offense8111WorkItems::Widgets::StartAndDueDate8112 .type8113 is expected to eq :start_and_due_date8114 #type8115 is expected to eq :start_and_due_date8116 #start_date8117 is expected to eq Mon, 14 Nov 20228118 #due_date8119 is expected to eq Mon, 21 Nov 20228120RuboCop::Cop::SafeParams8121 # order random8122 flags the merged params arg as an argument of url_for8123 flags the merged params as an argument of url_for8124 does not flag other argument of url_for8125 flags the params as an argument of url_for8126PagesWorker8127 calls UpdatePagesService8128AlertManagement::AlertPresenter8129 #issue_description8130 with an empty payload8131 is expected to eq "**Start time:** 14 November 2022, 1:01PM (UTC) \n**Severity:** critical \n**GitLab alert:** http://localhost/namespace728/project1276/-/alert_management/2/details\n"8132 with optional alert attributes8133 is expected to eq "**Start time:** 14 November 2022, 1:01PM (UTC) \n**Severity:** critical \n**full_query:** `metric ...s id. \n**GitLab alert:** http://localhost/namespace728/project1276/-/alert_management/3/details\n"8134 with incident markdown8135 is expected to eq "**Start time:** 14 November 2022, 1:01PM (UTC) \n**Severity:** critical \n**GitLab alert:** http:/.../localhost/namespace728/project1276/-/alert_management/2/details\n\n\n---\n\n**`markdown example`**"8136 with metrics_dashboard_url8137 is expected to eq "**Start time:** 14 November 2022, 1:01PM (UTC) \n**Severity:** critical \n**GitLab alert:** http:/...//localhost/namespace728/project1276/-/alert_management/2/details\n\n[](https://gitlab.com/metrics)"8138 #start_time8139 formats the start time of the alert8140 #details_url8141 returns the details URL8142 #details8143 renders the payload as inline hash8144Gitlab::UsageDataCounters::WebIdeCounter8145 commits counter8146 behaves like counter examples8147 increments counter and return the total count8148 merge requests counter8149 behaves like counter examples8150 increments counter and return the total count8151 views counter8152 behaves like counter examples8153 increments counter and return the total count8154 terminals counter8155 behaves like counter examples8156 increments counter and return the total count8157 pipelines counter8158 behaves like counter examples8159 increments counter and return the total count8160 previews counter8161 when web ide clientside preview is enabled8162 behaves like counter examples8163 increments counter and return the total count8164 when web ide clientside preview is not enabled8165 does not increment the counter8166 .totals8167 can report all totals8168User8169 types consistency checks8170 scopes & predicates8171 .humans8172 includes humans only8173 .bots8174 includes all bots8175 .without_bots8176 includes everyone except bots8177 .bots_without_project_bot8178 includes all bots except project_bot8179 .non_internal8180 includes all non_internal users8181 .without_ghosts8182 includes everyone except ghosts8183 .without_project_bot8184 includes everyone except project_bot8185 #bot?8186 is true for all bot user types and false for others8187 #human?8188 is true for humans only8189 #internal?8190 is true for all internal user types and false for others8191Gitlab::Analytics::UsageTrends::WorkersArgumentBuilder8192 when no measurement identifiers are given8193 returns empty array8194 when measurement identifiers are given8195 returns worker arguments8196 when bogus measurement identifiers are given8197 skips bogus measurement identifiers8198 when custom min and max queries are present8199 uses custom min/max for ids8200Ci::DestroySecureFileService8201 user is a maintainer8202 destroys the secure file8203 user is a developer8204 raises an exception8205DiffViewer::Image8206 .can_render?8207 returns false if both old and new blob are absent8208 returns true if the old blob is present8209 returns true if the new blob is present8210 returns true if both old and new blobs are present8211Gitlab::SidekiqQueue8212 #drop_jobs!8213 when there are no matching jobs8214 when the queue is not processed in time8215 returns a non-completion flag, the number of jobs deleted, and the remaining queue size8216 when the queue is processed in time8217 returns a completion flag, the number of jobs deleted, and the remaining queue size8218 when there are matching jobs8219 when the queue is not processed in time8220 returns a non-completion flag, the number of jobs deleted, and the remaining queue size8221 when the queue is processed in time8222 returns a completion flag, the number of jobs deleted, and the remaining queue size8223 when there are jobs matching the class name8224 when the queue is not processed in time8225 returns a non-completion flag, the number of jobs deleted, and the remaining queue size8226 when the queue is processed in time8227 returns a completion flag, the number of jobs deleted, and the remaining queue size8228 when there are no valid metadata keys passed8229 raises NoMetadataError8230 when the queue does not exist8231 raises InvalidQueueError8232Gitlab::LogTimestampFormatter8233 logs the timestamp in UTC and ISO8601.3 format8234admin/identities/index.html.haml8235 without identities8236 shows table headers8237 shows information text8238 with LDAP identities8239 shows exactly 5 columns8240 shows identity without provider ID or group8241 shows edit and delete identity buttons8242Gitlab::ImportExport::UploadsSaver8243 bundle a project Git repo8244 legacy storage8245 saves the uploads successfully8246 copies the uploads to the export path8247 hashed storage8248 saves the uploads successfully8249 copies the uploads to the export path8250Gitlab::Email::AttachmentUploader8251 #execute8252 uploads all attachments and returns their links8253 with a signed message8254 uploads all attachments except the signature8255 with a signed message with mixed protocol prefix8256 uploads all attachments except the signature8257 with a message with no content type8258 uploads all attachments except the signature8259RawUsageData8260 scopes8261 .for_current_reporting_cycle8262 returns nil where no records match filter criteria8263 with records matching filtering criteria8264 return records within reporting cycle time range ordered by creation time8265 validations8266 is expected to validate that :payload cannot be empty/falsy8267 is expected to validate that :recorded_at cannot be empty/falsy8268 uniqueness validation8269 is expected to validate that :recorded_at is case-sensitively unique8270 #update_version_metadata!8271 updates sent_at8272 updates version_usage_data_id_value8273DiffViewer::ServerSide8274 #render_error8275 when the diff file is stored externally8276 return :server_side_but_stored_externally8277 #render_error_reason8278 when the diff file is stored externally8279 returns error message if stored in LFS8280 returns error message if stored externally8281Gitlab::WebIde::Config8282 when config is valid8283 #to_hash8284 returns hash created from string8285 #valid?8286 is valid8287 has no errors8288 when config is invalid8289 when yml is incorrect8290 .new8291 raises error8292 when config logic is incorrect8293 #valid?8294 is not valid8295 has errors8296 #errors8297 returns an array of strings8298WorkItems::DeleteService8299 #execute8300 when user can delete the work item8301 is expected to be success8302 when there are errors preventing to delete the work item8303 is expected to be error8304 returns error messages8305 when user cannot delete the work item8306 is expected to be error8307 returns error messages8308RuboCop::Cop::Database::MultipleDatabases8309 # order random8310 flags the use of ActiveRecord::Base.connection8311 does not flag use of ActiveRecord::Base.configurations8312 does not flag use of ActiveRecord::Base.no_touching8313 flags the use of ::ActiveRecord::Base.connection8314gitlab:metrics_exporter:install8315 when no target directory is specified8316Please specify the directory where you want to install the exporter8317Usage: rake "gitlab:metrics_exporter:install[/installation/dir]"8318 aborts with an error message8319 when target directory is specified8320 installs the exporter with gmake8321 installs the exporter with make8322 when dependencies are missing8323Couldn't find a 'make' binary8324 aborts with an error message8325 when overriding version via environment variable8326 clones from repository with that version instead8327Gitlab::UrlBlockers::DomainAllowlistEntry8328 #initialize8329 initializes without port8330 initializes with port8331 #match?8332 matches when domain and port are equal8333 matches any port when port is nil8334 does not match when port is present but requested_port is nil8335 matches when port and requested_port are nil8336 does not match if domain is not equal8337SystemCheck::BaseCheck8338 helpers on instance level8339 responds to SystemCheck::Helpers methods8340 responds to Gitlab::TaskHelpers methods8341Gitlab::Throttle8342 .protected_paths_enabled?8343 returns Application Settings throttle_protected_paths_enabled?8344 .bypass_header8345 is nil8346 when a header is configured8347 is a funny upper case rack key8348 .rate_limiting_response_text8349 when the setting is not present8350 returns the default value with a trailing newline8351 when the setting is present8352 returns the default value with a trailing newline8353Gitlab::GitlabImport::Client8354 all OAuth2 client options are symbols8355 uses membership and simple flags8356 #projects8357 behaves like pagination params8358 allows page_limit param8359 allows per_page param8360 allows starting_page param8361 #issues8362 behaves like pagination params8363 allows page_limit param8364 allows per_page param8365 allows starting_page param8366 #issue_comments8367 behaves like pagination params8368 allows page_limit param8369 allows per_page param8370 allows starting_page param8371MergeRequests::Mergeability::Logger8372 # order random8373 #instrument8374 raises an error when block is not provided8375 when enabled8376 returns the block's value8377 records durations of instrumented operations8378 with multiple observations8379 records durations of instrumented operations8380 when its a query8381 with a single query8382 includes SQL metrics8383 with multiple queries8384 includes SQL metrics8385BulkImports::Groups::Pipelines::GroupPipeline8386 #run8387 imports new group into destination group8388 pipeline parts8389 is expected to includes the BulkImports::Pipeline module8390 is expected to includes the BulkImports::Pipeline::Runner module8391 has extractors8392 has transformers8393 has loaders8394JiraConnect::SyncDeploymentsWorker8395 behaves like worker with data consistency8396 .get_data_consistency_feature_flag_enabled?8397 returns true8398 .get_data_consistency8399 returns correct data consistency8400 #perform8401 when the object exists8402 calls the Jira sync service8403 when the object does not exist8404 does not call the sync service8405Ci::JobsHelper8406 jobs data8407 returns bridge data8408profiles/preferences/show8409 navigation theme8410 has an id for anchoring8411 has correct stylesheet tags8412 syntax highlighting theme8413 has an id for anchoring8414 behavior8415 has option for Render whitespace characters in the Web IDE8416 has an id for anchoring8417 has helpful homepage setup guidance8418 localization8419 has an id for anchoring8420UpdateMergeRequestsWorker8421 #perform8422 executes MergeRequests::RefreshService with expected values8423 when push options are passed as Hash8424 executes MergeRequests::RefreshService with expected values8425Clusters::AgentPolicy8426 rules8427 when developer8428 is expected to be disallowed :admin_cluster8429 when maintainer8430 is expected to be allowed :admin_cluster8431Integrations::ChatMessage::IssueMessage8432 behaves like Integrations::ChatMessage8433 when input contains link markup8434 strips all link markup characters8435 without markdown8436 #initialize8437 returns a non-null description8438 open8439 returns a message regarding opening of issues8440 close8441 returns a message regarding closing of issues8442 reopen8443 returns a message regarding reopening of issues8444 with markdown8445 open8446 returns a message regarding opening of issues8447 close8448 returns a message regarding closing of issues8449time travel8450 :freeze_time8451 freezes time around a spec example8452 :time_travel_to8453 time-travels to the specified date8454 time-travels to the specified date & time8455WorkItems::Widgets::Base8456 .type8457 is expected to eq :base8458 #type8459 is expected to eq :base8460Projects::OpenMergeRequestsCountService8461 behaves like a counter caching service8462 #count8463 caches the count8464 #refresh_cache8465 refreshes the cache8466 #delete_cache8467 removes the cache8468 #uncached_count8469 does not cache the count8470 #count8471 returns the number of open merge requests8472Every API endpoint8473 feature categories8474 has feature categories8475 recognizes the feature categories8476 has no routes with multiple paths8477 doesn't define or exclude categories on removed actions8478Gitlab::Metrics::Delta8479 #compared_with8480 returns the delta as a Numeric8481 bases the delta on a previously used value8482Gitlab::Diff::Formatters::ImageFormatter8483 behaves like position formatter8484 #key8485 is expected to eq [123, 456, 789, "8b5f87754bd090b9e0837feef68f1737103de62b", "5b972068ce0905d88056d0c4b788554d34949d27", 1, 2]8486 #complete?8487 when there are missing key attributes8488 is expected to be truthy8489 when old_line and new_line are nil8490 is expected to be falsy8491 #to_h8492 is expected to eq {:base_sha=>123, :head_sha=>789, :height=>100, :new_path=>"new_image.png", :old_path=>"old_image.png", :position_type=>"image", :start_sha=>456, :width=>100, :x=>1, :y=>2}8493 #==8494 is expected to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f231cecdcb8 @x=1, @y=2, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>8495 #==8496 is expected to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f231c862428 @x=1, @y=2, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>8497 is expected not to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f231bb445e8 @x=1, @y=9, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>8498 is expected not to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f2305768e80 @x=1, @y=9, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>8499 is expected not to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f231e6d8d30 @x=1, @y=9, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>8500 is expected not to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f231d71d3f0 @x=1, @y=9, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>8501Glfm::VerifyAllGeneratedFilesAreUpToDate#process8502 # order random8503 when repo is dirty8504 raises an error8505 when repo is clean8506 when all generated files are up to date8507 does not raise an error8508 when generated file(s) are not up to date8509ERROR: The following files were modified by running GLFM scripts. Please review, verify, and commit the changes:8510M /builds/gitlab-org/gitlab/glfm_specification/output_example_snapshots8511See the CI artifacts for the modified version of the files.8512This is the output of `git diff`:8513 raises an error8514Admin::IdentitiesHelper8515 #label_for_identity_provider8516 shows label for identity provider8517 #provider_id_cell_testid8518 shows blank provider id for data-testid8519 #provider_id8520 shows no provider id8521 #saml_group_cell_testid8522 shows blank SAML group for data-testid8523 #saml_group_link8524 shows no link to SAML group8525 #identity_cells_to_render?8526 without identities8527 returns false8528 with identities8529 returns true8530 #scim_identities_collection8531 returns empty array8532Import::GitlabProjects::FileAcquisitionStrategies::FileUpload8533 validation8534 validates presence of file8535 #project_params8536 returns the file to upload in the params8537MergeRequests::ResolveTodosService8538 #async_execute8539 performs MergeRequests::ResolveTodosWorker asynchronously8540 #execute8541 marks pending todo as done8542Gitlab::Middleware::Multipart::Handler8543 #allowed_paths8544 package_features_enabled: false, object_storage_enabled: false, direct_upload_enabled: true, expected_paths: :expected_allowed_paths8545 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]8546 package_features_enabled: false, object_storage_enabled: false, direct_upload_enabled: false, expected_paths: :expected_allowed_paths8547 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]8548 package_features_enabled: false, object_storage_enabled: true, direct_upload_enabled: true, expected_paths: :expected_allowed_paths8549 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]8550 package_features_enabled: false, object_storage_enabled: true, direct_upload_enabled: false, expected_paths: :expected_allowed_paths8551 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]8552 package_features_enabled: true, object_storage_enabled: false, direct_upload_enabled: true, expected_paths: :expected_with_packages_path8553 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]8554 package_features_enabled: true, object_storage_enabled: false, direct_upload_enabled: false, expected_paths: :expected_with_packages_path8555 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]8556 package_features_enabled: true, object_storage_enabled: true, direct_upload_enabled: true, expected_paths: :expected_allowed_paths8557 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]8558 package_features_enabled: true, object_storage_enabled: true, direct_upload_enabled: false, expected_paths: :expected_with_packages_path8559 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]8560Types::Packages::Cleanup::KeepDuplicatedPackageFilesEnum8561 exposes all options8562 uses all possible options from model8563BulkImports::ArchiveExtractionService8564 #execute8565 extracts files from archive and removes symlinks8566 when dir is not in tmpdir8567 raises an error8568 when archive file is a symlink8569 raises an error8570 when filepath is being traversed8571 raises an error8572Gitlab::EventStore::Event8573 when schema is not defined8574 raises an error on initialization8575 when schema is defined8576 schema validation8577 when data matches the schema8578 initializes the event correctly8579 when required properties are present as well as unknown properties8580 initializes the event correctly8581 when some properties are missing8582 expects all properties to be present8583 when data is not a Hash8584 raises an error8585Projects::PipelineHelper8586 #js_pipeline_tabs_data8587 returns pipeline tabs data8588Users::SavedReply8589 validations8590 is expected to validate that :user_id cannot be empty/falsy8591 is expected to validate that :name cannot be empty/falsy8592 is expected to validate that :content cannot be empty/falsy8593 is expected to validate that :name is case-sensitively unique within the scope of :user_id8594 is expected to validate that the length of :name is at most 2558595 is expected to validate that the length of :content is at most 100008596projects/commits/show.html.haml8597 tree controls8598 renders atom feed button with matching path8599Terraform/Base.latest.gitlab-ci.yml8600 the created pipeline8601 does not create any jobs8602BulkImports::Projects::Pipelines::AutoDevopsPipeline8603 #run8604 imports auto devops options into destination project8605Gitlab::Ci::Config::Entry::Stage8606 validations8607 when stage config value is correct8608 #value8609 returns a stage key8610 #valid?8611 is valid8612 when value has a wrong type8613 reports errors about wrong type8614 .default8615 returns default stage8616Ci::DownloadableArtifactSerializer8617 #as_json8618 matches schema8619StubMethodCalls8620 #stub_method8621 stubs the method response8622 when calling it on an already stubbed method8623 stubs correctly8624 methods that accept arguments8625 stubs correctly8626 methods that use named arguments8627 stubs correctly8628 stubbing non-existent method8629 stubs correctly8630 #restore_original_method8631 restores original behaviour8632 method is not stubbed8633 is expected to raise NotImplementedError with "some_other_method has not been stubbed on #<Class:0x00007f23041e1148>"8634 #restore_original_methods8635 restores original behaviour8636Banzai::Filter::PlantumlFilter8637 replaces plantuml pre tag with img tag8638 allows the lang attribute on the code tag to support RST files processed by gitlab-markup gem8639 does not replace plantuml pre tag with img tag if disabled8640 does not replace plantuml pre tag with img tag if url is invalid8641BulkImports::Groups::Extractors::SubgroupsExtractor8642 #extract8643 returns ExtractedData response8644Gitlab::TabWidth8645 .css_class_for_user8646 returns default CSS class when user is nil8647 returns CSS class for user's tab width8648 raises if tab width is out of valid range8649CsvBuilders::Stream8650 #render8651 returns a lazy enumerator8652 returns all rows up to default max value8653 truncates to max rows8654ForkNamespaceSerializer8655 represents ForkNamespaceEntity entities8656shared/web_hooks/_web_hook_disabled_alert8657 # order random8658 when show_project_hook_failed_callout? is true8659 adds alert to `:after_flash_content`8660 when show_project_hook_failed_callout? is false8661 does not add alert to `:after_flash_content`8662admin/application_settings/_ci_cd8663 limits8664 has fields for CI/CD limits8665 does not display the plan name when there is only one plan8666 with multiple plans8667 displays the plan name when there is more than one plan8668RuboCop::Cop::Gitlab::HTTParty8669 # order random8670 when HTTParty is called8671 behaves like registering call offense8672 registers an offense when the class calls HTTParty8673 when source is a regular module8674 behaves like registering include offense8675 registers an offense when the class includes HTTParty8676 when source is a regular class8677 behaves like registering include offense8678 registers an offense when the class includes HTTParty8679Keys::DestroyService8680 destroys a key8681Alerting::ProjectAlertingSetting8682 Associations8683 is expected to belong to project required: false8684 #token8685 when set8686 reads the token8687 when not set8688 generates a token before validation8689Integrations::ExecuteWorker#perform8690 executes integration with given data8691 logs error messages8692 when integration cannot be found8693 completes silently and does not log an error8694JiraConnect::RetryRequestWorker8695 #perform8696 sends the request, with the appropriate headers8697 when the proxied request fails8698 arranges to retry the request8699 when there are no more attempts left8700 does not retry8701Gitlab::Memory::Watchdog::Monitor::HeapFragmentation8702 # order random8703 #call8704 gets gc_heap_fragmentation8705 when process exceeds threshold8706 returns if threshold is violated and payload8707 when process does not exceed threshold8708 returns if threshold is violated and payload8709 #initialize8710 sets the heap fragmentation limit gauge8711Banzai::Filter::References::AbstractReferenceFilter8712 #data_attributes_for8713 is not an XSS vector8714 abstract methods8715 #find_object8716 raises NotImplementedError8717 #url_for_object8718 raises NotImplementedError8719GpgKeySubkey8720 associations8721 is expected to belong to gpg_key required: false8722 validations8723 is expected to validate that :gpg_key_id cannot be empty/falsy8724 is expected to validate that :fingerprint cannot be empty/falsy8725 is expected to validate that :keyid cannot be empty/falsy8726UserCanonicalEmail8727 is expected to belong to user required: false8728 validations8729 canonical_email8730 is expected to validate that :canonical_email cannot be empty/falsy8731 validates email address8732Gitlab::Pagination::Keyset::InOperatorOptimization::OrderByColumnData8733 #arel_column8734 delegates to column_expression8735 #column_for_projection8736 returns the expression with AS using the original column name8737 #projection8738 returns the expression with AS using the specified column lias8739Gitlab::GithubImport::PageCounter8740 #initialize8741 sets the initial page number to 1 when no value is cached8742 sets the initial page number to the cached value when one is present8743 #set8744 overwrites the page number when the given number is greater than the current number8745 does not overwrite the page number when the given number is lower than the current number8746 #expire!8747 expires the current page counter8748Gitlab::Config::Entry::Validator8749 delegated validator8750 when node is valid8751 validates attribute in node8752 returns no errors8753 when node is invalid8754 validates attribute in node8755 returns errors8756JsRegexValidator8757 #validates_each8758 user_default_internal_regex: nil, result: []8759 generates correct errors8760 user_default_internal_regex: "", result: []8761 generates correct errors8762 user_default_internal_regex: "(?#comment)", result: ["Regex Pattern (?#comment) can not be expressed in Javascript"]8763 generates correct errors8764 user_default_internal_regex: "(?(a)b|c)", result: ["invalid conditional pattern: /(?(a)b|c)/i"]8765 generates correct errors8766LicenseTemplate8767 #content8768 calls a proc exactly once if provided8769 returns a string if provided8770 #resolve!8771 updates placeholders in a copy of the template content8772ProjectImportEntity8773 #as_json8774 includes required fields8775Gitlab::MergeRequests::Mergeability::ResultsStore8776 #read8777 calls #retrieve_check on the interface8778 when #retrieve_check returns nil8779 returns nil8780 #write8781 calls #save_check on the interface8782MoveToProjectSerializer8783 #represent8784 includes the name and name with namespace8785Gitlab::Database::Migrations::Observers::QueryDetails8786 records details of executed queries8787 unsubscribes after the observation8788Types::Clusters::AgentTokenStatusEnum8789 is expected to eq "AgentTokenStatus"8790 is expected to contain exactly "ACTIVE" and "REVOKED"8791RuboCop::Cop::RSpec::HTTPartyBasicAuth8792 # order random8793 when passing `basic_auth: { user: ... }`8794 registers an offense and corrects8795 when passing `basic_auth: { username: ... }`8796 does not register an offense8797Create security training providers in development8798 # order random8799 behaves like security training providers importer8800OK8801 upserts security training providers8802Types::ErrorTracking::SentryErrorStackTraceEntryType8803 is expected to eq "SentryErrorStackTraceEntry"8804 exposes the expected fields8805AccessTokenEntityBase8806 # order random8807 has the correct attributes8808AuthorizedProjectUpdate::ProjectAccessChangedService8809 #execute8810 schedules the project IDs8811 permits non-blocking operation8812Gitlab::Usage::Metrics::Instrumentations::SnowplowEnabledMetric8813 for snowplow enabled option8814 snowplow_enabled: true, expected_value: true8815 behaves like a correct instrumented metric value8816 has correct value8817 snowplow_enabled: false, expected_value: false8818 behaves like a correct instrumented metric value8819 has correct value8820Gitlab::ExternalAuthorization::Cache8821 #load8822 reads stored info from redis8823 #store8824 sets the values in redis8825Gitlab::InsecureKeyFingerprint8826 #fingerprint_sha2568827 generates the key's fingerprint8828RDoc segfault patch fix8829 RDoc::Markup::ToHtml8830 #parseable?8831 returns false8832 RDoc::Markup::Verbatim8833 ruby?8834 returns false8835Gitlab::CiAccess8836 #can_do_action?8837 when action is :build_download_code8838 is expected to be truthy8839 when action is not :build_download_code8840 is expected to be falsey8841ActionCableSubscriptionAdapterIdentifier override8842 #identifier8843 when id key is nil on cable.yml8844 does not override server config id with action cable pid8845Gitlab::ApplicationRateLimiter::BaseStrategy8846 #increment8847 raises NotImplementedError8848 #read8849 raises NotImplementedError8850API::Helpers::GraphqlHelpers8851 run_graphql!8852 when transform function is provided8853 returns the expected result8854 when a transform function is not provided8855 returns the expected result8856Bitbucket::Collection8857 iterates paginator8858PipelineBackgroundQueue8859 sets a default object storage queue automatically8860Knapsack report was generated. Preview:8861{8862 "spec/finders/merge_requests_finder_spec.rb": 354.611525564,8863 "spec/lib/gitlab/metrics/subscribers/active_record_spec.rb": 31.615185223000026,8864 "spec/services/projects/overwrite_project_service_spec.rb": 115.26703694899993,8865 "spec/services/git/branch_hooks_service_spec.rb": 83.62093912199998,8866 "spec/finders/groups_finder_spec.rb": 60.57784849200016,8867 "spec/models/operations/feature_flags/strategy_spec.rb": 7.8879668779998156,8868 "spec/policies/ci/build_policy_spec.rb": 52.60514985100008,8869 "spec/policies/note_policy_spec.rb": 39.92478461099995,8870 "spec/views/search/_results.html.haml_spec.rb": 34.07976499799997,8871 "spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb": 31.406446588000108,8872 "spec/lib/gitlab/data_builder/push_spec.rb": 25.912134337999987,8873 "spec/models/ci/ref_spec.rb": 30.514501017000157,8874 "spec/models/draft_note_spec.rb": 21.541168178999897,8875 "spec/services/groups/import_export/import_service_spec.rb": 23.635377457000004,8876 "spec/models/concerns/token_authenticatable_spec.rb": 13.330517538999857,8877 "spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb": 4.770138088999829,8878 "spec/models/commit_range_spec.rb": 15.283187467000062,8879 "spec/lib/backup/manager_spec.rb": 6.173500843000056,8880 "spec/models/integrations/prometheus_spec.rb": 9.106182941000043,8881 "spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb": 15.578721305000045,8882 "spec/services/merge_requests/create_pipeline_service_spec.rb": 12.37753138700009,8883 "spec/services/projects/move_access_service_spec.rb": 16.01961841100001,8884 "spec/services/snippets/destroy_service_spec.rb": 14.18490982100002,8885 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb": 2.5096180919999824,8886 "spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb": 3.0356124509999063,8887 "spec/services/wiki_pages/update_service_spec.rb": 9.122255272000075,8888 "spec/lib/gitlab/sanitizers/exif_spec.rb": 5.8719209549999505,8889 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 10.010606801999984,8890 "spec/services/pages/migrate_from_legacy_storage_service_spec.rb": 12.898936562000017,8891 "spec/finders/environments/environments_by_deployments_finder_spec.rb": 12.40792303100011,8892 "spec/services/branches/delete_merged_service_spec.rb": 9.735974078000027,8893 "spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb": 10.967561994000107,8894 "spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb": 10.028539035999984,8895 "spec/lib/gitlab/auth/saml/user_spec.rb": 5.411887176999926,8896 "spec/services/groups/autocomplete_service_spec.rb": 9.101289383999983,8897 "spec/lib/gitlab_spec.rb": 2.465851832999988,8898 "spec/tasks/gitlab/cleanup_rake_spec.rb": 7.46798002599985,8899 "spec/lib/gitlab/ci/config/entry/bridge_spec.rb": 1.8226126609999938,8900 "spec/services/issuable/common_system_notes_service_spec.rb": 7.652854047999881,8901 "spec/lib/gitlab/legacy_github_import/importer_spec.rb": 8.463968824000176,8902 "spec/services/deployments/archive_in_project_service_spec.rb": 8.690913488999968,8903 "spec/lib/expand_variables_spec.rb": 1.2724354250001397,8904 "spec/lib/sidebars/projects/menus/settings_menu_spec.rb": 2.022576959999924,8905 "spec/lib/object_storage/config_spec.rb": 1.5391321839999819,8906 "spec/policies/personal_snippet_policy_spec.rb": 4.556128431999923,8907 "spec/lib/gitlab/middleware/multipart_spec.rb": 1.574402998999858,8908 "spec/services/service_ping/submit_service_ping_service_spec.rb": 3.0492235040001106,8909 "spec/lib/bulk_imports/projects/pipelines/design_bundle_pipeline_spec.rb": 6.985679691999849,8910 "spec/models/ci/freeze_period_status_spec.rb": 5.451588561000108,8911 "spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb": 7.555424767999966,8912 "spec/services/merge_requests/update_assignees_service_spec.rb": 6.569399393999902,8913 "spec/lib/gitlab/ci/config/external/file/project_spec.rb": 4.094813865000106,8914 "spec/graphql/types/base_enum_spec.rb": 1.2055081070000142,8915 "spec/services/todos/destroy/project_private_service_spec.rb": 6.14660333699976,8916 "spec/lib/gitlab/alert_management/payload/generic_spec.rb": 1.8494212379996497,8917 "spec/lib/gitlab/database/count_spec.rb": 5.571866511999815,8918 "spec/lib/banzai/object_renderer_spec.rb": 5.965726040999925,8919 "spec/serializers/fork_namespace_entity_spec.rb": 4.449085816999741,8920 "spec/services/uploads/destroy_service_spec.rb": 2.9075968460001604,8921 "spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb": 4.242673814000227,8922 "spec/lib/banzai/pipeline/description_pipeline_spec.rb": 1.1764622390001023,8923 "spec/lib/sidebars/projects/panel_spec.rb": 2.358636868999838,8924 "spec/lib/gitlab/authorized_keys_spec.rb": 0.6964139860001524,8925 "spec/services/ci/run_scheduled_build_service_spec.rb": 4.017805009999847,8926 "spec/finders/packages/go/version_finder_spec.rb": 2.149816860000101,8927 "spec/lib/gitlab/object_hierarchy_spec.rb": 1.7858643380000103,8928 "spec/serializers/diffs_metadata_entity_spec.rb": 4.004883807999704,8929 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb": 3.434619259000101,8930 "spec/lib/gitlab/error_tracking_spec.rb": 1.8416730949998055,8931 "spec/services/metrics/dashboard/update_dashboard_service_spec.rb": 2.998119921000125,8932 "spec/models/packages/debian/group_distribution_key_spec.rb": 0.898107317999802,8933 "spec/views/admin/dashboard/index.html.haml_spec.rb": 4.464121084999988,8934 "spec/lib/gitlab/prometheus/additional_metrics_parser_spec.rb": 0.8919052979999833,8935 "spec/lib/gitlab/git/hook_env_spec.rb": 0.8161441659999582,8936 "spec/finders/concerns/finder_methods_spec.rb": 2.132985890999862,8937 "spec/lib/backup/database_spec.rb": 3.6543689400000403,8938 "spec/helpers/ci/status_helper_spec.rb": 1.0293732140003158,8939 "spec/graphql/mutations/customer_relations/contacts/create_spec.rb": 2.664051605000168,8940 "spec/lib/gitlab/slash_commands/issue_show_spec.rb": 2.5182951209999374,8941 "spec/lib/gitlab/database/load_balancing/configuration_spec.rb": 0.7909630720000678,8942 "spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb": 3.2012279060004403,8943 "spec/serializers/release_serializer_spec.rb": 3.5826444530002846,8944 "spec/services/deployments/create_service_spec.rb": 3.110428855000009,8945 "spec/lib/gitlab/hook_data/project_builder_spec.rb": 1.143940012999792,8946 "spec/lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator_spec.rb": 0.5509196899997733,8947 "spec/lib/gitlab/ci/build/policy/variables_spec.rb": 1.8437027359996137,8948 "spec/lib/gitlab/auth/o_auth/provider_spec.rb": 0.9116471190000084,8949 "spec/models/preloaders/group_root_ancestor_preloader_spec.rb": 0.9923985299997184,8950 "spec/lib/gitlab/lograge/custom_options_spec.rb": 0.8674414040001466,8951 "spec/workers/environments/auto_stop_worker_spec.rb": 4.019255663999957,8952 "spec/scripts/changed-feature-flags_spec.rb": 0.5646988680000504,8953 "spec/workers/gitlab/jira_import/import_issue_worker_spec.rb": 1.3167298340003981,8954 "spec/policies/ci/pipeline_schedule_policy_spec.rb": 2.78801194100015,8955 "spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb": 1.0271529659999032,8956 "spec/lib/gitlab/serverless/service_spec.rb": 3.4106875160000527,8957 "spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb": 2.281555921999825,8958 "spec/lib/gitlab/web_hooks/rate_limiter_spec.rb": 2.8555660199999693,8959 "spec/lib/gitlab/auth/ip_rate_limiter_spec.rb": 0.5666082679999818,8960 "spec/helpers/notifications_helper_spec.rb": 1.556682500000079,8961 "spec/services/bulk_imports/file_decompression_service_spec.rb": 1.1436619859996426,8962 "spec/serializers/merge_request_user_entity_spec.rb": 3.225472249000177,8963 "spec/lib/gitlab/ci/pipeline/expression/token_spec.rb": 0.4153700749998279,8964 "spec/lib/gitlab/diff/file_collection/base_spec.rb": 2.670356080000147,8965 "spec/lib/gitlab/ci/secure_files/cer_spec.rb": 0.44615439100016374,8966 "spec/workers/every_sidekiq_worker_spec.rb": 0.962544995999906,8967 "spec/workers/projects/import_export/relation_export_worker_spec.rb": 2.103812491000099,8968 "spec/finders/projects/export_job_finder_spec.rb": 1.6982004950000373,8969 "spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb": 3.058413648000169,8970 "spec/rubocop/cop/put_group_routes_under_scope_spec.rb": 0.8019438229998741,8971 "spec/lib/gitlab/jira_import/issues_importer_spec.rb": 1.2267513769998004,8972 "spec/lib/error_tracking/stacktrace_builder_spec.rb": 0.536004481999953,8973 "spec/lib/bulk_imports/groups/pipelines/subgroup_entities_pipeline_spec.rb": 0.9859820329998001,8974 "spec/lib/gitlab/github_import/representation/protected_branch_spec.rb": 0.5102830040000299,8975 "spec/presenters/packages/pypi/simple_index_presenter_spec.rb": 4.7783294509999905,8976 "spec/services/loose_foreign_keys/batch_cleaner_service_spec.rb": 1.6528382100000272,8977 "spec/services/ci/update_pending_build_service_spec.rb": 1.8141916630002015,8978 "spec/graphql/mutations/labels/create_spec.rb": 1.4096028270000716,8979 "spec/policies/personal_access_token_policy_spec.rb": 1.0543461349998324,8980 "spec/graphql/mutations/todos/mark_done_spec.rb": 2.309552808999797,8981 "spec/lib/gitlab/git_post_receive_spec.rb": 1.4097790169998916,8982 "spec/rubocop/cop/migration/schedule_async_spec.rb": 0.5377845010002602,8983 "spec/models/work_items/widgets/start_and_due_date_spec.rb": 0.6747476370001095,8984 "spec/rubocop/cop/safe_params_spec.rb": 0.27430215000003955,8985 "spec/workers/pages_worker_spec.rb": 1.6170678840003347,8986 "spec/presenters/alert_management/alert_presenter_spec.rb": 0.7880172750001293,8987 "spec/lib/gitlab/usage_data_counters/web_ide_counter_spec.rb": 0.680419276000066,8988 "spec/models/concerns/has_user_type_spec.rb": 1.305732877999617,8989 "spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb": 1.02019079899992,8990 "spec/services/ci/destroy_secure_file_service_spec.rb": 1.3220281260000775,8991 "spec/models/diff_viewer/image_spec.rb": 0.2887030080000841,8992 "spec/lib/gitlab/sidekiq_queue_spec.rb": 1.502671737000128,8993 "spec/lib/gitlab/log_timestamp_formatter_spec.rb": 0.3334731939999074,8994 "spec/views/admin/identities/index.html.haml_spec.rb": 0.6975025239999013,8995 "spec/lib/gitlab/import_export/uploads_saver_spec.rb": 1.8911868939999295,8996 "spec/lib/gitlab/email/attachment_uploader_spec.rb": 1.9317270800002007,8997 "spec/models/raw_usage_data_spec.rb": 0.7814338149996729,8998 "spec/models/diff_viewer/server_side_spec.rb": 1.107407410000178,8999 "spec/lib/gitlab/web_ide/config_spec.rb": 0.40854506599998786,9000 "spec/services/work_items/delete_service_spec.rb": 1.7515274299998964,9001 "spec/rubocop/cop/database/multiple_databases_spec.rb": 0.5392072619997634,9002 "spec/lib/tasks/gitlab/metrics_exporter_task_spec.rb": 0.5774542180001845,9003 "spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb": 0.44108891199994105,9004 "spec/lib/system_check/base_check_spec.rb": 0.3903295420000177,9005 "spec/lib/gitlab/throttle_spec.rb": 0.4308134389998486,9006 "spec/lib/gitlab/gitlab_import/client_spec.rb": 0.83576178300018,9007 "spec/services/merge_requests/mergeability/logger_spec.rb": 1.5141373669998757,9008 "spec/lib/bulk_imports/groups/pipelines/group_pipeline_spec.rb": 1.2376937469998666,9009 "spec/workers/jira_connect/sync_deployments_worker_spec.rb": 1.254791024000042,9010 "spec/helpers/ci/jobs_helper_spec.rb": 1.7173840489999748,9011 "spec/views/profiles/preferences/show.html.haml_spec.rb": 0.758745394000016,9012 "spec/workers/update_merge_requests_worker_spec.rb": 1.0350974450002468,9013 "spec/policies/clusters/agent_policy_spec.rb": 1.6453599090000353,9014 "spec/models/integrations/chat_message/issue_message_spec.rb": 0.5814104080000106,9015 "spec/support_specs/time_travel_spec.rb": 0.443818077999822,9016 "spec/models/work_items/widgets/base_spec.rb": 0.6580205479999677,9017 "spec/services/projects/open_merge_requests_count_service_spec.rb": 0.7791913109999768,9018 "spec/lib/api/every_api_endpoint_spec.rb": 1.520502456000031,9019 "spec/lib/gitlab/metrics/delta_spec.rb": 0.2644168830001945,9020 "spec/lib/gitlab/diff/formatters/image_formatter_spec.rb": 0.4944423009997081,9021 "spec/scripts/lib/glfm/verify_all_generated_files_are_up_to_date_spec.rb": 0.2948901980003029,9022 "spec/helpers/admin/identities_helper_spec.rb": 0.5652400409999245,9023 "spec/services/import/gitlab_projects/file_acquisition_strategies/file_upload_spec.rb": 0.23411381699997946,9024 "spec/services/merge_requests/resolve_todos_service_spec.rb": 1.5226960059999328,9025 "spec/lib/gitlab/middleware/multipart/handler_spec.rb": 0.6441894190002131,9026 "spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb": 0.3341688030000114,9027 "spec/services/bulk_imports/archive_extraction_service_spec.rb": 0.40998428300008527,9028 "spec/lib/gitlab/event_store/event_spec.rb": 0.3550082100000509,9029 "spec/helpers/projects/pipeline_helper_spec.rb": 1.0793653289997565,9030 "spec/models/users/saved_reply_spec.rb": 0.7455636859999686,9031 "spec/views/projects/commits/show.html.haml_spec.rb": 1.2334607980001238,9032 "spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb": 1.4207188209998094,9033 "spec/lib/bulk_imports/projects/pipelines/auto_devops_pipeline_spec.rb": 0.9290757290000329,9034 "spec/lib/gitlab/ci/config/entry/stage_spec.rb": 0.39099740499978,9035 "spec/serializers/ci/downloadable_artifact_serializer_spec.rb": 1.0579931719998967,9036 "spec/support_specs/helpers/stub_method_calls_spec.rb": 0.727056618000006,9037 "spec/lib/banzai/filter/plantuml_filter_spec.rb": 0.7373826759999247,9038 "spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb": 0.4548497559999305,9039 "spec/lib/gitlab/tab_width_spec.rb": 0.481734883000172,9040 "spec/lib/csv_builders/stream_spec.rb": 0.2908272390000093,9041 "spec/serializers/fork_namespace_serializer_spec.rb": 0.2335465779997321,9042 "spec/views/shared/web_hooks/_web_hook_disabled_alert.html.haml_spec.rb": 0.7002164820000871,9043 "spec/views/admin/application_settings/_ci_cd.html.haml_spec.rb": 0.5749417889996948,9044 "spec/rubocop/cop/gitlab/httparty_spec.rb": 0.43064965999974447,9045 "spec/services/keys/destroy_service_spec.rb": 0.7291180380002515,9046 "spec/models/alerting/project_alerting_setting_spec.rb": 0.6927288219999355,9047 "spec/workers/integrations/execute_worker_spec.rb": 0.6765658650001569,9048 "spec/workers/jira_connect/retry_request_worker_spec.rb": 0.46742516499989506,9049 "spec/lib/gitlab/memory/watchdog/monitor/heap_fragmentation_spec.rb": 0.312237266000011,9050 "spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb": 0.7686398019995977,9051 "spec/models/gpg_key_subkey_spec.rb": 0.42758039999989705,9052 "spec/models/user_canonical_email_spec.rb": 0.2862572399999408,9053 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb": 0.3186840859998483,9054 "spec/lib/gitlab/github_import/page_counter_spec.rb": 0.502425570000014,9055 "spec/lib/gitlab/config/entry/validator_spec.rb": 0.32868642399989767,9056 "spec/validators/js_regex_validator_spec.rb": 0.25673970500020005,9057 "spec/models/license_template_spec.rb": 0.4085828720003519,9058 "spec/serializers/project_import_entity_spec.rb": 0.7631372830001055,9059 "spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb": 0.4325278490000528,9060 "spec/serializers/move_to_project_serializer_spec.rb": 0.2056626309999956,9061 "spec/lib/gitlab/database/migrations/observers/query_details_spec.rb": 0.33680470299987064,9062 "spec/graphql/types/clusters/agent_token_status_enum_spec.rb": 0.3231124940002701,9063 "spec/rubocop/cop/rspec/htt_party_basic_auth_spec.rb": 0.27515493100008825,9064 "spec/db/development/add_security_training_providers_spec.rb": 0.2812999499997204,9065 "spec/graphql/types/error_tracking/sentry_error_stack_trace_entry_type_spec.rb": 0.29823029799990763,9066 "spec/serializers/access_token_entity_base_spec.rb": 0.35939197000016065,9067 "spec/services/authorized_project_update/project_access_changed_service_spec.rb": 0.34840557100005753,9068 "spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb": 0.3188700850000714,9069 "spec/lib/gitlab/external_authorization/cache_spec.rb": 0.2859671799997159,9070 "spec/lib/gitlab/insecure_key_fingerprint_spec.rb": 0.4815415519997259,9071 "spec/initializers/rdoc_segfault_patch_spec.rb": 0.22940708800024368,9072 "spec/lib/gitlab/ci_access_spec.rb": 0.22719289799988474,9073 "spec/initializers/action_cable_subscription_adapter_identifier_spec.rb": 0.307138926999869,9074 "spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb": 0.3089901060002376,9075 "spec/lib/api/helpers/graphql_helpers_spec.rb": 0.23507589699966047,9076 "spec/lib/bitbucket/collection_spec.rb": 0.398790425000243,9077 "spec/workers/concerns/pipeline_background_queue_spec.rb": 0.48646793199986869078}9079Knapsack global time execution for tests: 23m 34s9080Pending: (Failures listed here are expected and do not affect your suite's status)9081 1) Gitlab::Metrics::Subscribers::ActiveRecord.load_balancing_metric_counter_keys single database has expected keys9082 # Skipping because multiple databases are set up9083 # ./spec/lib/gitlab/metrics/subscribers/active_record_spec.rb:549084 2) Gitlab::Metrics::Subscribers::ActiveRecord.load_balancing_metric_counter_keys single database does not have ci keys9085 # Skipping because multiple databases are set up9086 # ./spec/lib/gitlab/metrics/subscribers/active_record_spec.rb:759087 3) Gitlab::Metrics::Subscribers::ActiveRecord.load_balancing_metric_duration_keys single database has expected keys9088 # Skipping because multiple databases are set up9089 # ./spec/lib/gitlab/metrics/subscribers/active_record_spec.rb:1139090 4) Gitlab::Metrics::Subscribers::ActiveRecord.load_balancing_metric_duration_keys single database does not have ci keys9091 # Skipping because multiple databases are set up9092 # ./spec/lib/gitlab/metrics/subscribers/active_record_spec.rb:1229093 5) MergeRequestUserEntity#as_json performance is linear in the number of merge requests9095 Failure/Error:9096 expect do9097 a = described_class.new(user_a, request: request, merge_request: merge_request_b)9098 b = described_class.new(user_b, request: request, merge_request: merge_request_b)9100 a.as_json9101 b.as_json9102 end.not_to exceed_query_limit(baseline)9103 Expected a maximum of 12 queries, got 26:9104 Query Diff:9105 -----------9106 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...9107 -- (expected: 4, got: 0)9108 WHERE "project_authorizations"."project_id" = 1238 AND "project_authorizations"."user_id" = 1483 GROUP BY "project_authorizations"."user_id"9109 -- (expected: 3, got: 0)9110 WHERE "project_authorizations"."project_id" = 1238 AND "project_authorizations"."user_id" = 1481 GROUP BY "project_authorizations"."user_id"9111 -- (expected: 0, got: 4)9112 WHERE "project_authorizations"."project_id" = 1239 AND "project_authorizations"."user_id" = 1483 GROUP BY "project_authorizations"."user_id"9113 -- (expected: 0, got: 6)9114 WHERE "project_authorizations"."project_id" = 1239 AND "project_authorizations"."user_id" = 1481 GROUP BY "project_authorizations"."user_id"9115 -- (expected: 0, got: 4)9116 WHERE "project_authorizations"."project_id" = 1239 AND "project_authorizations"."user_id" = 1484 GROUP BY "project_authorizations"."user_id"9117 SELECT "merge_requests".* FROM "merge_requests"...9118 -- (expected: 1, got: 0)9119 WHERE "merge_requests"."source_project_id" = 1238 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'9120 -- (expected: 0, got: 2)9121 WHERE "merge_requests"."source_project_id" = 1239 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'9122 SELECT "projects".* FROM "projects"...9123 -- (expected: 1, got: 0)9124 WHERE "projects"."id" = 12389125 -- (expected: 0, got: 2)9126 WHERE "projects"."id" = 12399127 SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."emails_disabled", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."unlock_membership_to_ldap", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids" FROM "namespaces"...9128 -- (expected: 1, got: 0)9129 WHERE "namespaces"."id" = 3675 LIMIT 19130 -- (expected: 0, got: 2)9131 WHERE "namespaces"."id" = 3679 LIMIT 19132 SELECT project_ids.project_id, download_code_permissions.download_code FROM (VALUES (1238, ARRAY[3675]::integer[])) AS project_ids (project_id, namespace_ids),9133 LATERAL (9134 (9135 SELECT download_code FROM "members" LEFT OUTER JOIN "member_roles" ON "member_roles"."id" = "members"."member_role_id" WHERE (members.source_type = 'Project' AND members.source_id = project_ids.project_id) AND "members"."user_id" = 1481 AND "member_roles"."download_code" = TRUE LIMIT 19136 ) UNION ALL9137 (9138 SELECT download_code FROM "members"...9139 -- (expected: 1, got: 0)9140 LEFT OUTER JOIN "member_roles" ON "member_roles"."id" = "members"."member_role_id" WHERE (members.source_type = 'Namespace' AND members.source_id IN (SELECT UNNEST(project_ids.namespace_ids) as ids)) AND "members"."user_id" = 1481 AND "member_roles"."download_code" = TRUE LIMIT 19141 ) UNION ALL9142 (9143 SELECT false AS download_code9144 )9145 LIMIT 19146 ) AS download_code_permissions9147 SELECT "merge_request_reviewers".* FROM "merge_request_reviewers"...9148 -- (expected: 1, got: 0)9149 WHERE "merge_request_reviewers"."merge_request_id" = 764 AND "merge_request_reviewers"."user_id" = 1483 LIMIT 19150 -- (expected: 0, got: 1)9151 WHERE "merge_request_reviewers"."merge_request_id" = 765 AND "merge_request_reviewers"."user_id" = 1483 LIMIT 19152 -- (expected: 0, got: 1)9153 WHERE "merge_request_reviewers"."merge_request_id" = 765 AND "merge_request_reviewers"."user_id" = 1484 LIMIT 19154 SELECT "protected_branches".* FROM "protected_branches"...9155 -- (expected: 0, got: 1)9156 WHERE "protected_branches"."project_id" = 12399157 SELECT project_ids.project_id, download_code_permissions.download_code FROM (VALUES (1239, ARRAY[3679]::integer[])) AS project_ids (project_id, namespace_ids),9158 LATERAL (9159 (9160 SELECT download_code FROM "members" LEFT OUTER JOIN "member_roles" ON "member_roles"."id" = "members"."member_role_id" WHERE (members.source_type = 'Project' AND members.source_id = project_ids.project_id) AND "members"."user_id" = 1481 AND "member_roles"."download_code" = TRUE LIMIT 19161 ) UNION ALL9162 (9163 SELECT download_code FROM "members"...9164 -- (expected: 0, got: 2)9165 LEFT OUTER JOIN "member_roles" ON "member_roles"."id" = "members"."member_role_id" WHERE (members.source_type = 'Namespace' AND members.source_id IN (SELECT UNNEST(project_ids.namespace_ids) as ids)) AND "members"."user_id" = 1481 AND "member_roles"."download_code" = TRUE LIMIT 19166 ) UNION ALL9167 (9168 SELECT false AS download_code9169 )9170 LIMIT 19171 ) AS download_code_permissions9172 SELECT "approvals".* FROM "approvals"...9173 -- (expected: 0, got: 1)9174 WHERE "approvals"."merge_request_id" = 7659175 # ./spec/serializers/merge_request_user_entity_spec.rb:71:in `block (4 levels) in <top (required)>'9176 # ./spec/spec_helper.rb:412:in `block (3 levels) in <top (required)>'9177 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'9178 # ./spec/spec_helper.rb:404:in `block (2 levels) in <top (required)>'9179 # ./spec/spec_helper.rb:400:in `block (3 levels) in <top (required)>'9180 # ./lib/gitlab/application_context.rb:59:in `with_raw_context'9181 # ./spec/spec_helper.rb:400:in `block (2 levels) in <top (required)>'9182 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'9183 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9184 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'9185 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9186 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9187 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9188Finished in 23 minutes 39 seconds (files took 43.62 seconds to load)91893701 examples, 0 failures, 5 pending9190Randomized with seed 39059191[TEST PROF INFO] Time spent in factories: 13:48.439 (58.15% of total time)9192RSpec exited with 0.9193No examples to retry, congrats!9195Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy9196Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy9198Uploading artifacts...9199coverage/: found 5 matching files and directories 9200crystalball/: found 2 matching files and directories 9201deprecations/: found 6 matching files and directories 9202knapsack/: found 3 matching files and directories 9203rspec/: found 12 matching files and directories 9204WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 9205log/*.log: found 22 matching files and directories 9206WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3318206482/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9207WARNING: Retrying... context=artifacts-uploader error=request redirected9208Uploading artifacts as "archive" to coordinator... 201 Created id=3318206482 responseStatus=201 Created token=-qRUR17E9209Uploading artifacts...9210rspec/junit_rspec.xml: found 1 matching files and directories 9211WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3318206482/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9212WARNING: Retrying... context=artifacts-uploader error=request redirected9213Uploading artifacts as "junit" to coordinator... 201 Created id=3318206482 responseStatus=201 Created token=-qRUR17E9215Job succeeded