rspec unit pg12 19/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on blue-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 1zzGUpzq3 feature flags: FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:31c3beb3b8968af162019219a074f3d4c1a5b1ab319ec86668229ad0a7ed0e4f for postgres:12 with digest postgres@sha256:63a045745aec8457cb208e929118b557e95e1b1327e2ad29f14174054be5d56e ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:f30aed8202b4ddc9ed0c833f7bd2b90470dc3a438a51b6567e9955adfe224051 for redis:6.0-alpine with digest redis@sha256:fcf49f0ab799e3b7217aab710606e888b190bbf3c3a81b5c912dd8ef351d1f69 ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:9f9846a4ac0697e6010265e736ea0ed08cd0506c4323c4e2a29d17e1b28665ce for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:9229dfe0f4ee76cecfd8411f6668b0b2a5fd730d1d3688013b3a721189fcccb5 ...18Running on runner-1zzgupzq-project-278964-concurrent-0 via runner-1zzgupzq-private-1670487149-dcaea5e3...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 163372, done. 25remote: Counting objects: 100% (163372/163372), done. 26remote: Compressing objects: 100% (94785/94785), done. 27remote: Total 163372 (delta 84810), reused 119124 (delta 63094), pack-reused 0 28Receiving objects: 100% (163372/163372), 121.93 MiB | 29.27 MiB/s, done.29Resolving deltas: 100% (84810/84810), done.31 * [new ref] refs/pipelines/716916172 -> refs/pipelines/71691617232Checking out 8f189ac6 as refs/merge-requests/106378/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-16 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 41Successfully extracted cache43Downloading artifacts for compile-test-assets (3443740837)...44Downloading artifacts from coordinator... ok id=3443740837 responseStatus=200 OK token=iHa6fkxr45Downloading artifacts for detect-tests (3443740849)...46Downloading artifacts from coordinator... ok id=3443740849 responseStatus=200 OK token=iHa6fkxr47Downloading artifacts for retrieve-tests-metadata (3443740854)...48Downloading artifacts from coordinator... ok id=3443740854 responseStatus=200 OK token=iHa6fkxr49Downloading artifacts for setup-test-env (3443740841)...50Downloading artifacts from coordinator... ok id=3443740841 responseStatus=200 OK token=iHa6fkxr52Using docker image sha256:9f9846a4ac0697e6010265e736ea0ed08cd0506c4323c4e2a29d17e1b28665ce for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:9229dfe0f4ee76cecfd8411f6668b0b2a5fd730d1d3688013b3a721189fcccb5 ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh687Using decomposed database config (config/database.yml.decomposed-postgresql)688$ setup_db_user_only689CREATE ROLE690GRANT691==> 'setup_db_user_only' succeeded in 0 seconds.692$ bundle exec rake db:drop db:create db:schema:load db:migrate693Dropped database 'gitlabhq_test'694Dropped database 'gitlabhq_test_ci'695Dropped database 'gitlabhq_geo_test'696Created database 'gitlabhq_test'697Created database 'gitlabhq_test_ci'698Created database 'gitlabhq_geo_test'699==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 36 seconds.700$ setup_db_praefect701SELECT pg_catalog.set_config('search_path', '', false);702CREATE DATABASE praefect_test ENCODING 'UTF8';703==> 'setup_db_praefect' succeeded in 0 seconds.704$ source ./scripts/rspec_helpers.sh705$ run_timed_command "gem install knapsack --no-document"706$ gem install knapsack --no-document707Successfully installed knapsack-4.0.07081 gem installed709==> 'gem install knapsack --no-document' succeeded in 1 seconds.710$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"820$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"821SKIP_FLAKY_TESTS_AUTOMATICALLY: true822RETRY_FAILED_TESTS_IN_NEW_PROCESS: true823KNAPSACK_GENERATE_REPORT: true824FLAKY_RSPEC_GENERATE_REPORT: true825KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,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,components}{,/**/}*_spec.rb826KNAPSACK_LOG_LEVEL: debug827KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_19_28_report.json828FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json829FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_19_28_report.json830NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_19_28_report.json831SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_19_28_report.txt832RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_19_28_report.txt833CRYSTALBALL: 834Knapsack node specs:835spec/policies/project_policy_spec.rb836spec/services/quick_actions/interpret_service_spec.rb837spec/services/merge_requests/create_from_issue_service_spec.rb838spec/workers/packages/debian/generate_distribution_worker_spec.rb839spec/models/concerns/deployment_platform_spec.rb840spec/models/clusters/platforms/kubernetes_spec.rb841spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb842spec/lib/gitlab/asciidoc_spec.rb843spec/models/resource_milestone_event_spec.rb844spec/services/merge_requests/close_service_spec.rb845spec/lib/banzai/reference_parser/snippet_parser_spec.rb846spec/services/merge_requests/reopen_service_spec.rb847spec/workers/packages/maven/metadata/sync_worker_spec.rb848spec/finders/ci/runner_jobs_finder_spec.rb849spec/services/search/global_service_spec.rb850spec/services/system_note_service_spec.rb851spec/models/notification_recipient_spec.rb852spec/lib/gitlab/json_cache_spec.rb853spec/tasks/gitlab/db/validate_config_rake_spec.rb854spec/lib/gitlab/hashed_storage/migrator_spec.rb855spec/models/namespace_setting_spec.rb856spec/support_specs/helpers/stub_feature_flags_spec.rb857spec/lib/gitlab/import_export/group/legacy_tree_restorer_spec.rb858spec/lib/gitlab/database/with_lock_retries_spec.rb859spec/lib/gitlab/background_migration/populate_topics_non_private_projects_count_spec.rb860spec/services/projects/update_pages_service_spec.rb861spec/lib/gitlab/ci/runner_upgrade_check_spec.rb862spec/services/namespaces/in_product_marketing_emails_service_spec.rb863spec/services/groups/group_links/create_service_spec.rb864spec/lib/gitlab/background_migration/populate_container_repository_migration_plan_spec.rb865spec/lib/gitlab/auth/request_authenticator_spec.rb866spec/services/labels/available_labels_service_spec.rb867spec/serializers/note_entity_spec.rb868spec/uploaders/pages/deployment_uploader_spec.rb869spec/lib/gitlab/auth/ldap/person_spec.rb870spec/services/issuable/common_system_notes_service_spec.rb871spec/lib/gitlab/background_migration/remove_self_managed_wiki_notes_spec.rb872spec/models/clusters/providers/gcp_spec.rb873spec/services/import/github_service_spec.rb874spec/lib/gitlab/data_builder/pipeline_spec.rb875spec/lib/gitlab/redis/sessions_spec.rb876spec/lib/gitlab/ci/config/entry/variables_spec.rb877spec/services/deployments/archive_in_project_service_spec.rb878spec/policies/user_policy_spec.rb879spec/models/issue/metrics_spec.rb880spec/lib/gitlab/background_migration/backfill_namespace_id_of_vulnerability_reads_spec.rb881spec/lib/gitlab/redis/sidekiq_status_spec.rb882spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb883spec/graphql/resolvers/design_management/designs_resolver_spec.rb884spec/models/work_item_spec.rb885spec/services/bulk_imports/relation_export_service_spec.rb886spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb887spec/models/clusters/providers/aws_spec.rb888spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb889spec/services/repositories/housekeeping_service_spec.rb890spec/initializers/secret_token_spec.rb891spec/lib/gitlab/github_import/representation/diff_note_spec.rb892spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb893spec/lib/gitlab/file_hook_spec.rb894spec/policies/deploy_keys_project_policy_spec.rb895spec/lib/gitlab/robots_txt/parser_spec.rb896spec/services/ci/generate_coverage_reports_service_spec.rb897spec/lib/gitlab/quick_actions/command_definition_spec.rb898spec/models/ci/pipeline_variable_spec.rb899spec/lib/gitlab/background_migration/fix_merge_request_diff_commit_users_spec.rb900spec/finders/packages/conan/package_file_finder_spec.rb901spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb902spec/services/web_hooks/log_execution_service_spec.rb903spec/services/terraform/remote_state_handler_spec.rb904spec/components/pajamas/badge_component_spec.rb905spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb906spec/finders/packages/go/version_finder_spec.rb907spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb908spec/services/ci/run_scheduled_build_service_spec.rb909spec/workers/namespaces/process_sync_events_worker_spec.rb910spec/workers/background_migration/ci_database_worker_spec.rb911spec/lib/gitlab/ci/status/build/play_spec.rb912spec/lib/gitlab/rack_attack/user_allowlist_spec.rb913spec/services/merge_requests/mergeability/run_checks_service_spec.rb914spec/lib/gitlab/middleware/compressed_json_spec.rb915spec/lib/gitlab/git_spec.rb916spec/lib/gitlab/web_ide/config/entry/global_spec.rb917spec/workers/container_expiration_policy_worker_spec.rb918spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb919spec/models/integrations/shimo_spec.rb920spec/models/integrations/mock_ci_spec.rb921spec/services/feature_flags/create_service_spec.rb922spec/services/discussions/capture_diff_note_position_service_spec.rb923spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb924spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb925spec/rubocop/cop_todo_spec.rb926spec/services/wiki_pages/event_create_service_spec.rb927spec/views/projects/environments/terminal.html.haml_spec.rb928spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb929spec/models/oauth_access_token_spec.rb930spec/serializers/review_app_setup_entity_spec.rb931spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb932spec/lib/gitlab/kubernetes/helm/v2/reset_command_spec.rb933spec/workers/container_registry/delete_container_repository_worker_spec.rb934spec/workers/concerns/project_import_options_spec.rb935spec/services/system_notes/incident_service_spec.rb936spec/services/note_summary_spec.rb937spec/lib/gitlab/serverless/service_spec.rb938spec/views/profiles/preferences/show.html.haml_spec.rb939spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb940spec/helpers/environment_helper_spec.rb941spec/lib/gitlab/email/smime/signer_spec.rb942spec/serializers/test_suite_comparer_entity_spec.rb943spec/services/merge_requests/pushed_branches_service_spec.rb944spec/services/git/wiki_push_service/change_spec.rb945spec/tasks/gitlab/gitaly_rake_spec.rb946spec/workers/stuck_export_jobs_worker_spec.rb947spec/views/projects/pipelines/show.html.haml_spec.rb948spec/services/notes/resolve_service_spec.rb949spec/helpers/learn_gitlab_helper_spec.rb950spec/models/work_items/widgets/labels_spec.rb951spec/lib/gitlab/bitbucket_import/wiki_formatter_spec.rb952spec/rubocop/migration_helpers_spec.rb953spec/models/lfs_download_object_spec.rb954spec/rubocop/cop/migration/add_concurrent_foreign_key_spec.rb955spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb956spec/lib/gitlab/github_import/representation/user_spec.rb957spec/models/x509_issuer_spec.rb958spec/graphql/resolvers/clusters/agents_resolver_spec.rb959spec/services/merge_requests/resolve_todos_service_spec.rb960spec/services/packages/composer/composer_json_service_spec.rb961spec/models/members/member_role_spec.rb962spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb963spec/lib/api/entities/nuget/metadatum_spec.rb964spec/helpers/projects/ml/experiments_helper_spec.rb965spec/lib/gitlab/database/postgres_hll/batch_distinct_counter_spec.rb966spec/workers/ci/initial_pipeline_process_worker_spec.rb967spec/lib/gitlab/ci/artifacts/logger_spec.rb968spec/lib/sidebars/projects/menus/shimo_menu_spec.rb969spec/lib/gitlab/external_authorization/response_spec.rb970spec/workers/ci/track_failed_build_worker_spec.rb971spec/finders/ci/job_artifacts_finder_spec.rb972spec/lib/gitlab/cycle_analytics/updater_spec.rb973spec/lib/error_tracking/collector/payload_validator_spec.rb974spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb975spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb976spec/views/layouts/header/_gitlab_version.html.haml_spec.rb977spec/workers/projects/update_repository_storage_worker_spec.rb978spec/lib/gitlab/feature_categories_spec.rb979spec/lib/error_tracking/stacktrace_builder_spec.rb980spec/lib/gitlab/data_builder/feature_flag_spec.rb981spec/graphql/resolvers/design_management/version_resolver_spec.rb982spec/lib/gitlab/utils/gzip_spec.rb983spec/graphql/types/release_asset_link_input_type_spec.rb984spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb985spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb986spec/graphql/types/namespace_type_spec.rb987spec/graphql/types/ci_configuration/sast/entity_type_spec.rb988spec/services/discussions/unresolve_service_spec.rb989spec/lib/bitbucket_server/representation/repo_spec.rb990spec/services/packages/debian/create_package_file_service_spec.rb991spec/graphql/resolvers/branch_commit_resolver_spec.rb992spec/models/redirect_route_spec.rb993spec/serializers/merge_request_sidebar_extras_entity_spec.rb994spec/graphql/types/commit_signatures/gpg_signature_type_spec.rb995spec/lib/gitlab/fogbugz_import/project_creator_spec.rb996spec/lib/gitlab/kubernetes/kubeconfig/template_spec.rb997spec/graphql/mutations/boards/update_spec.rb998spec/lib/gitlab/database/partitioning/replace_table_spec.rb999spec/lib/bulk_imports/groups/pipelines/project_entities_pipeline_spec.rb1000spec/graphql/types/projects/service_type_spec.rb1001spec/lib/gitlab/null_request_store_spec.rb1002spec/models/users/project_callout_spec.rb1003spec/models/concerns/commit_signature_spec.rb1004spec/presenters/packages/nuget/service_index_presenter_spec.rb1005spec/lib/google_api/auth_spec.rb1006spec/serializers/feature_flag_summary_entity_spec.rb1007spec/services/personal_access_tokens/last_used_service_spec.rb1008spec/graphql/types/branch_rules/branch_protection_type_spec.rb1009spec/workers/packages/rubygems/extraction_worker_spec.rb1010spec/workers/export_csv_worker_spec.rb1011spec/services/users/dismiss_group_callout_service_spec.rb1012spec/models/integrations/jira_tracker_data_spec.rb1013spec/lib/gitlab/git/raw_diff_change_spec.rb1014spec/lib/api/entities/project_import_failed_relation_spec.rb1015spec/serializers/ci/downloadable_artifact_serializer_spec.rb1016spec/lib/bulk_imports/pipeline/extracted_data_spec.rb1017spec/models/concerns/safe_url_spec.rb1018spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb1019spec/workers/update_merge_requests_worker_spec.rb1020spec/graphql/types/branch_type_spec.rb1021spec/lib/gitlab/database/postgres_hll/buckets_spec.rb1022spec/rubocop/cop/migration/background_migrations_spec.rb1023spec/workers/users/create_statistics_worker_spec.rb1024spec/lib/gitlab/graphql/pagination/connections_spec.rb1025spec/models/protected_branch/merge_access_level_spec.rb1026spec/lib/api/entities/application_setting_spec.rb1027spec/lib/gitlab/ci/ansi2json/parser_spec.rb1028spec/lib/gitlab/graphql/timeout_spec.rb1029spec/lib/gitlab/phabricator_import/representation/user_spec.rb1030spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb1031spec/lib/gitlab/memory/watchdog/monitor/rss_memory_limit_spec.rb1032spec/rubocop/cop/sidekiq_load_balancing/worker_data_consistency_spec.rb1033spec/lib/gitlab/ci/build/cache_spec.rb1034spec/models/blob_viewer/composer_json_spec.rb1035spec/lib/gitlab/asciidoc/html5_converter_spec.rb1036spec/lib/api/validations/validators/email_or_email_list_spec.rb1037spec/lib/gitlab/import_export/legacy_relation_tree_saver_spec.rb1038spec/serializers/jira_connect/group_entity_spec.rb1039spec/graphql/types/ci/config/config_type_spec.rb1040spec/graphql/types/customer_relations/contact_state_counts_type_spec.rb1041spec/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker_spec.rb1042spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb1043spec/lib/gitlab/middleware/query_analyzer_spec.rb1044spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb1045spec/lib/gitlab/gitaly_client/util_spec.rb1046spec/graphql/types/ci/runner_web_url_edge_spec.rb1047spec/workers/todos_destroyer/destroyed_designs_worker_spec.rb1048spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb1049spec/rubocop/cop/gitlab/intersect_spec.rb1050spec/graphql/types/permission_types/ci/job_spec.rb1051spec/rubocop/cop/gemspec/avoid_executing_git_spec.rb1052spec/graphql/types/permission_types/project_spec.rb1053spec/helpers/routing/packages_helper_spec.rb1054spec/graphql/types/work_items/widgets/description_type_spec.rb1055Filter specs:1056Running specs:1057Running all node tests without filter1058spec/policies/project_policy_spec.rb1059spec/services/quick_actions/interpret_service_spec.rb1060spec/services/merge_requests/create_from_issue_service_spec.rb1061spec/workers/packages/debian/generate_distribution_worker_spec.rb1062spec/models/concerns/deployment_platform_spec.rb1063spec/models/clusters/platforms/kubernetes_spec.rb1064spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb1065spec/lib/gitlab/asciidoc_spec.rb1066spec/models/resource_milestone_event_spec.rb1067spec/services/merge_requests/close_service_spec.rb1068spec/lib/banzai/reference_parser/snippet_parser_spec.rb1069spec/services/merge_requests/reopen_service_spec.rb1070spec/workers/packages/maven/metadata/sync_worker_spec.rb1071spec/finders/ci/runner_jobs_finder_spec.rb1072spec/services/search/global_service_spec.rb1073spec/services/system_note_service_spec.rb1074spec/models/notification_recipient_spec.rb1075spec/lib/gitlab/json_cache_spec.rb1076spec/tasks/gitlab/db/validate_config_rake_spec.rb1077spec/lib/gitlab/hashed_storage/migrator_spec.rb1078spec/models/namespace_setting_spec.rb1079spec/support_specs/helpers/stub_feature_flags_spec.rb1080spec/lib/gitlab/import_export/group/legacy_tree_restorer_spec.rb1081spec/lib/gitlab/database/with_lock_retries_spec.rb1082spec/lib/gitlab/background_migration/populate_topics_non_private_projects_count_spec.rb1083spec/services/projects/update_pages_service_spec.rb1084spec/lib/gitlab/ci/runner_upgrade_check_spec.rb1085spec/services/namespaces/in_product_marketing_emails_service_spec.rb1086spec/services/groups/group_links/create_service_spec.rb1087spec/lib/gitlab/background_migration/populate_container_repository_migration_plan_spec.rb1088spec/lib/gitlab/auth/request_authenticator_spec.rb1089spec/services/labels/available_labels_service_spec.rb1090spec/serializers/note_entity_spec.rb1091spec/uploaders/pages/deployment_uploader_spec.rb1092spec/lib/gitlab/auth/ldap/person_spec.rb1093spec/services/issuable/common_system_notes_service_spec.rb1094spec/lib/gitlab/background_migration/remove_self_managed_wiki_notes_spec.rb1095spec/models/clusters/providers/gcp_spec.rb1096spec/services/import/github_service_spec.rb1097spec/lib/gitlab/data_builder/pipeline_spec.rb1098spec/lib/gitlab/redis/sessions_spec.rb1099spec/lib/gitlab/ci/config/entry/variables_spec.rb1100spec/services/deployments/archive_in_project_service_spec.rb1101spec/policies/user_policy_spec.rb1102spec/models/issue/metrics_spec.rb1103spec/lib/gitlab/background_migration/backfill_namespace_id_of_vulnerability_reads_spec.rb1104spec/lib/gitlab/redis/sidekiq_status_spec.rb1105spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb1106spec/graphql/resolvers/design_management/designs_resolver_spec.rb1107spec/models/work_item_spec.rb1108spec/services/bulk_imports/relation_export_service_spec.rb1109spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb1110spec/models/clusters/providers/aws_spec.rb1111spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb1112spec/services/repositories/housekeeping_service_spec.rb1113spec/initializers/secret_token_spec.rb1114spec/lib/gitlab/github_import/representation/diff_note_spec.rb1115spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb1116spec/lib/gitlab/file_hook_spec.rb1117spec/policies/deploy_keys_project_policy_spec.rb1118spec/lib/gitlab/robots_txt/parser_spec.rb1119spec/services/ci/generate_coverage_reports_service_spec.rb1120spec/lib/gitlab/quick_actions/command_definition_spec.rb1121spec/models/ci/pipeline_variable_spec.rb1122spec/lib/gitlab/background_migration/fix_merge_request_diff_commit_users_spec.rb1123spec/finders/packages/conan/package_file_finder_spec.rb1124spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb1125spec/services/web_hooks/log_execution_service_spec.rb1126spec/services/terraform/remote_state_handler_spec.rb1127spec/components/pajamas/badge_component_spec.rb1128spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb1129spec/finders/packages/go/version_finder_spec.rb1130spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb1131spec/services/ci/run_scheduled_build_service_spec.rb1132spec/workers/namespaces/process_sync_events_worker_spec.rb1133spec/workers/background_migration/ci_database_worker_spec.rb1134spec/lib/gitlab/ci/status/build/play_spec.rb1135spec/lib/gitlab/rack_attack/user_allowlist_spec.rb1136spec/services/merge_requests/mergeability/run_checks_service_spec.rb1137spec/lib/gitlab/middleware/compressed_json_spec.rb1138spec/lib/gitlab/git_spec.rb1139spec/lib/gitlab/web_ide/config/entry/global_spec.rb1140spec/workers/container_expiration_policy_worker_spec.rb1141spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb1142spec/models/integrations/shimo_spec.rb1143spec/models/integrations/mock_ci_spec.rbKnapsack report generator started!1144Run options: exclude {:quarantine=>true, :level=>"migration"}1145==> Starting Gitaly set up...1146==> Starting GitLab Elasticsearch Indexer set up...1147Test environment set up in 0.796392144 seconds1148ProjectPolicy1149 does not include the read permissions when the issue author is not a member of the private project1150 with no project feature1151 returns false1152 behaves like model with wiki policies1153 container_level: :public, access_level: :enabled, membership: :admin, access: :all1154 allows actions based on membership1155 container_level: :public, access_level: :enabled, membership: :maintainer, access: :maintainer1156 allows actions based on membership1157 container_level: :public, access_level: :enabled, membership: :developer, access: :developer1158 allows actions based on membership1159 container_level: :public, access_level: :enabled, membership: :reporter, access: :reporter1160 allows actions based on membership1161 container_level: :public, access_level: :enabled, membership: :guest, access: :guest1162 allows actions based on membership1163 container_level: :public, access_level: :enabled, membership: :non_member, access: :guest1164 allows actions based on membership1165 container_level: :public, access_level: :enabled, membership: :anonymous, access: :guest1166 allows actions based on membership1167 container_level: :public, access_level: :private, membership: :admin, access: :all1168 allows actions based on membership1169 container_level: :public, access_level: :private, membership: :maintainer, access: :maintainer1170 allows actions based on membership1171 container_level: :public, access_level: :private, membership: :developer, access: :developer1172 allows actions based on membership1173 container_level: :public, access_level: :private, membership: :reporter, access: :reporter1174 allows actions based on membership1175 container_level: :public, access_level: :private, membership: :guest, access: :guest1176 allows actions based on membership1177 container_level: :public, access_level: :private, membership: :non_member, access: nil1178 allows actions based on membership1179 container_level: :public, access_level: :private, membership: :anonymous, access: nil1180 allows actions based on membership1181 container_level: :public, access_level: :disabled, membership: :admin, access: nil1182 allows actions based on membership1183 container_level: :public, access_level: :disabled, membership: :maintainer, access: nil1184 allows actions based on membership1185 container_level: :public, access_level: :disabled, membership: :developer, access: nil1186 allows actions based on membership1187 container_level: :public, access_level: :disabled, membership: :reporter, access: nil1188 allows actions based on membership1189 container_level: :public, access_level: :disabled, membership: :guest, access: nil1190 allows actions based on membership1191 container_level: :public, access_level: :disabled, membership: :non_member, access: nil1192 allows actions based on membership1193 container_level: :public, access_level: :disabled, membership: :anonymous, access: nil1194 allows actions based on membership1195 container_level: :internal, access_level: :enabled, membership: :admin, access: :all1196 allows actions based on membership1197 container_level: :internal, access_level: :enabled, membership: :maintainer, access: :maintainer1198 allows actions based on membership1199 container_level: :internal, access_level: :enabled, membership: :developer, access: :developer1200 allows actions based on membership1201 container_level: :internal, access_level: :enabled, membership: :reporter, access: :reporter1202 allows actions based on membership1203 container_level: :internal, access_level: :enabled, membership: :guest, access: :guest1204 allows actions based on membership1205 container_level: :internal, access_level: :enabled, membership: :non_member, access: :guest1206 allows actions based on membership1207 container_level: :internal, access_level: :enabled, membership: :anonymous, access: nil1208 allows actions based on membership1209 container_level: :internal, access_level: :private, membership: :admin, access: :all1210 allows actions based on membership1211 container_level: :internal, access_level: :private, membership: :maintainer, access: :maintainer1212 allows actions based on membership1213 container_level: :internal, access_level: :private, membership: :developer, access: :developer1214 allows actions based on membership1215 container_level: :internal, access_level: :private, membership: :reporter, access: :reporter1216 allows actions based on membership1217 container_level: :internal, access_level: :private, membership: :guest, access: :guest1218 allows actions based on membership1219 container_level: :internal, access_level: :private, membership: :non_member, access: nil1220 allows actions based on membership1221 container_level: :internal, access_level: :private, membership: :anonymous, access: nil1222 allows actions based on membership1223 container_level: :internal, access_level: :disabled, membership: :admin, access: nil1224 allows actions based on membership1225 container_level: :internal, access_level: :disabled, membership: :maintainer, access: nil1226 allows actions based on membership1227 container_level: :internal, access_level: :disabled, membership: :developer, access: nil1228 allows actions based on membership1229 container_level: :internal, access_level: :disabled, membership: :reporter, access: nil1230 allows actions based on membership1231 container_level: :internal, access_level: :disabled, membership: :guest, access: nil1232 allows actions based on membership1233 container_level: :internal, access_level: :disabled, membership: :non_member, access: nil1234 allows actions based on membership1235 container_level: :internal, access_level: :disabled, membership: :anonymous, access: nil1236 allows actions based on membership1237 container_level: :private, access_level: :private, membership: :admin, access: :all1238 allows actions based on membership1239 container_level: :private, access_level: :private, membership: :maintainer, access: :maintainer1240 allows actions based on membership1241 container_level: :private, access_level: :private, membership: :developer, access: :developer1242 allows actions based on membership1243 container_level: :private, access_level: :private, membership: :reporter, access: :reporter1244 allows actions based on membership1245 container_level: :private, access_level: :private, membership: :guest, access: :guest1246 allows actions based on membership1247 container_level: :private, access_level: :private, membership: :non_member, access: nil1248 allows actions based on membership1249 container_level: :private, access_level: :private, membership: :anonymous, access: nil1250 allows actions based on membership1251 container_level: :private, access_level: :disabled, membership: :admin, access: nil1252 allows actions based on membership1253 container_level: :private, access_level: :disabled, membership: :maintainer, access: nil1254 allows actions based on membership1255 container_level: :private, access_level: :disabled, membership: :developer, access: nil1256 allows actions based on membership1257 container_level: :private, access_level: :disabled, membership: :reporter, access: nil1258 allows actions based on membership1259 container_level: :private, access_level: :disabled, membership: :guest, access: nil1260 allows actions based on membership1261 container_level: :private, access_level: :disabled, membership: :non_member, access: nil1262 allows actions based on membership1263 container_level: :private, access_level: :disabled, membership: :anonymous, access: nil1264 allows actions based on membership1265 issues feature1266 when the feature is disabled1267 does not include the issues permissions1268 disables boards and lists permissions1269 when external tracker configured1270 does not include the issues permissions1271 merge requests feature1272 disallows all permissions when the feature is disabled1273 for a guest in a private project1274 disallows the guest from all merge request permissions1275 when both issues and merge requests are disabled1276 does not include the issues permissions1277 creating_merge_request_in1278 when the current_user can download_code1279 when project is public1280 when the current_user is guest1281 is expected to be allowed :create_merge_request_in1282 when project is internal1283 when the current_user is guest1284 is expected to be allowed :create_merge_request_in1285 when project is private1286 when the current_user is guest1287 is expected not to be allowed :create_merge_request_in1288 when the current_user is reporter or above1289 is expected to be allowed :create_merge_request_in1290 when the current_user can not download code1291 when project is public1292 when the current_user is guest1293 is expected not to be allowed :create_merge_request_in1294 when project is internal1295 when the current_user is guest1296 is expected not to be allowed :create_merge_request_in1297 when project is private1298 when the current_user is guest1299 is expected not to be allowed :create_merge_request_in1300 when the current_user is reporter or above1301 is expected not to be allowed :create_merge_request_in1302 pipeline feature1303 for confirmed user1304 allows modify pipelines1305 for unconfirmed user1306 disallows to modify pipelines1307 destroy permission1308 for developers1309 prevents :destroy_pipeline1310 for maintainers1311 prevents :destroy_pipeline1312 for project owner1313 allows :destroy_pipeline1314 on archived projects1315 prevents :destroy_pipeline1316 on archived pending_delete projects1317 allows :destroy_pipeline1318 builds feature1319 when builds are disabled1320 disallows all permissions except pipeline when the feature is disabled1321 when builds are disabled only for some users1322 disallows pipeline and commit_status permissions1323 repository feature1324 when user is a project member1325 when it is disabled1326 disallows all permissions1327 when user is non-member1328 when access level is private1329 disallows all permissions1330 behaves like project policies as anonymous1331 abilities for public projects1332 when a project has pending invites1333 does not grant owner access1334 behaves like archived project policies1335 when the project is archived1336 disables write actions on all relevant project features1337 disables some other important write actions1338 does not disable other abilities1339 abilities for non-public projects1340 is expected to be banned1341 behaves like project policies as guest1342 as a direct project member1343 abilities for public projects1344 is expected not to be allowed :set_note_created_at1345 abilities for non-public projects1346 is expected not to be allowed :set_note_created_at1347 behaves like deploy token does not get confused with user1348 is expected not to be allowed :set_note_created_at1349 behaves like archived project policies1350 when the project is archived1351 disables write actions on all relevant project features1352 disables some other important write actions1353 does not disable other abilities1354 public builds enabled1355 is expected to be allowed :read_pipeline1356 when public builds disabled1357 is expected not to be allowed :read_pipeline1358 when builds are disabled1359 is expected to be allowed :read_pipeline1360 as an inherited member from the group1361 abilities for private projects1362 is expected not to be allowed :set_note_created_at1363 behaves like project policies as reporter1364 abilities for non-public projects1365 is expected not to be allowed :set_note_created_at1366 behaves like deploy token does not get confused with user1367 is expected not to be allowed :set_note_created_at1368 behaves like archived project policies1369 when the project is archived1370 disables write actions on all relevant project features1371 disables some other important write actions1372 does not disable other abilities1373 as an inherited member from the group1374 abilities for private projects1375 is expected not to be allowed :set_note_created_at1376 behaves like project policies as developer1377 abilities for non-public projects1378 is expected not to be allowed :set_note_created_at1379 behaves like deploy token does not get confused with user1380 is expected not to be allowed :set_note_created_at1381 behaves like archived project policies1382 when the project is archived1383 disables write actions on all relevant project features1384 disables some other important write actions1385 does not disable other abilities1386 as an inherited member from the group1387 abilities for private projects1388 is expected not to be allowed :set_note_created_at1389 behaves like project policies as maintainer1390 abilities for non-public projects1391 is expected not to be allowed :set_note_created_at1392 behaves like deploy token does not get confused with user1393 is expected not to be allowed :set_note_created_at1394 behaves like archived project policies1395 when the project is archived1396 disables write actions on all relevant project features1397 disables some other important write actions1398 does not disable other abilities1399 behaves like project policies as owner1400 abilities for non-public projects1401 is expected to be allowed :set_note_created_at1402 behaves like deploy token does not get confused with user1403 is expected not to be allowed :set_note_created_at1404 behaves like archived project policies1405 when the project is archived1406 disables write actions on all relevant project features1407 disables some other important write actions1408 does not disable other abilities1409 behaves like project policies as admin with admin mode1410 abilities for non-public projects1411 is expected to be allowed :set_note_created_at1412 deploy token does not get confused with user1413 is expected not to be allowed :set_note_created_at1414 behaves like archived project policies1415 when the project is archived1416 disables write actions on all relevant project features1417 disables some other important write actions1418 does not disable other abilities1419 abilities for all project visibility1420 behaves like project private features with read_all_resources ability1421 for public projects1422 allows the download_code ability1423 for internal projects1424 allows the download_code ability1425 for private projects1426 allows the download_code ability1427 behaves like project policies as admin without admin mode1428 abilities for non-public projects1429 is expected to be banned1430 deploy token does not get confused with user1431 is expected to be banned1432 when a public project has merge requests allowing access1433 does not allow pushing code1434 allows pushing if the user is a member with push access to the target project1435 disallows abilities to a maintainer if the merge request was closed1436 importing members from another project1437 with maintainer1438 is expected to be allowed :import_project_members_from_another_project1439 with owner1440 is expected to be allowed :import_project_members_from_another_project1441 with guest1442 is expected to be disallowed :import_project_members_from_another_project1443 with reporter1444 is expected to be disallowed :import_project_members_from_another_project1445 with developer1446 is expected to be disallowed :import_project_members_from_another_project1447 with anonymous1448 is expected to be disallowed :import_project_members_from_another_project1449 with an admin1450 when admin mode is enabled1451 is expected to be allowed :import_project_members_from_another_project1452 when admin mode is disabled1453 is expected not to be allowed :import_project_members_from_another_project1454 reading usage quotas1455 with maintainer1456 is expected to be allowed :read_usage_quotas1457 with owner1458 is expected to be allowed :read_usage_quotas1459 with guest1460 is expected to be disallowed :read_usage_quotas1461 with reporter1462 is expected to be disallowed :read_usage_quotas1463 with developer1464 is expected to be disallowed :read_usage_quotas1465 with anonymous1466 is expected to be disallowed :read_usage_quotas1467 with an admin1468 when admin mode is enabled1469 is expected to be allowed :read_usage_quotas1470 when admin mode is disabled1471 is expected not to be allowed :read_usage_quotas1472 behaves like clusterable policies1473 #add_cluster?1474 with a reporter1475 is expected not to be allowed :read_cluster1476 is expected not to be allowed :add_cluster1477 is expected not to be allowed :create_cluster1478 is expected not to be allowed :update_cluster1479 is expected not to be allowed :admin_cluster1480 with a developer1481 is expected to be allowed :read_cluster1482 is expected not to be allowed :add_cluster1483 is expected not to be allowed :create_cluster1484 is expected not to be allowed :update_cluster1485 is expected not to be allowed :admin_cluster1486 with a maintainer1487 with no clusters1488 is expected to be allowed :read_cluster1489 is expected to be allowed :add_cluster1490 is expected to be allowed :create_cluster1491 is expected to be allowed :update_cluster1492 is expected to be allowed :admin_cluster1493 owner access1494 personal project1495 allows owner access1496 group project1497 group members1498 allows owner access1499 with timeline event tags1500 when user is member of the project1501 allows access to timeline event tags1502 when user is a maintainer/owner1503 allows to create timeline event tags1504 when user is a developer/guest/reporter1505 disallows creation1506 when user is not a member of the project1507 disallows access to the timeline event tags1508 reading a project1509 allows access when a user has read access to the repo1510 never checks the external service1511 with an external authorization service1512 allows access when the external service allows it1513 prevents all but seeing a public project in a list when access is denied1514 passes the full path to external authorization for logging purposes1515 with an admin1516 when admin mode is enabled1517 does not check the external service and allows access1518 when admin mode is disabled1519 checks the external service and allows access1520 forking a project1521 anonymous user1522 is expected to be disallowed :fork_project1523 project member1524 guest1525 is expected to be disallowed :fork_project1526 reporter1527 is expected to be allowed :fork_project1528 developer1529 is expected to be allowed :fork_project1530 maintainer1531 is expected to be allowed :fork_project1532 create_task1533 when user is member of the project1534 is expected to be allowed :create_task1535 update_max_artifacts_size1536 when no user1537 is expected not to be allowed :update_max_artifacts_size1538 admin1539 when admin mode is enabled1540 is expected to be allowed :update_max_artifacts_size1541 when admin mode is disabled1542 is expected not to be allowed :update_max_artifacts_size1543 guest1544 is expected not to be allowed :update_max_artifacts_size1545 reporter1546 is expected not to be allowed :update_max_artifacts_size1547 developer1548 is expected not to be allowed :update_max_artifacts_size1549 maintainer1550 is expected not to be allowed :update_max_artifacts_size1551 owner1552 is expected not to be allowed :update_max_artifacts_size1553 read_storage_disk_path1554 when no user1555 is expected not to be allowed :read_storage_disk_path1556 admin1557 when admin mode is enabled1558 is expected to be allowed :read_storage_disk_path1559 when admin mode is disabled1560 is expected not to be allowed :read_storage_disk_path1561 guest1562 is expected not to be allowed :read_storage_disk_path1563 reporter1564 is expected not to be allowed :read_storage_disk_path1565 developer1566 is expected not to be allowed :read_storage_disk_path1567 maintainer1568 is expected not to be allowed :read_storage_disk_path1569 owner1570 is expected not to be allowed :read_storage_disk_path1571 alert bot1572 is expected to be allowed :reporter_access1573 within a private project1574 is expected to be allowed :admin_issue1575 set_pipeline_variables1576 when user is developer1577 when project allows user defined variables1578 is expected to be allowed :set_pipeline_variables1579 when project restricts use of user defined variables1580 is expected not to be allowed :set_pipeline_variables1581 when user is maintainer1582 when project allows user defined variables1583 is expected to be allowed :set_pipeline_variables1584 when project restricts use of user defined variables1585 is expected to be allowed :set_pipeline_variables1586 support bot1587 with service desk disabled1588 is expected to be allowed :public_access1589 is expected not to be allowed :read_project1590 with service desk enabled1591 is expected to be allowed :read_work_item1592 when issues are protected members only1593 is expected to be allowed :read_work_item1594 project bots1595 project_bot_access1596 when regular user and part of the project1597 is expected not to be allowed :project_bot_access1598 when project bot and not part of the project1599 is expected not to be allowed :project_bot_access1600 when project bot and part of the project1601 is expected to be allowed :project_bot_access1602 with resource access tokens1603 is expected not to be allowed :create_resource_access_tokens1604 read_prometheus_alerts1605 with admin1606 when admin mode is enabled1607 is expected to be allowed :read_prometheus_alerts1608 when admin mode is disabled1609 is expected to be disallowed :read_prometheus_alerts1610 with owner1611 is expected to be allowed :read_prometheus_alerts1612 with maintainer1613 is expected to be allowed :read_prometheus_alerts1614 with developer1615 is expected to be disallowed :read_prometheus_alerts1616 with reporter1617 is expected to be disallowed :read_prometheus_alerts1618 with guest1619 is expected to be disallowed :read_prometheus_alerts1620 with anonymous1621 is expected to be disallowed :read_prometheus_alerts1622 metrics_dashboard feature1623 public project1624 feature private1625 with reporter1626 is expected to be allowed :metrics_dashboard1627 is expected to be allowed :read_prometheus1628 is expected to be allowed :read_deployment1629 is expected to be allowed :read_metrics_user_starred_dashboard1630 is expected to be allowed :create_metrics_user_starred_dashboard1631 with guest1632 is expected to be disallowed :metrics_dashboard1633 with anonymous1634 is expected to be disallowed :metrics_dashboard1635 feature enabled1636 with reporter1637 is expected to be allowed :metrics_dashboard1638 is expected to be allowed :read_prometheus1639 is expected to be allowed :read_deployment1640 is expected to be allowed :read_metrics_user_starred_dashboard1641 is expected to be allowed :create_metrics_user_starred_dashboard1642 with guest1643 is expected to be allowed :metrics_dashboard1644 is expected to be allowed :read_prometheus1645 is expected to be allowed :read_deployment1646 is expected to be allowed :read_metrics_user_starred_dashboard1647 is expected to be allowed :create_metrics_user_starred_dashboard1648 with anonymous1649 is expected to be allowed :metrics_dashboard1650 is expected to be allowed :read_prometheus1651 is expected to be allowed :read_deployment1652 is expected to be disallowed :read_metrics_user_starred_dashboard1653 is expected to be disallowed :create_metrics_user_starred_dashboard1654 internal project1655 feature private1656 with reporter1657 is expected to be allowed :metrics_dashboard1658 is expected to be allowed :read_prometheus1659 is expected to be allowed :read_deployment1660 is expected to be allowed :read_metrics_user_starred_dashboard1661 is expected to be allowed :create_metrics_user_starred_dashboard1662 with guest1663 is expected to be disallowed :metrics_dashboard1664 with anonymous1665 is expected to be disallowed :metrics_dashboard1666 feature enabled1667 with reporter1668 is expected to be allowed :metrics_dashboard1669 is expected to be allowed :read_prometheus1670 is expected to be allowed :read_deployment1671 is expected to be allowed :read_metrics_user_starred_dashboard1672 is expected to be allowed :create_metrics_user_starred_dashboard1673 with guest1674 is expected to be allowed :metrics_dashboard1675 is expected to be allowed :read_prometheus1676 is expected to be allowed :read_deployment1677 is expected to be allowed :read_metrics_user_starred_dashboard1678 is expected to be allowed :create_metrics_user_starred_dashboard1679 with anonymous1680 is expected to be disallowed :metrics_dashboard1681 private project1682 feature private1683 with reporter1684 is expected to be allowed :metrics_dashboard1685 is expected to be allowed :read_prometheus1686 is expected to be allowed :read_deployment1687 is expected to be allowed :read_metrics_user_starred_dashboard1688 is expected to be allowed :create_metrics_user_starred_dashboard1689 with guest1690 is expected to be disallowed :metrics_dashboard1691 with anonymous1692 is expected to be disallowed :metrics_dashboard1693 feature enabled1694 with reporter1695 is expected to be allowed :metrics_dashboard1696 is expected to be allowed :read_prometheus1697 is expected to be allowed :read_deployment1698 is expected to be allowed :read_metrics_user_starred_dashboard1699 is expected to be allowed :create_metrics_user_starred_dashboard1700 with guest1701 is expected to be disallowed :metrics_dashboard1702 with anonymous1703 is expected to be disallowed :metrics_dashboard1704 feature disabled1705 with reporter1706 is expected to be disallowed :metrics_dashboard1707 with guest1708 is expected to be disallowed :metrics_dashboard1709 with anonymous1710 is expected to be disallowed :metrics_dashboard1711 deploy key access1712 private project1713 when a read deploy key is enabled in the project1714 is expected to be allowed :download_code1715 is expected to be disallowed :push_code1716 is expected to be disallowed :read_project1717 when a write deploy key is enabled in the project1718 is expected to be allowed :download_code1719 is expected to be allowed :push_code1720 is expected to be disallowed :read_project1721 when the deploy key is not enabled in the project1722 is expected to be disallowed :download_code1723 is expected to be disallowed :push_code1724 is expected to be disallowed :read_project1725 deploy token access1726 private project1727 a deploy token with read_registry scope1728 is expected to be allowed :read_container_image1729 is expected to be disallowed :create_container_image1730 with registry disabled1731 is expected to be disallowed :read_container_image1732 is expected to be disallowed :create_container_image1733 a deploy token with write_registry scope1734 is expected to be disallowed :read_container_image1735 is expected to be allowed :create_container_image1736 with registry disabled1737 is expected to be disallowed :read_container_image1738 is expected to be disallowed :create_container_image1739 a deploy token with no registry scope1740 is expected to be disallowed :read_container_image1741 is expected to be disallowed :create_container_image1742 a deploy token with read_package_registry scope1743 is expected to be allowed :read_project1744 is expected to be allowed :read_package1745 is expected to be disallowed :create_package1746 behaves like package access with repository disabled1747 is expected to be allowed :read_package1748 a deploy token with write_package_registry scope1749 is expected to be allowed :create_package1750 is expected to be allowed :read_package1751 is expected to be allowed :read_project1752 is expected to be disallowed :destroy_package1753 behaves like package access with repository disabled1754 is expected to be allowed :read_package1755 public project1756 a deploy token with read_registry scope1757 is expected to be allowed :read_container_image1758 is expected to be disallowed :create_container_image1759 with registry disabled1760 is expected to be disallowed :read_container_image1761 is expected to be disallowed :create_container_image1762 with registry private1763 is expected to be allowed :read_container_image1764 is expected to be disallowed :create_container_image1765 a deploy token with write_registry scope1766 is expected to be allowed :read_container_image1767 is expected to be allowed :create_container_image1768 with registry disabled1769 is expected to be disallowed :read_container_image1770 is expected to be disallowed :create_container_image1771 with registry private1772 is expected to be allowed :read_container_image1773 is expected to be allowed :create_container_image1774 a deploy token with no registry scope1775 is expected to be disallowed :read_container_image1776 is expected to be disallowed :create_container_image1777 create_web_ide_terminal1778 with admin1779 when admin mode enabled1780 is expected to be allowed :create_web_ide_terminal1781 when admin mode disabled1782 is expected to be disallowed :create_web_ide_terminal1783 with owner1784 is expected to be allowed :create_web_ide_terminal1785 with maintainer1786 is expected to be allowed :create_web_ide_terminal1787 with developer1788 is expected to be disallowed :create_web_ide_terminal1789 with reporter1790 is expected to be disallowed :create_web_ide_terminal1791 with guest1792 is expected to be disallowed :create_web_ide_terminal1793 with non member1794 is expected to be disallowed :create_web_ide_terminal1795 with anonymous1796 is expected to be disallowed :create_web_ide_terminal1797 read_repository_graphs1798 when user can download_code1799 is expected to be allowed :read_repository_graphs1800 when user cannot download_code1801 is expected to be disallowed :read_repository_graphs1802 security configuration feature1803 guest1804 prevents reading security configuration1805 reporter1806 prevents reading security configuration1807 developer1808 allows reading security configuration1809 maintainer1810 allows reading security configuration1811 owner1812 allows reading security configuration1813 infrastructure google cloud feature1814 guest1815 disallows managing google cloud1816 reporter1817 disallows managing google cloud1818 developer1819 disallows managing google cloud1820 maintainer1821 allows managing google cloud1822 owner1823 allows managing google cloud1824 design permissions1825 when design management is not available1826 is expected not to be allowed :read_design_activity and :read_design1827 when design management is available1828 is expected to be allowed :read_design_activity and :read_design1829 read_build_report_results1830 when user can read_build and read_pipeline1831 is expected to be allowed :read_build_report_results1832 when user can read_build but cannot read_pipeline1833 is expected to be disallowed :read_build_report_results1834 when user cannot read_build but can read_pipeline1835 is expected to be disallowed :read_build_report_results1836 when user cannot read_build and cannot read_pipeline1837 is expected to be disallowed :read_build_report_results1838 read_package1839 with admin1840 is expected to be allowed :read_package1841 behaves like package access with repository disabled1842 is expected to be allowed :read_package1843 with owner1844 is expected to be allowed :read_package1845 with maintainer1846 is expected to be allowed :read_package1847 with developer1848 is expected to be allowed :read_package1849 with reporter1850 is expected to be allowed :read_package1851 with guest1852 is expected to be allowed :read_package1853 with non member1854 is expected to be allowed :read_package1855 with anonymous1856 is expected to be allowed :read_package1857 admin_package1858 with admin1859 when admin mode enabled1860 is expected to be allowed :admin_package1861 when admin mode disabled1862 is expected to be disallowed :admin_package1863 with owner1864 is expected to be allowed :admin_package1865 with maintainer1866 is expected to be allowed :admin_package1867 with developer1868 is expected to be disallowed :admin_package1869 with reporter1870 is expected to be disallowed :admin_package1871 with guest1872 is expected to be disallowed :admin_package1873 with non_member1874 is expected to be disallowed :admin_package1875 with anonymous1876 is expected to be disallowed :admin_package1877 view_package_registry_project_settings1878 with packages disabled and1879 with registry enabled1880 with an admin user1881 when admin mode enabled1882 is expected to be allowed :view_package_registry_project_settings1883 when admin mode disabled1884 is expected to be disallowed :view_package_registry_project_settings1885 with owner1886 is expected to be allowed :view_package_registry_project_settings1887 with maintainer1888 is expected to be allowed :view_package_registry_project_settings1889 with developer1890 is expected to be disallowed :view_package_registry_project_settings1891 with reporter1892 is expected to be disallowed :view_package_registry_project_settings1893 with guest1894 is expected to be disallowed :view_package_registry_project_settings1895 with non_member1896 is expected to be disallowed :view_package_registry_project_settings1897 with anonymous1898 is expected to be disallowed :view_package_registry_project_settings1899 with registry disabled1900 with admin user1901 when admin mode enabled1902 is expected to be disallowed :view_package_registry_project_settings1903 when admin mode disabled1904 is expected to be disallowed :view_package_registry_project_settings1905 with owner1906 is expected to be disallowed :view_package_registry_project_settings1907 with maintainer1908 is expected to be disallowed :view_package_registry_project_settings1909 with developer1910 is expected to be disallowed :view_package_registry_project_settings1911 with reporter1912 is expected to be disallowed :view_package_registry_project_settings1913 with guest1914 is expected to be disallowed :view_package_registry_project_settings1915 with non_member1916 is expected to be disallowed :view_package_registry_project_settings1917 with anonymous1918 is expected to be disallowed :view_package_registry_project_settings1919 with registry disabled and1920 with packages enabled1921 with an admin user1922 when admin mode enabled1923 is expected to be allowed :view_package_registry_project_settings1924 when admin mode disabled1925 is expected to be disallowed :view_package_registry_project_settings1926 with owner1927 is expected to be allowed :view_package_registry_project_settings1928 with maintainer1929 is expected to be allowed :view_package_registry_project_settings1930 with developer1931 is expected to be disallowed :view_package_registry_project_settings1932 with reporter1933 is expected to be disallowed :view_package_registry_project_settings1934 with guest1935 is expected to be disallowed :view_package_registry_project_settings1936 with non_member1937 is expected to be disallowed :view_package_registry_project_settings1938 with anonymous1939 is expected to be disallowed :view_package_registry_project_settings1940 with packages disabled1941 with admin user1942 when admin mode enabled1943 is expected to be disallowed :view_package_registry_project_settings1944 when admin mode disabled1945 is expected to be disallowed :view_package_registry_project_settings1946 with owner1947 is expected to be disallowed :view_package_registry_project_settings1948 with maintainer1949 is expected to be disallowed :view_package_registry_project_settings1950 with developer1951 is expected to be disallowed :view_package_registry_project_settings1952 with reporter1953 is expected to be disallowed :view_package_registry_project_settings1954 with guest1955 is expected to be disallowed :view_package_registry_project_settings1956 with non_member1957 is expected to be disallowed :view_package_registry_project_settings1958 with anonymous1959 is expected to be disallowed :view_package_registry_project_settings1960 with registry & packages both disabled1961 with admin user1962 when admin mode enabled1963 is expected to be disallowed :view_package_registry_project_settings1964 when admin mode disabled1965 is expected to be disallowed :view_package_registry_project_settings1966 with owner1967 is expected to be disallowed :view_package_registry_project_settings1968 with maintainer1969 is expected to be disallowed :view_package_registry_project_settings1970 with developer1971 is expected to be disallowed :view_package_registry_project_settings1972 with reporter1973 is expected to be disallowed :view_package_registry_project_settings1974 with guest1975 is expected to be disallowed :view_package_registry_project_settings1976 with non_member1977 is expected to be disallowed :view_package_registry_project_settings1978 with anonymous1979 is expected to be disallowed :view_package_registry_project_settings1980 read_feature_flag1981 with maintainer1982 when repository is available1983 is expected to be allowed :read_feature_flag1984 when repository is disabled1985 is expected to be disallowed :read_feature_flag1986 with developer1987 when repository is available1988 is expected to be allowed :read_feature_flag1989 with reporter1990 when repository is available1991 is expected to be disallowed :read_feature_flag1992 read_analytics1993 anonymous user1994 is expected to be allowed :read_analytics1995 with various analytics features1996 when analytics is disabled for the project1997 for guest user1998 is expected to be disallowed :read_cycle_analytics1999 is expected to be disallowed :read_insights2000 is expected to be disallowed :read_repository_graphs2001 is expected to be disallowed :read_ci_cd_analytics2002 for reporter user2003 is expected to be disallowed :read_cycle_analytics2004 is expected to be disallowed :read_insights2005 is expected to be disallowed :read_repository_graphs2006 is expected to be disallowed :read_ci_cd_analytics2007 for developer2008 is expected to be disallowed :read_cycle_analytics2009 is expected to be disallowed :read_insights2010 is expected to be disallowed :read_repository_graphs2011 is expected to be disallowed :read_ci_cd_analytics2012 when analytics is private for the project2013 for guest user2014 is expected to be allowed :read_cycle_analytics2015 is expected to be allowed :read_insights2016 is expected to be disallowed :read_repository_graphs2017 is expected to be disallowed :read_ci_cd_analytics2018 for reporter user2019 is expected to be allowed :read_cycle_analytics2020 is expected to be allowed :read_insights2021 is expected to be allowed :read_repository_graphs2022 is expected to be allowed :read_ci_cd_analytics2023 for developer2024 is expected to be allowed :read_cycle_analytics2025 is expected to be allowed :read_insights2026 is expected to be allowed :read_repository_graphs2027 is expected to be allowed :read_ci_cd_analytics2028 when analytics is enabled for the project2029 for guest user2030 is expected to be allowed :read_cycle_analytics2031 is expected to be allowed :read_insights2032 is expected to be disallowed :read_repository_graphs2033 is expected to be disallowed :read_ci_cd_analytics2034 for reporter user2035 is expected to be allowed :read_cycle_analytics2036 is expected to be allowed :read_insights2037 is expected to be allowed :read_repository_graphs2038 is expected to be allowed :read_ci_cd_analytics2039 for developer2040 is expected to be allowed :read_cycle_analytics2041 is expected to be allowed :read_insights2042 is expected to be allowed :read_repository_graphs2043 is expected to be allowed :read_ci_cd_analytics2044 project member2045 guest2046 is expected to be allowed :read_analytics2047 without access to Analytics2048 is expected to be disallowed :read_analytics2049 reporter2050 is expected to be allowed :read_analytics2051 without access to Analytics2052 is expected to be disallowed :read_analytics2053 developer2054 is expected to be allowed :read_analytics2055 without access to Analytics2056 is expected to be disallowed :read_analytics2057 maintainer2058 is expected to be allowed :read_analytics2059 without access to Analytics2060 is expected to be disallowed :read_analytics2061 read_ci_cd_analytics2062 public project2063 when public pipelines are disabled for the project2064 project member2065 guest2066 is expected to be disallowed :read_ci_cd_analytics2067 reporter2068 is expected to be allowed :read_ci_cd_analytics2069 developer2070 is expected to be allowed :read_ci_cd_analytics2071 maintainer2072 is expected to be allowed :read_ci_cd_analytics2073 non member2074 is expected to be disallowed :read_ci_cd_analytics2075 anonymous2076 is expected to be disallowed :read_ci_cd_analytics2077 when public pipelines are enabled for the project2078 project member2079 guest2080 is expected to be allowed :read_ci_cd_analytics2081 reporter2082 is expected to be allowed :read_ci_cd_analytics2083 developer2084 is expected to be allowed :read_ci_cd_analytics2085 maintainer2086 is expected to be allowed :read_ci_cd_analytics2087 non member2088 is expected to be allowed :read_ci_cd_analytics2089 anonymous2090 is expected to be allowed :read_ci_cd_analytics2091 private project2092 project member2093 guest2094 is expected to be disallowed :read_ci_cd_analytics2095 reporter2096 is expected to be allowed :read_ci_cd_analytics2097 developer2098 is expected to be allowed :read_ci_cd_analytics2099 maintainer2100 is expected to be allowed :read_ci_cd_analytics2101 non member2102 is expected to be disallowed :read_ci_cd_analytics2103 anonymous2104 is expected to be disallowed :read_ci_cd_analytics2105 behaves like Self-managed Core resource access tokens2106 with owner access2107 create resource access tokens2108 is expected to be allowed :create_resource_access_tokens2109 when resource access token creation is not allowed2110 is expected not to be allowed :create_resource_access_tokens2111 when parent group has project access token creation disabled2112 is expected not to be allowed :create_resource_access_tokens2113 with a personal namespace project2114 is expected to be allowed :create_resource_access_tokens2115 read resource access tokens2116 is expected to be allowed :read_resource_access_tokens2117 destroy resource access tokens2118 is expected to be allowed :destroy_resource_access_tokens2119 with developer access2120 create resource access tokens2121 is expected not to be allowed :create_resource_access_tokens2122 read resource access tokens2123 is expected not to be allowed :read_resource_access_tokens2124 destroy resource access tokens2125 is expected not to be allowed :destroy_resource_access_tokens2126 operations feature2127 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2128 allows/disallows the abilities based on the operation feature access level2129 project_visibility: :public, access_level: 20, role: :developer, allowed: true2130 allows/disallows the abilities based on the operation feature access level2131 project_visibility: :public, access_level: 20, role: :guest, allowed: true2132 allows/disallows the abilities based on the operation feature access level2133 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2134 allows/disallows the abilities based on the operation feature access level2135 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2136 allows/disallows the abilities based on the operation feature access level2137 project_visibility: :public, access_level: 10, role: :developer, allowed: true2138 allows/disallows the abilities based on the operation feature access level2139 project_visibility: :public, access_level: 10, role: :guest, allowed: true2140 allows/disallows the abilities based on the operation feature access level2141 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2142 allows/disallows the abilities based on the operation feature access level2143 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2144 allows/disallows the abilities based on the operation feature access level2145 project_visibility: :public, access_level: 0, role: :developer, allowed: false2146 allows/disallows the abilities based on the operation feature access level2147 project_visibility: :public, access_level: 0, role: :guest, allowed: false2148 allows/disallows the abilities based on the operation feature access level2149 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2150 allows/disallows the abilities based on the operation feature access level2151 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2152 allows/disallows the abilities based on the operation feature access level2153 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2154 allows/disallows the abilities based on the operation feature access level2155 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2156 allows/disallows the abilities based on the operation feature access level2157 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2158 allows/disallows the abilities based on the operation feature access level2159 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2160 allows/disallows the abilities based on the operation feature access level2161 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2162 allows/disallows the abilities based on the operation feature access level2163 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2164 allows/disallows the abilities based on the operation feature access level2165 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2166 allows/disallows the abilities based on the operation feature access level2167 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2168 allows/disallows the abilities based on the operation feature access level2169 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2170 allows/disallows the abilities based on the operation feature access level2171 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2172 allows/disallows the abilities based on the operation feature access level2173 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2174 allows/disallows the abilities based on the operation feature access level2175 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2176 allows/disallows the abilities based on the operation feature access level2177 project_visibility: :private, access_level: 20, role: :developer, allowed: true2178 allows/disallows the abilities based on the operation feature access level2179 project_visibility: :private, access_level: 20, role: :guest, allowed: false2180 allows/disallows the abilities based on the operation feature access level2181 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2182 allows/disallows the abilities based on the operation feature access level2183 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2184 allows/disallows the abilities based on the operation feature access level2185 project_visibility: :private, access_level: 10, role: :developer, allowed: true2186 allows/disallows the abilities based on the operation feature access level2187 project_visibility: :private, access_level: 10, role: :guest, allowed: false2188 allows/disallows the abilities based on the operation feature access level2189 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2190 allows/disallows the abilities based on the operation feature access level2191 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2192 allows/disallows the abilities based on the operation feature access level2193 project_visibility: :private, access_level: 0, role: :developer, allowed: false2194 allows/disallows the abilities based on the operation feature access level2195 project_visibility: :private, access_level: 0, role: :guest, allowed: false2196 allows/disallows the abilities based on the operation feature access level2197 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2198 allows/disallows the abilities based on the operation feature access level2199 environments feature2200 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2201 allows/disallows the abilities based on the environments feature access level2202 project_visibility: :public, access_level: 20, role: :developer, allowed: true2203 allows/disallows the abilities based on the environments feature access level2204 project_visibility: :public, access_level: 20, role: :guest, allowed: true2205 allows/disallows the abilities based on the environments feature access level2206 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2207 allows/disallows the abilities based on the environments feature access level2208 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2209 allows/disallows the abilities based on the environments feature access level2210 project_visibility: :public, access_level: 10, role: :developer, allowed: true2211 allows/disallows the abilities based on the environments feature access level2212 project_visibility: :public, access_level: 10, role: :guest, allowed: true2213 allows/disallows the abilities based on the environments feature access level2214 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2215 allows/disallows the abilities based on the environments feature access level2216 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2217 allows/disallows the abilities based on the environments feature access level2218 project_visibility: :public, access_level: 0, role: :developer, allowed: false2219 allows/disallows the abilities based on the environments feature access level2220 project_visibility: :public, access_level: 0, role: :guest, allowed: false2221 allows/disallows the abilities based on the environments feature access level2222 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2223 allows/disallows the abilities based on the environments feature access level2224 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2225 allows/disallows the abilities based on the environments feature access level2226 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2227 allows/disallows the abilities based on the environments feature access level2228 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2229 allows/disallows the abilities based on the environments feature access level2230 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2231 allows/disallows the abilities based on the environments feature access level2232 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2233 allows/disallows the abilities based on the environments feature access level2234 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2235 allows/disallows the abilities based on the environments feature access level2236 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2237 allows/disallows the abilities based on the environments feature access level2238 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2239 allows/disallows the abilities based on the environments feature access level2240 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2241 allows/disallows the abilities based on the environments feature access level2242 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2243 allows/disallows the abilities based on the environments feature access level2244 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2245 allows/disallows the abilities based on the environments feature access level2246 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2247 allows/disallows the abilities based on the environments feature access level2248 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2249 allows/disallows the abilities based on the environments feature access level2250 project_visibility: :private, access_level: 20, role: :developer, allowed: true2251 allows/disallows the abilities based on the environments feature access level2252 project_visibility: :private, access_level: 20, role: :guest, allowed: false2253 allows/disallows the abilities based on the environments feature access level2254 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2255 allows/disallows the abilities based on the environments feature access level2256 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2257 allows/disallows the abilities based on the environments feature access level2258 project_visibility: :private, access_level: 10, role: :developer, allowed: true2259 allows/disallows the abilities based on the environments feature access level2260 project_visibility: :private, access_level: 10, role: :guest, allowed: false2261 allows/disallows the abilities based on the environments feature access level2262 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2263 allows/disallows the abilities based on the environments feature access level2264 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2265 allows/disallows the abilities based on the environments feature access level2266 project_visibility: :private, access_level: 0, role: :developer, allowed: false2267 allows/disallows the abilities based on the environments feature access level2268 project_visibility: :private, access_level: 0, role: :guest, allowed: false2269 allows/disallows the abilities based on the environments feature access level2270 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2271 allows/disallows the abilities based on the environments feature access level2272 monitor feature2273 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2274 allows/disallows the abilities based on the monitor feature access level2275 project_visibility: :public, access_level: 20, role: :developer, allowed: true2276 allows/disallows the abilities based on the monitor feature access level2277 project_visibility: :public, access_level: 20, role: :guest, allowed: true2278 allows/disallows the abilities based on the monitor feature access level2279 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2280 allows/disallows the abilities based on the monitor feature access level2281 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2282 allows/disallows the abilities based on the monitor feature access level2283 project_visibility: :public, access_level: 10, role: :developer, allowed: true2284 allows/disallows the abilities based on the monitor feature access level2285 project_visibility: :public, access_level: 10, role: :guest, allowed: true2286 allows/disallows the abilities based on the monitor feature access level2287 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2288 allows/disallows the abilities based on the monitor feature access level2289 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2290 allows/disallows the abilities based on the monitor feature access level2291 project_visibility: :public, access_level: 0, role: :developer, allowed: false2292 allows/disallows the abilities based on the monitor feature access level2293 project_visibility: :public, access_level: 0, role: :guest, allowed: false2294 allows/disallows the abilities based on the monitor feature access level2295 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2296 allows/disallows the abilities based on the monitor feature access level2297 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2298 allows/disallows the abilities based on the monitor feature access level2299 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2300 allows/disallows the abilities based on the monitor feature access level2301 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2302 allows/disallows the abilities based on the monitor feature access level2303 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2304 allows/disallows the abilities based on the monitor feature access level2305 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2306 allows/disallows the abilities based on the monitor feature access level2307 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2308 allows/disallows the abilities based on the monitor feature access level2309 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2310 allows/disallows the abilities based on the monitor feature access level2311 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2312 allows/disallows the abilities based on the monitor feature access level2313 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2314 allows/disallows the abilities based on the monitor feature access level2315 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2316 allows/disallows the abilities based on the monitor feature access level2317 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2318 allows/disallows the abilities based on the monitor feature access level2319 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2320 allows/disallows the abilities based on the monitor feature access level2321 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2322 allows/disallows the abilities based on the monitor feature access level2323 project_visibility: :private, access_level: 20, role: :developer, allowed: true2324 allows/disallows the abilities based on the monitor feature access level2325 project_visibility: :private, access_level: 20, role: :guest, allowed: false2326 allows/disallows the abilities based on the monitor feature access level2327 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2328 allows/disallows the abilities based on the monitor feature access level2329 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2330 allows/disallows the abilities based on the monitor feature access level2331 project_visibility: :private, access_level: 10, role: :developer, allowed: true2332 allows/disallows the abilities based on the monitor feature access level2333 project_visibility: :private, access_level: 10, role: :guest, allowed: false2334 allows/disallows the abilities based on the monitor feature access level2335 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2336 allows/disallows the abilities based on the monitor feature access level2337 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2338 allows/disallows the abilities based on the monitor feature access level2339 project_visibility: :private, access_level: 0, role: :developer, allowed: false2340 allows/disallows the abilities based on the monitor feature access level2341 project_visibility: :private, access_level: 0, role: :guest, allowed: false2342 allows/disallows the abilities based on the monitor feature access level2343 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2344 allows/disallows the abilities based on the monitor feature access level2345 feature flags feature2346 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2347 allows/disallows the abilities based on the feature flags access level2348 project_visibility: :public, access_level: 20, role: :developer, allowed: true2349 allows/disallows the abilities based on the feature flags access level2350 project_visibility: :public, access_level: 20, role: :guest, allowed: true2351 allows/disallows the abilities based on the feature flags access level2352 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2353 allows/disallows the abilities based on the feature flags access level2354 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2355 allows/disallows the abilities based on the feature flags access level2356 project_visibility: :public, access_level: 10, role: :developer, allowed: true2357 allows/disallows the abilities based on the feature flags access level2358 project_visibility: :public, access_level: 10, role: :guest, allowed: true2359 allows/disallows the abilities based on the feature flags access level2360 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2361 allows/disallows the abilities based on the feature flags access level2362 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2363 allows/disallows the abilities based on the feature flags access level2364 project_visibility: :public, access_level: 0, role: :developer, allowed: false2365 allows/disallows the abilities based on the feature flags access level2366 project_visibility: :public, access_level: 0, role: :guest, allowed: false2367 allows/disallows the abilities based on the feature flags access level2368 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2369 allows/disallows the abilities based on the feature flags access level2370 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2371 allows/disallows the abilities based on the feature flags access level2372 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2373 allows/disallows the abilities based on the feature flags access level2374 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2375 allows/disallows the abilities based on the feature flags access level2376 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2377 allows/disallows the abilities based on the feature flags access level2378 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2379 allows/disallows the abilities based on the feature flags access level2380 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2381 allows/disallows the abilities based on the feature flags access level2382 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2383 allows/disallows the abilities based on the feature flags access level2384 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2385 allows/disallows the abilities based on the feature flags access level2386 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2387 allows/disallows the abilities based on the feature flags access level2388 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2389 allows/disallows the abilities based on the feature flags access level2390 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2391 allows/disallows the abilities based on the feature flags access level2392 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2393 allows/disallows the abilities based on the feature flags access level2394 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2395 allows/disallows the abilities based on the feature flags access level2396 project_visibility: :private, access_level: 20, role: :developer, allowed: true2397 allows/disallows the abilities based on the feature flags access level2398 project_visibility: :private, access_level: 20, role: :guest, allowed: false2399 allows/disallows the abilities based on the feature flags access level2400 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2401 allows/disallows the abilities based on the feature flags access level2402 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2403 allows/disallows the abilities based on the feature flags access level2404 project_visibility: :private, access_level: 10, role: :developer, allowed: true2405 allows/disallows the abilities based on the feature flags access level2406 project_visibility: :private, access_level: 10, role: :guest, allowed: false2407 allows/disallows the abilities based on the feature flags access level2408 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2409 allows/disallows the abilities based on the feature flags access level2410 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2411 allows/disallows the abilities based on the feature flags access level2412 project_visibility: :private, access_level: 0, role: :developer, allowed: false2413 allows/disallows the abilities based on the feature flags access level2414 project_visibility: :private, access_level: 0, role: :guest, allowed: false2415 allows/disallows the abilities based on the feature flags access level2416 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2417 allows/disallows the abilities based on the feature flags access level2418 Releases feature2419 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2420 allows/disallows the abilities based on the Releases access level2421 project_visibility: :public, access_level: 20, role: :developer, allowed: true2422 allows/disallows the abilities based on the Releases access level2423 project_visibility: :public, access_level: 20, role: :guest, allowed: true2424 allows/disallows the abilities based on the Releases access level2425 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2426 allows/disallows the abilities based on the Releases access level2427 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2428 allows/disallows the abilities based on the Releases access level2429 project_visibility: :public, access_level: 10, role: :developer, allowed: true2430 allows/disallows the abilities based on the Releases access level2431 project_visibility: :public, access_level: 10, role: :guest, allowed: true2432 allows/disallows the abilities based on the Releases access level2433 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2434 allows/disallows the abilities based on the Releases access level2435 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2436 allows/disallows the abilities based on the Releases access level2437 project_visibility: :public, access_level: 0, role: :developer, allowed: false2438 allows/disallows the abilities based on the Releases access level2439 project_visibility: :public, access_level: 0, role: :guest, allowed: false2440 allows/disallows the abilities based on the Releases access level2441 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2442 allows/disallows the abilities based on the Releases access level2443 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2444 allows/disallows the abilities based on the Releases access level2445 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2446 allows/disallows the abilities based on the Releases access level2447 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2448 allows/disallows the abilities based on the Releases access level2449 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2450 allows/disallows the abilities based on the Releases access level2451 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2452 allows/disallows the abilities based on the Releases access level2453 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2454 allows/disallows the abilities based on the Releases access level2455 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2456 allows/disallows the abilities based on the Releases access level2457 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2458 allows/disallows the abilities based on the Releases access level2459 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2460 allows/disallows the abilities based on the Releases access level2461 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2462 allows/disallows the abilities based on the Releases access level2463 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2464 allows/disallows the abilities based on the Releases access level2465 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2466 allows/disallows the abilities based on the Releases access level2467 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2468 allows/disallows the abilities based on the Releases access level2469 project_visibility: :private, access_level: 20, role: :developer, allowed: true2470 allows/disallows the abilities based on the Releases access level2471 project_visibility: :private, access_level: 20, role: :guest, allowed: true2472 allows/disallows the abilities based on the Releases access level2473 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2474 allows/disallows the abilities based on the Releases access level2475 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2476 allows/disallows the abilities based on the Releases access level2477 project_visibility: :private, access_level: 10, role: :developer, allowed: true2478 allows/disallows the abilities based on the Releases access level2479 project_visibility: :private, access_level: 10, role: :guest, allowed: true2480 allows/disallows the abilities based on the Releases access level2481 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2482 allows/disallows the abilities based on the Releases access level2483 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2484 allows/disallows the abilities based on the Releases access level2485 project_visibility: :private, access_level: 0, role: :developer, allowed: false2486 allows/disallows the abilities based on the Releases access level2487 project_visibility: :private, access_level: 0, role: :guest, allowed: false2488 allows/disallows the abilities based on the Releases access level2489 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2490 allows/disallows the abilities based on the Releases access level2491 infrastructure feature2492 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2493 allows/disallows the abilities based on the infrastructure access level2494 project_visibility: :public, access_level: 20, role: :developer, allowed: true2495 allows/disallows the abilities based on the infrastructure access level2496 project_visibility: :public, access_level: 20, role: :guest, allowed: true2497 allows/disallows the abilities based on the infrastructure access level2498 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2499 allows/disallows the abilities based on the infrastructure access level2500 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2501 allows/disallows the abilities based on the infrastructure access level2502 project_visibility: :public, access_level: 10, role: :developer, allowed: true2503 allows/disallows the abilities based on the infrastructure access level2504 project_visibility: :public, access_level: 10, role: :guest, allowed: true2505 allows/disallows the abilities based on the infrastructure access level2506 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2507 allows/disallows the abilities based on the infrastructure access level2508 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2509 allows/disallows the abilities based on the infrastructure access level2510 project_visibility: :public, access_level: 0, role: :developer, allowed: false2511 allows/disallows the abilities based on the infrastructure access level2512 project_visibility: :public, access_level: 0, role: :guest, allowed: false2513 allows/disallows the abilities based on the infrastructure access level2514 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2515 allows/disallows the abilities based on the infrastructure access level2516 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2517 allows/disallows the abilities based on the infrastructure access level2518 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2519 allows/disallows the abilities based on the infrastructure access level2520 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2521 allows/disallows the abilities based on the infrastructure access level2522 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2523 allows/disallows the abilities based on the infrastructure access level2524 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2525 allows/disallows the abilities based on the infrastructure access level2526 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2527 allows/disallows the abilities based on the infrastructure access level2528 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2529 allows/disallows the abilities based on the infrastructure access level2530 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2531 allows/disallows the abilities based on the infrastructure access level2532 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2533 allows/disallows the abilities based on the infrastructure access level2534 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2535 allows/disallows the abilities based on the infrastructure access level2536 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2537 allows/disallows the abilities based on the infrastructure access level2538 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2539 allows/disallows the abilities based on the infrastructure access level2540 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2541 allows/disallows the abilities based on the infrastructure access level2542 project_visibility: :private, access_level: 20, role: :developer, allowed: true2543 allows/disallows the abilities based on the infrastructure access level2544 project_visibility: :private, access_level: 20, role: :guest, allowed: true2545 allows/disallows the abilities based on the infrastructure access level2546 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2547 allows/disallows the abilities based on the infrastructure access level2548 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2549 allows/disallows the abilities based on the infrastructure access level2550 project_visibility: :private, access_level: 10, role: :developer, allowed: true2551 allows/disallows the abilities based on the infrastructure access level2552 project_visibility: :private, access_level: 10, role: :guest, allowed: true2553 allows/disallows the abilities based on the infrastructure access level2554 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2555 allows/disallows the abilities based on the infrastructure access level2556 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2557 allows/disallows the abilities based on the infrastructure access level2558 project_visibility: :private, access_level: 0, role: :developer, allowed: false2559 allows/disallows the abilities based on the infrastructure access level2560 project_visibility: :private, access_level: 0, role: :guest, allowed: false2561 allows/disallows the abilities based on the infrastructure access level2562 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2563 allows/disallows the abilities based on the infrastructure access level2564 access_security_and_compliance2565 when the "Security & Compliance" is enabled2566 when the role is owner2567 is expected to be allowed :access_security_and_compliance2568 when the role is maintainer2569 is expected to be allowed :access_security_and_compliance2570 when the role is developer2571 is expected to be allowed :access_security_and_compliance2572 with admin2573 when admin mode enabled2574 is expected to be allowed :access_security_and_compliance2575 when admin mode disabled2576 is expected to be disallowed :access_security_and_compliance2577 when the role is reporter2578 is expected to be disallowed :access_security_and_compliance2579 when the role is guest2580 is expected to be disallowed :access_security_and_compliance2581 with non member2582 is expected to be disallowed :access_security_and_compliance2583 with anonymous2584 is expected to be disallowed :access_security_and_compliance2585 when the "Security & Compliance" is not enabled2586 when the role is owner2587 is expected to be disallowed :access_security_and_compliance2588 when the role is maintainer2589 is expected to be disallowed :access_security_and_compliance2590 when the role is developer2591 is expected to be disallowed :access_security_and_compliance2592 when the role is reporter2593 is expected to be disallowed :access_security_and_compliance2594 when the role is guest2595 is expected to be disallowed :access_security_and_compliance2596 with admin2597 when admin mode enabled2598 is expected to be disallowed :access_security_and_compliance2599 when admin mode disabled2600 is expected to be disallowed :access_security_and_compliance2601 with non member2602 is expected to be disallowed :access_security_and_compliance2603 with anonymous2604 is expected to be disallowed :access_security_and_compliance2605 when user is authenticated via CI_JOB_TOKEN2606 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2607 enforces the expected permissions2608 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2609 enforces the expected permissions2610 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: false2611 enforces the expected permissions2612 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2613 enforces the expected permissions2614 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2615 enforces the expected permissions2616 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2617 enforces the expected permissions2618 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: false2619 enforces the expected permissions2620 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2621 enforces the expected permissions2622 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2623 enforces the expected permissions2624 project_visibility: :internal, user_role: :reporter, external_user: true, scope_project_type: :same, token_scope_enabled: true, result: true2625 enforces the expected permissions2626 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2627 enforces the expected permissions2628 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2629 enforces the expected permissions2630 project_visibility: :internal, user_role: :reporter, external_user: true, scope_project_type: :different, token_scope_enabled: true, result: false2631 enforces the expected permissions2632 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2633 enforces the expected permissions2634 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2635 enforces the expected permissions2636 project_visibility: :internal, user_role: :guest, external_user: true, scope_project_type: :same, token_scope_enabled: true, result: true2637 enforces the expected permissions2638 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2639 enforces the expected permissions2640 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2641 enforces the expected permissions2642 project_visibility: :internal, user_role: :guest, external_user: true, scope_project_type: :different, token_scope_enabled: true, result: false2643 enforces the expected permissions2644 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2645 enforces the expected permissions2646 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2647 enforces the expected permissions2648 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2649 enforces the expected permissions2650 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2651 enforces the expected permissions2652 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2653 enforces the expected permissions2654 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2655 enforces the expected permissions2656 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2657 enforces the expected permissions2658 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2659 enforces the expected permissions2660 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2661 enforces the expected permissions2662 container_image policies2663 project_visibility: :public, access_level: 20, role: :admin, allowed: true2664 allows/disallows the abilities based on the container_registry feature access level2665 allows build_read_container_image to admins who are also team members2666 project_visibility: :public, access_level: 20, role: :owner, allowed: true2667 allows/disallows the abilities based on the container_registry feature access level2668 allows build_read_container_image to admins who are also team members2669 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2670 allows/disallows the abilities based on the container_registry feature access level2671 allows build_read_container_image to admins who are also team members2672 project_visibility: :public, access_level: 20, role: :developer, allowed: true2673 allows/disallows the abilities based on the container_registry feature access level2674 allows build_read_container_image to admins who are also team members2675 project_visibility: :public, access_level: 20, role: :reporter, allowed: true2676 allows/disallows the abilities based on the container_registry feature access level2677 allows build_read_container_image to admins who are also team members2678 project_visibility: :public, access_level: 20, role: :guest, allowed: true2679 allows/disallows the abilities based on the container_registry feature access level2680 allows build_read_container_image to admins who are also team members2681 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2682 allows/disallows the abilities based on the container_registry feature access level2683 allows build_read_container_image to admins who are also team members2684 project_visibility: :public, access_level: 10, role: :admin, allowed: true2685 allows/disallows the abilities based on the container_registry feature access level2686 allows build_read_container_image to admins who are also team members2687 project_visibility: :public, access_level: 10, role: :owner, allowed: true2688 allows/disallows the abilities based on the container_registry feature access level2689 allows build_read_container_image to admins who are also team members2690 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2691 allows/disallows the abilities based on the container_registry feature access level2692 allows build_read_container_image to admins who are also team members2693 project_visibility: :public, access_level: 10, role: :developer, allowed: true2694 allows/disallows the abilities based on the container_registry feature access level2695 allows build_read_container_image to admins who are also team members2696 project_visibility: :public, access_level: 10, role: :reporter, allowed: true2697 allows/disallows the abilities based on the container_registry feature access level2698 allows build_read_container_image to admins who are also team members2699 project_visibility: :public, access_level: 10, role: :guest, allowed: false2700 allows/disallows the abilities based on the container_registry feature access level2701 allows build_read_container_image to admins who are also team members2702 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2703 allows/disallows the abilities based on the container_registry feature access level2704 allows build_read_container_image to admins who are also team members2705 project_visibility: :public, access_level: 0, role: :admin, allowed: false2706 allows/disallows the abilities based on the container_registry feature access level2707 allows build_read_container_image to admins who are also team members2708 project_visibility: :public, access_level: 0, role: :owner, allowed: false2709 allows/disallows the abilities based on the container_registry feature access level2710 allows build_read_container_image to admins who are also team members2711 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2712 allows/disallows the abilities based on the container_registry feature access level2713 allows build_read_container_image to admins who are also team members2714 project_visibility: :public, access_level: 0, role: :developer, allowed: false2715 allows/disallows the abilities based on the container_registry feature access level2716 allows build_read_container_image to admins who are also team members2717 project_visibility: :public, access_level: 0, role: :reporter, allowed: false2718 allows/disallows the abilities based on the container_registry feature access level2719 allows build_read_container_image to admins who are also team members2720 project_visibility: :public, access_level: 0, role: :guest, allowed: false2721 allows/disallows the abilities based on the container_registry feature access level2722 allows build_read_container_image to admins who are also team members2723 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2724 allows/disallows the abilities based on the container_registry feature access level2725 allows build_read_container_image to admins who are also team members2726 project_visibility: :internal, access_level: 20, role: :admin, allowed: true2727 allows/disallows the abilities based on the container_registry feature access level2728 allows build_read_container_image to admins who are also team members2729 project_visibility: :internal, access_level: 20, role: :owner, allowed: true2730 allows/disallows the abilities based on the container_registry feature access level2731 allows build_read_container_image to admins who are also team members2732 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2733 allows/disallows the abilities based on the container_registry feature access level2734 allows build_read_container_image to admins who are also team members2735 project_visibility: :internal, access_level: 20, role: :developer, 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: :internal, access_level: 20, role: :reporter, 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: :internal, access_level: 20, role: :guest, 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: :internal, access_level: 20, role: :anonymous, allowed: false2745 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: :internal, access_level: 10, role: :admin, 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: :internal, access_level: 10, role: :owner, 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: :internal, access_level: 10, role: :maintainer, 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: :internal, access_level: 10, role: :developer, 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: :internal, access_level: 10, role: :reporter, 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: :internal, access_level: 10, role: :guest, allowed: false2763 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: :internal, access_level: 10, role: :anonymous, allowed: false2766 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: :internal, access_level: 0, role: :admin, allowed: false2769 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: :internal, access_level: 0, role: :owner, 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: :internal, access_level: 0, role: :maintainer, 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: :internal, access_level: 0, role: :developer, 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: :internal, access_level: 0, role: :reporter, 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: :internal, access_level: 0, role: :guest, 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: :internal, access_level: 0, role: :anonymous, 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: :private, access_level: 20, role: :admin, allowed: true2790 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: :private, access_level: 20, role: :owner, allowed: true2793 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: :private, access_level: 20, role: :maintainer, allowed: true2796 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: :private, access_level: 20, role: :developer, 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: :private, access_level: 20, role: :reporter, 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: :private, access_level: 20, role: :guest, allowed: false2805 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: :private, access_level: 20, role: :anonymous, allowed: false2808 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: :private, access_level: 10, role: :admin, 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: :private, access_level: 10, role: :owner, 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: :private, access_level: 10, role: :maintainer, allowed: true2817 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: :private, access_level: 10, role: :developer, 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: :private, access_level: 10, role: :reporter, 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: :private, access_level: 10, role: :guest, allowed: false2826 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: :private, access_level: 10, role: :anonymous, allowed: false2829 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: :private, access_level: 0, role: :admin, allowed: false2832 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: :private, access_level: 0, role: :owner, 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: :private, access_level: 0, role: :maintainer, 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: :private, access_level: 0, role: :developer, 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: :private, access_level: 0, role: :reporter, 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: :private, access_level: 0, role: :guest, 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: :private, access_level: 0, role: :anonymous, 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 update_runners_registration_token2853 when anonymous2854 is expected not to be allowed :update_runners_registration_token2855 admin2856 when admin mode is enabled2857 is expected to be allowed :update_runners_registration_token2858 when admin mode is disabled2859 is expected to be disallowed :update_runners_registration_token2860 guest2861 is expected to be disallowed :update_runners_registration_token2862 reporter2863 is expected to be disallowed :update_runners_registration_token2864 developer2865 is expected to be disallowed :update_runners_registration_token2866 maintainer2867 is expected to be allowed :update_runners_registration_token2868 owner2869 is expected to be allowed :update_runners_registration_token2870 register_project_runners2871 admin2872 when admin mode is enabled2873 is expected to be allowed :register_project_runners2874 with project runner registration disabled2875 is expected to be allowed :register_project_runners2876 when admin mode is disabled2877 is expected to be disallowed :register_project_runners2878 with owner2879 is expected to be allowed :register_project_runners2880 with project runner registration disabled2881 is expected to be disallowed :register_project_runners2882 with maintainer2883 is expected to be allowed :register_project_runners2884 with reporter2885 is expected to be disallowed :register_project_runners2886 with guest2887 is expected to be disallowed :register_project_runners2888 with non member2889 is expected to be disallowed :register_project_runners2890 with anonymous2891 is expected to be disallowed :register_project_runners2892 update_sentry_issue2893 role: :owner, allowed: true2894 is expected to equal true2895 role: :maintainer, allowed: true2896 is expected to equal true2897 role: :developer, allowed: true2898 is expected to equal true2899 role: :reporter, allowed: false2900 is expected to equal false2901 role: :guest, allowed: false2902 is expected to equal false2903 read_milestone2904 when project is public2905 and issues and merge requests are private2906 when user is an inherited member from the group2907 and user is a guest2908 is expected to be allowed :read_milestone2909 and user is a reporter2910 is expected to be allowed :read_milestone2911 and user is a developer2912 is expected to be allowed :read_milestone2913 role_enables_download_code2914 default roles2915 private project2916 role: :owner, allowed: true2917 is expected to equal true2918 role: :maintainer, allowed: true2919 is expected to equal true2920 role: :developer, allowed: true2921 is expected to equal true2922 role: :reporter, allowed: true2923 is expected to equal true2924 role: :guest, allowed: false2925 is expected to equal false2926 read_code2927 when the current_user can download_code2928 is expected to be allowed :read_code2929 when the current_user cannot download_code2930 is expected not to be allowed :read_code2931QuickActions::InterpretService2932 #execute2933 limits to commands passed2934 preserves leading whitespace2935 tracks MAU for commands2936 move issue command2937 returns the move issue message2938 returns move issue failure message when the referenced issue is not found2939 behaves like reopen command2940 returns state_event: "reopen" if content contains /reopen2941 returns the reopen message2942 behaves like reopen command2943 returns state_event: "reopen" if content contains /reopen2944 returns the reopen message2945 behaves like close command2946 returns state_event: "close" if content contains /close2947 returns the close message2948 behaves like close command2949 returns state_event: "close" if content contains /close2950 returns the close message2951 merge command2952 behaves like merge immediately command2953 runs merge command if content contains /merge2954 returns them merge message2955 when the head pipeline of merge request is running2956 behaves like merge automatically command2957 runs merge command if content contains /merge and returns merge message2958 can not be merged when logged user does not have permissions2959 behaves like failed command2960 populates {} if content contains an unsupported command2961 returns Could not apply merge command. message2962 can not be merged when sha does not match2963 behaves like failed command2964 populates {} if content contains an unsupported command2965 returns Branch has been updated since the merge was requested. message2966 when sha is missing2967 behaves like failed command2968 populates {} if content contains an unsupported command2969 returns The `/merge` quick action requires the SHA of the head of the branch. message2970 issue can not be merged2971 behaves like failed command2972 populates {} if content contains an unsupported command2973 returns Could not apply merge command. message2974 non persisted merge request cant be merged2975 behaves like failed command2976 populates {} if content contains an unsupported command2977 returns Could not apply merge command. message2978 not persisted merge request can not be merged2979 behaves like failed command2980 populates {} if content contains an unsupported command2981 returns Could not apply merge command. message2982 behaves like title command2983 populates title: "A brand new title" if content contains /title A brand new title2984 returns the title message2985 behaves like title command2986 populates title: "A brand new title" if content contains /title A brand new title2987 returns the title message2988 behaves like failed command2989 populates {} if content contains an unsupported command2990 returns an empty message2991 assign command with one user2992 behaves like assign command2993 assigns to me2994 does not assign to group members2995 assigns to users with escaped underscores2996 assigns to a single user2997 returns the assign message2998 when there are too many references2999 says what went wrong3000 when the user extractor raises an uninticipated error3001 tracks the exception in dev, and reports a generic message in production3002 when the reference does not match the exact case3003 assigns to the user3004 when the user has a private profile3005 assigns to the user3006 behaves like assign command3007 assigns to me3008 does not assign to group members3009 assigns to users with escaped underscores3010 assigns to a single user3011 returns the assign message3012 when there are too many references3013 says what went wrong3014 when the user extractor raises an uninticipated error3015 tracks the exception in dev, and reports a generic message in production3016 when the reference does not match the exact case3017 assigns to the user3018 when the user has a private profile3019 assigns to the user3020 behaves like assign command3021 assigns to me3022 does not assign to group members3023 assigns to users with escaped underscores3024 assigns to a single user3025 returns the assign message3026 when there are too many references3027 says what went wrong3028 when the user extractor raises an uninticipated error3029 tracks the exception in dev, and reports a generic message in production3030 when the reference does not match the exact case3031 assigns to the user3032 when the user has a private profile3033 assigns to the user3034 assign command with multiple assignees3035 behaves like assigns to one of the two users3036 assigns to a single user3037 behaves like assigns to one of the two users3038 assigns to a single user3039 assign command with me alias3040 behaves like assign command3041 assigns to me3042 does not assign to group members3043 assigns to users with escaped underscores3044 assigns to a single user3045 returns the assign message3046 when there are too many references3047 says what went wrong3048 when the user extractor raises an uninticipated error3049 tracks the exception in dev, and reports a generic message in production3050 when the reference does not match the exact case3051 assigns to the user3052 when the user has a private profile3053 assigns to the user3054 behaves like assign command3055 assigns to me3056 does not assign to group members3057 assigns to users with escaped underscores3058 assigns to a single user3059 returns the assign message3060 when there are too many references3061 says what went wrong3062 when the user extractor raises an uninticipated error3063 tracks the exception in dev, and reports a generic message in production3064 when the reference does not match the exact case3065 assigns to the user3066 when the user has a private profile3067 assigns to the user3068 assign command with me alias and whitespace3069 behaves like assign command3070 assigns to me3071 does not assign to group members3072 assigns to users with escaped underscores3073 assigns to a single user3074 returns the assign message3075 when there are too many references3076 says what went wrong3077 when the user extractor raises an uninticipated error3078 tracks the exception in dev, and reports a generic message in production3079 when the reference does not match the exact case3080 assigns to the user3081 when the user has a private profile3082 assigns to the user3083 behaves like assign command3084 assigns to me3085 does not assign to group members3086 assigns to users with escaped underscores3087 assigns to a single user3088 returns the assign message3089 when there are too many references3090 says what went wrong3091 when the user extractor raises an uninticipated error3092 tracks the exception in dev, and reports a generic message in production3093 when the reference does not match the exact case3094 assigns to the user3095 when the user has a private profile3096 assigns to the user3097 behaves like failed command3098 populates {} if content contains an unsupported command3099 returns a parse error message3100 behaves like failed command3101 populates {} if content contains an unsupported command3102 returns Failed to assign a user because no user was found. message3103 assign_reviewer command3104 with one user3105 behaves like assign_reviewer command3106 assigns a reviewer to a single user3107 with an issue instead of a merge request3108 behaves like failed command3109 populates {} if content contains an unsupported command3110 returns Could not apply assign_reviewer command. message3111 assign command with multiple assignees3112 assigns to one of the two users3113 assigns to a single reviewer3114 with "me" alias3115 behaves like assign_reviewer command3116 assigns a reviewer to a single user3117 with an alias and whitespace3118 behaves like assign_reviewer command3119 assigns a reviewer to a single user3120 with @all3121 behaves like failed command3122 populates {} if content contains an unsupported command3123 returns a parse error message3124 with an incorrect user3125 behaves like failed command3126 populates {} if content contains an unsupported command3127 returns a parse error message3128 with the "reviewer" alias3129 behaves like assign_reviewer command3130 assigns a reviewer to a single user3131 with the "request_review" alias3132 behaves like assign_reviewer command3133 assigns a reviewer to a single user3134 with no user3135 behaves like failed command3136 populates {} if content contains an unsupported command3137 returns Failed to assign a reviewer because no user was specified. message3138 with extra text3139 behaves like failed command3140 populates {} if content contains an unsupported command3141 returns a parse error message3142 unassign_reviewer command3143 with one user3144 behaves like unassign_reviewer command3145 removes a single reviewer3146 with an issue instead of a merge request3147 behaves like failed command3148 populates {} if content contains an unsupported command3149 returns Could not apply unassign_reviewer command. message3150 with anything after the command3151 behaves like unassign_reviewer command3152 removes a single reviewer3153 with the "remove_reviewer" alias3154 behaves like unassign_reviewer command3155 removes a single reviewer3156 with no user3157 behaves like unassign_reviewer command3158 removes a single reviewer3159 unassign command3160 Issue3161 populates assignee_ids: [] if content contains /unassign3162 returns the unassign message for all the assignee if content contains /unassign3163 Merge Request3164 populates assignee_ids: [] if content contains /unassign3165 returns the unassign message for all the assignee if content contains /unassign3166 project milestones3167 behaves like milestone command3168 fetches milestone and populates milestone_id if content contains /milestone3169 returns the milestone message3170 returns empty milestone message when milestone is wrong3171 behaves like milestone command3172 fetches milestone and populates milestone_id if content contains /milestone3173 returns the milestone message3174 returns empty milestone message when milestone is wrong3175 only group milestones available3176 behaves like milestone command3177 fetches milestone and populates milestone_id if content contains /milestone3178 returns the milestone message3179 returns empty milestone message when milestone is wrong3180 behaves like milestone command3181 fetches milestone and populates milestone_id if content contains /milestone3182 returns the milestone message3183 returns empty milestone message when milestone is wrong3184 behaves like remove_milestone command3185 populates milestone_id: nil if content contains /remove_milestone3186 returns removed milestone message3187 behaves like remove_milestone command3188 populates milestone_id: nil if content contains /remove_milestone3189 returns removed milestone message3190 behaves like label command3191 fetches label ids and populates add_label_ids if content contains /label3192 returns the label message3193 behaves like label command3194 fetches label ids and populates add_label_ids if content contains /label3195 returns the label message3196 with a colon label3197 when quoted3198 behaves like label command3199 fetches label ids and populates add_label_ids if content contains /label3200 returns the label message3201 behaves like label command3202 fetches label ids and populates add_label_ids if content contains /label3203 returns the label message3204 when unquoted3205 behaves like label command3206 fetches label ids and populates add_label_ids if content contains /label3207 returns the label message3208 behaves like label command3209 fetches label ids and populates add_label_ids if content contains /label3210 returns the label message3211 with a scoped label3212 when quoted3213 behaves like label command3214 fetches label ids and populates add_label_ids if content contains /label3215 returns the label message3216 behaves like label command3217 fetches label ids and populates add_label_ids if content contains /label3218 returns the label message3219 when unquoted3220 behaves like label command3221 fetches label ids and populates add_label_ids if content contains /label3222 returns the label message3223 behaves like label command3224 fetches label ids and populates add_label_ids if content contains /label3225 returns the label message3226 behaves like multiple label command3227 fetches label ids and populates add_label_ids if content contains multiple /label3228 behaves like multiple label with same argument3229 prevents duplicate label ids and populates add_label_ids if content contains multiple /label3230 behaves like multiword label name starting without ~3231 fetches label ids and populates add_label_ids if content contains /label3232 behaves like multiword label name starting without ~3233 fetches label ids and populates add_label_ids if content contains /label3234 behaves like label name is included in the middle of another label name3235 ignores the sublabel when the content contains the includer label name3236 behaves like label name is included in the middle of another label name3237 ignores the sublabel when the content contains the includer label name3238 behaves like unlabel command3239 fetches label ids and populates remove_label_ids if content contains /unlabel3240 returns the unlabel message3241 behaves like unlabel command3242 fetches label ids and populates remove_label_ids if content contains /unlabel3243 returns the unlabel message3244 behaves like multiple unlabel command3245 fetches label ids and populates remove_label_ids if content contains mutiple /unlabel3246 behaves like unlabel command with no argument3247 populates label_ids: [] if content contains /unlabel with no arguments3248 behaves like unlabel command with no argument3249 populates label_ids: [] if content contains /unlabel with no arguments3250 behaves like relabel command3251 populates label_ids: [] if content contains /relabel3252 returns the relabel message3253 behaves like relabel command3254 populates label_ids: [] if content contains /relabel3255 returns the relabel message3256 behaves like done command3257 populates todo_event: "done" if content contains /done3258 returns the done message3259 behaves like done command3260 populates todo_event: "done" if content contains /done3261 returns the done message3262 behaves like subscribe command3263 populates subscription_event: "subscribe" if content contains /subscribe3264 returns the subscribe message3265 behaves like subscribe command3266 populates subscription_event: "subscribe" if content contains /subscribe3267 returns the subscribe message3268 behaves like unsubscribe command3269 populates subscription_event: "unsubscribe" if content contains /unsubscribe3270 returns the unsubscribe message3271 behaves like unsubscribe command3272 populates subscription_event: "unsubscribe" if content contains /unsubscribe3273 returns the unsubscribe message3274 behaves like failed command3275 populates {} if content contains an unsupported command3276 returns Could not apply due command. message3277 behaves like remove_due_date command3278 populates due_date: nil if content contains /remove_due_date3279 returns Removed the due date3280 behaves like draft command3281 returns wip_event: "draft"3282 returns the draft message3283 behaves like ready command3284 returns wip_event: "ready"3285 returns the ready message3286 behaves like draft command3287 returns wip_event: "draft"3288 returns the draft message3289 behaves like draft/ready command no action3290 returns the no action message if there is no change to the status3291 behaves like draft/ready command no action3292 returns the no action message if there is no change to the status3293 behaves like ready command3294 returns wip_event: "ready"3295 returns the ready message3296 behaves like failed command3297 populates {} if content contains an unsupported command3298 returns Could not apply remove_due_date command. message3299 behaves like estimate command3300 populates time_estimate: 3600 if content contains /estimate 1h3301 returns the time_estimate formatted message3302 behaves like estimate command3303 populates time_estimate: 3600 if content contains /estimate 1h3304 returns the time_estimate formatted message3305 behaves like failed command3306 populates {} if content contains an unsupported command3307 returns an empty message3308 behaves like failed command3309 populates {} if content contains an unsupported command3310 returns an empty message3311 behaves like spend command3312 populates spend_time: 3600 if content contains /spend 1h3313 behaves like spend command3314 populates spend_time: 3600 if content contains /spend 1h3315 behaves like spend command3316 populates spend_time: 3600 if content contains /spend 1h3317 behaves like spend command with negative time3318 populates spend_time: -7200 if content contains -120m3319 returns the spend_time message including the formatted duration and verb3320 behaves like spend command with negative time3321 populates spend_time: -7200 if content contains -120m3322 returns the spend_time message including the formatted duration and verb3323 behaves like spend command with valid date3324 populates spend time: 1800 with date in date type format3325 behaves like spend command with valid date3326 populates spend time: 1800 with date in date type format3327 behaves like spend command with invalid date3328 will not create any note and timelog3329 behaves like spend command with invalid date3330 will not create any note and timelog3331 behaves like spend command with future date3332 will not create any note and timelog3333 behaves like spend command with future date3334 will not create any note and timelog3335 behaves like failed command3336 populates {} if content contains an unsupported command3337 returns an empty message3338 behaves like failed command3339 populates {} if content contains an unsupported command3340 returns an empty message3341 behaves like failed command3342 populates {} if content contains an unsupported command3343 returns an empty message3344 behaves like failed command3345 populates {} if content contains an unsupported command3346 returns an empty message3347 behaves like remove_estimate command3348 populates time_estimate: 0 if content contains /remove_estimate3349 returns the remove_estimate message3350 behaves like remove_estimate command3351 populates time_estimate: 0 if content contains /remove_estimate3352 returns the remove_estimate message3353 behaves like remove_time_spent command3354 populates spend_time: :reset if content contains /remove_time_spent3355 returns the remove_time_spent message3356 /confidential3357 behaves like confidential command3358 marks issue as confidential if content contains /confidential3359 returns the confidential message3360 when issuable is already confidential3361 returns an error message3362 is not part of the available commands3363 behaves like confidential command3364 marks issue as confidential if content contains /confidential3365 returns the confidential message3366 when issuable is already confidential3367 returns an error message3368 is not part of the available commands3369 when non-member is creating a new issue3370 behaves like confidential command3371 marks issue as confidential if content contains /confidential3372 returns the confidential message3373 when issuable is already confidential3374 returns an error message3375 is not part of the available commands3376 behaves like lock command3377 returns discussion_locked: true if content contains /lock3378 returns the lock discussion message3379 behaves like lock command3380 returns discussion_locked: true if content contains /lock3381 returns the lock discussion message3382 behaves like unlock command3383 returns discussion_locked: true if content contains /unlock3384 returns the unlock discussion message3385 behaves like unlock command3386 returns discussion_locked: true if content contains /unlock3387 returns the unlock discussion message3388 /todo3389 if issuable is an Issue3390 behaves like todo command3391 populates todo_event: "add" if content contains /todo3392 returns the todo message3393 if issuable is a MergeRequest3394 behaves like todo command3395 populates todo_event: "add" if content contains /todo3396 returns the todo message3397 if issuable is a Commit3398 behaves like failed command3399 populates {} if content contains an unsupported command3400 returns Could not apply todo command. message3401 /due command3402 returns invalid date format message when the due date is invalid3403 behaves like due command3404 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-283405 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-283406 behaves like due command3407 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-283408 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-283409 behaves like due command3410 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-283411 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-283412 behaves like due command3413 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-283414 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-283415 /copy_metadata command3416 is available when the user is a developer3417 when the user does not have permission3418 is not available3419 behaves like failed command3420 populates {} if content contains an unsupported command3421 returns an empty message3422 behaves like copy_metadata command3423 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference3424 returns the copy metadata message3425 behaves like copy_metadata command3426 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference3427 returns the copy metadata message3428 when the parent issuable has a milestone3429 behaves like copy_metadata command3430 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference3431 returns the copy metadata message3432 when more than one issuable is passed3433 behaves like copy_metadata command3434 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference3435 returns the copy metadata message3436 cross project references3437 behaves like failed command3438 populates {} if content contains an unsupported command3439 returns an empty message3440 behaves like failed command3441 populates {} if content contains an unsupported command3442 returns an empty message3443 behaves like failed command3444 populates {} if content contains an unsupported command3445 returns an empty message3446 /duplicate command3447 behaves like duplicate command3448 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference3449 returns the duplicate message3450 behaves like failed command3451 populates {} if content contains an unsupported command3452 returns an empty message3453 cross project references3454 behaves like duplicate command3455 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference3456 returns the duplicate message3457 behaves like failed command3458 populates {} if content contains an unsupported command3459 returns Failed to mark this issue as a duplicate because referenced issue was not found. message3460 behaves like failed command3461 populates {} if content contains an unsupported command3462 returns Failed to mark this issue as a duplicate because referenced issue was not found. message3463 when current_user cannot :admin_issue3464 behaves like failed command3465 populates {} if content contains an unsupported command3466 returns Could not apply assign command. message3467 behaves like failed command3468 populates {} if content contains an unsupported command3469 returns Could not apply unassign command. message3470 behaves like failed command3471 populates {} if content contains an unsupported command3472 returns Could not apply milestone command. message3473 behaves like failed command3474 populates {} if content contains an unsupported command3475 returns Could not apply remove_milestone command. message3476 behaves like failed command3477 populates {} if content contains an unsupported command3478 returns Could not apply label command. message3479 behaves like failed command3480 populates {} if content contains an unsupported command3481 returns Could not apply unlabel command. message3482 behaves like failed command3483 populates {} if content contains an unsupported command3484 returns Could not apply relabel command. message3485 behaves like failed command3486 populates {} if content contains an unsupported command3487 returns Could not apply due command. message3488 behaves like failed command3489 populates {} if content contains an unsupported command3490 returns Could not apply remove_due_date command. message3491 behaves like failed command3492 populates {} if content contains an unsupported command3493 returns Could not apply confidential command. message3494 behaves like failed command3495 populates {} if content contains an unsupported command3496 returns Could not apply lock command. message3497 behaves like failed command3498 populates {} if content contains an unsupported command3499 returns Could not apply unlock command. message3500 /award command3501 behaves like award command3502 toggle award 100 emoji if content contains /award :100:3503 returns the award message3504 behaves like award command3505 toggle award 100 emoji if content contains /award :100:3506 returns the award message3507 ignores command with no argument3508 behaves like failed command3509 populates {} if content contains an unsupported command3510 returns an empty message3511 ignores non-existing / invalid emojis3512 behaves like failed command3513 populates {} if content contains an unsupported command3514 returns an empty message3515 behaves like failed command3516 populates {} if content contains an unsupported command3517 returns an empty message3518 if issuable is a Commit3519 behaves like failed command3520 populates {} if content contains an unsupported command3521 returns Could not apply award command. message3522 /shrug command3523 behaves like shrug command3524 appends ¯\_(ツ)_/¯ to the comment3525 behaves like shrug command3526 appends ¯\_(ツ)_/¯ to the comment3527 /tableflip command3528 behaves like tableflip command3529 appends (╯°□°)╯︵ ┻━┻ to the comment3530 behaves like tableflip command3531 appends (╯°□°)╯︵ ┻━┻ to the comment3532 /target_branch command3533 updates target_branch if /target_branch command is executed3534 handles blanks around param3535 returns the target_branch message3536 ignores command with no argument3537 behaves like failed command3538 populates {} if content contains an unsupported command3539 returns Could not apply target_branch command. message3540 ignores non-existing target branch3541 behaves like failed command3542 populates {} if content contains an unsupported command3543 returns Could not apply target_branch command. message3544 /board_move command3545 populates remove_label_ids for all current board columns3546 populates add_label_ids with the id of the given label3547 does not include the given label id in remove_label_ids3548 does not remove label ids that are not lists on the board3549 returns board_move message3550 if the project has multiple boards3551 behaves like failed command3552 populates {} if content contains an unsupported command3553 returns Could not apply board_move command. message3554 if the given label does not exist3555 behaves like failed command3556 populates {} if content contains an unsupported command3557 returns Failed to move this issue because label was not found. message3558 if multiple labels are given3559 behaves like failed command3560 populates {} if content contains an unsupported command3561 returns Failed to move this issue because only a single label can be provided. message3562 if the given label is not a list on the board3563 behaves like failed command3564 populates {} if content contains an unsupported command3565 returns Failed to move this issue because label was not found. message3566 if issuable is not an Issue3567 behaves like failed command3568 populates {} if content contains an unsupported command3569 returns Could not apply board_move command. message3570 /tag command3571 ignores command with no argument3572 behaves like failed command3573 populates {} if content contains an unsupported command3574 returns an empty message3575 tags a commit with a tag name3576 behaves like tag command3577 tags a commit3578 returns the tag message3579 tags a commit with a tag name and message3580 behaves like tag command3581 tags a commit3582 returns the tag message3583 /create_merge_request command3584 populates create_merge_request with branch_name and issue iid3585 returns the create_merge_request message3586 if issuable is not an Issue3587 behaves like failed command3588 populates {} if content contains an unsupported command3589 returns Could not apply create_merge_request command. message3590 when logged user cannot create_merge_requests in the project3591 behaves like failed command3592 populates {} if content contains an unsupported command3593 returns Could not apply create_merge_request command. message3594 when logged user cannot push code to the project3595 behaves like failed command3596 populates {} if content contains an unsupported command3597 returns Could not apply create_merge_request command. message3598 submit_review command3599 note: "I like it"3600 submits the users current review3601 note: "/submit_review"3602 submits the users current review3603 relate command3604 user is member of group3605 relate a single issue3606 behaves like relate command3607 relates issues3608 relate multiple issues at once3609 behaves like relate command3610 relates issues3611 when quick action target is unpersisted3612 relates the issues after the issue is persisted3613 empty relate command3614 behaves like relate command3615 relates issues3616 already having related issues3617 behaves like relate command3618 relates issues3619 cross project3620 relate a cross project issue3621 behaves like relate command3622 relates issues3623 relate multiple cross projects issues at once3624 behaves like relate command3625 relates issues3626 relate a non-existing issue3627 behaves like relate command3628 relates issues3629 relate a private issue3630 behaves like relate command3631 relates issues3632 invite_email command3633 behaves like failed command3634 populates {} if content contains an unsupported command3635/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3636/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3637 returns No email participants were added. Either none were provided, or they already exist. message3638 with existing email participant3639 behaves like failed command3640/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3641/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3642 populates {} if content contains an unsupported command3643/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3644/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3645 returns No email participants were added. Either none were provided, or they already exist. message3646 with new email participants3647/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3648/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3649 returns message3650/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3651/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3652 adds 2 participants3653 with mixed case email3654/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3655/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3656 returns correctly cased message3657 with invalid email3658/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3659/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3660 only adds valid emails3661 with existing email3662/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3663/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3664 only adds new emails3665/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3666/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3667 only adds new (case insensitive) emails3668 with duplicate email3669/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3670/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3671 only adds unique new emails3672 with more than 6 emails3673/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS3674/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here3675 only adds 6 new emails3676 with feature flag disabled3677 does not add any participants3678 severity command3679 behaves like failed command3680 populates {} if content contains an unsupported command3681 returns No severity matches the provided parameter message3682 when quick action is used on creation3683 behaves like updates the severity3684 is expected to change `issuable.severity` from "unknown" to "medium"3685 issuable does not support severity3686 behaves like failed command3687 populates {} if content contains an unsupported command3688 returns message3689 severity given with S format3690 behaves like updates the severity3691 is expected to change `issuable.severity` from "unknown" to "medium"3692 severity given with number format3693 behaves like updates the severity3694 is expected to change `issuable.severity` from "unknown" to "medium"3695 severity given with text format3696 behaves like updates the severity3697 is expected to change `issuable.severity` from "unknown" to "medium"3698 an issuable that does not support severity3699 behaves like failed command3700 populates {} if content contains an unsupported command3701 returns Could not apply severity command. message3702 approve command3703 approves the current merge request3704 when the user can't approve3705 does not approve the MR3706 behaves like approve command unavailable3707 is not part of the available commands3708 unapprove command3709 unapproves the current merge request3710 when the user can't unapprove3711 does not unapprove the MR3712 behaves like unapprove command unavailable3713 is not part of the available commands3714 crm_contact commands3715 add_contacts command adds the contact3716 remove_contacts command removes the contact3717 when using an alias3718 returns the correct execution message3719 #explain3720 close command3721 includes issuable name3722 reopen command3723 includes issuable name3724 title command3725 includes new title3726 assign command3727 when using a reference3728 tells us we will assign the developer3729 when using a bare username3730 tells us we will assign the developer3731 when using me3732 tells us we will assign the developer3733 when there are unparseable arguments3734 tells us why we cannot do that3735 unassign command3736 includes current assignee reference3737 unassign_reviewer command3738 includes current assignee reference3739 assign_reviewer command3740 includes only the user reference3741 milestone command3742 is empty when milestone reference is wrong3743 remove milestone command3744 includes current milestone name3745 label command3746 is empty when there are no correct labels3747 unlabel command3748 says all labels if no parameter provided3749 relabel command3750 includes label name3751 subscribe command3752 includes issuable name3753 unsubscribe command3754 includes issuable name3755 due command3756 includes the date3757 draft command toggle (deprecated)3758 includes the new status3759 sets the ready status on a draft3760 draft command set3761 includes the new status3762 includes the no change message when status unchanged3763 ready command3764 includes the new status3765 includes the no change message when status unchanged3766 award command3767 includes the emoji3768 estimate command3769 includes the formatted duration3770 spend command3771 includes the formatted duration and proper verb when using /spend3772 includes the formatted duration and proper verb when using /spent3773 target branch command3774 includes the branch name3775 board move command3776 includes the label name3777 move issue to another project command3778 includes the project name3779 tag a commit3780 with a tag name3781 without a message3782 includes the tag name only3783 with an empty message3784 includes the tag name only3785 with a tag name and message3786 includes the tag name and message3787 create a merge request3788 with no branch name3789 uses the default branch name3790 returns the execution message using the default branch name3791 with a branch name3792 uses the given branch name3793 returns the execution message using the given branch name3794 #commands_executed_count3795 counts commands executed3796 crm commands3797 when group has no contacts3798 /add_contacts is not available3799 when group has contacts3800 /add_contacts is available3801 when issue has no contacts3802 /remove_contacts is not available3803 when issue has contacts3804 /remove_contacts is available3805 #available_commands3806 when Guest is creating a new issue3807 includes commands to set metadata3808MergeRequests::CreateFromIssueService3809 #execute3810 no target_project_id specified3811 inherits labels3812 inherits milestones3813 sets the merge request title to: "Draft: Resolves "$issue-title"3814 behaves like a service that creates a merge request from an issue3815 returns an error when user can not create merge request on target project3816 returns an error with invalid issue iid3817 creates a branch based on issue title3818 creates a branch using passed name3819 creates the new_merge_request system note3820 tracks the mr creation when the mr is valid3821 creates the new_issue_branch system note when the branch could be created but the merge_request cannot be created3822 does not track the mr creation when the Mr is invalid3823 creates a merge request3824 sets the merge request author to current user and assigns them3825 sets the merge request source branch to the new issue branch3826 sets the merge request source branch to the passed branch name3827 sets the merge request target branch to the project default branch3828 executes quick actions if the build service sets them in the description3829 when ref branch is set3830 sets the merge request source branch to the new issue branch3831 sets the merge request target branch to the ref branch3832 when the ref is a tag3833 sets the merge request source branch to the new issue branch3834 creates a merge request3835 sets the merge request target branch to the project default branch3836 when ref branch does not exist3837 creates a merge request3838 sets the merge request target branch to the project default branch3839 target_project_id is specified3840 target project is not a fork of the project3841 returns an error about not finding the project3842 does not create merge request3843 target project is a fork of project project3844 sets the merge request title to: "Draft: $issue-branch-name3845 behaves like a service that creates a merge request from an issue3846 returns an error when user can not create merge request on target project3847 returns an error with invalid issue iid3848 creates a branch based on issue title3849 creates a branch using passed name3850 creates the new_merge_request system note3851 tracks the mr creation when the mr is valid3852 creates the new_issue_branch system note when the branch could be created but the merge_request cannot be created3853 does not track the mr creation when the Mr is invalid3854 creates a merge request3855 sets the merge request author to current user and assigns them3856 sets the merge request source branch to the new issue branch3857 sets the merge request source branch to the passed branch name3858 sets the merge request target branch to the project default branch3859 executes quick actions if the build service sets them in the description3860 when ref branch is set3861 sets the merge request source branch to the new issue branch3862 sets the merge request target branch to the ref branch3863 when the ref is a tag3864 sets the merge request source branch to the new issue branch3865 creates a merge request3866 sets the merge request target branch to the project default branch3867 when ref branch does not exist3868 creates a merge request3869 sets the merge request target branch to the project default branch3870Packages::Debian::GenerateDistributionWorker3871 #perform3872 for project3873 with FIPS mode enabled3874 raises an error3875 with mocked service3876 calls GenerateDistributionService3877 with non existing distribution id3878 returns early without error3879 with nil distribution id3880 returns early without error3881 with valid parameters3882 behaves like an idempotent worker3883 is labeled as idempotent3884 performs multiple times sequentially without raising an exception3885 behaves like Generate Debian Distribution and component files3886 with Debian components and architectures3887 generates Debian distribution and component files3888 without components and architectures3889 generates minimal distribution3890 for group3891 with FIPS mode enabled3892 raises an error3893 with mocked service3894 calls GenerateDistributionService3895 with non existing distribution id3896 returns early without error3897 with nil distribution id3898 returns early without error3899 with valid parameters3900 behaves like an idempotent worker3901 is labeled as idempotent3902 performs multiple times sequentially without raising an exception3903 behaves like Generate Debian Distribution and component files3904 with Debian components and architectures3905 generates Debian distribution and component files3906 without components and architectures3907 generates minimal distribution3908DeploymentPlatform3909 #deployment_platform3910 multiple clusters3911 multiple clusters use the same management project3912 behaves like matching environment scope3913 returns environment specific cluster3914 behaves like certificate_based_clusters is disabled3915 is expected to be nil3916 when project does not have a cluster but has group clusters3917 when environment scope is exactly matched3918 behaves like matching environment scope3919 returns environment specific cluster3920 behaves like certificate_based_clusters is disabled3921 is expected to be nil3922 when environment scope is matched by wildcard3923 behaves like matching environment scope3924 returns environment specific cluster3925 behaves like certificate_based_clusters is disabled3926 is expected to be nil3927 when environment scope does not match3928 behaves like not matching environment scope3929 returns default cluster3930 behaves like certificate_based_clusters is disabled3931 is expected to be nil3932 when group belongs to a parent group3933 when parent_group has a cluster with default scope3934 behaves like matching environment scope3935 returns environment specific cluster3936 behaves like certificate_based_clusters is disabled3937 is expected to be nil3938 when parent_group has a cluster that is an exact match3939 behaves like matching environment scope3940 returns environment specific cluster3941 behaves like certificate_based_clusters is disabled3942 is expected to be nil3943 with instance clusters3944 when environment scope is exactly matched3945 behaves like matching environment scope3946 returns environment specific cluster3947 behaves like certificate_based_clusters is disabled3948 is expected to be nil3949 when environment scope is matched by wildcard3950 behaves like matching environment scope3951 returns environment specific cluster3952 behaves like certificate_based_clusters is disabled3953 is expected to be nil3954 when environment scope does not match3955 behaves like not matching environment scope3956 returns default cluster3957 behaves like certificate_based_clusters is disabled3958 is expected to be nil3959 when environment is specified3960 when environment scope is exactly matched3961 behaves like matching environment scope3962 returns environment specific cluster3963 behaves like certificate_based_clusters is disabled3964 is expected to be nil3965 when environment scope is matched by wildcard3966 behaves like matching environment scope3967 returns environment specific cluster3968 behaves like certificate_based_clusters is disabled3969 is expected to be nil3970 when environment scope does not match3971 behaves like not matching environment scope3972 returns default cluster3973 behaves like certificate_based_clusters is disabled3974 is expected to be nil3975 when environment scope has _3976 does not treat it as wildcard3977 when environment name contains an underscore3978 matches literally for _3979 when environment scope has %3980 does not treat it as wildcard3981 when environment name contains a percent char3982 matches literally for %3983 when perfectly matched cluster exists3984 returns perfectly matched cluster as highest precedence3985 with multiple clusters and multiple environments3986 returns the appropriate cluster3987 with no Kubernetes configuration on CI/CD, no Kubernetes Service3988 is expected to be nil3989 when project is the cluster's management project3990 returns the cluster with management project3991 when project has configured kubernetes from CI/CD > Clusters3992 returns the Kubernetes platform3993 with a group level kubernetes cluster3994 returns the Kubernetes platform from the project cluster3995 when group has configured kubernetes cluster3996 returns the Kubernetes platform3997 when project is the cluster's management project3998 returns the cluster with management project3999 when project is not the cluster's management project4000 returns the group cluster4001 when child group has configured kubernetes cluster4002 returns the Kubernetes platform for the child group4003 deeply nested group4004 returns most nested group cluster Kubernetes platform4005 cluster in the middle of hierarchy is disabled4006 returns closest enabled Kubenetes platform4007 when instance has configured kubernetes cluster4008 returns the Kubernetes platform4009Clusters::Platforms::Kubernetes4010 is expected to belong to cluster required: false4011 is expected to be a kind of Gitlab::Kubernetes4012 is expected to respond to #ca_pem4013 is expected to validate that :namespace is not ‹"gitlab-managed-apps"›4014 is expected to validate that :api_url cannot be empty/falsy4015 is expected to validate that :token cannot be empty/falsy4016 is expected to delegate #enabled? to the #cluster object4017 is expected to delegate #provided_by_user? to the #cluster object4018 is expected to nullify if blank :namespace4019 behaves like having unique enum values4020 has unique values in "authorization_type"4021 default values4022 is expected to eq "rbac"4023 before_validation4024 when namespace includes upper case4025 converts to lower case4026 validation4027 when validates namespace4028 when namespace is nil4029 is expected to be truthy4030 when namespace is longer than 634031 is expected to be falsey4032 when namespace includes invalid character4033 is expected to be falsey4034 when namespace is vaild4035 is expected to be truthy4036 for group cluster4037 is expected to be falsey4038 when validates api_url4039 when api_url is invalid url4040 is expected to be falsey4041 when api_url is nil4042 is expected to be falsey4043 when api_url is valid url4044 is expected to be truthy4045 when api_url is localhost4046 is expected to be falsey4047 Application settings allows local requests4048 is expected to be truthy4049 when validates token4050 when token is nil4051 is expected to be falsey4052 ca_cert4053 with a valid certificate4054 is expected to be truthy4055 with an invalid certificate4056 is expected to be falsey4057 but the certificate is not being updated4058 is expected to be truthy4059 with no certificate4060 is expected to be truthy4061 when using reserved namespaces4062 when no namespace is manually assigned4063 is expected to be valid4064 when no reserved namespace is assigned4065 is expected to be valid4066 when reserved namespace is assigned4067 is expected not to be valid4068 #kubeclient4069 is expected to be an instance of Gitlab::Kubernetes::KubeClient4070 ca_pem is a single certificate4071 adds it to cert_store4072 ca_pem is a chain4073 fixture_path: "spec/fixtures/clusters/root_certificate.pem"4074 includes chain of certificates4075 fixture_path: "spec/fixtures/clusters/intermediate_certificate.pem"4076 includes chain of certificates4077 fixture_path: "spec/fixtures/clusters/leaf_certificate.pem"4078 includes chain of certificates4079 #rbac?4080 is expected to be truthy4081 #predefined_variables4082 is expected to include {:key => "KUBE_URL", :value => "https://kubernetes.example.com", :public => true}4083 platform has a CA certificate4084 is expected to include {:key => "KUBE_CA_PEM", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true}4085 is expected to include {:key => "KUBE_CA_PEM_FILE", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true, :file => true}4086 cluster is managed by project4087 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}4088 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}4089 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}4090 kubernetes namespace exists4091 is expected to include {:key => :fake_key, :value => "fake_value"}4092 kubernetes namespace does not exist4093 is expected not to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}4094 is expected not to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}4095 is expected not to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}4096 cluster is unmanaged4097 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}4098 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}4099 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}4100 custom namespace is provided4101 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}4102 is expected to include {:key => "KUBE_NAMESPACE", :value => "custom-namespace"}4103 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}4104 cluster variables4105 is expected to include {:key => :fake_key, :value => "fake_value"}4106 #terminals4107 with invalid pods4108 returns no terminals4109 with valid pods4110 returns terminals4111 uses max session time from settings4112 #calculate_reactive_cache_for4113 when kubernetes responds with valid deployments4114 on a project level cluster4115 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}4116 when reading ingress raises NoMethodError4117 when version request succeeds4118 when server min version is < 234119 does not raise error4120 returns empty array for the K8s component keys4121 when server min version is >= 234122 does raise error4123 when the version request fails4124 tracks error and returns empty arrays4125 on a group level cluster4126 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}4127 on an instance level cluster4128 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}4129 when the kubernetes integration is disabled4130 is expected to be nil4131 when there are ignored K8s connections errors4132 Gitlab::UrlBlocker::BlockedUrlError4133 does not raise error4134 returns empty array for the K8s component keys4135 logs the error4136 Kubeclient::HttpError4137 does not raise error4138 returns empty array for the K8s component keys4139 logs the error4140 Errno::ECONNREFUSED4141 does not raise error4142 returns empty array for the K8s component keys4143 logs the error4144 URI::InvalidURIError4145 does not raise error4146 returns empty array for the K8s component keys4147 logs the error4148 Errno::EHOSTUNREACH4149 does not raise error4150 returns empty array for the K8s component keys4151 logs the error4152 OpenSSL::X509::StoreError4153 does not raise error4154 returns empty array for the K8s component keys4155 logs the error4156 OpenSSL::SSL::SSLError4157 does not raise error4158 returns empty array for the K8s component keys4159 logs the error4160 when kubernetes responds with 500s4161 does not raise kubeclient http error4162 when kubernetes responds with 404s4163 is expected to eq {:deployments=>[], :ingresses=>[], :pods=>[]}4164 #rollout_status4165 legacy deployments based on app label4166 only legacy deployments4167 contains nothing4168 deployment with no pods4169 returns a valid status with matching deployments4170 new deployment based on annotations4171 contains only matching deployments4172 with no deployments but there are pods4173 returns an empty array4174 with valid deployments4175 creates a matching RolloutStatus4176 with canary ingress4177 has canary ingress4178 with empty list of deployments4179 creates a matching RolloutStatus4180 when the pod track does not match the deployment track4181 does not return the pod4182 when the pod track is not stable4183 the pod is not stable4184 when the pod track is stable4185 the pod is stable4186 when the pod track is not provided4187 the pod is stable4188 when the number of matching pods does not match the number of replicas4189 returns a pending pod for each missing replica4190 when pending pods are returned for missing replicas4191 returns the correct track for the pending pods4192 when two deployments with the same track are missing instances4193 returns the correct number of pending pods4194 with multiple matching deployments4195 returns each pod once4196 when cache keys are defaulted4197 does not raise error4198 #ingresses4199 when there is an ingress in the namespace4200 returns an ingress4201 when there are no ingresss in the namespace4202 returns nothing4203 #patch_ingress4204 when there is an ingress in the namespace4205 returns an ingress4206 when there are no ingresss in the namespace4207 raises an error4208Ci::JobArtifacts::DestroyAllExpiredService4209 .execute4210 when artifact is expired4211 with preloaded relationships4212 with ci_destroy_unlocked_job_artifacts feature flag disabled4213 performs a consistent number of queries4214 with ci_destroy_unlocked_job_artifacts feature flag enabled4215 performs a consistent number of queries4216 when artifact is not locked4217 deletes job artifact record4218 when the artifact does not have a file attached to it4219 does not create deleted objects4220 when the artifact has a file attached to it4221 creates a deleted object4222 resets project statistics4223 does not remove the files4224 when the project in which the arfifact belongs to is undergoing stats refresh4225 does not destroy job artifact4226 when artifact is locked4227 does not destroy job artifact4228 when artifact is not expired4229 does not destroy expired job artifacts4230 when artifact is permanent4231 does not destroy expired job artifacts4232 when failed to destroy artifact4233 when the import fails4234 raises an exception and stop destroying4235 when the delete fails4236 raises an exception rolls back the insert4237 when exclusive lease has already been taken by the other instance4238 raises an error and does not start destroying4239 with a second artifact and batch size of 14240 when timeout happens4241 destroys one artifact4242 reports the number of destroyed artifacts4243 when loop reached loop limit4244 destroys one artifact4245 reports the number of destroyed artifacts4246 when the number of artifacts is greater than than batch size4247 destroys all expired artifacts4248 reports the number of destroyed artifacts4249 when there are no artifacts4250 does not raise error4251 reports the number of destroyed artifacts4252 when some artifacts are locked4253 destroys only unlocked artifacts4254 when all artifacts are locked4255 destroys no artifacts4256Gitlab::Asciidoc4257 without project4258 converts the input using Asciidoctor and default options4259 with asciidoc_opts4260 merges the options with default ones4261 with requested path4262 ignores {docname} when not available4263 sets {docname} for root4264 sets {docname} for just a filename4265 sets {docname} for a directory4266 sets {docname} for a complete path4267 XSS4268 does not convert dangerous link with extra attribute into HTML4269 does not convert dangerous link with unsafe scheme into HTML4270 does not convert dangerous image with onerror into HTML4271asciidoctor: WARNING: <stdin>: line 1: unterminated listing block4272 does not convert dangerous fenced code with inline script into HTML4273 does not allow locked attributes to be overridden4274 images4275 does lazy load and link image4276 does not automatically link image if link is explicitly defined4277 with admonition4278 preserves classes4279 with passthrough4280 removes non heading ids4281 removes non footnote def ids4282 removes non footnote ref ids4283 with footnotes4284 preserves ids and links4285 with section anchors4286 preserves ids and links4287 with xrefs4288 preserves ids4289 with checklist4290 preserves classes4291 with marks4292 preserves classes4293 with fenced block4294 highlights syntax4295 with listing block4296 highlights syntax4297 with stem block4298 does not apply syntax highlighting4299 external links4300 adds the `rel` attribute to the link4301 LaTex code4302 adds class js-render-math to the output4303 outfilesuffix4304 defaults to adoc4305 with mermaid diagrams4306 adds class js-render-mermaid to the output4307 applies subs in diagram block4308 with Kroki enabled4309 converts a graphviz diagram to image4310 does not convert a blockdiag diagram to image4311 does not allow kroki-plantuml-include to be overridden4312 does not allow kroki-server-url to be overridden4313 with Kroki and BlockDiag (additional format) enabled4314 converts a blockdiag diagram to image4315 with project4316 include directive4317 cyclic imports4318 completes successfully4319 with path to non-existing file4320 renders Unresolved directive placeholder4321 with path to a binary file4322 does not read the blob4323 renders Unresolved directive placeholder4324 with path to file in external storage4325 does not read the blob4326 renders Unresolved directive placeholder4327 with path to a textual file4328 when requested path is a file in the repo4329 the file is specified by absolute path4330 includes content of the file4331 the file is specified by relative path4332 includes content of the file4333 the file is specified by relative path with leading ./4334 includes content of the file4335 the file is specified by relative path to a file up one directory4336 includes content of the file4337 the file is specified by relative path for a file up multiple directories4338 includes content of the file4339 without a commit (only ref)4340 the file is specified by absolute path4341 includes content of the file4342 the file is specified by relative path4343 includes content of the file4344 the file is specified by relative path with leading ./4345 includes content of the file4346 the file is specified by relative path to a file up one directory4347 includes content of the file4348 the file is specified by relative path for a file up multiple directories4349 includes content of the file4350 when requested path is a directory in the repo4351 the file is specified by absolute path4352 includes content of the file4353 the file is specified by relative path4354 includes content of the file4355 the file is specified by relative path with leading ./4356 includes content of the file4357 the file is specified by relative path to a file up one directory4358 includes content of the file4359 the file is specified by relative path for a file up multiple directories4360 includes content of the file4361 without a commit (only ref)4362 the file is specified by absolute path4363 includes content of the file4364 the file is specified by relative path4365 includes content of the file4366 the file is specified by relative path with leading ./4367 includes content of the file4368 the file is specified by relative path to a file up one directory4369 includes content of the file4370 the file is specified by relative path for a file up multiple directories4371 includes content of the file4372 when repository is passed into the context4373 when the file exists4374 is expected to include "<p>Content from wiki</p>"4375 when the file does not exist4376 is expected to include "[ERROR: include::wiki_file.adoc[] - unresolved directive]"4377 recursive includes with relative paths4378 includes content of the included files recursively4379ResourceMilestoneEvent4380 behaves like a resource event4381 importable4382 is expected to respond to #importing?4383 is expected to respond to #imported?4384 validations4385 is expected not to allow :user to be ‹nil›4386 when importing4387 is expected to allow :user to be ‹nil›4388 associations4389 is expected to belong to user required: false4390 .created_after4391 returns the expected events4392 returns no events if time is after last record time4393 behaves like a resource event for issues4394 associations4395 is expected to belong to issue required: false4396 .by_issue4397 returns the expected records for an issue with events4398 returns the expected records for an issue with no events4399 .by_issue_ids4400 returns the expected events4401 .by_created_at_earlier_or_equal_to4402 returns the expected events4403 returns the expected events4404 #issuable4405 returns the expected issuable4406 behaves like a resource event for merge requests4407 associations4408 is expected to belong to merge_request required: false4409 .by_merge_request4410 returns the expected records for an issue with events4411 returns the expected records for an issue with no events4412 #issuable4413 returns the expected issuable4414 behaves like having unique enum values4415 has unique values in "action"4416 has unique values in "state"4417 behaves like timebox resource event validations4418 validations4419 when issue and merge_request are both nil4420 is expected not to be valid4421 when issue and merge_request are both set4422 is expected not to be valid4423 when issue is set4424 is expected to be valid4425 when merge_request is set4426 is expected to be valid4427 behaves like timebox resource event states4428 states4429 supports state opened for issue4430 supports state closed for issue4431 supports state opened for merge_request4432 supports state closed for merge_request4433 supports state merged for merge_request4434 supports state locked for merge_request4435 behaves like timebox resource event actions4436 #added?4437 behaves like queryable timebox action resource event4438 is true for action add on issue4439 is false for action remove on issue4440 is true for action add on merge_request4441 is false for action remove on merge_request4442 #removed?4443 behaves like queryable timebox action resource event4444 is false for action add on issue4445 is true for action remove on issue4446 is false for action add on merge_request4447 is true for action remove on merge_request4448 behaves like timebox resource tracks issue metrics4449 #issue_usage_metrics4450 tracks usage for issues4451 does not track usage for merge requests4452 associations4453 is expected to belong to milestone required: false4454 #milestone_title4455 returns the expected title4456 when milestone is nil4457 returns nil4458 #milestone_parent4459 when milestone parent is project4460 returns the expected parent4461 when milestone parent is group4462 returns the expected parent4463 when milestone is nil4464 returns nil4465MergeRequests::CloseService4466 #execute4467 updates metrics4468 calls the merge request activity counter4469 refreshes the number of open merge requests for a valid MR4470 clean up environments for the merge request4471 schedules CleanupRefsService4472 triggers GraphQL subscription mergeRequestMergeStatusUpdated4473 behaves like cache counters invalidator4474 invalidates counter cache for assignees4475 behaves like merge request reviewers cache counters invalidator4476 invalidates counter cache for reviewers4477 valid params4478 is expected to be valid4479 is expected to be closed4480 executes hooks with close action4481 sends email to user2 about assign of new merge_request4482 creates a resource event4483 marks todos as done4484 when auto merge is enabled4485 cancels the auto merge4486 current user is not authorized to close merge request4487 does not close the merge request4488 does not trigger GraphQL subscription mergeRequestMergeStatusUpdated4489Banzai::ReferenceParser::SnippetParser4490 #nodes_visible_to_user4491 when a project is public and the snippets feature is enabled for everyone4492 avoids N+1 cached queries4493 creates a reference for guest for a public snippet4494 creates a reference for a regular user for a public snippet4495 creates a reference for a regular user for an internal snippet4496 does not create a reference for an external user for an internal snippet4497 creates a reference for a project member for a private snippet4498 does not create a reference for a regular user for a private snippet4499 when a project is public and the snippets feature is enabled for project team members4500 creates a reference for a project member for a public snippet4501 does not create a reference for guest for a public snippet4502 does not create a reference for a regular user for a public snippet4503 creates a reference for a project member for an internal snippet4504 does not create a reference for a regular user for an internal snippet4505 creates a reference for a project member for a private snippet4506 does not create a reference for a regular user for a private snippet4507 when a project is internal and the snippets feature is enabled for everyone4508 does not create a reference for guest for a public snippet4509 does not create a reference for an external user for a public snippet4510 creates a reference for a regular user for a public snippet4511 creates a reference for a regular user for an internal snippet4512 does not create a reference for an external user for an internal snippet4513 creates a reference for a project member for a private snippet4514 does not create a reference for a regular user for a private snippet4515 when a project is internal and the snippets feature is enabled for project team members4516 creates a reference for a project member for a public snippet4517 does not create a reference for guest for a public snippet4518 does not create reference for a regular user for a public snippet4519 creates a reference for a project member for an internal snippet4520 does not create a reference for a regular user for an internal snippet4521 creates a reference for a project member for a private snippet4522 does not create reference for a regular user for a private snippet4523 when a project is private and the snippets feature is enabled for project team members4524 creates a reference for a project member for a public snippet4525 does not create a reference for guest for a public snippet4526 does not create a reference for a regular user for a public snippet4527 creates a reference for a project member for an internal snippet4528 does not create a reference for a regular user for an internal snippet4529 creates a reference for a project member for a private snippet4530 does not create a reference for a regular user for a private snippet4531 #referenced_by4532 when the link has a data-snippet attribute4533 using an existing snippet ID4534 returns an Array of snippets4535 using a non-existing snippet ID4536 returns an empty Array4537MergeRequests::ReopenService4538 #execute4539 caches merge request closing issues4540 updates metrics4541 calls the merge request activity counter4542 refreshes the number of open merge requests for a valid MR4543 behaves like cache counters invalidator4544 invalidates counter cache for assignees4545 behaves like merge request reviewers cache counters invalidator4546 invalidates counter cache for reviewers4547 valid params4548 is expected to be valid4549 is expected to be opened4550 executes hooks with reopen action4551 sends email to user2 about reopen of merge_request4552 destroys cleanup schedule record4553 clears the cached merge_ref_sha4554 note creation4555 creates resource state event about merge_request reopen4556 current user is not authorized to reopen merge request4557 does not reopen the merge request4558Packages::Maven::Metadata::SyncWorker4559 #perform4560 with a jar4561 with a valid package name4562 logs the message from the service4563 behaves like an idempotent worker4564 is labeled as idempotent4565 performs multiple times sequentially without raising an exception4566 creates the updated metadata files4567 not in the passed project4568 does not create the updated metadata files4569 with a user with not enough permissions4570 does not create the updated metadata files4571 with a maven plugin4572 with a valid package name4573 logs the message from the service4574 behaves like an idempotent worker4575 is labeled as idempotent4576 performs multiple times sequentially without raising an exception4577 creates the updated metadata files4578 not in the passed project4579 does not create the updated metadata files4580 with a user with not enough permissions4581 does not create the updated metadata files4582 with no package name4583 does not run4584 with no user id4585 does not run4586 with no project id4587 does not run4588Ci::RunnerJobsFinder4589 #execute4590 when params is empty4591 returns all jobs assigned to Runner4592 when the user has guest access4593 does not returns jobs the user does not have permission to see4594 when the user has permission to read all resources4595 returns all the jobs assigned to a runner4596 when the user has different access levels in different projects4597 returns only the jobs the user has permission to see4598 when the user has reporter access level or greater4599 returns jobs assigned to the Runner that the user has accesss to4600 when params contains status4601 when status is created4602 returns matched job4603 when status is waiting_for_resource4604 returns matched job4605 when status is preparing4606 returns matched job4607 when status is pending4608 returns matched job4609 when status is running4610 returns matched job4611 when status is success4612 returns matched job4613 when status is failed4614 returns matched job4615 when status is canceled4616 returns matched job4617 when status is skipped4618 returns matched job4619 when status is manual4620 returns matched job4621 when status is scheduled4622 returns matched job4623 when order_by and sort are specified4624 when order_by id and sort is asc4625 sorts as id: :asc4626 when order_by is specified and sort is not specified4627 when order_by id and sort is not specified4628 sorts as id: :desc4629Search::GlobalService4630 #execute4631 unauthenticated4632 returns public projects only4633 authenticated4634 returns public, internal and private projects4635 returns only public & internal projects4636 project name is searchable4637 does not return archived projects4638 issues4639 sorting4640 sort: created_desc4641 sorts results by created_at4642 sort: created_asc4643 sorts results by created_at4644 sort: updated_desc4645 sorts results by updated_desc4646 sort: updated_asc4647 sorts results by updated_asc4648 merge_request4649 sorting4650 sort: created_desc4651 sorts results by created_at4652 sort: created_asc4653 sorts results by created_at4654 sort: updated_desc4655 sorts results by updated_desc4656 sort: updated_asc4657 sorts results by updated_asc4658SystemNoteService4659 .add_commits4660 calls CommitService4661 .tag_commit4662 calls CommitService4663 .change_assignee4664 calls IssuableService4665 .change_issuable_assignees4666 calls IssuableService4667 .change_issuable_reviewers4668 calls IssuableService4669 .change_issuable_contacts4670 calls IssuableService4671 .close_after_error_tracking_resolve4672 calls IssuableService4673 .relate_issuable4674 calls IssuableService4675 .unrelate_issuable4676 calls IssuableService4677 .change_start_date_or_due_date4678 calls TimeTrackingService4679 .change_status4680 calls IssuableService4681 .merge_when_pipeline_succeeds4682 calls MergeRequestsService4683 .cancel_merge_when_pipeline_succeeds4684 calls MergeRequestsService4685 .abort_merge_when_pipeline_succeeds4686 calls MergeRequestsService4687 .change_title4688 calls IssuableService4689 .change_description4690 calls IssuableService4691 .change_issue_confidentiality4692 calls IssuableService4693 .change_branch4694 calls MergeRequestsService4695 .change_branch_presence4696 calls MergeRequestsService4697 .new_issue_branch4698 calls MergeRequestsService4699 .new_merge_request4700 calls MergeRequestsService4701 .zoom_link_added4702 calls ZoomService4703 .zoom_link_removed4704 calls ZoomService4705 .cross_reference4706 calls IssuableService4707 .cross_reference_disallowed?4708 calls IssuableService4709 .cross_reference_exists?4710 calls IssuableService4711 .noteable_moved4712 calls IssuableService4713 .noteable_cloned4714 calls IssuableService4715 .change_time_estimate4716 calls TimeTrackingService4717 .discussion_continued_in_issue4718 creates a new note in the discussion4719 mentions the created issue in the system note4720 behaves like a system note4721 has the correct attributes4722 .change_time_spent4723 calls TimeTrackingService4724 .created_timelog4725 calls TimeTrackingService4726 .remove_timelog4727 calls TimeTrackingService4728 .handle_merge_request_draft4729 calls MergeRequestsService4730 .add_merge_request_draft_from_commit4731 calls MergeRequestsService4732 .change_task_status4733 calls IssuableService4734 .resolve_all_discussions4735 calls MergeRequestsService4736 .diff_discussion_outdated4737 calls MergeRequestsService4738 .mark_duplicate_issue4739 calls IssuableService4740 .mark_canonical_issue_of_duplicate4741 calls IssuableService4742 .discussion_lock4743 calls IssuableService4744 .auto_resolve_prometheus_alert4745 calls IssuableService4746 .design_version_added4747 calls DesignManagementService4748 .design_discussion_added4749 calls DesignManagementService4750 .approve_mr4751 calls MergeRequestsService4752 .unapprove_mr4753 calls MergeRequestsService4754 .change_alert_status4755 with status change reason4756 calls AlertManagementService4757 without status change reason4758 calls AlertManagementService4759 .new_alert_issue4760 calls AlertManagementService4761 .create_new_alert4762 calls AlertManagementService4763 .change_incident_severity4764 calls IncidentService4765 .change_incident_status4766 with status change reason4767 calls IncidentService4768 without status change reason4769 calls IncidentService4770 .log_resolving_alert4771 calls AlertManagementService4772 .change_issue_type4773 calls IssuableService4774 .add_timeline_event4775 calls IncidentsService4776 .edit_timeline_event4777 calls IncidentsService4778 .delete_timeline_event4779 calls IncidentsService4780 .relate_work_item4781 calls IssuableService4782 .unrelate_wotk_item4783 calls IssuableService4784NotificationRecipient4785 #notifiable?4786 when emails are disabled4787 returns false if group disabled4788 returns false if project disabled4789 when emails are enabled4790 returns true if group enabled4791 returns true if project enabled4792 when recipient email is blocked4793 with permanent failures4794 returns false4795 with temporary failures4796Skipping ./spec/models/notification_recipient_spec.rb[1:1:3:2:1] 'NotificationRecipient#notifiable? when recipient email is blocked with temporary failures returns false' because it's flaky.4797 returns false (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)4798 #has_access?4799 user cannot read cross project4800 returns false4801 user cannot read build4802 returns false4803 user cannot read commit4804 returns false4805 target has no policy4806 returns true4807 #notification_setting4808 for child groups4809 when notification setting is global4810 considers notification setting from the first parent without global setting4811 when notification setting is not global4812 considers notification setting from lowest group member in hierarchy4813 #suitable_notification_level?4814 when notification level is mention4815 when type is mention4816 returns true4817 when type is not mention4818 returns false4819 when notification level is participating4820 when type is participating4821 returns true4822 when type is mention4823 returns true4824 with custom action4825 when action is failed_pipeline4826 returns true4827 when action is fixed_pipeline4828 returns true4829 when action is not fixed_pipeline or failed_pipeline4830 returns false4831 when notification level is custom4832 when type is participating4833 with custom event enabled4834 returns true4835 without custom event enabled4836 returns true4837 when type is mention4838 with custom event enabled4839 returns true4840 without custom event enabled4841 returns true4842 when type is watch4843 with custom event enabled4844 returns true4845 without custom event enabled4846 returns false4847 when custom_action is fixed_pipeline and success_pipeline event is enabled4848 returns true4849 with merge_when_pipeline_succeeds4850 custom event enabled4851 returns true4852 custom event disabled4853 returns false4854 when notification level is watch4855 when type is watch4856 without excluded watcher events4857 returns true4858 with excluded watcher events4859 returns false4860 when type is not watch4861 without excluded watcher events4862 returns true4863 with excluded watcher events4864 returns true4865Gitlab::JsonCache4866 #active?4867 when backend respond to active? method4868 delegates to the underlying cache implementation4869 when backend does not respond to active? method4870 returns true4871 #cache_key4872 namespace: nil, cache_key_strategy: :revision, expanded_key: "foo:8f189ac6128"4873 is expected to eq "foo:8f189ac6128"4874 namespace: nil, cache_key_strategy: :version, expanded_key: "foo:15.7.0-pre:6.1.6.1"4875 is expected to eq "foo:15.7.0-pre:6.1.6.1"4876 namespace: "geo", cache_key_strategy: :revision, expanded_key: "geo:foo:8f189ac6128"4877 is expected to eq "geo:foo:8f189ac6128"4878 namespace: "geo", cache_key_strategy: :version, expanded_key: "geo:foo:15.7.0-pre:6.1.6.1"4879 is expected to eq "geo:foo:15.7.0-pre:6.1.6.1"4880 when cache_key_strategy is unknown4881 raises KeyError4882 #namespace4883 defaults to nil4884 #strategy_key_component4885 defaults to Gitlab.revision4886 when cache_key_strategy is :revision4887 is expected to eq "8f189ac6128"4888 when cache_key_strategy is :version4889 is expected to eq ["15.7.0-pre", "6.1.6.1"]4890 when cache_key_strategy is invalid4891 raises KeyError4892 #expire4893 expires the given key from the cache4894 #read4895 reads the given key from the cache4896 returns the cached value when there is data in the cache with the given key4897 returns nil when there is no data in the cache with the given key4898 when the cached value is true4899 parses the cached value4900 when the cached value is false4901 parses the cached value4902 when the cached value is a JSON true value4903 parses the cached value4904 when the cached value is a JSON false value4905 parses the cached value4906 when the cached value is a hash4907 parses the cached value4908 returns nil when klass is nil4909 gracefully handles bad cached entry4910 gracefully handles an empty hash4911 gracefully handles unknown attributes4912 gracefully handles excluded fields from attributes during serialization4913 when the cached value is an array4914 parses the cached value4915 returns an empty array when klass is nil4916 gracefully handles bad cached entry4917 gracefully handles an empty array4918 gracefully handles unknown attributes4919 #write4920 writes value to the cache with the given key4921 writes a string containing a JSON representation of the value to the cache4922 passes options the underlying cache implementation4923 passes options the underlying cache implementation when options is empty4924 passes options the underlying cache implementation when options is nil4925 #fetch4926 requires a block4927 passes options the underlying cache implementation4928 when the given key does not exist in the cache4929 when the result of the block is truthy4930 returns the result of the block4931 caches the value4932 when the result of the block is false4933 returns the result of the block4934 caches the value4935 when the result of the block is nil4936 returns the result of the block4937 caches the value4938 when the given key exists in the cache4939 when the cached value is a hash4940 parses the cached value4941 decodes enums correctly4942 returns the result of the block when 'as' option is nil4943 returns the result of the block when 'as' option is missing4944 when the cached value is an instance of ActiveRecord::Base4945 returns a persisted record when id is set4946 returns a new record when id is nil4947 returns a new record when id is missing4948 gracefully handles bad cached entry4949 gracefully handles an empty hash4950 gracefully handles unknown attributes4951 gracefully handles excluded fields from attributes during serialization4952 when the cached value is a array4953 parses the cached value4954 returns an empty array when 'as' option is nil4955 returns an empty array when 'as' option is not informed4956 when the cached value is true4957 returns the cached value4958 does not execute the block4959 does not write to the cache4960 when the cached value is false4961 returns the cached value4962 does not execute the block4963 does not write to the cache4964 when the cached value is nil4965 returns the result of the block4966 writes the result of the block to the cache4967gitlab:db:validate_config4968 when validating config4969 when only main: is specified4970 behaves like validates successfully4971 by default4972 for production4973 always re-establishes ActiveRecord::Base connection to main config4974 if GITLAB_VALIDATE_DATABASE_CONFIG is set4975 when finding the initializer fails4976 raised_error: ActiveRecord::NoDatabaseError4977 does not raise an error for ActiveRecord::NoDatabaseError4978 raised_error: ActiveRecord::ConnectionNotEstablished4979WARNING: Could not establish database connection for main: ActiveRecord::ConnectionNotEstablished4980 does not raise an error for ActiveRecord::ConnectionNotEstablished4981 raised_error: PG::ConnectionBad4982WARNING: Could not establish database connection for main: PG::ConnectionBad4983 does not raise an error for PG::ConnectionBad4984 when config is pointing to incorrect server4985 behaves like validates successfully4986WARNING: Could not establish database connection for main: could not connect to server: Connection refused4987 Is the server running on host "172.17.0.3" and accepting4988 TCP/IP connections on port 11235?4989WARNING: Could not establish database connection for main: could not connect to server: Connection refused4990 Is the server running on host "172.17.0.3" and accepting4991 TCP/IP connections on port 11235?4992 by default4993WARNING: Could not establish database connection for main: could not connect to server: Connection refused4994 Is the server running on host "172.17.0.3" and accepting4995 TCP/IP connections on port 11235?4996WARNING: Could not establish database connection for main: could not connect to server: Connection refused4997 Is the server running on host "172.17.0.3" and accepting4998 TCP/IP connections on port 11235?4999 for production5000WARNING: Could not establish database connection for main: could not connect to server: Connection refused5001 Is the server running on host "172.17.0.3" and accepting5002 TCP/IP connections on port 11235?5003WARNING: Could not establish database connection for main: could not connect to server: Connection refused5004 Is the server running on host "172.17.0.3" and accepting5005 TCP/IP connections on port 11235?5006 always re-establishes ActiveRecord::Base connection to main config5007WARNING: Could not establish database connection for main: could not connect to server: Connection refused5008 Is the server running on host "172.17.0.3" and accepting5009 TCP/IP connections on port 11235?5010WARNING: Could not establish database connection for main: could not connect to server: Connection refused5011 Is the server running on host "172.17.0.3" and accepting5012 TCP/IP connections on port 11235?5013 if GITLAB_VALIDATE_DATABASE_CONFIG is set5014 when finding the initializer fails5015 raised_error: ActiveRecord::NoDatabaseError5016WARNING: Could not establish database connection for main: could not connect to server: Connection refused5017 Is the server running on host "172.17.0.3" and accepting5018 TCP/IP connections on port 11235?5019WARNING: Could not establish database connection for main: could not connect to server: Connection refused5020 Is the server running on host "172.17.0.3" and accepting5021 TCP/IP connections on port 11235?5022 does not raise an error for ActiveRecord::NoDatabaseError5023 raised_error: ActiveRecord::ConnectionNotEstablished5024WARNING: Could not establish database connection for main: could not connect to server: Connection refused5025 Is the server running on host "172.17.0.3" and accepting5026 TCP/IP connections on port 11235?5027WARNING: Could not establish database connection for main: could not connect to server: Connection refused5028 Is the server running on host "172.17.0.3" and accepting5029 TCP/IP connections on port 11235?5030 does not raise an error for ActiveRecord::ConnectionNotEstablished5031 raised_error: PG::ConnectionBad5032WARNING: Could not establish database connection for main: could not connect to server: Connection refused5033 Is the server running on host "172.17.0.3" and accepting5034 TCP/IP connections on port 11235?5035WARNING: Could not establish database connection for main: could not connect to server: Connection refused5036 Is the server running on host "172.17.0.3" and accepting5037 TCP/IP connections on port 11235?5038 does not raise an error for PG::ConnectionBad5039 when config is pointing to non-existent database5040 behaves like validates successfully5041 by default5042 for production5043 always re-establishes ActiveRecord::Base connection to main config5044 if GITLAB_VALIDATE_DATABASE_CONFIG is set5045 when finding the initializer fails5046 raised_error: ActiveRecord::NoDatabaseError5047 does not raise an error for ActiveRecord::NoDatabaseError5048 raised_error: ActiveRecord::ConnectionNotEstablished5049 does not raise an error for ActiveRecord::ConnectionNotEstablished5050 raised_error: PG::ConnectionBad5051 does not raise an error for PG::ConnectionBad5052 when main: uses database_tasks=false5053 behaves like raises an error5054WARNING: Could not establish database connection for main: 5055WARNING: Could not establish database connection for main: 5056 by default5057WARNING: Could not establish database connection for main: 5058WARNING: Could not establish database connection for main: 5059 for production5060WARNING: Could not establish database connection for main: 5061WARNING: Could not establish database connection for main: 5062 always re-establishes ActiveRecord::Base connection to main config5063WARNING: Could not establish database connection for main: 5064WARNING: Could not establish database connection for main: 5065 if GITLAB_VALIDATE_DATABASE_CONFIG=15066 to stderr if GITLAB_VALIDATE_DATABASE_CONFIG=05067 when many configurations share the same database5068 when no database_tasks is specified, assumes true5069 behaves like raises an error5070 by default5071 for production5072 always re-establishes ActiveRecord::Base connection to main config5073 if GITLAB_VALIDATE_DATABASE_CONFIG=15074 to stderr if GITLAB_VALIDATE_DATABASE_CONFIG=05075 when database_tasks is specified5076 behaves like raises an error5077 by default5078 for production5079 always re-establishes ActiveRecord::Base connection to main config5080 if GITLAB_VALIDATE_DATABASE_CONFIG=15081 to stderr if GITLAB_VALIDATE_DATABASE_CONFIG=05082 when there's no main: but something different, as currently we only can share with main:5083 behaves like raises an error5084 by default5085 for production5086 always re-establishes ActiveRecord::Base connection to main config5087 if GITLAB_VALIDATE_DATABASE_CONFIG=15088 to stderr if GITLAB_VALIDATE_DATABASE_CONFIG=05089 when ci: uses different database5090 and does not specify database_tasks which indicates using dedicated database5091 behaves like validates successfully5092 by default5093 for production5094 always re-establishes ActiveRecord::Base connection to main config5095 if GITLAB_VALIDATE_DATABASE_CONFIG is set5096 when finding the initializer fails5097 raised_error: ActiveRecord::NoDatabaseError5098 does not raise an error for ActiveRecord::NoDatabaseError5099 raised_error: ActiveRecord::ConnectionNotEstablished5100WARNING: Could not establish database connection for main: ActiveRecord::ConnectionNotEstablished5101WARNING: Could not establish database connection for ci: ActiveRecord::ConnectionNotEstablished5102 does not raise an error for ActiveRecord::ConnectionNotEstablished5103 raised_error: PG::ConnectionBad5104WARNING: Could not establish database connection for main: PG::ConnectionBad5105WARNING: Could not establish database connection for ci: PG::ConnectionBad5106 does not raise an error for PG::ConnectionBad5107 and does specify database_tasks=false which indicates sharing with main:5108 behaves like raises an error5109 by default5110 for production5111 always re-establishes ActiveRecord::Base connection to main config5112 if GITLAB_VALIDATE_DATABASE_CONFIG=15113 to stderr if GITLAB_VALIDATE_DATABASE_CONFIG=05114 one of the databases is in read-only mode5115 behaves like validates successfully5116WARNING: Could not write to the database main: cannot execute UPSERT in a read-only transaction5117 by default5118WARNING: Could not write to the database main: cannot execute UPSERT in a read-only transaction5119 for production5120WARNING: Could not write to the database main: cannot execute UPSERT in a read-only transaction5121 always re-establishes ActiveRecord::Base connection to main config5122WARNING: Could not write to the database main: cannot execute UPSERT in a read-only transaction5123 if GITLAB_VALIDATE_DATABASE_CONFIG is set5124 when finding the initializer fails5125 raised_error: ActiveRecord::NoDatabaseError5126WARNING: Could not write to the database main: cannot execute UPSERT in a read-only transaction5127 does not raise an error for ActiveRecord::NoDatabaseError5128 raised_error: ActiveRecord::ConnectionNotEstablished5129WARNING: Could not write to the database main: cannot execute UPSERT in a read-only transaction5130WARNING: Could not establish database connection for main: ActiveRecord::ConnectionNotEstablished5131 does not raise an error for ActiveRecord::ConnectionNotEstablished5132 raised_error: PG::ConnectionBad5133WARNING: Could not write to the database main: cannot execute UPSERT in a read-only transaction5134WARNING: Could not establish database connection for main: PG::ConnectionBad5135 does not raise an error for PG::ConnectionBad5136 when running db:migrate5137 does run gitlab:db:validate_config before5138 when running db:schema:load5139 does run gitlab:db:validate_config before5140 when running db:schema:dump5141 does run gitlab:db:validate_config before5142Gitlab::HashedStorage::Migrator5143 #bulk_schedule_migration5144 schedules job to HashedStorage::MigratorWorker5145 #bulk_schedule_rollback5146 schedules job to HashedStorage::RollbackerWorker5147 #bulk_migrate5148 enqueue jobs to HashedStorage::ProjectMigrateWorker5149 rescues and log exceptions5150 delegates each project in specified range to #migrate5151 has all projects migrated and set as writable5152 #bulk_rollback5153 enqueue jobs to HashedStorage::ProjectRollbackWorker5154 rescues and log exceptions5155 delegates each project in specified range to #rollback5156 has all projects rolledback and set as writable5157 #migrate5158 enqueues project migration job5159 rescues and log exceptions5160 migrates project storage5161 has migrated project set as writable5162 when project is already on hashed storage5163 doesnt enqueue any migration job5164 returns false5165 #rollback5166 enqueues project rollback job5167 rescues and log exceptions5168 rolls-back project storage5169 has rolled-back project set as writable5170 when project is already on legacy storage5171 doesnt enqueue any rollback job5172 returns false5173 migration_pending?5174 returns true when there are MigratorWorker jobs scheduled5175 returns true when there are ProjectMigrateWorker jobs scheduled5176 returns false when queues are empty5177 rollback_pending?5178 returns true when there are RollbackerWorker jobs scheduled5179 returns true when there are jobs scheduled5180 returns false when queues are empty5181 abort_rollback!5182 removes any rollback related scheduled job5183NamespaceSetting5184 is expected to define :jobs_to_be_done as an enum backed by an integer with values ‹[:basics, :move_repository, :code_storage, :exploring, :ci, :other]›, suffix: true5185 is expected to define :enabled_git_access_protocol as an enum backed by an integer with values ‹[:all, :ssh, :http]›, suffix: true5186 behaves like sanitizable5187 includes Sanitizable5188 #default_branch_name5189 when input includes javascript tags5190 gets sanitized5191 #default_branch_name validation5192 when input contains pre-escaped html entities5193 is not valid5194 Associations5195 is expected to belong to namespace required: false5196 validations5197 #default_branch_name_content5198 when not set5199 behaves like doesn't return an error5200 doesn't return an error5201 when set5202 behaves like doesn't return an error5203 doesn't return an error5204 when an empty string5205 behaves like doesn't return an error5206 doesn't return an error5207 #allow_mfa_for_group5208 group is top-level group5209 is valid5210 group is a subgroup5211 is invalid5212 #allow_resource_access_token_creation_for_group5213 group is top-level group5214 is valid5215 group is a subgroup5216 is invalid when resource access token creation is not enabled5217 is valid when resource access tokens are enabled5218 #prevent_sharing_groups_outside_hierarchy5219 when this namespace is a root ancestor5220 returns the actual stored value5221 when this namespace is a descendant5222 returns the value stored for the parent settings5223 #show_diff_preview_in_email?5224 when not a subgroup5225 does not query the db when there is no parent group5226 when :show_diff_preview_in_email is false5227 returns false5228 when :show_diff_preview_in_email is true5229 returns true5230 when a group has parent groups5231 when a parent group has disabled diff previews5232 returns false5233 when all parent groups have enabled diff previews5234 returns true5235 #runner_registration_enabled?5236 when not a subgroup5237 when :runner_registration_enabled is false5238 returns false5239 does not query the db5240 when :runner_registration_enabled is true5241 returns true5242 when a group has parent groups5243 when a parent group has runner registration disabled5244 returns false5245 when all parent groups have runner registration enabled5246 returns true5247 #delayed_project_removal5248 behaves like a cascading namespace setting boolean attribute5249 #delayed_project_removal5250 when there is no parent5251 and the value is not nil5252 returns the local value5253 and the value is nil5254 returns the application settings value5255 when parent does not lock the attribute5256 and value is not nil5257 returns local setting when present5258 returns the parent value when local value is nil5259 returns the correct dirty value5260 does not return the application setting value when parent value is false5261 and the value is nil5262 cascades to the application settings value5263 when multiple ancestors set a value5264 returns the closest ancestor value5265 when parent locks the attribute5266 returns the parent value5267 does not allow the local value to be saved5268 when the application settings locks the attribute5269 returns the application setting value5270 does not allow the local value to be saved5271 when parent locked the attribute then the application settings locks it5272 returns the application setting value5273 #delayed_project_removal?5274 aliases the method when the attribute is a boolean5275 #delayed_project_removal=5276 does not save the value locally when it matches the cascaded value5277 #delayed_project_removal_locked?5278 when attribute is locked by self5279 is not locked by default5280 is locked when including self5281 when parent does not lock the attribute5282 behaves like not locked5283 is not locked by an ancestor5284 is not locked by application setting5285 does not return a locked namespace5286 when parent locks the attribute5287 is locked by an ancestor5288 is not locked by application setting5289 returns a locked namespace settings object5290 when not locked by application settings5291 behaves like not locked5292 is not locked by an ancestor5293 is not locked by application setting5294 does not return a locked namespace5295 when locked by application settings5296 is not locked by an ancestor5297 is locked by application setting5298 does not return a locked namespace5299 #lock_delayed_project_removal=5300 when parent locks the attribute5301 does not allow the attribute to be saved5302 when parent does not lock the attribute5303 allows the lock to be set when the attribute is not nil5304 does not allow the lock to be saved when the attribute is nil5305 copies the cascaded value when locking the attribute if the local value is nil5306 when application settings locks the attribute5307 does not allow the attribute to be saved5308 when application_settings does not lock the attribute5309 allows the attribute to be saved5310 after update callback5311 clears descendant locks5312StubFeatureFlags5313 #stub_feature_flags5314 subsquent run changes state5315 when checking global state5316 feature_actors: false, expected_result: false5317 is expected to eq false5318 is expected not to eq false5319 default_enabled_if_undefined does not impact feature state5320 is expected to eq false5321 is expected not to eq false5322 feature_actors: true, expected_result: true5323 is expected to eq true5324 is expected not to eq true5325 default_enabled_if_undefined does not impact feature state5326 is expected to eq true5327 is expected not to eq true5328 feature_actors: :A, expected_result: false5329 is expected to eq false5330 is expected not to eq false5331 default_enabled_if_undefined does not impact feature state5332 is expected to eq false5333 is expected not to eq false5334 feature_actors: [:A], expected_result: false5335 is expected to eq false5336 is expected not to eq false5337 default_enabled_if_undefined does not impact feature state5338 is expected to eq false5339 is expected not to eq false5340 feature_actors: [:A, :B], expected_result: false5341 is expected to eq false5342 is expected not to eq false5343 default_enabled_if_undefined does not impact feature state5344 is expected to eq false5345 is expected not to eq false5346 when checking scoped state5347 feature_actors: false, tested_actor: nil, expected_result: false5348 is expected to eq false5349 is expected not to eq false5350 default_enabled_if_undefined does not impact feature state5351 is expected to eq false5352 is expected not to eq false5353 feature_actors: true, tested_actor: nil, expected_result: true5354 is expected to eq true5355 is expected not to eq true5356 default_enabled_if_undefined does not impact feature state5357 is expected to eq true5358 is expected not to eq true5359 feature_actors: false, tested_actor: :A, expected_result: false5360 is expected to eq false5361 is expected not to eq false5362 default_enabled_if_undefined does not impact feature state5363 is expected to eq false5364 is expected not to eq false5365 feature_actors: true, tested_actor: :A, expected_result: true5366 is expected to eq true5367 is expected not to eq true5368 default_enabled_if_undefined does not impact feature state5369 is expected to eq true5370 is expected not to eq true5371 feature_actors: :A, tested_actor: nil, expected_result: false5372 is expected to eq false5373 is expected not to eq false5374 default_enabled_if_undefined does not impact feature state5375 is expected to eq false5376 is expected not to eq false5377 feature_actors: :A, tested_actor: :A, expected_result: true5378 is expected to eq true5379 is expected not to eq true5380 default_enabled_if_undefined does not impact feature state5381 is expected to eq true5382 is expected not to eq true5383 feature_actors: :A, tested_actor: :B, expected_result: false5384 is expected to eq false5385 is expected not to eq false5386 default_enabled_if_undefined does not impact feature state5387 is expected to eq false5388 is expected not to eq false5389 feature_actors: [:A], tested_actor: nil, expected_result: false5390 is expected to eq false5391 is expected not to eq false5392 default_enabled_if_undefined does not impact feature state5393 is expected to eq false5394 is expected not to eq false5395 feature_actors: [:A], tested_actor: :A, expected_result: true5396 is expected to eq true5397 is expected not to eq true5398 default_enabled_if_undefined does not impact feature state5399 is expected to eq true5400 is expected not to eq true5401 feature_actors: [:A], tested_actor: :B, expected_result: false5402 is expected to eq false5403 is expected not to eq false5404 default_enabled_if_undefined does not impact feature state5405 is expected to eq false5406 is expected not to eq false5407 feature_actors: [:A, :B], tested_actor: nil, expected_result: false5408 is expected to eq false5409 is expected not to eq false5410 default_enabled_if_undefined does not impact feature state5411 is expected to eq false5412 is expected not to eq false5413 feature_actors: [:A, :B], tested_actor: :A, expected_result: true5414 is expected to eq true5415 is expected not to eq true5416 default_enabled_if_undefined does not impact feature state5417 is expected to eq true5418 is expected not to eq true5419 feature_actors: [:A, :B], tested_actor: :B, expected_result: true5420 is expected to eq true5421 is expected not to eq true5422 default_enabled_if_undefined does not impact feature state5423 is expected to eq true5424 is expected not to eq true5425 type handling5426 raises error5427 feature_actors: "string"5428 is expected to raise ArgumentError with message matching /accepts only/5429 feature_actors: 15430 is expected to raise ArgumentError with message matching /accepts only/5431 feature_actors: 1.05432 is expected to raise ArgumentError with message matching /accepts only/5433 feature_actors: #<Object:0x00007f34dc70e898>5434 is expected to raise ArgumentError with message matching /accepts only/5435 does not raise error5436 feature_actors: true5437 is expected not to raise Exception5438 feature_actors: false5439 is expected not to raise Exception5440 feature_actors: nil5441 is expected not to raise Exception5442 feature_actors: #<StubFeatureFlags::StubFeatureGate:0x00007f34dc704618 @flipper_id=100>5443 is expected not to raise Exception5444 feature_actors: #<User id: @>5445 is expected not to raise Exception5446 stub timing5447 let_it_be variable5448 is expected to eq true5449 before_all variable5450 is expected to eq true5451 before(:all) variable5452 is expected to eq true5453 with stub_feature_flags meta5454 as true5455 is expected to eq true5456 as false5457 is expected to eq false5458Gitlab::ImportExport::Group::LegacyTreeRestorer5459 restore group tree5460 JSON5461 restores models based on JSON5462 has the group description5463 has group labels5464 has badges5465 has milestones5466 has group children5467 has group members5468 issue boards5469 has issue boards5470 has board label lists5471 excluded attributes5472 does not allow override of excluded attributes5473 does not allow override of excluded attributes5474 does not allow override of excluded attributes5475 does not allow override of excluded attributes5476 does not allow override of excluded attributes5477 does not allow override of excluded attributes5478 does not allow override of excluded attributes5479 does not allow override of excluded attributes5480 group.json file access check5481 does not read a symlink5482 group visibility levels5483 when visibility level is public5484 imports all subgroups as public5485 when visibility level is private5486 imports all subgroups as private5487 when visibility level is internal5488 imports all subgroups as internal5489Gitlab::Database::WithLockRetries5490 #run5491 requires block5492 when DISABLE_LOCK_RETRIES is set5493 executes the passed block without retrying5494 when lock retry is enabled5495 lock_fiber5496 acquires lock successfully5497 after 3 iterations5498 behaves like retriable exclusive lock on `projects`5499 succeeds executing the given block5500 setting the idle transaction timeout5501 when there is no outer transaction: disable_ddl_transaction! is set in the migration5502 does not disable the idle transaction timeout5503 when there is outer transaction: disable_ddl_transaction! is not set in the migration5504 disables the idle transaction timeout so the code can sleep and retry5505 after the retries are exhausted5506 when there is no outer transaction: disable_ddl_transaction! is set in the migration5507 does not disable the lock_timeout5508 when there is outer transaction: disable_ddl_transaction! is not set in the migration5509 disables the lock_timeout5510 after the retries, without setting lock_timeout5511 behaves like retriable exclusive lock on `projects`5512 succeeds executing the given block5513 after the retries, when requested to raise an error5514 raises an error instead of waiting indefinitely for the lock5515 when statement timeout is reached5516 raises QueryCanceled error5517 restore local database variables5518 is expected not to change `connection.execute("SHOW lock_timeout").to_a`5519 is expected not to change `connection.execute("SHOW idle_in_transaction_session_timeout").to_a`5520 casting durations correctly5521 executes `SET LOCAL lock_timeout` using the configured timeout value in milliseconds5522 calls `sleep` after the first iteration fails, using the configured sleep time5523 Stop using subtransactions - allow_savepoints: false5524 prevents running inside already open transaction5525 does not raise the error if not inside open transaction5526Projects::UpdatePagesService5527 fails if no artifacts5528 fails for invalid archive5529 when a deploy stage already exists5530 assigns the deploy stage5531 when a deploy stage does not exists5532 assigns the deploy stage5533 for new artifacts5534 for a valid job5535 doesn't delete artifacts after deploying5536 succeeds5537 publishes a PageDeployedEvent event with project id and namespace id5538 creates pages_deployment and saves it in the metadata5539 does not fail if pages_metadata is absent5540 limits pages size5541 limits pages file count5542 fails when uploaded deployment size is wrong5543 when there is an old pages deployment5544 schedules a destruction of older deployments5545 removes older deployments5546 when archive does not have pages directory5547 returns an error5548 when timeout happens by DNS error5549 raises an error5550 when missing artifacts metadata5551 does not raise an error as failed job5552 with background jobs running5553 succeeds5554 when sha on branch was updated before deployment was uploaded5555 succeeds5556 when old deployment present5557 succeeds5558 when newer deployment present5559 fails with outdated reference message5560 when artifacts archive does not have sha2565561 fails with exception raised5562 maximum pages artifacts size5563 when maximum pages size is set to zero5564 behaves like pages size limit is5565 when size is below the limit5566 updates pages correctly5567 when size is above the limit5568 limits the maximum size of gitlab pages5569 when size is limited on the instance level5570 behaves like pages size limit is5571 when size is below the limit5572 updates pages correctly5573 when size is above the limit5574 limits the maximum size of gitlab pages5575 when retrying the job5576 marks older pages:deploy jobs retried5577Gitlab::Ci::RunnerUpgradeCheck5578 #check_runner_upgrade_suggestion5579 with failing Gitlab::Ci::RunnerReleases request5580 returns :error5581 with available_runner_releases configured5582 with no available runner releases5583 with Gitlab::VERSION set to 14.1.15584 with runner_version from last minor release5585 returns :not_available5586 up to 14.1.15587 with nil runner_version5588 returns :invalid_version5589 with invalid runner_version5590 returns :invalid_version5591 with Gitlab::VERSION set to 14.1.1235592 with a runner_version that is too recent5593 returns :not_available5594 with Gitlab::VERSION set to 14.0.15595 with valid params5596 runner_version: "v15.0.0", expected_status: :not_available, expected_suggested_version: "15.0.0"5597 is expected to eq [#<Gitlab::VersionInfo:0x00007f34c8507b30 @major=15, @minor=0, @patch=0, @suffix_s="", @suffix=[]>, :not_available]5598 runner_version: "v14.1.0-rc3", expected_status: :recommended, expected_suggested_version: "14.1.1"5599 is expected to eq [#<Gitlab::VersionInfo:0x00007f34c5542058 @major=14, @minor=1, @patch=1, @suffix_s="", @suffix=[]>, :recommended]5600 runner_version: "v14.1.0~beta.1574.gf6ea9389", expected_status: :recommended, expected_suggested_version: "14.1.1"5601 is expected to eq [#<Gitlab::VersionInfo:0x00007f34d08207b0 @major=14, @minor=1, @patch=1, @suffix_s="", @suffix=[]>, :recommended]5602 runner_version: "v14.1.0/1.1.0", expected_status: :recommended, expected_suggested_version: "14.1.1"5603 is expected to eq [#<Gitlab::VersionInfo:0x00007f34ddd55e80 @major=14, @minor=1, @patch=1, @suffix_s="", @suffix=[]>, :recommended]5604 runner_version: "v14.1.0", expected_status: :recommended, expected_suggested_version: "14.1.1"5605 is expected to eq [#<Gitlab::VersionInfo:0x00007f34d92f7a78 @major=14, @minor=1, @patch=1, @suffix_s="", @suffix=[]>, :recommended]5606 runner_version: "v14.0.1", expected_status: :recommended, expected_suggested_version: "14.0.2"5607 is expected to eq [#<Gitlab::VersionInfo:0x00007f35013f9ef8 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5608 runner_version: "v14.0.2-rc1", expected_status: :recommended, expected_suggested_version: "14.0.2"5609 is expected to eq [#<Gitlab::VersionInfo:0x00007f34ccf001b0 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5610 runner_version: "v14.0.2", expected_status: :not_available, expected_suggested_version: "14.0.2"5611 is expected to eq [#<Gitlab::VersionInfo:0x00007f34c83bbb00 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :not_available]5612 runner_version: "v13.10.1", expected_status: :available, expected_suggested_version: "14.0.2"5613 is expected to eq [#<Gitlab::VersionInfo:0x00007f34f4c80340 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :available]5614 runner_version: "v13.10.1~beta.1574.gf6ea9389", expected_status: :recommended, expected_suggested_version: "13.10.1"5615 is expected to eq [#<Gitlab::VersionInfo:0x00007f34db2303b8 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :recommended]5616 runner_version: "v13.10.1/1.1.0", expected_status: :recommended, expected_suggested_version: "13.10.1"5617 is expected to eq [#<Gitlab::VersionInfo:0x00007f34c9354f30 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :recommended]5618 runner_version: "v13.10.0", expected_status: :recommended, expected_suggested_version: "13.10.1"5619 is expected to eq [#<Gitlab::VersionInfo:0x00007f34cc644b48 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :recommended]5620 runner_version: "v13.9.2", expected_status: :recommended, expected_suggested_version: "14.0.2"5621 is expected to eq [#<Gitlab::VersionInfo:0x00007f34b04915b0 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5622 runner_version: "v13.9.0", expected_status: :recommended, expected_suggested_version: "14.0.2"5623 is expected to eq [#<Gitlab::VersionInfo:0x00007f34adb63710 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5624 runner_version: "v13.8.1", expected_status: :recommended, expected_suggested_version: "14.0.2"5625 is expected to eq [#<Gitlab::VersionInfo:0x00007f34cbe3a510 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5626 runner_version: "v11.4.1", expected_status: :recommended, expected_suggested_version: "14.0.2"5627 is expected to eq [#<Gitlab::VersionInfo:0x00007f34ca4bb850 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5628 with Gitlab::VERSION set to 13.9.05629 with valid params5630 runner_version: "v14.0.0", expected_status: :recommended, expected_suggested_version: "14.0.2"5631 is expected to eq [#<Gitlab::VersionInfo:0x00007f34c8e61a00 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5632 runner_version: "v13.10.1", expected_status: :not_available, expected_suggested_version: "13.10.1"5633 is expected to eq [#<Gitlab::VersionInfo:0x00007f34c5648b28 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :not_available]5634 runner_version: "v13.10.0", expected_status: :recommended, expected_suggested_version: "13.10.1"5635 is expected to eq [#<Gitlab::VersionInfo:0x00007f34d083bee8 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :recommended]5636 runner_version: "v13.9.2", expected_status: :not_available, expected_suggested_version: "13.9.2"5637 is expected to eq [#<Gitlab::VersionInfo:0x00007f34dc52f338 @major=13, @minor=9, @patch=2, @suffix_s="", @suffix=[]>, :not_available]5638 runner_version: "v13.9.0", expected_status: :recommended, expected_suggested_version: "13.9.2"5639 is expected to eq [#<Gitlab::VersionInfo:0x00007f34e9bc75a8 @major=13, @minor=9, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5640 runner_version: "v13.8.1", expected_status: :recommended, expected_suggested_version: "13.9.2"5641 is expected to eq [#<Gitlab::VersionInfo:0x00007f350ab4c9e0 @major=13, @minor=9, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5642 runner_version: "v11.4.1", expected_status: :recommended, expected_suggested_version: "13.9.2"5643 is expected to eq [#<Gitlab::VersionInfo:0x00007f34ae751568 @major=13, @minor=9, @patch=2, @suffix_s="", @suffix=[]>, :recommended]5644 up to 15.1.05645 with Gitlab::VERSION set to 15.2.0-pre5646 with unknown runner version5647 recommends 15.1.0 since 14.11 is an unknown release and 15.1.0 is available5648Namespaces::InProductMarketingEmailsService#execute5649 records sent emails5650 for each track and series with the right conditions5651 track: :create, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}5652 is expected to send in product marketing email 1575, 2468, :create, and 05653 track: :create, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}5654 is expected to send in product marketing email 1575, 2468, :create, and 15655 track: :create, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}5656 is expected to send in product marketing email 1575, 2468, :create, and 25657 track: :team_short, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}5658 is expected to send in product marketing email 1575, 2468, :team_short, and 05659 track: :trial_short, interval: 2, actions_completed: {:created_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00}5660 is expected to send in product marketing email 1575, 2468, :trial_short, and 05661 track: :admin_verify, interval: 3, actions_completed: {:created_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00}5662 is expected to send in product marketing email 1575, 2468, :admin_verify, and 05663 track: :verify, interval: 4, actions_completed: {:created_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00}5664 is expected to send in product marketing email 1575, 2468, :verify, and 05665 track: :verify, interval: 8, actions_completed: {:created_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00}5666 is expected to send in product marketing email 1575, 2468, :verify, and 15667 track: :verify, interval: 13, actions_completed: {:created_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00}5668 is expected to send in product marketing email 1575, 2468, :verify, and 25669 track: :trial, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}5670 is expected to send in product marketing email 1575, 2468, :trial, and 05671 track: :trial, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}5672 is expected to send in product marketing email 1575, 2468, :trial, and 15673 track: :trial, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}5674 is expected to send in product marketing email 1575, 2468, :trial, and 25675 track: :team, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}5676 is expected to send in product marketing email 1575, 2468, :team, and 05677 track: :team, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}5678 is expected to send in product marketing email 1575, 2468, :team, and 15679 track: :team, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}5680 is expected to send in product marketing email 1575, 2468, :team, and 25681 when initialized with a different track5682 is expected not to send in product marketing email5683 when the previous track actions have been completed5684 is expected to send in product marketing email 1575, 2468, :team_short, and 05685 when initialized with a different interval5686 is expected not to send in product marketing email5687 when the previous track action was completed within the intervals range5688 is expected to send in product marketing email 1575, 2468, :create, and 15689 when the previous track action is not yet completed5690 is expected not to send in product marketing email5691 when the previous track action is completed outside the intervals range5692 is expected not to send in product marketing email5693 when the current track action is completed5694 is expected not to send in product marketing email5695 when the user cannot perform the current track's action5696 is expected not to send in product marketing email5697 when the user has not opted into marketing emails5698 is expected not to send in product marketing email5699 do not send emails twice5700 when user already got a specific email5701 is expected not to send in product marketing email 1577, anything, :create, and 05702 when user already got sent the whole track5703 does not send any of the emails anymore5704 when user is in two groups5705 when both groups would get the same email5706 does not send the same email twice5707 when other group gets a different email5708 sends both emails5709 when invoked with a non existing track5710 is expected to raise ArgumentError with "Track foo not defined"5711 when group is a sub-group5712 does not raise an exception5713Groups::GroupLinks::CreateService#execute5714 when user has proper membership to share a group5715 behaves like shareable5716 adds group to another group5717 when sharing outside the hierarchy is disabled5718 behaves like not shareable5719 does not share and returns an error5720 when group is inside hierarchy5721 behaves like shareable5722 adds group to another group5723 project authorizations based on group hierarchies5724 project authorizations refresh5725 is executed only for the direct members of the group5726 project authorizations5727 group user5728 create proper authorizations5729 parent group user5730 create proper authorizations5731 child group user5732 create proper authorizations5733 user does not have access to group5734 behaves like not shareable5735 does not share and returns an error5736 user does not have admin access to shared group5737 behaves like not shareable5738 does not share and returns an error5739 when group is blank5740 does not share and returns an error5741 when shared_with_group is blank5742 behaves like not shareable5743 does not share and returns an error5744Gitlab::Auth::RequestAuthenticator5745 #user5746 returns sessionless user first5747 returns session user if no sessionless user found5748 returns nil if no user found5749 bubbles up exceptions5750 #can_sign_in_bot?5751 the user is nil5752 is expected not to be can sign in bot nil5753 the user is a bot, but for a web request5754 is expected not to be can sign in bot #<User id: @user991>5755 the user is a regular user, for an API request5756 is expected not to be can sign in bot #<User id: @user992>5757 the user is a project bot, for an API request5758 is expected to be can sign in bot #<User id: @user993>5759 #find_authenticated_requester5760 returns the deploy token if it exists5761 returns the user id if it exists5762 rerturns nil if no match is found5763 #find_sessionless_user5764 returns dependency_proxy user first5765 returns access_token user if no dependency_proxy user found5766 returns feed_token user if no access_token user found5767 returns static_object_token user if no feed_token user found5768 returns job_token user if no static_object_token user found5769 returns nil even if basic_auth_access_token is available5770 returns nil even if find_user_from_lfs_token is available5771 returns nil if no user found5772 rescue Gitlab::Auth::AuthenticationError exceptions5773 in an API request5774 returns basic_auth_access_token user if no job_token_user found5775 in a Git request5776 returns lfs_token user if no job_token user found5777 returns basic_auth_access_token user if no lfs_token user found5778 returns basic_auth_access_password user if no basic_auth_access_token user found5779 returns nil if no user found5780 dependency proxy5781 with a user5782 behaves like identifying dependency proxy urls properly with5783 with pulling a manifest5784 is expected to eq #<User id:1609 @user1004>5785 with pulling a blob5786 is expected to eq #<User id:1609 @user1004>5787 with any other path5788 is expected to eq nil5789 with an invalid id5790 behaves like identifying dependency proxy urls properly with5791 with pulling a manifest5792 is expected to eq nil5793 with pulling a blob5794 is expected to eq nil5795 with any other path5796 is expected to eq nil5797 with a deploy token5798 behaves like identifying dependency proxy urls properly with5799 with pulling a manifest5800 is expected to eq nil5801 with pulling a blob5802 is expected to eq nil5803 with any other path5804 is expected to eq nil5805 with no jwt token5806 behaves like identifying dependency proxy urls properly with5807 with pulling a manifest5808 is expected to eq nil5809 with pulling a blob5810 is expected to eq nil5811 with any other path5812 is expected to eq nil5813 with an expired jwt token5814 returns nil5815 #find_personal_access_token_from_http_basic_auth5816 with API requests5817 tries to find the user5818 returns nil if the token is revoked5819 returns nil if the token does not have API scope5820 without API requests5821 does not search for job users5822 #find_user_from_job_token5823 with API requests5824 tries to find the user5825 returns nil if the job is not running5826 without API requests5827 does not search for job users5828 #runner5829 returns the runner using #find_runner_from_token5830 returns nil if no runner is found5831 rescue Gitlab::Auth::AuthenticationError exceptions5832 #route_authentication_setting5833 script_name: "/api/endpoint", expected_job_token_allowed: true, expected_basic_auth_personal_access_token: true, expected_deploy_token_allowed: true5834 returns correct settings5835 script_name: "/namespace/project.git", expected_job_token_allowed: false, expected_basic_auth_personal_access_token: true, expected_deploy_token_allowed: true5836 returns correct settings5837 script_name: "/web/endpoint", expected_job_token_allowed: false, expected_basic_auth_personal_access_token: false, expected_deploy_token_allowed: false5838 returns correct settings5839Labels::AvailableLabelsService5840 #find_or_create_by_titles5841 when parent is a project5842 when a user is not a project member5843 returns only relevant label ids5844 when a user is a project member5845 creates new labels for not found titles5846 do not cause additional query for finding labels5847 when parent is a group5848 when a user is not a group member5849 returns only relevant label ids5850 when a user is a group member5851 creates new labels for not found titles5852 #filter_labels_ids_in_param5853 accepts a single id parameter5854 when parent is a project5855 returns only relevant label ids5856 returns labels in preserved order5857 when parent is a group5858 returns only relevant label ids5859 #available_labels5860 when parent is a project5861 returns only relevant labels5862 when parent is a group5863 returns only relevant labels5864NoteEntity5865 behaves like note entity5866 basic note5867 exposes correct elements5868 does not expose elements for specific notes cases5869 exposes author correctly5870 does not expose web_url for author5871 exposes permission fields on current_user5872 :can_resolve_discussion5873 discussion is resolvable5874 user can resolve5875 is true5876 user cannot resolve5877 is false5878 discussion is not resolvable5879 is false5880 :outdated_line_change_path5881 when note shows outdated changes5882 returns correct outdated_line_change_namespace_project_note_path5883 when note does not show outdated changes5884 does not expose outdated_line_change_path5885 when note was edited5886 exposes last_edited_at and last_edited_by elements5887 when note is a system note5888 exposes system_note_icon_name element5889Pages::DeploymentUploader5890 behaves like builds correct paths5891 #store_dir5892 behaves like matches the method pattern5893 is expected to match /\/\h{2}\/\h{2}\/\h{64}\/pages_deployments\/\d+/5894 #cache_dir5895 behaves like matches the method pattern5896 is expected to match /pages\/@hashed\/tmp\/cache/5897 #work_dir5898 behaves like matches the method pattern5899 is expected to match /pages\/@hashed\/tmp\/work/5900 #upload_path5901 behaves like matches the method pattern5902 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5903 #relative_path5904 is relative (PENDING: Path not set, skipping.)5905 .absolute_path5906 behaves like matches the method pattern5907 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5908 .base_dir5909 behaves like matches the method pattern5910 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5911 path traversal exploits5912 throws an exception5913 when object store is REMOTE5914 preserves original file when stores it5915 behaves like builds correct paths5916 #store_dir5917 behaves like matches the method pattern5918 is expected to match /\A\h{2}\/\h{2}\/\h{64}\/pages_deployments\/\d+\z/5919 #cache_dir5920 behaves like matches the method pattern5921 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5922 #work_dir5923 behaves like matches the method pattern5924 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5925 #upload_path5926 behaves like matches the method pattern5927 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5928 #relative_path5929 is relative (PENDING: Path not set, skipping.)5930 .absolute_path5931 behaves like matches the method pattern5932 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5933 .base_dir5934 behaves like matches the method pattern5935 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5936 path traversal exploits5937 throws an exception5938 when file is stored in valid local_path5939 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/pages\/@hashed\/\h{2}\/\h{2}\/\h{64}\/pages_deployments\/39\/pages.zip/5940 preserves original file when stores it5941 .default_store5942 returns local store when object storage is not enabled5943 returns remote store when object storage is enabled5944Gitlab::Auth::Ldap::Person5945 .normalize_dn5946 behaves like normalizes a DN5947 test_description: "strips extraneous whitespace", given: "uid =John Smith , ou = People, dc= example,dc =com", expected: "uid=john smith,ou=people,dc=example,dc=com"5948 normalizes the DN5949 test_description: "strips extraneous whitespace for a DN with a single RDN", given: "uid = John Smith", expected: "uid=john smith"5950 normalizes the DN5951 test_description: "unescapes non-reserved, non-special Unicode characters", given: "uid = Sebasti\\c3\\a1n\\ C.\\20Smith, ou=People (aka. \\22humans\\\") ,dc=example, dc=com", expected: "uid=sebastián c. smith,ou=people (aka. \\\"humans\\\"),dc=example,dc=com"5952 normalizes the DN5953 test_description: "downcases the whole string", given: "UID=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5954 normalizes the DN5955 test_description: "for a null DN (empty string), returns empty string and does not error", given: "", expected: ""5956 normalizes the DN5957 test_description: "does not strip an escaped leading space in an attribute value", given: "uid=\\ John Smith,ou=People,dc=example,dc=com", expected: "uid=\\ john smith,ou=people,dc=example,dc=com"5958 normalizes the DN5959 test_description: "does not strip an escaped leading space in the last attribute value", given: "uid=\\ John Smith", expected: "uid=\\ john smith"5960 normalizes the DN5961 test_description: "does not strip an escaped trailing space in an attribute value", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"5962 normalizes the DN5963 test_description: "strips extraneous spaces after an escaped trailing space", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"5964 normalizes the DN5965 test_description: "strips extraneous spaces after an escaped trailing space at the end of the DN", given: "uid=John Smith,ou=People,dc=example,dc=com\\ ", expected: "uid=john smith,ou=people,dc=example,dc=com\\ "5966 normalizes the DN5967 test_description: "properly preserves escaped trailing space after unescaped trailing spaces", given: "uid=John Smith \\ ,ou=People,dc=example,dc=com", expected: "uid=john smith \\ ,ou=people,dc=example,dc=com"5968 normalizes the DN5969 test_description: "preserves multiple inner spaces in an attribute value", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5970 normalizes the DN5971 test_description: "preserves inner spaces after an escaped space", given: "uid=John\\ Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5972 normalizes the DN5973 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "uid=\\\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"5974 normalizes the DN5975 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "uid=John Smith\\\n,ou=People,dc=example,dc=com", expected: "uid=john smith\\0a,ou=people,dc=example,dc=com"5976 normalizes the DN5977 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN?)", given: "uid=\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"5978 normalizes the DN5979 test_description: "strips an unescaped trailing newline (actually an invalid DN?)", given: "uid=John Smith\n,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5980 normalizes the DN5981 test_description: "does not strip if no extraneous whitespace", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5982 normalizes the DN5983 test_description: "does not modify an escaped equal sign in an attribute value", given: "uid= foo \\= bar", expected: "uid=foo \\= bar"5984 normalizes the DN5985 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: "uid= foo \\3D bar", expected: "uid=foo \\= bar"5986 normalizes the DN5987 test_description: "does not modify an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\, CA", expected: "uid=john c. smith,ou=san francisco\\, ca"5988 normalizes the DN5989 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\2C CA", expected: "uid=john c. smith,ou=san francisco\\, ca"5990 normalizes the DN5991 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0DCA", expected: "uid=john c. smith,ou=san francisco\\,\\0dca"5992 normalizes the DN5993 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0aca"5994 normalizes the DN5995 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0D\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0d\\0aca"5996 normalizes the DN5997 test_description: "allows attribute type name OIDs", given: "0.9.2342.19200300.100.1.25=Example,0.9.2342.19200300.100.1.25=Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"5998 normalizes the DN5999 test_description: "strips extraneous whitespace from attribute type name OIDs", given: "0.9.2342.19200300.100.1.25 = Example, 0.9.2342.19200300.100.1.25 = Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"6000 normalizes the DN6001 with an exception during normalization6002 returns the given DN unmodified6003 .normalize_uid6004 behaves like normalizes a DN attribute value6005 test_description: "strips extraneous whitespace", given: " John Smith ", expected: "john smith"6006 normalizes the DN attribute value6007 test_description: "unescapes non-reserved, non-special Unicode characters", given: "Sebasti\\c3\\a1n\\ C.\\20Smith", expected: "sebastián c. smith"6008 normalizes the DN attribute value6009 test_description: "downcases the whole string", given: "JoHn C. Smith", expected: "john c. smith"6010 normalizes the DN attribute value6011 test_description: "does not strip an escaped leading space in an attribute value", given: "\\ John Smith", expected: "\\ john smith"6012 normalizes the DN attribute value6013 test_description: "does not strip an escaped trailing space in an attribute value", given: "John Smith\\ ", expected: "john smith\\ "6014 normalizes the DN attribute value6015 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "\\\nJohn Smith", expected: "\\0ajohn smith"6016 normalizes the DN attribute value6017 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "John Smith\\\n", expected: "john smith\\0a"6018 normalizes the DN attribute value6019 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN value?)", given: "\nJohn Smith", expected: "\\0ajohn smith"6020 normalizes the DN attribute value6021 test_description: "strips an unescaped trailing newline (actually an invalid DN value?)", given: "John Smith\n", expected: "john smith"6022 normalizes the DN attribute value6023 test_description: "does not strip if no extraneous whitespace", given: "John Smith", expected: "john smith"6024 normalizes the DN attribute value6025 test_description: "does not modify an escaped equal sign in an attribute value", given: " foo \\= bar", expected: "foo \\= bar"6026 normalizes the DN attribute value6027 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: " foo \\3D bar", expected: "foo \\= bar"6028 normalizes the DN attribute value6029 test_description: "does not modify an escaped comma in an attribute value", given: "San Francisco\\, CA", expected: "san francisco\\, ca"6030 normalizes the DN attribute value6031 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "San Francisco\\2C CA", expected: "san francisco\\, ca"6032 normalizes the DN attribute value6033 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "San Francisco\\,\\0DCA", expected: "san francisco\\,\\0dca"6034 normalizes the DN attribute value6035 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "San Francisco\\,\\0ACA", expected: "san francisco\\,\\0aca"6036 normalizes the DN attribute value6037 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "San Francisco\\,\\0D\\0ACA", expected: "san francisco\\,\\0d\\0aca"6038 normalizes the DN attribute value6039 with an exception during normalization6040 returns the given UID unmodified6041 .ldap_attributes6042 returns a compact and unique array6043 #name6044 uses the configured name attribute and handles values as an array6045 #email6046 returns the value of mail, if present6047 returns the value of userPrincipalName, if mail and email are not present6048 #username6049 with default uid username attribute6050 returns the proper username value6051 with a different username attribute6052 returns the proper username value6053 with a non-standard username attribute6054 returns the proper username value6055 if lowercase_usernames setting is6056 enabled the username attribute is lower cased6057 disabled the username attribute is not lower cased6058Issuable::CommonSystemNotesService6059 on issuable update6060 behaves like system note creation6061 creates 1 system note with the correct content6062 behaves like system note creation6063 creates 1 system note with the correct content6064 behaves like system note creation6065 creates 1 system note with the correct content6066 behaves like system note creation6067 creates 1 system note with the correct content6068 when new label is added6069 creates a resource label event6070 with merge requests Draft note6071 adding Draft note6072 behaves like system note creation6073 creates 1 system note with the correct content6074 and changing title6075 behaves like draft notes creation6076 creates Draft toggle and title change notes6077 removing Draft note6078 behaves like system note creation6079 creates 1 system note with the correct content6080 and changing title6081 behaves like draft notes creation6082 creates Draft toggle and title change notes6083 when changing dates6084 behaves like system note for issuable date changes6085 creates a system note for due_date set6086 creates a system note for start_date set6087 creates a note when both start and due date are changed6088 does not call SystemNoteService if no dates are changed6089 on issuable create6090 does not create system note for title and description6091 creates a resource label event for labels added6092 when changing milestones6093 does not create a system note for milestone set6094 creates a milestone change event6095 when changing dates6096 behaves like system note for issuable date changes6097 creates a system note for due_date set6098 creates a system note for start_date set6099 creates a note when both start and due date are changed6100 does not call SystemNoteService if no dates are changed6101Clusters::Providers::Gcp6102 is expected to belong to cluster required: false6103 is expected to validate that :zone cannot be empty/falsy6104 state_machine6105 when any => [:created]6106 nullifies API credentials6107 when any => [:creating]6108 calls #assign_operation_id on the provider6109 when any => [:errored]6110 calls #nullify_credentials on the provider6111 sets a status reason6112 when status_reason is nil6113 does not set status_reason6114 #on_creation?6115 status: :scheduled, result: true6116 is expected to eq true6117 status: :creating, result: true6118 is expected to eq true6119 status: :created, result: false6120 is expected to eq false6121 status: :errored, result: false6122 is expected to eq false6123 default values6124 has default value6125 validation6126 when validates gcp_project_id6127 when gcp_project_id is shorter than 16128 is expected to be falsey6129 when gcp_project_id is longer than 636130 is expected to be falsey6131 when gcp_project_id includes invalid character6132 is expected to be falsey6133 when gcp_project_id is valid6134 is expected to be truthy6135 when validates num_nodes6136 when num_nodes is string6137 is expected to be falsey6138 when num_nodes is nil6139 is expected to be falsey6140 when num_nodes is smaller than 16141 is expected to be falsey6142 when num_nodes is valid6143 is expected to be truthy6144 #has_rbac_enabled?6145 when cluster is legacy_abac6146 is expected to be falsey6147 when cluster is not legacy_abac6148 is expected to be truthy6149 #knative_pre_installed?6150 when cluster is cloud_run6151 is expected to be falsey6152 when cluster is not cloud_run6153 is expected to be truthy6154 #api_client6155 when status is creating6156 returns Cloud Platform API clinet6157 when status is created6158 is expected to be nil6159 when status is errored6160 is expected to be nil6161 #nullify_credentials6162 removes access_token and operation_id6163 #assign_operation_id6164 sets operation_id6165Import::GithubService6166 when remove_legacy_github_client feature flag is enabled6167 raises an exception for unknown error causes6168 do not raise an exception on input error6169 logs the original error6170 returns an error with message and code6171 repository size validation6172 when there is no repository size limit defined6173 skips the check, succeeds, and tracks an access level6174 when the target namespace repository size limit is defined6175 succeeds when the repository is smaller than the limit6176 returns error when the repository is larger than the limit6177 when target namespace repository limit is not defined6178 when application size limit is defined6179 succeeds when the repository is smaller than the limit6180 returns error when the repository is larger than the limit6181 when optional stages params present6182 saves optional stages choice to import_data6183 when import source is disabled6184 returns forbidden6185 when a blocked/local URL is used as github_hostname6186 url: "https://localhost"6187 returns and logs an error6188 url: "https://10.0.0.1"6189 returns and logs an error6190 when remove_legacy_github_client feature flag is disabled6191 raises an exception for unknown error causes6192 do not raise an exception on input error6193 logs the original error6194 returns an error with message and code6195 repository size validation6196 when there is no repository size limit defined6197 skips the check, succeeds, and tracks an access level6198 when the target namespace repository size limit is defined6199 succeeds when the repository is smaller than the limit6200 returns error when the repository is larger than the limit6201 when target namespace repository limit is not defined6202 when application size limit is defined6203 succeeds when the repository is smaller than the limit6204 returns error when the repository is larger than the limit6205 when optional stages params present6206 saves optional stages choice to import_data6207 when import source is disabled6208 returns forbidden6209 when a blocked/local URL is used as github_hostname6210 url: "https://localhost"6211 returns and logs an error6212 url: "https://10.0.0.1"6213 returns and logs an error6214Gitlab::DataBuilder::Pipeline6215 .build6216 has correct attributes6217 build with runner6218 has runner attributes6219 pipeline without variables6220 has empty variables hash6221 pipeline with variables6222 is expected to be a kind of Array6223 is expected to contain exactly {:key=>"TRIGGER_KEY_1", :value=>"TRIGGER_VALUE_1"}6224 when pipeline is a detached merge request pipeline6225 returns a source ref6226 returns merge request6227 when pipeline has retried builds6228 does not contain retried builds in payload6229 contains retried builds if requested6230 build with environment6231 has environment attributes6232 when the pipeline has an upstream6233 in same project6234 behaves like source pipeline attributes6235 has source pipeline attributes6236 in different project6237 is expected not to eq 7756238 behaves like source pipeline attributes6239 has source pipeline attributes6240 avoids N+1 database queries6241 with multiple builds6242 with multiple retried builds6243 .build failed6244 has failure_reason6245Gitlab::Redis::Sessions6246 behaves like redis_new_instance_shared_examples6247 behaves like redis_shared_examples6248 .config_file_name6249 when there is no config file anywhere6250 is expected to be nil6251 but resque.yml exists6252 is expected to eq "/tmp/redis_shared_examples20221208-467-1xld76q/config/resque.yml"6253 returns a path that exists6254 and there is a global env override6255 is expected to eq "global override"6256 and there is an instance specific config file6257 is expected to eq "/tmp/redis_shared_examples20221208-467-nlj1m0/config/redis.sessions.yml"6258 returns a path that exists6259 and there is a specific env override6260 is expected to eq "instance specific override"6261 .store6262 with old format6263 behaves like redis store6264 instantiates Redis::Store6265 with the namespace6266 uses specified namespace6267 with new format6268 behaves like redis store6269 instantiates Redis::Store6270 with the namespace6271 uses specified namespace6272 .params6273 withstands mutation6274 when url contains unix socket reference6275 with old format6276 returns path key instead6277 with new format6278 returns path key instead6279 when url is host based6280 with old format6281 returns hash with host, port, db, and password6282 with new format6283 rails_env: "development", host: "development-host"6284 returns hash with host, port, db, and password6285 rails_env: "test", host: "test-host"6286 returns hash with host, port, db, and password6287 rails_env: "production", host: "production-host"6288 returns hash with host, port, db, and password6289 .url6290 withstands mutation6291 when yml file with env variable6292 reads redis url from env variable6293 .version6294 returns a version6295 ._raw_config6296 is frozen6297 returns false when the file does not exist6298 returns false when the filename can't be determined6299 .with6300 when running on single-threaded runtime6301 instantiates a connection pool with size 56302 when running on multi-threaded runtime6303 instantiates a connection pool with a size based on the concurrency of the worker6304 when there is no config at all6305 can run an empty block6306 #db6307 with old format6308 returns the correct db6309 with new format6310 returns the correct db6311 #sentinels6312 when sentinels are defined6313 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6314 returns an array of hashes with host and port keys6315 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6316 returns an array of hashes with host and port keys6317 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6318 returns an array of hashes with host and port keys6319 when sentinels are not defined6320 returns nil6321 #sentinels?6322 when sentinels are defined6323 returns true6324 when sentinels are not defined6325 returns false6326 #raw_config_hash6327 returns old-style single url config in a hash6328 #fetch_config6329 returns false when no config file is present6330 returns false when config file is present but has invalid YAML6331 has a value for the legacy default URL6332 .config_file_name6333 when there is only a resque.yml6334 is expected to eq "/tmp/redis_shared_examples20221208-467-13rtx2l/config/resque.yml"6335 and there is a global env override6336 is expected to eq "global override"6337 and SharedState has a different config file6338 is expected to eq "fallback config file"6339 redis instance used in connection pool6340 uses ::Redis instance6341 #store6342 instantiates an instance of Redis::Store6343Gitlab::Ci::Config::Entry::Variables6344 when entry config value has key-value pairs6345 behaves like valid config6346 #value6347 returns hash with key value strings6348 #errors6349 does not append errors6350 #valid?6351 is valid6352 #value_with_data6353 returns variable with data6354 #value_with_prefill_data6355 returns variable with prefill data6356 with numeric keys and values in the config6357 behaves like valid config6358 #value6359 returns hash with key value strings6360 #errors6361 does not append errors6362 #valid?6363 is valid6364 when key is an array6365 behaves like invalid config6366 #valid?6367 is not valid6368 #errors6369 saves errors6370 when value is a symbol6371 behaves like valid config6372 #value6373 returns hash with key value strings6374 #errors6375 does not append errors6376 #valid?6377 is valid6378 when value is a boolean6379 behaves like invalid config6380 #valid?6381 is not valid6382 #errors6383 saves errors6384 when entry config value has unallowed value key-value pair and value is a string6385 when there is no allowed_value_data metadata6386 behaves like invalid config6387 #valid?6388 is not valid6389 #errors6390 saves errors6391 when metadata has the allowed_value_data key6392 behaves like valid config6393 #value6394 returns hash with key value strings6395 #errors6396 does not append errors6397 #valid?6398 is valid6399 #value_with_data6400 returns variable with data6401 #value_with_prefill_data6402 returns variable with prefill data6403 when entry config value has options6404 when metadata has allowed_value_data6405 behaves like valid config6406 #value6407 returns hash with key value strings6408 #errors6409 does not append errors6410 #valid?6411 is valid6412 #value_with_data6413 returns variable with data6414 #value_with_prefill_data6415 returns variable with prefill data6416 when entry config value has key-value pair and hash6417 behaves like invalid config6418 #valid?6419 is not valid6420 #errors6421 saves errors6422 when metadata has allowed_value_data6423 behaves like valid config6424 #value6425 returns hash with key value strings6426 #errors6427 does not append errors6428 #valid?6429 is valid6430 #value_with_data6431 returns variable with data6432 #value_with_prefill_data6433 returns variable with prefill data6434 when entry value is an array6435 behaves like invalid config6436 #valid?6437 is not valid6438 #errors6439 saves errors6440 when metadata has allowed_value_data6441 when entry value has hash with other key-pairs6442 behaves like invalid config6443 #valid?6444 is not valid6445 #errors6446 saves errors6447 when entry config value has hash without description6448 behaves like valid config6449 #value6450 returns hash with key value strings6451 #errors6452 does not append errors6453 #valid?6454 is valid6455Deployments::ArchiveInProjectService6456 #execute6457 when there are archivable deployments6458 returns result code6459 archives the deployment6460 when ref does not exist by some reason6461 does not raise an error6462 when there are no archivable deployments6463 returns result code6464UserPolicy6465 reading a user's information6466 is expected to be allowed :read_user6467 reading a different user's Personal Access Tokens6468 when user is admin6469 when admin mode is enabled6470 is expected to be allowed :read_user_personal_access_tokens6471 when admin mode is disabled6472 is expected not to be allowed :read_user_personal_access_tokens6473 when user is not an admin6474 requesting their own personal access tokens6475 is expected to be allowed :read_user_personal_access_tokens6476 requesting a different user's personal access tokens6477 is expected not to be allowed :read_user_personal_access_tokens6478 creating a different user's Personal Access Tokens6479 when current_user is admin6480 when admin mode is enabled and current_user is not blocked6481 is expected to be allowed :create_user_personal_access_token6482 when admin mode is enabled and current_user is blocked6483 is expected not to be allowed :create_user_personal_access_token6484 when admin mode is disabled6485 is expected not to be allowed :create_user_personal_access_token6486 when current_user is not an admin6487 creating their own personal access tokens6488 when current_user is not blocked6489 is expected to be allowed :create_user_personal_access_token6490 when current_user is blocked6491 is expected not to be allowed :create_user_personal_access_token6492 creating a different user's personal access tokens6493 is expected not to be allowed :create_user_personal_access_token6494 reading a user's associations count6495 when current_user is not an admin6496 fetching their own data6497 when current_user is not blocked6498 is expected to be allowed :get_user_associations_count6499 when current_user is blocked6500 is expected not to be allowed :get_user_associations_count6501 fetching a different user's data6502 is expected not to be allowed :get_user_associations_count6503 when current_user is an admin6504 fetching their own data6505 when current_user is not blocked6506 is expected to be allowed :get_user_associations_count6507 when current_user is blocked6508 is expected not to be allowed :get_user_associations_count6509 fetching a different user's data6510 is expected to be allowed :get_user_associations_count6511 updating a user's status6512 behaves like changing a user6513 when a regular user tries to destroy another regular user6514 is expected not to be allowed :update_user_status6515 when a regular user tries to destroy themselves6516 is expected to be allowed :update_user_status6517 when an admin user tries to destroy a regular user6518 when admin mode is enabled6519 is expected to be allowed :update_user_status6520 when admin mode is disabled6521 is expected to be disallowed :update_user_status6522 when an admin user tries to destroy a ghost user6523 is expected not to be allowed :update_user_status6524 destroying a user6525 behaves like changing a user6526 when a regular user tries to destroy another regular user6527 is expected not to be allowed :destroy_user6528 when a regular user tries to destroy themselves6529 is expected to be allowed :destroy_user6530 when an admin user tries to destroy a regular user6531 when admin mode is enabled6532 is expected to be allowed :destroy_user6533 when admin mode is disabled6534 is expected to be disallowed :destroy_user6535 when an admin user tries to destroy a ghost user6536 is expected not to be allowed :destroy_user6537 updating a user6538 behaves like changing a user6539 when a regular user tries to destroy another regular user6540 is expected not to be allowed :update_user6541 when a regular user tries to destroy themselves6542 is expected to be allowed :update_user6543 when an admin user tries to destroy a regular user6544 when admin mode is enabled6545 is expected to be allowed :update_user6546 when admin mode is disabled6547 is expected to be disallowed :update_user6548 when an admin user tries to destroy a ghost user6549 is expected not to be allowed :update_user6550 disabling two-factor authentication6551 disabling their own two-factor authentication6552 is expected to be allowed :disable_two_factor6553 disabling the two-factor authentication of another user6554 when the executor is an admin6555 is expected to be allowed :disable_two_factor6556 when the executor is not an admin6557 is expected not to be allowed :disable_two_factor6558 reading a user's group count6559 when current_user is an admin6560 is expected to be allowed :read_group_count6561 for self users6562 is expected to be allowed :read_group_count6563 when accessing a different user's group count6564 is expected not to be allowed :read_group_count6565 :read_user_profile6566 when the user is unconfirmed6567 is expected not to be allowed :read_user_profile6568 when the user is confirmed6569 is expected to be allowed :read_user_profile6570 :read_user_groups6571 when user is admin6572 when admin mode is enabled6573 is expected to be allowed :read_user_groups6574 when admin mode is disabled6575 is expected not to be allowed :read_user_groups6576 when user is not an admin6577 requesting their own manageable groups6578 is expected to be allowed :read_user_groups6579 requesting a different user's manageable groups6580 is expected not to be allowed :read_user_groups6581Issue::Metrics6582 .for_issues6583 returns metrics associated with given issues6584 .with_first_mention_not_earlier_than6585 returns metrics without mentioning in commit or with mentioning after given timestamp6586 when recording the default set of issue metrics on issue save6587 milestones6588 records the first time an issue is associated with a milestone6589 does not record the second time an issue is associated with a milestone6590 list labels6591 records the first time an issue is associated with a list label6592 does not record the second time an issue is associated with a list label6593Gitlab::Redis::SidekiqStatus6594 .config_file_name6595 when there is no config file anywhere6596 is expected to be nil6597 but resque.yml exists6598 is expected to eq "/tmp/redis_shared_examples20221208-467-1pcranv/config/resque.yml"6599 returns a path that exists6600 and there is a global env override6601 is expected to eq "global override"6602 and there is an instance specific config file6603 is expected to eq "/tmp/redis_shared_examples20221208-467-xfubt6/config/redis.shared_state.yml"6604 returns a path that exists6605 and there is a specific env override6606 is expected to eq "instance specific override"6607 .store6608 with old format6609 behaves like redis store6610 instantiates Redis::Store6611 with the namespace6612 uses specified namespace6613 with new format6614 behaves like redis store6615 instantiates Redis::Store6616 with the namespace6617 uses specified namespace6618 .params6619 withstands mutation6620 when url contains unix socket reference6621 with old format6622 returns path key instead6623 with new format6624 returns path key instead6625 when url is host based6626 with old format6627 returns hash with host, port, db, and password6628 with new format6629 rails_env: "development", host: "development-host"6630 returns hash with host, port, db, and password6631 rails_env: "test", host: "test-host"6632 returns hash with host, port, db, and password6633 rails_env: "production", host: "production-host"6634 returns hash with host, port, db, and password6635 .url6636 withstands mutation6637 when yml file with env variable6638 reads redis url from env variable6639 .version6640 returns a version6641 ._raw_config6642 is frozen6643 returns false when the file does not exist6644 returns false when the filename can't be determined6645 .with6646 when running on single-threaded runtime6647 instantiates a connection pool with size 56648 when running on multi-threaded runtime6649 instantiates a connection pool with a size based on the concurrency of the worker6650 when there is no config at all6651 can run an empty block6652 #db6653 with old format6654 returns the correct db6655 with new format6656 returns the correct db6657 #sentinels6658 when sentinels are defined6659 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6660 returns an array of hashes with host and port keys6661 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6662 returns an array of hashes with host and port keys6663 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6664 returns an array of hashes with host and port keys6665 when sentinels are not defined6666 returns nil6667 #sentinels?6668 when sentinels are defined6669 returns true6670 when sentinels are not defined6671 returns false6672 #raw_config_hash6673 returns old-style single url config in a hash6674 #fetch_config6675 returns false when no config file is present6676 returns false when config file is present but has invalid YAML6677 has a value for the legacy default URL6678 #pool6679 instantiates an instance of MultiStore6680 behaves like multi store feature flags6681 with feature flag :use_primary_and_secondary_stores_for_sidekiq_status is enabled6682 multi store is enabled6683 with feature flag :use_primary_and_secondary_stores_for_sidekiq_status is disabled6684 multi store is disabled6685 with feature flag :use_primary_store_as_default_for_sidekiq_status is enabled6686 primary store is enabled6687 with feature flag :use_primary_store_as_default_for_sidekiq_status is disabled6688 primary store is disabled6689 #raw_config_hash6690 has a legacy default URL6691 #store_name6692 returns the name of the SharedState store6693Ci::PipelineArtifacts::CoverageReportService6694 #execute6695 when pipeline has coverage report6696 artifact has pipeline's locked status6697 behaves like creating or updating a pipeline coverage report6698 when pipeline is finished6699 creates or updates a pipeline artifact6700 persists the default file name6701 sets expire_at to 1 week from now6702 logs relevant information6703 when pipeline has coverage report from child pipeline6704 behaves like creating or updating a pipeline coverage report6705 when pipeline is finished6706 creates or updates a pipeline artifact6707 persists the default file name6708 sets expire_at to 1 week from now6709 logs relevant information6710 when pipeline has existing pipeline artifact for coverage report6711 behaves like creating or updating a pipeline coverage report6712 when pipeline is finished6713 creates or updates a pipeline artifact6714 persists the default file name6715 sets expire_at to 1 week from now6716 logs relevant information6717 when pipeline is running and coverage report does not exist6718 does not persist data6719Resolvers::DesignManagement::DesignsResolver6720 is expected to have nullable GraphQL type DesignConnection6721 #resolve6722 when the user cannot see designs6723 returns nothing6724 for a design collection6725 which contains just a single design6726 returns just that design6727 which contains another design6728 returns all designs6729 filtering6730 by filename6731 resolves to just the relevant design, ignoring designs with the same filename on different issues6732 by id6733 ids is provided but null6734 behaves as if unfiltered6735 ids is provided but empty6736 eliminates all values6737 the ID is on the current issue6738 resolves to just the relevant design6739 the ID is on a different issue6740 ignores it6741WorkItem6742 associations6743 is expected to belong to namespace required: false6744 is expected to have one work_item_parent class_name => WorkItem6745 has one `parent_link`6746 has many `work_item_children`6747 has many `child_links`6748 #noteable_target_type_name6749 returns `issue` as the target name6750 #widgets6751 returns instances of supported widgets6752 callbacks6753 record_create_action6754 records the creation action after saving6755 behaves like issue_edit snowplow tracking6756 behaves like Snowplow event tracking with RedisHLL context6757 behaves like Snowplow event tracking6758 is emitted6759 work item namespace6760 sets the namespace_id6761 when work item is saved6762 sets the namespace_id6763 when existing work item is saved6764 sets the namespace id6765 validations6766 issue_type6767 when a valid type6768 is expected to eq true6769 empty type6770 is expected to eq false6771 confidentiality6772 when parent and child are confidential6773 does not allow to make child non-confidential6774 allows to make parent non-confidential6775 when parent and child are non-confidential6776 does not allow to make parent confidential6777 allows to make child confidential6778 when creating new child6779 does not allow to set confidential parent6780BulkImports::RelationExportService6781 #execute6782 exports specified relation and marks export as finished6783 removes temp export files6784 exports specified relation and marks export as finished6785 when exporting a file relation6786 uses file export service6787 when export record does not exist6788 creates export record6789 when there is existing export present6790/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil6791 removes existing export before exporting6792 when export is recently finished6793 returns recently finished export instead of re-exporting6794 when exception occurs during export6795 marks export as failed6796 tracks exception6797 when passed relation is not supported6798 tracks exception6799 when user is not allowed to perform export6800 tracks exception6801Gitlab::ImportExport::Base::RelationObjectSaver6802 #save6803 saves relation object6804 when subrelation is present6805 saves relation object with subrelations6806 when subrelation is not a collection6807 saves subrelation as part of the relation object itself6808 when subrelation collection count is small6809 saves subrelation as part of the relation object itself6810 when some subrelations are invalid6811 saves valid subrelations and logs invalid subrelation6812 when invalid subrelation can still be persisted6813 saves the subrelation6814 when importable is group6815 logs invalid subrelation for a group6816Clusters::Providers::Aws6817 is expected to belong to cluster required: false6818 is expected to validate that the length of :key_name is between 1 and 2556819 is expected to validate that the length of :region is between 1 and 2556820 is expected to validate that the length of :instance_type is between 1 and 2556821 is expected to validate that the length of :security_group_id is between 1 and 2556822 is expected to validate that :subnet_ids cannot be empty/falsy6823 state_machine6824 when any => [:created]6825 nullifies API credentials6826 when any => [:creating]6827 calls #assign_operation_id on the provider6828 when any => [:errored]6829 calls #nullify_credentials on the provider6830 sets a status reason6831 when status_reason is nil6832 does not set status_reason6833 #on_creation?6834 status: :scheduled, result: true6835 is expected to eq true6836 status: :creating, result: true6837 is expected to eq true6838 status: :created, result: false6839 is expected to eq false6840 status: :errored, result: false6841 is expected to eq false6842 default values6843 sets default values6844 custom validations6845 :num_nodes6846 contains non-digit characters6847 is expected to be falsey6848 is blank6849 is expected to be falsey6850 is less than 16851 is expected to be falsey6852 is a positive integer6853 is expected to be truthy6854 #nullify_credentials6855 removes access_key_id, secret_access_key and session_token6856 #api_client6857 is expected to eq #<Double (anonymous)>6858 #credentials6859 is expected to eq #<Double (anonymous)>6860 #created_by_user6861 is expected to eq #<User id:1808 @user1105>6862 #has_rbac_enabled?6863 is expected to be truthy6864 #knative_pre_installed?6865 is expected to be falsey6866Gitlab::Usage::Metrics::Instrumentations::InProductMarketingEmailCtaClickedMetric6867 # order random6868 behaves like a correct instrumented metric value and query6869 behaves like a correct instrumented metric value6870 has correct value6871 behaves like a correct instrumented metric query6872 has correct generate query6873 options_key: :track, valid_value: "admin_verify", invalid_value: "invite_team"6874 raises an exception if option is not present6875 raises an exception if option has invalid value6876 doesn't raise exceptions if option has valid value6877 options_key: :series, valid_value: 1, invalid_value: 56878 raises an exception if option is not present6879 raises an exception if option has invalid value6880 doesn't raise exceptions if option has valid value6881Repositories::HousekeepingService6882 behaves like housekeeps repository6883 with a clean redis state6884 #execute6885 enqueues a sidekiq job6886 yields the block if given6887 resets counter after execution6888 runs the task specifically requested6889 when no lease can be obtained6890 does not enqueue a job6891 does not reset pushes_since_gc6892 does not yield6893 task type6894 goes through all three housekeeping tasks, executing only the highest task when there is overlap6895 #needed?6896 when the count is low enough6897 when the count is high enough6898 #increment!6899 increments the pushes_since_gc counter6900 behaves like housekeeps repository6901 with a clean redis state6902 #execute6903 enqueues a sidekiq job6904 yields the block if given6905 resets counter after execution6906 runs the task specifically requested6907 when no lease can be obtained6908 does not enqueue a job6909 does not reset pushes_since_gc6910 does not yield6911 task type6912 goes through all three housekeeping tasks, executing only the highest task when there is overlap6913 #needed?6914 when the count is low enough6915 when the count is high enough6916 #increment!6917 increments the pushes_since_gc counter6918create_tokens6919 ensure acknowledged secrets in any installations6920 does not allow to add a new secret without a proper handling6921 setting secret keys6922 when none of the secrets exist6923 generates different hashes for secret_key_base, otp_key_base, and db_key_base6924 generates an RSA key for openid_connect_signing_key6925 warns about the secrets to add to secrets.yml6926 writes the secrets to secrets.yml6927 does not write a .secret file6928 when the other secrets all exist6929 when secret_key_base exists in the environment and secrets.yml6930 does not issue a warning6931 uses the environment variable6932 does not update secrets.yml6933 when secret_key_base and otp_key_base exist6934 does not write any files6935 sets the keys to the values from the environment and secrets.yml6936 deletes the .secret file6937 when secret_key_base and otp_key_base do not exist6938 uses the file secret6939 keeps the other secrets as they were6940 warns about the missing secrets6941 deletes the .secret file6942 when rotated_encrypted_settings_key_base does not exist6943 does not warn about the missing secrets6944 does not update secrets.yml6945 when db_key_base is blank but exists in secrets.yml6946 warns about updating db_key_base6947 warns about the blank value existing in secrets.yml and exits6948 does not update secrets.yml6949Gitlab::GithubImport::Representation::DiffNote6950 .from_api_response6951 behaves like a DiffNote representation6952 returns an instance of DiffNote6953 the returned DiffNote6954 includes the number of the merge request6955 includes the file path of the diff6956 includes the commit ID6957 includes the created timestamp6958 includes the updated timestamp6959 includes the GitHub ID6960 returns the noteable type6961 #diff_hash6962 returns a Hash containing the diff details6963 #diff_position6964 when the diff is an addition6965 returns a Gitlab::Diff::Position6966 when the diff is an deletion6967 returns a Gitlab::Diff::Position6968 #discussion_id6969 when the note is a reply to a discussion6970 uses the cached value as the discussion_id only when responding an existing discussion6971 when cached value does not exist6972 falls back to generating a new discussion_id6973 #github_identifiers6974 returns a hash with needed identifiers6975 #line_code6976 generates the proper line code6977 #note and #contains_suggestion?6978 includes the note body6979 when the note have a suggestion6980 returns the suggestion formatted in the note6981 when the note have a multiline suggestion6982 returns the multi-line suggestion formatted in the note6983 #author6984 includes the user details6985 when the author is empty6986 does not set the user if the response did not include a user6987 .from_json_hash6988 behaves like a DiffNote representation6989 returns an instance of DiffNote6990 the returned DiffNote6991 includes the number of the merge request6992 includes the file path of the diff6993 includes the commit ID6994 includes the created timestamp6995 includes the updated timestamp6996 includes the GitHub ID6997 returns the noteable type6998 #diff_hash6999 returns a Hash containing the diff details7000 #diff_position7001 when the diff is an addition7002 returns a Gitlab::Diff::Position7003 when the diff is an deletion7004 returns a Gitlab::Diff::Position7005 #discussion_id7006 when the note is a reply to a discussion7007 uses the cached value as the discussion_id only when responding an existing discussion7008 when cached value does not exist7009 falls back to generating a new discussion_id7010 #github_identifiers7011 returns a hash with needed identifiers7012 #line_code7013 generates the proper line code7014 #note and #contains_suggestion?7015 includes the note body7016 when the note have a suggestion7017 returns the suggestion formatted in the note7018 when the note have a multiline suggestion7019 returns the multi-line suggestion formatted in the note7020 #author7021 includes the user details7022 when the author is empty7023 does not set the user if the response did not include a user7024Analytics::CycleAnalytics::IssueStageEvent7025 is expected to validate that :stage_event_hash_id cannot be empty/falsy7026 is expected to validate that :issue_id cannot be empty/falsy7027 is expected to validate that :group_id cannot be empty/falsy7028 is expected to validate that :project_id cannot be empty/falsy7029 is expected to validate that :start_event_timestamp cannot be empty/falsy7030 has state enum7031 behaves like StageEventModel7032 .upsert_data7033 inserts the data7034 does not produce duplicate rows7035 inserts the data correctly7036 scopes7037 filters by stage_event_hash_id7038 filters by project_id7039 filters by group_id7040 filters by author_id7041 filters by assignee7042 filters by milestone_id7043 start_event_timestamp filtering7044 when range is given7045 when specifying upper bound7046 when specifying the lower bound7047 end_event_timestamp filtering7048 when range is given7049 when specifying upper bound7050 when specifying the lower bound7051 #total_time7052 calcualtes total time from the start_event_timestamp and end_event_timestamp columns7053 when total time is calculated in SQL as an extra column7054 returns the SQL calculated time7055Gitlab::FileHook7056 with file_hooks present7057 .any?7058 returns true7059 .files?7060 returns a list of file_hooks7061 without any file_hooks7062 .any?7063 returns false7064 .files7065 returns an empty list7066 .execute7067 successful execution7068 is expected to equal true7069 is expected to be empty7070 ensures file_hook received data via stdin7071 non-executable7072 is expected to equal false7073 is expected to include "Permission denied"7074 non-zero exit7075 is expected to equal false7076 is expected to be empty7077DeployKeysProjectPolicy7078 updating a deploy_keys_project7079 when a project maintainer7080 tries to update private deploy key attached to project7081 is expected to be disallowed :update_deploy_keys_project7082 tries to update public deploy key attached to project7083 is expected to be allowed :update_deploy_keys_project7084 when a non-maintainer project member7085 tries to update private deploy key attached to project7086 is expected to be disallowed :update_deploy_keys_project7087 tries to update public deploy key attached to project7088 is expected to be disallowed :update_deploy_keys_project7089 when a user is not a project member7090 tries to update public deploy key attached to project7091 is expected to be disallowed :update_deploy_keys_project7092Gitlab::RobotsTxt::Parser7093 #disallowed?7094 a simple robots.txt file7095 path: "/autocomplete/users", result: true7096 is expected to eq true7097 path: "/autocomplete/users/a.html", result: true7098 is expected to eq true7099 path: "/search", result: true7100 is expected to eq true7101 path: "/search.html", result: true7102 is expected to eq true7103 path: "/api", result: true7104 is expected to eq true7105 path: "/api/grapql", result: true7106 is expected to eq true7107 path: "/api/index.html", result: true7108 is expected to eq true7109 path: "/projects", result: false7110 is expected to eq false7111 path: "/users", result: false7112 is expected to eq false7113 path: "/help", result: false7114 is expected to eq false7115 path: "/test", result: true7116 is expected to eq true7117 path: "/testfoo", result: false7118 is expected to eq false7119 path: "/ex$mple", result: true7120 is expected to eq true7121 path: "/ex$mplefoo", result: false7122 is expected to eq false7123 robots.txt file with wildcard7124 path: "/search", result: true7125 is expected to eq true7126 path: "/namespace/project.git", result: true7127 is expected to eq true7128 path: "/project/archive/", result: true7129 is expected to eq true7130 path: "/project/archive/file.gz", result: true7131 is expected to eq true7132 path: "/project/repository/archive", result: true7133 is expected to eq true7134 path: "/project/repository/archive.gz", result: true7135 is expected to eq true7136 path: "/project/repository/archive/file.gz", result: true7137 is expected to eq true7138 path: "/projects", result: false7139 is expected to eq false7140 path: "/git", result: false7141 is expected to eq false7142 path: "/projects/git", result: false7143 is expected to eq false7144 path: "/project/repository/archive/foo", result: false7145 is expected to eq false7146Ci::GenerateCoverageReportsService7147 #execute7148 when head pipeline has coverage reports7149 returns status and data7150 when head pipeline does not have a coverage report artifact7151 returns status and error message7152 when head pipeline has coverage reports and no merge request associated7153 returns status and error message7154 #latest?7155 when cache key is latest7156 is expected to be truthy7157 when head pipeline has been updated7158 is expected to be falsy7159 when cache key is empty7160 is expected to be falsy7161 when the pipeline has a child that is updated7162 is expected to be falsy7163Gitlab::QuickActions::CommandDefinition7164 #all_names7165 when the command has aliases7166 returns an array with the name and aliases7167 when the command doesn't have aliases7168 returns an array with the name7169 #noop?7170 when the command has an action block7171 returns false7172 when the command doesn't have an action block7173 returns true7174 #available?7175 when the command has a condition block7176 when the condition block returns true7177 returns true7178 when the condition block returns false7179 returns false7180 when the command doesn't have a condition block7181 returns true7182 when the command has types7183 when the command target type is allowed7184 returns true7185 when the command target type is not allowed7186 returns true7187 when the command has no types7188 any target type is allowed7189 #execute7190 when the command is a noop7191 doesn't execute the command7192 when the command is not a noop7193 when the command is not available7194 counts the command as executed7195 when the command is available7196 when the commnd has no arguments7197 when the command is provided an argument7198 executes the command7199 when the command is not provided an argument7200 executes the command7201 when the command has 1 required argument7202 when the command is provided an argument7203 executes the command7204 when the command is not provided an argument7205 doesn't execute the command7206 when the command has 1 optional argument7207 when the command is provided an argument7208 executes the command7209 when the command is not provided an argument7210 executes the command7211 when the command defines parse_params block7212 executes the command passing the parsed param7213 #execute_message7214 when the command is a noop7215 returns nil7216 when the command is not a noop7217 when the command is not available7218 returns an error message7219 when the command is available7220 when the execution_message is a static string7221 returns this static string7222 when the explanation is dynamic7223 invokes the proc7224 #explain7225 when the command is not available7226 returns nil7227 when the explanation is a static string7228 returns this static string7229 when warning is set7230 returns this static string7231 when the explanation is dynamic7232 invokes the proc7233Ci::PipelineVariable7234 is expected to validate that :key cannot be empty/falsy7235 behaves like CI variable7236 is expected to includes the Ci::HasVariable module7237 strips whitespaces when assigning key7238 can convert to runner variable7239 variable type7240 defines variable types7241 defaults variable type to env_var7242 supports variable type file7243 #hook_attrs7244 is expected to be a kind of Hash7245 is expected to eq {:key=>"foo", :value=>"bar"}7246 partitioning7247 with pipeline7248 copies the partition_id from pipeline7249 without pipeline7250 is expected to validate that :partition_id cannot be empty/falsy7251 does not change the partition_id value7252Packages::Conan::PackageFileFinder7253 #execute7254 behaves like package file finder examples7255 is expected to eq #<Packages::PackageFile id: 564, package_id: 195, created_at: "2022-12-08 11:05:01.448757000 +0000", updated_at: "2022-12-08 11:05:01.448757000 +0000", size: 409600, file_store: 1, file_md5: "12345abcde", file_sha1: "be93151dc23ac34a82752444556fe79b32c7a1ad", file_name: "conanfile.py", file: "conanfile.py", file_sha256: nil, verification_retry_at: nil, verified_at: nil, verification_failure: nil, verification_retry_count: nil, verification_checksum: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>7256 with conan_file_type7257 is expected to eq "recipe_file"7258 with conan_package_reference7259 is expected to eq #<Packages::PackageFile id: 568, package_id: 195, created_at: "2022-12-08 11:05:01.552284000 +0000", updated_at: "2022-12-08 11:05:01.552284000 +0000", size: 409600, file_store: 1, file_md5: "12345abcde", file_sha1: "be93151dc23ac34a82752444556fe79b32c7a1ad", file_name: "conan_package.tgz", file: "conan_package.tgz", file_sha256: nil, verification_retry_at: nil, verified_at: nil, verification_failure: nil, verification_retry_count: nil, verification_checksum: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>7260 with file_name_like7261 is expected to eq #<Packages::PackageFile id: 564, package_id: 195, created_at: "2022-12-08 11:05:01.448757000 +0000", updated_at: "2022-12-08 11:05:01.448757000 +0000", size: 409600, file_store: 1, file_md5: "12345abcde", file_sha1: "be93151dc23ac34a82752444556fe79b32c7a1ad", file_name: "conanfile.py", file: "conanfile.py", file_sha256: nil, verification_retry_at: nil, verified_at: nil, verification_failure: nil, verification_retry_count: nil, verification_checksum: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>7262 behaves like not returning pending_destruction package files7263 returns the correct package file7264 with unknown file_name7265 is expected to be nil7266 #execute!7267 behaves like package file finder examples7268 is expected to eq #<Packages::PackageFile id: 564, package_id: 195, created_at: "2022-12-08 11:05:01.448757000 +0000", updated_at: "2022-12-08 11:05:01.448757000 +0000", size: 409600, file_store: 1, file_md5: "12345abcde", file_sha1: "be93151dc23ac34a82752444556fe79b32c7a1ad", file_name: "conanfile.py", file: "conanfile.py", file_sha256: nil, verification_retry_at: nil, verified_at: nil, verification_failure: nil, verification_retry_count: nil, verification_checksum: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>7269 with conan_file_type7270 is expected to eq "recipe_file"7271 with conan_package_reference7272 is expected to eq #<Packages::PackageFile id: 568, package_id: 195, created_at: "2022-12-08 11:05:01.552284000 +0000", updated_at: "2022-12-08 11:05:01.552284000 +0000", size: 409600, file_store: 1, file_md5: "12345abcde", file_sha1: "be93151dc23ac34a82752444556fe79b32c7a1ad", file_name: "conan_package.tgz", file: "conan_package.tgz", file_sha256: nil, verification_retry_at: nil, verified_at: nil, verification_failure: nil, verification_retry_count: nil, verification_checksum: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>7273 with file_name_like7274 is expected to eq #<Packages::PackageFile id: 564, package_id: 195, created_at: "2022-12-08 11:05:01.448757000 +0000", updated_at: "2022-12-08 11:05:01.448757000 +0000", size: 409600, file_store: 1, file_md5: "12345abcde", file_sha1: "be93151dc23ac34a82752444556fe79b32c7a1ad", file_name: "conanfile.py", file: "conanfile.py", file_sha256: nil, verification_retry_at: nil, verified_at: nil, verification_failure: nil, verification_retry_count: nil, verification_checksum: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>7275 behaves like not returning pending_destruction package files7276 returns the correct package file7277 with unknown file_name7278 is expected to raise ActiveRecord::RecordNotFound7279Gitlab::Instrumentation::RedisInterceptor7280 read and write7281 setup: [], command: [:set, "foo", "bar"], expect_write: 9, expect_read: 27282 counts bytes read and written7283 setup: [[:set, "foobar", 1000]], command: [:incr, "foobar"], expect_write: 10, expect_read: 47284 counts bytes read and written7285 setup: [], command: [:hgetall, "foobar"], expect_write: 13, expect_read: 07286 counts bytes read and written7287 setup: [[:hset, "myhash", "field", "hello world"]], command: [:hgetall, "myhash"], expect_write: 13, expect_read: 167288 counts bytes read and written7289 setup: [[:set, "foo", "barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbar"]], command: [:get, "foo"], expect_write: 6, expect_read: 3007290 counts bytes read and written7291 setup: [[:zadd, "myset", 0, "foo"], [:zadd, "myset", 1, "bar"]], command: [:zrange, "myset", 0, -1, "withscores"], expect_write: 24, expect_read: 87292 counts bytes read and written7293 counting7294 counts successful requests7295 counts successful pipelined requests7296 skips count for non-cross-slot requests7297 counts exceptions7298 in production env7299 counts cross-slot requests7300 latency7301 commands in the apdex7302 command: [:get, "foobar"]7303 measures requests we want in the apdex7304 command: ["GET", "foobar"]7305 measures requests we want in the apdex7306 with pipelined commands7307 measures requests that do not have blocking commands7308 raises error when keys are not from the same slot7309 commands not in the apdex7310 setup: [["rpush", "foobar", 1]], command: ["brpop", "foobar", 0]7311 skips requests we do not want in the apdex7312 setup: [["rpush", "foobar", 1]], command: ["blpop", "foobar", 0]7313 skips requests we do not want in the apdex7314 setup: [["rpush", "{abc}foobar", 1]], command: ["brpoplpush", "{abc}foobar", "{abc}bazqux", 0]7315 skips requests we do not want in the apdex7316 setup: [["rpush", "{abc}foobar", 1]], command: ["brpoplpush", "{abc}foobar", "{abc}bazqux", 0]7317 skips requests we do not want in the apdex7318 setup: [["zadd", "foobar", 1, "a"]], command: ["bzpopmin", "foobar", 0]7319 skips requests we do not want in the apdex7320 setup: [["zadd", "foobar", 1, "a"]], command: ["bzpopmax", "foobar", 0]7321 skips requests we do not want in the apdex7322 setup: [["xadd", "mystream", 1, "myfield", "mydata"]], command: ["xread", "block", 1, "streams", "mystream", "0-0"]7323 skips requests we do not want in the apdex7324 setup: [["xadd", "foobar", 1, "myfield", "mydata"], ["xgroup", "create", "foobar", "mygroup", 0]], command: ["xreadgroup", "group", "mygroup", "myconsumer", "block", 1, "streams", "foobar", "0-0"]7325 skips requests we do not want in the apdex7326 with pipelined commands7327 skips requests that have blocking commands7328WebHooks::LogExecutionService7329 #execute7330 logs the data7331 updates the last failure7332 obtaining an exclusive lease7333 updates failure state using a lease that ensures fresh state is written7334 when a lease cannot be obtained7335 response_category: :ok, executable: true, needs_updating: false7336 raises an error if the hook needs to be updated7337 response_category: :ok, executable: false, needs_updating: true7338 raises an error if the hook needs to be updated7339 response_category: :failed, executable: true, needs_updating: true7340 raises an error if the hook needs to be updated7341 response_category: :failed, executable: false, needs_updating: false7342 raises an error if the hook needs to be updated7343 response_category: :error, executable: true, needs_updating: true7344 raises an error if the hook needs to be updated7345 response_category: :error, executable: false, needs_updating: false7346 raises an error if the hook needs to be updated7347 when response_category is :ok7348 does not increment the failure count7349 does not change the disabled_until attribute7350 when the hook had previously failed7351 resets the failure count7352 when response_category is :failed7353 increments the failure count7354 does not change the disabled_until attribute7355 does not allow the failure count to overflow7356 when response_category is :error7357 backs off7358 with url_variables7359 logs the data and masks response headers7360 with X-Gitlab-Token7361 redacts the token7362Terraform::RemoteStateHandler7363 #find_with_lock7364 without a state name7365 raises an exception7366 with a state name7367 with no matching state7368 raises an exception7369 with a matching state7370 returns the state7371 with a state scheduled for deletion7372 raises an exception7373 when state locking is not being used7374 #handle_with_lock7375 allows to modify a state using database locking7376 returns nil7377 #lock!7378 raises an error7379 when using locking7380 #handle_with_lock7381 handles a locked state using exclusive read lock7382 raises exception if lock has not been acquired before7383 raises an exception if the state is scheduled for deletion7384 user does not have permission to modify state7385 raises an exception7386 #lock!7387 allows to lock state if it does not exist yet7388 allows to lock state if it exists and is not locked7389 raises an exception when trying to unlocked state locked by someone else7390 raises an exception when the state exists and is scheduled for deletion7391 #unlock!7392 unlocks the state7393 with no lock ID (force-unlock)7394 unlocks the state7395 with different lock ID7396 raises an exception7397 with a state scheduled for deletion7398 raises an exception7399Pajamas::BadgeComponent7400 # order random7401 content slot7402 can be used instead of the text param7403 takes presendence over the text param7404 HTML options7405 get added as HTML attributes7406 can be combined with component options in no particular order7407 with custom CSS classes7408 combines custom classes and component classes7409 options7410 icon7411 adds the correct icon and margin7412 icon_classes7413 as string7414 combines custom classes and component classes7415 as array7416 combines custom classes and component classes7417 icon_only7418 adds no extra margin to the icon7419 adds the text as ARIA label7420 href7421 makes the a badge a link7422 size7423 size: :sm7424 adds size class7425 size: :md7426 adds size class7427 size: :lg7428 adds size class7429 with unknown size7430 adds the default size class7431 variant7432 variant: :muted7433 adds variant class7434 variant: :neutral7435 adds variant class7436 variant: :info7437 adds variant class7438 variant: :success7439 adds variant class7440 variant: :warning7441 adds variant class7442 variant: :danger7443 adds variant class7444 with unknown variant7445 adds the default variant class7446 text param7447 is shown inside the badge7448Gitlab::Ci::Pipeline::Expression::Lexeme::Or7449 .build7450 creates a new instance of the token7451 with non-evaluable operands7452 raises an operator error7453 .type7454 is an operator7455 .precedence7456 has a precedence7457 #evaluate7458 when left and right are truthy7459 left_value: true, right_value: 17460 is expected to be truthy7461 is expected to eq true7462 left_value: true, right_value: "a"7463 is expected to be truthy7464 is expected to eq true7465 left_value: 1, right_value: true7466 is expected to be truthy7467 is expected to eq 17468 left_value: 1, right_value: "a"7469 is expected to be truthy7470 is expected to eq 17471 left_value: "a", right_value: true7472 is expected to be truthy7473 is expected to eq "a"7474 left_value: "a", right_value: 17475 is expected to be truthy7476 is expected to eq "a"7477 when left or right is truthy7478 left_value: true, right_value: false7479 is expected to be truthy7480 left_value: true, right_value: "a"7481 is expected to be truthy7482 left_value: false, right_value: true7483 is expected to be truthy7484 left_value: false, right_value: "a"7485 is expected to be truthy7486 left_value: "a", right_value: true7487 is expected to be truthy7488 left_value: "a", right_value: false7489 is expected to be truthy7490 when left and right are falsey7491 left_value: false, right_value: nil7492 is expected to be falsey7493 is expected to eq nil7494 left_value: nil, right_value: false7495 is expected to be falsey7496 is expected to eq false7497Packages::Go::VersionFinder7498 #execute7499 for the root module7500 behaves like #execute7501 returns v1.0.1, v1.0.2, v1.0.3, v1.0.47502 for the package7503 behaves like #execute7504 returns nothing7505 for the submodule7506 behaves like #execute7507 returns v1.0.3, v1.0.47508 for the root module v27509 behaves like #execute7510 returns v2.0.07511 for the bad module7512 with gomod checking enabled7513 behaves like #execute7514 returns nothing7515 with gomod checking disabled7516 behaves like #execute7517 returns v1.0.47518 #find7519 with a ref7520 returns a ref version7521 with a semver tag7522 returns a version with a semver7523 with a semver tag string7524 returns a version with a semver7525 with a commit7526 retruns a commit version7527 with a pseudo-version7528 returns a pseudo version7529 with a string that is not a semantic version7530 returns nil7531 with a pseudo-version that does not reference a commit7532 behaves like #find with an invalid argument7533 raises an argument exception: invalid pseudo-version: unknown commit7534 with a pseudo-version with a short sha7535 behaves like #find with an invalid argument7536 raises an argument exception: invalid pseudo-version: revision is shorter than canonical7537 with a pseudo-version with an invalid timestamp7538 behaves like #find with an invalid argument7539 raises an argument exception: invalid pseudo-version: does not match version-control timestamp7540Gitlab::GithubImport::Importer::PullRequestsReviewsImporter7541 is expected to includes the Gitlab::GithubImport::ParallelScheduling module7542 #representation_class7543 is expected to eq Gitlab::GithubImport::Representation::PullRequestReview7544 #importer_class7545 is expected to eq Gitlab::GithubImport::Importer::PullRequestReviewImporter7546 #collection_method7547 is expected to eq :pull_request_reviews7548 #id_for_already_imported_cache7549 is expected to eq 17550 #each_object_to_import7551 fetches the pull requests reviews data7552 skips cached pages7553 skips cached merge requests7554Ci::RunScheduledBuildService7555 when user can update build7556 when build is scheduled7557 when scheduled_at is expired7558 can run the build7559 when build requires resource7560 transits to waiting for resource status7561 when scheduled_at is not expired7562 can not run the build7563 when build is not scheduled7564 can not run the build7565 when user can not update build7566 when build is scheduled7567 can not run the build7568Namespaces::ProcessSyncEventsWorker7569 is labeled as idempotent7570 performs multiple times sequentially without raising an exception7571 deduplication7572 has the `until_executed` deduplicate strategy7573 has an option to reschedule once if deduplicated7574 expect the job to enqueue itself again if there was more items to be processed7575 #perform7576 consumes all sync events7577 syncs namespace hierarchy traversal ids7578 logs the service result7579BackgroundMigration::CiDatabaseWorker7580 behaves like it runs background migration jobs7581 defining the job attributes7582 defines the data_consistency as always7583 defines the retry count in sidekiq_options7584 defines the feature_category as database7585 defines the urgency as throttled7586 defines the loggable_arguments7587 .tracking_database7588 does not raise an error7589 overrides the method to return the tracking database7590 .minimum_interval7591 returns 2 minutes7592 #perform7593 when execute_background_migrations feature flag is disabled7594 does not perform the job, reschedules it in the future, and logs a message7595 when execute_background_migrations feature flag is enabled7596 performs jobs using the coordinator for the worker7597 when lease can be obtained7598 sets up the shared connection before checking replication7599 performs a background migration7600 can run scheduled job and retried job concurrently7601 sets the class that will be executed as the caller_id7602 when lease_attempts is 17603 performs a background migration7604 when lease not obtained (migration of same class was performed recently)7605 reschedules the migration and decrements the lease_attempts7606 when lease_attempts is 17607 reschedules the migration and decrements the lease_attempts7608 when lease_attempts is 07609 gives up performing the migration7610 when database is not healthy7611 reschedules a migration if the database is not healthy7612 increments the unhealthy counter7613 when lease_attempts is 07614 gives up performing the migration7615Gitlab::Ci::Status::Build::Play7616 #label7617 has a label that says it is a manual action7618 #status_tooltip7619 does not override status status_tooltip7620 #badge_tooltip7621 does not override status badge_tooltip7622 #has_action?7623 when user is allowed to update build7624 when user is allowed to trigger protected action7625 is expected to have action7626 when user can not push to the branch7627 is expected not to have action7628 when user is not allowed to update build7629 is expected not to have action7630 #action_path7631 is expected to include "190/play"7632 #action_icon7633 is expected to eq "play"7634 #action_title7635 is expected to eq "Play"7636 #action_button_title7637 is expected to eq "Trigger this manual action"7638 .matches?7639 when build is playable7640 when build stops an environment7641 does not match7642 when build does not stop an environment7643 is a correct match7644 when build is not playable7645 does not match7646Gitlab::RackAttack::UserAllowlist7647 input: nil, elements: []7648 has the expected elements7649 implements empty?7650 implements include?7651 input: "", elements: []7652 has the expected elements7653 implements empty?7654 implements include?7655 input: "123", elements: [123]7656 has the expected elements7657 implements empty?7658 implements include?7659 input: "123,456", elements: [123, 456]7660 has the expected elements7661 implements empty?7662 implements include?7663 input: "123,foobar, 456,", elements: [123, 456]7664 has the expected elements7665 implements empty?7666 implements include?7667MergeRequests::Mergeability::RunChecksService7668 #execute7669 when every check is skipped7670 is still a success7671 when a check is skipped7672 does not execute the check7673 when a check is not skipped7674 when the check is cacheable7675 when the check is cached7676 returns the cached result7677 when the check is not cached7678 writes and returns the result7679 when check is not cacheable7680 does not call the results store7681 #success?7682 when the execute method has been executed7683 when all the checks succeed7684 returns true7685 when one check fails7686 returns false7687 when execute has not been exectued7688 raises an error7689 #failure_reason7690 when the execute method has been executed7691 when all the checks succeed7692 returns nil7693 when one check fails7694 returns the open reason7695 when execute has not been exectued7696 raises an error7697Gitlab::Middleware::CompressedJson7698 #call7699 with collector route7700 behaves like decompress middleware7701 replaces input with a decompressed content7702 with no Content-Type7703 behaves like decompress middleware7704 replaces input with a decompressed content7705 behaves like decompress middleware7706 replaces input with a decompressed content7707 with packages route7708 with instance level endpoint7709 with npm advisory bulk url7710 behaves like decompress middleware7711 replaces input with a decompressed content7712 behaves like decompress middleware7713 replaces input with a decompressed content7714 with npm quick audit url7715 behaves like decompress middleware7716 replaces input with a decompressed content7717 behaves like decompress middleware7718 replaces input with a decompressed content7719 with project level endpoint7720 with npm advisory bulk url7721 behaves like decompress middleware7722 replaces input with a decompressed content7723 behaves like decompress middleware7724 replaces input with a decompressed content7725 behaves like handles non integer project ID7726 with a URL-encoded project ID7727 behaves like decompress middleware7728 replaces input with a decompressed content7729 with a non URL-encoded project ID7730 behaves like passes input7731 keeps the original input7732 with a blank project ID7733 behaves like passes input7734 keeps the original input7735 with npm quick audit url7736 behaves like decompress middleware7737 replaces input with a decompressed content7738 behaves like decompress middleware7739 replaces input with a decompressed content7740 behaves like handles non integer project ID7741 with a URL-encoded project ID7742 behaves like decompress middleware7743 replaces input with a decompressed content7744 with a non URL-encoded project ID7745 behaves like passes input7746 keeps the original input7747 with a blank project ID7748 behaves like passes input7749 keeps the original input7750 with some other route7751 behaves like passes input7752 keeps the original input7753 payload is too large7754 reads only limited size7755Gitlab::Git7756 .ref_name7757 ensure ref is a valid UTF-8 string7758 when ref contains characters \x80 - \xFF7759 correctly converts it7760 .commit_id?7761 sha: "", result: false7762 returns the expected result7763 sha: "foobar", result: false7764 returns the expected result7765 sha: "4b825dc", result: false7766 returns the expected result7767 sha: "zzz25dc642cb6eb9a060e54bf8d69288fbee4904", result: false7768 returns the expected result7769 sha: "4b825dc642cb6eb9a060e54bf8d69288fbee4904", result: true7770 returns the expected result7771 sha: "0000000000000000000000000000000000000000", result: true7772 returns the expected result7773 .shas_eql?7774 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", result: true7775 is expected to eq true7776 is commutative7777 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b2", result: true7778 is expected to eq true7779 is commutative7780 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "d42df6f6db32cf340875f2f59b848ddba2b7e075", result: false7781 is expected to eq false7782 is commutative7783 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b", result: false7784 is expected to eq false7785 is commutative7786 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: nil, result: false7787 is expected to eq false7788 is commutative7789 sha1: nil, sha2: nil, result: true7790 is expected to eq true7791 is commutative7792Gitlab::WebIde::Config::Entry::Global7793 .nodes7794 returns a hash7795 when filtering all the entry/node names7796 contains the expected node names7797 when configuration is valid7798 when some entries defined7799 #compose!7800 creates nodes hash7801 creates node object for each entry7802 creates node object using valid class7803 sets correct description for nodes7804 #leaf?7805 is not leaf7806 when not composed7807 #terminal_value7808 returns nil7809 #leaf?7810 is leaf7811 when composed7812 #errors7813 has no errors7814 #terminal_value7815 returns correct script7816 when configuration is not valid7817 when job does not have valid before script7818 #errors7819 reports errors about missing script7820 when value is not a hash7821 #valid?7822 is not valid7823 #errors7824 returns error about invalid type7825 #specified?7826 is concrete entry that is defined7827 #[]7828 when entry exists7829 returns correct entry7830 when entry does not exist7831 always return unspecified node7832ContainerExpirationPolicyWorker7833 #perform7834 process cleanups7835 calls the limited capacity worker7836 with exclusive lease taken7837 does not do anything7838 process stale ongoing cleanups7839 set them as unfinished7840 policies without container repositories7841 disables them7842 counts logging7843 logs all the counts7844 with load balancing enabled7845 reads the counts from the replica7846Gitlab::SidekiqDaemon::Monitor7847 #within_job7848 tracks thread7849 when job is canceled7850 does not execute a block7851 raises exception7852 #with_running_jobs7853 yields with correct jobs7854 #run_thread when notification channel not enabled7855 return directly7856 #run_thread when notification channel enabled7857 when structured logging is used7858 logs start message7859 logs stop message7860 logs StandardError message7861 logs and raises Exception message7862 when StandardError is raised7863 does retry connection7864 when message is published7865 and message is valid7866 processes cancel7867 and message is not valid json7868 skips processing7869 #stop7870#<Thread:0x00007f34d9e7a788 /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:56 run> terminated with exception (report_on_exception is true):7871Interrupt (Interrupt)7872 does stop the thread7873 #process_job_cancel7874 when jid is missing7875 does not run thread7876 when jid is provided7877 when jid is not found7878 does not log cancellation message7879 when jid is found7880#<Thread:0x00007f34ee290f48 /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:231 run> terminated with exception (report_on_exception is true):7881/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:231:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)7882 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:231:in `block (6 levels) in <top (required)>'7883 does log cancellation message7884#<Thread:0x00007f34f29b47f8 /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:231 run> terminated with exception (report_on_exception is true):7885/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:231:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)7886 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:231:in `block (6 levels) in <top (required)>'7887 does cancel the thread7888 .cancel_job7889 sets a redis key7890 notifies all workers7891 #notification_channel_enabled?7892 return nil when SIDEKIQ_MONITOR_WORKER is not set7893 return nil when SIDEKIQ_MONITOR_WORKER set to 07894 return 1 when SIDEKIQ_MONITOR_WORKER set to 17895Integrations::Shimo7896 #fields7897 returns custom fields7898 #create7899 with valid params7900 creates the Shimo integration7901 with invalid params7902 cannot create the Shimo integration without external_wiki_url7903 cannot create the Shimo integration with invalid external_wiki_url7904 Caching has_shimo on project_settings7905 sets the property to true when integration is active7906 sets the property to false when integration is not active7907 creates a project_setting record if one was not already created7908Integrations::MockCi7909 behaves like Integrations::BaseCi7910 default values7911 is expected to eq :ci7912 accessors7913 is expected to respond to #enable_ssl_verification7914 is expected to respond to #enable_ssl_verification?7915 #initialize_properties7916 enables the setting by default7917 does not enable the setting if the record is already persisted7918 does not enable the setting if a custom value was set7919 #fields7920 inserts the checkbox field after the first URL field, or at the end7921 does not insert the field repeatedly7922 #commit_status7923 returns allowed states7924 returns :pending for 404 responses7925 returns :error for responses other than 200 or 4047926 returns :error for unknown states7927 returns :error for invalid JSON7928 returns :error for non-hash JSON responses7929 returns :error for JSON responses without a status7930 returns :error when connection is refused7931FeatureFlags::CreateService7932 #execute7933 when feature flag can not be created7934 returns status error7935 returns validation errors7936 does not create audit log7937 does not sync the feature flag to Jira7938 behaves like does not update feature flag client7939 does not update last feature flag updated at7940 when feature flag is saved correctly7941 returns status success7942 creates feature flag7943 creates audit event7944 behaves like update feature flag client7945 updates last feature flag updated at7946 when Jira Connect subscription does not exist7947 does not sync the feature flag to Jira7948 when Jira Connect subscription exists7949 syncs the feature flag to Jira7950 when user is reporter7951 returns error status7952Discussions::CaptureDiffNotePositionService7953 image note on diff7954 is note affected by the service7955 when empty paths are passed as a param7956 does not calculate positons7957 when position tracer returned position7958 which is nil7959 does not create diff note position7960 which does not have a corresponding line7961 does not create diff note position7962Gitlab::Ci::Config::Yaml::Tags::Reference7963 .tag7964 implements the tag method7965 #resolve7966 with circular references7967 raises CircularReferenceError7968 with nested circular references7969 raises CircularReferenceError7970 with missing references7971 raises MissingReferenceError7972 with invalid references7973 yaml: "a: !reference", error_message: "!reference [] is not valid"7974 raises an error7975 yaml: "a: !reference str", error_message: "!reference \"str\" is not valid"7976 raises an error7977 yaml: "a: !reference 1", error_message: "!reference \"1\" is not valid"7978 raises an error7979 yaml: "a: !reference [1]", error_message: "!reference [1] is not valid"7980 raises an error7981 yaml: "a: !reference { b: c }", error_message: "!reference {\"b\"=>\"c\"} is not valid"7982 raises an error7983 when the references are valid but do not match the config7984 raises a MissingReferenceError7985 with arrays7986 is expected to match (a hash including {:f => {:g => [[1, 2], 5, [3, 4]]}})7987 with hashes7988 when referencing an entire hash7989 is expected to match (a hash including {:e => {:f => {:c => "c", :d => "d"}}})7990 when referencing only a hash value7991 is expected to match (a hash including {:i => {:g => "c", :h => "h"}})7992 when referencing a value before its definition7993 is expected to match (a hash including {:a => {:b => {:e => 1, :f => "f"}}})7994Gitlab::Usage::Metrics::Aggregates::Aggregate7995 .calculate_count_for_aggregation7996 with valid configuration7997 number_of_days: 28, operator: "AND", datasource: "redis_hll", expected_method: :calculate_metrics_intersections7998 returns the number of unique events for aggregation7999 number_of_days: 7, operator: "AND", datasource: "redis_hll", expected_method: :calculate_metrics_intersections8000 returns the number of unique events for aggregation8001 number_of_days: 28, operator: "AND", datasource: "database", expected_method: :calculate_metrics_intersections8002 returns the number of unique events for aggregation8003 number_of_days: 7, operator: "AND", datasource: "database", expected_method: :calculate_metrics_intersections8004 returns the number of unique events for aggregation8005 number_of_days: 28, operator: "OR", datasource: "redis_hll", expected_method: :calculate_metrics_union8006 returns the number of unique events for aggregation8007 number_of_days: 7, operator: "OR", datasource: "redis_hll", expected_method: :calculate_metrics_union8008 returns the number of unique events for aggregation8009 number_of_days: 28, operator: "OR", datasource: "database", expected_method: :calculate_metrics_union8010 returns the number of unique events for aggregation8011 number_of_days: 7, operator: "OR", datasource: "database", expected_method: :calculate_metrics_union8012 returns the number of unique events for aggregation8013 with invalid configuration8014 time_frame: "28d", operator: "SUM", datasource: "redis_hll", expected_error: Gitlab::Usage::Metrics::Aggregates::UnknownAggregationOperator8015 with non prod environment8016 raises error8017 with prod environment8018 returns fallback value8019 time_frame: "7d", operator: "AND", datasource: "mongodb", expected_error: Gitlab::Usage::Metrics::Aggregates::UnknownAggregationSource8020 with non prod environment8021 raises error8022 with prod environment8023 returns fallback value8024 time_frame: "all", operator: "AND", datasource: "redis_hll", expected_error: Gitlab::Usage::Metrics::Aggregates::DisallowedAggregationTimeFrame8025 with non prod environment8026 raises error8027 with prod environment8028 returns fallback value8029 when union data is not available8030 time_frame: "28d", operator: "OR", datasource: "redis_hll"8031 with non prod environment8032 raises error8033 with prod environment8034 returns fallback value8035 time_frame: "7d", operator: "OR", datasource: "database"8036 with non prod environment8037 raises error8038 with prod environment8039 returns fallback value8040RuboCop::CopTodo8041 # order random8042 #initialize8043 initializes a cop todo8044 #generate?8045 when empty todo8046 is expected to eq false8047 when previously disabled8048 is expected to eq true8049 when in grace period8050 is expected to eq true8051 with offenses recorded8052 is expected to eq true8053 #record8054 records offenses8055 #to_yaml8056 when autocorrectable8057 is expected to eq "---\n# Cop supports --autocorrect.\nCop/Rule:\n"8058 when previously disabled8059 is expected to eq "---\nCop/Rule:\n # Offense count: 3\n # Temporarily disabled due to too many offenses\n Enabled: false\n Exclude:\n - 'a.rb'\n - 'b.rb'\n"8060 with grace period8061 is expected to eq "---\nCop/Rule:\n Details: grace period\n Exclude:\n - 'a.rb'\n - 'b.rb'\n"8062 with multiple files8063 sorts excludes alphabetically8064 #autocorrectable?8065 when found in rubocop registry8066 when autocorrectable8067 is expected to be truthy8068 when not autocorrectable8069 is expected to be falsey8070 when not found in rubocop registry8071 is expected to be falsey8072WikiPages::EventCreateService8073 #execute8074 returns a successful response8075 creates a wiki page event8076 returns an event in the payload8077 records the slug for the page8078 the user is nil8079 raises an error on construction8080 the action is illegal8081 returns an error8082 does not create an event8083 the action is a deletion8084 does not synchronize the wiki metadata timestamps with the git commit8085projects/environments/terminal8086 when environment has external URL8087 shows external URL button8088 when environment does not have external URL8089 shows external URL button8090Gitlab::Ci::Reports::AccessibilityReportsComparer8091 #status8092 when head report has an error8093 returns status failed8094 when head reports does not have errors8095 returns status success8096 #errors_count8097 when head report has an error8098 returns the number of new errors8099 when head reports does not have an error8100 returns the number new errors8101 #resolved_count8102 when base reports has an error and head has a different error8103 returns the resolved count8104 when base reports has errors head has no errors8105 returns the resolved count8106 when base reports has errors and head has the same error8107 returns zero8108 when base reports does not have errors and head has errors8109 returns the number of resolved errors8110 #total_count8111 when base reports has an error8112 returns zero8113 when head report has an error8114 returns the total count8115 when base report has errors and head report has errors8116 returns the total count8117 when base report has errors and head report has the same error8118 returns the total count8119 #existing_errors8120 when base report has errors and head has a different error8121 returns an empty array8122 when base report does not have errors and head has errors8123 returns an empty array8124 when base report has errors and head report has the same error8125 returns the existing error8126 #new_errors8127 when base reports has errors and head has more errors8128 returns new errors between base and head reports8129 when base reports has an error and head has no errors8130 returns an empty array8131 when base reports does not have errors and head has errors8132 returns the new error8133 #resolved_errors8134 when base report has errors and head has more errors8135 returns an empty array8136 when base reports has errors and head has a different error8137 returns the resolved errors8138 when base reports does not have errors and head has errors8139 returns an empty array8140OauthAccessToken8141 scopes8142 .latest_per_application8143 returns only the latest token for each application8144 Doorkeeper secret storing8145 stores the token in hashed format8146 does not allow falling back to plaintext token comparison8147 finds a token by plaintext token8148 when the token is stored in plaintext8149 falls back to plaintext token comparison8150 .matching_token_for8151 does not find existing tokens8152ReviewAppSetupEntity8153 #as_json8154 contains can_setup_review_app8155 when the user can setup a review app8156 contains relevant fields8157 exposes the relevant review snippet8158 exposes whether the project has associated clusters8159 when the user cannot setup a review app8160 does not expose certain fields8161Gitlab::Database::Type::IndifferentJsonb8162 # order random8163 #deserialize8164 json: nil, value: nil8165 is expected to match nil8166 is expected to match nil8167 json: "{\"key\":\"value\"}", value: {:key=>"value"}8168 is expected to match {:key=>"value"}8169 is expected to match {"key"=>"value"}8170 json: "{\"key\":[1,2,3]}", value: {:key=>[1, 2, 3]}8171 is expected to match {:key=>[1, 2, 3]}8172 is expected to match {"key"=>[1, 2, 3]}8173 json: "{\"key\":{\"subkey\":\"value\"}}", value: {:key=>{:subkey=>"value"}}8174 is expected to match {:key=>{:subkey=>"value"}}8175 is expected to match {"key"=>{"subkey"=>"value"}}8176 json: "{\"key\":{\"a\":[{\"b\":\"c\"},{\"d\":\"e\"}]}}", value: {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}8177 is expected to match {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}8178 is expected to match {"key"=>{"a"=>[{"b"=>"c"}, {"d"=>"e"}]}}8179 when used by a model8180 is expected to match {:key=>"value"}8181 is expected to match {"key"=>"value"}8182 ignores changes to other attributes8183 tracks changes to options8184Gitlab::Kubernetes::Helm::V2::ResetCommand8185 behaves like helm command generator8186 #generate_script8187 returns appropriate command8188 #pod_name8189 is expected to eq "uninstall-helm"8190 behaves like helm command8191 HELM_VERSION8192 is expected to match /\d+\.\d+\.\d+/8193 #env8194 is expected to be a kind of Hash8195 #rbac?8196 rbac is enabled8197 is expected to be truthy8198 rbac is not enabled8199 is expected to be falsey8200 #pod_resource8201 rbac is enabled8202 is expected to be an instance of Kubeclient::Resource8203 generates a pod that uses the tiller serviceAccountName8204 rbac is not enabled8205 is expected to be an instance of Kubeclient::Resource8206 generates a pod that uses the default serviceAccountName8207 #config_map_resource8208 returns a KubeClient resource with config map content for the application8209 #service_account_resource8210 rbac is enabled8211 generates a Kubeclient resource for the tiller ServiceAccount8212 rbac is not enabled8213 generates nothing8214 #cluster_role_binding_resource8215 rbac is enabled8216 generates a Kubeclient resource for the ClusterRoleBinding for tiller8217 binds the account in #service_account_resource8218 rbac is not enabled8219 generates nothing8220ContainerRegistry::DeleteContainerRepositoryWorker8221 # order random8222 #perform_work8223 with no work to do - no container repositories pending deletion8224 will not delete any container repository8225 with work to do8226 picks and destroys the delete scheduled container repository8227 with an error during the tags cleanup8228 does not delete the container repository8229 with an error during the destroy8230 does not delete the container repository8231 with tags left to destroy8232 does not delete the container repository8233 with no tags on the container repository8234 picks and destroys the delete scheduled container repository8235 with container_registry_delete_repository_with_cron_worker disabled8236 will not delete any container repository8237 #max_running_jobs8238 is expected to eq 28239 #remaining_work_count8240 is expected to eq 38241 with container_registry_delete_repository_with_cron_worker disabled8242 is expected to eq 08243ProjectImportOptions8244 sets default retry limit8245 sets default status expiration8246 .sidekiq_retries_exhausted8247 marks fork as failed8248 logs the appropriate error message for forked projects8249 logs the appropriate error message for forked projects8250 when project is jira import8251 logs the appropriate error message for forked projects8252 when project does not have import_state8253 raises an error8254SystemNotes::IncidentService8255 # order random8256 #change_incident_severity8257 behaves like a system note8258 has the correct attributes8259 with unknown severity8260 has the appropriate message8261 with low severity8262 has the appropriate message8263 with medium severity8264 has the appropriate message8265 with high severity8266 has the appropriate message8267 with critical severity8268 has the appropriate message8269 when severity is invalid8270 does not create system note8271 writes error to logs8272 #change_incident_status8273 with a provided reason8274 creates a new note for an incident status change8275 without provided reason8276 creates a new note for an incident status change8277NoteSummary8278 #metadata?8279 returns true when metadata present8280 returns false when metadata not present8281 #note8282 returns note hash8283 when noteable is a commit8284 returns note hash specific to commit8285 #metadata8286 returns metadata hash8287 description action and noteable has saved_description_version8288 sets the description_version metadata8289Gitlab::Serverless::Service8290 exposes methods extracting data from the attributes hash8291 returns nil for missing attributes8292 #description8293 extracts the description in knative 7 format if available8294 extracts the description in knative 5/6 format if 7 is not available8295 #url8296 returns proxy URL if cluster has serverless domain8297 returns the URL from the knative 6/7 format8298 returns the URL from the knative 5 format8299profiles/preferences/show8300 navigation theme8301 has an id for anchoring8302 has correct stylesheet tags8303 syntax highlighting theme8304 has an id for anchoring8305 behavior8306 has option for Render whitespace characters in the Web IDE8307 has an id for anchoring8308 has helpful homepage setup guidance8309 localization8310 has an id for anchoring8311Gitlab::SidekiqMiddleware::AdminMode::Client8312 yields block8313 user is a regular user8314 no admin mode field in payload8315 user is an administrator8316 admin mode disabled8317 no admin mode field in payload8318 admin mode enabled8319 when sidekiq required context not set8320 no admin mode field in payload8321 when user stored in current request8322 has admin mode field in payload8323 when bypassing session8324 has admin mode field in payload8325 admin mode setting disabled8326 yields block8327 no admin mode field in payload8328EnvironmentHelper8329 #render_deployment_status8330 when using a manual deployment8331 renders a span tag8332 when using a deployment from a build8333 renders a link tag8334 for a blocked deployment8335 indicates the status8336 #environments_detail_data_json8337 returns the correct data8338Gitlab::Email::Smime::Signer8339 when using an intermediate CA8340 signs data appropriately with SMIME8341 when not using an intermediate CA8342 signs data appropriately with SMIME8343TestSuiteComparerEntity8344 #as_json8345 when head suite has a newly failed test case which does not exist in base8346 contains correct compared test suite details8347 when head suite has a new error test case which does not exist in base8348 contains correct compared test suite details8349 when head suite still has a failed test case which failed in base8350 contains correct compared test suite details8351 when head suite has a success test case which failed in base8352 contains correct compared test suite details8353 when head suite has suite error8354 contains suite error for head suite8355 when base suite has suite error8356 contains suite error for head suite8357 when base and head suite both have suite errors8358 contains suite error for head suite8359MergeRequests::PushedBranchesService8360 when branches pushed8361 returns only branches which have a open and closed merge request8362 when tags pushed8363 returns empty result without any SQL query performed8364Git::WikiPushService::Change8365 #page8366 the page does not exist8367 the operation is added8368 is expected to have attributes {:page => (be nil)}8369 the operation is deleted8370 is expected to have attributes {:page => (be nil)}8371 the operation is renamed8372 is expected to have attributes {:page => (be nil)}8373 the operation is modified8374 is expected to have attributes {:page => (be nil)}8375 the page can be found8376 is expected to have attributes {:page => #<Double "WikiPage">}8377 is expected to have attributes {:page => #<Double "WikiPage">}8378 is expected to have attributes {:page => #<Double "WikiPage">}8379 the page has been deleted8380 is expected to have attributes {:page => #<Double "WikiPage">}8381 #last_known_slug8382 the page has been created8383 is expected to have attributes {:last_known_slug => "Page_10"}8384 the operation is renamed8385 is expected to have attributes {:last_known_slug => "Page_12"}8386 the operation is modified8387 is expected to have attributes {:last_known_slug => "Page_13"}8388 the operation is deleted8389 is expected to have attributes {:last_known_slug => "Page_14"}8390 #event_action8391 the page is deleted8392 is expected to have attributes {:event_action => :destroyed}8393 the page is added8394 is expected to have attributes {:event_action => :created}8395 the page is renamed8396 is expected to have attributes {:event_action => :updated}8397 the page is modified8398 is expected to have attributes {:event_action => :updated}8399gitlab:gitaly namespace rake task8400 clone8401 no dir given8402 aborts and display a help message8403 no storage path given8404 aborts and display a help message8405 when an underlying Git command fail8406 aborts and display a help message8407 checkout or clone8408 calls checkout_or_clone_version with the right arguments8409 install8410 gmake/make8411 gmake is available8412 calls gmake in the gitaly directory8413 when gmake fails8414 aborts process8415 gmake is not available8416 calls make in the gitaly directory8417 when Rails.env is test8418 calls make in the gitaly directory with BUNDLE_DEPLOYMENT and GEM_HOME variables8419StuckExportJobsWorker8420 with started export status8421 behaves like project export job detection8422 when the job has completed8423 when the export status was already updated8424 does not mark the export as failed8425 when the export status was not updated8426 marks the project as failed8427 when the job is not in queue and db record in queued state8428 marks the project as failed8429 when the job is running in Sidekiq8430 does not mark the project export as failed8431projects/pipelines/show8432 when pipeline has errors8433 shows errors8434 does not render the pipeline tabs8435 when pipeline is valid8436 does not show errors8437 renders the pipeline tabs8438Notes::ResolveService8439 #execute8440 resolves the note8441 sends notifications if all discussions are resolved8442LearnGitlabHelper8443 # order random8444 #learn_gitlab_enabled?8445 onboarding: true, learn_gitlab_available: true, result: true8446 when signed in8447 is expected to eq true8448 onboarding: true, learn_gitlab_available: false, result: false8449 when signed in8450 is expected to eq false8451 onboarding: false, learn_gitlab_available: true, result: false8452 when signed in8453 is expected to eq false8454 when not signed in8455 is expected to eq false8456 #learn_gitlab_data8457DEPRECATION WARNING: The asset "learn_gitlab/pipeline_created.svg" is not present in the asset pipeline.8458Falling back to an asset that may be in the public folder.8459This behavior is deprecated and will be removed.8460To bypass the asset pipeline and preserve this behavior,8461use the `skip_pipeline: true` option.8462 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8463DEPRECATION WARNING: The asset "learn_gitlab/trial_started.svg" is not present in the asset pipeline.8464Falling back to an asset that may be in the public folder.8465This behavior is deprecated and will be removed.8466To bypass the asset pipeline and preserve this behavior,8467use the `skip_pipeline: true` option.8468 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8469DEPRECATION WARNING: The asset "learn_gitlab/required_mr_approvals_enabled.svg" is not present in the asset pipeline.8470Falling back to an asset that may be in the public folder.8471This behavior is deprecated and will be removed.8472To bypass the asset pipeline and preserve this behavior,8473use the `skip_pipeline: true` option.8474 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8475DEPRECATION WARNING: The asset "learn_gitlab/code_owners_enabled.svg" is not present in the asset pipeline.8476Falling back to an asset that may be in the public folder.8477This behavior is deprecated and will be removed.8478To bypass the asset pipeline and preserve this behavior,8479use the `skip_pipeline: true` option.8480 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8481DEPRECATION WARNING: The asset "learn_gitlab/issue_created.svg" is not present in the asset pipeline.8482Falling back to an asset that may be in the public folder.8483This behavior is deprecated and will be removed.8484To bypass the asset pipeline and preserve this behavior,8485use the `skip_pipeline: true` option.8486 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8487DEPRECATION WARNING: The asset "learn_gitlab/git_write.svg" is not present in the asset pipeline.8488Falling back to an asset that may be in the public folder.8489This behavior is deprecated and will be removed.8490To bypass the asset pipeline and preserve this behavior,8491use the `skip_pipeline: true` option.8492 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8493DEPRECATION WARNING: The asset "learn_gitlab/merge_request_created.svg" is not present in the asset pipeline.8494Falling back to an asset that may be in the public folder.8495This behavior is deprecated and will be removed.8496To bypass the asset pipeline and preserve this behavior,8497use the `skip_pipeline: true` option.8498 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8499DEPRECATION WARNING: The asset "learn_gitlab/user_added.svg" is not present in the asset pipeline.8500Falling back to an asset that may be in the public folder.8501This behavior is deprecated and will be removed.8502To bypass the asset pipeline and preserve this behavior,8503use the `skip_pipeline: true` option.8504 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8505DEPRECATION WARNING: The asset "learn_gitlab/security_scan_enabled.svg" is not present in the asset pipeline.8506Falling back to an asset that may be in the public folder.8507This behavior is deprecated and will be removed.8508To bypass the asset pipeline and preserve this behavior,8509use the `skip_pipeline: true` option.8510 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8511 sets correct completion statuses8512 behaves like has all data8513DEPRECATION WARNING: The asset "learn_gitlab/pipeline_created.svg" is not present in the asset pipeline.8514Falling back to an asset that may be in the public folder.8515This behavior is deprecated and will be removed.8516To bypass the asset pipeline and preserve this behavior,8517use the `skip_pipeline: true` option.8518 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8519DEPRECATION WARNING: The asset "learn_gitlab/trial_started.svg" is not present in the asset pipeline.8520Falling back to an asset that may be in the public folder.8521This behavior is deprecated and will be removed.8522To bypass the asset pipeline and preserve this behavior,8523use the `skip_pipeline: true` option.8524 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8525DEPRECATION WARNING: The asset "learn_gitlab/required_mr_approvals_enabled.svg" is not present in the asset pipeline.8526Falling back to an asset that may be in the public folder.8527This behavior is deprecated and will be removed.8528To bypass the asset pipeline and preserve this behavior,8529use the `skip_pipeline: true` option.8530 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8531DEPRECATION WARNING: The asset "learn_gitlab/code_owners_enabled.svg" is not present in the asset pipeline.8532Falling back to an asset that may be in the public folder.8533This behavior is deprecated and will be removed.8534To bypass the asset pipeline and preserve this behavior,8535use the `skip_pipeline: true` option.8536 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8537DEPRECATION WARNING: The asset "learn_gitlab/issue_created.svg" is not present in the asset pipeline.8538Falling back to an asset that may be in the public folder.8539This behavior is deprecated and will be removed.8540To bypass the asset pipeline and preserve this behavior,8541use the `skip_pipeline: true` option.8542 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8543DEPRECATION WARNING: The asset "learn_gitlab/git_write.svg" is not present in the asset pipeline.8544Falling back to an asset that may be in the public folder.8545This behavior is deprecated and will be removed.8546To bypass the asset pipeline and preserve this behavior,8547use the `skip_pipeline: true` option.8548 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8549DEPRECATION WARNING: The asset "learn_gitlab/merge_request_created.svg" is not present in the asset pipeline.8550Falling back to an asset that may be in the public folder.8551This behavior is deprecated and will be removed.8552To bypass the asset pipeline and preserve this behavior,8553use the `skip_pipeline: true` option.8554 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8555DEPRECATION WARNING: The asset "learn_gitlab/user_added.svg" is not present in the asset pipeline.8556Falling back to an asset that may be in the public folder.8557This behavior is deprecated and will be removed.8558To bypass the asset pipeline and preserve this behavior,8559use the `skip_pipeline: true` option.8560 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8561DEPRECATION WARNING: The asset "learn_gitlab/security_scan_enabled.svg" is not present in the asset pipeline.8562Falling back to an asset that may be in the public folder.8563This behavior is deprecated and will be removed.8564To bypass the asset pipeline and preserve this behavior,8565use the `skip_pipeline: true` option.8566 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8567 has all actions8568DEPRECATION WARNING: The asset "learn_gitlab/pipeline_created.svg" is not present in the asset pipeline.8569Falling back to an asset that may be in the public folder.8570This behavior is deprecated and will be removed.8571To bypass the asset pipeline and preserve this behavior,8572use the `skip_pipeline: true` option.8573 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8574DEPRECATION WARNING: The asset "learn_gitlab/trial_started.svg" is not present in the asset pipeline.8575Falling back to an asset that may be in the public folder.8576This behavior is deprecated and will be removed.8577To bypass the asset pipeline and preserve this behavior,8578use the `skip_pipeline: true` option.8579 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8580DEPRECATION WARNING: The asset "learn_gitlab/required_mr_approvals_enabled.svg" is not present in the asset pipeline.8581Falling back to an asset that may be in the public folder.8582This behavior is deprecated and will be removed.8583To bypass the asset pipeline and preserve this behavior,8584use the `skip_pipeline: true` option.8585 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8586DEPRECATION WARNING: The asset "learn_gitlab/code_owners_enabled.svg" is not present in the asset pipeline.8587Falling back to an asset that may be in the public folder.8588This behavior is deprecated and will be removed.8589To bypass the asset pipeline and preserve this behavior,8590use the `skip_pipeline: true` option.8591 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8592DEPRECATION WARNING: The asset "learn_gitlab/issue_created.svg" is not present in the asset pipeline.8593Falling back to an asset that may be in the public folder.8594This behavior is deprecated and will be removed.8595To bypass the asset pipeline and preserve this behavior,8596use the `skip_pipeline: true` option.8597 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8598DEPRECATION WARNING: The asset "learn_gitlab/git_write.svg" is not present in the asset pipeline.8599Falling back to an asset that may be in the public folder.8600This behavior is deprecated and will be removed.8601To bypass the asset pipeline and preserve this behavior,8602use the `skip_pipeline: true` option.8603 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8604DEPRECATION WARNING: The asset "learn_gitlab/merge_request_created.svg" is not present in the asset pipeline.8605Falling back to an asset that may be in the public folder.8606This behavior is deprecated and will be removed.8607To bypass the asset pipeline and preserve this behavior,8608use the `skip_pipeline: true` option.8609 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8610DEPRECATION WARNING: The asset "learn_gitlab/user_added.svg" is not present in the asset pipeline.8611Falling back to an asset that may be in the public folder.8612This behavior is deprecated and will be removed.8613To bypass the asset pipeline and preserve this behavior,8614use the `skip_pipeline: true` option.8615 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8616DEPRECATION WARNING: The asset "learn_gitlab/security_scan_enabled.svg" is not present in the asset pipeline.8617Falling back to an asset that may be in the public folder.8618This behavior is deprecated and will be removed.8619To bypass the asset pipeline and preserve this behavior,8620use the `skip_pipeline: true` option.8621 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8622 has all section data8623DEPRECATION WARNING: The asset "learn_gitlab/pipeline_created.svg" is not present in the asset pipeline.8624Falling back to an asset that may be in the public folder.8625This behavior is deprecated and will be removed.8626To bypass the asset pipeline and preserve this behavior,8627use the `skip_pipeline: true` option.8628 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8629DEPRECATION WARNING: The asset "learn_gitlab/trial_started.svg" is not present in the asset pipeline.8630Falling back to an asset that may be in the public folder.8631This behavior is deprecated and will be removed.8632To bypass the asset pipeline and preserve this behavior,8633use the `skip_pipeline: true` option.8634 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8635DEPRECATION WARNING: The asset "learn_gitlab/required_mr_approvals_enabled.svg" is not present in the asset pipeline.8636Falling back to an asset that may be in the public folder.8637This behavior is deprecated and will be removed.8638To bypass the asset pipeline and preserve this behavior,8639use the `skip_pipeline: true` option.8640 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8641DEPRECATION WARNING: The asset "learn_gitlab/code_owners_enabled.svg" is not present in the asset pipeline.8642Falling back to an asset that may be in the public folder.8643This behavior is deprecated and will be removed.8644To bypass the asset pipeline and preserve this behavior,8645use the `skip_pipeline: true` option.8646 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8647DEPRECATION WARNING: The asset "learn_gitlab/issue_created.svg" is not present in the asset pipeline.8648Falling back to an asset that may be in the public folder.8649This behavior is deprecated and will be removed.8650To bypass the asset pipeline and preserve this behavior,8651use the `skip_pipeline: true` option.8652 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8653DEPRECATION WARNING: The asset "learn_gitlab/git_write.svg" is not present in the asset pipeline.8654Falling back to an asset that may be in the public folder.8655This behavior is deprecated and will be removed.8656To bypass the asset pipeline and preserve this behavior,8657use the `skip_pipeline: true` option.8658 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8659DEPRECATION WARNING: The asset "learn_gitlab/merge_request_created.svg" is not present in the asset pipeline.8660Falling back to an asset that may be in the public folder.8661This behavior is deprecated and will be removed.8662To bypass the asset pipeline and preserve this behavior,8663use the `skip_pipeline: true` option.8664 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8665DEPRECATION WARNING: The asset "learn_gitlab/user_added.svg" is not present in the asset pipeline.8666Falling back to an asset that may be in the public folder.8667This behavior is deprecated and will be removed.8668To bypass the asset pipeline and preserve this behavior,8669use the `skip_pipeline: true` option.8670 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8671DEPRECATION WARNING: The asset "learn_gitlab/security_scan_enabled.svg" is not present in the asset pipeline.8672Falling back to an asset that may be in the public folder.8673This behavior is deprecated and will be removed.8674To bypass the asset pipeline and preserve this behavior,8675use the `skip_pipeline: true` option.8676 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8677 has all project data8678 security_actions_continuous_onboarding experiment8679 when control8680DEPRECATION WARNING: The asset "learn_gitlab/pipeline_created.svg" is not present in the asset pipeline.8681Falling back to an asset that may be in the public folder.8682This behavior is deprecated and will be removed.8683To bypass the asset pipeline and preserve this behavior,8684use the `skip_pipeline: true` option.8685 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8686DEPRECATION WARNING: The asset "learn_gitlab/trial_started.svg" is not present in the asset pipeline.8687Falling back to an asset that may be in the public folder.8688This behavior is deprecated and will be removed.8689To bypass the asset pipeline and preserve this behavior,8690use the `skip_pipeline: true` option.8691 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8692DEPRECATION WARNING: The asset "learn_gitlab/required_mr_approvals_enabled.svg" is not present in the asset pipeline.8693Falling back to an asset that may be in the public folder.8694This behavior is deprecated and will be removed.8695To bypass the asset pipeline and preserve this behavior,8696use the `skip_pipeline: true` option.8697 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8698DEPRECATION WARNING: The asset "learn_gitlab/code_owners_enabled.svg" is not present in the asset pipeline.8699Falling back to an asset that may be in the public folder.8700This behavior is deprecated and will be removed.8701To bypass the asset pipeline and preserve this behavior,8702use the `skip_pipeline: true` option.8703 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8704DEPRECATION WARNING: The asset "learn_gitlab/issue_created.svg" is not present in the asset pipeline.8705Falling back to an asset that may be in the public folder.8706This behavior is deprecated and will be removed.8707To bypass the asset pipeline and preserve this behavior,8708use the `skip_pipeline: true` option.8709 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8710DEPRECATION WARNING: The asset "learn_gitlab/git_write.svg" is not present in the asset pipeline.8711Falling back to an asset that may be in the public folder.8712This behavior is deprecated and will be removed.8713To bypass the asset pipeline and preserve this behavior,8714use the `skip_pipeline: true` option.8715 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8716DEPRECATION WARNING: The asset "learn_gitlab/merge_request_created.svg" is not present in the asset pipeline.8717Falling back to an asset that may be in the public folder.8718This behavior is deprecated and will be removed.8719To bypass the asset pipeline and preserve this behavior,8720use the `skip_pipeline: true` option.8721 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8722DEPRECATION WARNING: The asset "learn_gitlab/user_added.svg" is not present in the asset pipeline.8723Falling back to an asset that may be in the public folder.8724This behavior is deprecated and will be removed.8725To bypass the asset pipeline and preserve this behavior,8726use the `skip_pipeline: true` option.8727 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8728DEPRECATION WARNING: The asset "learn_gitlab/security_scan_enabled.svg" is not present in the asset pipeline.8729Falling back to an asset that may be in the public folder.8730This behavior is deprecated and will be removed.8731To bypass the asset pipeline and preserve this behavior,8732use the `skip_pipeline: true` option.8733 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8734 sets correct paths8735 when candidate8736DEPRECATION WARNING: The asset "learn_gitlab/pipeline_created.svg" is not present in the asset pipeline.8737Falling back to an asset that may be in the public folder.8738This behavior is deprecated and will be removed.8739To bypass the asset pipeline and preserve this behavior,8740use the `skip_pipeline: true` option.8741 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8742DEPRECATION WARNING: The asset "learn_gitlab/trial_started.svg" is not present in the asset pipeline.8743Falling back to an asset that may be in the public folder.8744This behavior is deprecated and will be removed.8745To bypass the asset pipeline and preserve this behavior,8746use the `skip_pipeline: true` option.8747 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8748DEPRECATION WARNING: The asset "learn_gitlab/required_mr_approvals_enabled.svg" is not present in the asset pipeline.8749Falling back to an asset that may be in the public folder.8750This behavior is deprecated and will be removed.8751To bypass the asset pipeline and preserve this behavior,8752use the `skip_pipeline: true` option.8753 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8754DEPRECATION WARNING: The asset "learn_gitlab/code_owners_enabled.svg" is not present in the asset pipeline.8755Falling back to an asset that may be in the public folder.8756This behavior is deprecated and will be removed.8757To bypass the asset pipeline and preserve this behavior,8758use the `skip_pipeline: true` option.8759 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8760DEPRECATION WARNING: The asset "learn_gitlab/issue_created.svg" is not present in the asset pipeline.8761Falling back to an asset that may be in the public folder.8762This behavior is deprecated and will be removed.8763To bypass the asset pipeline and preserve this behavior,8764use the `skip_pipeline: true` option.8765 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8766DEPRECATION WARNING: The asset "learn_gitlab/git_write.svg" is not present in the asset pipeline.8767Falling back to an asset that may be in the public folder.8768This behavior is deprecated and will be removed.8769To bypass the asset pipeline and preserve this behavior,8770use the `skip_pipeline: true` option.8771 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8772DEPRECATION WARNING: The asset "learn_gitlab/merge_request_created.svg" is not present in the asset pipeline.8773Falling back to an asset that may be in the public folder.8774This behavior is deprecated and will be removed.8775To bypass the asset pipeline and preserve this behavior,8776use the `skip_pipeline: true` option.8777 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8778DEPRECATION WARNING: The asset "learn_gitlab/user_added.svg" is not present in the asset pipeline.8779Falling back to an asset that may be in the public folder.8780This behavior is deprecated and will be removed.8781To bypass the asset pipeline and preserve this behavior,8782use the `skip_pipeline: true` option.8783 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8784DEPRECATION WARNING: The asset "learn_gitlab/license_scanning_run.svg" is not present in the asset pipeline.8785Falling back to an asset that may be in the public folder.8786This behavior is deprecated and will be removed.8787To bypass the asset pipeline and preserve this behavior,8788use the `skip_pipeline: true` option.8789 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8790DEPRECATION WARNING: The asset "learn_gitlab/secure_dependency_scanning_run.svg" is not present in the asset pipeline.8791Falling back to an asset that may be in the public folder.8792This behavior is deprecated and will be removed.8793To bypass the asset pipeline and preserve this behavior,8794use the `skip_pipeline: true` option.8795 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8796DEPRECATION WARNING: The asset "learn_gitlab/secure_dast_run.svg" is not present in the asset pipeline.8797Falling back to an asset that may be in the public folder.8798This behavior is deprecated and will be removed.8799To bypass the asset pipeline and preserve this behavior,8800use the `skip_pipeline: true` option.8801 (called from block in onboarding_actions_data at /builds/gitlab-org/gitlab/app/helpers/learn_gitlab_helper.rb:39)8802 sets correct paths8803WorkItems::Widgets::Labels8804 .type8805 is expected to eq :labels8806 #type8807 is expected to eq :labels8808 #labels8809 is expected to eq #<ActiveRecord::Associations::CollectionProxy [#<ProjectLabel id:153 namespace952/project960~153>]>8810 #allowScopedLabels8811 is expected to eq false8812Gitlab::BitbucketImport::WikiFormatter8813 #disk_path8814 appends .wiki to disk path8815 #full_path8816 appends .wiki to project path8817 #import_url8818 returns URL of the wiki repository8819RuboCop::MigrationHelpers8820 # order random8821 #in_migration?8822 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: true8823 is expected to eq true8824 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8825 is expected to eq true8826 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: true8827 is expected to eq true8828 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8829 is expected to eq true8830 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false8831 is expected to eq false8832 #time_enforced?8833 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: false8834 is expected to eq false8835 name: "/gitlab/db/post_migrate/20220210184420_create_fake_table.rb", expected: false8836 is expected to eq false8837 name: "/gitlab/db/post_migrate/20221019184420_add_id_to_reports_table.rb", expected: true8838 is expected to eq true8839 #in_post_deployment_migration?8840 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: false8841 is expected to eq false8842 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8843 is expected to eq true8844 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: false8845 is expected to eq false8846 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8847 is expected to eq true8848 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false8849 is expected to eq false8850 #version8851 is expected to eq 202002101844208852LfsDownloadObject8853 #headers8854 returns specified Hash8855 with nil headers8856 returns a Hash8857 #has_authorization_header?8858 returns false8859 with uppercase form8860 returns true8861 with lowercase form8862 returns true8863 validations8864 is expected to validate that :size looks like a number greater than or equal to 08865 oid attribute8866 must be 64 characters long8867 must contain only hexadecimal characters8868 link attribute8869 only http and https protocols are valid8870 cannot be empty8871 when localhost or local network addresses8872 are allowed8873 is expected to be valid8874 are not allowed8875 is expected to be invalid8876 headers attribute8877 only nil and Hash values are valid8878RuboCop::Cop::Migration::AddConcurrentForeignKey8879 # order random8880 when outside of a migration8881 does not register any offenses8882 when in a migration8883 registers an offense when using add_foreign_key8884 does not register an offense when a `NOT VALID` foreign key is added8885 does not register an offense when `add_foreign_key` is within `with_lock_retries`8886Resolvers::Ci::ProjectPipelineCountsResolver8887 #resolve8888 counts pipelines8889 counts by ref8890 counts by sha8891 counts by source8892Gitlab::GithubImport::Representation::User8893 .from_api_response8894 behaves like a User8895 returns an instance of User8896 the returned User8897 includes the user ID8898 includes the username8899 .from_json_hash8900 behaves like a User8901 returns an instance of User8902 the returned User8903 includes the user ID8904 includes the username8905X509Issuer8906 validation8907 is expected to validate that :subject_key_identifier cannot be empty/falsy8908 is expected to validate that :subject cannot be empty/falsy8909 is expected to validate that :crl_url cannot be empty/falsy8910 .safe_create!8911 creates a new issuer if it was not found8912 assigns the correct attributes when creating8913 validators8914 accepts correct subject_key_identifier8915 rejects invalid subject_key_identifier8916 accepts valid crl_url8917 rejects invalid crl_url8918Resolvers::Clusters::AgentsResolver8919 is expected to have nullable GraphQL type ClusterAgentConnection8920 is expected to include {:extras => (include :lookahead)}8921 #resolve8922 the current user has access to clusters8923 finds all agents8924 the current user does not have access to clusters8925 returns an empty result8926Resolvers::Clusters::AgentsResolver.single8927 is expected to be < Resolvers::Clusters::AgentsResolver8928 .field_options8929 is expected to include {:type => Types::Clusters::AgentType, :null => true, :extras => [:lookahead]}8930 arguments8931 name8932 is expected to be present8933MergeRequests::ResolveTodosService8934 #async_execute8935 performs MergeRequests::ResolveTodosWorker asynchronously8936 #execute8937 marks pending todo as done8938Packages::Composer::ComposerJsonService8939 #execute8940 with an existing file8941 with a valid file8942 returns the parsed json8943 with an invalid file8944 raises an error8945 without the composer.json file8946 raises an error8947MemberRole8948 associations8949 is expected to belong to namespace required: false8950 is expected to have many members8951 validation8952 is expected to validate that :namespace cannot be empty/falsy8953 is expected to validate that :base_access_level cannot be empty/falsy8954 when for namespace8955 when namespace is a subgroup8956 is invalid8957 when namespace is a root group8958 is valid8959 when namespace is not present8960 is invalid with a different error message8961 when namespace is outside hierarchy of member8962 creates a validation error8963Resolvers::DesignManagement::DesignAtVersionResolver8964 #resolve8965 returns the specified design8966 when the user cannot see designs8967 generates ResourceNotAvailable8968 the ID belongs to a design on another issue8969 generates ResourceNotAvailable8970 the current object does not constrain the issue8971 returns the object8972API::Entities::Nuget::Metadatum8973 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :licenseUrl=>"http://sandbox.com/license", :projectUrl=>"http://sandbox.com/project"}8974 metadatum without project_url8975 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :licenseUrl=>"http://sandbox.com/license"}8976 metadatum without license_url8977 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :projectUrl=>"http://sandbox.com/project"}8978 metadatum without icon_url8979 is expected to eq {:licenseUrl=>"http://sandbox.com/license", :projectUrl=>"http://sandbox.com/project"}8980Projects::Ml::ExperimentsHelper8981 # order random8982 #candidate_as_data8983 generates the correct params8984 generates the correct metrics8985 generates the correct info8986 #unique_logged_names8987 when for params8988 is expected to contain exactly "param1", "param2", and "param3"8989 when latest_metrics is passed8990 is expected to contain exactly "metric1", "metric2", and "metric3"8991 #candidates_table_items8992 creates the correct model for the table8993Gitlab::Database::PostgresHll::BatchDistinctCounter8994 unit test for different counting parameters8995 #execute8996 builds hll buckets8997 defaults batch size to 100008998 when a transaction is open8999 raises an error9000 disallowed configurations9001 raises WRONG_CONFIGURATION_ERROR if start is bigger than finish9002 raises WRONG_CONFIGURATION_ERROR if data volume exceeds upper limit9003 raises WRONG_CONFIGURATION_ERROR if batch size is less than min required9004Ci::InitialPipelineProcessWorker9005 #perform9006 is labeled as idempotent9007 performs multiple times sequentially without raising an exception9008 marks the pipeline as pending9009Gitlab::Ci::Artifacts::Logger9010 .log_created9011 logs information about created artifact9012 .log_deleted9013 logs information about deleted artifacts9014Sidebars::Projects::Menus::ShimoMenu9015 #render?9016 without a valid Shimo integration9017 doesn't render the menu9018 with a valid Shimo integration9019 when integration is active9020 renders the menu9021 renders menu link9022 when integration is inactive9023 doesn't render the menu9024Gitlab::ExternalAuthorization::Response9025 #valid?9026 is valid for 200, 401, and 403 responses9027 is invalid for other statuses9028 #reason9029 returns a reason if it was included in the response body9030 returns nil when there was no body9031 #successful?9032 is `true` if the status is 2009033 is `false` if the status is 401 or 4039034Ci::TrackFailedBuildWorker9035 #perform9036 when a build has failed9037 executes track service9038 behaves like an idempotent worker9039 is labeled as idempotent9040 performs multiple times sequentially without raising an exception9041Ci::JobArtifactsFinder9042 #execute9043 with empty params9044 returns all artifacts belonging to the project9045 with sort param9046 sorts the artifacts9047Gitlab::CycleAnalytics::Updater9048 updates authors9049 maps the correct user9050 updates builds9051 maps the correct build9052ErrorTracking::Collector::PayloadValidator9053 #valid?9054 with event fixtures9055 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/python_event.json"9056 behaves like valid payload9057 is expected to be valid9058 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/parsed_event.json"9059 behaves like valid payload9060 is expected to be valid9061 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/browser_event.json"9062 behaves like valid payload9063 is expected to be valid9064 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/parsed_event_nullbytes.json"9065 behaves like valid payload9066 is expected to be valid9067 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/python_event_repl.json"9068 behaves like valid payload9069 is expected to be valid9070 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/go_two_exception_event.json"9071 behaves like valid payload9072 is expected to be valid9073 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/go_parsed_event.json"9074 behaves like valid payload9075 is expected to be valid9076 when empty9077 behaves like invalid payload9078 is expected not to be valid9079 when invalid9080 behaves like invalid payload9081 is expected not to be valid9082Gitlab::Auth::Otp::Strategies::FortiAuthenticator::ManualOtp9083 successful validation9084 returns success9085 unsuccessful validation9086 returns error9087 unexpected error9088 returns error9089Ci::CreatePipelineService9090 !reference tags9091 with valid config9092 creates a pipeline9093 with invalid config9094 creates a pipeline without builds9095layouts/header/_gitlab_version9096 when show_version_check? is true9097 renders the version check badge9098 renders the container as a link9099 renders the container with correct data-tracking attributes9100Projects::UpdateRepositoryStorageWorker9101 behaves like an update storage move worker9102 #perform9103 without repository storage move9104 calls the update repository storage service9105 with repository storage move9106 calls the update repository storage service9107Gitlab::FeatureCategories9108 #valid?9109 returns true if category is known9110 #get!9111 is expected to eq "foo"9112 when category does not exist9113 is expected to raise RuntimeError9114 when on production9115 is expected to eq "unknown"9116 #from_request9117 returns category from request when valid, otherwise returns nil9118 when request is not verified9119 returns nil9120 #categories9121 returns a set of the given categories9122 .load_from_yaml9123 creates FeatureCategories from feature_categories.yml file9124 .default9125 returns a memoization of load_from_yaml9126ErrorTracking::StacktraceBuilder9127 #stacktrace9128 with full error context9129 generates a correct stacktrace in expected format9130 when error context is missing9131 generates a stacktrace without context9132 when exception payload is a list9133 extracts a stracktrace9134 with empty payload9135 is expected to eq []9136 without exception field9137 is expected to eq []9138 without exception.values field9139 is expected to eq []9140 without any exception.values[].stacktrace fields9141 is expected to eq []9142 without any exception.values[].stacktrace.frame fields9143 is expected to eq []9144Gitlab::DataBuilder::FeatureFlag9145 .build9146 is expected to be a kind of Hash9147 is expected to eq "feature_flag"9148 contains the correct object attributes9149Resolvers::DesignManagement::VersionResolver9150 the current user is not authorized9151 generates an error on resolution9152 the current user is authorized9153 the id parameter is provided9154 returns the specified version9155Gitlab::Utils::Gzip9156 # order random9157 #gzip_decompress9158 decompresses encoded data9159 returns compressed data when encountering Zlib::GzipFile::Error9160 returns unmodified data when it is determined to be uncompressed9161 #gzip_compress9162 compresses data passed to it9163 returns uncompressed data when encountering Zlib::GzipFile::Error9164Types::ReleaseAssetLinkInputType9165 is expected to eq "ReleaseAssetLinkInput"9166 has the correct arguments9167 sets the type of link_type argument to ReleaseAssetLinkTypeEnum9168Gitlab::Ci::Parsers::Accessibility::Pa11y9169 #parse!9170 when data is pa11y style JSON9171 when there are no URLs provided9172 returns an accessibility report9173 when there are no errors9174 returns an accessibility report9175 when there are errors9176 returns an accessibility report9177 when data is not a valid JSON string9178 sets error_message9179AuthorizedProjectUpdate::UserRefreshFromReplicaWorker9180 is labeled as low urgency9181 behaves like an idempotent worker9182 is labeled as idempotent9183 performs multiple times sequentially without raising an exception9184 #perform9185 checks if a project_authorization refresh is needed for the user9186 when there are project authorization records due for either removal or addition for a specific user9187 enqueues a new project authorization update job for the user9188 when there are no additions or removals to be made to project authorizations for a specific user9189 does not enqueue a new project authorization update job for the user9190 with load balancing enabled9191 reads from the replica database9192Types::NamespaceType9193 is expected to eq "Namespace"9194 has the expected fields9195 is expected to require graphql authorizations :read_namespace9196Types::CiConfiguration::Sast::EntityType9197 is expected to eq "SastCiConfigurationEntity"9198 is expected to have graphql fields :field, :label, :description, :type, :options, :default_value, :value, and :size9199Discussions::UnresolveService9200 #execute9201 unresolves the discussion9202 counts the unresolve event9203BitbucketServer::Representation::Repo9204 #project_key9205 is expected to eq "TEST"9206 #project_name9207 is expected to eq "test"9208 #slug9209 is expected to eq "rouge"9210 #browse_url9211 is expected to eq "http://localhost:7990/projects/TEST/repos/rouge/browse"9212 #clone_url9213 is expected to eq "http://root@localhost:7990/scm/test/rouge.git"9214 #description9215 is expected to eq "Rogue Repo"9216 #full_name9217 is expected to eq "test/rouge"9218Packages::Debian::CreatePackageFileService9219 #execute9220 with temp file9221 behaves like a valid deb9222 creates a new package file9223 with a .changes file9224 behaves like a valid changes9225 creates a new package file9226 when current_user is missing9227 raises an error9228 with remote file9229 behaves like a valid deb9230 creates a new package file9231 when package is missing9232 raises an error9233 when params is empty9234 raises an error9235 when file is missing9236 raises an error9237 when FIPS mode enabled9238 raises an error9239Resolvers::BranchCommitResolver9240 #resolve9241 resolves commit9242 sets project container9243 is N+1 safe9244 when branch does not exist9245 returns nil9246RedirectRoute9247 relationships9248 is expected to belong to source required: false9249 validations9250 is expected to validate that :source cannot be empty/falsy9251 is expected to validate that :path cannot be empty/falsy9252 is expected to validate that :path is case-insensitively unique9253 .matching_path_and_descendants9254 when the redirect route matches with same casing9255 returns correct routes9256 when the redirect route matches with different casing9257 returns correct routes9258MergeRequestSidebarExtrasEntity9259 #assignees9260 contains assignees attributes9261 #reviewers9262 contains reviewers attributes9263Types::CommitSignatures::GpgSignatureType9264 # order random9265 contains attributes related to GPG signatures9266 is expected to eq "GpgSignature"9267 is expected to include Types::CommitSignatureInterface9268 is expected to require graphql authorizations :download_code9269Gitlab::FogbugzImport::ProjectCreator9270 creates project with private visibility level9271 creates project with provided name and path9272Gitlab::Kubernetes::Kubeconfig::Template9273 #valid?9274 is expected to be falsey9275 with configuration added9276 is expected to be truthy9277 #to_h9278 is expected to eq {:apiVersion=>"v1", :clusters=>[], :contexts=>[], :kind=>"Config", :users=>[]}9279 #to_yaml9280 is expected to eq "---\napiVersion: v1\nkind: Config\nclusters: []\nusers: []\ncontexts: []\n"9281 #merge_yaml9282 appends to the configuration and overwrites the current context9283 adding entries9284 #add_cluster9285 is expected to include {:clusters => [{:name => "name", :other => "other"}]}9286 #add_user9287 is expected to include {:users => [{:name => "name", :other => "other"}]}9288 #add_context9289 is expected to include {:contexts => [{:name => "name", :other => "other"}]}9290Mutations::Boards::Update9291 is expected to require graphql authorizations :admin_issue_board9292 #resolve9293 when the user cannot admin the board9294 raises an error9295 when user can update board9296 updates board with correct values9297Gitlab::Database::Partitioning::ReplaceTable#perform9298 replaces the current table, archiving the old9299 transfers the primary key sequence to the replacement table9300 renames the primary key constraints to match the new table names9301 when the table has partitions9302 renames the partitions to match the new table name9303 renames the primary key constraints to match the new partition names9304BulkImports::Groups::Pipelines::ProjectEntitiesPipeline9305 #run9306 creates project entity9307 pipeline parts9308 is expected to includes the BulkImports::Pipeline module9309 is expected to includes the BulkImports::Pipeline::Runner module9310 has extractors9311 has transformers9312Types::Projects::ServiceType9313 is expected to have graphql fields :type, :service_type, and :active9314 .resolve_type9315 resolves the corresponding type for objects9316Gitlab::NullRequestStore9317 #store9318 returns an empty hash9319 #active?9320 returns falsey9321 #read9322 returns nil9323 #[]9324 returns nil9325 #write9326 returns the same value9327 #[]=9328 returns the same value9329 #exist?9330 returns falsey9331 #fetch9332 returns the block result9333 #delete9334 when a block is given9335 yields the key to the block9336 returns the block result9337 when a block is not given9338 returns nil9339Users::ProjectCallout9340 behaves like having unique enum values9341 has unique values in "feature_name"9342 relationships9343 is expected to belong to project required: false9344 validations9345 is expected to validate that :project cannot be empty/falsy9346 is expected to validate that :feature_name cannot be empty/falsy9347 is expected to validate that :feature_name is unique within the scope of :user_id and :project_id9348CommitSignature9349 # order random9350 #signed_by_user9351 when class does not define the signed_by_user method9352 raises a NoMethodError with custom message9353Packages::Nuget::ServiceIndexPresenter9354 #version9355 for a group9356 is expected to eq "3.0.0"9357 for a project9358 is expected to eq "3.0.0"9359 #resources9360 for a group9361 behaves like returning valid resources9362 has valid resources9363 does not return the publish resource9364 for a project9365 behaves like returning valid resources9366 has valid resources9367 does return the publish resource9368GoogleApi::Auth9369 #authorize_url9370 returns authorize_url9371 #get_token9372 returns token and expires_at9373 expects the client to receive default options9374FeatureFlagSummaryEntity9375 has summary information9376PersonalAccessTokens::LastUsedService9377 #execute9378 when the personal access token has not been used recently9379 updates the last_used_at timestamp9380 does not run on read-only GitLab instances9381 when the personal access token has been used recently9382 does not update the last_used_at timestamp9383 when the last_used_at timestamp is nil9384 updates the last_used_at timestamp9385 when not a personal access token9386 does not execute9387Types::BranchRules::BranchProtectionType9388 # order random9389 is expected to require graphql authorizations :read_protected_branch9390 is expected to have graphql fields :merge_access_levels, :push_access_levels, and :allow_force_push9391Packages::Rubygems::ExtractionWorker9392 #perform9393 processes the gem9394 handles a processing failure9395 handles processing an unaccounted for error9396 returns when there is no package file9397 returns without action9398ExportCsvWorker9399 delegates call to IssuableExportCsvWorker9400Users::DismissGroupCalloutService9401 #execute9402 sets the group_id9403 behaves like dismissing user callout9404 creates a new user callout9405 returns a user callout9406 sets the dismissed_at attribute to current time9407 updates an existing callout dismissed_at time9408 does not update an invalid record with dismissed_at time9409Integrations::JiraTrackerData9410 behaves like Integrations::BaseDataFields9411 associations9412 is expected to belong to integration required: false9413 #activated?9414 with integration9415 with value set to false9416 is expected to eq false9417 with value set to true9418 is expected to eq true9419 without integration9420 is expected to eq false9421 #to_database_hash9422 does not include certain attributes9423 deployment_type9424 is expected to define :deployment_type as an enum backed by an integer with values ‹[:unknown, :server, :cloud]›, prefix: :deployment9425 encrypted attributes9426 is expected to contain exactly :api_url, :password, :url, and :username9427Gitlab::Git::RawDiffChange9428 bad input9429 does not set most of the attrs9430 adding a file9431 initialize the proper attrs9432 renaming a file9433 initialize the proper attrs9434 modifying a file9435 initialize the proper attrs9436 deleting a file9437 initialize the proper attrs9438API::Entities::ProjectImportFailedRelation9439 #as_json9440 includes basic fields9441Ci::DownloadableArtifactSerializer9442 #as_json9443 matches schema9444BulkImports::Pipeline::ExtractedData9445 #has_next_page?9446 when next page is present9447 returns true9448 when next page is not present9449 returns false9450 #next_page9451 returns next page cursor information9452 #each9453 when block is present9454 yields each data item9455 when block is not present9456 returns enumerator9457SafeUrl9458 #safe_url9459 is expected to eq "http://example.com"9460 when URL contains credentials9461 masks username and password9462 when username is allowed9463 masks the password, but not the username9464 when URL is empty9465 is expected to be nil9466 when URI raises an error9467 is expected to be nil9468Gitlab::Kubernetes::ClusterRoleBinding9469 #generate9470 builds a Kubeclient Resource9471UpdateMergeRequestsWorker9472 #perform9473 executes MergeRequests::RefreshService with expected values9474 when push options are passed as Hash9475 executes MergeRequests::RefreshService with expected values9476Types::BranchType9477 is expected to eq "Branch"9478 is expected to have graphql fields :name and :commit9479Gitlab::Database::PostgresHll::Buckets9480 #estimated_distinct_count9481 provides estimated cardinality9482 #merge_hash!9483 merges two hashes together into union of two sets9484 #to_json9485 serialize HyperLogLog buckets as hash9486RuboCop::Cop::Migration::BackgroundMigrations9487 # order random9488 when queue_background_migration_jobs_by_range_at_intervals is used9489 registers an offense9490 when migrate_in is used9491 registers an offense9492 when requeue_background_migration_jobs_by_range_at_intervals is used9493 registers an offense9494Users::CreateStatisticsWorker9495 #perform9496 when successful9497 create an users statistics entry9498 when unsuccessful9499 logs an error9500Gitlab::Graphql::Pagination::Connections9501-- create_table(:_test_testing_pagination_nodes, {:force=>true})9502 -> 0.0037s9503 OffsetPaginatedRelation9504 maps to Gitlab::Graphql::Pagination::OffsetActiveRecordRelationConnection9505 ActiveRecord::Relation9506 maps to Gitlab::Graphql::Pagination::Keyset::Connection9507 ExternallyPaginatedArray9508 maps to Gitlab::Graphql::Pagination::ExternallyPaginatedArrayConnection9509 Array9510 maps to Gitlab::Graphql::Pagination::ArrayConnection9511-- drop_table(:_test_testing_pagination_nodes, {:force=>true})9512 -> 0.0016s9513ProtectedBranch::MergeAccessLevel9514 is expected to validate that :access_level is either ‹40›, ‹30›, or ‹0›9515API::Entities::ApplicationSetting9516 housekeeping_bitmaps_enabled usage is deprecated and always enabled9517 when housekeeping_bitmaps_enabled db column is false9518 returns true9519 when housekeeping_bitmaps_enabled db column is true9520 returns true9521Gitlab::Ci::Ansi2json::Parser9522 bold?9523 returns true if style mask matches bold format9524 returns false if style mask does not match bold format9525 matching_formats9526 returns matching formats given a style mask9527 returns an empty array if no formats match the style mask9528Gitlab::Graphql::Timeout9529 inherits from9530 sends the error to our GraphQL logger9531Gitlab::PhabricatorImport::Representation::User9532 #phabricator_id9533 returns the phabricator id9534 #username9535 returns the username9536Gitlab::GithubImport::Stage::FinishImportWorker9537 #perform9538 marks the import as finished and reports import statistics9539Gitlab::Memory::Watchdog::Monitor::RssMemoryLimit9540 # order random9541 #initialize9542 sets the max rss limit gauge9543 #call9544 when process exceeds threshold9545 returns if threshold is violated and payload9546 when process does not exceed threshold9547 returns if threshold is violated and payload9548RuboCop::Cop::SidekiqLoadBalancing::WorkerDataConsistency9549 # order random9550 adds no offense when worker is not an ApplicationWorker9551 adds an offense when not defining data_consistency9552 adds no offense when defining data_consistency9553Gitlab::Ci::Build::Cache9554 .initialize9555 when the cache is an array9556 instantiates an array of cache seeds9557 when the cache is a hash9558 instantiates a cache seed9559 #cache_attributes9560 when there are no caches9561 returns an empty hash9562 when there are caches9563 returns the structured attributes for the caches9564BlobViewer::ComposerJson9565 #package_name9566 returns the package name9567Gitlab::Asciidoc::Html5Converter9568 convert AsciiDoc to HTML59569 appends user-content- prefix on ref (anchor)9570API::Validations::Validators::EmailOrEmailList9571 with valid email addresses9572 does not raise a validation error9573 including any invalid email address9574 raises a validation error9575Gitlab::ImportExport::LegacyRelationTreeSaver9576 #serialize9577 uses FastHashSerializer9578JiraConnect::GroupEntity9579 contains all necessary elements of the group9580Types::Ci::Config::ConfigType9581 is expected to eq "CiConfig"9582 exposes the expected fields9583Types::CustomerRelations::ContactStateCountsType9584 is expected to eq "ContactStateCounts"9585 is expected to have graphql fields "all", "active", and "inactive"9586 is expected to require graphql authorizations :read_crm_contact9587Gitlab::GithubImport::Stage::ImportPullRequestsMergedByWorker9588 #import9589 imports all the pull requests9590Banzai::Filter::JiraImport::AdfToCommonmarkFilter9591 renders a complex document9592 renders original source when it is invalid JSON9593 renders original source when missing document node9594Gitlab::Middleware::QueryAnalyzer9595 the PreventCrossDatabaseModification9596 #call9597 when there is a cross modification9598 detects cross modifications and tracks exception9599 when the detect_cross_database_modification is disabled9600 does not detect cross modifications9601 when there is no cross modification9602 does not log anything9603Prometheus::CleanupMultiprocDirService9604 #execute9605 when `multiprocess_files_dir` is defined9606 removes old metrics9607 when `multiprocess_files_dir` is not defined9608 does not remove any files9609Gitlab::GitalyClient::Util9610 .repository9611 creates a Gitaly::Repository with the given data9612Types::Ci::RunnerWebUrlEdge9613 is expected to eq "RunnerWebUrlEdge"9614 contains URL attributes9615TodosDestroyer::DestroyedDesignsWorker9616 calls the Todos::Destroy::DesignService with design_ids parameter9617Gitlab::Graphql::QueryAnalyzers::AST::LoggerAnalyzer9618 #result9619 returns the complexity, depth, duration, etc9620RuboCop::Cop::Gitlab::Intersect9621 # order random9622 flags the use of Gitlab::SQL::Intersect.new9623Types::PermissionTypes::Ci::Job9624 has expected permission fields9625RuboCop::Cop::Gemspec::AvoidExecutingGit9626 # order random9627 flags violation for executing git9628 does not flag violation for using a glob9629Types::PermissionTypes::Project9630 is expected to have graphql field :read_environment9631Routing::PackagesHelper9632 # order random9633 #package_path9634 creates package's path9635Types::WorkItems::Widgets::DescriptionType9636 exposes the expected fields9637Knapsack report was generated. Preview:9638{9639 "spec/policies/project_policy_spec.rb": 108.41092463400128,9640 "spec/services/quick_actions/interpret_service_spec.rb": 119.0038691310001,9641 "spec/services/merge_requests/create_from_issue_service_spec.rb": 114.43190640800094,9642 "spec/workers/packages/debian/generate_distribution_worker_spec.rb": 91.52486167799907,9643 "spec/models/concerns/deployment_platform_spec.rb": 70.42360544300027,9644 "spec/models/clusters/platforms/kubernetes_spec.rb": 70.66280414299945,9645 "spec/services/ci/job_artifacts/destroy_all_expired_service_spec.rb": 36.33399281600032,9646 "spec/lib/gitlab/asciidoc_spec.rb": 51.46549066899934,9647 "spec/models/resource_milestone_event_spec.rb": 33.71230984399881,9648 "spec/services/merge_requests/close_service_spec.rb": 36.35609332599961,9649 "spec/lib/banzai/reference_parser/snippet_parser_spec.rb": 32.51619579600083,9650 "spec/services/merge_requests/reopen_service_spec.rb": 31.881438774000344,9651 "spec/workers/packages/maven/metadata/sync_worker_spec.rb": 43.84701061799933,9652 "spec/finders/ci/runner_jobs_finder_spec.rb": 35.531725676999486,9653 "spec/services/search/global_service_spec.rb": 31.82590684099887,9654 "spec/services/system_note_service_spec.rb": 10.856191000000763,9655 "spec/models/notification_recipient_spec.rb": 19.55532307500107,9656 "spec/lib/gitlab/json_cache_spec.rb": 2.8743077680010174,9657 "spec/tasks/gitlab/db/validate_config_rake_spec.rb": 11.151054863001264,9658 "spec/lib/gitlab/hashed_storage/migrator_spec.rb": 16.0390777349985,9659 "spec/models/namespace_setting_spec.rb": 7.369805686999825,9660 "spec/support_specs/helpers/stub_feature_flags_spec.rb": 3.184774429000754,9661 "spec/lib/gitlab/import_export/group/legacy_tree_restorer_spec.rb": 14.780086848999417,9662 "spec/lib/gitlab/database/with_lock_retries_spec.rb": 15.45709272699969,9663 "spec/services/projects/update_pages_service_spec.rb": 10.984232475000681,9664 "spec/lib/gitlab/ci/runner_upgrade_check_spec.rb": 10.039165788999526,9665 "spec/services/namespaces/in_product_marketing_emails_service_spec.rb": 9.754879705000349,9666 "spec/services/groups/group_links/create_service_spec.rb": 14.254308814000979,9667 "spec/lib/gitlab/auth/request_authenticator_spec.rb": 3.2186661750001804,9668 "spec/services/labels/available_labels_service_spec.rb": 15.208715906999714,9669 "spec/serializers/note_entity_spec.rb": 9.176155085999198,9670 "spec/uploaders/pages/deployment_uploader_spec.rb": 9.08261447699988,9671 "spec/lib/gitlab/auth/ldap/person_spec.rb": 2.6918802700001834,9672 "spec/services/issuable/common_system_notes_service_spec.rb": 9.17448487600086,9673 "spec/models/clusters/providers/gcp_spec.rb": 3.73675002300115,9674 "spec/services/import/github_service_spec.rb": 7.3851674950001325,9675 "spec/lib/gitlab/data_builder/pipeline_spec.rb": 7.953867825000998,9676 "spec/lib/gitlab/redis/sessions_spec.rb": 2.300766588001352,9677 "spec/lib/gitlab/ci/config/entry/variables_spec.rb": 2.044525399998747,9678 "spec/services/deployments/archive_in_project_service_spec.rb": 9.889147797999613,9679 "spec/policies/user_policy_spec.rb": 3.343392410000888,9680 "spec/models/issue/metrics_spec.rb": 8.309376451999924,9681 "spec/lib/gitlab/redis/sidekiq_status_spec.rb": 2.3902923069999815,9682 "spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb": 5.278935513000761,9683 "spec/graphql/resolvers/design_management/designs_resolver_spec.rb": 5.73567138800172,9684 "spec/models/work_item_spec.rb": 4.15250024100169,9685 "spec/services/bulk_imports/relation_export_service_spec.rb": 6.072683186001086,9686 "spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb": 5.956708090001484,9687 "spec/models/clusters/providers/aws_spec.rb": 3.5568245649992605,9688 "spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb": 5.65266192800118,9689 "spec/services/repositories/housekeeping_service_spec.rb": 3.4036459539984207,9690 "spec/initializers/secret_token_spec.rb": 3.375398276000851,9691 "spec/lib/gitlab/github_import/representation/diff_note_spec.rb": 1.691331893000097,9692 "spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb": 2.3671241800002463,9693 "spec/lib/gitlab/file_hook_spec.rb": 4.048636093999448,9694 "spec/policies/deploy_keys_project_policy_spec.rb": 4.4457729649984685,9695 "spec/lib/gitlab/robots_txt/parser_spec.rb": 1.7607020449995616,9696 "spec/services/ci/generate_coverage_reports_service_spec.rb": 4.357777725999767,9697 "spec/lib/gitlab/quick_actions/command_definition_spec.rb": 1.2970950809994974,9698 "spec/models/ci/pipeline_variable_spec.rb": 3.672085070000321,9699 "spec/finders/packages/conan/package_file_finder_spec.rb": 3.4858401929996035,9700 "spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb": 1.256211906000317,9701 "spec/services/web_hooks/log_execution_service_spec.rb": 1.9552900210001098,9702 "spec/services/terraform/remote_state_handler_spec.rb": 1.9827587269992364,9703 "spec/components/pajamas/badge_component_spec.rb": 1.4559170020002057,9704 "spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb": 1.3496644739989279,9705 "spec/finders/packages/go/version_finder_spec.rb": 2.5663854659997014,9706 "spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb": 4.186768556999596,9707 "spec/services/ci/run_scheduled_build_service_spec.rb": 4.448907744999815,9708 "spec/workers/namespaces/process_sync_events_worker_spec.rb": 4.150304460999905,9709 "spec/workers/background_migration/ci_database_worker_spec.rb": 1.285698293000678,9710 "spec/lib/gitlab/ci/status/build/play_spec.rb": 3.7740732170004776,9711 "spec/lib/gitlab/rack_attack/user_allowlist_spec.rb": 0.9978365879997,9712 "spec/services/merge_requests/mergeability/run_checks_service_spec.rb": 4.285569204999774,9713 "spec/lib/gitlab/middleware/compressed_json_spec.rb": 1.6771956440006761,9714 "spec/lib/gitlab/git_spec.rb": 1.1192894630003138,9715 "spec/lib/gitlab/web_ide/config/entry/global_spec.rb": 1.386851809998916,9716 "spec/workers/container_expiration_policy_worker_spec.rb": 3.429039950000515,9717 "spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb": 1.3211134280008991,9718 "spec/models/integrations/shimo_spec.rb": 2.553723036999145,9719 "spec/models/integrations/mock_ci_spec.rb": 1.3886319899993396,9720 "spec/services/feature_flags/create_service_spec.rb": 2.1686333649995504,9721 "spec/services/discussions/capture_diff_note_position_service_spec.rb": 5.048470312000063,9722 "spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb": 1.4441284629992879,9723 "spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb": 0.9507269730002008,9724 "spec/rubocop/cop_todo_spec.rb": 0.9476923330003046,9725 "spec/services/wiki_pages/event_create_service_spec.rb": 1.3673324229985155,9726 "spec/views/projects/environments/terminal.html.haml_spec.rb": 3.0768806530013535,9727 "spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb": 1.093521877000967,9728 "spec/models/oauth_access_token_spec.rb": 3.633039684000323,9729 "spec/serializers/review_app_setup_entity_spec.rb": 2.6876949109991983,9730 "spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb": 1.5240740930003085,9731 "spec/lib/gitlab/kubernetes/helm/v2/reset_command_spec.rb": 1.0006457580002461,9732 "spec/workers/container_registry/delete_container_repository_worker_spec.rb": 2.665244042998893,9733 "spec/workers/concerns/project_import_options_spec.rb": 3.0541605060006987,9734 "spec/services/system_notes/incident_service_spec.rb": 1.4874010479998105,9735 "spec/services/note_summary_spec.rb": 1.2747144929999195,9736 "spec/lib/gitlab/serverless/service_spec.rb": 3.6775547889992595,9737 "spec/views/profiles/preferences/show.html.haml_spec.rb": 1.1320491110000148,9738 "spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb": 1.031890544001726,9739 "spec/helpers/environment_helper_spec.rb": 4.876013862000036,9740 "spec/lib/gitlab/email/smime/signer_spec.rb": 3.6049248189992795,9741 "spec/serializers/test_suite_comparer_entity_spec.rb": 0.5384701029997814,9742 "spec/services/merge_requests/pushed_branches_service_spec.rb": 3.03201696799988,9743 "spec/services/git/wiki_push_service/change_spec.rb": 1.0356166329984262,9744 "spec/tasks/gitlab/gitaly_rake_spec.rb": 2.827695734000372,9745 "spec/workers/stuck_export_jobs_worker_spec.rb": 2.023280272998818,9746 "spec/views/projects/pipelines/show.html.haml_spec.rb": 2.3777412680010457,9747 "spec/services/notes/resolve_service_spec.rb": 3.3474950899999385,9748 "spec/helpers/learn_gitlab_helper_spec.rb": 2.8557963499988546,9749 "spec/models/work_items/widgets/labels_spec.rb": 1.361990503000925,9750 "spec/lib/gitlab/bitbucket_import/wiki_formatter_spec.rb": 1.9545268210003997,9751 "spec/rubocop/migration_helpers_spec.rb": 1.0614418200002547,9752 "spec/models/lfs_download_object_spec.rb": 2.0333857010009524,9753 "spec/rubocop/cop/migration/add_concurrent_foreign_key_spec.rb": 1.0478786610001407,9754 "spec/graphql/resolvers/ci/project_pipeline_counts_resolver_spec.rb": 2.1985889510015113,9755 "spec/lib/gitlab/github_import/representation/user_spec.rb": 0.6744761869995273,9756 "spec/models/x509_issuer_spec.rb": 1.3873233199992683,9757 "spec/graphql/resolvers/clusters/agents_resolver_spec.rb": 1.9605189099984273,9758 "spec/services/merge_requests/resolve_todos_service_spec.rb": 1.4271646550005244,9759 "spec/services/packages/composer/composer_json_service_spec.rb": 2.573919594999097,9760 "spec/models/members/member_role_spec.rb": 1.045529141998486,9761 "spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb": 2.2164150680000603,9762 "spec/lib/api/entities/nuget/metadatum_spec.rb": 0.4546211739998398,9763 "spec/helpers/projects/ml/experiments_helper_spec.rb": 1.1642463469997892,9764 "spec/lib/gitlab/database/postgres_hll/batch_distinct_counter_spec.rb": 2.561448427000869,9765 "spec/workers/ci/initial_pipeline_process_worker_spec.rb": 1.6492195970004104,9766 "spec/lib/gitlab/ci/artifacts/logger_spec.rb": 2.141407707998951,9767 "spec/lib/sidebars/projects/menus/shimo_menu_spec.rb": 1.2088866520007286,9768 "spec/lib/gitlab/external_authorization/response_spec.rb": 1.102212795000014,9769 "spec/workers/ci/track_failed_build_worker_spec.rb": 1.2201768300001277,9770 "spec/finders/ci/job_artifacts_finder_spec.rb": 2.254646233999665,9771 "spec/lib/gitlab/cycle_analytics/updater_spec.rb": 1.1941815439986385,9772 "spec/lib/error_tracking/collector/payload_validator_spec.rb": 0.7213666809984716,9773 "spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb": 0.6551958489999379,9774 "spec/services/ci/create_pipeline_service/custom_yaml_tags_spec.rb": 2.4625208979996387,9775 "spec/views/layouts/header/_gitlab_version.html.haml_spec.rb": 0.8734541439989698,9776 "spec/workers/projects/update_repository_storage_worker_spec.rb": 1.4867097379992629,9777 "spec/lib/gitlab/feature_categories_spec.rb": 0.7249516610008868,9778 "spec/lib/error_tracking/stacktrace_builder_spec.rb": 0.8758065729998634,9779 "spec/lib/gitlab/data_builder/feature_flag_spec.rb": 2.2188957180005673,9780 "spec/graphql/resolvers/design_management/version_resolver_spec.rb": 1.4500574719986616,9781 "spec/lib/gitlab/utils/gzip_spec.rb": 0.6720167379990016,9782 "spec/graphql/types/release_asset_link_input_type_spec.rb": 0.49347336900063965,9783 "spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb": 0.721825381000599,9784 "spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb": 1.0519597810016421,9785 "spec/graphql/types/namespace_type_spec.rb": 0.4765178020006715,9786 "spec/graphql/types/ci_configuration/sast/entity_type_spec.rb": 0.5638826899994456,9787 "spec/services/discussions/unresolve_service_spec.rb": 1.7565217960000155,9788 "spec/lib/bitbucket_server/representation/repo_spec.rb": 0.7003258249987994,9789 "spec/services/packages/debian/create_package_file_service_spec.rb": 1.2392591379993974,9790 "spec/graphql/resolvers/branch_commit_resolver_spec.rb": 1.490836737000791,9791 "spec/models/redirect_route_spec.rb": 1.4248162849999062,9792 "spec/serializers/merge_request_sidebar_extras_entity_spec.rb": 1.510029855000539,9793 "spec/graphql/types/commit_signatures/gpg_signature_type_spec.rb": 0.9128651480004919,9794 "spec/lib/gitlab/fogbugz_import/project_creator_spec.rb": 2.226016996999533,9795 "spec/lib/gitlab/kubernetes/kubeconfig/template_spec.rb": 0.7905953530007537,9796 "spec/graphql/mutations/boards/update_spec.rb": 1.326486357000249,9797 "spec/lib/gitlab/database/partitioning/replace_table_spec.rb": 0.7802766149998206,9798 "spec/lib/bulk_imports/groups/pipelines/project_entities_pipeline_spec.rb": 1.1167371029987407,9799 "spec/graphql/types/projects/service_type_spec.rb": 0.5917864170005487,9800 "spec/lib/gitlab/null_request_store_spec.rb": 1.1395862609988399,9801 "spec/models/users/project_callout_spec.rb": 0.9931186180001532,9802 "spec/models/concerns/commit_signature_spec.rb": 0.49166789000082645,9803 "spec/presenters/packages/nuget/service_index_presenter_spec.rb": 1.1432655309999973,9804 "spec/lib/google_api/auth_spec.rb": 0.6304891330000828,9805 "spec/serializers/feature_flag_summary_entity_spec.rb": 1.2651806049998413,9806 "spec/services/personal_access_tokens/last_used_service_spec.rb": 1.0099926259990752,9807 "spec/graphql/types/branch_rules/branch_protection_type_spec.rb": 0.48260493999987375,9808 "spec/workers/packages/rubygems/extraction_worker_spec.rb": 1.3886923499994737,9809 "spec/workers/export_csv_worker_spec.rb": 0.9238915469995845,9810 "spec/services/users/dismiss_group_callout_service_spec.rb": 1.1033966149989283,9811 "spec/models/integrations/jira_tracker_data_spec.rb": 0.8285033379997913,9812 "spec/lib/gitlab/git/raw_diff_change_spec.rb": 0.9624668420001399,9813 "spec/lib/api/entities/project_import_failed_relation_spec.rb": 0.7911332630010293,9814 "spec/serializers/ci/downloadable_artifact_serializer_spec.rb": 1.242119657999865,9815 "spec/lib/bulk_imports/pipeline/extracted_data_spec.rb": 0.7084385830003157,9816 "spec/models/concerns/safe_url_spec.rb": 0.7818155139993905,9817 "spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb": 0.7051979239986395,9818 "spec/workers/update_merge_requests_worker_spec.rb": 1.5314613619993906,9819 "spec/graphql/types/branch_type_spec.rb": 0.5658274710003752,9820 "spec/lib/gitlab/database/postgres_hll/buckets_spec.rb": 0.5139178669996909,9821 "spec/rubocop/cop/migration/background_migrations_spec.rb": 0.507020647999525,9822 "spec/workers/users/create_statistics_worker_spec.rb": 0.7536140070005786,9823 "spec/lib/gitlab/graphql/pagination/connections_spec.rb": 1.1417729799995868,9824 "spec/models/protected_branch/merge_access_level_spec.rb": 0.5350173150000046,9825 "spec/lib/api/entities/application_setting_spec.rb": 0.8817619920009747,9826 "spec/lib/gitlab/ci/ansi2json/parser_spec.rb": 0.6861295469989273,9827 "spec/lib/gitlab/graphql/timeout_spec.rb": 0.4531261739994079,9828 "spec/lib/gitlab/phabricator_import/representation/user_spec.rb": 0.9039259689998289,9829 "spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb": 1.2425766179985658,9830 "spec/lib/gitlab/memory/watchdog/monitor/rss_memory_limit_spec.rb": 0.7321396099996491,9831 "spec/rubocop/cop/sidekiq_load_balancing/worker_data_consistency_spec.rb": 0.42599657800019486,9832 "spec/lib/gitlab/ci/build/cache_spec.rb": 0.4873781999995117,9833 "spec/models/blob_viewer/composer_json_spec.rb": 0.5292089049999049,9834 "spec/lib/gitlab/asciidoc/html5_converter_spec.rb": 0.4905471799993393,9835 "spec/lib/api/validations/validators/email_or_email_list_spec.rb": 0.8397936969995499,9836 "spec/lib/gitlab/import_export/legacy_relation_tree_saver_spec.rb": 0.6979545049998706,9837 "spec/serializers/jira_connect/group_entity_spec.rb": 0.7041367339988938,9838 "spec/graphql/types/ci/config/config_type_spec.rb": 0.6095406749991525,9839 "spec/graphql/types/customer_relations/contact_state_counts_type_spec.rb": 1.274343773999135,9840 "spec/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker_spec.rb": 1.0349169529999926,9841 "spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb": 0.5365659639992373,9842 "spec/lib/gitlab/middleware/query_analyzer_spec.rb": 0.7218003119996865,9843 "spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb": 0.4369887259999814,9844 "spec/lib/gitlab/gitaly_client/util_spec.rb": 0.3779876640001021,9845 "spec/graphql/types/ci/runner_web_url_edge_spec.rb": 0.8730862630000047,9846 "spec/workers/todos_destroyer/destroyed_designs_worker_spec.rb": 0.3528211659995577,9847 "spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb": 0.5947525669998868,9848 "spec/rubocop/cop/gitlab/intersect_spec.rb": 0.46542524299911747,9849 "spec/graphql/types/permission_types/ci/job_spec.rb": 0.4993550290000712,9850 "spec/rubocop/cop/gemspec/avoid_executing_git_spec.rb": 1.1053990050004359,9851 "spec/graphql/types/permission_types/project_spec.rb": 0.5148319270010688,9852 "spec/helpers/routing/packages_helper_spec.rb": 0.6604574390003108,9853 "spec/graphql/types/work_items/widgets/description_type_spec.rb": 0.38560898200012169854}9855Knapsack global time execution for tests: 24m 01s9856Pending: (Failures listed here are expected and do not affect your suite's status)9857 1) NotificationRecipient#notifiable? when recipient email is blocked with temporary failures returns false9858 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example9859 # ./spec/models/notification_recipient_spec.rb:679860 2) Pages::DeploymentUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 9861 # No pattern provided, skipping.9862 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89863 3) Pages::DeploymentUploader behaves like builds correct paths #relative_path is relative9864 # Path not set, skipping.9865 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409866 4) Pages::DeploymentUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 9867 # No pattern provided, skipping.9868 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89869 5) Pages::DeploymentUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9870 # No pattern provided, skipping.9871 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89872 6) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9873 # No pattern provided, skipping.9874 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89875 7) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9876 # No pattern provided, skipping.9877 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89878 8) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 9879 # No pattern provided, skipping.9880 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89881 9) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #relative_path is relative9882 # Path not set, skipping.9883 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409884 10) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9885 # No pattern provided, skipping.9886 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89887 11) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9888 # No pattern provided, skipping.9889 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89890Finished in 24 minutes 5 seconds (files took 1 minute 14.82 seconds to load)98914042 examples, 0 failures, 11 pending9892Randomized with seed 560449893[TEST PROF INFO] Time spent in factories: 12:22.520 (50.12% of total time)9894RSpec exited with 0.9895No examples to retry, congrats!9897Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy9898Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy9900Uploading artifacts...9901coverage/: found 5 matching files and directories 9902crystalball/: found 2 matching files and directories 9903deprecations/: found 3 matching files and directories 9904knapsack/: found 3 matching files and directories 9905WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory 9906rspec/: found 12 matching files and directories 9907WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 9908log/*.log: found 19 matching files and directories 9909WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741003/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9910WARNING: Retrying... context=artifacts-uploader error=request redirected9911Uploading artifacts as "archive" to coordinator... 201 Created id=3443741003 responseStatus=201 Created token=iHa6fkxr9912Uploading artifacts...9913rspec/junit_rspec.xml: found 1 matching files and directories 9914WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741003/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9915WARNING: Retrying... context=artifacts-uploader error=request redirected9916Uploading artifacts as "junit" to coordinator... 201 Created id=3443741003 responseStatus=201 Created token=iHa6fkxr9918Job succeeded