rspec unit pg13 22/28
Passed Started
by
@alipniagov

Aleksei Lipniagov
1remote: Total 141454 (delta 62786), reused 98969 (delta 45741), pack-reused 0 2Receiving objects: 100% (141454/141454), 122.89 MiB | 30.27 MiB/s, done.3Resolving deltas: 100% (62786/62786), done.5 * [new ref] refs/pipelines/835170457 -> refs/pipelines/8351704576Checking out aa21306d as detached HEAD (ref is refs/merge-requests/116974/merge)...7Skipping Git submodules setup8$ git remote set-url origin "${CI_REPOSITORY_URL}"10Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...11Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 12Successfully extracted cache13Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-3.0-16...14Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 15Successfully extracted cache17Downloading artifacts for compile-test-assets (4101394559)...18Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394559 responseStatus=200 OK token=64_RKCwD19Downloading artifacts for detect-tests (4101394577)...20Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394577 responseStatus=200 OK token=64_RKCwD21Downloading artifacts for retrieve-tests-metadata (4101394581)...22Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394581 responseStatus=200 OK token=64_RKCwD23Downloading artifacts for setup-test-env (4101394571)...24Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394571 responseStatus=200 OK token=64_RKCwD26Using docker image sha256:667531aab48d3d73584a6ae24a2aea1de3972ab11b24d34d65740089d1635940 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:32a5178f22d0b62740cacea13dc02b6d5a1c9528c0a9af52124abe4455dd0a15 ...27$ echo $FOSS_ONLY28$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb29$ export GOPATH=$CI_PROJECT_DIR/.go30$ mkdir -p $GOPATH31$ source scripts/utils.sh32$ source scripts/prepare_build.sh685Using decomposed database config (config/database.yml.decomposed-postgresql)686Geo DB won't be set up.687$ setup_db_user_only688CREATE ROLE689GRANT690==> 'setup_db_user_only' succeeded in 0 seconds.691$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes692Dropped database 'gitlabhq_test'693Dropped database 'gitlabhq_test_ci'694Created database 'gitlabhq_test'695Created database 'gitlabhq_test_ci'696main: == [advisory_lock_connection] object_id: 273860, pg_backend_pid: 101697main: == [advisory_lock_connection] object_id: 273860, pg_backend_pid: 101698ci: == [advisory_lock_connection] object_id: 273960, pg_backend_pid: 103699ci: == [advisory_lock_connection] object_id: 273960, pg_backend_pid: 103700==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 49 seconds.701$ setup_db_praefect702SELECT pg_catalog.set_config('search_path', '', false);703CREATE DATABASE praefect_test ENCODING 'UTF8';704==> 'setup_db_praefect' succeeded in 1 seconds.705$ source ./scripts/rspec_helpers.sh706$ run_timed_command "gem install knapsack --no-document"707$ gem install knapsack --no-document708Successfully installed knapsack-4.0.07091 gem installed710==> 'gem install knapsack --no-document' succeeded in 0 seconds.711$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"731$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"732SKIP_FLAKY_TESTS_AUTOMATICALLY: false733RETRY_FAILED_TESTS_IN_NEW_PROCESS: true734KNAPSACK_GENERATE_REPORT: true735FLAKY_RSPEC_GENERATE_REPORT: true736KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,config,contracts,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}{,/**/}*_spec.rb737KNAPSACK_LOG_LEVEL: debug738KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_22_28_report.json739FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json740FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_22_28_report.json741NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_22_28_report.json742SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_22_28_report.txt743CRYSTALBALL: 744Knapsack node specs:745spec/policies/project_policy_spec.rb746spec/lib/gitlab/middleware/go_spec.rb747spec/services/snippets/update_service_spec.rb748spec/lib/gitlab/database/load_balancing_spec.rb749spec/services/merge_requests/merge_service_spec.rb750spec/models/work_items/parent_link_spec.rb751spec/scripts/lib/glfm/update_specification_spec.rb752spec/graphql/resolvers/project_issues_resolver_spec.rb753spec/lib/gitlab/conflict/file_spec.rb754spec/uploaders/job_artifact_uploader_spec.rb755spec/lib/gitlab/gfm/reference_rewriter_spec.rb756spec/lib/gitlab/background_migration/backfill_integrations_type_new_spec.rb757spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb758spec/lib/gitlab/gitaly_client_spec.rb759spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb760spec/helpers/application_helper_spec.rb761spec/services/members/projects/creator_service_spec.rb762spec/models/concerns/deprecated_assignee_spec.rb763spec/models/resource_label_event_spec.rb764spec/routing/group_routing_spec.rb765spec/models/projects/data_transfer_spec.rb766spec/models/service_desk_setting_spec.rb767spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb768spec/finders/ci/pipelines_finder_spec.rb769spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb770spec/lib/gitlab/process_supervisor_spec.rb771spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb772spec/workers/concerns/application_worker_spec.rb773spec/models/ci/trigger_spec.rb774spec/models/integrations/drone_ci_spec.rb775spec/lib/gitlab/email/handler/create_note_on_issuable_handler_spec.rb776spec/services/clusters/create_service_spec.rb777spec/lib/gitlab/redis/cache_spec.rb778spec/models/ci/build_metadata_spec.rb779spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb780spec/lib/gitlab/auth/ldap/config_spec.rb781spec/views/projects/_home_panel.html.haml_spec.rb782spec/serializers/diff_file_entity_spec.rb783spec/lib/feature/definition_spec.rb784spec/lib/gitlab/x509/signature_spec.rb785spec/services/timelogs/create_service_spec.rb786spec/services/merge_requests/resolved_discussion_notification_service_spec.rb787spec/lib/gitlab/ci/artifact_file_reader_spec.rb788spec/lib/gitlab/deploy_key_access_spec.rb789spec/services/ci/create_pipeline_service/cache_spec.rb790spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb791spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb792spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb793spec/lib/api/helpers/packages_helpers_spec.rb794spec/lib/gitlab/ci/config/entry/cache_spec.rb795spec/models/ci/runner_manager_spec.rb796spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb797spec/views/admin/dashboard/index.html.haml_spec.rb798spec/presenters/issue_presenter_spec.rb799spec/models/ci/runner_project_spec.rb800spec/finders/concerns/finder_with_group_hierarchy_spec.rb801spec/workers/auto_devops/disable_worker_spec.rb802spec/services/projects/download_service_spec.rb803spec/helpers/nav_helper_spec.rb804spec/serializers/analytics_issue_entity_spec.rb805spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb806spec/models/state_note_spec.rb807spec/lib/gitlab/chat/responder/mattermost_spec.rb808spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb809spec/services/ci/runners/set_runner_associated_projects_service_spec.rb810spec/rack_servers/puma_spec.rb811spec/initializers/00_deprecations_spec.rb812spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb813spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb814spec/models/packages/nuget/metadatum_spec.rb815spec/initializers/direct_upload_support_spec.rb816spec/uploaders/file_mover_spec.rb817spec/views/layouts/devise_empty.html.haml_spec.rb818spec/lib/gitlab/jira_import_spec.rb819spec/services/ci/create_pipeline_service/tags_spec.rb820spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb821spec/services/merge_requests/handle_assignees_change_service_spec.rb822spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb823spec/models/protected_tag/create_access_level_spec.rb824spec/lib/constraints/group_url_constrainer_spec.rb825spec/lib/banzai/reference_parser/milestone_parser_spec.rb826spec/models/integrations/emails_on_push_spec.rb827spec/workers/environments/auto_stop_worker_spec.rb828spec/lib/sidebars/projects/menus/zentao_menu_spec.rb829spec/services/ci/compare_reports_base_service_spec.rb830spec/graphql/resolvers/project_pipeline_resolver_spec.rb831spec/serializers/base_discussion_entity_spec.rb832spec/services/ci/job_artifacts/track_artifact_report_service_spec.rb833spec/lib/gitlab/instrumentation_helper_spec.rb834spec/services/ci/delete_objects_service_spec.rb835spec/workers/pages_domain_verification_cron_worker_spec.rb836spec/lib/sidebars/user_profile/menus/activity_menu_spec.rb837spec/lib/banzai/filter/asset_proxy_filter_spec.rb838spec/models/concerns/batch_nullify_dependent_associations_spec.rb839spec/services/work_items/widgets/notifications_service/update_service_spec.rb840spec/lib/gitlab/memory/reports_daemon_spec.rb841spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb842spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb843spec/serializers/clusters/kubernetes_error_entity_spec.rb844spec/workers/clusters/applications/activate_integration_worker_spec.rb845spec/services/ide/terminal_config_service_spec.rb846spec/services/work_items/widgets/assignees_service/update_service_spec.rb847spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb848spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb849spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb850spec/lib/gitlab/hotlinking_detector_spec.rb851spec/lib/gitlab/work_items/work_item_hierarchy_spec.rb852spec/finders/projects/prometheus/alerts_finder_spec.rb853spec/graphql/mutations/branches/create_spec.rb854spec/serializers/merge_request_widget_commit_entity_spec.rb855spec/finders/merge_request/metrics_finder_spec.rb856spec/workers/invalid_gpg_signature_update_worker_spec.rb857spec/lib/gitlab/git/cross_repo_spec.rb858spec/services/projects/blame_service_spec.rb859spec/workers/ci/cancel_redundant_pipelines_worker_spec.rb860spec/validators/json_schema_validator_spec.rb861spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb862spec/lib/gitlab/mailgun/webhook_processors/member_invites_spec.rb863spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb864spec/lib/gitlab/middleware/compressed_json_spec.rb865spec/lib/gitlab/internal_post_receive/response_spec.rb866spec/models/ci/pipeline_schedule_variable_spec.rb867spec/lib/gitlab/background_migration/delete_orphans_approval_merge_request_rules_spec.rb868spec/graphql/types/namespace/package_settings_type_spec.rb869spec/lib/gitlab/ci/config/entry/jobs_spec.rb870spec/services/files/base_service_spec.rb871spec/lib/gitlab/repository_url_builder_spec.rb872spec/workers/packages/cleanup_package_file_worker_spec.rb873spec/services/packages/create_package_file_service_spec.rb874spec/support_specs/ability_check_spec.rb875spec/views/projects/_flash_messages.html.haml_spec.rb876spec/workers/disallow_two_factor_for_group_worker_spec.rb877spec/serializers/jira_connect/group_entity_spec.rb878spec/lib/gitlab/safe_request_purger_spec.rb879spec/workers/ci/pipeline_artifacts/create_quality_report_worker_spec.rb880spec/workers/member_invitation_reminder_emails_worker_spec.rb881spec/serializers/member_serializer_spec.rb882spec/graphql/types/ci/job_need_union_spec.rb883spec/graphql/mutations/design_management/move_spec.rb884spec/lib/api/entities/basic_project_details_spec.rb885spec/services/authorized_project_update/periodic_recalculate_service_spec.rb886spec/workers/create_note_diff_file_worker_spec.rb887spec/lib/gitlab/terraform_registry_token_spec.rb888spec/workers/error_tracking_issue_link_worker_spec.rb889spec/presenters/user_presenter_spec.rb890spec/lib/banzai/filter/inline_diff_filter_spec.rb891spec/lib/gitlab/ci/config/entry/services_spec.rb892spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb893spec/lib/generators/gitlab/usage_metric_generator_spec.rb894spec/graphql/mutations/clusters/agent_tokens/revoke_spec.rb895spec/lib/gitlab/ci/status/build/skipped_spec.rb896spec/models/discussion_note_spec.rb897spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb898spec/views/notify/changed_milestone_email.html.haml_spec.rb899spec/lib/gitlab/utils/json_size_estimator_spec.rb900spec/views/projects/branches/index.html.haml_spec.rb901spec/services/merge_requests/mergeability/check_open_status_service_spec.rb902spec/lib/gitlab/database/migration_spec.rb903spec/initializers/google_cloud_profiler_spec.rb904spec/lib/gitlab/feature_categories_spec.rb905spec/models/concerns/taskable_spec.rb906spec/lib/sidebars/concerns/super_sidebar_panel_spec.rb907spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb908spec/services/terraform/states/trigger_destroy_service_spec.rb909spec/services/import/prepare_service_spec.rb910spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb911spec/models/concerns/integrations/reset_secret_fields_spec.rb912spec/lib/gitlab/favicon_spec.rb913spec/lib/gitlab/auth/ldap/auth_hash_spec.rb914spec/lib/gitlab/project_transfer_spec.rb915spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb916spec/lib/bitbucket_server/representation/repo_spec.rb917spec/rubocop/cop/gitlab/doc_url_spec.rb918spec/graphql/resolvers/work_item_resolver_spec.rb919spec/lib/gitlab/qa_spec.rb920spec/models/users/calloutable_spec.rb921spec/lib/gitlab/git_access_design_spec.rb922spec/presenters/terraform/modules_presenter_spec.rb923spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb924spec/serializers/import/manifest_provider_repo_entity_spec.rb925spec/lib/banzai/commit_renderer_spec.rb926spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb927spec/lib/pager_duty/webhook_payload_parser_spec.rb928spec/workers/terraform/states/destroy_worker_spec.rb929spec/serializers/project_serializer_spec.rb930spec/models/ci/pipeline_metadata_spec.rb931spec/lib/banzai/filter/blockquote_fence_filter_spec.rb932spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb933spec/graphql/types/packages/package_type_spec.rb934spec/views/admin/application_settings/repository.html.haml_spec.rb935spec/support_specs/graphql/var_spec.rb936spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb937spec/graphql/types/kas/agent_connection_type_spec.rb938spec/services/packages/debian/extract_deb_metadata_service_spec.rb939spec/lib/gitlab/ci/ansi2json/result_spec.rb940spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb941spec/models/packages/rubygems/metadatum_spec.rb942spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb943spec/models/blob_viewer/server_side_spec.rb944spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb945spec/tooling/lib/tooling/mappings/base_spec.rb946spec/lib/api/entities/snippets/repository_storage_move_spec.rb947spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb948spec/lib/gitlab/database/postgres_hll/buckets_spec.rb949spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb950spec/lib/gitlab/merge_requests/mergeability/redis_interface_spec.rb951spec/validators/sha_validator_spec.rb952spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb953spec/lib/api/validations/validators/untrusted_regexp_spec.rb954spec/lib/gitlab/external_authorization/cache_spec.rb955spec/lib/gitlab/ci/interpolation/config_spec.rb956spec/lib/gitlab/pages/random_domain_spec.rb957spec/graphql/types/issue_type_enum_spec.rb958spec/lib/sidebars/user_profile/panel_spec.rb959spec/services/projects/import_error_filter_spec.rb960spec/lib/bulk_imports/common/extractors/graphql_extractor_spec.rb961spec/graphql/types/commit_signatures/verification_status_enum_spec.rb962spec/lib/sidebars/projects/super_sidebar_menus/operations_menu_spec.rb963spec/initializers/remove_active_job_execute_callback_spec.rb964spec/rubocop/cop/gitlab/union_spec.rb965spec/lib/gitlab/app_json_logger_spec.rb966spec/lib/gitlab/utils/measuring_spec.rb967spec/lib/banzai/pipeline/jira_import/adf_commonmark_pipeline_spec.rb968spec/lib/sidebars/projects/context_spec.rb969spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb970spec/lib/api/helpers/pagination_spec.rb971spec/validators/iso8601_date_validator_spec.rb972spec/dependencies/omniauth_saml_spec.rb973spec/graphql/types/subscription_type_spec.rb974spec/helpers/admin/components_helper_spec.rb975spec/lib/gitlab/kubernetes/role_spec.rb976spec/serializers/evidences/project_entity_spec.rb977Filter specs:978Running specs:979Running all node tests without filter980spec/policies/project_policy_spec.rb981spec/lib/gitlab/middleware/go_spec.rb982spec/services/snippets/update_service_spec.rb983spec/lib/gitlab/database/load_balancing_spec.rb984spec/services/merge_requests/merge_service_spec.rb985spec/models/work_items/parent_link_spec.rb986spec/scripts/lib/glfm/update_specification_spec.rb987spec/graphql/resolvers/project_issues_resolver_spec.rb988spec/lib/gitlab/conflict/file_spec.rb989spec/uploaders/job_artifact_uploader_spec.rb990spec/lib/gitlab/gfm/reference_rewriter_spec.rb991spec/lib/gitlab/background_migration/backfill_integrations_type_new_spec.rb992spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb993spec/lib/gitlab/gitaly_client_spec.rb994spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb995spec/helpers/application_helper_spec.rb996spec/services/members/projects/creator_service_spec.rb997spec/models/concerns/deprecated_assignee_spec.rb998spec/models/resource_label_event_spec.rb999spec/routing/group_routing_spec.rb1000spec/models/projects/data_transfer_spec.rb1001spec/models/service_desk_setting_spec.rb1002spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb1003spec/finders/ci/pipelines_finder_spec.rb1004spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb1005spec/lib/gitlab/process_supervisor_spec.rb1006spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb1007spec/workers/concerns/application_worker_spec.rb1008spec/models/ci/trigger_spec.rb1009spec/models/integrations/drone_ci_spec.rb1010spec/lib/gitlab/email/handler/create_note_on_issuable_handler_spec.rb1011spec/services/clusters/create_service_spec.rb1012spec/lib/gitlab/redis/cache_spec.rb1013spec/models/ci/build_metadata_spec.rb1014spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb1015spec/lib/gitlab/auth/ldap/config_spec.rb1016spec/views/projects/_home_panel.html.haml_spec.rb1017spec/serializers/diff_file_entity_spec.rb1018spec/lib/feature/definition_spec.rb1019spec/lib/gitlab/x509/signature_spec.rb1020spec/services/timelogs/create_service_spec.rb1021spec/services/merge_requests/resolved_discussion_notification_service_spec.rb1022spec/lib/gitlab/ci/artifact_file_reader_spec.rb1023spec/lib/gitlab/deploy_key_access_spec.rb1024spec/services/ci/create_pipeline_service/cache_spec.rb1025spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb1026spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb1027spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb1028spec/lib/api/helpers/packages_helpers_spec.rb1029spec/lib/gitlab/ci/config/entry/cache_spec.rb1030spec/models/ci/runner_manager_spec.rb1031spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb1032spec/views/admin/dashboard/index.html.haml_spec.rb1033spec/presenters/issue_presenter_spec.rb1034spec/models/ci/runner_project_spec.rb1035spec/finders/concerns/finder_with_group_hierarchy_spec.rb1036spec/workers/auto_devops/disable_worker_spec.rb1037spec/services/projects/download_service_spec.rb1038spec/helpers/nav_helper_spec.rb1039spec/serializers/analytics_issue_entity_spec.rb1040spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb1041spec/models/state_note_spec.rb1042spec/lib/gitlab/chat/responder/mattermost_spec.rb1043spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb1044spec/services/ci/runners/set_runner_associated_projects_service_spec.rb1045spec/rack_servers/puma_spec.rb1046spec/initializers/00_deprecations_spec.rb1047spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb1048spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb1049spec/models/packages/nuget/metadatum_spec.rb1050spec/initializers/direct_upload_support_spec.rb1051spec/uploaders/file_mover_spec.rb1052spec/views/layouts/devise_empty.html.haml_spec.rb1053spec/lib/gitlab/jira_import_spec.rb1054spec/services/ci/create_pipeline_service/tags_spec.rb1055spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb1056spec/services/merge_requests/handle_assignees_change_service_spec.rb1057spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb1058spec/models/protected_tag/create_access_level_spec.rb1059spec/lib/constraints/group_url_constrainer_spec.rb1060spec/lib/banzai/reference_parser/milestone_parser_spec.rb1061spec/models/integrations/emails_on_push_spec.rb1062spec/workers/environments/auto_stop_worker_spec.rb1063spec/lib/sidebars/projects/menus/zentao_menu_spec.rb1064spec/services/ci/compare_reports_base_service_spec.rb1065spec/graphql/resolvers/project_pipeline_resolver_spec.rb1066spec/serializers/base_discussion_entity_spec.rb1067spec/services/ci/job_artifacts/track_artifact_report_service_spec.rb1068spec/lib/gitlab/instrumentation_helper_spec.rb1069spec/services/ci/delete_objects_service_spec.rb1070spec/workers/pages_domain_verification_cron_worker_spec.rb1071spec/lib/sidebars/user_profile/menus/activity_menu_spec.rb1072spec/lib/banzai/filter/asset_proxy_filter_spec.rb1073spec/models/concerns/batch_nullify_dependent_associations_spec.rb1074spec/services/work_items/widgets/notifications_service/update_service_spec.rb1075spec/lib/gitlab/memory/reports_daemon_spec.rb1076spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb1077spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb1078spec/serializers/clusters/kubernetes_error_entity_spec.rb1079spec/workers/clusters/applications/activate_integration_worker_spec.rb1080spec/services/ide/terminal_config_service_spec.rb1081spec/services/work_items/widgets/assignees_service/update_service_spec.rb1082spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb1083spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb1084spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb1085spec/lib/gitlab/hotlinking_detector_spec.rb1086spec/lib/gitlab/work_items/work_item_hierarchy_spec.rb1087spec/finders/projects/prometheus/alerts_finder_spec.rb1088spec/graphql/mutations/branches/create_spec.rb1089spec/serializers/merge_request_widget_commit_entity_spec.rb1090spec/finders/merge_request/metrics_finder_spec.rb1091spec/workers/invalid_gpg_signature_update_worker_spec.rb1092spec/lib/gitlab/git/cross_repo_spec.rb1093spec/services/projects/blame_service_spec.rb1094spec/workers/ci/cancel_redundant_pipelines_worker_spec.rb1095spec/validators/json_schema_validator_spec.rb1096spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb1097spec/lib/gitlab/mailgun/webhook_processors/member_invites_spec.rb1098spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb1099spec/lib/gitlab/middleware/compressed_json_spec.rb1100spec/lib/gitlab/internal_post_receive/response_spec.rb1101spec/models/ci/pipeline_schedule_variable_spec.rb1102spec/lib/gitlab/background_migration/delete_orphans_approval_merge_request_rules_spec.rb1103spec/graphql/types/namespace/package_settings_type_spec.rb1104spec/lib/gitlab/ci/config/entry/jobs_spec.rb1105spec/services/files/base_service_spec.rb1106spec/lib/gitlab/repository_url_builder_spec.rb1107spec/workers/packages/cleanup_package_file_worker_spec.rb1108spec/services/packages/create_package_file_service_spec.rb1109spec/support_specs/ability_check_spec.rb1110spec/views/projects/_flash_messages.html.haml_spec.rb1111spec/workers/disallow_two_factor_for_group_worker_spec.rb1112spec/serializers/jira_connect/group_entity_spec.rb1113spec/lib/gitlab/safe_request_purger_spec.rb1114spec/workers/ci/pipeline_artifacts/create_quality_report_worker_spec.rb1115spec/workers/member_invitation_reminder_emails_worker_spec.rb1116spec/serializers/member_serializer_spec.rb1117spec/graphql/types/ci/job_need_union_spec.rb1118spec/graphql/mutations/design_management/move_spec.rb1119spec/lib/api/entities/basic_project_details_spec.rb1120spec/services/authorized_project_update/periodic_recalculate_service_spec.rb1121spec/workers/create_note_diff_file_worker_spec.rb1122spec/lib/gitlab/terraform_registry_token_spec.rb1123spec/workers/error_tracking_issue_link_worker_spec.rb1124spec/presenters/user_presenter_spec.rb1125spec/lib/banzai/filter/inline_diff_filter_spec.rb1126spec/lib/gitlab/ci/config/entry/services_spec.rb1127spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb1128spec/lib/generators/gitlab/usage_metric_generator_spec.rb1129spec/graphql/mutations/clusters/agent_tokens/revoke_spec.rb1130spec/lib/gitlab/ci/status/build/skipped_spec.rb1131spec/models/discussion_note_spec.rb1132spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb1133spec/views/notify/changed_milestone_email.html.haml_spec.rb1134spec/lib/gitlab/utils/json_size_estimator_spec.rb1135spec/views/projects/branches/index.html.haml_spec.rb1136spec/services/merge_requests/mergeability/check_open_status_service_spec.rb1137spec/lib/gitlab/database/migration_spec.rb1138spec/initializers/google_cloud_profiler_spec.rb1139spec/lib/gitlab/feature_categories_spec.rb1140spec/models/concerns/taskable_spec.rb1141spec/lib/sidebars/concerns/super_sidebar_panel_spec.rb1142spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb1143spec/services/terraform/states/trigger_destroy_service_spec.rb1144spec/services/import/prepare_service_spec.rb1145spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb1146spec/models/concerns/integrations/reset_secret_fields_spec.rb1147spec/lib/gitlab/favicon_spec.rb1148spec/lib/gitlab/auth/ldap/auth_hash_spec.rb1149spec/lib/gitlab/project_transfer_spec.rb1150spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb1151spec/lib/bitbucket_server/representation/repo_spec.rb1152spec/rubocop/cop/gitlab/doc_url_spec.rb1153spec/graphql/resolvers/work_item_resolver_spec.rb1154spec/lib/gitlab/qa_spec.rb1155spec/models/users/calloutable_spec.rb1156spec/lib/gitlab/git_access_design_spec.rb1157spec/presenters/terraform/modules_presenter_spec.rb1158spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb1159spec/serializers/import/manifest_provider_repo_entity_spec.rb1160spec/lib/banzai/commit_renderer_spec.rb1161spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb1162spec/lib/pager_duty/webhook_payload_parser_spec.rb1163spec/workers/terraform/states/destroy_worker_spec.rb1164spec/serializers/project_serializer_spec.rb1165spec/models/ci/pipeline_metadata_spec.rb1166spec/lib/banzai/filter/blockquote_fence_filter_spec.rb1167spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb1168spec/graphql/types/packages/package_type_spec.rb1169spec/views/admin/application_settings/repository.html.haml_spec.rb1170spec/support_specs/graphql/var_spec.rb1171spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb1172spec/graphql/types/kas/agent_connection_type_spec.rb1173spec/services/packages/debian/extract_deb_metadata_service_spec.rb1174spec/lib/gitlab/ci/ansi2json/result_spec.rb1175spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb1176spec/models/packages/rubygems/metadatum_spec.rb1177spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb1178spec/models/blob_viewer/server_side_spec.rb1179spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb1180spec/tooling/lib/tooling/mappings/base_spec.rb1181spec/lib/api/entities/snippets/repository_storage_move_spec.rb1182spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb1183spec/lib/gitlab/database/postgres_hll/buckets_spec.rb1184spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb1185spec/lib/gitlab/merge_requests/mergeability/redis_interface_spec.rb1186spec/validators/sha_validator_spec.rb1187spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb1188spec/lib/api/validations/validators/untrusted_regexp_spec.rb1189spec/lib/gitlab/external_authorization/cache_spec.rb1190spec/lib/gitlab/ci/interpolation/config_spec.rb1191spec/lib/gitlab/pages/random_domain_spec.rb1192spec/graphql/types/issue_type_enum_spec.rb1193spec/lib/sidebars/user_profile/panel_spec.rb1194spec/services/projects/import_error_filter_spec.rb1195spec/lib/bulk_imports/common/extractors/graphql_extractor_spec.rb1196spec/graphql/types/commit_signatures/verification_status_enum_spec.rb1197spec/lib/sidebars/projects/super_sidebar_menus/operations_menu_spec.rb1198spec/initializers/remove_active_job_execute_callback_spec.rb1199spec/rubocop/cop/gitlab/union_spec.rb1200spec/lib/gitlab/app_json_logger_spec.rb1201spec/lib/gitlab/utils/measuring_spec.rb1202spec/lib/banzai/pipeline/jira_import/adf_commonmark_pipeline_spec.rb1203spec/lib/sidebars/projects/context_spec.rb1204spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb1205spec/lib/api/helpers/pagination_spec.rb1206spec/validators/iso8601_date_validator_spec.rb1207spec/dependencies/omniauth_saml_spec.rb1208spec/graphql/types/subscription_type_spec.rb1209spec/helpers/admin/components_helper_spec.rb1210spec/lib/gitlab/kubernetes/role_spec.rb1211spec/serializers/evidences/project_entity_spec.rb1212Running all node tests without filter1213Running all node tests without filter1214Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration --default-path spec -- spec/policies/project_policy_spec.rb spec/lib/gitlab/middleware/go_spec.rb spec/services/snippets/update_service_spec.rb spec/lib/gitlab/database/load_balancing_spec.rb spec/services/merge_requests/merge_service_spec.rb spec/models/work_items/parent_link_spec.rb spec/scripts/lib/glfm/update_specification_spec.rb spec/graphql/resolvers/project_issues_resolver_spec.rb spec/lib/gitlab/conflict/file_spec.rb spec/uploaders/job_artifact_uploader_spec.rb spec/lib/gitlab/gfm/reference_rewriter_spec.rb spec/lib/gitlab/background_migration/backfill_integrations_type_new_spec.rb spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb spec/lib/gitlab/gitaly_client_spec.rb spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb spec/helpers/application_helper_spec.rb spec/services/members/projects/creator_service_spec.rb spec/models/concerns/deprecated_assignee_spec.rb spec/models/resource_label_event_spec.rb spec/routing/group_routing_spec.rb spec/models/projects/data_transfer_spec.rb spec/models/service_desk_setting_spec.rb spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb spec/finders/ci/pipelines_finder_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb spec/lib/gitlab/process_supervisor_spec.rb spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb spec/workers/concerns/application_worker_spec.rb spec/models/ci/trigger_spec.rb spec/models/integrations/drone_ci_spec.rb spec/lib/gitlab/email/handler/create_note_on_issuable_handler_spec.rb spec/services/clusters/create_service_spec.rb spec/lib/gitlab/redis/cache_spec.rb spec/models/ci/build_metadata_spec.rb spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb spec/lib/gitlab/auth/ldap/config_spec.rb spec/views/projects/_home_panel.html.haml_spec.rb spec/serializers/diff_file_entity_spec.rb spec/lib/feature/definition_spec.rb spec/lib/gitlab/x509/signature_spec.rb spec/services/timelogs/create_service_spec.rb spec/services/merge_requests/resolved_discussion_notification_service_spec.rb spec/lib/gitlab/ci/artifact_file_reader_spec.rb spec/lib/gitlab/deploy_key_access_spec.rb spec/services/ci/create_pipeline_service/cache_spec.rb spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb spec/lib/api/helpers/packages_helpers_spec.rb spec/lib/gitlab/ci/config/entry/cache_spec.rb spec/models/ci/runner_manager_spec.rb spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb spec/views/admin/dashboard/index.html.haml_spec.rb spec/presenters/issue_presenter_spec.rb spec/models/ci/runner_project_spec.rb spec/finders/concerns/finder_with_group_hierarchy_spec.rb spec/workers/auto_devops/disable_worker_spec.rb spec/services/projects/download_service_spec.rb spec/helpers/nav_helper_spec.rb spec/serializers/analytics_issue_entity_spec.rb spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb spec/models/state_note_spec.rb spec/lib/gitlab/chat/responder/mattermost_spec.rb spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb spec/services/ci/runners/set_runner_associated_projects_service_spec.rb spec/rack_servers/puma_spec.rb spec/initializers/00_deprecations_spec.rb spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb spec/models/packages/nuget/metadatum_spec.rb spec/initializers/direct_upload_support_spec.rb spec/uploaders/file_mover_spec.rb spec/views/layouts/devise_empty.html.haml_spec.rb spec/lib/gitlab/jira_import_spec.rb spec/services/ci/create_pipeline_service/tags_spec.rb spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb spec/services/merge_requests/handle_assignees_change_service_spec.rb spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb spec/models/protected_tag/create_access_level_spec.rb spec/lib/constraints/group_url_constrainer_spec.rb spec/lib/banzai/reference_parser/milestone_parser_spec.rb spec/models/integrations/emails_on_push_spec.rb spec/workers/environments/auto_stop_worker_spec.rb spec/lib/sidebars/projects/menus/zentao_menu_spec.rb spec/services/ci/compare_reports_base_service_spec.rb spec/graphql/resolvers/project_pipeline_resolver_spec.rb spec/serializers/base_discussion_entity_spec.rb spec/services/ci/job_artifacts/track_artifact_report_service_spec.rb spec/lib/gitlab/instrumentation_helper_spec.rb spec/services/ci/delete_objects_service_spec.rb spec/workers/pages_domain_verification_cron_worker_spec.rb spec/lib/sidebars/user_profile/menus/activity_menu_spec.rb spec/lib/banzai/filter/asset_proxy_filter_spec.rb spec/models/concerns/batch_nullify_dependent_associations_spec.rb spec/services/work_items/widgets/notifications_service/update_service_spec.rb spec/lib/gitlab/memory/reports_daemon_spec.rb spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb spec/serializers/clusters/kubernetes_error_entity_spec.rb spec/workers/clusters/applications/activate_integration_worker_spec.rb spec/services/ide/terminal_config_service_spec.rb spec/services/work_items/widgets/assignees_service/update_service_spec.rb spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb spec/lib/gitlab/hotlinking_detector_spec.rb spec/lib/gitlab/work_items/work_item_hierarchy_spec.rb spec/finders/projects/prometheus/alerts_finder_spec.rb spec/graphql/mutations/branches/create_spec.rb spec/serializers/merge_request_widget_commit_entity_spec.rb spec/finders/merge_request/metrics_finder_spec.rb spec/workers/invalid_gpg_signature_update_worker_spec.rb spec/lib/gitlab/git/cross_repo_spec.rb spec/services/projects/blame_service_spec.rb spec/workers/ci/cancel_redundant_pipelines_worker_spec.rb spec/validators/json_schema_validator_spec.rb spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb spec/lib/gitlab/mailgun/webhook_processors/member_invites_spec.rb spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb spec/lib/gitlab/middleware/compressed_json_spec.rb spec/lib/gitlab/internal_post_receive/response_spec.rb spec/models/ci/pipeline_schedule_variable_spec.rb spec/lib/gitlab/background_migration/delete_orphans_approval_merge_request_rules_spec.rb spec/graphql/types/namespace/package_settings_type_spec.rb spec/lib/gitlab/ci/config/entry/jobs_spec.rb spec/services/files/base_service_spec.rb spec/lib/gitlab/repository_url_builder_spec.rb spec/workers/packages/cleanup_package_file_worker_spec.rb spec/services/packages/create_package_file_service_spec.rb spec/support_specs/ability_check_spec.rb spec/views/projects/_flash_messages.html.haml_spec.rb spec/workers/disallow_two_factor_for_group_worker_spec.rb spec/serializers/jira_connect/group_entity_spec.rb spec/lib/gitlab/safe_request_purger_spec.rb spec/workers/ci/pipeline_artifacts/create_quality_report_worker_spec.rb spec/workers/member_invitation_reminder_emails_worker_spec.rb spec/serializers/member_serializer_spec.rb spec/graphql/types/ci/job_need_union_spec.rb spec/graphql/mutations/design_management/move_spec.rb spec/lib/api/entities/basic_project_details_spec.rb spec/services/authorized_project_update/periodic_recalculate_service_spec.rb spec/workers/create_note_diff_file_worker_spec.rb spec/lib/gitlab/terraform_registry_token_spec.rb spec/workers/error_tracking_issue_link_worker_spec.rb spec/presenters/user_presenter_spec.rb spec/lib/banzai/filter/inline_diff_filter_spec.rb spec/lib/gitlab/ci/config/entry/services_spec.rb spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb spec/lib/generators/gitlab/usage_metric_generator_spec.rb spec/graphql/mutations/clusters/agent_tokens/revoke_spec.rb spec/lib/gitlab/ci/status/build/skipped_spec.rb spec/models/discussion_note_spec.rb spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb spec/views/notify/changed_milestone_email.html.haml_spec.rb spec/lib/gitlab/utils/json_size_estimator_spec.rb spec/views/projects/branches/index.html.haml_spec.rb spec/services/merge_requests/mergeability/check_open_status_service_spec.rb spec/lib/gitlab/database/migration_spec.rb spec/initializers/google_cloud_profiler_spec.rb spec/lib/gitlab/feature_categories_spec.rb spec/models/concerns/taskable_spec.rb spec/lib/sidebars/concerns/super_sidebar_panel_spec.rb spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb spec/services/terraform/states/trigger_destroy_service_spec.rb spec/services/import/prepare_service_spec.rb spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb spec/models/concerns/integrations/reset_secret_fields_spec.rb spec/lib/gitlab/favicon_spec.rb spec/lib/gitlab/auth/ldap/auth_hash_spec.rb spec/lib/gitlab/project_transfer_spec.rb spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb spec/lib/bitbucket_server/representation/repo_spec.rb spec/rubocop/cop/gitlab/doc_url_spec.rb spec/graphql/resolvers/work_item_resolver_spec.rb spec/lib/gitlab/qa_spec.rb spec/models/users/calloutable_spec.rb spec/lib/gitlab/git_access_design_spec.rb spec/presenters/terraform/modules_presenter_spec.rb spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb spec/serializers/import/manifest_provider_repo_entity_spec.rb spec/lib/banzai/commit_renderer_spec.rb spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb spec/lib/pager_duty/webhook_payload_parser_spec.rb spec/workers/terraform/states/destroy_worker_spec.rb spec/serializers/project_serializer_spec.rb spec/models/ci/pipeline_metadata_spec.rb spec/lib/banzai/filter/blockquote_fence_filter_spec.rb spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb spec/graphql/types/packages/package_type_spec.rb spec/views/admin/application_settings/repository.html.haml_spec.rb spec/support_specs/graphql/var_spec.rb spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb spec/graphql/types/kas/agent_connection_type_spec.rb spec/services/packages/debian/extract_deb_metadata_service_spec.rb spec/lib/gitlab/ci/ansi2json/result_spec.rb spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb spec/models/packages/rubygems/metadatum_spec.rb spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb spec/models/blob_viewer/server_side_spec.rb spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb spec/tooling/lib/tooling/mappings/base_spec.rb spec/lib/api/entities/snippets/repository_storage_move_spec.rb spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb spec/lib/gitlab/database/postgres_hll/buckets_spec.rb spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb spec/lib/gitlab/merge_requests/mergeability/redis_interface_spec.rb spec/validators/sha_validator_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb spec/lib/api/validations/validators/untrusted_regexp_spec.rb spec/lib/gitlab/external_authorization/cache_spec.rb spec/lib/gitlab/ci/interpolation/config_spec.rb spec/lib/gitlab/pages/random_domain_spec.rb spec/graphql/types/issue_type_enum_spec.rb spec/lib/sidebars/user_profile/panel_spec.rb spec/services/projects/import_error_filter_spec.rb spec/lib/bulk_imports/common/extractors/graphql_extractor_spec.rb spec/graphql/types/commit_signatures/verification_status_enum_spec.rb spec/lib/sidebars/projects/super_sidebar_menus/operations_menu_spec.rb spec/initializers/remove_active_job_execute_callback_spec.rb spec/rubocop/cop/gitlab/union_spec.rb spec/lib/gitlab/app_json_logger_spec.rb spec/lib/gitlab/utils/measuring_spec.rb spec/lib/banzai/pipeline/jira_import/adf_commonmark_pipeline_spec.rb spec/lib/sidebars/projects/context_spec.rb spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb spec/lib/api/helpers/pagination_spec.rb spec/validators/iso8601_date_validator_spec.rb spec/dependencies/omniauth_saml_spec.rb spec/graphql/types/subscription_type_spec.rb spec/helpers/admin/components_helper_spec.rb spec/lib/gitlab/kubernetes/role_spec.rb spec/serializers/evidences/project_entity_spec.rbKnapsack report generator started!1215warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.1217Run options: exclude {:quarantine=>true, :level=>"background_migration"}1218Test environment set up in 1.628612441 seconds1219ProjectPolicy1220 does not include the read permissions when the issue author is not a member of the private project1221 with no project feature1222 returns false1223 behaves like model with wiki policies1224 container_level: :public, access_level: :enabled, membership: :admin, access: :all1225 allows actions based on membership1226 container_level: :public, access_level: :enabled, membership: :maintainer, access: :maintainer1227 allows actions based on membership1228 container_level: :public, access_level: :enabled, membership: :developer, access: :developer1229 allows actions based on membership1230 container_level: :public, access_level: :enabled, membership: :reporter, access: :reporter1231 allows actions based on membership1232 container_level: :public, access_level: :enabled, membership: :guest, access: :guest1233 allows actions based on membership1234 container_level: :public, access_level: :enabled, membership: :non_member, access: :guest1235 allows actions based on membership1236 container_level: :public, access_level: :enabled, membership: :anonymous, access: :guest1237 allows actions based on membership1238 container_level: :public, access_level: :private, membership: :admin, access: :all1239 allows actions based on membership1240 container_level: :public, access_level: :private, membership: :maintainer, access: :maintainer1241 allows actions based on membership1242 container_level: :public, access_level: :private, membership: :developer, access: :developer1243 allows actions based on membership1244 container_level: :public, access_level: :private, membership: :reporter, access: :reporter1245 allows actions based on membership1246 container_level: :public, access_level: :private, membership: :guest, access: :guest1247 allows actions based on membership1248 container_level: :public, access_level: :private, membership: :non_member, access: nil1249 allows actions based on membership1250 container_level: :public, access_level: :private, membership: :anonymous, access: nil1251 allows actions based on membership1252 container_level: :public, access_level: :disabled, membership: :admin, access: nil1253 allows actions based on membership1254 container_level: :public, access_level: :disabled, membership: :maintainer, access: nil1255 allows actions based on membership1256 container_level: :public, access_level: :disabled, membership: :developer, access: nil1257 allows actions based on membership1258 container_level: :public, access_level: :disabled, membership: :reporter, access: nil1259 allows actions based on membership1260 container_level: :public, access_level: :disabled, membership: :guest, access: nil1261 allows actions based on membership1262 container_level: :public, access_level: :disabled, membership: :non_member, access: nil1263 allows actions based on membership1264 container_level: :public, access_level: :disabled, membership: :anonymous, access: nil1265 allows actions based on membership1266 container_level: :internal, access_level: :enabled, membership: :admin, access: :all1267 allows actions based on membership1268 container_level: :internal, access_level: :enabled, membership: :maintainer, access: :maintainer1269 allows actions based on membership1270 container_level: :internal, access_level: :enabled, membership: :developer, access: :developer1271 allows actions based on membership1272 container_level: :internal, access_level: :enabled, membership: :reporter, access: :reporter1273 allows actions based on membership1274 container_level: :internal, access_level: :enabled, membership: :guest, access: :guest1275 allows actions based on membership1276 container_level: :internal, access_level: :enabled, membership: :non_member, access: :guest1277 allows actions based on membership1278 container_level: :internal, access_level: :enabled, membership: :anonymous, access: nil1279 allows actions based on membership1280 container_level: :internal, access_level: :private, membership: :admin, access: :all1281 allows actions based on membership1282 container_level: :internal, access_level: :private, membership: :maintainer, access: :maintainer1283 allows actions based on membership1284 container_level: :internal, access_level: :private, membership: :developer, access: :developer1285 allows actions based on membership1286 container_level: :internal, access_level: :private, membership: :reporter, access: :reporter1287 allows actions based on membership1288 container_level: :internal, access_level: :private, membership: :guest, access: :guest1289 allows actions based on membership1290 container_level: :internal, access_level: :private, membership: :non_member, access: nil1291 allows actions based on membership1292 container_level: :internal, access_level: :private, membership: :anonymous, access: nil1293 allows actions based on membership1294 container_level: :internal, access_level: :disabled, membership: :admin, access: nil1295 allows actions based on membership1296 container_level: :internal, access_level: :disabled, membership: :maintainer, access: nil1297 allows actions based on membership1298 container_level: :internal, access_level: :disabled, membership: :developer, access: nil1299 allows actions based on membership1300 container_level: :internal, access_level: :disabled, membership: :reporter, access: nil1301 allows actions based on membership1302 container_level: :internal, access_level: :disabled, membership: :guest, access: nil1303 allows actions based on membership1304 container_level: :internal, access_level: :disabled, membership: :non_member, access: nil1305 allows actions based on membership1306 container_level: :internal, access_level: :disabled, membership: :anonymous, access: nil1307 allows actions based on membership1308 container_level: :private, access_level: :private, membership: :admin, access: :all1309 allows actions based on membership1310 container_level: :private, access_level: :private, membership: :maintainer, access: :maintainer1311 allows actions based on membership1312 container_level: :private, access_level: :private, membership: :developer, access: :developer1313 allows actions based on membership1314 container_level: :private, access_level: :private, membership: :reporter, access: :reporter1315 allows actions based on membership1316 container_level: :private, access_level: :private, membership: :guest, access: :guest1317 allows actions based on membership1318 container_level: :private, access_level: :private, membership: :non_member, access: nil1319 allows actions based on membership1320 container_level: :private, access_level: :private, membership: :anonymous, access: nil1321 allows actions based on membership1322 container_level: :private, access_level: :disabled, membership: :admin, access: nil1323 allows actions based on membership1324 container_level: :private, access_level: :disabled, membership: :maintainer, access: nil1325 allows actions based on membership1326 container_level: :private, access_level: :disabled, membership: :developer, access: nil1327 allows actions based on membership1328 container_level: :private, access_level: :disabled, membership: :reporter, access: nil1329 allows actions based on membership1330 container_level: :private, access_level: :disabled, membership: :guest, access: nil1331 allows actions based on membership1332 container_level: :private, access_level: :disabled, membership: :non_member, access: nil1333 allows actions based on membership1334 container_level: :private, access_level: :disabled, membership: :anonymous, access: nil1335 allows actions based on membership1336 issues feature1337 when the feature is disabled1338 does not include the issues permissions1339 disables boards and lists permissions1340 when external tracker configured1341 does not include the issues permissions1342 merge requests feature1343 disallows all permissions when the feature is disabled1344 for a guest in a private project1345 disallows the guest from all merge request permissions1346 when both issues and merge requests are disabled1347 does not include the issues permissions1348 creating_merge_request_in1349 when the current_user can download_code1350 when project is public1351 when the current_user is guest1352 is expected to be allowed :create_merge_request_in1353 when project is internal1354 when the current_user is guest1355 is expected to be allowed :create_merge_request_in1356 when project is private1357 when the current_user is guest1358 is expected not to be allowed :create_merge_request_in1359 when the current_user is reporter or above1360 is expected to be allowed :create_merge_request_in1361 when the current_user can not download code1362 when project is public1363 when the current_user is guest1364 is expected not to be allowed :create_merge_request_in1365 when project is internal1366 when the current_user is guest1367 is expected not to be allowed :create_merge_request_in1368 when project is private1369 when the current_user is guest1370 is expected not to be allowed :create_merge_request_in1371 when the current_user is reporter or above1372 is expected not to be allowed :create_merge_request_in1373 pipeline feature1374 for confirmed user1375 allows modify pipelines1376 for unconfirmed user1377 disallows to modify pipelines1378 destroy permission1379 for developers1380 prevents :destroy_pipeline1381 for maintainers1382 prevents :destroy_pipeline1383 for project owner1384 allows :destroy_pipeline1385 on archived projects1386 prevents :destroy_pipeline1387 on archived pending_delete projects1388 allows :destroy_pipeline1389 builds feature1390 when builds are disabled1391 disallows all permissions except pipeline when the feature is disabled1392 when builds are disabled only for some users1393 disallows pipeline and commit_status permissions1394 repository feature1395 when user is a project member1396 when it is disabled1397 disallows all permissions1398 when user is non-member1399 when access level is private1400 disallows all permissions1401 behaves like project policies as anonymous1402 abilities for public projects1403 when a project has pending invites1404 does not grant owner access1405 behaves like archived project policies1406 when the project is archived1407 disables write actions on all relevant project features1408 disables some other important write actions1409 does not disable other abilities1410 abilities for non-public projects1411 is expected to be banned1412 behaves like project policies as guest1413 as a direct project member1414 abilities for public projects1415 is expected not to be allowed :set_note_created_at1416 abilities for non-public projects1417 is expected not to be allowed :set_note_created_at1418 behaves like deploy token does not get confused with user1419 is expected not to be allowed :set_note_created_at1420 behaves like archived project policies1421 when the project is archived1422 disables write actions on all relevant project features1423 disables some other important write actions1424 does not disable other abilities1425 public builds enabled1426 is expected to be allowed :read_pipeline1427 when public builds disabled1428 is expected not to be allowed :read_pipeline1429 when builds are disabled1430 is expected to be allowed :read_pipeline1431 as an inherited member from the group1432 abilities for private projects1433 is expected not to be allowed :set_note_created_at1434 behaves like project policies as reporter1435 abilities for non-public projects1436 is expected not to be allowed :set_note_created_at1437 behaves like deploy token does not get confused with user1438 is expected not to be allowed :set_note_created_at1439 behaves like archived project policies1440 when the project is archived1441 disables write actions on all relevant project features1442 disables some other important write actions1443 does not disable other abilities1444 as an inherited member from the group1445 abilities for private projects1446 is expected not to be allowed :set_note_created_at1447 behaves like project policies as developer1448 abilities for non-public projects1449 is expected not to be allowed :set_note_created_at1450 behaves like deploy token does not get confused with user1451 is expected not to be allowed :set_note_created_at1452 behaves like archived project policies1453 when the project is archived1454 disables write actions on all relevant project features1455 disables some other important write actions1456 does not disable other abilities1457 as an inherited member from the group1458 abilities for private projects1459 is expected not to be allowed :set_note_created_at1460 behaves like project policies as maintainer1461 abilities for non-public projects1462 is expected not to be allowed :set_note_created_at1463 behaves like deploy token does not get confused with user1464 is expected not to be allowed :set_note_created_at1465 behaves like archived project policies1466 when the project is archived1467 disables write actions on all relevant project features1468 disables some other important write actions1469 does not disable other abilities1470 behaves like project policies as owner1471 abilities for non-public projects1472 is expected to be allowed :set_note_created_at1473 behaves like deploy token does not get confused with user1474 is expected not to be allowed :set_note_created_at1475 behaves like archived project policies1476 when the project is archived1477 disables write actions on all relevant project features1478 disables some other important write actions1479 does not disable other abilities1480 behaves like project policies as admin with admin mode1481 abilities for non-public projects1482 is expected to be allowed :set_note_created_at1483 deploy token does not get confused with user1484 is expected not to be allowed :set_note_created_at1485 behaves like archived project policies1486 when the project is archived1487 disables write actions on all relevant project features1488 disables some other important write actions1489 does not disable other abilities1490 abilities for all project visibility1491 behaves like project private features with read_all_resources ability1492 for public projects1493 allows the download_code ability1494 for internal projects1495 allows the download_code ability1496 for private projects1497 allows the download_code ability1498 behaves like project policies as admin without admin mode1499 abilities for non-public projects1500 is expected to be banned1501 deploy token does not get confused with user1502 is expected to be banned1503 when a public project has merge requests allowing access1504 does not allow pushing code1505 allows pushing if the user is a member with push access to the target project1506 disallows abilities to a maintainer if the merge request was closed1507 importing members from another project1508 with maintainer1509 is expected to be allowed :import_project_members_from_another_project1510 with owner1511 is expected to be allowed :import_project_members_from_another_project1512 with guest1513 is expected to be disallowed :import_project_members_from_another_project1514 with reporter1515 is expected to be disallowed :import_project_members_from_another_project1516 with developer1517 is expected to be disallowed :import_project_members_from_another_project1518 with anonymous1519 is expected to be disallowed :import_project_members_from_another_project1520 with an admin1521 when admin mode is enabled1522 is expected to be allowed :import_project_members_from_another_project1523 when admin mode is disabled1524 is expected not to be allowed :import_project_members_from_another_project1525 importing work items1526 with reporter1527 is expected to be allowed :import_work_items1528 with developer1529 is expected to be allowed :import_work_items1530 with maintainer1531 is expected to be allowed :import_work_items1532 with owner1533 is expected to be allowed :import_work_items1534 with guest1535 is expected to be disallowed :import_work_items1536 with anonymous1537 is expected to be disallowed :import_work_items1538 with an admin1539 when admin mode is enabled1540 is expected to be allowed :import_work_items1541 when admin mode is disabled1542 is expected not to be allowed :import_work_items1543 reading usage quotas1544 with maintainer1545 is expected to be allowed :read_usage_quotas1546 with owner1547 is expected to be allowed :read_usage_quotas1548 with guest1549 is expected to be disallowed :read_usage_quotas1550 with reporter1551 is expected to be disallowed :read_usage_quotas1552 with developer1553 is expected to be disallowed :read_usage_quotas1554 with anonymous1555 is expected to be disallowed :read_usage_quotas1556 with an admin1557 when admin mode is enabled1558 is expected to be allowed :read_usage_quotas1559 when admin mode is disabled1560 is expected not to be allowed :read_usage_quotas1561 behaves like clusterable policies1562 #add_cluster?1563 with a reporter1564 is expected not to be allowed :read_cluster1565 is expected not to be allowed :add_cluster1566 is expected not to be allowed :create_cluster1567 is expected not to be allowed :update_cluster1568 is expected not to be allowed :admin_cluster1569 with a developer1570 is expected to be allowed :read_cluster1571 is expected not to be allowed :add_cluster1572 is expected not to be allowed :create_cluster1573 is expected not to be allowed :update_cluster1574 is expected not to be allowed :admin_cluster1575 with a maintainer1576 with no clusters1577 is expected to be allowed :read_cluster1578 is expected to be allowed :add_cluster1579 is expected to be allowed :create_cluster1580 is expected to be allowed :update_cluster1581 is expected to be allowed :admin_cluster1582 owner access1583 personal project1584 allows owner access1585 group project1586 group members1587 allows owner access1588 with timeline event tags1589 when user is member of the project1590 allows access to timeline event tags1591 when user is a maintainer/owner1592 allows to create timeline event tags1593 when user is a developer/guest/reporter1594 disallows creation1595 when user is not a member of the project1596 disallows access to the timeline event tags1597 reading a project1598 allows access when a user has read access to the repo1599 never checks the external service1600 with an external authorization service1601 allows access when the external service allows it1602 prevents all but seeing a public project in a list when access is denied1603 passes the full path to external authorization for logging purposes1604 with an admin1605 when admin mode is enabled1606 does not check the external service and allows access1607 when admin mode is disabled1608 checks the external service and allows access1609 forking a project1610 anonymous user1611 is expected to be disallowed :fork_project1612 project member1613 guest1614 is expected to be disallowed :fork_project1615 reporter1616 is expected to be allowed :fork_project1617 developer1618 is expected to be allowed :fork_project1619 maintainer1620 is expected to be allowed :fork_project1621 create_task1622 when user is member of the project1623 is expected to be allowed :create_task1624 read_grafana1625 project_visibility: :public, role: :anonymous, allowed: false1626 is expected not to be allowed :read_grafana1627 project_visibility: :public, role: :guest, allowed: false1628 is expected not to be allowed :read_grafana1629 project_visibility: :public, role: :reporter, allowed: true1630 is expected to be allowed :read_grafana1631 project_visibility: :internal, role: :anonymous, allowed: false1632 is expected not to be allowed :read_grafana1633 project_visibility: :internal, role: :guest, allowed: true1634 is expected to be allowed :read_grafana1635 project_visibility: :internal, role: :reporter, allowed: true1636 is expected to be allowed :read_grafana1637 project_visibility: :private, role: :anonymous, allowed: false1638 is expected not to be allowed :read_grafana1639 project_visibility: :private, role: :guest, allowed: true1640 is expected to be allowed :read_grafana1641 project_visibility: :private, role: :reporter, allowed: true1642 is expected to be allowed :read_grafana1643 read_prometheus1644 project_visibility: :public, role: :anonymous, allowed: false1645 is expected not to be allowed :read_prometheus1646 project_visibility: :public, role: :guest, allowed: false1647 is expected not to be allowed :read_prometheus1648 project_visibility: :public, role: :reporter, allowed: true1649 is expected to be allowed :read_prometheus1650 project_visibility: :internal, role: :anonymous, allowed: false1651 is expected not to be allowed :read_prometheus1652 project_visibility: :internal, role: :guest, allowed: false1653 is expected not to be allowed :read_prometheus1654 project_visibility: :internal, role: :reporter, allowed: true1655 is expected to be allowed :read_prometheus1656 project_visibility: :private, role: :anonymous, allowed: false1657 is expected not to be allowed :read_prometheus1658 project_visibility: :private, role: :guest, allowed: false1659 is expected not to be allowed :read_prometheus1660 project_visibility: :private, role: :reporter, allowed: true1661 is expected to be allowed :read_prometheus1662 update_max_artifacts_size1663 when no user1664 is expected not to be allowed :update_max_artifacts_size1665 admin1666 when admin mode is enabled1667 is expected to be allowed :update_max_artifacts_size1668 when admin mode is disabled1669 is expected not to be allowed :update_max_artifacts_size1670 guest1671 is expected not to be allowed :update_max_artifacts_size1672 reporter1673 is expected not to be allowed :update_max_artifacts_size1674 developer1675 is expected not to be allowed :update_max_artifacts_size1676 maintainer1677 is expected not to be allowed :update_max_artifacts_size1678 owner1679 is expected not to be allowed :update_max_artifacts_size1680 read_storage_disk_path1681 when no user1682 is expected not to be allowed :read_storage_disk_path1683 admin1684 when admin mode is enabled1685 is expected to be allowed :read_storage_disk_path1686 when admin mode is disabled1687 is expected not to be allowed :read_storage_disk_path1688 guest1689 is expected not to be allowed :read_storage_disk_path1690 reporter1691 is expected not to be allowed :read_storage_disk_path1692 developer1693 is expected not to be allowed :read_storage_disk_path1694 maintainer1695 is expected not to be allowed :read_storage_disk_path1696 owner1697 is expected not to be allowed :read_storage_disk_path1698 alert bot1699 is expected to be allowed :reporter_access1700 within a private project1701 is expected to be allowed :admin_issue1702 set_pipeline_variables1703 when user is developer1704 when project allows user defined variables1705 is expected to be allowed :set_pipeline_variables1706 when project restricts use of user defined variables1707 is expected not to be allowed :set_pipeline_variables1708 when user is maintainer1709 when project allows user defined variables1710 is expected to be allowed :set_pipeline_variables1711 when project restricts use of user defined variables1712 is expected to be allowed :set_pipeline_variables1713 support bot1714 with service desk disabled1715 is expected to be allowed :public_access1716 is expected not to be allowed :read_project1717 with service desk enabled1718 is expected to be allowed :read_work_item1719 when issues are protected members only1720 is expected to be allowed :read_work_item1721 project bots1722 project_bot_access1723 when regular user and part of the project1724 is expected not to be allowed :project_bot_access1725 when project bot and not part of the project1726 is expected not to be allowed :project_bot_access1727 when project bot and part of the project1728 is expected to be allowed :project_bot_access1729 with resource access tokens1730 is expected not to be allowed :create_resource_access_tokens1731 read_prometheus_alerts1732 with admin1733 when admin mode is enabled1734 is expected to be allowed :read_prometheus_alerts1735 when admin mode is disabled1736 is expected to be disallowed :read_prometheus_alerts1737 with owner1738 is expected to be allowed :read_prometheus_alerts1739 with maintainer1740 is expected to be allowed :read_prometheus_alerts1741 with developer1742 is expected to be disallowed :read_prometheus_alerts1743 with reporter1744 is expected to be disallowed :read_prometheus_alerts1745 with guest1746 is expected to be disallowed :read_prometheus_alerts1747 with anonymous1748 is expected to be disallowed :read_prometheus_alerts1749 metrics_dashboard feature1750 public project1751 feature private1752 with reporter1753 is expected to be allowed :metrics_dashboard1754 is expected to be allowed :read_prometheus1755 is expected to be allowed :read_deployment1756 is expected to be allowed :read_metrics_user_starred_dashboard1757 is expected to be allowed :create_metrics_user_starred_dashboard1758 with guest1759 is expected to be disallowed :metrics_dashboard1760 with anonymous1761 is expected to be disallowed :metrics_dashboard1762 feature enabled1763 with reporter1764 is expected to be allowed :metrics_dashboard1765 is expected to be allowed :read_prometheus1766 is expected to be allowed :read_deployment1767 is expected to be allowed :read_metrics_user_starred_dashboard1768 is expected to be allowed :create_metrics_user_starred_dashboard1769 with guest1770 is expected to be allowed :metrics_dashboard1771 is expected to be disallowed :read_prometheus1772 is expected to be allowed :read_deployment1773 is expected to be allowed :read_metrics_user_starred_dashboard1774 is expected to be allowed :create_metrics_user_starred_dashboard1775 with anonymous1776 is expected to be allowed :metrics_dashboard1777 is expected to be disallowed :read_prometheus1778 is expected to be allowed :read_deployment1779 is expected to be disallowed :read_metrics_user_starred_dashboard1780 is expected to be disallowed :create_metrics_user_starred_dashboard1781 internal project1782 feature private1783 with reporter1784 is expected to be allowed :metrics_dashboard1785 is expected to be allowed :read_prometheus1786 is expected to be allowed :read_deployment1787 is expected to be allowed :read_metrics_user_starred_dashboard1788 is expected to be allowed :create_metrics_user_starred_dashboard1789 with guest1790 is expected to be disallowed :metrics_dashboard1791 is expected to be disallowed :read_prometheus1792 with anonymous1793 is expected to be disallowed :metrics_dashboard1794 is expected to be disallowed :read_prometheus1795 feature enabled1796 with reporter1797 is expected to be allowed :metrics_dashboard1798 is expected to be allowed :read_prometheus1799 is expected to be allowed :read_deployment1800 is expected to be allowed :read_metrics_user_starred_dashboard1801 is expected to be allowed :create_metrics_user_starred_dashboard1802 with guest1803 is expected to be allowed :metrics_dashboard1804 is expected to be disallowed :read_prometheus1805 is expected to be allowed :read_deployment1806 is expected to be allowed :read_metrics_user_starred_dashboard1807 is expected to be allowed :create_metrics_user_starred_dashboard1808 with anonymous1809 is expected to be disallowed :metrics_dashboard1810 is expected to be disallowed :read_prometheus1811 private project1812 feature private1813 with reporter1814 is expected to be allowed :metrics_dashboard1815 is expected to be allowed :read_prometheus1816 is expected to be allowed :read_deployment1817 is expected to be allowed :read_metrics_user_starred_dashboard1818 is expected to be allowed :create_metrics_user_starred_dashboard1819 with guest1820 is expected to be disallowed :metrics_dashboard1821 is expected to be disallowed :read_prometheus1822 with anonymous1823 is expected to be disallowed :metrics_dashboard1824 is expected to be disallowed :read_prometheus1825 feature enabled1826 with reporter1827 is expected to be allowed :metrics_dashboard1828 is expected to be allowed :read_prometheus1829 is expected to be allowed :read_deployment1830 is expected to be allowed :read_metrics_user_starred_dashboard1831 is expected to be allowed :create_metrics_user_starred_dashboard1832 with guest1833 is expected to be disallowed :metrics_dashboard1834 is expected to be disallowed :read_prometheus1835 with anonymous1836 is expected to be disallowed :metrics_dashboard1837 is expected to be disallowed :read_prometheus1838 feature disabled1839 with reporter1840 is expected to be disallowed :metrics_dashboard1841 with guest1842 is expected to be disallowed :metrics_dashboard1843 with anonymous1844 is expected to be disallowed :metrics_dashboard1845 deploy key access1846 private project1847 when a read deploy key is enabled in the project1848 is expected to be allowed :download_code1849 is expected to be disallowed :push_code1850 is expected to be disallowed :read_project1851 when a write deploy key is enabled in the project1852 is expected to be allowed :download_code1853 is expected to be allowed :push_code1854 is expected to be disallowed :read_project1855 when the deploy key is not enabled in the project1856 is expected to be disallowed :download_code1857 is expected to be disallowed :push_code1858 is expected to be disallowed :read_project1859 deploy token access1860 private project1861 a deploy token with read_registry scope1862 is expected to be allowed :read_container_image1863 is expected to be disallowed :create_container_image1864 with registry disabled1865 is expected to be disallowed :read_container_image1866 is expected to be disallowed :create_container_image1867 a deploy token with write_registry scope1868 is expected to be disallowed :read_container_image1869 is expected to be allowed :create_container_image1870 with registry disabled1871 is expected to be disallowed :read_container_image1872 is expected to be disallowed :create_container_image1873 a deploy token with no registry scope1874 is expected to be disallowed :read_container_image1875 is expected to be disallowed :create_container_image1876 a deploy token with read_package_registry scope1877 is expected to be allowed :read_project1878 is expected to be allowed :read_package1879 is expected to be disallowed :create_package1880 behaves like package access with repository disabled1881 is expected to be allowed :read_package1882 a deploy token with write_package_registry scope1883 is expected to be allowed :create_package1884 is expected to be allowed :read_package1885 is expected to be allowed :read_project1886 is expected to be allowed :destroy_package1887 behaves like package access with repository disabled1888 is expected to be allowed :read_package1889 public project1890 a deploy token with read_registry scope1891 is expected to be allowed :read_container_image1892 is expected to be disallowed :create_container_image1893 with registry disabled1894 is expected to be disallowed :read_container_image1895 is expected to be disallowed :create_container_image1896 with registry private1897 is expected to be allowed :read_container_image1898 is expected to be disallowed :create_container_image1899 a deploy token with write_registry scope1900 is expected to be allowed :read_container_image1901 is expected to be allowed :create_container_image1902 with registry disabled1903 is expected to be disallowed :read_container_image1904 is expected to be disallowed :create_container_image1905 with registry private1906 is expected to be allowed :read_container_image1907 is expected to be allowed :create_container_image1908 a deploy token with no registry scope1909 is expected to be disallowed :read_container_image1910 is expected to be disallowed :create_container_image1911 create_web_ide_terminal1912 with admin1913 when admin mode enabled1914 is expected to be allowed :create_web_ide_terminal1915 when admin mode disabled1916 is expected to be disallowed :create_web_ide_terminal1917 with owner1918 is expected to be allowed :create_web_ide_terminal1919 with maintainer1920 is expected to be allowed :create_web_ide_terminal1921 with developer1922 is expected to be disallowed :create_web_ide_terminal1923 with reporter1924 is expected to be disallowed :create_web_ide_terminal1925 with guest1926 is expected to be disallowed :create_web_ide_terminal1927 with non member1928 is expected to be disallowed :create_web_ide_terminal1929 with anonymous1930 is expected to be disallowed :create_web_ide_terminal1931 read_repository_graphs1932 when user can download_code1933 is expected to be allowed :read_repository_graphs1934 when user cannot download_code1935 is expected to be disallowed :read_repository_graphs1936 security configuration feature1937 guest1938 prevents reading security configuration1939 reporter1940 prevents reading security configuration1941 developer1942 allows reading security configuration1943 maintainer1944 allows reading security configuration1945 owner1946 allows reading security configuration1947 infrastructure google cloud feature1948 guest1949 disallows managing google cloud1950 reporter1951 disallows managing google cloud1952 developer1953 disallows managing google cloud1954 maintainer1955 allows managing google cloud1956 owner1957 allows managing google cloud1958 infrastructure aws feature1959 guest1960 disallows managing aws1961 reporter1962 disallows managing aws1963 developer1964 disallows managing aws1965 maintainer1966 allows managing aws1967 owner1968 allows managing aws1969 design permissions1970 when design management is not available1971 is expected not to be allowed :read_design_activity and :read_design1972 when design management is available1973 is expected to be allowed :read_design_activity and :read_design1974 read_build_report_results1975 when user can read_build and read_pipeline1976 is expected to be allowed :read_build_report_results1977 when user can read_build but cannot read_pipeline1978 is expected to be disallowed :read_build_report_results1979 when user cannot read_build but can read_pipeline1980 is expected to be disallowed :read_build_report_results1981 when user cannot read_build and cannot read_pipeline1982 is expected to be disallowed :read_build_report_results1983 read_package1984 with admin1985 is expected to be allowed :read_package1986 behaves like package access with repository disabled1987 is expected to be allowed :read_package1988 with owner1989 is expected to be allowed :read_package1990 with maintainer1991 is expected to be allowed :read_package1992 with developer1993 is expected to be allowed :read_package1994 with reporter1995 is expected to be allowed :read_package1996 with guest1997 is expected to be allowed :read_package1998 with non member1999 is expected to be allowed :read_package2000 with anonymous2001 is expected to be allowed :read_package2002 admin_package2003 with admin2004 when admin mode enabled2005 is expected to be allowed :admin_package2006 when admin mode disabled2007 is expected to be disallowed :admin_package2008 with owner2009 is expected to be allowed :admin_package2010 with maintainer2011 is expected to be allowed :admin_package2012 with developer2013 is expected to be disallowed :admin_package2014 with reporter2015 is expected to be disallowed :admin_package2016 with guest2017 is expected to be disallowed :admin_package2018 with non_member2019 is expected to be disallowed :admin_package2020 with anonymous2021 is expected to be disallowed :admin_package2022 view_package_registry_project_settings2023 with packages disabled and2024 with registry enabled2025 with an admin user2026 when admin mode enabled2027 is expected to be allowed :view_package_registry_project_settings2028 when admin mode disabled2029 is expected to be disallowed :view_package_registry_project_settings2030 with owner2031 is expected to be allowed :view_package_registry_project_settings2032 with maintainer2033 is expected to be allowed :view_package_registry_project_settings2034 with developer2035 is expected to be disallowed :view_package_registry_project_settings2036 with reporter2037 is expected to be disallowed :view_package_registry_project_settings2038 with guest2039 is expected to be disallowed :view_package_registry_project_settings2040 with non_member2041 is expected to be disallowed :view_package_registry_project_settings2042 with anonymous2043 is expected to be disallowed :view_package_registry_project_settings2044 with registry disabled2045 with admin user2046 when admin mode enabled2047 is expected to be disallowed :view_package_registry_project_settings2048 when admin mode disabled2049 is expected to be disallowed :view_package_registry_project_settings2050 with owner2051 is expected to be disallowed :view_package_registry_project_settings2052 with maintainer2053 is expected to be disallowed :view_package_registry_project_settings2054 with developer2055 is expected to be disallowed :view_package_registry_project_settings2056 with reporter2057 is expected to be disallowed :view_package_registry_project_settings2058 with guest2059 is expected to be disallowed :view_package_registry_project_settings2060 with non_member2061 is expected to be disallowed :view_package_registry_project_settings2062 with anonymous2063 is expected to be disallowed :view_package_registry_project_settings2064 with registry disabled and2065 with packages enabled2066 with an admin user2067 when admin mode enabled2068 is expected to be allowed :view_package_registry_project_settings2069 when admin mode disabled2070 is expected to be disallowed :view_package_registry_project_settings2071 with owner2072 is expected to be allowed :view_package_registry_project_settings2073 with maintainer2074 is expected to be allowed :view_package_registry_project_settings2075 with developer2076 is expected to be disallowed :view_package_registry_project_settings2077 with reporter2078 is expected to be disallowed :view_package_registry_project_settings2079 with guest2080 is expected to be disallowed :view_package_registry_project_settings2081 with non_member2082 is expected to be disallowed :view_package_registry_project_settings2083 with anonymous2084 is expected to be disallowed :view_package_registry_project_settings2085 with packages disabled2086 with admin user2087 when admin mode enabled2088 is expected to be disallowed :view_package_registry_project_settings2089 when admin mode disabled2090 is expected to be disallowed :view_package_registry_project_settings2091 with owner2092 is expected to be disallowed :view_package_registry_project_settings2093 with maintainer2094 is expected to be disallowed :view_package_registry_project_settings2095 with developer2096 is expected to be disallowed :view_package_registry_project_settings2097 with reporter2098 is expected to be disallowed :view_package_registry_project_settings2099 with guest2100 is expected to be disallowed :view_package_registry_project_settings2101 with non_member2102 is expected to be disallowed :view_package_registry_project_settings2103 with anonymous2104 is expected to be disallowed :view_package_registry_project_settings2105 with registry & packages both disabled2106 with admin user2107 when admin mode enabled2108 is expected to be disallowed :view_package_registry_project_settings2109 when admin mode disabled2110 is expected to be disallowed :view_package_registry_project_settings2111 with owner2112 is expected to be disallowed :view_package_registry_project_settings2113 with maintainer2114 is expected to be disallowed :view_package_registry_project_settings2115 with developer2116 is expected to be disallowed :view_package_registry_project_settings2117 with reporter2118 is expected to be disallowed :view_package_registry_project_settings2119 with guest2120 is expected to be disallowed :view_package_registry_project_settings2121 with non_member2122 is expected to be disallowed :view_package_registry_project_settings2123 with anonymous2124 is expected to be disallowed :view_package_registry_project_settings2125 read_feature_flag2126 with maintainer2127 when repository is available2128 is expected to be allowed :read_feature_flag2129 when repository is disabled2130 is expected to be disallowed :read_feature_flag2131 with developer2132 when repository is available2133 is expected to be allowed :read_feature_flag2134 with reporter2135 when repository is available2136 is expected to be disallowed :read_feature_flag2137 read_analytics2138 anonymous user2139 is expected to be allowed :read_analytics2140 with various analytics features2141 when analytics is disabled for the project2142 for guest user2143 is expected to be disallowed :read_cycle_analytics2144 is expected to be disallowed :read_insights2145 is expected to be disallowed :read_repository_graphs2146 is expected to be disallowed :read_ci_cd_analytics2147 for reporter user2148 is expected to be disallowed :read_cycle_analytics2149 is expected to be disallowed :read_insights2150 is expected to be disallowed :read_repository_graphs2151 is expected to be disallowed :read_ci_cd_analytics2152 for developer2153 is expected to be disallowed :read_cycle_analytics2154 is expected to be disallowed :read_insights2155 is expected to be disallowed :read_repository_graphs2156 is expected to be disallowed :read_ci_cd_analytics2157 when analytics is private for the project2158 for guest user2159 is expected to be allowed :read_cycle_analytics2160 is expected to be allowed :read_insights2161 is expected to be disallowed :read_repository_graphs2162 is expected to be disallowed :read_ci_cd_analytics2163 for reporter user2164 is expected to be allowed :read_cycle_analytics2165 is expected to be allowed :read_insights2166 is expected to be allowed :read_repository_graphs2167 is expected to be allowed :read_ci_cd_analytics2168 for developer2169 is expected to be allowed :read_cycle_analytics2170 is expected to be allowed :read_insights2171 is expected to be allowed :read_repository_graphs2172 is expected to be allowed :read_ci_cd_analytics2173 when analytics is enabled for the project2174 for guest user2175 is expected to be allowed :read_cycle_analytics2176 is expected to be allowed :read_insights2177 is expected to be disallowed :read_repository_graphs2178 is expected to be disallowed :read_ci_cd_analytics2179 for reporter user2180 is expected to be allowed :read_cycle_analytics2181 is expected to be allowed :read_insights2182 is expected to be allowed :read_repository_graphs2183 is expected to be allowed :read_ci_cd_analytics2184 for developer2185 is expected to be allowed :read_cycle_analytics2186 is expected to be allowed :read_insights2187 is expected to be allowed :read_repository_graphs2188 is expected to be allowed :read_ci_cd_analytics2189 project member2190 guest2191 is expected to be allowed :read_analytics2192 without access to Analytics2193 is expected to be disallowed :read_analytics2194 reporter2195 is expected to be allowed :read_analytics2196 without access to Analytics2197 is expected to be disallowed :read_analytics2198 developer2199 is expected to be allowed :read_analytics2200 without access to Analytics2201 is expected to be disallowed :read_analytics2202 maintainer2203 is expected to be allowed :read_analytics2204 without access to Analytics2205 is expected to be disallowed :read_analytics2206 read_ci_cd_analytics2207 public project2208 when public pipelines are disabled for the project2209 project member2210 guest2211 is expected to be disallowed :read_ci_cd_analytics2212 reporter2213 is expected to be allowed :read_ci_cd_analytics2214 developer2215 is expected to be allowed :read_ci_cd_analytics2216 maintainer2217 is expected to be allowed :read_ci_cd_analytics2218 non member2219 is expected to be disallowed :read_ci_cd_analytics2220 anonymous2221 is expected to be disallowed :read_ci_cd_analytics2222 when public pipelines are enabled for the project2223 project member2224 guest2225 is expected to be allowed :read_ci_cd_analytics2226 reporter2227 is expected to be allowed :read_ci_cd_analytics2228 developer2229 is expected to be allowed :read_ci_cd_analytics2230 maintainer2231 is expected to be allowed :read_ci_cd_analytics2232 non member2233 is expected to be allowed :read_ci_cd_analytics2234 anonymous2235 is expected to be allowed :read_ci_cd_analytics2236 private project2237 project member2238 guest2239 is expected to be disallowed :read_ci_cd_analytics2240 reporter2241 is expected to be allowed :read_ci_cd_analytics2242 developer2243 is expected to be allowed :read_ci_cd_analytics2244 maintainer2245 is expected to be allowed :read_ci_cd_analytics2246 non member2247 is expected to be disallowed :read_ci_cd_analytics2248 anonymous2249 is expected to be disallowed :read_ci_cd_analytics2250 behaves like Self-managed Core resource access tokens2251 with owner access2252 create resource access tokens2253 is expected to be allowed :create_resource_access_tokens2254 when resource access token creation is not allowed2255 is expected not to be allowed :create_resource_access_tokens2256 when parent group has project access token creation disabled2257 is expected not to be allowed :create_resource_access_tokens2258 with a personal namespace project2259 is expected to be allowed :create_resource_access_tokens2260 read resource access tokens2261 is expected to be allowed :read_resource_access_tokens2262 destroy resource access tokens2263 is expected to be allowed :destroy_resource_access_tokens2264 with developer access2265 create resource access tokens2266 is expected not to be allowed :create_resource_access_tokens2267 read resource access tokens2268 is expected not to be allowed :read_resource_access_tokens2269 destroy resource access tokens2270 is expected not to be allowed :destroy_resource_access_tokens2271 environments feature2272 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2273 allows/disallows the abilities based on the environments feature access level2274 project_visibility: :public, access_level: 20, role: :developer, allowed: true2275 allows/disallows the abilities based on the environments feature access level2276 project_visibility: :public, access_level: 20, role: :guest, allowed: true2277 allows/disallows the abilities based on the environments feature access level2278 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2279 allows/disallows the abilities based on the environments feature access level2280 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2281 allows/disallows the abilities based on the environments feature access level2282 project_visibility: :public, access_level: 10, role: :developer, allowed: true2283 allows/disallows the abilities based on the environments feature access level2284 project_visibility: :public, access_level: 10, role: :guest, allowed: false2285 allows/disallows the abilities based on the environments feature access level2286 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2287 allows/disallows the abilities based on the environments feature access level2288 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2289 allows/disallows the abilities based on the environments feature access level2290 project_visibility: :public, access_level: 0, role: :developer, allowed: false2291 allows/disallows the abilities based on the environments feature access level2292 project_visibility: :public, access_level: 0, role: :guest, allowed: false2293 allows/disallows the abilities based on the environments feature access level2294 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2295 allows/disallows the abilities based on the environments feature access level2296 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2297 allows/disallows the abilities based on the environments feature access level2298 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2299 allows/disallows the abilities based on the environments feature access level2300 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2301 allows/disallows the abilities based on the environments feature access level2302 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2303 allows/disallows the abilities based on the environments feature access level2304 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2305 allows/disallows the abilities based on the environments feature access level2306 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2307 allows/disallows the abilities based on the environments feature access level2308 project_visibility: :internal, access_level: 10, role: :guest, allowed: false2309 allows/disallows the abilities based on the environments feature access level2310 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2311 allows/disallows the abilities based on the environments feature access level2312 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2313 allows/disallows the abilities based on the environments feature access level2314 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2315 allows/disallows the abilities based on the environments feature access level2316 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2317 allows/disallows the abilities based on the environments feature access level2318 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2319 allows/disallows the abilities based on the environments feature access level2320 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2321 allows/disallows the abilities based on the environments feature access level2322 project_visibility: :private, access_level: 20, role: :developer, allowed: true2323 allows/disallows the abilities based on the environments feature access level2324 project_visibility: :private, access_level: 20, role: :guest, allowed: false2325 allows/disallows the abilities based on the environments feature access level2326 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2327 allows/disallows the abilities based on the environments feature access level2328 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2329 allows/disallows the abilities based on the environments feature access level2330 project_visibility: :private, access_level: 10, role: :developer, allowed: true2331 allows/disallows the abilities based on the environments feature access level2332 project_visibility: :private, access_level: 10, role: :guest, allowed: false2333 allows/disallows the abilities based on the environments feature access level2334 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2335 allows/disallows the abilities based on the environments feature access level2336 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2337 allows/disallows the abilities based on the environments feature access level2338 project_visibility: :private, access_level: 0, role: :developer, allowed: false2339 allows/disallows the abilities based on the environments feature access level2340 project_visibility: :private, access_level: 0, role: :guest, allowed: false2341 allows/disallows the abilities based on the environments feature access level2342 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2343 allows/disallows the abilities based on the environments feature access level2344 monitor feature2345 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2346 allows/disallows the abilities based on the monitor feature access level2347 project_visibility: :public, access_level: 20, role: :developer, allowed: true2348 allows/disallows the abilities based on the monitor feature access level2349 project_visibility: :public, access_level: 20, role: :guest, allowed: true2350 allows/disallows the abilities based on the monitor feature access level2351 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2352 allows/disallows the abilities based on the monitor feature access level2353 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2354 allows/disallows the abilities based on the monitor feature access level2355 project_visibility: :public, access_level: 10, role: :developer, allowed: true2356 allows/disallows the abilities based on the monitor feature access level2357 project_visibility: :public, access_level: 10, role: :guest, allowed: true2358 allows/disallows the abilities based on the monitor feature access level2359 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2360 allows/disallows the abilities based on the monitor feature access level2361 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2362 allows/disallows the abilities based on the monitor feature access level2363 project_visibility: :public, access_level: 0, role: :developer, allowed: false2364 allows/disallows the abilities based on the monitor feature access level2365 project_visibility: :public, access_level: 0, role: :guest, allowed: false2366 allows/disallows the abilities based on the monitor feature access level2367 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2368 allows/disallows the abilities based on the monitor feature access level2369 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2370 allows/disallows the abilities based on the monitor feature access level2371 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2372 allows/disallows the abilities based on the monitor feature access level2373 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2374 allows/disallows the abilities based on the monitor feature access level2375 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2376 allows/disallows the abilities based on the monitor feature access level2377 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2378 allows/disallows the abilities based on the monitor feature access level2379 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2380 allows/disallows the abilities based on the monitor feature access level2381 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2382 allows/disallows the abilities based on the monitor feature access level2383 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2384 allows/disallows the abilities based on the monitor feature access level2385 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2386 allows/disallows the abilities based on the monitor feature access level2387 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2388 allows/disallows the abilities based on the monitor feature access level2389 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2390 allows/disallows the abilities based on the monitor feature access level2391 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2392 allows/disallows the abilities based on the monitor feature access level2393 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2394 allows/disallows the abilities based on the monitor feature access level2395 project_visibility: :private, access_level: 20, role: :developer, allowed: true2396 allows/disallows the abilities based on the monitor feature access level2397 project_visibility: :private, access_level: 20, role: :guest, allowed: false2398 allows/disallows the abilities based on the monitor feature access level2399 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2400 allows/disallows the abilities based on the monitor feature access level2401 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2402 allows/disallows the abilities based on the monitor feature access level2403 project_visibility: :private, access_level: 10, role: :developer, allowed: true2404 allows/disallows the abilities based on the monitor feature access level2405 project_visibility: :private, access_level: 10, role: :guest, allowed: false2406 allows/disallows the abilities based on the monitor feature access level2407 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2408 allows/disallows the abilities based on the monitor feature access level2409 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2410 allows/disallows the abilities based on the monitor feature access level2411 project_visibility: :private, access_level: 0, role: :developer, allowed: false2412 allows/disallows the abilities based on the monitor feature access level2413 project_visibility: :private, access_level: 0, role: :guest, allowed: false2414 allows/disallows the abilities based on the monitor feature access level2415 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2416 allows/disallows the abilities based on the monitor feature access level2417 feature flags feature2418 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2419 allows/disallows the abilities based on the feature flags access level2420 project_visibility: :public, access_level: 20, role: :developer, allowed: true2421 allows/disallows the abilities based on the feature flags access level2422 project_visibility: :public, access_level: 20, role: :guest, allowed: true2423 allows/disallows the abilities based on the feature flags access level2424 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2425 allows/disallows the abilities based on the feature flags access level2426 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2427 allows/disallows the abilities based on the feature flags access level2428 project_visibility: :public, access_level: 10, role: :developer, allowed: true2429 allows/disallows the abilities based on the feature flags access level2430 project_visibility: :public, access_level: 10, role: :guest, allowed: true2431 allows/disallows the abilities based on the feature flags access level2432 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2433 allows/disallows the abilities based on the feature flags access level2434 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2435 allows/disallows the abilities based on the feature flags access level2436 project_visibility: :public, access_level: 0, role: :developer, allowed: false2437 allows/disallows the abilities based on the feature flags access level2438 project_visibility: :public, access_level: 0, role: :guest, allowed: false2439 allows/disallows the abilities based on the feature flags access level2440 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2441 allows/disallows the abilities based on the feature flags access level2442 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2443 allows/disallows the abilities based on the feature flags access level2444 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2445 allows/disallows the abilities based on the feature flags access level2446 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2447 allows/disallows the abilities based on the feature flags access level2448 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2449 allows/disallows the abilities based on the feature flags access level2450 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2451 allows/disallows the abilities based on the feature flags access level2452 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2453 allows/disallows the abilities based on the feature flags access level2454 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2455 allows/disallows the abilities based on the feature flags access level2456 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2457 allows/disallows the abilities based on the feature flags access level2458 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2459 allows/disallows the abilities based on the feature flags access level2460 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2461 allows/disallows the abilities based on the feature flags access level2462 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2463 allows/disallows the abilities based on the feature flags access level2464 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2465 allows/disallows the abilities based on the feature flags access level2466 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2467 allows/disallows the abilities based on the feature flags access level2468 project_visibility: :private, access_level: 20, role: :developer, allowed: true2469 allows/disallows the abilities based on the feature flags access level2470 project_visibility: :private, access_level: 20, role: :guest, allowed: false2471 allows/disallows the abilities based on the feature flags access level2472 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2473 allows/disallows the abilities based on the feature flags access level2474 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2475 allows/disallows the abilities based on the feature flags access level2476 project_visibility: :private, access_level: 10, role: :developer, allowed: true2477 allows/disallows the abilities based on the feature flags access level2478 project_visibility: :private, access_level: 10, role: :guest, allowed: false2479 allows/disallows the abilities based on the feature flags access level2480 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2481 allows/disallows the abilities based on the feature flags access level2482 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2483 allows/disallows the abilities based on the feature flags access level2484 project_visibility: :private, access_level: 0, role: :developer, allowed: false2485 allows/disallows the abilities based on the feature flags access level2486 project_visibility: :private, access_level: 0, role: :guest, allowed: false2487 allows/disallows the abilities based on the feature flags access level2488 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2489 allows/disallows the abilities based on the feature flags access level2490 Releases feature2491 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2492 allows/disallows the abilities based on the Releases access level2493 project_visibility: :public, access_level: 20, role: :developer, allowed: true2494 allows/disallows the abilities based on the Releases access level2495 project_visibility: :public, access_level: 20, role: :guest, allowed: true2496 allows/disallows the abilities based on the Releases access level2497 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2498 allows/disallows the abilities based on the Releases access level2499 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2500 allows/disallows the abilities based on the Releases access level2501 project_visibility: :public, access_level: 10, role: :developer, allowed: true2502 allows/disallows the abilities based on the Releases access level2503 project_visibility: :public, access_level: 10, role: :guest, allowed: true2504 allows/disallows the abilities based on the Releases access level2505 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2506 allows/disallows the abilities based on the Releases access level2507 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2508 allows/disallows the abilities based on the Releases access level2509 project_visibility: :public, access_level: 0, role: :developer, allowed: false2510 allows/disallows the abilities based on the Releases access level2511 project_visibility: :public, access_level: 0, role: :guest, allowed: false2512 allows/disallows the abilities based on the Releases access level2513 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2514 allows/disallows the abilities based on the Releases access level2515 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2516 allows/disallows the abilities based on the Releases access level2517 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2518 allows/disallows the abilities based on the Releases access level2519 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2520 allows/disallows the abilities based on the Releases access level2521 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2522 allows/disallows the abilities based on the Releases access level2523 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2524 allows/disallows the abilities based on the Releases access level2525 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2526 allows/disallows the abilities based on the Releases access level2527 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2528 allows/disallows the abilities based on the Releases access level2529 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2530 allows/disallows the abilities based on the Releases access level2531 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2532 allows/disallows the abilities based on the Releases access level2533 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2534 allows/disallows the abilities based on the Releases access level2535 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2536 allows/disallows the abilities based on the Releases access level2537 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2538 allows/disallows the abilities based on the Releases access level2539 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2540 allows/disallows the abilities based on the Releases access level2541 project_visibility: :private, access_level: 20, role: :developer, allowed: true2542 allows/disallows the abilities based on the Releases access level2543 project_visibility: :private, access_level: 20, role: :guest, allowed: true2544 allows/disallows the abilities based on the Releases access level2545 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2546 allows/disallows the abilities based on the Releases access level2547 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2548 allows/disallows the abilities based on the Releases access level2549 project_visibility: :private, access_level: 10, role: :developer, allowed: true2550 allows/disallows the abilities based on the Releases access level2551 project_visibility: :private, access_level: 10, role: :guest, allowed: true2552 allows/disallows the abilities based on the Releases access level2553 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2554 allows/disallows the abilities based on the Releases access level2555 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2556 allows/disallows the abilities based on the Releases access level2557 project_visibility: :private, access_level: 0, role: :developer, allowed: false2558 allows/disallows the abilities based on the Releases access level2559 project_visibility: :private, access_level: 0, role: :guest, allowed: false2560 allows/disallows the abilities based on the Releases access level2561 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2562 allows/disallows the abilities based on the Releases access level2563 infrastructure feature2564 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2565 allows/disallows the abilities based on the infrastructure access level2566 project_visibility: :public, access_level: 20, role: :developer, allowed: true2567 allows/disallows the abilities based on the infrastructure access level2568 project_visibility: :public, access_level: 20, role: :guest, allowed: true2569 allows/disallows the abilities based on the infrastructure access level2570 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2571 allows/disallows the abilities based on the infrastructure access level2572 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2573 allows/disallows the abilities based on the infrastructure access level2574 project_visibility: :public, access_level: 10, role: :developer, allowed: true2575 allows/disallows the abilities based on the infrastructure access level2576 project_visibility: :public, access_level: 10, role: :guest, allowed: true2577 allows/disallows the abilities based on the infrastructure access level2578 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2579 allows/disallows the abilities based on the infrastructure access level2580 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2581 allows/disallows the abilities based on the infrastructure access level2582 project_visibility: :public, access_level: 0, role: :developer, allowed: false2583 allows/disallows the abilities based on the infrastructure access level2584 project_visibility: :public, access_level: 0, role: :guest, allowed: false2585 allows/disallows the abilities based on the infrastructure access level2586 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2587 allows/disallows the abilities based on the infrastructure access level2588 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2589 allows/disallows the abilities based on the infrastructure access level2590 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2591 allows/disallows the abilities based on the infrastructure access level2592 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2593 allows/disallows the abilities based on the infrastructure access level2594 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2595 allows/disallows the abilities based on the infrastructure access level2596 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2597 allows/disallows the abilities based on the infrastructure access level2598 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2599 allows/disallows the abilities based on the infrastructure access level2600 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2601 allows/disallows the abilities based on the infrastructure access level2602 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2603 allows/disallows the abilities based on the infrastructure access level2604 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2605 allows/disallows the abilities based on the infrastructure access level2606 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2607 allows/disallows the abilities based on the infrastructure access level2608 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2609 allows/disallows the abilities based on the infrastructure access level2610 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2611 allows/disallows the abilities based on the infrastructure access level2612 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2613 allows/disallows the abilities based on the infrastructure access level2614 project_visibility: :private, access_level: 20, role: :developer, allowed: true2615 allows/disallows the abilities based on the infrastructure access level2616 project_visibility: :private, access_level: 20, role: :guest, allowed: true2617 allows/disallows the abilities based on the infrastructure access level2618 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2619 allows/disallows the abilities based on the infrastructure access level2620 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2621 allows/disallows the abilities based on the infrastructure access level2622 project_visibility: :private, access_level: 10, role: :developer, allowed: true2623 allows/disallows the abilities based on the infrastructure access level2624 project_visibility: :private, access_level: 10, role: :guest, allowed: true2625 allows/disallows the abilities based on the infrastructure access level2626 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2627 allows/disallows the abilities based on the infrastructure access level2628 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2629 allows/disallows the abilities based on the infrastructure access level2630 project_visibility: :private, access_level: 0, role: :developer, allowed: false2631 allows/disallows the abilities based on the infrastructure access level2632 project_visibility: :private, access_level: 0, role: :guest, allowed: false2633 allows/disallows the abilities based on the infrastructure access level2634 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2635 allows/disallows the abilities based on the infrastructure access level2636 access_security_and_compliance2637 when the "Security and Compliance" is enabled2638 when the role is owner2639 is expected to be allowed :access_security_and_compliance2640 when the role is maintainer2641 is expected to be allowed :access_security_and_compliance2642 when the role is developer2643 is expected to be allowed :access_security_and_compliance2644 with admin2645 when admin mode enabled2646 is expected to be allowed :access_security_and_compliance2647 when admin mode disabled2648 is expected to be disallowed :access_security_and_compliance2649 when the role is reporter2650 is expected to be disallowed :access_security_and_compliance2651 when the role is guest2652 is expected to be disallowed :access_security_and_compliance2653 with non member2654 is expected to be disallowed :access_security_and_compliance2655 with anonymous2656 is expected to be disallowed :access_security_and_compliance2657 when the "Security and Compliance" is not enabled2658 when the role is owner2659 is expected to be disallowed :access_security_and_compliance2660 when the role is maintainer2661 is expected to be disallowed :access_security_and_compliance2662 when the role is developer2663 is expected to be disallowed :access_security_and_compliance2664 when the role is reporter2665 is expected to be disallowed :access_security_and_compliance2666 when the role is guest2667 is expected to be disallowed :access_security_and_compliance2668 with admin2669 when admin mode enabled2670 is expected to be disallowed :access_security_and_compliance2671 when admin mode disabled2672 is expected to be disallowed :access_security_and_compliance2673 with non member2674 is expected to be disallowed :access_security_and_compliance2675 with anonymous2676 is expected to be disallowed :access_security_and_compliance2677 when user is authenticated via CI_JOB_TOKEN2678 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2679 enforces the expected permissions2680 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2681 enforces the expected permissions2682 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: false2683 enforces the expected permissions2684 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2685 enforces the expected permissions2686 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2687 enforces the expected permissions2688 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2689 enforces the expected permissions2690 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: false2691 enforces the expected permissions2692 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2693 enforces the expected permissions2694 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2695 enforces the expected permissions2696 project_visibility: :internal, user_role: :reporter, external_user: true, scope_project_type: :same, token_scope_enabled: true, result: true2697 enforces the expected permissions2698 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2699 enforces the expected permissions2700 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2701 enforces the expected permissions2702 project_visibility: :internal, user_role: :reporter, external_user: true, scope_project_type: :different, token_scope_enabled: true, result: false2703 enforces the expected permissions2704 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2705 enforces the expected permissions2706 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2707 enforces the expected permissions2708 project_visibility: :internal, user_role: :guest, external_user: true, scope_project_type: :same, token_scope_enabled: true, result: true2709 enforces the expected permissions2710 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2711 enforces the expected permissions2712 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2713 enforces the expected permissions2714 project_visibility: :internal, user_role: :guest, external_user: true, scope_project_type: :different, token_scope_enabled: true, result: false2715 enforces the expected permissions2716 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2717 enforces the expected permissions2718 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2719 enforces the expected permissions2720 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2721 enforces the expected permissions2722 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2723 enforces the expected permissions2724 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2725 enforces the expected permissions2726 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2727 enforces the expected permissions2728 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2729 enforces the expected permissions2730 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2731 enforces the expected permissions2732 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2733 enforces the expected permissions2734 container_image policies2735 project_visibility: :public, access_level: 20, role: :admin, allowed: true2736 allows/disallows the abilities based on the container_registry feature access level2737 allows build_read_container_image to admins who are also team members2738 project_visibility: :public, access_level: 20, role: :owner, allowed: true2739 allows/disallows the abilities based on the container_registry feature access level2740 allows build_read_container_image to admins who are also team members2741 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2742 allows/disallows the abilities based on the container_registry feature access level2743 allows build_read_container_image to admins who are also team members2744 project_visibility: :public, access_level: 20, role: :developer, allowed: true2745 allows/disallows the abilities based on the container_registry feature access level2746 allows build_read_container_image to admins who are also team members2747 project_visibility: :public, access_level: 20, role: :reporter, allowed: true2748 allows/disallows the abilities based on the container_registry feature access level2749 allows build_read_container_image to admins who are also team members2750 project_visibility: :public, access_level: 20, role: :guest, allowed: true2751 allows/disallows the abilities based on the container_registry feature access level2752 allows build_read_container_image to admins who are also team members2753 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2754 allows/disallows the abilities based on the container_registry feature access level2755 allows build_read_container_image to admins who are also team members2756 project_visibility: :public, access_level: 10, role: :admin, allowed: true2757 allows/disallows the abilities based on the container_registry feature access level2758 allows build_read_container_image to admins who are also team members2759 project_visibility: :public, access_level: 10, role: :owner, allowed: true2760 allows/disallows the abilities based on the container_registry feature access level2761 allows build_read_container_image to admins who are also team members2762 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2763 allows/disallows the abilities based on the container_registry feature access level2764 allows build_read_container_image to admins who are also team members2765 project_visibility: :public, access_level: 10, role: :developer, allowed: true2766 allows/disallows the abilities based on the container_registry feature access level2767 allows build_read_container_image to admins who are also team members2768 project_visibility: :public, access_level: 10, role: :reporter, allowed: true2769 allows/disallows the abilities based on the container_registry feature access level2770 allows build_read_container_image to admins who are also team members2771 project_visibility: :public, access_level: 10, role: :guest, allowed: false2772 allows/disallows the abilities based on the container_registry feature access level2773 allows build_read_container_image to admins who are also team members2774 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2775 allows/disallows the abilities based on the container_registry feature access level2776 allows build_read_container_image to admins who are also team members2777 project_visibility: :public, access_level: 0, role: :admin, allowed: false2778 allows/disallows the abilities based on the container_registry feature access level2779 allows build_read_container_image to admins who are also team members2780 project_visibility: :public, access_level: 0, role: :owner, allowed: false2781 allows/disallows the abilities based on the container_registry feature access level2782 allows build_read_container_image to admins who are also team members2783 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2784 allows/disallows the abilities based on the container_registry feature access level2785 allows build_read_container_image to admins who are also team members2786 project_visibility: :public, access_level: 0, role: :developer, allowed: false2787 allows/disallows the abilities based on the container_registry feature access level2788 allows build_read_container_image to admins who are also team members2789 project_visibility: :public, access_level: 0, role: :reporter, allowed: false2790 allows/disallows the abilities based on the container_registry feature access level2791 allows build_read_container_image to admins who are also team members2792 project_visibility: :public, access_level: 0, role: :guest, allowed: false2793 allows/disallows the abilities based on the container_registry feature access level2794 allows build_read_container_image to admins who are also team members2795 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2796 allows/disallows the abilities based on the container_registry feature access level2797 allows build_read_container_image to admins who are also team members2798 project_visibility: :internal, access_level: 20, role: :admin, allowed: true2799 allows/disallows the abilities based on the container_registry feature access level2800 allows build_read_container_image to admins who are also team members2801 project_visibility: :internal, access_level: 20, role: :owner, allowed: true2802 allows/disallows the abilities based on the container_registry feature access level2803 allows build_read_container_image to admins who are also team members2804 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2805 allows/disallows the abilities based on the container_registry feature access level2806 allows build_read_container_image to admins who are also team members2807 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2808 allows/disallows the abilities based on the container_registry feature access level2809 allows build_read_container_image to admins who are also team members2810 project_visibility: :internal, access_level: 20, role: :reporter, allowed: true2811 allows/disallows the abilities based on the container_registry feature access level2812 allows build_read_container_image to admins who are also team members2813 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2814 allows/disallows the abilities based on the container_registry feature access level2815 allows build_read_container_image to admins who are also team members2816 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2817 allows/disallows the abilities based on the container_registry feature access level2818 allows build_read_container_image to admins who are also team members2819 project_visibility: :internal, access_level: 10, role: :admin, allowed: true2820 allows/disallows the abilities based on the container_registry feature access level2821 allows build_read_container_image to admins who are also team members2822 project_visibility: :internal, access_level: 10, role: :owner, allowed: true2823 allows/disallows the abilities based on the container_registry feature access level2824 allows build_read_container_image to admins who are also team members2825 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2826 allows/disallows the abilities based on the container_registry feature access level2827 allows build_read_container_image to admins who are also team members2828 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2829 allows/disallows the abilities based on the container_registry feature access level2830 allows build_read_container_image to admins who are also team members2831 project_visibility: :internal, access_level: 10, role: :reporter, allowed: true2832 allows/disallows the abilities based on the container_registry feature access level2833 allows build_read_container_image to admins who are also team members2834 project_visibility: :internal, access_level: 10, role: :guest, allowed: false2835 allows/disallows the abilities based on the container_registry feature access level2836 allows build_read_container_image to admins who are also team members2837 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2838 allows/disallows the abilities based on the container_registry feature access level2839 allows build_read_container_image to admins who are also team members2840 project_visibility: :internal, access_level: 0, role: :admin, allowed: false2841 allows/disallows the abilities based on the container_registry feature access level2842 allows build_read_container_image to admins who are also team members2843 project_visibility: :internal, access_level: 0, role: :owner, allowed: false2844 allows/disallows the abilities based on the container_registry feature access level2845 allows build_read_container_image to admins who are also team members2846 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2847 allows/disallows the abilities based on the container_registry feature access level2848 allows build_read_container_image to admins who are also team members2849 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2850 allows/disallows the abilities based on the container_registry feature access level2851 allows build_read_container_image to admins who are also team members2852 project_visibility: :internal, access_level: 0, role: :reporter, allowed: false2853 allows/disallows the abilities based on the container_registry feature access level2854 allows build_read_container_image to admins who are also team members2855 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2856 allows/disallows the abilities based on the container_registry feature access level2857 allows build_read_container_image to admins who are also team members2858 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2859 allows/disallows the abilities based on the container_registry feature access level2860 allows build_read_container_image to admins who are also team members2861 project_visibility: :private, access_level: 20, role: :admin, allowed: true2862 allows/disallows the abilities based on the container_registry feature access level2863 allows build_read_container_image to admins who are also team members2864 project_visibility: :private, access_level: 20, role: :owner, allowed: true2865 allows/disallows the abilities based on the container_registry feature access level2866 allows build_read_container_image to admins who are also team members2867 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2868 allows/disallows the abilities based on the container_registry feature access level2869 allows build_read_container_image to admins who are also team members2870 project_visibility: :private, access_level: 20, role: :developer, allowed: true2871 allows/disallows the abilities based on the container_registry feature access level2872 allows build_read_container_image to admins who are also team members2873 project_visibility: :private, access_level: 20, role: :reporter, allowed: true2874 allows/disallows the abilities based on the container_registry feature access level2875 allows build_read_container_image to admins who are also team members2876 project_visibility: :private, access_level: 20, role: :guest, allowed: false2877 allows/disallows the abilities based on the container_registry feature access level2878 allows build_read_container_image to admins who are also team members2879 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2880 allows/disallows the abilities based on the container_registry feature access level2881 allows build_read_container_image to admins who are also team members2882 project_visibility: :private, access_level: 10, role: :admin, allowed: true2883 allows/disallows the abilities based on the container_registry feature access level2884 allows build_read_container_image to admins who are also team members2885 project_visibility: :private, access_level: 10, role: :owner, allowed: true2886 allows/disallows the abilities based on the container_registry feature access level2887 allows build_read_container_image to admins who are also team members2888 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2889 allows/disallows the abilities based on the container_registry feature access level2890 allows build_read_container_image to admins who are also team members2891 project_visibility: :private, access_level: 10, role: :developer, allowed: true2892 allows/disallows the abilities based on the container_registry feature access level2893 allows build_read_container_image to admins who are also team members2894 project_visibility: :private, access_level: 10, role: :reporter, allowed: true2895 allows/disallows the abilities based on the container_registry feature access level2896 allows build_read_container_image to admins who are also team members2897 project_visibility: :private, access_level: 10, role: :guest, allowed: false2898 allows/disallows the abilities based on the container_registry feature access level2899 allows build_read_container_image to admins who are also team members2900 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2901 allows/disallows the abilities based on the container_registry feature access level2902 allows build_read_container_image to admins who are also team members2903 project_visibility: :private, access_level: 0, role: :admin, allowed: false2904 allows/disallows the abilities based on the container_registry feature access level2905 allows build_read_container_image to admins who are also team members2906 project_visibility: :private, access_level: 0, role: :owner, allowed: false2907 allows/disallows the abilities based on the container_registry feature access level2908 allows build_read_container_image to admins who are also team members2909 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2910 allows/disallows the abilities based on the container_registry feature access level2911 allows build_read_container_image to admins who are also team members2912 project_visibility: :private, access_level: 0, role: :developer, allowed: false2913 allows/disallows the abilities based on the container_registry feature access level2914 allows build_read_container_image to admins who are also team members2915 project_visibility: :private, access_level: 0, role: :reporter, allowed: false2916 allows/disallows the abilities based on the container_registry feature access level2917 allows build_read_container_image to admins who are also team members2918 project_visibility: :private, access_level: 0, role: :guest, allowed: false2919 allows/disallows the abilities based on the container_registry feature access level2920 allows build_read_container_image to admins who are also team members2921 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2922 allows/disallows the abilities based on the container_registry feature access level2923 allows build_read_container_image to admins who are also team members2924 update_runners_registration_token2925 when anonymous2926 is expected not to be allowed :update_runners_registration_token2927 admin2928 when admin mode is enabled2929 is expected to be allowed :update_runners_registration_token2930 when admin mode is disabled2931 is expected to be disallowed :update_runners_registration_token2932 guest2933 is expected to be disallowed :update_runners_registration_token2934 reporter2935 is expected to be disallowed :update_runners_registration_token2936 developer2937 is expected to be disallowed :update_runners_registration_token2938 maintainer2939 is expected to be allowed :update_runners_registration_token2940 owner2941 is expected to be allowed :update_runners_registration_token2942 register_project_runners2943 admin2944 when admin mode is enabled2945 is expected to be allowed :register_project_runners2946 with project runner registration disabled2947 is expected to be allowed :register_project_runners2948 when admin mode is disabled2949 is expected to be disallowed :register_project_runners2950 with owner2951 is expected to be allowed :register_project_runners2952 with project runner registration disabled2953 is expected to be disallowed :register_project_runners2954 with maintainer2955 is expected to be allowed :register_project_runners2956 with reporter2957 is expected to be disallowed :register_project_runners2958 with guest2959 is expected to be disallowed :register_project_runners2960 with non member2961 is expected to be disallowed :register_project_runners2962 with anonymous2963 is expected to be disallowed :register_project_runners2964 create_project_runners2965 create_runner_workflow_for_namespace flag enabled2966 admin2967 when admin mode is enabled2968 is expected to be allowed :create_project_runners2969 with project runner registration disabled2970 is expected to be allowed :create_project_runners2971 when admin mode is disabled2972 is expected to be disallowed :create_project_runners2973 with owner2974 is expected to be allowed :create_project_runners2975 with project runner registration disabled2976 is expected to be disallowed :create_project_runners2977 with maintainer2978 is expected to be allowed :create_project_runners2979 with reporter2980 is expected to be disallowed :create_project_runners2981 with guest2982 is expected to be disallowed :create_project_runners2983 with developer2984 is expected to be disallowed :create_project_runners2985 with anonymous2986 is expected to be disallowed :create_project_runners2987 create_runner_workflow_for_namespace flag disabled2988 admin2989 when admin mode is enabled2990 is expected to be disallowed :create_project_runners2991 with project runner registration disabled2992 is expected to be disallowed :create_project_runners2993 when admin mode is disabled2994 is expected to be disallowed :create_project_runners2995 with owner2996 is expected to be disallowed :create_project_runners2997 with project runner registration disabled2998 is expected to be disallowed :create_project_runners2999 with maintainer3000 is expected to be disallowed :create_project_runners3001 with reporter3002 is expected to be disallowed :create_project_runners3003 with guest3004 is expected to be disallowed :create_project_runners3005 with developer3006 is expected to be disallowed :create_project_runners3007 with anonymous3008 is expected to be disallowed :create_project_runners3009 admin_project_runners3010 admin3011 when admin mode is enabled3012 is expected to be allowed :create_project_runners3013 when admin mode is disabled3014 is expected to be disallowed :create_project_runners3015 with owner3016 is expected to be allowed :create_project_runners3017 with maintainer3018 is expected to be allowed :create_project_runners3019 with reporter3020 is expected to be disallowed :create_project_runners3021 with guest3022 is expected to be disallowed :create_project_runners3023 with developer3024 is expected to be disallowed :create_project_runners3025 with anonymous3026 is expected to be disallowed :create_project_runners3027 read_project_runners3028 with maintainer3029 is expected to be allowed :read_project_runners3030 with admin3031 is expected to be allowed :read_project_runners3032 with reporter3033 is expected to be disallowed :read_project_runners3034 when the user is not part of the project3035 is expected to be disallowed :read_project_runners3036 update_sentry_issue3037 role: :owner, allowed: true3038 is expected to equal true3039 role: :maintainer, allowed: true3040 is expected to equal true3041 role: :developer, allowed: true3042 is expected to equal true3043 role: :reporter, allowed: false3044 is expected to equal false3045 role: :guest, allowed: false3046 is expected to equal false3047 read_milestone3048 when project is public3049 and issues and merge requests are private3050 when user is an inherited member from the group3051 and user is a guest3052 is expected to be allowed :read_milestone3053 and user is a reporter3054 is expected to be allowed :read_milestone3055 and user is a developer3056 is expected to be allowed :read_milestone3057 role_enables_download_code3058 default roles3059 private project3060 role: :owner, allowed: true3061 is expected to equal true3062 role: :maintainer, allowed: true3063 is expected to equal true3064 role: :developer, allowed: true3065 is expected to equal true3066 role: :reporter, allowed: true3067 is expected to equal true3068 role: :guest, allowed: false3069 is expected to equal false3070 read_code3071 when the current_user can download_code3072 is expected to be allowed :read_code3073 when the current_user cannot download_code3074 is expected not to be allowed :read_code3075 read_namespace_catalog3076 is expected to be disallowed :read_namespace_catalog3077 add_catalog_resource3078 is expected to be disallowed :read_namespace_catalog3079Gitlab::Middleware::Go3080 #call3081 when go-get=03082 skips go-import generation3083 when go-get=13084 with SSH disabled3085 with simple 2-segment project path3086 with subpackages3087 returns the full project path3088 without subpackages3089 returns the full project path3090 with a nested project path3091 with subpackages3092 behaves like a nested project3093 when the project is public3094 returns the full project path3095 when the project is private3096 when not authenticated3097 behaves like unauthorized3098 returns the 2-segment group path3099 when authenticated3100 using basic auth3101 using a personal access token3102 with api scope3103 behaves like authenticated3104 with access to the project3105 returns the full project path3106 with an empty ssh_user3107 returns the full project path3108 without access to the project3109 behaves like unauthorized3110 returns the 2-segment group path3111 with user is blocked3112 behaves like unauthorized3113 returns the 2-segment group path3114 with read_user scope3115 behaves like unauthorized3116 returns the 2-segment group path3117 with a blacklisted ip3118 returns forbidden3119 when a personal access token is missing3120 returns unauthorized3121 with a subpackage that is not a valid project path3122 behaves like a nested project3123 when the project is public3124 returns the full project path3125 when the project is private3126 when not authenticated3127 behaves like unauthorized3128 returns the 2-segment group path3129 when authenticated3130 using basic auth3131 using a personal access token3132 with api scope3133 behaves like authenticated3134 with access to the project3135 returns the full project path3136 with an empty ssh_user3137 returns the full project path3138 without access to the project3139 behaves like unauthorized3140 returns the 2-segment group path3141 with user is blocked3142 behaves like unauthorized3143 returns the 2-segment group path3144 with read_user scope3145 behaves like unauthorized3146 returns the 2-segment group path3147 with a blacklisted ip3148 returns forbidden3149 when a personal access token is missing3150 returns unauthorized3151 without subpackages3152 behaves like a nested project3153 when the project is public3154 returns the full project path3155 when the project is private3156 when not authenticated3157 behaves like unauthorized3158 returns the 2-segment group path3159 when authenticated3160 using basic auth3161 using a personal access token3162 with api scope3163 behaves like authenticated3164 with access to the project3165 returns the full project path3166 with an empty ssh_user3167 returns the full project path3168 without access to the project3169 behaves like unauthorized3170 returns the 2-segment group path3171 with user is blocked3172 behaves like unauthorized3173 returns the 2-segment group path3174 with read_user scope3175 behaves like unauthorized3176 returns the 2-segment group path3177 with a blacklisted ip3178 returns forbidden3179 when a personal access token is missing3180 returns unauthorized3181 with a bogus path3182 skips go-import generation3183 with a public project without a repository3184 returns 4043185 with a non-standard head3186 returns the full project path3187 with HTTP disabled3188 with simple 2-segment project path3189 with subpackages3190 returns the full project path3191 without subpackages3192 returns the full project path3193 with a nested project path3194 with subpackages3195 behaves like a nested project3196 when the project is public3197 returns the full project path3198 when the project is private3199 when not authenticated3200 behaves like unauthorized3201 returns the 2-segment group path3202 when authenticated3203 using basic auth3204 using a personal access token3205 with api scope3206 behaves like authenticated3207 with access to the project3208 returns the full project path3209 with an empty ssh_user3210 returns the full project path3211 without access to the project3212 behaves like unauthorized3213 returns the 2-segment group path3214 with user is blocked3215 behaves like unauthorized3216 returns the 2-segment group path3217 with read_user scope3218 behaves like unauthorized3219 returns the 2-segment group path3220 with a blacklisted ip3221 returns forbidden3222 when a personal access token is missing3223 returns unauthorized3224 with a subpackage that is not a valid project path3225 behaves like a nested project3226 when the project is public3227 returns the full project path3228 when the project is private3229 when not authenticated3230 behaves like unauthorized3231 returns the 2-segment group path3232 when authenticated3233 using basic auth3234 using a personal access token3235 with api scope3236 behaves like authenticated3237 with access to the project3238 returns the full project path3239 with an empty ssh_user3240 returns the full project path3241 without access to the project3242 behaves like unauthorized3243 returns the 2-segment group path3244 with user is blocked3245 behaves like unauthorized3246 returns the 2-segment group path3247 with read_user scope3248 behaves like unauthorized3249 returns the 2-segment group path3250 with a blacklisted ip3251 returns forbidden3252 when a personal access token is missing3253 returns unauthorized3254 without subpackages3255 behaves like a nested project3256 when the project is public3257 returns the full project path3258 when the project is private3259 when not authenticated3260 behaves like unauthorized3261 returns the 2-segment group path3262 when authenticated3263 using basic auth3264 using a personal access token3265 with api scope3266 behaves like authenticated3267 with access to the project3268 returns the full project path3269 with an empty ssh_user3270 returns the full project path3271 without access to the project3272 behaves like unauthorized3273 returns the 2-segment group path3274 with user is blocked3275 behaves like unauthorized3276 returns the 2-segment group path3277 with read_user scope3278 behaves like unauthorized3279 returns the 2-segment group path3280 with a blacklisted ip3281 returns forbidden3282 when a personal access token is missing3283 returns unauthorized3284 with a bogus path3285 skips go-import generation3286 with a public project without a repository3287 returns 4043288 with a non-standard head3289 returns the full project path3290 with nothing disabled3291 with simple 2-segment project path3292 with subpackages3293 returns the full project path3294 without subpackages3295 returns the full project path3296 with a nested project path3297 with subpackages3298 behaves like a nested project3299 when the project is public3300 returns the full project path3301 when the project is private3302 when not authenticated3303 behaves like unauthorized3304 returns the 2-segment group path3305 when authenticated3306 using basic auth3307 using a personal access token3308 with api scope3309 behaves like authenticated3310 with access to the project3311 returns the full project path3312 with an empty ssh_user3313 returns the full project path3314 without access to the project3315 behaves like unauthorized3316 returns the 2-segment group path3317 with user is blocked3318 behaves like unauthorized3319 returns the 2-segment group path3320 with read_user scope3321 behaves like unauthorized3322 returns the 2-segment group path3323 with a blacklisted ip3324 returns forbidden3325 when a personal access token is missing3326 returns unauthorized3327 with a subpackage that is not a valid project path3328 behaves like a nested project3329 when the project is public3330 returns the full project path3331 when the project is private3332 when not authenticated3333 behaves like unauthorized3334 returns the 2-segment group path3335 when authenticated3336 using basic auth3337 using a personal access token3338 with api scope3339 behaves like authenticated3340 with access to the project3341 returns the full project path3342 with an empty ssh_user3343 returns the full project path3344 without access to the project3345 behaves like unauthorized3346 returns the 2-segment group path3347 with user is blocked3348 behaves like unauthorized3349 returns the 2-segment group path3350 with read_user scope3351 behaves like unauthorized3352 returns the 2-segment group path3353 with a blacklisted ip3354 returns forbidden3355 when a personal access token is missing3356 returns unauthorized3357 without subpackages3358 behaves like a nested project3359 when the project is public3360 returns the full project path3361 when the project is private3362 when not authenticated3363 behaves like unauthorized3364 returns the 2-segment group path3365 when authenticated3366 using basic auth3367 using a personal access token3368 with api scope3369 behaves like authenticated3370 with access to the project3371 returns the full project path3372 with an empty ssh_user3373 returns the full project path3374 without access to the project3375 behaves like unauthorized3376 returns the 2-segment group path3377 with user is blocked3378 behaves like unauthorized3379 returns the 2-segment group path3380 with read_user scope3381 behaves like unauthorized3382 returns the 2-segment group path3383 with a blacklisted ip3384 returns forbidden3385 when a personal access token is missing3386 returns unauthorized3387 with a bogus path3388 skips go-import generation3389 with a public project without a repository3390 returns 4043391 with a non-standard head3392 returns the full project path3393 with nothing disabled (blank string)3394 with simple 2-segment project path3395 with subpackages3396 returns the full project path3397 without subpackages3398 returns the full project path3399 with a nested project path3400 with subpackages3401 behaves like a nested project3402 when the project is public3403 returns the full project path3404 when the project is private3405 when not authenticated3406 behaves like unauthorized3407 returns the 2-segment group path3408 when authenticated3409 using basic auth3410 using a personal access token3411 with api scope3412 behaves like authenticated3413 with access to the project3414 returns the full project path3415 with an empty ssh_user3416 returns the full project path3417 without access to the project3418 behaves like unauthorized3419 returns the 2-segment group path3420 with user is blocked3421 behaves like unauthorized3422 returns the 2-segment group path3423 with read_user scope3424 behaves like unauthorized3425 returns the 2-segment group path3426 with a blacklisted ip3427 returns forbidden3428 when a personal access token is missing3429 returns unauthorized3430 with a subpackage that is not a valid project path3431 behaves like a nested project3432 when the project is public3433 returns the full project path3434 when the project is private3435 when not authenticated3436 behaves like unauthorized3437 returns the 2-segment group path3438 when authenticated3439 using basic auth3440 using a personal access token3441 with api scope3442 behaves like authenticated3443 with access to the project3444 returns the full project path3445 with an empty ssh_user3446 returns the full project path3447 without access to the project3448 behaves like unauthorized3449 returns the 2-segment group path3450 with user is blocked3451 behaves like unauthorized3452 returns the 2-segment group path3453 with read_user scope3454 behaves like unauthorized3455 returns the 2-segment group path3456 with a blacklisted ip3457 returns forbidden3458 when a personal access token is missing3459 returns unauthorized3460 without subpackages3461 behaves like a nested project3462 when the project is public3463 returns the full project path3464 when the project is private3465 when not authenticated3466 behaves like unauthorized3467 returns the 2-segment group path3468 when authenticated3469 using basic auth3470 using a personal access token3471 with api scope3472 behaves like authenticated3473 with access to the project3474 returns the full project path3475 with an empty ssh_user3476 returns the full project path3477 without access to the project3478 behaves like unauthorized3479 returns the 2-segment group path3480 with user is blocked3481 behaves like unauthorized3482 returns the 2-segment group path3483 with read_user scope3484 behaves like unauthorized3485 returns the 2-segment group path3486 with a blacklisted ip3487 returns forbidden3488 when a personal access token is missing3489 returns unauthorized3490 with a bogus path3491 skips go-import generation3492 with a public project without a repository3493 returns 4043494 with a non-standard head3495 returns the full project path3496Snippets::UpdateService3497 #execute3498 when Project Snippet3499 behaves like a service that updates a snippet3500 updates a snippet with the provided attributes3501 behaves like public visibility level restrictions apply3502 when user is not an admin3503 responds with an error3504 does not update snippet to public visibility3505 when user is an admin3506 responds with success3507 updates the snippet to public visibility3508 when visibility level is passed as a string3509 assigns the correct visibility level3510 behaves like snippet update data is tracked3511 increments count when create succeeds3512 when update fails3513 does not increment count3514 behaves like updates repository content3515 commit the files to the repository3516 returns error if snippet does not have a snippet_repository3517 when an error is raised3518 logs the error3519 returns error with generic error message3520 when the repository does not exist3521 does not try to commit file3522 behaves like commit operation fails3523 returns error3524 when repository is empty3525 destroys the created repository in disk3526 destroys the SnippetRepository object3527 expires the repository exists method cache3528 when repository is not empty3529 does not destroy the repository3530 does not destroy the snippet repository3531 expires the repository exists method cache3532 with snippet modifications3533 rolls back any snippet modifications3534 keeps any snippet modifications3535 behaves like committable attributes3536 when file_name is updated3537 commits to repository3538 when content is updated3539 commits to repository3540 when content or file_name is not updated3541 does not perform any commit3542 behaves like when snippet_actions param is present3543 updates a snippet with the provided attributes3544 commits the files to the repository3545 when content or file_name params are present3546 raises a validation error3547 when snippet_file content is not present3548 does not update snippet content3549 when snippet_actions param is invalid3550 raises a validation error3551 when an error is raised committing the file3552 keeps any snippet modifications3553 commit actions3554 update action3555 updates the file content3556 when previous_path is present3557 updates the file content3558 when content is not present3559 behaves like returns an error3560 is expected to eq "Snippet actions have invalid data"3561 when file_path does not exist3562 behaves like returns an error3563 is expected to eq "Repository Error updating the snippet"3564 move action3565 when file_path and previous_path are the same3566 behaves like returns an error3567 is expected to eq "Snippet actions have invalid data"3568 when file_path and previous_path are different3569 renames the file3570 when previous_path does not exist3571 behaves like returns an error3572 is expected to eq "Repository Error updating the snippet"3573 when user wants to rename the file and update content3574 performs both operations3575 when the file_path is not present3576 generates the name for the renamed file3577 delete action3578 behaves like deletes the file3579 is expected to be nil3580 when previous_path is present and same as file_path3581 behaves like deletes the file3582 is expected to be nil3583 when previous_path is present and is different from file_path3584 behaves like deletes the file3585 is expected to be nil3586 when content is present3587 behaves like deletes the file3588 is expected to be nil3589 when file_path does not exist3590 behaves like returns an error3591 is expected to eq "Repository Error updating the snippet"3592 create action3593 creates the file3594 when content is not present3595 behaves like returns an error3596 is expected to eq "Snippet actions have invalid data"3597 when file_path is not present or empty3598 generates the file path for the files3599 when file_path already exists in the repository3600 behaves like returns an error3601 is expected to eq "Repository Error updating the snippet"3602 when previous_path is present3603 creates the file3604 combination of actions3605 performs all operations3606 behaves like only file_name is present3607 when renaming the file_name3608 behaves like content is not updated3609 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"3610 when file_name does not change3611 behaves like content is not updated3612 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"3613 behaves like only content is present3614 updates the content3615 behaves like invalid params error response3616 responds to errors appropriately3617 behaves like checking spam3618 executes SpamActionService3619 when snippet does not have a repository3620 behaves like creates repository and creates file3621 when file_name and content params are used3622 creates repository3623 commits the files to the repository3624 when the repository creation fails3625 raise an error3626 does not try to commit file3627 when snippet_actions param is used3628 performs operation without raising errors3629 when the repository is not created3630 keeps snippet database data3631 behaves like commit operation fails3632 returns error3633 when repository is empty3634 destroys the created repository in disk3635 destroys the SnippetRepository object3636 expires the repository exists method cache3637 when repository is not empty3638 does not destroy the repository3639 does not destroy the snippet repository3640 expires the repository exists method cache3641 with snippet modifications3642 rolls back any snippet modifications3643 keeps any snippet modifications3644 when PersonalSnippet3645 behaves like a service that updates a snippet3646 updates a snippet with the provided attributes3647 behaves like public visibility level restrictions apply3648 when user is not an admin3649 responds with an error3650 does not update snippet to public visibility3651 when user is an admin3652 responds with success3653 updates the snippet to public visibility3654 when visibility level is passed as a string3655 assigns the correct visibility level3656 behaves like snippet update data is tracked3657 increments count when create succeeds3658 when update fails3659 does not increment count3660 behaves like updates repository content3661 commit the files to the repository3662 returns error if snippet does not have a snippet_repository3663 when an error is raised3664 logs the error3665 returns error with generic error message3666 when the repository does not exist3667 does not try to commit file3668 behaves like commit operation fails3669 returns error3670 when repository is empty3671 destroys the created repository in disk3672 destroys the SnippetRepository object3673 expires the repository exists method cache3674 when repository is not empty3675 does not destroy the repository3676 does not destroy the snippet repository3677 expires the repository exists method cache3678 with snippet modifications3679 rolls back any snippet modifications3680 keeps any snippet modifications3681 behaves like committable attributes3682 when file_name is updated3683 commits to repository3684 when content is updated3685 commits to repository3686 when content or file_name is not updated3687 does not perform any commit3688 behaves like when snippet_actions param is present3689 updates a snippet with the provided attributes3690 commits the files to the repository3691 when content or file_name params are present3692 raises a validation error3693 when snippet_file content is not present3694 does not update snippet content3695 when snippet_actions param is invalid3696 raises a validation error3697 when an error is raised committing the file3698 keeps any snippet modifications3699 commit actions3700 update action3701 updates the file content3702 when previous_path is present3703 updates the file content3704 when content is not present3705 behaves like returns an error3706 is expected to eq "Snippet actions have invalid data"3707 when file_path does not exist3708 behaves like returns an error3709 is expected to eq "Repository Error updating the snippet"3710 move action3711 when file_path and previous_path are the same3712 behaves like returns an error3713 is expected to eq "Snippet actions have invalid data"3714 when file_path and previous_path are different3715 renames the file3716 when previous_path does not exist3717 behaves like returns an error3718 is expected to eq "Repository Error updating the snippet"3719 when user wants to rename the file and update content3720 performs both operations3721 when the file_path is not present3722 generates the name for the renamed file3723 delete action3724 behaves like deletes the file3725 is expected to be nil3726 when previous_path is present and same as file_path3727 behaves like deletes the file3728 is expected to be nil3729 when previous_path is present and is different from file_path3730 behaves like deletes the file3731 is expected to be nil3732 when content is present3733 behaves like deletes the file3734 is expected to be nil3735 when file_path does not exist3736 behaves like returns an error3737 is expected to eq "Repository Error updating the snippet"3738 create action3739 creates the file3740 when content is not present3741 behaves like returns an error3742 is expected to eq "Snippet actions have invalid data"3743 when file_path is not present or empty3744 generates the file path for the files3745 when file_path already exists in the repository3746 behaves like returns an error3747 is expected to eq "Repository Error updating the snippet"3748 when previous_path is present3749 creates the file3750 combination of actions3751 performs all operations3752 behaves like only file_name is present3753 when renaming the file_name3754 behaves like content is not updated3755 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"3756 when file_name does not change3757 behaves like content is not updated3758 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"3759 behaves like only content is present3760 updates the content3761 behaves like invalid params error response3762 responds to errors appropriately3763 behaves like checking spam3764 executes SpamActionService3765 when snippet does not have a repository3766 behaves like creates repository and creates file3767 when file_name and content params are used3768 creates repository3769 commits the files to the repository3770 when the repository creation fails3771 raise an error3772 does not try to commit file3773 when snippet_actions param is used3774 performs operation without raising errors3775 when the repository is not created3776 keeps snippet database data3777 behaves like commit operation fails3778 returns error3779 when repository is empty3780 destroys the created repository in disk3781 destroys the SnippetRepository object3782 expires the repository exists method cache3783 when repository is not empty3784 does not destroy the repository3785 does not destroy the snippet repository3786 expires the repository exists method cache3787 with snippet modifications3788 rolls back any snippet modifications3789 keeps any snippet modifications3790Gitlab::Database::LoadBalancing3791 .base_models3792 returns the models to apply load balancing to3793 returns the models as a frozen array3794 .each_load_balancer3795 yields every load balancer to the supplied block3796 returns an Enumerator when no block is given3797 .primary_only?3798 returns true if all load balancers have no replicas3799 returns false if at least one has replicas3800 .release_hosts3801 releases the host of every load balancer3802 .db_role_for_connection3803 when the NullPool is used for connection3804 returns unknown3805 when the load balancing is configured3806 when a proxy connection is used3807 returns :unknown3808 when an invalid connection is used3809 returns :unknown3810 when a null connection is used3811 returns :unknown3812 when a read connection is used3813 returns :replica3814 when a read_write connection is used3815 returns :primary3816 LoadBalancing integration tests3817-- create_table(:_test_load_balancing_test, {:force=>true})3818 -> 0.0598s3819 queries: -> { model.first }, include_transaction: false, expected_results: [:replica]3820 redirects queries to the right roles3821 queries: -> { model.find_by(id: 123) }, include_transaction: false, expected_results: [:replica]3822 redirects queries to the right roles3823 queries: -> { model.where(name: 'hello').to_a }, include_transaction: false, expected_results: [:replica]3824 redirects queries to the right roles3825 queries: -> { model.create!(name: 'test1') }, include_transaction: false, expected_results: [:primary]3826 redirects queries to the right roles3827 queries: -> {3828 instance = model.create!(name: 'test1')3829 instance.update!(name: 'test2')3830 }, include_transaction: false, expected_results: [:primary, :primary]3831 redirects queries to the right roles3832 queries: -> { model.update_all(name: 'test2') }, include_transaction: false, expected_results: [:primary]3833 redirects queries to the right roles3834 queries: -> {3835 instance = model.create!(name: 'test1')3836 instance.destroy!3837 }, include_transaction: false, expected_results: [:primary, :primary]3838 redirects queries to the right roles3839 queries: -> { model.delete_all }, include_transaction: false, expected_results: [:primary]3840 redirects queries to the right roles3841 queries: -> { model.connection.exec_query('SELECT 1').to_a }, include_transaction: false, expected_results: [:primary]3842 redirects queries to the right roles3843 queries: -> {3844 model.first3845 model.create!(name: 'test1')3846 model.first3847 model.find_by(name: 'test1')3848 }, include_transaction: false, expected_results: [:replica, :primary, :primary, :primary]3849 redirects queries to the right roles3850 queries: -> {3851 model.transaction do3852 model.find_by(name: 'test1')3853 model.create!(name: 'test1')3854 instance = model.find_by(name: 'test1')3855 instance.update!(name: 'test2')3856 end3857 model.find_by(name: 'test1')3858 }, include_transaction: true, expected_results: [:primary, :primary, :primary, :primary, :primary, :primary, :primary]3859 redirects queries to the right roles3860 queries: -> {3861 model.transaction do3862 model.transaction do3863 model.create!(name: 'test1')3864 end3865 model.update_all(name: 'test2')3866 end3867 model.find_by(name: 'test1')3868 }, include_transaction: true, expected_results: [:primary, :primary, :primary, :primary, :primary]3869 redirects queries to the right roles3870 queries: -> {3871 model.transaction do3872 model.first3873 model.where(name: 'test1').to_a3874 end3875 }, include_transaction: true, expected_results: [:primary, :primary, :primary, :primary]3876 redirects queries to the right roles3877 queries: -> {3878 ::Gitlab::Database::LoadBalancing::Session.current.use_primary do3879 model.first3880 model.where(name: 'test1').to_a3881 end3882 model.first3883 }, include_transaction: false, expected_results: [:primary, :primary, :replica]3884 redirects queries to the right roles3885 queries: -> {3886 model.first3887 ::Gitlab::Database::LoadBalancing::Session.current.use_primary!3888 model.where(name: 'test1').to_a3889 }, include_transaction: false, expected_results: [:replica, :primary]3890 redirects queries to the right roles3891 queries: -> {3892 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do3893 model.where(name: 'test1').to_a3894 end3895 }, include_transaction: false, expected_results: [:replica]3896 redirects queries to the right roles3897 queries: -> {3898 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do3899 model.create!(name: 'test1')3900 end3901 }, include_transaction: false, expected_results: [:primary]3902 redirects queries to the right roles3903 queries: -> {3904 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do3905 model.connection.exec_query("SELECT 1")3906 end3907 }, include_transaction: false, expected_results: [:primary]3908 redirects queries to the right roles3909 queries: -> {3910 ::Gitlab::Database::LoadBalancing::Session.current.use_primary!3911 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do3912 model.where(name: 'test1').to_a3913 end3914 }, include_transaction: false, expected_results: [:replica]3915 redirects queries to the right roles3916 queries: -> {3917 ::Gitlab::Database::LoadBalancing::Session.current.use_primary!3918 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do3919 model.create!(name: 'test1')3920 end3921 }, include_transaction: false, expected_results: [:primary]3922 redirects queries to the right roles3923 queries: -> {3924 ::Gitlab::Database::LoadBalancing::Session.current.use_primary!3925 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do3926 model.connection.exec_query('SELECT 1')3927 end3928 }, include_transaction: false, expected_results: [:primary]3929 redirects queries to the right roles3930 queries: -> {3931 ::Gitlab::Database::LoadBalancing::Session.current.use_primary do3932 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do3933 model.where(name: 'test1').to_a3934 end3935 end3936 }, include_transaction: false, expected_results: [:replica]3937 redirects queries to the right roles3938 queries: -> {3939 ::Gitlab::Database::LoadBalancing::Session.current.write!3940 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do3941 model.where(name: 'test1').to_a3942 end3943 }, include_transaction: false, expected_results: [:replica]3944 redirects queries to the right roles3945 queries: -> {3946 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do3947 model.first3948 model.where(name: 'test1').to_a3949 end3950 }, include_transaction: false, expected_results: [:replica, :replica]3951 redirects queries to the right roles3952 queries: -> {3953 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do3954 model.transaction do3955 model.first3956 model.where(name: 'test1').to_a3957 end3958 end3959 }, include_transaction: false, expected_results: [:replica, :replica]3960 redirects queries to the right roles3961 queries: -> {3962 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do3963 model.connection.exec_query("SELECT 1")3964 end3965 }, include_transaction: false, expected_results: [:replica]3966 redirects queries to the right roles3967 queries: -> {3968 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do3969 model.transaction do3970 model.connection.exec_query("SET LOCAL statement_timeout = 5000")3971 model.count3972 end3973 end3974 }, include_transaction: true, expected_results: [:replica, :replica, :replica, :replica]3975 redirects queries to the right roles3976 queries: -> {3977 model.create!(name: 'Test1')3978 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do3979 model.connection.exec_query("SELECT 1")3980 end3981 }, include_transaction: false, expected_results: [:primary, :primary]3982 redirects queries to the right roles3983 queries: -> {3984 ::Gitlab::Database::LoadBalancing::Session.current.use_primary!3985 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do3986 model.connection.exec_query("SELECT 1")3987 end3988 }, include_transaction: false, expected_results: [:primary]3989 redirects queries to the right roles3990 queries: -> {3991 ::Gitlab::Database::LoadBalancing::Session.current.use_primary do3992 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do3993 model.connection.exec_query("SELECT 1")3994 end3995 end3996 }, include_transaction: false, expected_results: [:primary]3997 redirects queries to the right roles3998 queries: -> {3999 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do4000 ::Gitlab::Database::LoadBalancing::Session.current.use_primary do4001 model.connection.exec_query("SELECT 1")4002 end4003 end4004 }, include_transaction: false, expected_results: [:primary]4005 redirects queries to the right roles4006 queries: -> {4007 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do4008 model.connection.exec_query("SELECT 1")4009 model.delete_all4010 model.connection.exec_query("SELECT 1")4011 end4012 }, include_transaction: false, expected_results: [:replica, :primary, :primary]4013 redirects queries to the right roles4014 queries: -> {4015 ::Gitlab::Database::LoadBalancing::Session.current.use_replicas_for_read_queries do4016 ::Gitlab::Database::LoadBalancing::Session.current.fallback_to_replicas_for_ambiguous_queries do4017 model.connection.exec_query('SELECT 1')4018 model.where(name: 'test1').to_a4019 end4020 end4021 }, include_transaction: false, expected_results: [:replica, :replica]4022 redirects queries to the right roles4023 custom connection handling4024 queries: -> {4025 model.connection.clear_cache!4026 model.connection.schema_cache.add('users')4027 model.connection.pool.release_connection4028 }, expected_role: :replica4029 redirects queries to the right roles4030 queries: -> {4031 connection = model.connection4032 connection.select_one('SELECT 1')4033 connection.pool.release_connection4034 }, expected_role: :replica4035 redirects queries to the right roles4036 queries: -> {4037 connection = model.retrieve_connection4038 connection.select_one('SELECT 1')4039 connection.pool.release_connection4040 }, expected_role: :primary4041 redirects queries to the right roles4042 a write inside a transaction inside fallback_to_replicas_for_ambiguous_queries block4043 raises an exception4044-- drop_table(:_test_load_balancing_test, {:force=>true})4045 -> 0.2639s4046MergeRequests::MergeService4047 #execute4048 valid params4049 is expected to be valid4050 is expected to be merged4051 persists merge_commit_sha and nullifies in_progress_merge_commit_sha4052 does not update squash_commit_sha if it is not a squash4053 sends email to user2 about merge of new merge_request4054 note creation4055 creates resource state event about merge_request merge4056 when squashing4057 merges the merge request with squashed commits4058 persists squash_commit_sha4059 running the service once4060 logs status messages4061 running the service multiple time4062 is idempotent4063 when an invalid sha is passed4064 does not merge the MR4065 when the `sha` param is missing4066 returns the error4067 closes related issues4068 closes GitLab issue tracker issues4069 with Jira integration4070 closes issues on Jira issue tracker4071 wrong issue markdown4072 does not close issues on Jira issue tracker4073 closes related todos4074 is expected to be done4075 source branch removal4076 when the source branch is protected4077 does not delete the source branch4078 when the source branch is the default branch4079 does not delete the source branch4080 when the source branch can be removed4081 when MR author set the source branch to be removed4082 removes the source branch using the author user4083 when the merger set the source branch not to be removed4084 does not delete the source branch4085 when MR merger set the source branch to be removed4086 removes the source branch using the current user4087 error handling4088 logs and saves error if there is an exception4089 logs and saves error if user is not authorized4090 logs and saves error if there is an PreReceiveError exception4091 logs and saves error if commit is not created4092 when source is missing4093 logs and saves error4094 when squashing is required4095 raises an error if squashing is not done4096 when squashing4097 logs and saves error if there is an error when squashing4098 logs and saves error if there is an PreReceiveError exception4099 when fast-forward merge is not allowed4100 logs and saves error if merge is semi-linear only4101 logs and saves error if merge is ff only4102 when not mergeable4103 with failing CI4104 logs and saves error4105 with unresolved discussions4106 logs and saves error4107 when passing `skip_discussions_check: true` as `options` parameter4108 merges the merge request4109 when the other sidekiq worker has already been running4110 does not execute service4111WorkItems::ParentLink4112 associations4113 is expected to belong to work_item required: false4114 is expected to belong to work_item_parent class_name => WorkItem required: false4115 validations4116 is expected to validate that :work_item cannot be empty/falsy4117 is expected to validate that :work_item_parent cannot be empty/falsy4118 is expected to validate that :work_item is case-sensitively unique4119 hierarchy4120 is valid if issue parent has task child4121 is valid if incident parent has task child4122 is not valid if parent is in other project4123 when assigning to various parent types4124 parent_type_sym: :issue, child_type_sym: :task, is_valid: true4125 validates if child can be added to the parent4126 parent_type_sym: :incident, child_type_sym: :task, is_valid: true4127 validates if child can be added to the parent4128 parent_type_sym: :task, child_type_sym: :issue, is_valid: false4129 validates if child can be added to the parent4130 parent_type_sym: :issue, child_type_sym: :issue, is_valid: false4131 validates if child can be added to the parent4132 parent_type_sym: :objective, child_type_sym: :objective, is_valid: true4133 validates if child can be added to the parent4134 parent_type_sym: :objective, child_type_sym: :key_result, is_valid: true4135 validates if child can be added to the parent4136 parent_type_sym: :key_result, child_type_sym: :objective, is_valid: false4137 validates if child can be added to the parent4138 parent_type_sym: :key_result, child_type_sym: :key_result, is_valid: false4139 validates if child can be added to the parent4140 parent_type_sym: :objective, child_type_sym: :issue, is_valid: false4141 validates if child can be added to the parent4142 parent_type_sym: :task, child_type_sym: :objective, is_valid: false4143 validates if child can be added to the parent4144 with nested ancestors4145 #validate_depth4146 is valid if depth is in limit4147 is not valid when maximum depth is reached4148 #validate_cyclic_reference4149 is not valid if parent and child are same4150 is not valid if child is already in ancestors4151 when parent already has maximum number of links4152 is not valid when another link is added4153 existing link is still valid4154 when setting confidentiality4155 confidential_parent: false, confidential_child: false, valid: true4156 validates if child confidentiality is compatible with parent4157 confidential_parent: true, confidential_child: true, valid: true4158 validates if child confidentiality is compatible with parent4159 confidential_parent: false, confidential_child: true, valid: true4160 validates if child confidentiality is compatible with parent4161 confidential_parent: true, confidential_child: false, valid: false4162 validates if child confidentiality is compatible with parent4163 scopes4164 for_parents4165 includes the correct records4166 with confidential work items4167 .has_public_children?4168 with confidential child4169 is expected to be falsey4170 with also public child4171 is expected to be truthy4172 .has_confidential_parent?4173 with confidential parent4174 is expected to be truthy4175 with public parent4176 is expected to be falsey4177 with relative positioning4178 behaves like a class that supports relative positioning4179 #scoped_items4180 includes all items with the same scope4181 #relative_siblings4182 includes all items with the same scope, except self4183 .move_nulls_to_end4184 moves items with null relative_position to the end4185 preserves relative position4186 moves the item near the start position when there are no existing positions4187 does not perform any moves if all items have their relative_position set4188 manages to move nulls to the end even if there is a sequence at the end4189 manages to move nulls to the end even if there is not enough space4190 manages to move nulls to the end, stacking if we cannot create enough space4191 manages to move nulls found in the relative scope4192 can move many nulls4193 does not have an N+1 issue4194 .move_nulls_to_start4195 moves items with null relative_position to the start4196 moves the item near the start position when there are no existing positions4197 preserves relative position4198 does not perform any moves if all items have their relative_position set4199 manages to move nulls to the start even if there is not enough space4200 manages to move nulls to the end, stacking if we cannot create enough space4201 #move_before4202 moves item before4203 can move the item before an item at the start4204 can move the item before an item at MIN_POSITION4205 can move the item before an item bunched up at MIN_POSITION4206 when there is no space4207 moves items correctly4208 leap-frogging to the left4209 can leap-frog STEPS times before needing to rebalance4210 there is no space to the left after moving STEPS times4211 rebalances to the right4212 #move_after4213 moves item after4214 can move the item after an item bunched up at MAX_POSITION4215 when there is no space4216 can move the item after an item at MAX_POSITION4217 moves items correctly4218 leap-frogging4219 rebalances after STEPS jumps4220 #move_to_start4221 places items at most IDEAL_DISTANCE from the start when the range is open4222 moves item to the end4223 positions the item at MIN_POSITION when there is only one space left4224 rebalances when there is already an item at the MIN_POSITION4225 deals with a run of elements at the start4226 #move_to_end4227 places items at most IDEAL_DISTANCE from the start when the range is open4228 moves item to the end4229 positions the item at MAX_POSITION when there is only one space left4230 rebalances when there is already an item at the MAX_POSITION4231 deals with a run of elements at the end4232 #move_between4233 positions item between two other4234 positions item between on top4235 positions item between to end4236 positions items even when after and before positions are the same4237 positions item in the middle of other two if distance is big enough4238 positions item closer to the middle if we are at the very top4239 positions item closer to the middle if we are at the very bottom4240 positions item in the middle of other two4241 positions item right if we pass non-sequential parameters4242 avoids N+1 queries when rebalancing other items4243 the two items are next to each other4244 behaves like moves item between4245 moves the middle item to between left and right4246 there is no space4247 behaves like moves item between4248 moves the middle item to between left and right4249 there is a bunch of items4250 handles bunches correctly4251 behaves like moves item between4252 moves the middle item to between left and right4253Glfm::UpdateSpecification#process4254 # order random4255 writing output html files4256 renders expected HTML4257 writing output_example_snapshots/snapshot_spec.md4258 with valid glfm_internal_extensions.md4259 replaces the header text with the GitLab version4260 includes header and all examples4261 with invalid non-example content in glfm_internal_extensions.md4262 raises an error4263 writing output_spec/spec.txt4264 includes only the header and official examples4265 retrieving latest GHFM spec.txt4266 when UPDATE_GHFM_SPEC_MD is not true (default)4267 does not download4268 when UPDATE_GHFM_SPEC_MD is true4269 with success4270 downloads and saves4271 with error handling4272 with a version mismatch4273 raises an error4274 with a failed read of file lines4275 raises an error if lines cannot be read4276 with a failed re-read of file string4277 raises an error if file is blank4278Resolvers::ProjectIssuesResolver4279 # order random4280 is expected to have nullable GraphQL type IssueConnection4281 increases field complexity based on arguments4282 when passing a non existent, batch loaded project4283 returns nil without breaking4284 with a project4285 #resolve4286 finds all issues4287 filters by state4288 filters by milestone4289 filters by two assignees4290 filters by assignee_id4291 filters by any assignee4292 filters by no assignee4293 filters by author4294 filters by labels4295 returns issues user can see4296 finds a specific issue with iid4297 batches queries that only include IIDs4298 finds a specific issue with iids4299 finds multiple issues with iids4300 finds only the issues within the project we are looking at4301 filtering by milestone wildcard id4302 returns issues with started milestone4303 returns issues with upcoming milestone4304 returns issues with any milestone4305 returns issues with no milestone4306 generates a mutually exclusive filter error when wildcard and title are provided4307 when using negated filters4308 returns issues matching the searched title after applying a negated filter4309 returns issues excluding the ones with started milestone4310 returns issues excluding the ones with upcoming milestone4311 generates a mutually exclusive filter error when wildcard and title are provided as negated filters4312 filter by release4313 filter by release_tag4314 returns all issues associated with the specified tags4315 when release_tag_wildcard_id is also provided4316 generates a mutually eclusive argument error4317 filter by negated release_tag4318 returns all issues not associated with the specified tags4319 filter by release_tag_wildcard_id4320 when filtering by ANY4321 is expected to contain exactly #<Issue id:427 group234/project257#3>, #<Issue id:428 group234/project257#4>, and #<Issue id:429 group234/project257#5>4322 when filtering by NONE4323 is expected to contain exactly #<Issue id:416 group234/project257#1> and #<Issue id:417 group234/project257#2>4324 filters by assignee_username4325 filters by assignee_username4326 filters by assignee_usernames4327 when both assignee_username and assignee_usernames are provided4328 generates a mutually exclusive filter error4329 filters by created_at4330 filters by created_before4331 filters by created_after4332 filters by updated_at4333 filters by updated_before4334 filters by updated_after4335 filters by closed_at4336 filters by closed_before4337 filters by closed_after4338 filters by issue_type4339 filters by a single type4340 filters by a single type, negative assertion4341 filters by more than one type4342 ignores the filter if none given4343 when filtering by reaction emoji4344 filters by reaction emoji4345 filters by reaction emoji wildcard "none"4346 filters by reaction emoji wildcard "any"4347 filters by negated reaction emoji4348 when listing confidential issues4349 when user is allowed to view confidential issues4350 returns all viewable issues by default4351 returns only the non-confidential issues for the project when filter is set to false4352 returns only the confidential issues for the project when filter is set to true4353 when user is not allowed to see confidential issues4354 returns all viewable issues by default4355 does not return the confidential issues when filter is set to false4356 does not return the confidential issues when filter is set to true4357 when searching issues4358 behaves like graphql query for searching issuables4359 uses search optimization4360 filters issuables by title4361 filters issuables by description4362 with in param4363 generates an error if param search is missing4364 filters issuables by title and description4365 filters issuables by description only4366 filters issuables by title only4367 filters by negated params4368 returns issues without the specified iids4369 returns issues without the specified label names4370 returns issues without the specified milestone4371 returns issues without the specified assignee_usernames4372 returns issues without the specified assignee_id4373 returns issues without the specified issue_type4374 when filtering by negated author4375 returns issues without the specified author_username4376 filtering by crm4377 when filtering by contact4378 returns only the issues for the contact4379 when filtering by organization4380 returns only the issues for the contact4381 sorting4382 when sorting by created4383 sorts issues ascending4384 sorts issues descending4385 when sorting by closed at4386 sorts issues ascending4387 sorts issues descending4388 when sorting by due date4389 sorts issues ascending4390 sorts issues descending4391 when sorting by relative position4392 sorts issues ascending4393 when sorting by priority4394 sorts issues ascending4395 sorts issues descending4396 when sorting by label priority4397 sorts issues ascending4398 sorts issues descending4399 when sorting by milestone due date4400 sorts issues ascending4401 sorts issues descending4402 when sorting by severity4403 sorts issues ascending4404 sorts issues descending4405 when sorting by popularity4406 sorts issues ascending (ties broken by id in desc order)4407 sorts issues descending (ties broken by id in desc order)4408 when sorting by escalation status4409 sorts issues ascending4410 sorts issues descending4411 sorts issues created_at4412 when sorting with non-stable cursors4413 uses offset-pagination when sorting by priority_asc4414 uses offset-pagination when sorting by priority_desc4415 uses offset-pagination when sorting by popularity_asc4416 uses offset-pagination when sorting by popularity_desc4417 uses offset-pagination when sorting by label_priority_asc4418 uses offset-pagination when sorting by label_priority_desc4419 uses offset-pagination when sorting by milestone_due_asc4420 uses offset-pagination when sorting by milestone_due_desc4421 uses offset-pagination when sorting by escalation_status_asc4422 uses offset-pagination when sorting by escalation_status_desc4423 when sorting by title4424 sorts issues ascending4425 sorts issues descending4426Gitlab::Conflict::File4427 delegates4428 is expected to delegate #type to the #raw object4429 is expected to delegate #content to the #raw object4430 is expected to delegate #path to the #raw object4431 is expected to delegate #ancestor_path to the #raw object4432 is expected to delegate #their_path to the #raw object4433 is expected to delegate #our_path to the #raw object4434 is expected to delegate #our_mode to the #raw object4435 is expected to delegate #our_blob to the #raw object4436 is expected to delegate #repository to the #raw object4437 #resolve_lines4438 raises ResolutionError when passed a hash without resolutions for all sections4439 when resolving everything to the same side4440 has the correct number of lines4441 has content matching the chosen lines4442 with mixed resolutions4443 has the correct number of lines4444 returns a file containing only the chosen parts of the resolved sections4445 #highlight_lines!4446 is called implicitly when rich_text is accessed on a line4447 sets the rich_text of the lines matching the text content4448 highlights the lines correctly4449 #diff_lines_for_serializer4450 assigns conflict types to the diff lines4451 swaps the new and old positions around4452 does not add a match line to the end of the section4453 when there are unchanged trailing lines4454 assign conflict types and adds match line to the end of the section4455 #sections4456 only inserts match lines when there is a gap between sections4457 sets conflict to false for sections with only unchanged lines4458 only includes a maximum of CONTEXT_LINES (plus an optional match line) in context sections4459 sets conflict to true for sections with only changed lines4460 adds unique IDs to conflict sections, and not to other sections4461 with an example file4462 sets the correct match line headers4463 does not add match lines where they are not needed4464 creates context sections of the correct length4465 #as_json4466 includes the blob path for the file4467 includes the blob icon for the file4468 with the full_content option passed4469 includes the full content of the conflict4470 #conflict_type4471 ancestor_path: "/ancestor/path", their_path: "/their/path", our_path: "/our/path", renamed_file?: false, result: :both_modified4472 is expected to eq :both_modified4473 ancestor_path: "/ancestor/path", their_path: "", our_path: "/our/path", renamed_file?: false, result: :modified_source_removed_target4474 is expected to eq :modified_source_removed_target4475 ancestor_path: "/ancestor/path", their_path: "/their/path", our_path: "", renamed_file?: false, result: :modified_target_removed_source4476 is expected to eq :modified_target_removed_source4477 ancestor_path: "", their_path: "/their/path", our_path: "/our/path", renamed_file?: false, result: :both_added4478 is expected to eq :both_added4479 ancestor_path: "", their_path: "", our_path: "/our/path", renamed_file?: false, result: :removed_target_renamed_source4480 is expected to eq :removed_target_renamed_source4481 ancestor_path: "", their_path: "", our_path: "/our/path", renamed_file?: true, result: :renamed_same_file4482 is expected to eq :renamed_same_file4483 ancestor_path: "", their_path: "/their/path", our_path: "", renamed_file?: false, result: :removed_source_renamed_target4484 is expected to eq :removed_source_renamed_target4485JobArtifactUploader4486 behaves like builds correct paths4487 #store_dir4488 behaves like matches the method pattern4489 is expected to match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/4490 #cache_dir4491 behaves like matches the method pattern4492 is expected to match /artifacts\/tmp\/cache/4493 #work_dir4494 behaves like matches the method pattern4495 is expected to match /artifacts\/tmp\/work/4496 #upload_path4497 behaves like matches the method pattern4498 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4499 #relative_path4500 is relative (PENDING: Path not set, skipping.)4501 .absolute_path4502 behaves like matches the method pattern4503 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4504 .base_dir4505 behaves like matches the method pattern4506 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4507 path traversal exploits4508 throws an exception4509 object store is REMOTE4510 behaves like builds correct paths4511 #store_dir4512 behaves like matches the method pattern4513 is expected to match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/4514 #cache_dir4515 behaves like matches the method pattern4516 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4517 #work_dir4518 behaves like matches the method pattern4519 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4520 #upload_path4521 behaves like matches the method pattern4522 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4523 #relative_path4524 is relative (PENDING: Path not set, skipping.)4525 .absolute_path4526 behaves like matches the method pattern4527 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4528 .base_dir4529 behaves like matches the method pattern4530 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4531 path traversal exploits4532 throws an exception4533 #cdn_enabled_url4534 returns URL and false4535 file is stored in valid local_path4536 is expected to start with "/builds/gitlab-org/gitlab/tmp/tests/artifacts/"4537 is expected to include "/2023_04_12/"4538 is expected to include "/20/20/"4539 is expected to end with "ci_build_artifacts.zip"4540 #dynamic_segment4541 when a job artifact is stored in legacy_path4542 behaves like Read file from legacy path4543 store_path returns the legacy path4544 has exactly the same content4545 when the artifact file is stored in hashed_path4546 behaves like Read file from hashed path4547 store_path returns hashed path4548 has exactly the same content4549 when file_location column is empty4550 behaves like Read file from hashed path4551 store_path returns hashed path4552 has exactly the same content4553 #migrate!4554 does not set Content-Type4555 behaves like migrates4556 returns corresponding file type4557 does nothing when migrating to the current store4558 migrate to the specified store4559 removes the original file after the migration4560 can access to the original file during migration4561 when migrate! is not occupied by another process4562 executes migrate!4563 executes use_file4564 when migrate! is occupied by another process4565 does not execute migrate!4566 does not execute use_file4567 migration is unsuccessful4568 when the store is not supported4569 does not update the object_store4570 does not delete the original file4571 upon a fog failure4572 does not update the object_store4573 does not delete the original file4574 upon a database failure4575 does not update the object_store4576 does not delete the original file4577 behaves like migrates4578 returns corresponding file type4579 does nothing when migrating to the current store4580 migrate to the specified store4581 removes the original file after the migration4582 can access to the original file during migration4583 when migrate! is not occupied by another process4584 executes migrate!4585 executes use_file4586 when migrate! is occupied by another process4587 does not execute migrate!4588 does not execute use_file4589 migration is unsuccessful4590 when the store is not supported4591 does not update the object_store4592 does not delete the original file4593 upon a fog failure4594 does not update the object_store4595 does not delete the original file4596 upon a database failure4597 does not update the object_store4598 does not delete the original file4599Gitlab::Gfm::ReferenceRewriter4600 #rewrite4601 multiple issues and merge requests referenced4602 plain text description4603 is expected to include "old-project#1"4604 is expected to include "old-project#2"4605 is expected to include "old-project!1"4606 description with ignored elements4607 is expected to include "old-project#1"4608 is expected not to include "old-project#2"4609 is expected not to include "old-project!1"4610 rewrite ambigous references4611 url4612 is expected to include "http://gitlab.com/#1"4613 code4614 is expected to eq "old-project#1, but not `[#1]`"4615 code reverse4616 is expected to eq "not `#1`, but old-project#1"4617 code in random order4618 is expected to eq "old-project#1, `#1`, old-project#1, `#1`"4619 description with project labels4620 label referenced by id4621 is expected to eq "old-project#1 and old-project~123"4622 label referenced by text4623 is expected to eq "old-project#1 and old-project~123"4624 description with group labels4625 label referenced by id4626 is expected to eq "group236/old-project#1 and group236/old-project~321"4627 label referenced by text4628 is expected to eq "group237/old-project#1 and group237/old-project~321"4629 when description contains a local reference4630 is expected to eq "See old-project#1"4631 when description contains a cross reference4632 is expected to eq "See namespace277/project369!1"4633 with a commit4634 reference to an absolute URL to a commit4635 is expected to eq "http://localhost/group235/old-project/-/commit/b83d6e391c22777fca1ed3012fce84f633d7fed0"4636 reference to a commit4637 is expected to eq "old-project@b83d6e391c22777fca1ed3012fce84f633d7fed0"4638 reference contains project milestone4639 is expected to eq "milestone: old-project%\"9.0\""4640 when referring to group milestone4641 is expected to eq "milestone %\"10.0\""4642 when referring to a group4643 is expected to eq "group @group235"4644 when referring to a user4645 is expected to eq "user @user255"4646 when referable has a nil reference4647 raises an error that should be fixed4648Gitlab::GitalyClient4649 .query_time4650 increments query times4651 .long_timeout4652 default case4653 is expected to eq 6 hours4654 running in Puma4655 is expected to eq 554656 .filesystem_id_from_disk4657 catches errors4658 .filesystem_id4659 returns an empty string when the relevant storage status is not found in the response4660 when the relevant storage status is not found4661 .filesystem_disk_available4662 returns nil when the relevant storage status is not found in the response4663 .filesystem_disk_used4664 returns nil when the relevant storage status is not found in the response4665 when the relevant storage status is found4666 .filesystem_disk_available4667 returns disk available when the relevant storage status is found in the response4668 .filesystem_disk_used4669 returns disk used when the relevant storage status is found in the response4670 .stub_class4671 returns the gRPC health check stub4672 returns a Gitaly stub4673 .stub_address4674 returns the same result after being called multiple times4675 .stub_creds4676 returns :this_channel_is_insecure if unix4677 returns :this_channel_is_insecure if tcp4678 returns :this_channel_is_insecure if dns4679 returns :this_channel_is_insecure if dns (short-form)4680 returns :this_channel_is_insecure if dns (with authority)4681 returns Credentials object if tls4682 raise an exception if the scheme is not supported4683 .create_channel4684 storage: "default", address: "unix:tmp/gitaly.sock", expected_target: "unix:tmp/gitaly.sock"4685 creates channel based on storage4686 caches channel based on storage4687 returns different channels for different storages4688 storage: "default", address: "tcp://localhost:9876", expected_target: "localhost:9876"4689 creates channel based on storage4690 caches channel based on storage4691 returns different channels for different storages4692 storage: "default", address: "tls://localhost:9876", expected_target: "localhost:9876"4693 creates channel based on storage4694 caches channel based on storage4695 returns different channels for different storages4696 storage: "default", address: "dns:///localhost:9876", expected_target: "dns:///localhost:9876"4697 creates channel based on storage4698 caches channel based on storage4699 returns different channels for different storages4700 storage: "default", address: "dns:localhost:9876", expected_target: "dns:localhost:9876"4701 creates channel based on storage4702 caches channel based on storage4703 returns different channels for different storages4704 storage: "default", address: "dns://1.1.1.1/localhost:9876", expected_target: "dns://1.1.1.1/localhost:9876"4705 creates channel based on storage4706 caches channel based on storage4707 returns different channels for different storages4708 .stub4709 when passed a UNIX socket address4710 passes the address as-is to GRPC4711 shares the same channel object with other stub4712 when passed a TLS address4713 strips tls:// prefix before passing it to GRPC::Core::Channel initializer4714 shares the same channel object with other stub4715 when passed a TCP address4716 strips tcp:// prefix before passing it to GRPC::Core::Channel initializer4717 shares the same channel object with other stub4718 when passed a DNS address4719 strips dns:/// prefix before passing it to GRPC::Core::Channel initializer4720 shares the same channel object with other stub4721 when passed an unsupported scheme4722 strips dns:/// prefix before passing it to GRPC::Core::Channel initializer4723 .can_use_disk?4724 properly caches a false result4725 .connection_data4726 returns connection data4727 allow_n_plus_1_calls4728 when RequestStore is enabled4729 returns the result of the allow_n_plus_1_calls block4730 when RequestStore is not active4731 returns the result of the allow_n_plus_1_calls block4732 .request_kwargs4733 sets the gitaly-session-id in the metadata4734 when RequestStore is not enabled4735 sets a different gitaly-session-id per request4736 when RequestStore is enabled4737 sets the same gitaly-session-id on every outgoing request metadata4738 server_feature_flags when RequestStore is activated4739 behaves like gitaly feature flags in metadata4740 evaluates Gitaly server feature flags4741 when there are actors4742 evaluates Gitaly server feature flags with actors4743 server_feature_flags when RequestStore is not activated4744 behaves like gitaly feature flags in metadata4745 evaluates Gitaly server feature flags4746 when there are actors4747 evaluates Gitaly server feature flags with actors4748 logging information in metadata4749 user is added to application context4750 injects username and user_id into gRPC metadata4751 user is not added to application context4752 does not inject username and user_id into gRPC metadata4753 remote_ip is added to application context4754 injects remote_ip into gRPC metadata4755 remote_ip is not added to application context4756 does not inject remote_ip into gRPC metadata4757 gitlab_git_env4758 when RequestStore is disabled4759 does not force-route to primary4760 when RequestStore is enabled without git_env4761 does not force-orute to primary4762 when RequestStore is enabled with empty git_env4763 disables force-routing to primary4764 when RequestStore is enabled with populated git_env4765 enables force-routing to primary4766 deadlines4767 includes the deadline information4768 limits the deadline do the request deadline if that is closer4769 does not limit calls in sidekiq4770 does not limit calls in sidekiq when allowed unlimited4771 includes only the deadline specified by the timeout when there was no deadline4772 enforce_gitaly_request_limits?4773 when RequestStore is enabled and the maximum number of calls is enforced by a feature flag4774 allows up the maximum number of allowed calls4775 allows the maximum number of calls to be exceeded if GITALY_DISABLE_REQUEST_LIMITS is set4776 allows the maximum number of calls to be exceeded within an allow_n_plus_1_calls block4777 when the maximum number of calls has been reached4778 fails on the next call4779 when the maximum number of calls has been reached within an allow_n_plus_1_calls block4780 allows up to the maximum number of calls outside of an allow_n_plus_1_calls block4781 does not allow the maximum number of calls to be exceeded outside of an allow_n_plus_1_calls block4782 when RequestStore is enabled and the maximum number of calls is not enforced by a feature flag4783 allows up the maximum number of allowed calls4784 allows the maximum number of calls to be exceeded if GITALY_DISABLE_REQUEST_LIMITS is set4785 allows the maximum number of calls to be exceeded within an allow_n_plus_1_calls block4786 when the maximum number of calls has been reached4787 fails on the next call4788 when the maximum number of calls has been reached within an allow_n_plus_1_calls block4789 allows up to the maximum number of calls outside of an allow_n_plus_1_calls block4790 does not allow the maximum number of calls to be exceeded outside of an allow_n_plus_1_calls block4791 in production and when RequestStore is enabled4792 when the maximum number of calls is enforced by a feature flag4793 does not allow the maximum number of calls to be exceeded4794 when the maximum number of calls is not enforced by a feature flag4795 allows the maximum number of calls to be exceeded4796 when RequestStore is not active4797 does not raise errors when the maximum number of allowed calls is exceeded4798 does not fail when the maximum number of calls is exceeded within an allow_n_plus_1_calls block4799 get_request_count4800 when RequestStore is enabled4801 when enforce_gitaly_request_limits is called outside of allow_n_plus_1_calls blocks4802 counts gitaly calls4803 when enforce_gitaly_request_limits is called inside and outside of allow_n_plus_1_calls blocks4804 counts gitaly calls4805 when reset_counts is called4806 resets counts4807 when RequestStore is not active4808 returns zero4809 timeouts4810 with default values4811 returns expected values4812 Peek Performance bar details4813 when the request store is active4814 records call details if a RPC is called4815 when no request store is active4816 records nothing4817 .decode_detailed_error4818 decodes a structured error4819 error: #<GRPC::BadStatus: 3:error message>, result: <Gitaly::InvalidRefFormatError: refs: []>4820 returns correct detailed error4821 error: #<GRPC::BadStatus: 3:error message>, result: nil4822 returns correct detailed error4823 error: #<StandardError: StandardError>, result: nil4824 returns correct detailed error4825 .with_feature_flag_actor4826 when RequestStore is activated4827 behaves like with_feature_flag_actor4828 allows access to feature flag actors inside the block4829 when RequestStore is not activated4830 behaves like with_feature_flag_actor4831 allows access to feature flag actors inside the block4832Gitlab::Ci::Pipeline::Chain::Validate::Abilities4833 when users has no ability to run a pipeline4834 adds an error about insufficient permissions4835 breaks the pipeline builder chain4836 when user has ability to create a pipeline4837 does not invalidate the pipeline4838 does not break the chain4839 when project is deleted4840 is expected to contain exactly "Project is deleted!"4841 #allowed_to_write_ref?4842 when user is a developer4843 is expected to be truthy4844 when pipeline is a detached merge request pipeline4845 is expected to be truthy4846 when the branch is protected4847 is expected to be falsey4848 when pipeline is a detached merge request pipeline4849 is expected to be falsey4850 when developers are allowed to merge4851 is expected to be truthy4852 when pipeline is a detached merge request pipeline4853 is expected to be truthy4854 when the tag is protected4855 is expected to be falsey4856 when developers are allowed to create the tag4857 is expected to be truthy4858 when user is a maintainer4859 is expected to be truthy4860 when the branch is protected4861 is expected to be truthy4862 when pipeline is a detached merge request pipeline4863 is expected to be truthy4864 when the tag is protected4865 is expected to be truthy4866 when no one can create the tag4867 is expected to be falsey4868 when owner cannot create pipeline4869 is expected to be falsey4870ApplicationHelper4871 current_controller?4872 returns true when controller matches argument4873 returns false when controller does not match argument4874 takes any number of arguments4875 when namespaced4876 returns true when controller matches argument4877 returns true when controller and namespace matches argument in path notation4878 returns false when namespace doesnt match4879 current_action?4880 returns true when action matches4881 returns false when action does not match4882 takes any number of arguments4883 #admin_section?4884 when controller is under the admin namespace4885 returns true4886 when controller is not under the admin namespace4887 returns true4888 simple_sanitize4889 allows the a tag4890 allows the span tag4891 disallows other tags4892 time_ago_with_tooltip4893 returns a time element4894 includes the date string4895 has a datetime attribute4896 has a formatted title attribute4897 includes a default js-timeago class4898 accepts a custom html_class4899 accepts a custom tooltip placement4900 converts to Time4901 add class for the short format4902 returns blank if time is nil4903 #active_when4904 is expected to eq "active"4905 is expected to eq nil4906 #promo_host4907 returns the url4908 #promo_url4909 returns the url4910 changes if promo_host changes4911 #community_forum4912 returns the url4913 #support_url4914 when alternate support url is specified4915 returns the alternate support url4916 when alternate support url is not specified4917 builds the support url from the promo_url4918 #instance_review_permitted?4919 as admin4920 when admin mode setting is disabled4921 behaves like returns expected result depending on instance setting4922 is expected to equal true4923 behaves like returns expected result depending on instance setting4924 is expected to equal false4925 when admin mode setting is enabled4926 when in admin mode4927 behaves like returns expected result depending on instance setting4928 is expected to equal true4929 behaves like returns expected result depending on instance setting4930 is expected to equal false4931 when not in admin mode4932 behaves like returns expected result depending on instance setting4933 is expected to equal false4934 behaves like returns expected result depending on instance setting4935 is expected to equal false4936 as normal user4937 behaves like returns expected result depending on instance setting4938 is expected to equal false4939 behaves like returns expected result depending on instance setting4940 is expected to equal false4941 #locale_path4942 returns the locale path with an `_`4943 #client_class_list4944 when browser or platform are unknown4945 returns string containing CSS classes representing fallbacks4946 when browser and platform are known4947 returns string containing CSS classes representing them4948 #client_js_flags4949 when browser or platform are unknown4950 returns map containing JS flags representing falllbacks4951 when browser and platform are known4952 returns map containing JS flags representing client browser and platform4953 #page_startup_api_calls4954 returns map containing JS Page Startup Calls4955 #autocomplete_data_sources4956 group4957 returns paths for autocomplete_sources_controller4958 project4959 returns paths for autocomplete_sources_controller4960 #external_storage_url_or_path4961 when external storage is disabled4962 returns the passed path4963 when @snippet is set4964 returns the passed path4965 when external storage is enabled4966 returns the external storage URL prepended to the path4967 preserves the path query parameters4968 when project is public4969 returns does not append a token parameter4970 #body_data4971 when @project is not set4972 does not include project data in the body data elements4973 when @group is set4974 sets group in the body data elements4975 when @project is set4976 includes all possible body data elements and associates the project elements with project4977 when @project is owned by a group4978 includes all possible body data elements and associates the project elements with project4979 when controller is issues4980 when params[:id] is present and the issue exsits and action_name is show4981 sets all project and id elements correctly related to the issue4982 find_file attribute4983 when the project has no repository4984 is expected to be nil4985 when user cannot read_code for the project4986 is expected to be nil4987 when current_user has read_code permission4988 returns find_file with the default branch4989 #profile_social_links4990 when discord is set4991 returns an empty string if discord is not set4992 returns discord url when discord id is set4993 #gitlab_ui_form_for4994 adds custom form builder to options and calls `form_for`4995 #gitlab_ui_form_with4996 adds custom form builder to options and calls `form_with`4997 #page_class4998 is expected not to include "logged-out-marketing-header"4999 #dispensable_render5000 when an error occurs in the template to be rendered5001 calls `track_and_raise_for_dev_exception`5002 for development environment5003 raises an error5004 for production environments5005 returns nil5006 when no error occurs in the template to be rendered5007 does not track or raise and returns the rendered content5008 #dispensable_render_if_exists5009 when an error occurs in the template to be rendered5010 calls `track_and_raise_for_dev_exception`5011 for development environment5012 raises an error5013 for production environments5014 returns nil5015 when no error occurs in the template to be rendered5016 does not track or raise5017 stylesheet_link_tag_defer5018DEPRECATION WARNING: The asset "test.css" is not present in the asset pipeline.5019Falling back to an asset that may be in the public folder.5020This behavior is deprecated and will be removed.5021To bypass the asset pipeline and preserve this behavior,5022use the `skip_pipeline: true` option.5023 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:277)5024 uses print stylesheet by default5025DEPRECATION WARNING: The asset "test.css" is not present in the asset pipeline.5026Falling back to an asset that may be in the public folder.5027This behavior is deprecated and will be removed.5028To bypass the asset pipeline and preserve this behavior,5029use the `skip_pipeline: true` option.5030 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:279)5031 uses regular stylesheet when no_startup_css param present5032 sign_in_with_redirect?5033 when on the sign-in page that redirects afterwards5034 returns true5035 when on a non sign-in page5036 returns false5037Members::Projects::CreatorService5038 .access_levels5039 returns Gitlab::Access.sym_options_with_owner5040 behaves like owner management5041 .cannot_manage_owners?5042 when maintainer5043 cannot manage owners5044 when owner5045 can manage owners5046 .add_members5047 behaves like bulk member creation5048 returns Member objects5049 returns an empty array5050 supports different formats5051 with the same user sent more than once by user and by email5052 with the same user sent more than once by user id and by email5053 when current user does not have permission5054 does not succeed5055 with different source types5056 with an array of sources5057 behaves like supports multiple sources5058 is expected to all be persisted5059 with a query producing sources5060 behaves like supports multiple sources5061 is expected to all be persisted5062 with de-duplication5063 has the same user by id and user5064 has the same user sent more than once5065 when a member already exists5066 has the same user sent more than once with the member already existing5067 supports existing users as expected with user_ids passed5068 supports existing users as expected without user ids passed5069 when `tasks_to_be_done` and `tasks_project_id` are passed5070 creates a member_task with the correct attributes5071 with an already existing member5072 does not update tasks to be done if tasks already exist5073 adds tasks to be done if they do not exist5074 .add_member5075 behaves like member creation5076 returns a Member object5077 sets members.expires_at to the given expires_at5078 accepts the :guest symbol as access level5079 accepts the 10 integer as access level5080 accepts the :reporter symbol as access level5081 accepts the 20 integer as access level5082 accepts the :developer symbol as access level5083 accepts the 30 integer as access level5084 accepts the :maintainer symbol as access level5085 accepts the 40 integer as access level5086 accepts the :owner symbol as access level5087 accepts the 50 integer as access level5088 when adding a project_bot5089 when project_bot is already a member5090 does not update the member5091 when project_bot is not already a member5092 adds the member5093 when admin mode is enabled5094 sets members.created_by to the given admin current_user5095 when admin mode is disabled5096 rejects setting members.created_by to the given admin current_user5097 with no current_user5098 when called with a known user id5099 adds the user as a member5100 when called with an unknown user id5101 does not add the user as a member5102 when called with a user object5103 adds the user as a member5104 when called with a requester user object5105 adds the requester as a member5106 when called with a known user email5107 adds the user as a member5108 when called with an unknown user email5109 creates an invited member5110 when called with an unknown user email starting with a number5111 creates an invited member5112 when current_user can update member5113 creates the member5114 when called with a requester user object5115 adds the requester as a member5116 when current_user cannot update member5117 does not create the member5118 when called with a requester user object5119 does not destroy the requester5120 when member already exists5121 when member is a user5122 with no current_user5123 updates the member5124 when current_user can update member5125 updates the member5126 when current_user cannot update member5127 does not update the member5128 when member is an invite by email5129 updates the member for that email5130 authorized projects update5131 schedules a single project authorization update job when called multiple times5132DeprecatedAssignee5133 #assignee_id=5134 creates the merge_request_assignees relation5135 nullifies the assignee_id column5136 when relation already exists5137 overwrites existing assignees5138 #assignee=5139 creates the merge_request_assignees relation5140 nullifies the assignee_id column5141 when relation already exists5142 overwrites existing assignees5143 #assignee_id5144 returns the first assignee ID5145 #assignees5146 when assignee_id exists and there is no relation5147 creates the relation5148 nullifies the assignee_id5149 when DB is read-only5150 returns a users relation5151 returns an empty relation if no assignee_id is set5152 #assignee_ids5153 when assignee_id exists and there is no relation5154 creates the relation5155 nullifies the assignee_id5156 when DB is read-only5157 returns a list of user IDs5158 returns an empty relation if no assignee_id is set5159ResourceLabelEvent5160 behaves like having unique enum values5161 has unique values in "action"5162 behaves like a resource event5163 importable5164 is expected to respond to #importing?5165 is expected to respond to #imported?5166 validations5167 is expected not to allow :user to be ‹nil›5168 when importing5169 is expected to allow :user to be ‹nil›5170 associations5171 is expected to belong to user required: false5172 .created_after5173 returns the expected events5174 returns no events if time is after last record time5175 behaves like a resource event for issues5176 associations5177 is expected to belong to issue required: false5178 .by_issue5179 returns the expected records for an issue with events5180 returns the expected records for an issue with no events5181 .by_issue_ids5182 returns the expected events5183 .by_created_at_earlier_or_equal_to5184 returns the expected events5185 returns the expected events5186 #issuable5187 returns the expected issuable5188 behaves like a resource event for merge requests5189 associations5190 is expected to belong to merge_request required: false5191 .by_merge_request5192 returns the expected records for an issue with events5193 returns the expected records for an issue with no events5194 #issuable5195 returns the expected issuable5196 on callbacks5197 does not trigger note created subscription5198 behaves like a note for work item resource event5199 builds synthetic note with correct synthetic_note_class5200 on callbacks5201 triggers note created subscription5202 associations5203 is expected to belong to label required: false5204 validations5205 is expected to be valid5206 Issuable validation5207 is invalid if issue_id and merge_request_id are missing5208 is invalid if issue_id and merge_request_id are set5209 is valid if only issue_id is set5210 is valid if only merge_request_id is set5211 callbacks5212 #expire_etag_cache5213 expires resource note etag cache on event save5214 expires resource note etag cache on event destroy5215 #outdated_markdown?5216 returns true if label is missing and reference is not empty5217 returns true if reference is not set yet5218 returns true if markdown is outdated5219 returns false if label and reference are set5220 .visible_to_user?5221 returns events with labels accessible by user5222 filters events with public project labels if issues and MRs are private5223 filters events with project labels not accessible by user5224 filters events with group labels not accessible by user5225 #discussion_id5226 generates different discussion ID for events created milliseconds apart5227 with multiple label events5228 builds synthetic note5229Groups routing5230 complex group path with dot5231 to #show5232 also supports nested groups5233 also display group#show on the short path5234 to #details5235 to #activity5236 to #issues5237 to #members5238 to #labels5239 to #milestones5240 to #runner_setup_scripts5241 routes to the avatars controller5242 routes to the boards controller5243 routes to the harbor repositories controller5244 routes to the harbor artifacts controller5245 routes to the harbor tags controller5246 routes to the observability controller explore method5247 routes to the observability controller datasources method5248 routes to the usage quotas controller5249 group path starting with help5250 to #show5251 also supports nested groups5252 also display group#show on the short path5253 to #details5254 to #activity5255 to #issues5256 to #members5257 to #labels5258 to #milestones5259 to #runner_setup_scripts5260 routes to the avatars controller5261 routes to the boards controller5262 routes to the harbor repositories controller5263 routes to the harbor artifacts controller5264 routes to the harbor tags controller5265 routes to the observability controller explore method5266 routes to the observability controller datasources method5267 routes to the usage quotas controller5268 group path starting with projects5269 to #show5270 also supports nested groups5271 also display group#show on the short path5272 to #details5273 to #activity5274 to #issues5275 to #members5276 to #labels5277 to #milestones5278 to #runner_setup_scripts5279 routes to the avatars controller5280 routes to the boards controller5281 routes to the harbor repositories controller5282 routes to the harbor artifacts controller5283 routes to the harbor tags controller5284 routes to the observability controller explore method5285 routes to the observability controller datasources method5286 routes to the usage quotas controller5287 dependency proxy for containers5288 routes to #authenticate5289 routes to #upload_manifest5290 routes to #upload_blob5291 routes to #upload_manifest_authorize5292 routes to #upload_blob_authorize5293 image name without namespace5294 routes to #manifest5295 routes to #blob5296 does not route to #blob with an invalid sha5297 does not route to #blob with an invalid image5298 image name with namespace5299 routes to #manifest5300 routes to #blob5301Projects::DataTransfer5302 # order random5303 is expected to be valid5304 behaves like CounterAttribute5305 defines a method to store counters5306 repository_egress5307 #increment_counter5308 when attribute is a counter attribute5309 amount: 105310 increments the counter in Redis and logs it5311 does not increment the counter for the record5312 schedules a worker to flush counter increments asynchronously5313 amount: -35314 increments the counter in Redis and logs it5315 does not increment the counter for the record5316 schedules a worker to flush counter increments asynchronously5317 #increment_amount5318 increases the egress in cache5319 #current_counter5320 increases the amount in cache5321 when increment amount is 05322 does nothing5323 #bulk_increment_counter5324 when attribute is a counter attribute5325 increments the counter in Redis and logs each increment5326 does not increment the counter for the record5327 schedules a worker to flush counter increments asynchronously5328 when feature flag split_log_bulk_increment_counter is disabled5329 logs a single total increment5330 artifacts_egress5331 #increment_counter5332 when attribute is a counter attribute5333 amount: 105334 increments the counter in Redis and logs it5335 does not increment the counter for the record5336 schedules a worker to flush counter increments asynchronously5337 amount: -35338 increments the counter in Redis and logs it5339 does not increment the counter for the record5340 schedules a worker to flush counter increments asynchronously5341 #increment_amount5342 increases the egress in cache5343 #current_counter5344 increases the amount in cache5345 when increment amount is 05346 does nothing5347 #bulk_increment_counter5348 when attribute is a counter attribute5349 increments the counter in Redis and logs each increment5350 does not increment the counter for the record5351 schedules a worker to flush counter increments asynchronously5352 when feature flag split_log_bulk_increment_counter is disabled5353 logs a single total increment5354 packages_egress5355 #increment_counter5356 when attribute is a counter attribute5357 amount: 105358 increments the counter in Redis and logs it5359 does not increment the counter for the record5360 schedules a worker to flush counter increments asynchronously5361 amount: -35362 increments the counter in Redis and logs it5363 does not increment the counter for the record5364 schedules a worker to flush counter increments asynchronously5365 #increment_amount5366 increases the egress in cache5367 #current_counter5368 increases the amount in cache5369 when increment amount is 05370 does nothing5371 #bulk_increment_counter5372 when attribute is a counter attribute5373 increments the counter in Redis and logs each increment5374 does not increment the counter for the record5375 schedules a worker to flush counter increments asynchronously5376 when feature flag split_log_bulk_increment_counter is disabled5377 logs a single total increment5378 registry_egress5379 #increment_counter5380 when attribute is a counter attribute5381 amount: 105382 increments the counter in Redis and logs it5383 does not increment the counter for the record5384 schedules a worker to flush counter increments asynchronously5385 amount: -35386 increments the counter in Redis and logs it5387 does not increment the counter for the record5388 schedules a worker to flush counter increments asynchronously5389 #increment_amount5390 increases the egress in cache5391 #current_counter5392 increases the amount in cache5393 when increment amount is 05394 does nothing5395 #bulk_increment_counter5396 when attribute is a counter attribute5397 increments the counter in Redis and logs each increment5398 does not increment the counter for the record5399 schedules a worker to flush counter increments asynchronously5400 when feature flag split_log_bulk_increment_counter is disabled5401 logs a single total increment5402 #update_counters_with_lease5403 updates counters of the record5404 behaves like obtaining lease to update database5405 when it is unable to obtain lock5406 logs a warning5407 when feature flag counter_attribute_db_lease_for_update is disabled5408 does not attempt to get a lock5409 when the execution raises error5410 reraises error5411 .beginning_of_month5412 is expected to eq 2022-05-01 00:00:00.000000000 +00005413 associations5414 is expected to belong to project required: false5415 is expected to belong to namespace required: false5416 scopes5417 .current_month5418 returns data transfer for the current month5419 .with_project_between_dates5420 returns the correct number of results5421 .with_namespace_between_dates5422 returns the correct number of results5423 unique index5424 raises unique index violation5425 when project was moved from one namespace to another5426 creates a new record5427 when a different project is created5428 creates a new record5429ServiceDeskSetting5430 validations5431 is expected to validate that :project_id cannot be empty/falsy5432 is expected to validate that the length of :outgoing_name is at most 2555433 is expected to validate that the length of :project_key is at most 2555434 is expected to allow :project_key to be ‹"abc123_"›5435 is expected not to allow :project_key to be ‹"abc 12"›, producing a custom validation error on failure5436 is expected not to allow :project_key to be ‹"Big val"›5437 is expected to validate that the length of :custom_email is at most 2555438 #custom_email_enabled5439 is expected to be falsey5440 is expected to be truthy5441 when custom_email_enabled is true5442 is expected to validate that :custom_email cannot be empty/falsy5443 is expected to validate that :custom_email is case-sensitively unique as long as it is not nil5444 is expected to allow :custom_email to be ‹"support@example.com"›5445 is expected to allow :custom_email to be ‹"support@xn--brggen-4ya.de"›5446 is expected to allow :custom_email to be ‹"support1@shop.example.com"›5447 is expected to allow :custom_email to be ‹"support-shop_with.crazy-address@shop.example.com"›5448 is expected not to allow :custom_email to be ‹"support@example@example.com"›5449 is expected not to allow :custom_email to be ‹"support.example.com"›5450 is expected not to allow :custom_email to be ‹"example.com"›5451 is expected not to allow :custom_email to be ‹"example"›5452 is expected not to allow :custom_email to be ‹"\" \"@example.org"›5453 is expected not to allow :custom_email to be ‹"support+12@example.com"›5454 is expected not to allow :custom_email to be ‹"user@[IPv6:2001:db8::1]"›5455 is expected not to allow :custom_email to be ‹"\"><script>alert(1);</script>\"@example.org"›5456 is expected not to allow :custom_email to be ‹"file://example"›5457 is expected not to allow :custom_email to be ‹"no email at all"›5458 #valid_issue_template5459 is not valid if template does not exist5460 is valid if template exists5461 #custom_email_address_for_verification5462 returns nil5463 when custom_email exists5464 returns correct verification address5465 #valid_project_key5466 when project_key exists5467 is valid5468 when project_key is unique for every project slug5469 does not add error5470 when project with same slug and settings project_key exists5471 adds error5472 associations5473 is expected to belong to project required: false5474 can access custom email verification from project5475Gitlab::Database::PartitioningMigrationHelpers::TableManagementHelpers5476 list partitioning conversion helpers5477 #convert_table_to_first_list_partition5478 behaves like delegates to ConvertTableToFirstListPartition5479 throws an error if in a transaction5480 delegates to a method on ConvertTableToFirstListPartition5481 #revert_converting_table_to_first_list_partition5482 behaves like delegates to ConvertTableToFirstListPartition5483 throws an error if in a transaction5484 delegates to a method on ConvertTableToFirstListPartition5485 #prepare_constraint_for_list_partitioning5486 behaves like delegates to ConvertTableToFirstListPartition5487 throws an error if in a transaction5488 delegates to a method on ConvertTableToFirstListPartition5489 #revert_preparing_constraint_for_list_partitioning5490 behaves like delegates to ConvertTableToFirstListPartition5491 throws an error if in a transaction5492 delegates to a method on ConvertTableToFirstListPartition5493 #partition_table_by_date5494 when the table is not allowed5495 raises an error5496 when run inside a transaction block5497 raises an error5498 when the the max_date is less than the min_date5499 raises an error5500 when the max_date is equal to the min_date5501 raises an error5502 when the given table does not have a primary key5503 raises an error5504 when an invalid partition column is given5505 raises an error5506 constructing the partitioned table5507 creates a table partitioned by the proper column5508 requires the migration helper to be run in DDL mode5509 changes the primary key datatype to bigint5510 removes the default from the primary key column5511 creates the partitioned table with the same non-key columns5512 creates a partition spanning over each month in the range given5513 with a non-integer primary key datatype5514 does not change the primary key datatype5515 when min_date is not given5516 with records present already5517 creates a partition spanning over each month from the first record5518 without data5519 creates the catchall partition plus two actual partition5520 when max_date is not given5521 creates partitions including the next month from today5522 without min_date, max_date5523 creates partitions for the current and next month5524 keeping data in sync with the partitioned table5525 creates a trigger function on the original table5526 syncs inserts to the partitioned tables5527 syncs updates to the partitioned tables5528 syncs deletes to the partitioned tables5529 #drop_partitioned_table_for5530 drops the trigger syncing to the partitioned table5531 drops the partitioned copy and all partitions5532 when the table is not allowed5533 raises an error5534 #enqueue_partitioning_data_migration5535 when the table is not allowed5536 raises an error5537 when run inside a transaction block5538 raises an error5539 when records exist in the source table5540 enqueues jobs to copy each batch of data5541 #cleanup_partitioning_data_migration5542 when the table is not allowed5543 raises an error5544 when tracking records exist in the background_migration_jobs table5545 deletes those pertaining to the given table5546 #create_hash_partitions5547 creates partitions for the full hash space (8 partitions)5548 creates partitions for the full hash space (16 partitions)5549 #finalize_backfilling_partitioned_table5550 when the table is not allowed5551 raises an error5552 when the partitioned table does not exist5553 raises an error5554 finishing pending background migration jobs5555 finishes remaining jobs for the correct table5556 requires the migration helper to execute in DML mode5557 when there is missed data5558 idempotently cleans up after failed background migrations5559 raises an error if no job tracking records are marked as succeeded5560 vacuums the table after loading is complete5561 #replace_with_partitioned_table5562 replaces the original table with the partitioned table5563 moves the trigger from the original table to the new table5564 #rollback_replace_with_partitioned_table5565 replaces the partitioned table with the non-partitioned table5566 moves the trigger from the partitioned table to the non-partitioned table5567 #drop_nonpartitioned_archive_table5568 drops the archive table5569 drops the trigger on the source table5570 drops the sync function5571 #create_trigger_to_sync_tables5572 creates the sync function5573 installs the trigger5574Ci::PipelinesFinder5575 #execute5576 when params is empty5577 returns all pipelines5578 when scope is running5579 returns matched pipelines5580 when scope is pending5581 returns matched pipelines5582 when scope is finished5583 returns matched pipelines5584 when scope is branches or tags5585 when scope is branches5586 returns matched pipelines5587 when scope is tags5588 returns matched pipelines5589 when project has child pipelines5590 filters out child pipelines and shows only the parents by default5591 when status is created5592 returns matched pipelines5593 when status is waiting_for_resource5594 returns matched pipelines5595 when status is preparing5596 returns matched pipelines5597 when status is pending5598 returns matched pipelines5599 when status is running5600 returns matched pipelines5601 when status is success5602 returns matched pipelines5603 when status is failed5604 returns matched pipelines5605 when status is canceled5606 returns matched pipelines5607 when status is skipped5608 returns matched pipelines5609 when status is manual5610 returns matched pipelines5611 when status is scheduled5612 returns matched pipelines5613 when ref is specified5614 when ref exists5615 returns matched pipelines5616 when ref does not exist5617 returns empty5618 when username is specified5619 when username exists5620 returns matched pipelines5621 when username does not exist5622 returns empty5623 when yaml_errors is specified5624 when yaml_errors is true5625 returns matched pipelines5626 when yaml_errors is false5627 returns matched pipelines5628 when yaml_errors is invalid5629 returns all pipelines5630 when updated_at filters are specified5631 returns deployments with matched updated_at5632 when iids filter is specified5633 returns matches pipelines5634 does not fitler out child pipelines5635 when sha is specified5636 when sha exists5637 returns matched pipelines5638 when sha does not exist5639 returns empty5640 when the project has limited access to pipelines5641 when the user has access5642 is expected to return pipelines5643 the user is not allowed to read pipelines5644 returns empty5645 when source is specified5646 returns only the matched pipeline5647 when name is specified5648 performs exact compare5649 when name does not exist5650 returns empty5651 when pipeline_name_search feature flag is off5652 ignores name parameter5653 ordering5654 order_by: "id", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]5655 returns the pipelines ordered5656 order_by: "id", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]5657 returns the pipelines ordered5658 order_by: "ref", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_1, :pipeline_3]5659 returns the pipelines ordered5660 order_by: "ref", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_1, :pipeline_2]5661 returns the pipelines ordered5662 order_by: "status", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_1, :pipeline_3]5663 returns the pipelines ordered5664 order_by: "status", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_1, :pipeline_2]5665 returns the pipelines ordered5666 order_by: "updated_at", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_3, :pipeline_1]5667 returns the pipelines ordered5668 order_by: "updated_at", sort: "desc", ordered_pipelines: [:pipeline_1, :pipeline_3, :pipeline_2]5669 returns the pipelines ordered5670 order_by: "user_id", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]5671 returns the pipelines ordered5672 order_by: "user_id", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]5673 returns the pipelines ordered5674 order_by: "invalid", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]5675 returns the pipelines ordered5676 order_by: "id", sort: "err", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]5677 returns the pipelines ordered5678Gitlab::Ci::Pipeline::Expression::Lexeme::NotEquals5679 .build5680 with non-evaluable operands5681 creates a new instance of the token5682 with evaluable operands5683 creates a new instance of the token5684 .type5685 is an operator5686 .precedence5687 has a precedence5688 #evaluate5689 when left and right are equal5690 left_value: "string", right_value: "string"5691 is expected to eq false5692 left_value: 1, right_value: 15693 is expected to eq false5694 left_value: "", right_value: ""5695 is expected to eq false5696 left_value: nil, right_value: nil5697 is expected to eq false5698 when left and right are not equal5699 left_value: "one string", right_value: "two string"5700 is expected to eq true5701 left_value: "one string", right_value: 15702 is expected to eq true5703 left_value: "one string", right_value: 25704 is expected to eq true5705 left_value: "one string", right_value: ""5706 is expected to eq true5707 left_value: "one string", right_value: nil5708 is expected to eq true5709 left_value: "one string", right_value: false5710 is expected to eq true5711 left_value: "one string", right_value: true5712 is expected to eq true5713 left_value: "two string", right_value: "one string"5714 is expected to eq true5715 left_value: "two string", right_value: 15716 is expected to eq true5717 left_value: "two string", right_value: 25718 is expected to eq true5719 left_value: "two string", right_value: ""5720 is expected to eq true5721 left_value: "two string", right_value: nil5722 is expected to eq true5723 left_value: "two string", right_value: false5724 is expected to eq true5725 left_value: "two string", right_value: true5726 is expected to eq true5727 left_value: 1, right_value: "one string"5728 is expected to eq true5729 left_value: 1, right_value: "two string"5730 is expected to eq true5731 left_value: 1, right_value: 25732 is expected to eq true5733 left_value: 1, right_value: ""5734 is expected to eq true5735 left_value: 1, right_value: nil5736 is expected to eq true5737 left_value: 1, right_value: false5738 is expected to eq true5739 left_value: 1, right_value: true5740 is expected to eq true5741 left_value: 2, right_value: "one string"5742 is expected to eq true5743 left_value: 2, right_value: "two string"5744 is expected to eq true5745 left_value: 2, right_value: 15746 is expected to eq true5747 left_value: 2, right_value: ""5748 is expected to eq true5749 left_value: 2, right_value: nil5750 is expected to eq true5751 left_value: 2, right_value: false5752 is expected to eq true5753 left_value: 2, right_value: true5754 is expected to eq true5755 left_value: "", right_value: "one string"5756 is expected to eq true5757 left_value: "", right_value: "two string"5758 is expected to eq true5759 left_value: "", right_value: 15760 is expected to eq true5761 left_value: "", right_value: 25762 is expected to eq true5763 left_value: "", right_value: nil5764 is expected to eq true5765 left_value: "", right_value: false5766 is expected to eq true5767 left_value: "", right_value: true5768 is expected to eq true5769 left_value: nil, right_value: "one string"5770 is expected to eq true5771 left_value: nil, right_value: "two string"5772 is expected to eq true5773 left_value: nil, right_value: 15774 is expected to eq true5775 left_value: nil, right_value: 25776 is expected to eq true5777 left_value: nil, right_value: ""5778 is expected to eq true5779 left_value: nil, right_value: false5780 is expected to eq true5781 left_value: nil, right_value: true5782 is expected to eq true5783 left_value: false, right_value: "one string"5784 is expected to eq true5785 left_value: false, right_value: "two string"5786 is expected to eq true5787 left_value: false, right_value: 15788 is expected to eq true5789 left_value: false, right_value: 25790 is expected to eq true5791 left_value: false, right_value: ""5792 is expected to eq true5793 left_value: false, right_value: nil5794 is expected to eq true5795 left_value: false, right_value: true5796 is expected to eq true5797 left_value: true, right_value: "one string"5798 is expected to eq true5799 left_value: true, right_value: "two string"5800 is expected to eq true5801 left_value: true, right_value: 15802 is expected to eq true5803 left_value: true, right_value: 25804 is expected to eq true5805 left_value: true, right_value: ""5806 is expected to eq true5807 left_value: true, right_value: nil5808 is expected to eq true5809 left_value: true, right_value: false5810 is expected to eq true5811Gitlab::ProcessSupervisor5812 #supervise5813 while supervised processes are alive5814 does not invoke callback5815 when a supervised process dies5816 triggers callback with the dead PIDs and adds new PIDs to supervised PIDs5817 deduplicates PIDs returned from callback5818 accepts single PID returned from callback5819 but supervisor has entered shutdown5820 does not trigger callback again5821 signal handling5822 termination signals5823 when TERM results in timely shutdown of processes5824 forwards them to observed processes without waiting for grace period to expire5825 when TERM does not result in timely shutdown of processes5826 issues a KILL signal after the grace period expires5827 forwarded signals5828 forwards given signals to the observed processes5829 #shutdown5830 when supervisor is supervising processes5831 when supervisor is alive5832 signals TERM then KILL to all supervised processes5833 stops the supervisor5834 when supervisor has already shut down5835 does nothing5836 when supervisor never started5837 does nothing5838Gitlab::Metrics::RequestsRackMiddleware5839 #call5840 @app.call succeeds with 2005841 tracks request count and duration5842 guarantees SLI metrics are incremented with all the required labels5843 request is a health check endpoint5844 when path is /-/liveness5845 increments health endpoint counter rather than overall counter and does not record duration5846 when path is /-/liveness/5847 increments health endpoint counter rather than overall counter and does not record duration5848 when path is /-/%6D%65%74%72%69%63%735849 increments health endpoint counter rather than overall counter and does not record duration5850 request is not a health check endpoint5851 when path is /-/ordinary-requests5852 increments regular counters and tracks duration5853 when path is /-/5854 increments regular counters and tracks duration5855 when path is /-/health/subpath5856 increments regular counters and tracks duration5857 @app.call returns an error code5858 tracks count and error rate but not duration and apdex5859 @app.call throws exception5860 tracks the correct metrics5861 application context5862 when a context is present5863 adds the feature category to the labels for required metrics5864 does not record a feature category for health check endpoints5865 when application raises an exception when the feature category context is present5866 adds the feature category to the labels for http_requests_total5867 when the context is not available5868 sets the required labels to unknown5869 SLI satisfactory5870 request_urgency_name: :high, duration: 0.1, success: true5871 Grape API handler having expected duration setup5872 captures SLI metrics5873 Rails controller having expected duration setup5874 captures SLI metrics5875 request_urgency_name: :high, duration: 0.25, success: false5876 Grape API handler having expected duration setup5877 captures SLI metrics5878 Rails controller having expected duration setup5879 captures SLI metrics5880 request_urgency_name: :high, duration: 0.3, success: false5881 Grape API handler having expected duration setup5882 captures SLI metrics5883 Rails controller having expected duration setup5884 captures SLI metrics5885 request_urgency_name: :medium, duration: 0.3, success: true5886 Grape API handler having expected duration setup5887 captures SLI metrics5888 Rails controller having expected duration setup5889 captures SLI metrics5890 request_urgency_name: :medium, duration: 0.5, success: false5891 Grape API handler having expected duration setup5892 captures SLI metrics5893 Rails controller having expected duration setup5894 captures SLI metrics5895 request_urgency_name: :medium, duration: 0.6, success: false5896 Grape API handler having expected duration setup5897 captures SLI metrics5898 Rails controller having expected duration setup5899 captures SLI metrics5900 request_urgency_name: :default, duration: 0.6, success: true5901 Grape API handler having expected duration setup5902 captures SLI metrics5903 Rails controller having expected duration setup5904 captures SLI metrics5905 request_urgency_name: :default, duration: 1.0, success: false5906 Grape API handler having expected duration setup5907 captures SLI metrics5908 Rails controller having expected duration setup5909 captures SLI metrics5910 request_urgency_name: :default, duration: 1.2, success: false5911 Grape API handler having expected duration setup5912 captures SLI metrics5913 Rails controller having expected duration setup5914 captures SLI metrics5915 request_urgency_name: :low, duration: 4.5, success: true5916 Grape API handler having expected duration setup5917 captures SLI metrics5918 Rails controller having expected duration setup5919 captures SLI metrics5920 request_urgency_name: :low, duration: 5.0, success: false5921 Grape API handler having expected duration setup5922 captures SLI metrics5923 Rails controller having expected duration setup5924 captures SLI metrics5925 request_urgency_name: :low, duration: 6, success: false5926 Grape API handler having expected duration setup5927 captures SLI metrics5928 Rails controller having expected duration setup5929 captures SLI metrics5930 Grape API without expected duration5931 falls back request's expectation to default (1 second)5932 Rails controller without expected duration5933 falls back request's expectation to default (1 second)5934 A request with urgency set on the env (from ETag-caching)5935 records the request with the correct urgency5936 An unknown request5937 falls back request's expectation to default (1 second)5938 .initialize_metrics5939 sets labels for http_requests_total5940 sets labels for http_request_duration_seconds5941 has every label in config/feature_categories.yml5942ApplicationWorker5943 Sidekiq attributes5944 sets the queue name based on the output of the router5945 when a worker attribute is updated5946 updates the queue name afterward5947 when the worker is inherited5948 sets the queue name for the inherited worker5949 #logging_extras5950 returns extra data to be logged that was set from #log_extra_metadata_on_done5951 returns extra data to be logged that was set from #log_hash_metadata_on_done5952 when nothing is set5953 returns {}5954 #structured_payload5955 adds worker related payload5956 adds labkit context5957 adds custom payload converting stringified keys5958 does not override predefined context keys with custom payload5959 .queue_namespace5960 updates the queue name from the router again5961 updates the queue_namespace options of the worker5962 .queue5963 returns the queue name5964 .data_consistency5965 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true5966 when workers data consistency is5967 not to raise an exception5968 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true5969 when workers data consistency is5970 not to raise an exception5971 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false5972 when workers data consistency is5973 not to raise an exception5974 data_consistency: :delayed, sidekiq_option_retry: nil, expect_error: false5975 when workers data consistency is5976 not to raise an exception5977 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false5978 when workers data consistency is5979 not to raise an exception5980 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false5981 when workers data consistency is5982 not to raise an exception5983 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false5984 when workers data consistency is5985 not to raise an exception5986 data_consistency: :sticky, sidekiq_option_retry: nil, expect_error: false5987 when workers data consistency is5988 not to raise an exception5989 data_consistency: :always, sidekiq_option_retry: false, expect_error: false5990 when workers data consistency is5991 not to raise an exception5992 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false5993 when workers data consistency is5994 not to raise an exception5995 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false5996 when workers data consistency is5997 not to raise an exception5998 data_consistency: :always, sidekiq_option_retry: nil, expect_error: false5999 when workers data consistency is6000 not to raise an exception6001 .retry6002 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true6003 when retry sidekiq option is6004 not to raise an exception6005 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true6006 when retry sidekiq option is6007 not to raise an exception6008 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false6009 when retry sidekiq option is6010 not to raise an exception6011 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false6012 when retry sidekiq option is6013 not to raise an exception6014 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false6015 when retry sidekiq option is6016 not to raise an exception6017 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false6018 when retry sidekiq option is6019 not to raise an exception6020 data_consistency: :always, sidekiq_option_retry: false, expect_error: false6021 when retry sidekiq option is6022 not to raise an exception6023 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false6024 when retry sidekiq option is6025 not to raise an exception6026 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false6027 when retry sidekiq option is6028 not to raise an exception6029 different kinds of push_bulk6030 .bulk_perform_async6031 push_bulk in safe limit batches6032 when the number of jobs to be enqueued does not exceed the safe limit6033 behaves like enqueues jobs in one go6034 enqueues jobs in one go6035 behaves like logs bulk insertions6036 logs arguments and job IDs6037 behaves like returns job_id of all enqueued jobs6038 returns job_id of all enqueued jobs6039 behaves like does not schedule the jobs for any specific time6040 does not schedule the jobs for any specific time6041 when the number of jobs to be enqueued exceeds safe limit6042 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6043 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6044 behaves like returns job_id of all enqueued jobs6045 returns job_id of all enqueued jobs6046 behaves like does not schedule the jobs for any specific time6047 does not schedule the jobs for any specific time6048 .bulk_perform_in6049 without batches6050 when the scheduled time falls in the past6051 raises an ArgumentError exception6052 push_bulk in safe limit batches6053 when the number of jobs to be enqueued does not exceed the safe limit6054 behaves like enqueues jobs in one go6055 enqueues jobs in one go6056 behaves like returns job_id of all enqueued jobs6057 returns job_id of all enqueued jobs6058 behaves like schedules all the jobs at a specific time6059 schedules all the jobs at a specific time6060 when the number of jobs to be enqueued exceeds safe limit6061 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6062 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6063 behaves like returns job_id of all enqueued jobs6064 returns job_id of all enqueued jobs6065 behaves like schedules all the jobs at a specific time6066 schedules all the jobs at a specific time6067 with batches6068 when the `batch_size` is invalid6069 when `batch_size` is 06070 raises an ArgumentError exception6071 when `batch_size` is negative6072 raises an ArgumentError exception6073 when the `batch_delay` is invalid6074 when `batch_delay` is 06075 raises an ArgumentError exception6076 when `batch_delay` is negative6077 raises an ArgumentError exception6078 push_bulk in safe limit batches6079 when the number of jobs to be enqueued does not exceed the safe limit6080 behaves like enqueues jobs in one go6081 enqueues jobs in one go6082 behaves like returns job_id of all enqueued jobs6083 returns job_id of all enqueued jobs6084 behaves like schedules all the jobs at a specific time, per batch6085 schedules all the jobs at a specific time, per batch6086 when the number of jobs to be enqueued exceeds safe limit6087 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6088 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6089 behaves like returns job_id of all enqueued jobs6090 returns job_id of all enqueued jobs6091 behaves like schedules all the jobs at a specific time, per batch6092 schedules all the jobs at a specific time, per batch6093 .with_status6094 when the worker does have status_expiration set6095 uses status_expiration from the worker6096 uses status_expiration from the worker without with_status6097 when the worker does not have status_expiration set6098 uses the default status_expiration6099 does not set status_expiration without with_status6100Ci::Trigger6101 associations6102 is expected to belong to project required: false6103 is expected to belong to owner required: false6104 is expected to have many trigger_requests6105 validations6106 is expected to validate that :owner cannot be empty/falsy6107 before_validation6108 sets an random token if none provided6109 does not set a random token if one provided6110 #short_token6111 returns shortened token without prefix6112 token does not have a prefix6113 returns shortened token6114 #can_access_project?6115 and is member of the project6116 is expected to eq true6117 and is not member of the project6118 is expected to eq false6119 behaves like includes Limitable concern6120 #exceeds_limits?6121 without plan limits configured6122 is expected to eq false6123 without plan limits configured6124 is expected to eq false6125 with an existing model6126 is expected to eq true6127 validations6128 is expected to be a kind of Limitable6129 without plan limits configured6130 can create new models6131 with plan limits configured6132 can create new models6133 with an existing model6134 cannot create new models exceeding the plan limits6135 loose foreign key on ci_triggers.owner_id6136 behaves like cleanup by a loose foreign key6137 cleans up (delete or nullify) the model6138 loose foreign key on ci_triggers.project_id6139 behaves like cleanup by a loose foreign key6140 cleans up (delete or nullify) the model6141 encrypted_token6142 when token is not provided6143 encrypts the generated token6144 when token is provided6145 encrypts the given token6146 when token is being updated6147 encrypts the given token6148Integrations::DroneCi6149 behaves like Integrations::BaseCi6150 default values6151 is expected to eq :ci6152 behaves like Integrations::ResetSecretFields6153 #exposing_secrets_fields6154 returns an array of strings6155 #reset_secret_fields?6156 returns false if no exposing field has changed6157 returns true if any exposing field has changed6158 validation callback6159 when an exposing field has changed6160 clears all secret fields6161 when a secret field has been updated6162 does not clear this secret field6163 when a secret field has been updated with the same value6164 does not clear this secret field6165 when no exposing field has changed6166 does not clear any secret fields6167 validations6168 active6169 is expected to validate that :token cannot be empty/falsy6170 is expected to validate that :drone_url cannot be empty/falsy6171 behaves like issue tracker integration URL attribute6172 is expected to allow :drone_url to be ‹"https://example.com"›6173 is expected not to allow :drone_url to be ‹"example.com"›6174 is expected not to allow :drone_url to be ‹"ftp://example.com"›6175 is expected not to allow :drone_url to be ‹"herp-and-derp"›6176 inactive6177 is expected not to validate that :token cannot be empty/falsy6178 is expected not to validate that :drone_url cannot be empty/falsy6179 accessors6180 is expected to respond to #enable_ssl_verification6181 is expected to respond to #enable_ssl_verification?6182 #initialize_properties6183 enables the setting by default6184 does not enable the setting if the record is already persisted6185 does not enable the setting if a custom value was set6186 #fields6187 inserts the checkbox field after the first URL field, or at the end6188 does not insert the field repeatedly6189 #enable_ssl_verification6190 returns true for a known hostname6191 returns true for new records6192 returns false for an unknown hostname6193 returns false for a HTTP URL6194 returns false for an invalid URL6195 returns the persisted value if present6196 behaves like Integrations::HasWebHook6197 does not create a hook if project is not present6198 associations6199 is expected to have one service_hook inverse_of => integration6200 callbacks6201 calls #update_web_hook! when enabled6202 does not call #update_web_hook! when disabled6203 does not call #update_web_hook! when validation fails6204 #hook_url6205 returns a string6206 #url_variables6207 returns a hash6208 #hook_ssl_verification6209 returns a boolean6210 delegates to #enable_ssl_verification if the concern is included6211 #update_web_hook!6212 creates or updates a service hook6213 raises an error if the service hook could not be saved6214 does not attempt to save the service hook if there are no changes6215 #execute_web_hook!6216 creates the webhook if necessary and executes it6217 raises an error if the service hook could not be saved6218 integration page/path methods6219 is expected to eq "http://drone.example.com/gitlab/namespace426/project/redirect/commits/2ab7834c?branch=dev"6220 is expected to eq "http://drone.example.com/gitlab/namespace426/project/commits/2ab7834c?branch=dev&access_token=secret"6221 #commit_status6222 returns the contents of the reactive cache6223 #calculate_reactive_cache6224 #commit_status6225 sets commit status to :error when status is 5006226 sets commit status to :error when status is 4046227 sets commit status to :error with a Net::OpenTimeout error6228 sets commit status to :error with a Net::ReadTimeout error6229 sets commit status to :error with a Net::WriteTimeout error6230 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error6231 sets commit status to :error with a EOFError error6232 sets commit status to :error with a SocketError error6233 sets commit status to :error with a OpenSSL::SSL::SSLError error6234 sets commit status to :error with a OpenSSL::OpenSSLError error6235 sets commit status to :error with a Errno::ECONNRESET error6236 sets commit status to :error with a Errno::ECONNREFUSED error6237 sets commit status to :error with a Errno::EHOSTUNREACH error6238 sets commit status to :error with a Errno::ENETUNREACH error6239 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error6240 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error6241 sets commit status to :error with a Net::HTTPBadResponse error6242 sets commit status to :canceled when returned status is "killed"6243 sets commit status to :failed when returned status is "failure"6244 sets commit status to :failed when returned status is "error"6245 sets commit status to "success" when returned status is "success"6246 execute6247 executes the webhook6248 does not try to execute the webhook if the integration is not in a project6249Gitlab::Email::Handler::CreateNoteOnIssuableHandler6250 behaves like reply processing shared examples6251 when the user could not be found6252 raises a UserNotFoundError6253 when the user is not authorized to the project6254 raises a ProjectNotFound6255 behaves like note handler shared examples6256 when the noteable could not be found6257 raises a NoteableNotFoundError6258 when the note could not be saved6259 raises an InvalidNoteError6260 because the note was update commands only6261 and current user cannot update noteable6262 does not raise an error6263 and current user can update noteable6264 does not raise an error6265 when the note contains quick actions6266 and current user cannot update the noteable6267 only executes the commands that the user can perform6268 and current user can update noteable6269 posts a note and updates the noteable6270 when the reply is blank6271 allows email to only have quoted text6272 when discussion is locked6273 behaves like checks permissions on noteable examples6274 when user has access6275 creates a comment6276 when user does not have access6277 raises UserNotAuthorizedError6278 when everything is fine6279 adds all attachments6280 when the service desk6281 is enabled6282 when issues are enabled for everyone6283 creates a comment6284 when quick actions are present6285 when author is a normal user6286 extracted the quick actions6287 when issues are protected members only6288 creates a comment6289 when issues are disabled6290 does not create a comment6291 when the recipient address does not include a mail key6292 raises an UnknownIncomingEmail6293 when issue is confidential6294 behaves like checks permissions on noteable examples6295 when user has access6296 creates a comment6297 when user does not have access6298 raises UserNotAuthorizedError6299Clusters::CreateService6300 when provider is gcp6301 when project has no clusters6302 when correct params6303 creates a cluster object6304 when invalid params6305 returns an error6306 when project has a cluster6307 creates another cluster6308 when another cluster exists6309 when correct params6310 creates a cluster object6311 when invalid params6312 returns an error6313 when params includes :management_project_id6314 management_project is non-existent6315 does not persist the cluster and adds errors6316 project cluster6317 when user is authorized to adminster manangement_project6318 persists the cluster6319 when user is not authorized to adminster manangement_project6320 does not persist the cluster and adds errors6321 when manangement_project is outside of the namespace scope6322 does not persist the cluster6323 group cluster6324 when user is authorized to adminster manangement_project6325 persists the cluster6326 when user is not authorized to adminster manangement_project6327 does not persist the cluster and adds errors6328 when manangement_project is outside of the namespace scope6329 does not persist the cluster6330 instance cluster6331 when user is authorized to adminster manangement_project6332 persists the cluster6333 when user is not authorized to adminster manangement_project6334 does not persist the cluster and adds errors6335Gitlab::Redis::Cache6336 .config_file_name6337 when there is no config file anywhere6338 is expected to be nil6339 and there is a global env override6340 is expected to eq "global override"6341 and there is an instance specific config file6342 is expected to eq "/tmp/d20230412-354-vdsvz/config/redis.cache.yml"6343 returns a path that exists6344 and there is a specific env override6345 is expected to eq "instance specific override"6346 .store6347 with old format6348 behaves like redis store6349 instantiates Redis::Store6350 with the namespace6351 uses specified namespace6352 with new format6353 behaves like redis store6354 instantiates Redis::Store6355 with the namespace6356 uses specified namespace6357 .params6358 withstands mutation6359 when url contains unix socket reference6360 with old format6361 returns path key instead6362 with new format6363 returns path key instead6364 when url is host based6365 with old format6366 returns hash with host, port, db, and password6367 with new format6368 rails_env: "development", host: "development-host"6369 returns hash with host, port, db, and password6370 rails_env: "test", host: "test-host"6371 returns hash with host, port, db, and password6372 rails_env: "production", host: "production-host"6373 returns hash with host, port, db, and password6374 with redis cluster format6375 rails_env: "development", host: "development-master"6376 returns hash with cluster and password6377 rails_env: "test", host: "test-master"6378 returns hash with cluster and password6379 rails_env: "production", host: "production-master"6380 returns hash with cluster and password6381 .url6382 withstands mutation6383 when yml file with env variable6384 reads redis url from env variable6385 .version6386 returns a version6387 .with6388 when running on single-threaded runtime6389 instantiates a connection pool with size 56390 when running on multi-threaded runtime6391 instantiates a connection pool with a size based on the concurrency of the worker6392 when there is no config at all6393 can run an empty block6394 #db6395 with old format6396 returns the correct db6397 with new format6398 returns the correct db6399 with cluster-mode6400 returns the correct db6401 #sentinels6402 when sentinels are defined6403 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6404 returns an array of hashes with host and port keys6405 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6406 returns an array of hashes with host and port keys6407 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6408 returns an array of hashes with host and port keys6409 when sentinels are not defined6410 returns nil6411 when cluster is defined6412 returns nil6413 #sentinels?6414 when sentinels are defined6415 returns true6416 when sentinels are not defined6417 is expected to eq nil6418 when cluster is defined6419 returns false6420 #raw_config_hash6421 returns old-style single url config in a hash6422 returns cluster config without url key in a hash6423 #fetch_config6424 raises an exception when the config file contains invalid yaml6425 has a value for the legacy default URL6426 when redis.yml exists6427 uses config/redis.yml6428 when no config file exsits6429 returns nil6430 but resque.yml exists6431 returns the config from resque.yml6432 #raw_config_hash6433 has a legacy default URL6434 .active_support_config6435 has a default ttl of 8 hours6436 allows configuring the TTL through an env variable6437Ci::BuildMetadata6438 is expected to belong to build required: false6439 is expected to belong to project required: false6440 behaves like having unique enum values6441 has unique values in "timeout_source"6442 #update_timeout_state6443 when job, project and runner timeouts are set6444 when job timeout is lower then runner timeout6445 behaves like sets timeout6446 sets project_timeout_source6447 sets project timeout6448 when runner timeout is lower then job timeout6449 behaves like sets timeout6450 sets project_timeout_source6451 sets project timeout6452 when job, project timeout values are set and runner is assigned6453 when runner has no timeout set6454 behaves like sets timeout6455 sets project_timeout_source6456 sets project timeout6457 when only job and project timeouts are defined6458 when job timeout is lower then project timeout6459 behaves like sets timeout6460 sets project_timeout_source6461 sets project timeout6462 when project timeout is lower then job timeout6463 behaves like sets timeout6464 sets project_timeout_source6465 sets project timeout6466 when only project and runner timeouts are defined6467 when runner timeout is lower then project timeout6468 behaves like sets timeout6469 sets project_timeout_source6470 sets project timeout6471 when project timeout is lower then runner timeout6472 behaves like sets timeout6473 sets project_timeout_source6474 sets project timeout6475 when only job and runner timeouts are defined6476 when runner timeout is lower them job timeout6477 behaves like sets timeout6478 sets project_timeout_source6479 sets project timeout6480 when job timeout is lower them runner timeout6481 behaves like sets timeout6482 sets project_timeout_source6483 sets project timeout6484 when only job timeout is defined and runner is assigned, but has no timeout set6485 behaves like sets timeout6486 sets project_timeout_source6487 sets project timeout6488 when only one timeout value is defined6489 when only project timeout value is defined6490 behaves like sets timeout6491 sets project_timeout_source6492 sets project timeout6493 validations6494 when attributes are valid6495 returns no errors6496 when data is invalid6497 returns errors6498 set_cancel_gracefully6499 sets cancel_gracefully6500 returns false6501 loose foreign key on ci_builds_metadata.project_id6502 behaves like cleanup by a loose foreign key6503 cleans up (delete or nullify) the model6504 #enable_debug_trace!6505 when debug_trace_enabled is false6506 sets debug_trace_enabled to true6507 when debug_trace_enabled is true6508 does not set debug_trace_enabled to true6509 partitioning6510 with job6511 copies the partition_id from job6512 when it is already set6513 does not change the partition_id value6514 without job6515 is expected to validate that :partition_id cannot be empty/falsy6516 does not change the partition_id value6517 jsonb fields serialization6518 changing other fields does not change config_options6519 accessing config_options does not change it6520Deploy-ECS.gitlab-ci.yml6521 the created pipeline6522 creates the expected jobs6523 behaves like no pipeline yaml error6524 does not have any error6525 when the DAST template is also included6526 does not have any error6527 when running a pipeline for a branch6528 creates the expected jobs6529 behaves like no pipeline yaml error6530 does not have any error6531 when deploying to ECS Fargate6532 creates the expected jobs6533Gitlab::Auth::Ldap::Config6534 .servers6535 returns empty array if no server information is available6536 .available_providers6537 returns one provider6538 #initialize6539 requires a provider6540 returns an instance of Gitlab::Auth::Ldap::Config6541 raises an error if a unknown provider is used6542 #adapter_options6543 constructs basic options6544 includes failover hosts when set6545 includes authentication options when auth is configured6546 sets encryption method to simple_tls when configured as simple_tls6547 sets encryption method to start_tls when configured as start_tls6548 transforms SSL cert and key to OpenSSL objects6549 logs an error when an invalid key or cert are configured6550 when verify_certificates is enabled6551 sets tls_options to OpenSSL defaults6552 when verify_certificates is disabled6553 sets verify_mode to OpenSSL VERIFY_NONE6554 when ca_file is specified6555 passes it through in tls_options6556 when ca_file is a blank string6557 does not add the ca_file key to tls_options6558 when ssl_version is specified6559 passes it through in tls_options6560 when ssl_version is a blank string6561 does not add the ssl_version key to tls_options6562 #omniauth_options6563 constructs basic options6564 includes authentication options when auth is configured6565 transforms SSL cert and key to OpenSSL objects6566 when verify_certificates is enabled6567 specifies disable_verify_certificates as false6568 when verify_certificates is disabled6569 specifies disable_verify_certificates as true6570 when ca_file is present6571 passes it through6572 when ca_file is blank6573 does not include the ca_file option6574 when ssl_version is present6575 passes it through6576 when ssl_version is blank6577 does not include the ssl_version option6578 #has_auth?6579 is true when password is set6580 is true when bind_dn is set and password is empty6581 is false when password and bind_dn are not set6582 #attributes6583 uses default attributes when no custom attributes are configured6584 merges the configuration attributes with default attributes6585 #default_attributes6586 includes the configured uid attribute in the username attributes6587 only includes unique values for username attributes6588 #base6589 when the configured base is not normalized6590 returns the normalized base6591 when the configured base is normalized6592 returns the base unaltered6593 when the configured base is malformed6594 returns the base unaltered6595 when the configured base is blank6596 returns the base unaltered6597 sign_in_enabled?6598 enabled: true, prevent_ldap_sign_in: false, result: true6599 is expected to eq true6600 enabled: "true", prevent_ldap_sign_in: false, result: true6601 is expected to eq true6602 enabled: true, prevent_ldap_sign_in: true, result: false6603 is expected to eq false6604 enabled: false, prevent_ldap_sign_in: nil, result: false6605 is expected to eq false6606projects/_home_panel6607 admin area link6608 renders admin area link for admin6609 does not render admin area link for non-admin6610 does not render admin area link for anonymous6611 notifications6612 when user is signed in6613 renders Vue app root6614 when user is signed out6615 does not render Vue app root6616 badges6617 has no badges6618 does not render any badge6619 only has group badges6620 behaves like show badges6621 renders the all badges6622 only has project badges6623 behaves like show badges6624 renders the all badges6625 has both group and project badges6626 behaves like show badges6627 renders the all badges6628 project id6629 user can read project6630 is shown6631 user cannot read project6632 is not shown6633 forks6634 user can read fork source6635 does not show the forked-from project6636 user cannot read fork source6637 shows the message that forked project is inaccessible6638DiffFileEntity6639 when there is no merge request6640 behaves like diff file entity6641 exposes correct attributes6642 behaves like diff file base entity6643 exposes essential attributes6644 when diff file does not have a blob and content sha6645 exposes some attributes as nil6646 when a viewer6647 matches the schema6648 when it is a whitespace only change6649 has whitespace_only true6650 when the highlighted lines arent shown6651 has whitespace_only nil6652 when it is a new file6653 has whitespace_only false6654 when it is a collapsed file6655 has whitespace_only false6656 diff files6657 when diff_view is parallel6658 contains only the parallel diff lines6659 when diff_view is parallel6660 contains only the inline diff lines6661 when there is a merge request6662 exposes additional attributes6663 points all urls to merge request target project6664 exposes load_collapsed_diff_url if the file viewer is collapsed6665 behaves like diff file entity6666 exposes correct attributes6667 behaves like diff file base entity6668 exposes essential attributes6669 when diff file does not have a blob and content sha6670 exposes some attributes as nil6671 when a viewer6672 matches the schema6673 when it is a whitespace only change6674 has whitespace_only true6675 when the highlighted lines arent shown6676 has whitespace_only nil6677 when it is a new file6678 has whitespace_only false6679 when it is a collapsed file6680 has whitespace_only false6681 diff files6682 when diff_view is parallel6683 contains only the parallel diff lines6684 when diff_view is parallel6685 contains only the inline diff lines6686 when diff_view is unknown6687 hides highlighted_diff_lines and parallel_diff_lines6688 #parallel_diff_lines6689 exposes parallel diff lines correctly6690 #highlighted_diff_lines6691 calls diff_lines_for_serializer on diff_file6692 behaves like diff file with conflict_type6693 #conflict_type6694 returns nil by default6695 when there is matching conflict file6696 returns false6697Feature::Definition6698 #key6699 returns a symbol from name6700 #validate!6701 param: :name, value: "colon:separated", result: /Feature flag 'colon:separated' is invalid/6702 is expected to raise /Feature flag 'colon:separated' is invalid/6703 param: :name, value: "space separated", result: /Feature flag 'space separated' is invalid/6704 is expected to raise /Feature flag 'space separated' is invalid/6705 param: :name, value: "ALL_CAPS", result: /Feature flag 'ALL_CAPS' is invalid/6706 is expected to raise /Feature flag 'ALL_CAPS' is invalid/6707 param: :name, value: nil, result: /Feature flag is missing name/6708 is expected to raise /Feature flag is missing name/6709 param: :path, value: nil, result: /Feature flag 'feature_flag' is missing path/6710 is expected to raise /Feature flag 'feature_flag' is missing path/6711 param: :type, value: nil, result: /Feature flag 'feature_flag' is missing type/6712 is expected to raise /Feature flag 'feature_flag' is missing type/6713 param: :type, value: "invalid", result: /Feature flag 'feature_flag' type 'invalid' is invalid/6714 is expected to raise /Feature flag 'feature_flag' type 'invalid' is invalid/6715 param: :path, value: "development/invalid.yml", result: /Feature flag 'feature_flag' has an invalid path/6716 is expected to raise /Feature flag 'feature_flag' has an invalid path/6717 param: :path, value: "invalid/feature_flag.yml", result: /Feature flag 'feature_flag' has an invalid type/6718 is expected to raise /Feature flag 'feature_flag' has an invalid type/6719 param: :default_enabled, value: nil, result: /Feature flag 'feature_flag' is missing default_enabled/6720 is expected to raise /Feature flag 'feature_flag' is missing default_enabled/6721 #valid_usage!6722 validates type6723 raises exception for invalid type6724 .paths6725 returns at least one path6726 .load_from_file6727 properly loads a definition from file6728 for missing file6729 raises exception6730 for invalid definition6731 raises exception6732 .load_all!6733 when there's no feature flags a list of definitions is empty6734 when there's a single feature flag it properly loads them6735 when the same feature flag is stored multiple times raises exception6736 when one of the YAMLs is invalid it does raise exception6737 .for_upcoming_milestone?6738 ctx: "no milestone", milestone: nil, current_milestone: "1.0.0", expected: false6739 is expected to equal false6740 ctx: "upcoming milestone - major", milestone: "2.3", current_milestone: "1.9.999", expected: true6741 is expected to equal true6742 ctx: "upcoming milestone - minor", milestone: "2.3", current_milestone: "2.2.999", expected: true6743 is expected to equal true6744 ctx: "current milestone", milestone: "2.3", current_milestone: "2.3.999", expected: true6745 is expected to equal true6746 ctx: "past milestone - major", milestone: "1.9", current_milestone: "2.3.999", expected: false6747 is expected to equal false6748 ctx: "past milestone - minor", milestone: "2.2", current_milestone: "2.3.999", expected: false6749 is expected to equal false6750 .valid_usage!6751 when a known feature flag is used6752 validates it usage6753 when an unknown feature flag is used6754 for a type that is required to have all feature flags registered6755 raises exception6756 for a type that is optional6757 does not raise exception6758 for an unknown type6759 raises exception6760 .log_states?6761 ctx: "When flag does not exist", key: :no_flag, milestone: "0.0", log_state_change: true, expected: false6762 is expected to equal false6763 ctx: "When flag is old, and logging is not forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: false, expected: false6764 is expected to equal false6765 ctx: "When flag is old, but logging is forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: true, expected: true6766 is expected to equal true6767 ctx: "When flag is current", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true6768 is expected to equal true6769 ctx: "Flag is upcoming", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true6770 is expected to equal true6771 .default_enabled?6772 when feature flag exist6773 when default_enabled is true6774 returns the value from the definition6775 when default_enabled is false6776 returns the value from the definition6777 when feature flag does not exist6778 when passing default value6779 returns default value6780 when default value is undefined6781 when on dev or test environment6782 raises an error6783 when on production environment6784 returns false6785Gitlab::X509::Signature6786 behaves like signature with type checking6787 signature type checkers6788 method: :gpg?, expected: false6789 is expected to eq false6790 method: :ssh?, expected: false6791 is expected to eq false6792 method: :x509?, expected: true6793 is expected to eq true6794 commit signature6795 verified signature6796 with trusted certificate store6797 behaves like a verified signature6798 returns a verified signature if email does match6799 returns a verified signature if email does match, case-insensitively6800 returns an unverified signature if email does not match6801 returns an unverified signature if email does match and time is wrong6802 returns an unverified signature if certificate is revoked6803 if the email matches but isn't confirmed6804 returns an unverified signature6805 with the certificate defined by OpenSSL::X509::DEFAULT_CERT_FILE6806 behaves like a verified signature6807 returns a verified signature if email does match6808 returns a verified signature if email does match, case-insensitively6809 returns an unverified signature if email does not match6810 returns an unverified signature if email does match and time is wrong6811 returns an unverified signature if certificate is revoked6812 if the email matches but isn't confirmed6813 returns an unverified signature6814 without trusted certificate within store6815 returns an unverified signature6816 invalid signature6817 returns nil6818 invalid commit message6819 returns nil6820 certificate_crl6821 valid crlDistributionPoints6822 creates an issuer6823 valid crlDistributionPoints providing multiple http URIs6824 extracts the first URI6825 email6826 subjectAltName with email, othername6827 extracts email6828 subjectAltName with othername, email6829 extracts email6830 #signed_by_user6831 if email is not assigned to a user, return nil6832 if email is assigned to a user6833 returns user6834 tag signature6835 verified signature6836 with trusted certificate store6837 returns an unverified signature if the email matches but is not confirmed6838 when user email is confirmed6839 returns a verified signature if email does match6840 returns an unverified signature if email does not match6841 returns an unverified signature if email does match and time is wrong6842 returns an unverified signature if certificate is revoked6843 without trusted certificate within store6844 returns an unverified signature6845 invalid signature6846 returns nil6847 invalid message6848 returns nil6849Timelogs::CreateService6850 #execute6851 when issuable is an Issue6852 behaves like issuable supports timelog creation service6853 when the user does not have permission6854 returns an error6855 when the user has permissions6856 when spent_at is in the future6857 returns an error6858 when time_spent is zero6859 returns an error6860 when time_spent is nil6861 returns an error6862 when the timelog save fails6863 returns an error6864 when the creation completes sucessfully6865 behaves like success_response6866 sucessfully saves the timelog6867 when issuable is a MergeRequest6868 behaves like issuable supports timelog creation service6869 when the user does not have permission6870 returns an error6871 when the user has permissions6872 when spent_at is in the future6873 returns an error6874 when time_spent is zero6875 returns an error6876 when time_spent is nil6877 returns an error6878 when the timelog save fails6879 returns an error6880 when the creation completes sucessfully6881 behaves like success_response6882 sucessfully saves the timelog6883 when issuable is a WorkItem6884 behaves like issuable supports timelog creation service6885 when the user does not have permission6886 returns an error6887 when the user has permissions6888 when spent_at is in the future6889 returns an error6890 when time_spent is zero6891 returns an error6892 when time_spent is nil6893 returns an error6894 when the timelog save fails6895 returns an error6896 when the creation completes sucessfully6897 behaves like success_response6898 sucessfully saves the timelog6899 when issuable is an Incident6900 behaves like issuable supports timelog creation service6901 when the user does not have permission6902 returns an error6903 when the user has permissions6904 when spent_at is in the future6905 returns an error6906 when time_spent is zero6907 returns an error6908 when time_spent is nil6909 returns an error6910 when the timelog save fails6911 returns an error6912 when the creation completes sucessfully6913 behaves like success_response6914 sucessfully saves the timelog6915MergeRequests::ResolvedDiscussionNotificationService6916 #execute6917 when not all discussions are resolved6918 doesn't add a system note6919 doesn't send a notification email6920 doesn't send a webhook6921 when all discussions are resolved6922 adds a system note6923 sends a notification email6924 sends a webhook6925Gitlab::Ci::ArtifactFileReader6926 #read6927 when job has artifacts and metadata6928 when job artifact is on local storage6929 behaves like extracting job artifact archive6930 returns the content at the path6931 when path does not exist6932 raises an error6933 when path points to a directory6934 raises an error6935 when path is nested6936 returns the content at the nested path6937 when artifact archive size is greater than the limit6938 raises an error6939 when metadata entry shows size greater than the limit6940 raises an error6941 when job artifact is on remote storage6942 behaves like extracting job artifact archive6943 returns the content at the path6944 when path does not exist6945 raises an error6946 when path points to a directory6947 raises an error6948 when path is nested6949 returns the content at the nested path6950 when artifact archive size is greater than the limit6951 raises an error6952 when metadata entry shows size greater than the limit6953 raises an error6954 when extracting job artifact raises entry size error6955 raises an error6956 when job does not have metadata artifacts6957 raises an error6958 when job does not have artifacts6959 raises ArgumentError6960Gitlab::DeployKeyAccess6961 #can_create_tag?6962 when no-one can create tag6963 returns false6964 when deploy_key_for_protected_tags FF is disabled6965 allows to push the tag6966 push tag that matches a protected tag pattern via a deploy key6967 allows to push the tag6968 #can_push_for_ref?6969 push to a protected branch of this project via a deploy key6970 when the project has active deploy key owned by this user6971 returns true6972 when the project has active deploy keys, but not by this user6973 returns false6974 when there is another branch no one can push to6975 returns false when trying to push to that other branch6976 and the deploy key added for the first protected branch is also added for this other branch6977 returns true for both protected branches6978Ci::CreatePipelineService6979 cache6980 with cache:key6981 uses the provided key6982 with cache:key:files6983 when file.lock exists6984 builds a cache key6985 when file.lock does not exist6986 uses default cache key6987 with cache:key:files and prefix6988 when file.lock exists6989 builds a cache key6990 when file.lock does not exist6991 uses default cache key6992 with too many files6993 has errors6994gitlab:seed:runner_fleet rake task6995 # order random6996 with admin username6997 performs runner fleet seed successfully6998Gitlab::Ci::Badge::Pipeline::Metadata6999 behaves like badge metadata7000 #to_html7001 points to link7002 contains clickable image7003 #to_markdown7004 is expected to include "http://localhost/namespace507/project592/badges/feature/pipeline.svg"7005 is expected to include "http://localhost/namespace508/project593/-/commits/feature"7006 #to_asciidoc7007 is expected to include "http://localhost/namespace509/project594/badges/feature/pipeline.svg"7008 is expected to include "http://localhost/namespace510/project595/-/commits/feature"7009 is expected to include "image:"7010 is expected to include "link="7011 is expected to include "title="7012 #title7013 returns build status title7014 #image_url7015 returns valid url7016 #link_url7017 returns valid link7018API::Helpers::PackagesHelpers7019 authorize_packages_access!7020 authorizes packages access7021 with an allowed required permission7022 authorizes packages access7023 with a not allowed permission7024 rejects packages access7025 authorize_read_package!7026 subject: project, expected_class: Packages::Policies::Project7027 calls authorize! with correct subject7028 subject: group, expected_class: Packages::Policies::Group7029 calls authorize! with correct subject7030 subject: package, expected_class: Packages::Package(id: integer, project_id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, name: string, version: string, package_type: integer, creator_id: integer, status: integer, last_downloaded_at: datetime_with_timezone)7031 calls authorize! with correct subject7032 authorize_create_package!7033 calls authorize!7034 authorize_destroy_package!7035 calls authorize!7036 require_packages_enabled!7037 with packages enabled7038 doesn't call not_found!7039 with package disabled7040 calls not_found!7041 #authorize_workhorse!7042 authorizes workhorse7043 without length7044 authorizes workhorse7045 #authorize_upload!7046 authorizes the upload7047 #user_project7048 calls find_project! on default action7049 calls find_project! on read_project action7050 calls user_project_with_read_package on read_package action7051 throws ArgumentError on unexpected action7052 #user_project_with_read_package7053 with non-existing project7054 with current user7055 returns Not Found7056 without current user7057 returns Unauthorized7058 with existing project7059 with current user7060 as developer member7061 returns project7062 as guest member7063 returns Forbidden7064 without current user7065 returns Unauthorized7066 if no authorized project scope7067 returns Forbidden7068 #track_package_event7069 behaves like Snowplow event tracking with RedisHLL context7070 behaves like Snowplow event tracking7071 is emitted7072 when using deploy token and action is push package7073 logs a snowplow event7074 when guest and action is pull package7075 logs a snowplow event7076Gitlab::Ci::Config::Entry::Cache7077 validations7078 when entry config value is correct7079 #value7080 behaves like hash key value7081 returns hash value7082 with files7083 behaves like hash key value7084 returns hash value7085 with files and prefix7086 behaves like hash key value7087 returns hash value7088 with prefix7089 key is nil7090 with option `unprotect` specified7091 returns true7092 with `policy`7093 policy: "pull-push", result: "pull-push"7094 is expected to include {:policy => "pull-push"}7095 policy: "push", result: "push"7096 is expected to include {:policy => "push"}7097 policy: "pull", result: "pull"7098 is expected to include {:policy => "pull"}7099 policy: "unknown", result: "unknown"7100 is expected to include {:policy => "unknown"}7101 without `policy`7102 assigns policy to default7103 with `when`7104 when_config: "on_success", result: "on_success"7105 is expected to include {:when => "on_success"}7106 when_config: "on_failure", result: "on_failure"7107 is expected to include {:when => "on_failure"}7108 when_config: "always", result: "always"7109 is expected to include {:when => "always"}7110 when_config: "unknown", result: "unknown"7111 is expected to include {:when => "unknown"}7112 without `when`7113 assigns when to default7114 #valid?7115 is expected to be valid7116 with files7117 is expected to be valid7118 with `policy`7119 policy: "pull-push", valid: true7120 returns expected validity7121 policy: "push", valid: true7122 returns expected validity7123 policy: "pull", valid: true7124 returns expected validity7125 policy: "unknown", valid: false7126 returns expected validity7127 with `when`7128 when_config: "on_success", valid: true7129 returns expected validity7130 when_config: "on_failure", valid: true7131 returns expected validity7132 when_config: "always", valid: true7133 returns expected validity7134 when_config: "unknown", valid: false7135 returns expected validity7136 with key missing7137 #value7138 sets key with the default7139 when entry value is not correct7140 #errors7141 when is not a hash7142 reports errors with config value7143 when descendants are invalid7144 with invalid keys7145 reports error with descendants7146 with empty key7147 reports error with descendants7148 with invalid files7149 reports error with descendants7150 with prefix without files7151 reports error with descendants7152 when there is an unknown key present7153 reports error with descendants7154 when there is an unknown key present7155 reports error with descendants7156 when the `when` keyword is not a valid string7157 when `when` is unknown7158 returns error7159 when it is an array7160 returns error7161 when it is a boolean7162 returns error7163 when the `policy` keyword is not a valid string7164 when `policy` is unknown7165 returns error7166 when it is an array7167 returns error7168 when it is a boolean7169 returns error7170Ci::RunnerManager7171 # order random7172 is expected to have many runner_manager_builds7173 is expected to belong to runner required: false7174 is expected to have many builds through runner_manager_builds7175 is expected to belong to runner_version required: false7176 .stale7177 returns stale runner managers7178 .stale_deadline7179 is expected to eq 2023-04-05 14:57:22.000000000 +00007180 validation7181 is expected to validate that :runner cannot be empty/falsy7182 is expected to validate that :system_xid cannot be empty/falsy7183 is expected to validate that the length of :system_xid is at most 647184 is expected to validate that the length of :version is at most 20487185 is expected to validate that the length of :revision is at most 2557186 is expected to validate that the length of :platform is at most 2557187 is expected to validate that the length of :architecture is at most 2557188 is expected to validate that the length of :ip_address is at most 10247189 when runner has config7190 is valid7191 when runner has an invalid config7192 is invalid7193 .online_contact_time_deadline7194 is expected to eq 2023-04-12 12:57:22.000000000 +00007195 behaves like having unique enum values7196 has unique values in "executor_type"7197 #status7198 if never connected7199 is expected to eq :stale7200 if created recently7201 is expected to eq :never_contacted7202 if contacted 1s ago7203 is expected to eq :online7204 if contacted recently7205 is expected to eq :offline7206 if contacted long time ago7207 is expected to eq :stale7208 behaves like it has loose foreign keys7209 has at least one loose foreign key definition7210 has the deletion trigger present7211 records record deletions7212 cleans up record deletions7213 #heartbeat7214 when database was updated recently7215 when version is changed7216 schedules version information update7217 updates cache7218 when fetching runner releases is disabled7219 does not schedule version information update7220 with only ip_address specified7221 updates only ip_address7222 with new version having been cached7223 does not lose cached version value7224 when database was not updated recently7225 when version is changed7226 updates redis cache and database7227 with invalid runner_manager7228 still updates redis cache and database7229 with unchanged runner_manager version7230 does not schedule ci_runner_versions update7231 with unknown executor7232 updates with expected executor type7233 with custom executor7234 updates with expected executor type7235 with shell executor7236 updates with expected executor type7237 with docker executor7238 updates with expected executor type7239 with docker-windows executor7240 updates with expected executor type7241 with docker-ssh executor7242 updates with expected executor type7243 with ssh executor7244 updates with expected executor type7245 with parallels executor7246 updates with expected executor type7247 with virtualbox executor7248 updates with expected executor type7249 with docker+machine executor7250 updates with expected executor type7251 with docker-ssh+machine executor7252 updates with expected executor type7253 with kubernetes executor7254 updates with expected executor type7255 with an unknown executor type7256 updates with unknown executor type7257MergeRequests::DeleteNonLatestDiffsService7258 #execute7259 schedules non-latest merge request diffs removal7260 schedules no removal if it is already cleaned7261 schedules no removal if it is empty7262 schedules no removal if there is no non-latest diffs7263admin/dashboard/index.html.haml7264 shows version of GitLab Workhorse7265 includes revision of GitLab for pre VERSION7266 shows the tag for GitLab version7267 does not include license breakdown7268 shows database versions for all database models7269 when show_version_check? is true7270 renders the version check badge7271 GitLab KAS7272 KAS enabled7273 includes KAS version7274 KAS disabled7275 does not include KAS version7276IssuePresenter7277 #web_url7278 returns correct path7279 when issue type is task7280 returns a work item url using iid for the task7281 #subscribed?7282 returns not subscribed7283 returns subscribed7284 #issue_path7285 returns correct path7286 when issue type is task7287 returns a work item path using iid for the task7288 #project_emails_disabled?7289 returns false when emails notifications is enabled for project7290 when emails notifications is disabled for project7291 is expected to equal true7292 #service_desk_reply_to7293 when issue is not a service desk issue7294 is expected to be nil7295 when issue is a service desk issue7296 is expected to eq "an*****@e*****.c**"7297 with signed in user7298 when user has no role in project7299 is expected to eq "an*****@e*****.c**"7300 when user has guest role in project7301 is expected to eq "an*****@e*****.c**"7302 when user has reporter role in project7303 is expected to eq "any@email.com"7304 when user has developer role in project7305 is expected to eq "any@email.com"7306 #issue_email_participants7307 is expected to be empty7308 when an issue email participant exists7309 has one element that is a presenter7310Ci::RunnerProject7311 behaves like includes Limitable concern7312 #exceeds_limits?7313 without plan limits configured7314 is expected to eq false7315 without plan limits configured7316 is expected to eq false7317 with an existing model7318 is expected to eq true7319 validations7320 is expected to be a kind of Limitable7321 without plan limits configured7322 can create new models7323 with plan limits configured7324 can create new models7325 with an existing model7326 cannot create new models exceeding the plan limits7327 loose foreign key on ci_runner_projects.project_id7328 behaves like cleanup by a loose foreign key7329 cleans up (delete or nullify) the model7330FinderWithGroupHierarchy7331 when specifying group7332 returns only the group by default7333 when specifying group_id7334 returns only the group by default7335 when including items from group ancestors7336 returns group and its ancestors7337 ignores groups which user can not read7338 returns them all when skip_authorization is true7339 when including items from group descendants7340 returns items from group and its descendants7341 ignores items from groups which user can not read7342 returns them all when skip_authorization is true7343 with N+1 query check7344 does not produce N+1 query7345 when preload_max_access_levels_for_labels_finder is disabled7346 when specifying group7347 returns only the group by default7348 when specifying group_id7349 returns only the group by default7350 when including items from group ancestors7351 returns group and its ancestors7352 ignores groups which user can not read7353 returns them all when skip_authorization is true7354 when including items from group descendants7355 returns items from group and its descendants7356 ignores items from groups which user can not read7357 returns them all when skip_authorization is true7358AutoDevops::DisableWorker#perform7359 disables auto devops for project7360 when project owner is a user7361 sends an email to pipeline user and project owner(s)7362 when project does not have owner7363 sends an email to pipeline user7364 when pipeline is not related to a user and project does not have owner7365 does not send an email7366Projects::DownloadService7367 File service7368 for a URL that is not on whitelist7369 is expected to eq nil7370 for URLs that are on the whitelist7371 an image file7372 is expected to have key :alt7373 is expected to have key :url7374 is expected to match "rails_sample.jpg"7375 is expected to eq "rails_sample"7376 a txt file7377 is expected to have key :alt7378 is expected to have key :url7379 is expected to match "doc_sample.txt"7380 is expected to eq "doc_sample.txt"7381NavHelper7382 #header_links7383 when the user is logged in7384 has all the expected links by default7385 contains the impersonation link while impersonating7386 as admin7387 application setting :admin_mode is enabled7388 does not contain the admin mode link by default7389 with admin mode enabled7390 contains the admin mode link7391 application setting :admin_mode is disabled7392 does not contain the admin mode link7393 with admin mode enabled7394 has no effect on header links7395 when the user cannot read cross project7396 does not contain cross project elements when the user cannot read cross project7397 shows the search box when the user cannot read cross project and they are visiting a project7398 when the user is not logged in7399 returns only the sign in and search when the user is not logged in7400 .admin_monitoring_nav_links7401 is expected to all be a kind of String7402 #page_has_markdown?7403 path: "projects/merge_requests#show"7404 is expected to eq true7405 path: "projects/merge_requests/conflicts#show"7406 is expected to eq true7407 path: "issues#show"7408 is expected to eq true7409 path: "milestones#show"7410 is expected to eq true7411 path: "issues#designs"7412 is expected to eq true7413 #show_super_sidebar?7414 returns false by default7415 when used is signed-in7416 with feature flag off7417 when user has new nav disabled7418 behaves like #show_super_sidebar returns false7419 returns false7420 when user has new nav enabled7421 behaves like #show_super_sidebar returns false7422 returns false7423 with feature flag on7424 when user has new nav disabled7425 behaves like #show_super_sidebar returns false7426 returns false7427 when user has new nav enabled7428 returns true7429AnalyticsIssueEntity7430 without subgroup7431 behaves like generic entity7432 contains the entity URL7433 contains the author7434 contains the project path7435 contains the namespace full path7436 contains the end event timestamp7437 does not contain sensitive information7438 when end_event_timestamp is nil7439 contains a nil end_event_timestamp7440 with subgroup7441 has URL containing subgroup7442 behaves like generic entity7443 contains the entity URL7444 contains the author7445 contains the project path7446 contains the namespace full path7447 contains the end event timestamp7448 does not contain sensitive information7449 when end_event_timestamp is nil7450 contains a nil end_event_timestamp7451Gitlab::Metrics::Dashboard::Validator::Errors7452 Gitlab::Metrics::Dashboard::Validator::Errors::SchemaValidationError7453 empty error hash7454 uses default error message7455 formatted message7456 for root object7457 when required keys are missing7458 is expected to eq "root is missing required keys: one"7459 when there is type mismatch7460 on type: null7461 is expected to eq "'property_name' at root is not of type: null"7462 on type: string7463 is expected to eq "'property_name' at root is not of type: string"7464 on type: boolean7465 is expected to eq "'property_name' at root is not of type: boolean"7466 on type: integer7467 is expected to eq "'property_name' at root is not of type: integer"7468 on type: number7469 is expected to eq "'property_name' at root is not of type: number"7470 on type: array7471 is expected to eq "'property_name' at root is not of type: array"7472 on type: object7473 is expected to eq "'property_name' at root is not of type: object"7474 for nested object7475 when required keys are missing7476 is expected to eq "/nested_objects/0 is missing required keys: two"7477 when there is type mismatch7478 on type: null7479 is expected to eq "'property_name' at /nested_objects/0 is not of type: null"7480 on type: string7481 is expected to eq "'property_name' at /nested_objects/0 is not of type: string"7482 on type: boolean7483 is expected to eq "'property_name' at /nested_objects/0 is not of type: boolean"7484 on type: integer7485 is expected to eq "'property_name' at /nested_objects/0 is not of type: integer"7486 on type: number7487 is expected to eq "'property_name' at /nested_objects/0 is not of type: number"7488 on type: array7489 is expected to eq "'property_name' at /nested_objects/0 is not of type: array"7490 on type: object7491 is expected to eq "'property_name' at /nested_objects/0 is not of type: object"7492 when data does not match pattern7493 is expected to eq "'property_name' at /nested_objects/0 does not match pattern: aa.*"7494 when data does not match format7495 is expected to eq "'property_name' at /nested_objects/0 does not match format: date-time"7496 when data is not const7497 is expected to eq "'property_name' at /nested_objects/0 is not: \"one\""7498 when data is not included in enum7499 is expected to eq "'property_name' at /nested_objects/0 is not one of: [\"one\", \"two\"]"7500 when data is not included in enum7501 is expected to eq "'property_name' at /nested_objects/0 is invalid: error_type=unknown"7502 Gitlab::Metrics::Dashboard::Validator::Errors::DuplicateMetricIds7503 has custom error message7504StateNote7505 .from_event7506 with event state opened7507 contains the expected values7508 behaves like a synthetic note7509 behaves like a system note7510 has the correct attributes7511 #discussion_id7512 returns the expected discussion id7513 with event state closed7514 contains the expected values7515 behaves like a synthetic note7516 behaves like a system note7517 has the correct attributes7518 #discussion_id7519 returns the expected discussion id7520 with event state merged7521 contains the expected values7522 behaves like a synthetic note7523 behaves like a system note7524 has the correct attributes7525 #discussion_id7526 returns the expected discussion id7527 with event state locked7528 contains the expected values7529 behaves like a synthetic note7530 behaves like a system note7531 has the correct attributes7532 #discussion_id7533 returns the expected discussion id7534 with event state reopened7535 contains the expected values7536 behaves like a synthetic note7537 behaves like a system note7538 has the correct attributes7539 #discussion_id7540 returns the expected discussion id7541 with a mentionable source7542 with a commit7543 contains the expected values7544 with a merge request7545 contains the expected values7546 when closed by error tracking7547 contains the expected values7548 when closed by promotheus alert7549 contains the expected values7550Gitlab::Chat::Responder::Mattermost7551 #send_response7552 sends a response back to Slack7553 #success7554 returns the output for a successful build7555 limits the output to a fixed size7556 does not send a response if the output is empty7557 #failure7558 returns the output for a failed build7559 #scheduled_output7560 returns the output for a scheduled build7561Load balancer behavior with errors inside a transaction7562 in a transaction7563 raises an exception when a retry would occur7564 without a transaction7565 retries7566Ci::Runners::SetRunnerAssociatedProjectsService#execute7567 # order random7568 without user7569 does not call assign_to on runner and returns error response7570 with admin user7571 with successful requests7572 when disassociating a project7573 reassigns associated projects and returns success response7574 when disassociating no projects7575 reassigns associated projects and returns success response7576 when disassociating all projects7577 reassigns associated projects and returns success response7578 with failing assign_to requests7579 returns error response and rolls back transaction7580 with failing destroy calls7581 returns error response and rolls back transaction7582 with unauthorized user7583 does not call assign_to on runner and returns error message7584Puma7585{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"Puma starting in cluster mode..."}7586{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"* Puma version: 5.6.5 (ruby 3.0.6-p216) (\"Birdie's Version\")"}7587{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"* Min threads: 1"}7588{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"* Max threads: 4"}7589{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"* Environment: test"}7590{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"* Master PID: 10993"}7591{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"* Workers: 1"}7592{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"* Restarts: (✔) hot (✖) phased"}7593{"timestamp":"2023-04-12T14:58:37.030Z","pid":10993,"message":"* Preloading application"}7594{"timestamp":"2023-04-12T14:58:37.043Z","pid":10993,"message":"* Listening on unix:///builds/gitlab-org/gitlab/tmp/tests/puma.socket"}7595{"timestamp":"2023-04-12T14:58:37.043Z","pid":10993,"message":"Use Ctrl-C to stop"}7596{"timestamp":"2023-04-12T14:58:37.043Z","pid":10993,"message":"! WARNING: Detected running cluster mode with 1 worker."}7597{"timestamp":"2023-04-12T14:58:37.043Z","pid":10993,"message":"! Running Puma in cluster mode with a single worker is often a misconfiguration."}7598{"timestamp":"2023-04-12T14:58:37.043Z","pid":10993,"message":"! Consider running Puma in single-mode (workers = 0) in order to reduce memory overhead."}7599{"timestamp":"2023-04-12T14:58:37.043Z","pid":10993,"message":"! Set the `silence_single_worker_warning` option to silence this warning message."}7600{"timestamp":"2023-04-12T14:58:37.044Z","pid":10993,"message":"! Promoting existing objects to old generation..."}7601{"timestamp":"2023-04-12T14:58:37.053Z","pid":10993,"message":"! Compacting..."}7602{"timestamp":"2023-04-12T14:58:37.086Z","pid":10993,"message":"! Friendly fork preparation complete."}7603{"timestamp":"2023-04-12T14:58:37.088Z","pid":10993,"message":"- Worker 0 (PID: 10994) booted in 0.0s, phase: 0"}7604{"timestamp":"2023-04-12T14:58:37.552Z","pid":10993,"message":"- Worker 0 (PID: 11001) booted in 0.0s, phase: 0"}7605 has a worker that self-terminates on signal SIGQUIT7606{"timestamp":"2023-04-12T14:58:38.403Z","pid":10993,"message":"- Worker 0 (PID: 11008) booted in 0.0s, phase: 0"}7607 has a worker that self-terminates on signal SIGTERM7608{"timestamp":"2023-04-12T14:58:39.443Z","pid":10993,"message":"- Worker 0 (PID: 11015) booted in 0.0s, phase: 0"}7609 has a worker that self-terminates on signal SIGKILL7610{"timestamp":"2023-04-12T14:58:39.447Z","pid":10993,"message":"=== puma shutdown: 2023-04-12 14:58:39 +0000 ==="}7611{"timestamp":"2023-04-12T14:58:39.448Z","pid":10993,"message":"- Goodbye!"}7612{"timestamp":"2023-04-12T14:58:39.448Z","pid":10993,"message":"- Gracefully shutting down workers..."}761300_deprecations7614 # order random7615 Rails deprecations7616 when catching deprecation warnings7617DEPRECATION WARNING: ABC will be removed (called from block (3 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/initializers/00_deprecations_spec.rb:40)7618 logs them to Gitlab::DeprecationJsonLogger7619 logs them to stderr7620 when in production environment7621 does not log them to Gitlab::DeprecationJsonLogger7622 does not log them to stderr7623 when GITLAB_LOG_DEPRECATIONS is set7624 logs them to Gitlab::DeprecationJsonLogger7625 does not log them to stderr7626 when catching disallowed warnings7627 raises ActiveSupport::DeprecationException7628 when in production environment7629 does not raise ActiveSupport::DeprecationException7630 when GITLAB_LOG_DEPRECATIONS is set7631 does not raise ActiveSupport::DeprecationException7632 configuring ActiveSupport::Deprecation.disallowed_warnings7633 sets disallowed warnings7634 when in production environment7635 does not set disallowed warnings7636 when GITLAB_LOG_DEPRECATIONS is set7637 does not set disallowed warnings7638 Ruby deprecations7639 when catching deprecations through Kernel#warn7640ABC gem is deprecated and will be removed7641 logs them to Gitlab::DeprecationJsonLogger7642 logs them to stderr7643 when in production environment7644ABC gem is deprecated and will be removed7645 does not log them to Gitlab::DeprecationJsonLogger7646 logs them to stderr7647 when GITLAB_LOG_DEPRECATIONS is set7648ABC gem is deprecated and will be removed7649 logs them to Gitlab::DeprecationJsonLogger7650 logs them to stderr7651 when other messages from Kernel#warn7652Sure is hot today7653 does not log them to Gitlab::DeprecationJsonLogger7654 logs them to stderr7655Gitlab::Ci::Pipeline::Chain::EnsureResourceGroups7656 #perform!7657 when a pipeline contains a job that requires a resource group7658 ensures the resource group existence7659 when a resource group has already been existed7660 ensures the resource group existence7661 when a resource group key contains an invalid character7662 does not create any resource groups7663 when a pipeline does not contain a job that requires a resource group7664 does not create any resource groups7665ObjectStorage::MigrateUploadsWorker7666 #perform7667 migrates files to remote storage7668 handles legacy argument format7669 logs an error when number of arguments is incorrect7670 reversed7671 migrates files to local storage7672 migration is unsuccessful7673 does not migrate files to remote storage7674 limits N+1 queries7675 to N*57676Packages::Nuget::Metadatum7677 relationships7678 is expected to belong to package required: false inverse_of => nuget_metadatum7679 validations7680 is expected to validate that :package cannot be empty/falsy7681 #license_url7682 is expected to allow :license_url to be ‹"http://sandbox.com"›7683 is expected to allow :license_url to be ‹"https://sandbox.com"›7684 is expected not to allow :license_url to be ‹"123"›7685 is expected not to allow :license_url to be ‹"sandbox.com"›7686 #ensure_at_least_one_field_supplied7687 rejects unfilled metadatum7688 #ensure_nuget_package_type7689 rejects if not linked to a nuget package7690 #project_url7691 is expected to allow :project_url to be ‹"http://sandbox.com"›7692 is expected to allow :project_url to be ‹"https://sandbox.com"›7693 is expected not to allow :project_url to be ‹"123"›7694 is expected not to allow :project_url to be ‹"sandbox.com"›7695 #ensure_at_least_one_field_supplied7696 rejects unfilled metadatum7697 #ensure_nuget_package_type7698 rejects if not linked to a nuget package7699 #icon_url7700 is expected to allow :icon_url to be ‹"http://sandbox.com"›7701 is expected to allow :icon_url to be ‹"https://sandbox.com"›7702 is expected not to allow :icon_url to be ‹"123"›7703 is expected not to allow :icon_url to be ‹"sandbox.com"›7704 #ensure_at_least_one_field_supplied7705 rejects unfilled metadatum7706 #ensure_nuget_package_type7707 rejects if not linked to a nuget package7708Direct upload support7709 config_name: "artifacts"7710 when object storage is enabled7711 when direct upload is enabled7712 when provider is AWS7713/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7714/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7715/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7716/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7717/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7718/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7719 succeeds7720 when provider is Google7721/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7722/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7723/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7724/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7725/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7726/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7727 succeeds7728 when provider is AzureRM7729/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7730/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7731/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7732/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7733/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7734/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7735 succeeds7736 when connection is empty7737/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7738/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7739/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7740/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7741/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7742/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7743 raises an error7744 when other provider is used7745/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7746/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7747/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7748/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7749/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7750/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7751 raises an error7752 when connection is omitted7753/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7754/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7755/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7756/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7757/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7758/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7759 raises an error7760 when direct upload is disabled7761/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7762/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7763/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7764/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7765/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7766/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7767 succeeds7768 when object storage is disabled7769/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7770/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7771/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7772/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7773/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7774/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7775 succeeds7776 config_name: "lfs"7777 when object storage is enabled7778 when direct upload is enabled7779 when provider is AWS7780/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7781/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7782/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7783/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7784/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7785/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7786 succeeds7787 when provider is Google7788/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7789/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7790/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7791/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7792/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7793/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7794 succeeds7795 when provider is AzureRM7796/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7797/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7798/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7799/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7800/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7801/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7802 succeeds7803 when connection is empty7804/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7805/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7806/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7807/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7808/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7809/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7810 raises an error7811 when other provider is used7812/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7813/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7814/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7815/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7816/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7817/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7818 raises an error7819 when connection is omitted7820/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7821/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7822/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7823/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7824/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7825/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7826 raises an error7827 when direct upload is disabled7828/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7829/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7830/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7831/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7832/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7833/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7834 succeeds7835 when object storage is disabled7836/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7837/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7838/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7839/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7840/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7841/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7842 succeeds7843 config_name: "uploads"7844 when object storage is enabled7845 when direct upload is enabled7846 when provider is AWS7847/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7848/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7849/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7850/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7851/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7852/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7853 succeeds7854 when provider is Google7855/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7856/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7857/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7858/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7859/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7860/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7861 succeeds7862 when provider is AzureRM7863/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7864/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7865/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7866/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7867/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7868/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7869 succeeds7870 when connection is empty7871/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7872/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7873/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7874/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7875/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7876/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7877 raises an error7878 when other provider is used7879/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7880/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7881/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7882/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7883/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7884/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7885 raises an error7886 when connection is omitted7887/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7888/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7889/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7890/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7891/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7892/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7893 raises an error7894 when direct upload is disabled7895/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7896/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7897/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7898/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7899/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7900/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7901 succeeds7902 when object storage is disabled7903/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS7904/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here7905/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError7906/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here7907/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS7908/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here7909 succeeds7910FileMover7911 #execute7912 local storage7913 when move and field update successful7914 updates the description correctly7915 updates existing upload record7916 when update_markdown fails7917 does not update the description7918 does not change the upload record7919 when tmp uploader is not local storage7920 when move and field update successful7921 updates the description correctly7922 creates new target upload record an delete the old upload7923 when update_markdown fails7924 does not update the description7925 does not change the upload record7926 security7927 when relative path is involved7928 does not trigger move if path is outside designated directory7929 when symlink is involved7930 does not trigger move if path is outside designated directory7931layouts/devise_empty7932 behaves like a layout which reflects the application theme setting7933 as a themed layout7934 when no theme is explicitly selected7935 renders with the default theme7936 when user is authenticated & has selected a specific theme7937 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">7938 renders with the Indigo theme7939 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">7940 renders with the Light Indigo theme7941 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">7942 renders with the Blue theme7943 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">7944 renders with the Light Blue theme7945 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">7946 renders with the Green theme7947 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">7948 renders with the Light Green theme7949 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">7950 renders with the Red theme7951 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">7952 renders with the Light Red theme7953 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">7954 renders with the Gray theme7955 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">7956 renders with the Light Gray theme7957 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">7958 renders with the Dark Mode (alpha) theme7959Gitlab::JiraImport7960 .validate_project_settings!7961 without user param7962 behaves like jira configuration base checks7963 with configuration_check set to false7964 does not raise Jira integration error7965 when Jira integration was not setup7966 behaves like raise Jira import error7967 returns error7968 when Jira integration exists7969 when Jira connection is not valid7970 behaves like raise Jira import error7971 returns error7972 when jira connection is valid7973 does not return any error7974 with user param provided7975 when user has permission to run import7976 behaves like jira configuration base checks7977 with configuration_check set to false7978 does not raise Jira integration error7979 when Jira integration was not setup7980 behaves like raise Jira import error7981 returns error7982 when Jira integration exists7983 when Jira connection is not valid7984 behaves like raise Jira import error7985 returns error7986 when jira integration is configured7987 when issues feature is disabled7988 behaves like raise Jira import error7989 returns error7990 when everything is ok7991 does not return any error7992 when user does not have permissions to run the import7993 behaves like raise Jira import error7994 returns error7995 .already_imported_cache_key7996 returns cache key for already imported items7997 .jira_issues_next_page_cache_key7998 returns cache key for next issues7999 .get_issues_next_start_at8000 returns zero when not defined8001 returns negative value for next issues to be imported starting point8002 returns cached value for next issues to be imported starting point8003 .cache_users_mapping8004 stores the data correctly8005 .get_user_mapping8006 reads the data correctly8007 returns nil if value not found8008 .store_issues_next_started_at8009 stores nil value8010 stores positive value8011 stores negative value8012Ci::CreatePipelineService8013 tags:8014 with valid config8015 creates a pipeline8016 with too many tags8017 creates a pipeline without builds8018 tags persistence8019 with multiple tags8020 when the tags do not exist8021 does not execute N+1 queries8022 when tags are already persisted8023 does not execute N+1 queries8024 with bridge jobs8025 is expected to be empty8026Gitlab::Metrics::Samplers::DatabaseSampler8027 behaves like metrics sampler8028 when sampling interval is passed explicitly8029 is expected to eq 428030 when sampling interval is passed through the environment8031 is expected to eq 428032 when no sampling interval is passed anywhere8033 uses the hardcoded default8034 #start8035 calls the sample method on the sampler thread8036 with warmup set to true8037 calls the sample method first on the caller thread8038 #safe_sample8039 calls #sample once8040 when sampling fails with error8041 recovers from errors8042 with logger8043 logs errors8044 #sample8045 when all base models are connected8046 samples connection pool statistics for all primaries8047 when replica hosts are configured8048 samples connection pool statistics for primaries and replicas8049 when a base model is not connected8050 records no samples for that primary8051 when the base model has replica connections8052 still records the replica metrics8053MergeRequests::HandleAssigneesChangeService8054 #async_execute8055 performs MergeRequests::HandleAssigneesChangeWorker asynchronously8056 #execute8057 creates assignee note8058 sends email notifications to old and new assignees8059 creates pending todo for assignee8060 tracks users assigned event8061 tracks assignees changed event8062 when unassigning all users8063 creates assignee note8064 when execute_hooks option is set to true8065 executes hooks and integrations8066notify/change_in_merge_request_draft_status_email.html.haml8067 shows user added draft status on email8068 shows user removed draft status on email8069 renders the email correctly8070ProtectedTag::CreateAccessLevel8071 # order random8072 associations8073 is expected to belong to deploy_key required: false8074 #check_access8075 is expected to be falsey8076 when this create_access_level is tied to a deploy key8077 when the deploy key is among the active keys for this project8078 is expected to be truthy8079 when user is missing8080 is expected to be falsey8081 when deploy key does not belong to the user8082 is expected to be falsey8083 when user cannot access the project8084 is expected to be falsey8085 when the deploy key is not among the active keys of this project8086 is expected to be falsey8087 validations8088 verifies access levels8089 when deploy key enabled for the project8090 is valid8091 when a record exists with the same access level8092 is not valid8093 when a deploy key already added for this access level8094 is not valid8095 when deploy key is not enabled for the project8096 returns an error8097 #type8098 returns :role by default8099 when a deploy key is tied to the protected branch8100 returns :deploy_key8101Constraints::GroupUrlConstrainer8102 #matches?8103 valid request8104 is expected to be truthy8105 valid request for nested group8106 is expected to be truthy8107 valid request for nested group with reserved top level name8108 is expected to be truthy8109 invalid request8110 is expected to be falsey8111 when the request matches a redirect route8112 for a root group8113 and is a GET request8114 is expected to be truthy8115 and is NOT a GET request8116 is expected to be falsey8117 for a nested group8118 is expected to be truthy8119Banzai::ReferenceParser::MilestoneParser8120 #nodes_visible_to_user8121 when the link has a data-issue attribute8122 behaves like referenced feature visibility8123 when feature is disabled8124 does not create reference8125 when feature is enabled only for team members8126 does not create reference for non member8127 creates reference for member8128 when feature is enabled8129 creates reference8130 #referenced_by8131 when the link has a data-milestone attribute8132 using an existing milestone ID8133 returns an Array of milestones8134 using a non-existing milestone ID8135 returns an empty Array8136Integrations::EmailsOnPush8137 Validations8138 when integration is active8139 is expected to validate that :recipients cannot be empty/falsy8140 when integration is inactive8141 is expected not to validate that :recipients cannot be empty/falsy8142 validates number of recipients8143 valid number of recipients8144 does not count duplicates and invalid emails8145 invalid number of recipients8146 is expected not to be valid8147 adds an error message8148 when integration is not active8149 is expected to be valid8150 .new8151 when properties is missing branches_to_be_notified8152 sets the default value to all8153 when branches_to_be_notified is already set8154 does not overwrite it with the default value8155 .valid_recipients8156 removes invalid email addresses and removes duplicates by keeping the original capitalization8157 #execute8158 when emails are disabled on the project8159 does not send emails8160 when emails are enabled on the project8161 pushing to a random branch and notification configured for all branches8162 sends email8163 pushing to the default branch and notification configured for all branches8164 sends email8165 pushing to a protected branch and notification configured for all branches8166 sends email8167 pushing to a random branch and notification configured for default branch only8168 does not send email8169 pushing to the default branch and notification configured for default branch only8170 sends email8171 pushing to a protected branch and notification configured for default branch only8172 does not send email8173 pushing to a random branch and notification configured for protected branches only8174 does not send email8175 pushing to the default branch and notification configured for protected branches only8176 does not send email8177 pushing to a protected branch and notification configured for protected branches only8178 sends email8179 pushing to a random branch and notification configured for default and protected branches only8180 does not send email8181 pushing to the default branch and notification configured for default and protected branches only8182 sends email8183 pushing to a protected branch and notification configured for default and protected branches only8184 sends email8185Environments::AutoStopWorker8186 stops the environment8187 executes the stop action8188 when user does not have a permission to play the stop action8189 raises an error8190 when the environment has already been stopped8191 does not execute the stop action8192 when there are no deployments and associted stop actions8193 stops the environment8194 when there are no corresponding environment record8195 ignores the invalid record8196Sidebars::Projects::Menus::ZentaoMenu8197 behaves like ZenTao menu with CE version8198 #render?8199 when issues integration is disabled8200 returns false8201 when issues integration is enabled8202 returns true8203 renders menu link8204 renders external-link icon8205 renders ZenTao menu8206 does not contain items8207Ci::CompareReportsBaseService8208 #latest?8209 when cache key is latest8210 is expected to be truthy8211 when cache key is outdated8212 is expected to be falsy8213 when cache key is empty8214 is expected to be falsy8215 #execute8216 when base_pipeline is running8217 is expected to eq {:key=>[224, 2023-04-12 14:59:45.984303407 +0000, 225, 2023-04-12 14:59:46.023037772 +0000], :status=>:parsing}8218Resolvers::ProjectPipelineResolver8219 is expected to have nullable GraphQL type Pipeline8220 resolves pipeline for the passed iid8221 resolves pipeline for the passed sha8222 keeps the queries under the threshold for iid8223 keeps the queries under the threshold for sha8224 does not resolve a pipeline outside the project8225 errors when no iid or sha is passed8226 errors when both iid and sha are passed8227 when the pipeline is a dangling pipeline8228 resolves pipeline for the passed iid8229BaseDiscussionEntity8230 exposes correct attributes8231 when is LegacyDiffDiscussion8232 exposes correct attributes8233 when diff file is present8234 exposes diff file attributes8235 when issues are disabled in a project8236 does not show a new issues path8237Ci::JobArtifacts::TrackArtifactReportService8238 # order random8239 #execute8240 when pipeline has test reports8241 tracks the test event using HLLRedisCounter8242 when pipeline does not have test reports8243 does not track the test event8244 does not track the coverage test event8245 when a single user started multiple pipelines with test reports8246 tracks all pipelines using HLLRedisCounter by one user_id for the test event8247 when multiple users started multiple pipelines with test reports8248 tracks all pipelines using HLLRedisCounter by multiple users for test reports8249 when pipeline has coverage test reports8250 tracks the coverage test event using HLLRedisCounter8251 when a single user started multiple pipelines with coverage reports8252 tracks all pipelines using HLLRedisCounter by one user_id for the coverage test event8253 when multiple users started multiple pipelines with coverage test reports8254 tracks all pipelines using HLLRedisCounter by multiple users for coverage test reports8255Gitlab::InstrumentationHelper8256 .add_instrumentation_data8257 includes DB counts8258 logs cpu_s duration8259 logs the process ID8260 logs the worker ID8261 includes DB counts8262 when Gitaly calls are made8263 adds Gitaly and Redis data8264 when Redis calls are made8265 adds Redis data and omits Gitaly data8266 when LDAP requests are made8267 adds LDAP data8268 when the request matched a Rack::Attack safelist8269 logs the safelist name8270 rate-limiting gates8271 when the request did not pass through any rate-limiting gates8272 logs an empty array of gates8273 when the request passed through rate-limiting gates8274 logs an array of gates used8275 when logging memory allocations8276 logs memory usage metrics8277 when replica caught up search was made8278 includes related metrics8279 when only a single counter was updated8280 includes only that counter into logging8281 when there is an uploaded file8282 adds upload data8283 when an api call to the search api is made8284 adds search data8285Ci::DeleteObjectsService8286 #execute8287 deletes records8288 deletes files8289 when trying to execute without records8290 does not change the number of objects8291 when trying to remove the same file multiple times8292 executes successfully8293 with artifacts both ready and not ready for deletion8294 skips records with pick_up_at in the future8295 limits the number of records removed8296 removes records in order8297 updates pick_up_at timestamp8298 does not delete objects for which file deletion has failed8299 with an open database transaction8300 raises an exception and does not remove records8301 #remaining_batches_count8302 when there is less than one batch size8303 is expected to eq 18304 when there is more than one batch size8305 is expected to eq 28306PagesDomainVerificationCronWorker8307 #perform8308 does nothing if the database is read-only8309 enqueues a PagesDomainVerificationWorker for domains needing verification8310 behaves like a pages cronjob scheduling jobs with context8311 schedules the renewal with a context8312 with RequestStore enabled8313 does not cause extra queries for multiple domains8314Sidebars::UserProfile::Menus::ActivityMenu8315 # order random8316 behaves like User profile menu8317 does not contain any sub menu8318 renders the correct link8319 renders the correct title8320 defines correct active route8321 renders if user is logged in8322 when viewed user is blocked8323 when user is not logged in8324 is not allowed to view the menu item8325 when current user has permission8326 is allowed to view the menu item8327 when current user does not have permission8328 is not allowed to view the menu item8329 when viewed user is banned8330 when user is not logged in8331 is not allowed to view the menu item8332 when current user has permission8333 is allowed to view the menu item8334 when current user does not have permission8335 is not allowed to view the menu item8336Banzai::Filter::AssetProxyFilter8337 does not replace if disabled8338 during initialization8339 #initialize_settings8340 supports deprecated whitelist settings8341 when allowlist is empty8342 defaults to the install domain8343 when properly configured8344 replaces img src8345 skips internal images8346 skip relative urls8347 skips single domain8348 skips single domain and ignores url in query string8349 skips wildcarded domain8350BatchNullifyDependentAssociations8351 .dependent_associations_to_nullify8352 returns only associations with `dependent: :nullify` associations8353 #nullify_dependent_associations_in_batches8354 nullifies multiple settings8355 excludes associations8356WorkItems::Widgets::NotificationsService::UpdateService8357 # order random8358 #before_update_in_transaction8359 when update fails8360 when user lack update_subscription permissions8361 behaves like failing to update subscription8362 when user is subscribed with a subscription record8363 does not update the work item's subscription8364 when user is subscribed by being a participant8365 does not create subscription record or change subscription state8366 when notifications params are not present8367 behaves like failing to update subscription8368 when user is subscribed with a subscription record8369 does not update the work item's subscription8370 when user is subscribed by being a participant8371 does not create subscription record or change subscription state8372 when update is successful8373 when subscribing8374 behaves like updating notifications subscription successfully8375 updates existing subscription record8376 when unsubscribing8377 when user is subscribed with a subscription record8378 behaves like updating notifications subscription successfully8379 updates existing subscription record8380 when user is subscribed by being a participant8381 creates a subscription with expected value8382Gitlab::Memory::ReportsDaemon8383 #run_thread8384 with default reports8385 runs them using the given reporter8386 with inactive reports8387 runs only active reports8388 sleep timers logic8389 wakes up every (fixed interval + defined delta), sleeps between reports each cycle8390 #stop_working8391 changes :alive to false8392 timer intervals settings8393 when no settings are set in the environment8394 uses defaults8395 when settings are passed through the environment8396 uses provided values8397Gitlab::ImportExport::AfterExportStrategies::WebUploadStrategy8398 validations8399 only POST and PUT method allowed8400 only allow urls as upload urls8401 #execute8402 when upload succeeds8403 does not remove the exported project file after the upload8404 logs when upload starts and finishes8405 when upload fails8406 stores the export error8407 when object store is disabled8408 reads file from disk and uploads to external url8409 when object store is enabled8410 uploads file as a remote stream8411 when upload as remote stream raises an exception8412 logs the exception and stores the error message8413Resolvers::DesignManagement::DesignAtVersionResolver8414 #resolve8415 returns the specified design8416 when the user cannot see designs8417 generates ResourceNotAvailable8418 the ID belongs to a design on another issue8419 generates ResourceNotAvailable8420 the current object does not constrain the issue8421 returns the object8422Clusters::KubernetesErrorEntity8423 #as_json8424 when connection_error is present8425 is expected to eq {:connection_error=>:connection_error, :metrics_connection_error=>nil, :node_connection_error=>nil}8426 when metrics_connection_error is present8427 is expected to eq {:connection_error=>nil, :metrics_connection_error=>:http_error, :node_connection_error=>nil}8428 when node_connection_error is present8429 is expected to eq {:connection_error=>nil, :metrics_connection_error=>nil, :node_connection_error=>:unknown_error}8430Clusters::Applications::ActivateIntegrationWorker#perform8431 when cluster exists8432 prometheus integration8433 with cluster type: group8434 ensures Prometheus integration is activated8435 with cluster type: project8436 ensures Prometheus integration is activated8437 with cluster type: instance8438 ensures Prometheus integration is activated8439 when cluster does not exist8440 does not raise Record Not Found error8441Ide::TerminalConfigService8442 #execute8443 content is not valid8444 returns an error8445 terminal not defined8446 returns success8447 terminal enabled8448 returns success8449 custom terminal enabled8450 returns success8451WorkItems::Widgets::AssigneesService::UpdateService8452 #before_update_in_transaction8453 updates the assignees and sets updated_at to the current time8454 when passing an empty array8455 removes existing assignees8456 when user does not have access8457 does not update the assignees8458 when multiple assignees are given8459 when work item allows multiple assignees8460 sets all the given assignees8461 when work item does not allow multiple assignees8462 only sets the first assignee8463 when assignee does not have access to the work item8464 does not set the assignee8465 when assignee ids are the same as the existing ones8466 does not touch updated_at8467 when widget does not exist in new type8468 resets the work item's assignees8469Gitlab::Ci::Pipeline::Seed::Pipeline8470 #stages8471 returns the stage resources8472 #size8473 returns the number of jobs8474 #errors8475 when attributes are valid8476 returns nil8477 when attributes are not valid8478 returns the errors8479 #deployments_count8480 counts the jobs having an environment associated8481 #root_variables8482 returns root_variables8483Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged8484 behaves like value stream analytics event8485 is expected to be a kind of String8486 is expected to be a kind of Symbol8487 is expected to include ApplicationRecord(abstract)8488 is expected to respond to #timestamp_projection8489 is expected to respond to #html_description8490 is expected to be a kind of Array8491 #apply_query_customization8492 expects an ActiveRecord::Relation object as argument and returns a modified version of it8493 #hash_code8494 returns a hash that uniquely identifies an event8495 does not differ when the same object is built with the same params8496 behaves like LEFT JOIN-able value stream analytics event8497 can use the event as LEFT JOIN8498 when looking at the record with data8499 contains the timestamp expression8500 when looking at the record without data8501 returns nil for the timestamp expression8502Import::GitlabProjects::FileAcquisitionStrategies::RemoteFile8503 validation8504 is expected to be valid8505 file_url validation8506 validates the file_url scheme8507 when localhost urls are not allowed8508 validates the file_url8509 when the HTTP request fails to recover the headers8510 adds the error message8511 when request is not from an S3 server8512 validates the remote content-length8513 validates the remote content-type8514 when request is from an S3 server8515 does not validate the remote content-length or content-type8516 #project_params8517 returns import_export_upload in the params8518Gitlab::HotlinkingDetector8519 .intercept_hotlinking?8520 hotlinked as media8521 return_value: false, accept_header: "*/*"8522 is expected to equal false8523 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"8524 is expected to equal false8525 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"8526 is expected to equal false8527 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"8528 is expected to equal false8529 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"8530 is expected to equal false8531 return_value: false, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"8532 is expected to equal false8533 return_value: false, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"8534 is expected to equal false8535 return_value: false, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"8536 is expected to equal false8537 return_value: true, accept_header: "image/webp,*/*"8538 is expected to equal true8539 return_value: true, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"8540 is expected to equal true8541 return_value: true, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"8542 is expected to equal true8543 return_value: true, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"8544 is expected to equal true8545 return_value: true, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"8546 is expected to equal true8547 return_value: true, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"8548 is expected to equal true8549 return_value: true, accept_header: "text/css,*/*;q=0.1"8550 is expected to equal true8551 return_value: true, accept_header: "text/css"8552 is expected to equal true8553 return_value: true, accept_header: "text/css,*/*;q=0.1"8554 is expected to equal true8555 hotlinked as a script8556 return_value: false, fetch_mode: "navigate"8557 is expected to equal false8558 return_value: false, fetch_mode: "nested-navigate"8559 is expected to equal false8560 return_value: false, fetch_mode: "same-origin"8561 is expected to equal false8562 return_value: true, fetch_mode: "cors"8563 is expected to equal true8564 return_value: true, fetch_mode: "no-cors"8565 is expected to equal true8566 return_value: true, fetch_mode: "websocket"8567 is expected to equal true8568Gitlab::WorkItems::WorkItemHierarchy8569 # order random8570 #base_and_ancestors8571 includes the base and its ancestors8572 can find ancestors upto a certain level8573 when same_type option is used8574 includes the base and its ancestors8575 hierarchy_order option8576 for :asc8577 orders by child to ancestor8578 for :desc8579 orders by ancestor to child8580 #base_and_descendants8581 includes the base and its descendants8582 when same_type option is used8583 includes the base and its ancestors8584 when with_depth is true8585 includes depth in the results8586Projects::Prometheus::AlertsFinder8587 with params8588 #execute8589 with project8590 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>, #<PrometheusAlert id: 2, created_at: "2023-04-12 15:00:39.275577486 +0000", updated_at: "2023-04-12 15:00:39.275577486 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 2, runbook_url: nil>, #<PrometheusAlert id: 3, created_at: "2023-04-12 15:00:39.286715685 +0000", updated_at: "2023-04-12 15:00:39.286715685 +0000", threshold: 1.0, operator: "gt", environment_id: 18, project_id: 778, prometheus_metric_id: 3, runbook_url: nil>]8591 with matching metric8592 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>]8593 with matching metric id8594 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>]8595 with project non-specific metric8596 is expected to be empty8597 with environment8598 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>, #<PrometheusAlert id: 2, created_at: "2023-04-12 15:00:39.275577486 +0000", updated_at: "2023-04-12 15:00:39.275577486 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 2, runbook_url: nil>]8599 with matching metric8600 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>]8601 with environment non-specific metric8602 is expected to be empty8603 with matching project and environment8604 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>, #<PrometheusAlert id: 2, created_at: "2023-04-12 15:00:39.275577486 +0000", updated_at: "2023-04-12 15:00:39.275577486 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 2, runbook_url: nil>]8605 with matching metric8606 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>]8607 with environment non-specific metric8608 is expected to be empty8609 with matching id8610 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>]8611 with a nil id8612 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>, #<PrometheusAlert id: 2, created_at: "2023-04-12 15:00:39.275577486 +0000", updated_at: "2023-04-12 15:00:39.275577486 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 2, runbook_url: nil>]8613 with non-matching project-environment pair8614 is expected to be empty8615 with id8616 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>]8617 with multiple ids8618 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-04-12 15:00:39.245682139 +0000", updated_at: "2023-04-12 15:00:39.245682139 +0000", threshold: 1.0, operator: "gt", environment_id: 17, project_id: 778, prometheus_metric_id: 1, runbook_url: nil>, #<PrometheusAlert id: 4, created_at: "2023-04-12 15:00:39.307872553 +0000", updated_at: "2023-04-12 15:00:39.307872553 +0000", threshold: 1.0, operator: "gt", environment_id: 16, project_id: 779, prometheus_metric_id: 4, runbook_url: nil>]8619 with non-matching id8620 is expected to be empty8621 without params8622 raises an error8623Mutations::Branches::Create8624 #resolve8625 raises an error if the resource is not accessible to the user8626 when the user can create a branch8627 when service successfully creates a new branch8628 returns a new branch8629 when service fails to create a new branch8630 is expected to be nil8631 is expected to eq ["Branch already exists"]8632MergeRequestWidgetCommitEntity8633 as json8634 is expected to eq "Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"8635 is expected to eq "b83d6e39"8636 is expected to eq "Merge branch 'branch-merged' into 'master'"8637MergeRequest::MetricsFinder8638 when target project is missing8639 is expected to be empty8640 when the user is not part of the project8641 is expected to be empty8642 when user is part of the project8643 returns merge request records8644 excludes not merged records8645 when only merged_before is given8646 is expected to eq [#<MergeRequest::Metrics merge_request_id: 141, latest_build_started_at: nil, latest_build_finished_at: nil, first_deployed_to_production_at: nil, merged_at: "2020-05-01 00:00:00.000000000 +0000", created_at: "2023-04-12 15:00:46.066668000 +0000", updated_at: "2023-04-12 15:00:47.257987767 +0000", pipeline_id: nil, merged_by_id: nil, latest_closed_by_id: nil, latest_closed_at: nil, first_comment_at: nil, first_commit_at: nil, last_commit_at: nil, diff_size: nil, modified_paths_size: nil, commits_count: nil, first_approved_at: nil, first_reassigned_at: nil, added_lines: nil, removed_lines: nil, target_project_id: 784, id: 293>]8647 when only merged_after is given8648 is expected to eq [#<MergeRequest::Metrics merge_request_id: 141, latest_build_started_at: nil, latest_build_finished_at: nil, first_deployed_to_production_at: nil, merged_at: "2020-05-01 00:00:00.000000000 +0000", created_at: "2023-04-12 15:00:46.066668000 +0000", updated_at: "2023-04-12 15:00:47.257987767 +0000", pipeline_id: nil, merged_by_id: nil, latest_closed_by_id: nil, latest_closed_at: nil, first_comment_at: nil, first_commit_at: nil, last_commit_at: nil, diff_size: nil, modified_paths_size: nil, commits_count: nil, first_approved_at: nil, first_reassigned_at: nil, added_lines: nil, removed_lines: nil, target_project_id: 784, id: 293>]8649 when no records matching the date range8650 is expected to be empty8651InvalidGpgSignatureUpdateWorker8652 when GpgKey is found8653 calls NotificationService.new.run8654 when GpgKey is not found8655 does not raise errors8656 does not call NotificationService.new.run8657Gitlab::Git::CrossRepo8658 # order random8659 #execute8660 when executed within a single repository8661 does not fetch from another repo8662 when executed across two repositories8663 and target ref exists in source repo8664 does not fetch from another repo8665 and target ref does not exist in source repo8666 fetches from the target to a temporary ref8667 and target ref does not exist in target repo8668 returns nil8669Projects::BlameService8670 #blame8671 returns a correct Gitlab::Blame object8672 Pagination range calculation8673 with page = 18674 is expected to eq 1..28675 with page = 28676 is expected to eq 3..48677 with page = 3 (overlimit)8678 is expected to eq 1..28679 with page = 0 (incorrect)8680 is expected to eq 1..28681 when user disabled the pagination8682 is expected to be nil8683 when feature flag disabled8684 is expected to be nil8685 #pagination8686 returns a pagination object8687 when user disabled the pagination8688 is expected to be nil8689 when feature flag disabled8690 is expected to be nil8691 when per_page is above the global max per page limit8692 returns a correct pagination object8693 Pagination attributes8694 page: 1, current_page: 1, total_pages: 28695 returns the correct pagination attributes8696 page: 2, current_page: 2, total_pages: 28697 returns the correct pagination attributes8698 page: 3, current_page: 1, total_pages: 28699 returns the correct pagination attributes8700 page: 0, current_page: 1, total_pages: 28701 returns the correct pagination attributes8702Ci::CancelRedundantPipelinesWorker8703 # order random8704 #perform8705 calls cancel redundant pipeline service8706 if pipeline is deleted8707 does not call redundant pipeline service8708 interacting with previous pending pipelines8709 behaves like an idempotent worker8710 is labeled as idempotent8711 performs multiple times sequentially without raising an exception8712 cancels the previous pending pipeline8713JsonSchemaValidator8714 #validates_each8715 when filename is set8716 when data is valid8717 returns no errors8718 when data is invalid8719 returns json schema is invalid8720 when filename is not set8721 raises an ArgumentError8722 when filename is invalid8723 raises a FilenameError8724 hash_conversion option8725 when hash_conversion is enabled8726 returns no errors8727Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter8728 .track_work_item_created_action8729 behaves like work item unique counter8730 when track_work_items_activity FF is enabled8731 tracks a unique event only once8732 when author is nil8733 behaves like counter that does not track the event8734 does not track the event8735 when track_work_items_activity FF is disabled8736 behaves like counter that does not track the event8737 does not track the event8738 .track_work_item_title_changed_action8739 behaves like work item unique counter8740 when track_work_items_activity FF is enabled8741 tracks a unique event only once8742 when author is nil8743 behaves like counter that does not track the event8744 does not track the event8745 when track_work_items_activity FF is disabled8746 behaves like counter that does not track the event8747 does not track the event8748 .track_work_item_date_changed_action8749 behaves like work item unique counter8750 when track_work_items_activity FF is enabled8751 tracks a unique event only once8752 when author is nil8753 behaves like counter that does not track the event8754 does not track the event8755 when track_work_items_activity FF is disabled8756 behaves like counter that does not track the event8757 does not track the event8758 .track_work_item_labels_changed_action8759 behaves like work item unique counter8760 when track_work_items_activity FF is enabled8761 tracks a unique event only once8762 when author is nil8763 behaves like counter that does not track the event8764 does not track the event8765 when track_work_items_activity FF is disabled8766 behaves like counter that does not track the event8767 does not track the event8768 .track_work_item_milestone_changed_action8769 behaves like work item unique counter8770 when track_work_items_activity FF is enabled8771 tracks a unique event only once8772 when author is nil8773 behaves like counter that does not track the event8774 does not track the event8775 when track_work_items_activity FF is disabled8776 behaves like counter that does not track the event8777 does not track the event8778Gitlab::Mailgun::WebhookProcessors::MemberInvites8779 #execute8780 marks the member invite email success as false8781 when invite token is not found in payload8782 does not change member status and logs an error8783 when member can not be found8784 behaves like does nothing8785 does not change member status8786 when failure is temporary8787 behaves like does nothing8788 does not change member status8789 when email is not a member invite8790 behaves like does nothing8791 does not change member status8792Gitlab::Ci::Config::Entry::Inherit::Default8793 validations8794 config: true, valid: true8795 is expected to eq true8796 config: false, valid: true8797 is expected to eq true8798 config: ["image"], valid: true8799 is expected to eq true8800 config: ["unknown"], valid: false8801 is expected to eq false8802 config: [:image], valid: false8803 is expected to eq false8804 config: [true], valid: false8805 is expected to eq false8806 config: "string", valid: false8807 is expected to eq false8808 #inherit?8809 config: true, inherit: true8810 is expected to eq true8811 config: false, inherit: false8812 is expected to eq false8813 config: ["image"], inherit: true8814 is expected to eq true8815 config: ["before_script"], inherit: false8816 is expected to eq false8817Gitlab::Middleware::CompressedJson8818 #call8819 with collector route8820 behaves like decompress middleware8821 replaces input with a decompressed content8822 with no Content-Type8823 behaves like decompress middleware8824 replaces input with a decompressed content8825 behaves like decompress middleware8826 replaces input with a decompressed content8827 with packages route8828 with instance level endpoint8829 with npm advisory bulk url8830 behaves like decompress middleware8831 replaces input with a decompressed content8832 behaves like decompress middleware8833 replaces input with a decompressed content8834 with npm quick audit url8835 behaves like decompress middleware8836 replaces input with a decompressed content8837 behaves like decompress middleware8838 replaces input with a decompressed content8839 with project level endpoint8840 with npm advisory bulk url8841 behaves like decompress middleware8842 replaces input with a decompressed content8843 behaves like decompress middleware8844 replaces input with a decompressed content8845 behaves like handles non integer project ID8846 with a URL-encoded project ID8847 behaves like decompress middleware8848 replaces input with a decompressed content8849 with a non URL-encoded project ID8850 behaves like passes input8851 keeps the original input8852 with a blank project ID8853 behaves like passes input8854 keeps the original input8855 with npm quick audit url8856 behaves like decompress middleware8857 replaces input with a decompressed content8858 behaves like decompress middleware8859 replaces input with a decompressed content8860 behaves like handles non integer project ID8861 with a URL-encoded project ID8862 behaves like decompress middleware8863 replaces input with a decompressed content8864 with a non URL-encoded project ID8865 behaves like passes input8866 keeps the original input8867 with a blank project ID8868 behaves like passes input8869 keeps the original input8870 with some other route8871 behaves like passes input8872 keeps the original input8873 payload is too large8874 reads only limited size8875Gitlab::InternalPostReceive::Response8876 #add_merge_request_urls8877 when there are urls_data8878 adds a message for each merge request URL8879 #add_merge_request_url8880 when :new_merge_request is false8881 adds a basic message to view the existing merge request8882 when :new_merge_request is true8883 adds a basic message to create a new merge request8884 #add_basic_message8885 when text is present8886 adds a basic message8887 when text is blank8888 does not add a message8889 #add_alert_message8890 when text is present8891 adds an alert message8892 when text is blank8893 does not add a message8894 #reference_counter_decreased8895 initially8896 reference_counter_decreased is set to false8897 #reference_counter_decreased=8898 when the argument is truthy8899 reference_counter_decreased is truthy8900 when the argument is falsey8901 reference_counter_decreased is falsey8902Ci::PipelineScheduleVariable8903 behaves like CI variable8904 is expected to includes the Ci::HasVariable module8905 strips whitespaces when assigning key8906 can convert to runner variable8907 variable type8908 defines variable types8909 defaults variable type to env_var8910 supports variable type file8911Types::Namespace::PackageSettingsType8912 is expected to eq "PackageSettings"8913 is expected to eq "Namespace-level Package Registry settings"8914 is expected to require graphql authorizations :admin_package8915 includes package setting fields8916 maven_duplicate_exception_regex field8917 is expected to have graphql type Types::UntrustedRegexp8918Gitlab::Ci::Config::Entry::Jobs8919 .all_types8920 is expected to include Gitlab::Ci::Config::Entry::Hidden8921 is expected to include Gitlab::Ci::Config::Entry::Job8922 is expected to include Gitlab::Ci::Config::Entry::Bridge8923 .find_type8924 name: :".hidden_job", type: Gitlab::Ci::Config::Entry::Hidden8925 is expected to eq Gitlab::Ci::Config::Entry::Hidden8926 name: :".hidden_bridge", type: Gitlab::Ci::Config::Entry::Hidden8927 is expected to eq Gitlab::Ci::Config::Entry::Hidden8928 name: :regular_job, type: Gitlab::Ci::Config::Entry::Job8929 is expected to eq Gitlab::Ci::Config::Entry::Job8930 name: :my_trigger, type: Gitlab::Ci::Config::Entry::Bridge8931 is expected to eq Gitlab::Ci::Config::Entry::Bridge8932 name: :invalid_job, type: nil8933 is expected to eq nil8934 validations8935 when entry config value is correct8936 #valid?8937 is valid8938 when entry value is not correct8939 #errors8940 incorrect config value type8941 returns error about incorrect type8942 when job is invalid8943 reports error8944 when the job name cannot be cast directly to a symbol8945 properly parses the job name without raising a NoMethodError8946 when no visible jobs present8947 returns error about no visible jobs defined8948 .compose!8949 when valid job entries composed8950 #value8951 returns key value8952 #descendants8953 creates valid descendant nodes8954 #value8955 returns value of visible jobs only8956Files::BaseService8957 # order random8958 with an author_email in params and namespace_commit_email8959 gives precedence to the parameter value for @author_email8960 with a group namespace_commit_email8961 sets @author_email to the group namespace_commit_email8962 with a project and group namespace_commit_email8963 sets @author_email to the project namespace_commit_email8964 with no namespace_commit_emails8965 sets @author_email to user default email8966 with a project namespace_commit_email8967 sets @author_email to the project namespace_commit_email8968Gitlab::RepositoryUrlBuilder8969 .build8970 factory: :project, path_generator: ->(project) { project.full_path }8971 when passing SSH protocol8972 returns the SSH URL to the repository8973 when passing HTTP protocol8974 returns the HTTP URL to the repo without a username8975 includes the custom HTTP clone root if set8976 when passing an unsupported protocol8977 raises an exception8978 factory: :project_snippet, path_generator: ->(snippet) { "#{snippet.project.full_path}/snippets/#{snippet.id}" }8979 when passing SSH protocol8980 returns the SSH URL to the repository8981 when passing HTTP protocol8982 returns the HTTP URL to the repo without a username8983 includes the custom HTTP clone root if set8984 when passing an unsupported protocol8985 raises an exception8986 factory: :project_wiki, path_generator: ->(wiki) { "#{wiki.container.full_path}.wiki" }8987 when passing SSH protocol8988 returns the SSH URL to the repository8989 when passing HTTP protocol8990 returns the HTTP URL to the repo without a username8991 includes the custom HTTP clone root if set8992 when passing an unsupported protocol8993 raises an exception8994 factory: :personal_snippet, path_generator: ->(snippet) { "snippets/#{snippet.id}" }8995 when passing SSH protocol8996 returns the SSH URL to the repository8997 when passing HTTP protocol8998 returns the HTTP URL to the repo without a username8999 includes the custom HTTP clone root if set9000 when passing an unsupported protocol9001 raises an exception9002Packages::CleanupPackageFileWorker9003 #perform_work9004 with no work to do9005 is expected to be nil9006 with work to do9007 deletes the oldest package file pending destruction based on id9008 with a duplicated PyPI package file9009 deletes one of the duplicates9010 with a package file to destroy9011 with an error during the destroy9012 handles the error9013 when trying to destroy a destroyed record9014 handles the error9015 removing the last package file9016 deletes the package file and the package9017 #max_running_jobs9018 is expected to eq 59019 #remaining_work_count9020 is expected to eq 29021Packages::CreatePackageFileService9022 #execute9023 with valid params9024 creates a new package file9025 behaves like assigns build to package file9026 with build info9027 assigns the pipeline to the package9028 creates a new PackageFileBuildInfo record9029 file is missing9030 raises an error9031Support::AbilityCheck9032 # order random9033 checking ability9034 with valid direct ability9035 policy ability is found9036 with empty TODO yaml9037 policy ability is found9038 with non-Hash TODO yaml9039 policy ability is found9040 with unreachable ability9041 policy ability is not found and emits a warning9042 when ignored in TODO YAML9043 policy ability is not found without warning9044 with unknown ability9045 policy ability is not found and emits a warning9046 with delegated ability9047 policy ability is found9048projects/_flash_messages9049 when current_user has read_code permission9050 when user has a terraform state9051 doesn't show the terraform notification banner9052 when there are no .tf files in the repository9053 doesn't show the terraform notification banner9054 when .tf files are present in the repository and user does not have any terraform states9055 shows the terraform notification banner9056DisallowTwoFactorForGroupWorker9057 updates group9058 updates group members9059JiraConnect::GroupEntity9060 contains all necessary elements of the group9061Gitlab::SafeRequestPurger9062 .execute9063 purges an entry from the store9064 #execute9065 when request store is active9066 purges an entry from the store9067 when there are multiple resource_ids to purge9068 purges an entry from the store9069 when there is no matching resource_ids9070 purges an entry from the store9071 when request store is not active9072 does offer the ability to interact with data store9073Ci::PipelineArtifacts::CreateQualityReportWorker9074 #perform9075 when pipeline exists9076 calls pipeline codequality report service9077 behaves like an idempotent worker9078 is labeled as idempotent9079 performs multiple times sequentially without raising an exception9080 does not create another pipeline artifact if already has one9081 when pipeline does not exist9082 does not call pipeline codequality report service9083MemberInvitationReminderEmailsWorker9084 #perform9085 executes the invitation reminder email service9086MemberSerializer9087 group member9088 handles last group owner assignment9089 behaves like members.json9090 is expected to match schema "members"9091 project member9092 does not invoke group owner assignment9093 behaves like members.json9094 is expected to match schema "members"9095Types::Ci::JobNeedUnion9096 .resolve_type9097 when resolving a build need9098 resolves to a BuildNeedType9099 when resolving a build9100 resolves to a JobType9101 when resolving an unrelated object9102 raises a TypeNotSupportedError for string object9103 raises a TypeNotSupportedError for nil object9104 raises a TypeNotSupportedError for other CI object9105Mutations::DesignManagement::Move9106 #resolve9107 when the feature is not available9108 behaves like resource not available9109 raises an error9110 When current_design cannot be found9111 behaves like resource not available9112 raises an error9113 When previous_design cannot be found9114 behaves like resource not available9115 raises an error9116 When next_design cannot be found9117 behaves like resource not available9118 raises an error9119 the service runs9120 raising an error9121 reports the service-level error9122 successfully9123 reports the service-level error9124API::Entities::BasicProjectDetails9125 #default_branch9126 delegates to Project#default_branch_or_main9127 anonymous user9128 is not included9129 #readme_url #forks_count9130 public project with repository is accessible by the user9131 current_user: member_user, project: project_without_restriction9132 exposes readme_url and forks_count9133 current_user: non_member_user, project: project_without_restriction9134 exposes readme_url and forks_count9135 current_user: nil, project: project_without_restriction9136 exposes readme_url and forks_count9137 current_user: member_user, project: project_with_repository_restriction9138 exposes readme_url and forks_count9139 public project with repository is not accessible by the user9140 current_user: non_member_user, project: project_with_repository_restriction9141 does not expose readme_url and forks_count9142 current_user: nil, project: project_with_repository_restriction9143 does not expose readme_url and forks_count9144AuthorizedProjectUpdate::PeriodicRecalculateService9145 #execute9146 calls AuthorizedProjectUpdate::UserRefreshOverUserRangeWorker9147CreateNoteDiffFileWorker9148 #perform9149 creates diff file9150 when the supplied diff_note_id doesn't belong to an existing DiffNote9151 returns nil without raising an error9152 when called with a missing diff_note id9153 returns nil without creating diff file9154Gitlab::TerraformRegistryToken9155 .from_token9156 with a deploy token9157 returns the correct token9158 with a job9159 returns the correct token9160 with a personal access token9161 returns the correct token9162 behaves like a gitlab jwt token9163 #secret9164 is expected to eq "71632dcc3e0e97309bfc771c789efefc4d1565a946ceaafb3e986503a75d6176"9165 #decode9166 with a custom payload9167 returns the correct token9168 returns nil and logs the exception after expiration9169ErrorTrackingIssueLinkWorker9170 #perform9171 creates a link between an issue and a Sentry issue in Sentry9172 when issue is unavailable9173 behaves like makes no external API requests9174 takes no action9175 when project does not have error tracking configured9176 behaves like makes no external API requests9177 takes no action9178 when the issue is not linked to a Sentry issue in GitLab9179 behaves like makes no external API requests9180 takes no action9181 when Sentry disabled the GitLab integration9182 behaves like attempts to create a link via plugin9183 takes no action9184 when Sentry the GitLab integration is for another project9185 behaves like attempts to create a link via plugin9186 takes no action9187 when Sentry repos request errors9188 falls back to creating a link via plugin9189UserPresenter9190 #web_path9191 is expected to eq "/user756"9192 #web_url9193 is expected to eq "http://localhost/user756"9194 #can?9195 forwards call to the given user9196 Gitpod9197 Gitpod enabled for application9198 #preferences_gitpod_path9199 is expected to eq "/-/profile/preferences#user_gitpod_enabled"9200 #profile_enable_gitpod_path9201 is expected to eq "/-/profile?user%5Bgitpod_enabled%5D=true"9202 Gitpod disabled for application9203 #preferences_gitpod_path9204 is expected to eq nil9205 #profile_enable_gitpod_path9206 is expected to eq nil9207 #saved_replies9208 when feature is disabled9209 is expected to eq #<ActiveRecord::Relation []>9210 when feature is enabled9211 when user has no permission to read saved replies9212 is expected to eq #<ActiveRecord::Relation []>9213 when user has permission to read saved replies9214 is expected to eq [#<Users::SavedReply id: 1, user_id: 1403, created_at: "2023-04-12 15:01:42.896681870 +0000", updated_at: "2023-04-12 15:01:42.896681870 +0000", name: "saved_reply_1", content: [FILTERED]>]9215Banzai::Filter::InlineDiffFilter9216 adds inline diff span tags for deletions when using square brackets9217 adds inline diff span tags for deletions when using curley braces9218 does not add inline diff span tags when a closing tag is not provided9219 adds inline span tags for additions when using square brackets9220 adds inline span tags for additions when using curley braces9221 does not add inline diff span tags when a closing addition tag is not provided9222 does not add inline diff span tags when the tags do not match9223 prevents user-land html being injected9224 preserves content inside pre tags9225 preserves content inside code tags9226 preserves content inside tt tags9227Gitlab::Ci::Config::Entry::Services9228 when configuration is valid9229 #valid?9230 is valid9231 #value9232 returns valid array9233 when configuration is invalid9234 #valid?9235 is invalid9236 when configuration has ports9237 when with_image_ports metadata is not enabled9238 #valid?9239 is not valid9240 when with_image_ports metadata is enabled9241 #valid?9242 is valid9243 #value9244 returns valid array9245 services alias9246 when they are not unique9247 #valid?9248 is invalid9249 when they are unique9250 #valid?9251 is valid9252 when one of the duplicated alias is in a service without ports9253 is valid9254 when there are not any ports9255 is valid9256Types::Ci::PipelineMergeRequestEventTypeEnum9257 is expected to eq "PipelineMergeRequestEventType"9258 has specific values9259Gitlab::UsageMetricGenerator9260 Creating metric instrumentation files9261 creates CE metric instrumentation files using the template9262 with EE flag true9263 creates EE metric instrumentation files using the template9264 for database type9265 creates the metric instrumentation file using the template9266 for numbers type9267 creates the metric instrumentation file using the template9268 with type option missing9269 raises an ArgumentError9270 with type option value not included in approved superclasses9271 raises an ArgumentError9272 without operation for database metric9273 raises an ArgumentError9274 with wrong operation for database metric9275 raises an ArgumentError9276 without operation for numbers metric9277 raises an ArgumentError9278 with wrong operation for numbers metric9279 raises an ArgumentError9280Mutations::Clusters::AgentTokens::Revoke9281 is expected to eq "ClusterAgentTokenRevoke"9282 is expected to require graphql authorizations :admin_cluster9283 #resolve9284 user does not have permission9285 does not revoke the token9286 user has permission9287 revokes the token9288Gitlab::Ci::Status::Build::Skipped9289 #illustration9290 is expected to include :image, :size, and :title9291 .matches?9292 when build is skipped9293 is a correct match9294 when build is not skipped9295 does not match9296DiscussionNote9297 #to_ability_name9298 is expected to eq "note"9299Gitlab::Email::Message::InProductMarketing::Team9300 public methods9301 series: 09302 returns value for series9303 #progress9304 on gitlab.com9305 is expected to include "This is email 2 of 4 in the Team series"9306 not on gitlab.com9307 is expected to include "This is email 2 of 4 in the Team series" and "http://localhost/-/profile/notifications"9308 series: 19309 returns value for series9310 #progress9311 on gitlab.com9312 is expected to include "This is email 3 of 4 in the Team series"9313 not on gitlab.com9314 is expected to include "This is email 3 of 4 in the Team series" and "http://localhost/-/profile/notifications"9315 with series 29316 returns value for series9317 #progress9318 on gitlab.com9319 is expected to include "This is email 4 of 4 in the Team series"9320 not on gitlab.com9321 is expected to include "This is email 4 of 4 in the Team series" and "http://localhost/-/profile/notifications"9322notify/changed_milestone_email.html.haml9323 milestone without start and due dates9324 renders without date range9325 milestone with start and due dates9326 renders with date range9327Gitlab::Utils::JsonSizeEstimator9328 # order random9329 is expected to match json bytesize of [[[]]]9330 calls #to_s on unknown object9331 is expected to match json bytesize of {100=>500}9332 is expected to match json bytesize of {:a=>{}}9333 is expected to match json bytesize of {"狸"=>"狸"}9334 is expected to match json bytesize of 1, "str", 3.14, and ["str", {:a=>-1}]9335 is expected to match json bytesize of9336 is expected to match json bytesize of {}9337 is expected to match json bytesize of {:a=>{:b=>{:c=>[1, 2, 3], :e=>2023-04-12 14:38:02.320375733 +0000, :f=>nil}}}9338 is expected to match json bytesize of nil9339projects/branches/index.html.haml9340 renders list of active and stale branches9341 when Gitaly is unavailable9342 renders an error9343MergeRequests::Mergeability::CheckOpenStatusService9344 #execute9345 when the merge request is open9346 returns a check result with status success9347 when the merge request is not open9348 returns a check result with status failed9349 #skip?9350 returns false9351 #cacheable?9352 returns false9353Gitlab::Database::Migration9354 .[]9355 version: 1.09356 inherits from ActiveRecord::Migration[6.1]9357 includes migration helpers version 29358 includes LockRetriesConcern9359 unknown version9360 raises an error9361 .current_version9362 includes current ActiveRecord migration class9363 Gitlab::Database::Migration::LockRetriesConcern9364 when not explicitly called9365 does not disable lock retries by default9366 when explicitly disabled9367 does not disable lock retries by default9368google cloud profiler9369 # order random9370 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is set to true9371 when GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID is not set9372 is expected not to receive new(*(any args)) 0 times9373 when GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID is set9374 when run in Puma context9375 calls the agent9376 when run in Sidekiq context9377 is expected not to receive new(*(any args)) 0 times9378 when run in another context9379 is expected not to receive new(*(any args)) 0 times9380 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is not set9381 is expected not to receive new(*(any args)) 0 times9382 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is set to false9383 is expected not to receive new(*(any args)) 0 times9384Gitlab::FeatureCategories9385 #valid?9386 returns true if category is known9387 #get!9388 is expected to eq "foo"9389 when category does not exist9390 is expected to raise RuntimeError9391 when on production9392 is expected to eq "unknown"9393 #from_request9394 returns category from request when valid, otherwise returns nil9395 when request is not verified9396 returns nil9397 #categories9398 returns a set of the given categories9399 .load_from_yaml9400 creates FeatureCategories from feature_categories.yml file9401 .default9402 returns a memoization of load_from_yaml9403Taskable9404 .get_tasks9405 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"- [x]\", source=\"Second item\">", "#<struct TaskList::Item checkbox_text=\"* [x]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"* [ ]\", source=\"Second item\">"]9406 with single line comments9407 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"only task item\">"]9408 #task_list_items9409 issuable_type: :issue9410 when description is present9411 gets tasks from markdown9412 when description is blank9413 returns empty array9414 does not try to get tasks from markdown9415 issuable_type: :merge_request9416 when description is present9417 gets tasks from markdown9418 when description is blank9419 returns empty array9420 does not try to get tasks from markdown9421Sidebars::Concerns::SuperSidebarPanel9422 # order random9423 #transform_old_menus9424 converts "solo" top-level Menu entry to Menu Item9425 drops "solo" top-level Menu entries, if they serialize to nil9426 for Menus with Menu Items9427 adds Menu Items to defined super_sidebar_parent9428 replaces placeholder Menu Items in the defined super_sidebar_parent9429 considers Menu Items uncategorized if super_sidebar_parent is nil9430 considers Menu Items uncategorized if super_sidebar_parent cannot be found9431 considers Menu Items deleted if super_sidebar_parent is Sidebars::NilMenuItem9432 #pick_from_old_menus9433 removes items with #pick_into_super_sidebar? from a list and adds them to the panel menus9434RuboCop::Cop::Gitlab::ModuleWithInstanceVariables9435 # order random9436 when source is using simple or ivar assignment9437 behaves like not registering offense9438 does not register offenses9439 when source is using or ivar assignment with something else9440 behaves like registering offense9441 registers an offense when instance variable is used in a module9442 when source is using simple or ivar assignment with other ivar9443 behaves like registering offense9444 registers an offense when instance variable is used in a module9445 when source is a nested module9446 behaves like registering offense9447 registers an offense when instance variable is used in a module9448 when source is a nested module with multiple offenses9449 behaves like registering offense9450 registers an offense when instance variable is used in a module9451 when source is a regular module9452 behaves like registering offense9453 registers an offense when instance variable is used in a module9454 when source is defining initialize9455 behaves like not registering offense9456 does not register offenses9457 when source is using simple ivar9458 behaves like not registering offense9459 does not register offenses9460Terraform::States::TriggerDestroyService9461 #execute9462 marks the state as deleted and schedules a cleanup worker9463 within a database transaction9464 does not raise an EnqueueFromTransactionError9465 user does not have permission9466 does not modify the state9467 state is locked9468 does not modify the state9469Import::PrepareService9470 when file is uploaded correctly9471 raises NotImplemented error for worker9472 when a job is enqueued9473 raises NotImplemented error for success_message when a job is enqueued9474 returns a success respnse when a success_message is implemented9475 when file upload fails9476 returns an error message9477Gitlab::GithubImport::Representation::PullRequests::ReviewRequests9478 # order random9479 .from_json_hash9480 behaves like Review requests9481 returns an instance of Review Request9482 for returned Review Requests9483 includes merge request id9484 includes reviewers9485 .from_api_response9486 behaves like Review requests9487 returns an instance of Review Request9488 for returned Review Requests9489 includes merge request id9490 includes reviewers9491Integrations::ResetSecretFields9492 behaves like Integrations::ResetSecretFields9493 #exposing_secrets_fields9494 returns an array of strings9495 #reset_secret_fields?9496 returns false if no exposing field has changed9497 returns true if any exposing field has changed9498 validation callback9499 when an exposing field has changed9500 clears all secret fields9501 when a secret field has been updated9502 does not clear this secret field9503 when a secret field has been updated with the same value9504 does not clear this secret field9505 when no exposing field has changed9506 does not clear any secret fields9507Gitlab::Favicon9508 .main9509 defaults to favicon.png9510 has yellow favicon for canary9511 uses the custom favicon if a favicon appearance is present9512 asset host9513 returns a relative url when the asset host is not configured9514 returns a full url when the asset host is configured9515 .status_overlay9516 returns the overlay for the status9517 .available_status_names9518 returns the available status names9519Gitlab::Auth::Ldap::AuthHash9520 without overridden attributes9521 has the correct username9522 has the correct name9523 with overridden attributes9524 has the correct username9525 has the correct name9526 #uid9527 when there is extraneous (but valid) whitespace9528 removes the extraneous whitespace9529 when there are upper case characters9530 downcases9531 #username9532 if lowercase_usernames setting is9533 enabled the username attribute is lower cased9534 disabled the username attribute is not lower cased9535Gitlab::ProjectTransfer9536 #move_project9537 moves project upload to another namespace9538 #move_namespace9539 when moving namespace from root into another namespace9540 moves namespace projects' upload9541 when moving namespace from one parent to another9542 moves namespace projects' upload9543 when moving namespace from having a parent to root9544 moves namespace projects' upload9545 #rename_project9546 renames project9547 #rename_namespace9548 renames namespace9549Gitlab::Ci::Parsers::Sbom::CyclonedxProperties9550 when properties are nil9551 is expected to be nil9552 when report does not have gitlab properties9553 is expected to be nil9554 when schema_version is missing9555 is expected to be nil9556 when schema version is unsupported9557 is expected to be nil9558 when no dependency_scanning properties are present9559 does not call dependency_scanning parser9560 when dependency_scanning properties are present9561 passes only supported properties to the dependency scanning parser9562BitbucketServer::Representation::Repo9563 #project_key9564 is expected to eq "TEST"9565 #project_name9566 is expected to eq "test"9567 #slug9568 is expected to eq "rouge"9569 #browse_url9570 is expected to eq "http://localhost:7990/projects/TEST/repos/rouge/browse"9571 #clone_url9572 is expected to eq "http://root@localhost:7990/scm/test/rouge.git"9573 #description9574 is expected to eq "Rogue Repo"9575 #full_name9576 is expected to eq "test/rouge"9577RuboCop::Cop::Gitlab::DocUrl9578 # order random9579 when string literal is added without docs url prefix9580 when inlined9581 does not register an offense9582 when multilined9583 does not register an offense9584 with heredoc9585 does not register an offense9586 when string literal is added with docs url prefix9587 when inlined9588 registers an offense9589 when multilined9590 registers an offense9591 with heredoc9592 registers an offense9593Resolvers::WorkItemResolver9594 #resolve9595 when the user can read the work item9596 is expected to eq #<WorkItem id:603 namespace754/project849#1>9597 when the user can not read the work item9598 raises a resource not available error9599Gitlab::Qa9600 # order random9601 .request?9602 dot_com: false, request_user_agent: "qa_user_agent", qa_user_agent: "qa_user_agent", result: false9603 is expected to eq false9604 dot_com: true, request_user_agent: nil, qa_user_agent: "qa_user_agent", result: false9605 is expected to eq false9606 dot_com: true, request_user_agent: "", qa_user_agent: "qa_user_agent", result: false9607 is expected to eq false9608 dot_com: true, request_user_agent: "qa_user_agent", qa_user_agent: "", result: false9609 is expected to eq false9610 dot_com: true, request_user_agent: "qa_user_agent", qa_user_agent: nil, result: false9611 is expected to eq false9612 dot_com: true, request_user_agent: "qa_user_agent", qa_user_agent: "qa_user_agent", result: true9613 is expected to eq true9614Users::Calloutable9615 Associations9616 is expected to belong to user required: false9617 validations9618 is expected to validate that :user cannot be empty/falsy9619 #dismissed_after?9620 returns whether a callout dismissed after specified date9621Gitlab::GitAccessDesign9622 #check9623 when the user is allowed to manage designs9624 is expected to be a kind of Gitlab::GitAccessResult::Success9625 when the user is not allowed to manage designs9626 raises an error9627 when the protocol is not web9628 raises an error9629Terraform::ModulesPresenter9630 #modules9631 is expected to be a kind of Array9632 is expected to be a kind of Hash9633 is expected to match schema "public_api/v4/packages/terraform/modules/v1/modules"9634Gitlab::Usage::Metrics::KeyPathProcessor9635 #unflatten_default_path9636 key_path: "uuid", value: nil, expected_hash: {:uuid=>nil}9637 is expected to eq {:uuid=>nil}9638 key_path: "uuid", value: "1111", expected_hash: {:uuid=>"1111"}9639 is expected to eq {:uuid=>"1111"}9640 key_path: "counts.issues", value: nil, expected_hash: {:counts=>{:issues=>nil}}9641 is expected to eq {:counts=>{:issues=>nil}}9642 key_path: "counts.issues", value: 100, expected_hash: {:counts=>{:issues=>100}}9643 is expected to eq {:counts=>{:issues=>100}}9644 key_path: "usage_activity_by_stage.verify.ci_builds", value: 100, expected_hash: {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}9645 is expected to eq {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}9646Import::ManifestProviderRepoEntity9647 behaves like exposes required fields for import entity9648 exposes required fields9649 correctly exposes id9650 correctly exposes full name9651 correctly exposes sanitized name9652 correctly exposes provider link9653Banzai::CommitRenderer9654 .render9655 renders a commit description and title9656DependencyProxy::CleanupBlobWorker9657 behaves like dependency_proxy_cleanup_worker9658 #perform_work9659 with no work to do9660 is expected to be nil9661 with work to do9662 deletes the oldest artifact pending destruction based on updated_at9663 #max_running_jobs9664 is expected to eq 59665 #remaining_work_count9666 is expected to eq 39667PagerDuty::WebhookPayloadParser9668 .call9669 when payload is a correct PagerDuty payload9670 returns parsed payload9671 when assignments summary and html_url are blank9672 returns parsed payload with blank assignees9673 when impacted_services summary and html_url are blank9674 returns parsed payload with blank impacted service9675 when payload schema is invalid9676 returns payload with blank incident9677 when event is unknown9678 returns empty payload9679Terraform::States::DestroyWorker9680 #perform9681 calls the deletion service9682 state no longer exists9683 completes without error9684ProjectSerializer9685 when serializer option is :import9686 represents with ProjectImportEntity9687 when serializer option is omitted9688 represents with ProjectEntity9689Ci::PipelineMetadata9690 # order random9691 is expected to belong to project required: false9692 is expected to belong to pipeline required: false9693 validations9694 is expected to validate that the length of :name is between 1 and 2559695 is expected to validate that :project cannot be empty/falsy9696 is expected to validate that :pipeline cannot be empty/falsy9697Banzai::Filter::BlockquoteFenceFilter9698 converts blockquote fences to blockquote lines9699 does not require newlines at start or end of string9700 allows trailing whitespace on blockquote fence lines9701 when incomplete blockquote fences with multiple blocks are present9702 does not raise timeout error9703BulkImports::Projects::Pipelines::ProjectFeaturePipeline9704 #run9705 imports project feature9706Types::Packages::PackageType9707 is expected to eq "Represents a package with pipelines in the Package Registry"9708 is expected to require graphql authorizations :read_package9709 includes all the package fields and pipelines9710admin/application_settings/repository.html.haml9711 default initial branch name9712 has the setting section9713 renders the correct setting section content9714Graphql::Var9715 associates a name with a type and an initially empty value9716 has a correct signature9717 implements to_graphql_value as $name9718 can set a value using with, returning a new object9719 returns an object suitable for passing to post_graphql(variables:)9720Banzai::Pipeline::BroadcastMessagePipeline9721 allows `a` elements9722 is expected to eq "<p><a>Link</a></p>"9723 allows `br` elements9724 is expected to eq "<p>Hello<br>World</p>"9725Types::Kas::AgentConnectionType9726 is expected to eq "ConnectedAgent"9727 is expected to eq "Connection details for an Agent"9728 is expected to have graphql fields :connected_at, :connection_id, and :metadata9729 #connected_at9730 converts the seconds value to a timestamp9731Packages::Debian::ExtractDebMetadataService9732 with correct file9733 return as expected9734 with incorrect file9735 raise error9736Gitlab::Ci::Ansi2json::Result9737 #size9738 when offset is at the start9739 returns the full size9740 when offset is not zero9741 returns the remaining size9742 #total9743 returns size of stread9744Types::CustomerRelations::OrganizationStateCountsType9745 is expected to eq "OrganizationStateCounts"9746 is expected to have graphql fields "all", "active", and "inactive"9747 #all9748 returns the sum of all counts9749Packages::Rubygems::Metadatum9750 relationships9751 is expected to belong to package required: false9752 validations9753 is expected to validate that :package cannot be empty/falsy9754 #rubygems_package_type9755 will not allow a package with a different package_type9756Gitlab::Auth::Otp::Strategies::FortiAuthenticator::ManualOtp9757 successful validation9758 returns success9759 unsuccessful validation9760 returns error9761 unexpected error9762 returns error9763BlobViewer::ServerSide9764 #prepare!9765 loads all blob data9766 #render_error9767 when the blob is stored externally9768 return :server_side_but_stored_externally9769Gitlab::GithubImport::Importer::LfsObjectImporter9770 #execute9771 calls the LfsDownloadService with the lfs object attributes9772Tooling::Mappings::Base9773 # order random9774 #folders_for_available_editions9775 when FOSS9776 returns the correct paths9777 when EE9778 returns the correct paths9779 when JiHu9780 returns the correct paths9781API::Entities::Snippets::RepositoryStorageMove9782 #as_json9783 includes basic fields9784Types::Ci::PipelineScheduleStatusEnum9785 # order random9786 exposes the status of a pipeline schedule9787 is expected to eq "PipelineScheduleStatus"9788Gitlab::Database::PostgresHll::Buckets9789 #estimated_distinct_count9790 provides estimated cardinality9791 #merge_hash!9792 merges two hashes together into union of two sets9793 #to_json9794 serialize HyperLogLog buckets as hash9795Gitlab::GithubImport::ImportIssueEventWorker9796 #import9797 imports an issue event9798Gitlab::MergeRequests::Mergeability::RedisInterface9799 #save_check9800 saves the hash9801 #retrieve_check9802 returns the hash9803ShaValidator9804 with empty value9805 does not add any error if value is empty9806 with valid sha9807 does not add any error9808 with invalid sha9809 adds error to the record9810Gitlab::Usage::Metrics::Instrumentations::SnowplowEnabledMetric9811 for snowplow enabled option9812 snowplow_enabled: true, expected_value: true9813 behaves like a correct instrumented metric value9814 has correct value9815 snowplow_enabled: false, expected_value: false9816 behaves like a correct instrumented metric value9817 has correct value9818API::Validations::Validators::UntrustedRegexp9819 valid regex9820 does not raise a validation error9821 invalid regex9822 raises a validation error9823Gitlab::ExternalAuthorization::Cache9824 #load9825 reads stored info from redis9826 #store9827 sets the values in redis9828Gitlab::Ci::Interpolation::Config9829 # order random9830 #replace!9831 replaces each od the nodes with a block return value9832 when config size is exceeded9833 returns a config size error9834Gitlab::Pages::RandomDomain9835 # order random9836 when project path is larger than 48 chars9837 behaves like random domain9838 is expected to eq 639839 when project path is close to 48 chars9840 behaves like random domain9841 is expected to eq 639842 when project path is less than 48 chars9843 behaves like random domain9844 is expected to eq 639845Types::IssueTypeEnum9846 is expected to eq "IssueType"9847 exposes all the existing issue type values except key_result9848Sidebars::UserProfile::Panel9849 # order random9850 implements #aria_label9851 implements #super_sidebar_context_header9852Projects::ImportErrorFilter9853 filters any full paths9854 filters any relative paths ignoring single slash ones9855BulkImports::Common::Extractors::GraphqlExtractor9856 #extract9857 returns ExtractedData9858Types::CommitSignatures::VerificationStatusEnum9859 # order random9860 exposes all signature verification states9861 is expected to eq "VerificationStatus"9862Sidebars::Projects::SuperSidebarMenus::OperationsMenu9863 # order random9864 defines list of NilMenuItem placeholders9865 has title and sprite_icon9866ActiveJob execute callback9867 is removed in test environment9868RuboCop::Cop::Gitlab::Union9869 # order random9870 flags the use of Gitlab::SQL::Union.new9871Gitlab::AppJsonLogger9872 logs a hash as a JSON9873 logs a string as a JSON9874Gitlab::Utils::Measuring9875 # order random9876 #with_measuring9877 measures and logs data9878 with base_log_data provided9879 logs includes base data9880Banzai::Pipeline::JiraImport::AdfCommonmarkPipeline9881 converts text in Atlassian Document Format9882Sidebars::Projects::Context9883 sets project attribute reader9884RuboCop::Cop::Gitlab::DeprecateTrackRedisHLLEvent9885 # order random9886 flags the use of track_redis_hll_event9887 does not flag the use of track_event9888API::Helpers::Pagination9889 delegates to OffsetPagination9890Iso8601DateValidator9891 # order random9892 errors on an invalid date9893 passes a valid date9894processing of SAMLResponse in dependencies9895 can extract AuthnContextClassRef from SAMLResponse param9896Types::SubscriptionType9897 has the expected fields9898Admin::ComponentsHelper9899 # order random9900 #database_versions9901 returns expected database data9902Gitlab::Kubernetes::Role9903 #generate9904 is expected to eq #<Kubeclient::Resource metadata={:name=>"example-name", :namespace=>"example-namespace"}, rules=[{:apiGroups=>["hello.world"], :resources=>["oil", "diamonds", "coffee"], :verbs=>["say", "do", "walk", "run"]}]>9905Evidences::ProjectEntity9906 exposes the expected fields9907Knapsack report was generated. Preview:9908{9909 "spec/policies/project_policy_spec.rb": 102.90242857200064,9910 "spec/lib/gitlab/middleware/go_spec.rb": 182.2329677709995,9911 "spec/services/snippets/update_service_spec.rb": 129.33754096899975,9912 "spec/lib/gitlab/database/load_balancing_spec.rb": 80.06952239800012,9913 "spec/services/merge_requests/merge_service_spec.rb": 65.23368093800036,9914 "spec/models/work_items/parent_link_spec.rb": 49.936998080000194,9915 "spec/scripts/lib/glfm/update_specification_spec.rb": 90.34114285999931,9916 "spec/graphql/resolvers/project_issues_resolver_spec.rb": 23.897456291000708,9917 "spec/lib/gitlab/conflict/file_spec.rb": 44.21892095700059,9918 "spec/uploaders/job_artifact_uploader_spec.rb": 29.619983476000016,9919 "spec/lib/gitlab/gfm/reference_rewriter_spec.rb": 36.78582432799976,9920 "spec/lib/gitlab/gitaly_client_spec.rb": 5.429225759000474,9921 "spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb": 20.76543634399968,9922 "spec/helpers/application_helper_spec.rb": 11.746882139000263,9923 "spec/services/members/projects/creator_service_spec.rb": 12.700164603000303,9924 "spec/models/concerns/deprecated_assignee_spec.rb": 23.811500125999373,9925 "spec/models/resource_label_event_spec.rb": 23.90499016100057,9926 "spec/routing/group_routing_spec.rb": 9.549977507000222,9927 "spec/models/projects/data_transfer_spec.rb": 4.104981969000619,9928 "spec/models/service_desk_setting_spec.rb": 11.191591318000064,9929 "spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb": 8.85163028900024,9930 "spec/finders/ci/pipelines_finder_spec.rb": 13.156147392000094,9931 "spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb": 2.736809552999148,9932 "spec/lib/gitlab/process_supervisor_spec.rb": 9.416947537999476,9933 "spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb": 6.90659699599928,9934 "spec/workers/concerns/application_worker_spec.rb": 2.528949931999705,9935 "spec/models/ci/trigger_spec.rb": 10.919964484000047,9936 "spec/models/integrations/drone_ci_spec.rb": 6.718653583999185,9937 "spec/lib/gitlab/email/handler/create_note_on_issuable_handler_spec.rb": 13.596836102000452,9938 "spec/services/clusters/create_service_spec.rb": 12.327893485999994,9939 "spec/lib/gitlab/redis/cache_spec.rb": 2.3224131409997426,9940 "spec/models/ci/build_metadata_spec.rb": 7.641862460000084,9941 "spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb": 10.407409890000054,9942 "spec/lib/gitlab/auth/ldap/config_spec.rb": 2.259706585999993,9943 "spec/views/projects/_home_panel.html.haml_spec.rb": 12.003608214999986,9944 "spec/serializers/diff_file_entity_spec.rb": 7.405635219999567,9945 "spec/lib/feature/definition_spec.rb": 2.1623295640001743,9946 "spec/lib/gitlab/x509/signature_spec.rb": 6.139092936000452,9947 "spec/services/timelogs/create_service_spec.rb": 5.658053860000109,9948 "spec/services/merge_requests/resolved_discussion_notification_service_spec.rb": 8.799825564999992,9949 "spec/lib/gitlab/ci/artifact_file_reader_spec.rb": 8.607342473000244,9950 "spec/lib/gitlab/deploy_key_access_spec.rb": 9.123083016000237,9951 "spec/services/ci/create_pipeline_service/cache_spec.rb": 5.764462748999904,9952 "spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb": 9.826936213000408,9953 "spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb": 5.407183811999857,9954 "spec/lib/api/helpers/packages_helpers_spec.rb": 2.926713866000682,9955 "spec/lib/gitlab/ci/config/entry/cache_spec.rb": 1.8998648979995778,9956 "spec/models/ci/runner_manager_spec.rb": 3.526024872000562,9957 "spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb": 8.556371057000433,9958 "spec/views/admin/dashboard/index.html.haml_spec.rb": 5.95963847099938,9959 "spec/presenters/issue_presenter_spec.rb": 3.9888103590001265,9960 "spec/models/ci/runner_project_spec.rb": 7.298563241000011,9961 "spec/finders/concerns/finder_with_group_hierarchy_spec.rb": 6.319747379000546,9962 "spec/workers/auto_devops/disable_worker_spec.rb": 7.724630782000531,9963 "spec/services/projects/download_service_spec.rb": 4.291495032000057,9964 "spec/helpers/nav_helper_spec.rb": 2.7890105080005014,9965 "spec/serializers/analytics_issue_entity_spec.rb": 3.3752874560004784,9966 "spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb": 1.1938157520007735,9967 "spec/models/state_note_spec.rb": 2.920585965999635,9968 "spec/lib/gitlab/chat/responder/mattermost_spec.rb": 3.9183212359994286,9969 "spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb": 6.282251941999675,9970 "spec/services/ci/runners/set_runner_associated_projects_service_spec.rb": 5.084812040000543,9971 "spec/rack_servers/puma_spec.rb": 4.6552570200001355,9972 "spec/initializers/00_deprecations_spec.rb": 1.0800591819997862,9973 "spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb": 5.385151049000342,9974 "spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb": 4.003258009999627,9975 "spec/models/packages/nuget/metadatum_spec.rb": 2.1707326919995467,9976 "spec/initializers/direct_upload_support_spec.rb": 1.192295384999852,9977 "spec/uploaders/file_mover_spec.rb": 4.505903496999963,9978 "spec/views/layouts/devise_empty.html.haml_spec.rb": 2.6664876790000562,9979 "spec/lib/gitlab/jira_import_spec.rb": 3.7861231219994806,9980 "spec/services/ci/create_pipeline_service/tags_spec.rb": 4.696471866000138,9981 "spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb": 1.1294122110002718,9982 "spec/services/merge_requests/handle_assignees_change_service_spec.rb": 5.434828828999343,9983 "spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb": 5.57974661299977,9984 "spec/models/protected_tag/create_access_level_spec.rb": 2.63814725300017,9985 "spec/lib/constraints/group_url_constrainer_spec.rb": 1.772902644000169,9986 "spec/lib/banzai/reference_parser/milestone_parser_spec.rb": 4.152000752999811,9987 "spec/models/integrations/emails_on_push_spec.rb": 3.111980011999549,9988 "spec/workers/environments/auto_stop_worker_spec.rb": 4.906613293999726,9989 "spec/lib/sidebars/projects/menus/zentao_menu_spec.rb": 3.2204960110002503,9990 "spec/services/ci/compare_reports_base_service_spec.rb": 5.089757235000434,9991 "spec/graphql/resolvers/project_pipeline_resolver_spec.rb": 3.6581305959998645,9992 "spec/serializers/base_discussion_entity_spec.rb": 4.923515552000026,9993 "spec/services/ci/job_artifacts/track_artifact_report_service_spec.rb": 2.8567558400000053,9994 "spec/lib/gitlab/instrumentation_helper_spec.rb": 1.359169766999912,9995 "spec/services/ci/delete_objects_service_spec.rb": 3.511976221000623,9996 "spec/workers/pages_domain_verification_cron_worker_spec.rb": 3.0924804050000603,9997 "spec/lib/sidebars/user_profile/menus/activity_menu_spec.rb": 1.0507183190002252,9998 "spec/lib/banzai/filter/asset_proxy_filter_spec.rb": 0.754747560999931,9999 "spec/models/concerns/batch_nullify_dependent_associations_spec.rb": 3.010558124000454,10000 "spec/services/work_items/widgets/notifications_service/update_service_spec.rb": 1.7836781919995701,10001 "spec/lib/gitlab/memory/reports_daemon_spec.rb": 0.5632730509996691,10002 "spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb": 4.406073016999471,10003 "spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb": 2.3074050870000065,10004 "spec/serializers/clusters/kubernetes_error_entity_spec.rb": 1.8748055729993212,10005 "spec/workers/clusters/applications/activate_integration_worker_spec.rb": 2.76599103999979,10006 "spec/services/ide/terminal_config_service_spec.rb": 1.9330254669994247,10007 "spec/services/work_items/widgets/assignees_service/update_service_spec.rb": 3.0399637609998535,10008 "spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb": 1.933161516999462,10009 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb": 3.3989960119997704,10010 "spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb": 1.0655120990004434,10011 "spec/lib/gitlab/hotlinking_detector_spec.rb": 1.4930992139998125,10012 "spec/lib/gitlab/work_items/work_item_hierarchy_spec.rb": 1.3646804359996167,10013 "spec/finders/projects/prometheus/alerts_finder_spec.rb": 1.9053176099996563,10014 "spec/graphql/mutations/branches/create_spec.rb": 2.08053388099961,10015 "spec/serializers/merge_request_widget_commit_entity_spec.rb": 3.4986945420005213,10016 "spec/finders/merge_request/metrics_finder_spec.rb": 2.62961129300038,10017 "spec/workers/invalid_gpg_signature_update_worker_spec.rb": 2.352583052999762,10018 "spec/lib/gitlab/git/cross_repo_spec.rb": 5.306215751999844,10019 "spec/services/projects/blame_service_spec.rb": 1.9408358760001647,10020 "spec/workers/ci/cancel_redundant_pipelines_worker_spec.rb": 2.6413164929999766,10021 "spec/validators/json_schema_validator_spec.rb": 1.5286823500000537,10022 "spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb": 1.2035380830002396,10023 "spec/lib/gitlab/mailgun/webhook_processors/member_invites_spec.rb": 1.0415610000000015,10024 "spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb": 0.7674327889999404,10025 "spec/lib/gitlab/middleware/compressed_json_spec.rb": 1.085271425999963,10026 "spec/lib/gitlab/internal_post_receive/response_spec.rb": 0.9307120219991702,10027 "spec/models/ci/pipeline_schedule_variable_spec.rb": 0.5812179690001358,10028 "spec/graphql/types/namespace/package_settings_type_spec.rb": 0.5939422070005094,10029 "spec/lib/gitlab/ci/config/entry/jobs_spec.rb": 0.8335253719997127,10030 "spec/services/files/base_service_spec.rb": 2.4467562429999816,10031 "spec/lib/gitlab/repository_url_builder_spec.rb": 1.5155579300007957,10032 "spec/workers/packages/cleanup_package_file_worker_spec.rb": 1.4884243430005881,10033 "spec/services/packages/create_package_file_service_spec.rb": 2.7647101299990027,10034 "spec/support_specs/ability_check_spec.rb": 0.6810932379994483,10035 "spec/views/projects/_flash_messages.html.haml_spec.rb": 3.173672336000891,10036 "spec/workers/disallow_two_factor_for_group_worker_spec.rb": 0.9812358069993934,10037 "spec/serializers/jira_connect/group_entity_spec.rb": 0.5853433180000138,10038 "spec/lib/gitlab/safe_request_purger_spec.rb": 1.3300869399990916,10039 "spec/workers/ci/pipeline_artifacts/create_quality_report_worker_spec.rb": 2.9034256149989233,10040 "spec/workers/member_invitation_reminder_emails_worker_spec.rb": 0.7380119129993545,10041 "spec/serializers/member_serializer_spec.rb": 2.2062225779991422,10042 "spec/graphql/types/ci/job_need_union_spec.rb": 1.6490948270002264,10043 "spec/graphql/mutations/design_management/move_spec.rb": 1.7052365100007592,10044 "spec/lib/api/entities/basic_project_details_spec.rb": 1.7288063079995482,10045 "spec/services/authorized_project_update/periodic_recalculate_service_spec.rb": 1.944177404999209,10046 "spec/workers/create_note_diff_file_worker_spec.rb": 2.196980299999268,10047 "spec/lib/gitlab/terraform_registry_token_spec.rb": 1.5675307550009165,10048 "spec/workers/error_tracking_issue_link_worker_spec.rb": 1.3184450709995872,10049 "spec/presenters/user_presenter_spec.rb": 1.0304676120013028,10050 "spec/lib/banzai/filter/inline_diff_filter_spec.rb": 0.710235176000424,10051 "spec/lib/gitlab/ci/config/entry/services_spec.rb": 0.8256789830011257,10052 "spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb": 0.5184427950007375,10053 "spec/lib/generators/gitlab/usage_metric_generator_spec.rb": 1.0995405150006263,10054 "spec/graphql/mutations/clusters/agent_tokens/revoke_spec.rb": 1.602244931000314,10055 "spec/lib/gitlab/ci/status/build/skipped_spec.rb": 1.726038578999578,10056 "spec/models/discussion_note_spec.rb": 0.4490700130008918,10057 "spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb": 0.6657642499994836,10058 "spec/views/notify/changed_milestone_email.html.haml_spec.rb": 1.3071196129985765,10059 "spec/lib/gitlab/utils/json_size_estimator_spec.rb": 0.8098479649997898,10060 "spec/views/projects/branches/index.html.haml_spec.rb": 1.9579788739993091,10061 "spec/services/merge_requests/mergeability/check_open_status_service_spec.rb": 0.4867560689999664,10062 "spec/lib/gitlab/database/migration_spec.rb": 0.5483315030014637,10063 "spec/initializers/google_cloud_profiler_spec.rb": 1.0063516139998683,10064 "spec/lib/gitlab/feature_categories_spec.rb": 0.758018609998544,10065 "spec/models/concerns/taskable_spec.rb": 0.7221410439997271,10066 "spec/lib/sidebars/concerns/super_sidebar_panel_spec.rb": 0.6311726439998893,10067 "spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb": 0.7656909090001136,10068 "spec/services/terraform/states/trigger_destroy_service_spec.rb": 1.4609690559991577,10069 "spec/services/import/prepare_service_spec.rb": 1.0414775810004357,10070 "spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb": 0.5810892889985553,10071 "spec/models/concerns/integrations/reset_secret_fields_spec.rb": 0.8672288590005337,10072 "spec/lib/gitlab/favicon_spec.rb": 0.7776753380003356,10073 "spec/lib/gitlab/auth/ldap/auth_hash_spec.rb": 0.6505917819995375,10074 "spec/lib/gitlab/project_transfer_spec.rb": 0.5565069910007878,10075 "spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb": 0.7202592449993972,10076 "spec/lib/bitbucket_server/representation/repo_spec.rb": 0.6080413449999469,10077 "spec/rubocop/cop/gitlab/doc_url_spec.rb": 0.6584529209994798,10078 "spec/graphql/resolvers/work_item_resolver_spec.rb": 1.0413705709997885,10079 "spec/lib/gitlab/qa_spec.rb": 0.7451641210009257,10080 "spec/models/users/calloutable_spec.rb": 0.8758091480012808,10081 "spec/lib/gitlab/git_access_design_spec.rb": 0.9970019350002985,10082 "spec/presenters/terraform/modules_presenter_spec.rb": 1.0325735009992059,10083 "spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb": 0.4968178379986057,10084 "spec/serializers/import/manifest_provider_repo_entity_spec.rb": 0.9290176520007662,10085 "spec/lib/banzai/commit_renderer_spec.rb": 1.5477304380001442,10086 "spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb": 0.8828725569983362,10087 "spec/lib/pager_duty/webhook_payload_parser_spec.rb": 0.503303176999907,10088 "spec/workers/terraform/states/destroy_worker_spec.rb": 0.8156338939988927,10089 "spec/serializers/project_serializer_spec.rb": 0.6745795589995396,10090 "spec/models/ci/pipeline_metadata_spec.rb": 0.4613455620001332,10091 "spec/lib/banzai/filter/blockquote_fence_filter_spec.rb": 0.6356777629989665,10092 "spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb": 0.9663615279987425,10093 "spec/graphql/types/packages/package_type_spec.rb": 0.44814443300128914,10094 "spec/views/admin/application_settings/repository.html.haml_spec.rb": 0.9667089390004548,10095 "spec/support_specs/graphql/var_spec.rb": 0.5914581269989867,10096 "spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb": 0.6507095519991708,10097 "spec/graphql/types/kas/agent_connection_type_spec.rb": 0.45032430200080853,10098 "spec/services/packages/debian/extract_deb_metadata_service_spec.rb": 0.9008039950003877,10099 "spec/lib/gitlab/ci/ansi2json/result_spec.rb": 0.47884816999976465,10100 "spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb": 0.5090306160000182,10101 "spec/models/packages/rubygems/metadatum_spec.rb": 0.6503660420003143,10102 "spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb": 0.7754692179987615,10103 "spec/models/blob_viewer/server_side_spec.rb": 0.45635272199979227,10104 "spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb": 0.6460426220000954,10105 "spec/tooling/lib/tooling/mappings/base_spec.rb": 0.5617437410001003,10106 "spec/lib/api/entities/snippets/repository_storage_move_spec.rb": 0.6880173480003577,10107 "spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb": 0.3927106190003542,10108 "spec/lib/gitlab/database/postgres_hll/buckets_spec.rb": 0.44578098300007696,10109 "spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb": 0.8996970150001289,10110 "spec/lib/gitlab/merge_requests/mergeability/redis_interface_spec.rb": 0.3856306190009491,10111 "spec/validators/sha_validator_spec.rb": 0.6323307639995619,10112 "spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb": 0.6055506259999675,10113 "spec/lib/api/validations/validators/untrusted_regexp_spec.rb": 0.4897568690012122,10114 "spec/lib/gitlab/external_authorization/cache_spec.rb": 0.4797145200009254,10115 "spec/lib/gitlab/ci/interpolation/config_spec.rb": 0.7982906750003167,10116 "spec/lib/gitlab/pages/random_domain_spec.rb": 0.5176712660013436,10117 "spec/graphql/types/issue_type_enum_spec.rb": 0.38913211900035094,10118 "spec/lib/sidebars/user_profile/panel_spec.rb": 0.6926336169999558,10119 "spec/services/projects/import_error_filter_spec.rb": 0.37908764999883715,10120 "spec/lib/bulk_imports/common/extractors/graphql_extractor_spec.rb": 0.5523310220014537,10121 "spec/graphql/types/commit_signatures/verification_status_enum_spec.rb": 0.4535624830004963,10122 "spec/lib/sidebars/projects/super_sidebar_menus/operations_menu_spec.rb": 0.4741779809992295,10123 "spec/initializers/remove_active_job_execute_callback_spec.rb": 0.3853510090011696,10124 "spec/rubocop/cop/gitlab/union_spec.rb": 0.45928905199980363,10125 "spec/lib/gitlab/app_json_logger_spec.rb": 0.4022709169985319,10126 "spec/lib/gitlab/utils/measuring_spec.rb": 0.5500589720013522,10127 "spec/lib/banzai/pipeline/jira_import/adf_commonmark_pipeline_spec.rb": 0.38269715900059964,10128 "spec/lib/sidebars/projects/context_spec.rb": 0.30247125800087815,10129 "spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb": 0.6579435309995461,10130 "spec/lib/api/helpers/pagination_spec.rb": 0.38779815999987477,10131 "spec/validators/iso8601_date_validator_spec.rb": 0.5315429139991465,10132 "spec/dependencies/omniauth_saml_spec.rb": 0.37337385099999665,10133 "spec/graphql/types/subscription_type_spec.rb": 0.4189647250004782,10134 "spec/helpers/admin/components_helper_spec.rb": 0.31091309799921873,10135 "spec/lib/gitlab/kubernetes/role_spec.rb": 0.43498521400033496,10136 "spec/serializers/evidences/project_entity_spec.rb": 0.427380344999619410138Knapsack global time execution for tests: 24m 35s10139Pending: (Failures listed here are expected and do not affect your suite's status)10140 1) JobArtifactUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 10141 # No pattern provided, skipping.10142 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810143 2) JobArtifactUploader behaves like builds correct paths #relative_path is relative10144 # Path not set, skipping.10145 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4010146 3) JobArtifactUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 10147 # No pattern provided, skipping.10148 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810149 4) JobArtifactUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 10150 # No pattern provided, skipping.10151 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810152 5) JobArtifactUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 10153 # No pattern provided, skipping.10154 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810155 6) JobArtifactUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 10156 # No pattern provided, skipping.10157 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810158 7) JobArtifactUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 10159 # No pattern provided, skipping.10160 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810161 8) JobArtifactUploader object store is REMOTE behaves like builds correct paths #relative_path is relative10162 # Path not set, skipping.10163 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4010164 9) JobArtifactUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 10165 # No pattern provided, skipping.10166 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810167 10) JobArtifactUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 10168 # No pattern provided, skipping.10169 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810170Finished in 24 minutes 39 seconds (files took 44.92 seconds to load)101714044 examples, 0 failures, 10 pending10172Randomized with seed 4724210173[TEST PROF INFO] Time spent in factories: 13:03.320 (52.69% of total time)10174RSpec exited with 0.10175No examples to retry, congrats!10177Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy10178Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy10180Uploading artifacts...10181coverage/: found 5 matching artifact files and directories 10182crystalball/: found 2 matching artifact files and directories 10183deprecations/: found 3 matching artifact files and directories 10184knapsack/: found 3 matching artifact files and directories 10185WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 10186rspec/: found 14 matching artifact files and directories 10187WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 10188log/*.log: found 19 matching artifact files and directories 10189WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4101394791/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10190WARNING: Retrying... context=artifacts-uploader error=request redirected10191Uploading artifacts as "archive" to coordinator... 201 Created id=4101394791 responseStatus=201 Created token=64_RKCwD10192Uploading artifacts...10193rspec/junit_rspec.xml: found 1 matching artifact files and directories 10194WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4101394791/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10195WARNING: Retrying... context=artifacts-uploader error=request redirected10196Uploading artifacts as "junit" to coordinator... 201 Created id=4101394791 responseStatus=201 Created token=64_RKCwD10198Job succeeded