rspec unit pg13 15/28
Passed Started
by
@dskim_gitlab
Sincheol (David) Kim
1Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)2 on green-3.shared-gitlab-org.runners-manager.gitlab.com/default EuhiQzPR, system ID: s_360bc95445273 feature flags: FF_NETWORK_PER_BUILD:true, 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-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:b643610fd4d2fbdd55447ceb5a6cba0c3d1a26945817741d73e1b51a1ec07d01 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:dfccb5b5ddadf4f1a3b9cb72cf21f5b99a28a55c217de34d9fa6b7a45a910031 ...11Starting service redis:6.2-alpine ...12Pulling docker image redis:6.2-alpine ...13Using docker image sha256:a9a47a706682d445577bb5da7328f0faaa0863a5742a315c829faa461dfc23ae for redis:6.2-alpine with digest redis@sha256:317575f05099ea47b1f2855b1bb6e068b52847bfa19b87014d88d57f82d4b8f0 ...14Waiting for services to be up and running (timeout 30 seconds)...15Authenticating with credentials from job payload (GitLab Registry)16Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...17Using docker image sha256:552b81110cdd830e05d17c8e7365f72e1dd96842217d7225636cb55a75777ea7 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:a386dd1acb1341f710f3c3c320984f70512694bcfec8cb1c771365058ac7c475 ...19Running on runner-euhiqzpr-project-278964-concurrent-0 via runner-euhiqzpr-shared-gitlab-org-1682567580-6ea2cce9...21$ eval "$CI_PRE_CLONE_SCRIPT"22Fetching changes with git depth set to 20...23Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/24Created fresh repository.25remote: Enumerating objects: 162343, done. 26remote: Counting objects: 100% (162343/162343), done. 27remote: Compressing objects: 100% (98373/98373), done. 28remote: Total 162343 (delta 79431), reused 115388 (delta 58038), pack-reused 0 29Receiving objects: 100% (162343/162343), 129.51 MiB | 31.54 MiB/s, done.30Resolving deltas: 100% (79431/79431), done.32 * [new ref] refs/pipelines/850455016 -> refs/pipelines/85045501633Checking out 997198e5 as detached HEAD (ref is refs/merge-requests/118423/merge)...34Skipping Git submodules setup35$ git remote set-url origin "${CI_REPOSITORY_URL}"37Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...38cache.zip is up to date 39Successfully extracted cache41Downloading artifacts for compile-test-assets (4187655852)...42Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4187655852 responseStatus=200 OK token=64_gDWnp43Downloading artifacts for detect-tests (4187655860)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4187655860 responseStatus=200 OK token=64_gDWnp45Downloading artifacts for retrieve-tests-metadata (4187655863)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4187655863 responseStatus=200 OK token=64_gDWnp47Downloading artifacts for setup-test-env (4187655855)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4187655855 responseStatus=200 OK token=64_gDWnp50Using docker image sha256:552b81110cdd830e05d17c8e7365f72e1dd96842217d7225636cb55a75777ea7 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:a386dd1acb1341f710f3c3c320984f70512694bcfec8cb1c771365058ac7c475 ...51$ echo $FOSS_ONLY52$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb53$ export GOPATH=$CI_PROJECT_DIR/.go54$ mkdir -p $GOPATH55$ source scripts/utils.sh56$ source scripts/prepare_build.sh712Using decomposed database config (config/database.yml.decomposed-postgresql)713Geo DB won't be set up.714Embedding DB won't be set up.730$ source ./scripts/rspec_helpers.sh731$ run_timed_command "gem install knapsack --no-document"732$ gem install knapsack --no-document733Successfully installed knapsack-4.0.07341 gem installed735==> 'gem install knapsack --no-document' succeeded in 0 seconds.736$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"738$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"743$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"744$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"745SKIP_FLAKY_TESTS_AUTOMATICALLY: false746RETRY_FAILED_TESTS_IN_NEW_PROCESS: true747KNAPSACK_GENERATE_REPORT: true748FLAKY_RSPEC_GENERATE_REPORT: true749KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb750KNAPSACK_LOG_LEVEL: debug751KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_15_28_report.json752FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json753FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_15_28_report.json754NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_15_28_report.json755SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_15_28_report.txt756CRYSTALBALL: 757RSPEC_TESTS_MAPPING_ENABLED: 758RSPEC_TESTS_FILTER_FILE: 759Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration -- spec/policies/project_policy_spec.rb spec/models/note_spec.rb spec/finders/deployments_finder_spec.rb spec/models/integration_spec.rb spec/models/commit_status_spec.rb spec/models/todo_spec.rb spec/services/releases/create_service_spec.rb spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb spec/lib/gitlab/ci/templates/templates_spec.rb spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb spec/uploaders/job_artifact_uploader_spec.rb spec/lib/gitlab/data_builder/note_spec.rb spec/workers/repository_fork_worker_spec.rb spec/models/clusters/agent_spec.rb spec/lib/gitlab/background_migration/populate_topics_non_private_projects_count_spec.rb spec/uploaders/external_diff_uploader_spec.rb spec/models/hooks/system_hook_spec.rb spec/services/search/global_service_spec.rb spec/lib/container_registry/gitlab_api_client_spec.rb spec/models/resource_state_event_spec.rb spec/models/trending_project_spec.rb spec/lib/gitlab/ci/templates/npm_spec.rb spec/lib/gitlab/ci/status/factory_spec.rb spec/models/concerns/routable_spec.rb spec/services/auto_merge_service_spec.rb spec/policies/todo_policy_spec.rb spec/finders/releases_finder_spec.rb spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb spec/models/hooks/active_hook_filter_spec.rb spec/lib/gitlab/relative_positioning/range_spec.rb spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb spec/serializers/diffs_entity_spec.rb spec/lib/gitlab/background_migration/backfill_admin_mode_scope_for_personal_access_tokens_spec.rb spec/lib/object_storage/config_spec.rb spec/tasks/gitlab/packages/events_rake_spec.rb spec/services/ci/create_pipeline_service/needs_spec.rb spec/services/draft_notes/create_service_spec.rb spec/models/ci/runner_manager_spec.rb spec/lib/gitlab/email/handler/create_issue_handler_spec.rb spec/models/slack_integration_spec.rb spec/services/projects/participants_service_spec.rb spec/lib/bulk_imports/projects/pipelines/repository_bundle_pipeline_spec.rb spec/models/packages/conan/file_metadatum_spec.rb spec/workers/concerns/application_worker_spec.rb spec/views/notify/pipeline_success_email.text.erb_spec.rb spec/lib/gitlab/legacy_github_import/project_creator_spec.rb spec/tasks/gitlab/db/decomposition/rollback/bump_ci_sequences_rake_spec.rb spec/graphql/mutations/release_asset_links/update_spec.rb spec/lib/gitlab/database/background_migration/health_status/indicators/patroni_apdex_spec.rb spec/lib/gitlab/ci/ansi2json_spec.rb spec/lib/gitlab/background_migration/populate_namespace_statistics_spec.rb spec/models/integrations/harbor_spec.rb spec/graphql/mutations/namespace/package_settings/update_spec.rb spec/models/concerns/ci/has_variable_spec.rb spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb spec/workers/jira_connect/sync_project_worker_spec.rb spec/components/diffs/overflow_warning_component_spec.rb spec/workers/merge_requests/create_approval_event_worker_spec.rb spec/initializers/lograge_spec.rb spec/lib/gitlab/diff/position_tracer_spec.rb spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb spec/lib/gitlab/chat/responder/slack_spec.rb spec/models/user_status_spec.rb spec/finders/packages/go/version_finder_spec.rb spec/uploaders/dependency_proxy/file_uploader_spec.rb spec/services/users/update_todo_count_cache_service_spec.rb spec/rubocop/todo_dir_spec.rb spec/services/work_items/delete_task_service_spec.rb spec/models/integrations/confluence_spec.rb spec/models/network/graph_spec.rb spec/lib/gitlab/usage_data/topology_spec.rb spec/models/ci/unit_test_failure_spec.rb spec/lib/banzai/reference_parser/label_parser_spec.rb spec/lib/gitlab/hook_data/issue_builder_spec.rb spec/lib/sidebars/groups/menus/issues_menu_spec.rb spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb spec/policies/deploy_token_policy_spec.rb spec/helpers/ci/status_helper_spec.rb spec/uploaders/packages/rpm/repository_file_uploader_spec.rb spec/support_specs/database/multiple_databases_helpers_spec.rb spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb spec/lib/gitlab/ci/config/entry/include/rules_spec.rb spec/models/ci/build_need_spec.rb spec/workers/pages_domain_verification_worker_spec.rb spec/lib/gitlab/cache/metadata_spec.rb spec/lib/gitlab/database/schema_validation/database_spec.rb spec/workers/background_migration_worker_spec.rb spec/services/timelogs/delete_service_spec.rb spec/models/ci/runner_manager_build_spec.rb spec/lib/gitlab/github_import/markdown/attachment_spec.rb spec/serializers/analytics_issue_entity_spec.rb spec/finders/milestones_finder_spec.rb spec/lib/gitlab/prometheus/metric_group_spec.rb spec/models/ci/catalog/listing_spec.rb spec/lib/sidebars/projects/menus/deployments_menu_spec.rb spec/lib/sidebars/user_settings/menus/profile_menu_spec.rb spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb spec/services/branches/validate_new_service_spec.rb spec/workers/issues/close_worker_spec.rb spec/lib/gitlab/identifier_spec.rb spec/serializers/lfs_file_lock_entity_spec.rb spec/workers/reactive_caching_worker_spec.rb spec/services/users/saved_replies/update_service_spec.rb spec/graphql/mutations/incident_management/timeline_event/destroy_spec.rb spec/workers/migrate_external_diffs_worker_spec.rb spec/lib/gitlab/auth/o_auth/provider_spec.rb spec/finders/groups/accepting_project_imports_finder_spec.rb spec/lib/safe_zip/extract_spec.rb spec/services/notification_recipients/builder/new_note_spec.rb spec/lib/gitlab/jira_import/issue_serializer_spec.rb spec/models/ref_matcher_spec.rb spec/lib/gitlab/mail_room/authenticator_spec.rb spec/workers/personal_access_tokens/expired_notification_worker_spec.rb spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb spec/services/clusters/agents/delete_expired_events_service_spec.rb spec/services/merge_requests/execute_approval_hooks_service_spec.rb spec/lib/gitlab/experiment/rollout/feature_spec.rb spec/graphql/resolvers/group_members_resolver_spec.rb spec/components/pajamas/banner_component_spec.rb spec/helpers/environments_helper_spec.rb spec/lib/gitlab/ci/tags/bulk_insert_spec.rb spec/lib/gitlab/database/migrations/reestablished_connection_stack_spec.rb spec/services/system_notes/incidents_service_spec.rb spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb spec/policies/resource_milestone_event_policy_spec.rb spec/workers/bulk_imports/finish_batched_relation_export_worker_spec.rb spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb spec/finders/fork_targets_finder_spec.rb spec/scripts/lib/glfm/verify_all_generated_files_are_up_to_date_spec.rb spec/graphql/types/clusters/agent_token_type_spec.rb spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb spec/lib/gitlab/cluster/lifecycle_events_spec.rb spec/workers/bulk_imports/entity_worker_spec.rb spec/lib/banzai/cross_project_reference_spec.rb spec/services/packages/debian/create_package_file_service_spec.rb spec/lib/gitlab_settings/settings_spec.rb spec/lib/gitlab/diff/formatters/text_formatter_spec.rb spec/services/award_emojis/collect_user_emoji_service_spec.rb spec/helpers/dev_ops_report_helper_spec.rb spec/views/projects/commits/show.html.haml_spec.rb spec/services/webauthn/register_service_spec.rb spec/lib/gitlab/color_schemes_spec.rb spec/workers/projects/record_target_platforms_worker_spec.rb spec/models/legacy_diff_note_spec.rb spec/models/issue/email_spec.rb spec/helpers/bizible_helper_spec.rb spec/support_specs/graphql/arguments_spec.rb spec/services/branches/diverging_commit_counts_service_spec.rb spec/models/work_items/widgets/hierarchy_spec.rb spec/lib/gitlab/ci/trace/remote_checksum_spec.rb spec/services/users/validate_push_otp_service_spec.rb spec/workers/propagate_integration_project_worker_spec.rb spec/services/ci/generate_terraform_reports_service_spec.rb spec/rubocop/cop/put_project_routes_under_scope_spec.rb spec/models/bulk_imports/file_transfer_spec.rb spec/lib/gitlab/import_export/model_configuration_spec.rb spec/lib/gitlab/utils/mime_type_spec.rb spec/graphql/types/repository_type_spec.rb spec/helpers/operations_helper_spec.rb spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb spec/services/users/saved_replies/destroy_service_spec.rb spec/lib/gitlab/alert_management/alert_status_counts_spec.rb spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb spec/graphql/types/merge_request_review_state_enum_spec.rb spec/models/blob_viewer/package_json_spec.rb spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb spec/lib/gitlab/chat/responder/base_spec.rb spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb spec/services/users/batch_status_cleaner_service_spec.rb spec/models/concerns/stepable_spec.rb spec/services/base_count_service_spec.rb spec/rubocop/cop/gitlab/const_get_inherit_false_spec.rb spec/lib/gitlab/hook_data/group_member_builder_spec.rb spec/lib/gitlab/ci/build/status/reason_spec.rb spec/rubocop/cop/code_reuse/presenter_spec.rb spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb spec/lib/gitlab/alert_management/payload_spec.rb spec/lib/gitlab/checks/force_push_spec.rb spec/views/projects/settings/operations/show.html.haml_spec.rb spec/lib/gitlab/database/similarity_score_spec.rb spec/workers/jira_connect/sync_builds_worker_spec.rb spec/lib/gitlab/metrics/dashboard/importer_spec.rb spec/graphql/resolvers/board_list_resolver_spec.rb spec/views/projects/runners/_project_runners.html.haml_spec.rb spec/lib/gitlab/import_export/recursive_merge_folders_spec.rb spec/lib/gitlab/graphql/loaders/batch_model_loader_spec.rb spec/lib/gitlab/usage_data_counters/productivity_analytics_counter_spec.rb spec/rubocop/cop/feature_flag_usage_spec.rb spec/graphql/resolvers/saved_reply_resolver_spec.rb spec/lib/gitlab/utils/gzip_spec.rb spec/workers/update_external_pull_requests_worker_spec.rb spec/helpers/projects/cluster_agents_helper_spec.rb spec/views/devise/shared/_signin_box.html.haml_spec.rb spec/models/ml/experiment_metadata_spec.rb spec/services/work_items/prepare_import_csv_service_spec.rb spec/models/concerns/from_union_spec.rb spec/initializers/rails_yaml_safe_load_spec.rb spec/models/preloaders/commit_status_preloader_spec.rb spec/lib/gitlab/auth/otp/strategies/duo_auth/manual_otp_spec.rb spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb spec/db/production/import_common_metrics_spec.rb spec/helpers/webpack_helper_spec.rb spec/services/members/base_service_spec.rb spec/lib/gitlab/database/migrations/pg_backend_pid_spec.rb spec/lib/sidebars/projects/menus/external_wiki_menu_spec.rb spec/lib/banzai/filter/blockquote_fence_filter_spec.rb spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb spec/graphql/types/design_management_type_spec.rb spec/rubocop/cop/ban_catch_throw_spec.rb spec/lib/gitlab/backtrace_cleaner_spec.rb spec/presenters/key_presenter_spec.rb spec/graphql/types/group_member_relation_enum_spec.rb spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb spec/finders/repositories/changelog_tag_finder_spec.rb spec/graphql/types/clusters/agent_token_status_enum_spec.rb spec/graphql/types/packages/tag_type_spec.rb spec/graphql/types/design_management/version_type_spec.rb spec/lib/gitlab/database/background_migration/batch_metrics_spec.rb spec/graphql/types/member_access_level_enum_spec.rb spec/models/concerns/cross_database_modification_spec.rb spec/initializers/rdoc_segfault_patch_spec.rb spec/serializers/remote_mirror_entity_spec.rb spec/lib/gitlab/performance_bar/stats_spec.rb spec/presenters/member_presenter_spec.rb spec/graphql/mutations/ci/pipeline_schedule/variable_input_type_spec.rb spec/graphql/types/issuable_sort_enum_spec.rb spec/graphql/types/container_expiration_policy_cadence_enum_spec.rb spec/graphql/types/ci/variable_type_enum_spec.rb spec/rubocop/cop/migration/add_index_spec.rb spec/services/issues/base_service_spec.rb spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb spec/graphql/types/packages/maven/metadatum_type_spec.rb spec/lib/gitlab/database/schema_validation/validators/missing_indexes_spec.rb spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rbKnapsack report generator started!760warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.762Run options: exclude {:quarantine=>true, :level=>"background_migration"}763Test environment set up in 0.660656493 seconds764ProjectPolicy765 does not include the read permissions when the issue author is not a member of the private project766 with no project feature767 returns false768 behaves like model with wiki policies769 container_level: :public, access_level: :enabled, membership: :admin, access: :all770 allows actions based on membership771 container_level: :public, access_level: :enabled, membership: :maintainer, access: :maintainer772 allows actions based on membership773 container_level: :public, access_level: :enabled, membership: :developer, access: :developer774 allows actions based on membership775 container_level: :public, access_level: :enabled, membership: :reporter, access: :reporter776 allows actions based on membership777 container_level: :public, access_level: :enabled, membership: :guest, access: :guest778 allows actions based on membership779 container_level: :public, access_level: :enabled, membership: :non_member, access: :guest780 allows actions based on membership781 container_level: :public, access_level: :enabled, membership: :anonymous, access: :guest782 allows actions based on membership783 container_level: :public, access_level: :private, membership: :admin, access: :all784 allows actions based on membership785 container_level: :public, access_level: :private, membership: :maintainer, access: :maintainer786 allows actions based on membership787 container_level: :public, access_level: :private, membership: :developer, access: :developer788 allows actions based on membership789 container_level: :public, access_level: :private, membership: :reporter, access: :reporter790 allows actions based on membership791 container_level: :public, access_level: :private, membership: :guest, access: :guest792 allows actions based on membership793 container_level: :public, access_level: :private, membership: :non_member, access: nil794 allows actions based on membership795 container_level: :public, access_level: :private, membership: :anonymous, access: nil796 allows actions based on membership797 container_level: :public, access_level: :disabled, membership: :admin, access: nil798 allows actions based on membership799 container_level: :public, access_level: :disabled, membership: :maintainer, access: nil800 allows actions based on membership801 container_level: :public, access_level: :disabled, membership: :developer, access: nil802 allows actions based on membership803 container_level: :public, access_level: :disabled, membership: :reporter, access: nil804 allows actions based on membership805 container_level: :public, access_level: :disabled, membership: :guest, access: nil806 allows actions based on membership807 container_level: :public, access_level: :disabled, membership: :non_member, access: nil808 allows actions based on membership809 container_level: :public, access_level: :disabled, membership: :anonymous, access: nil810 allows actions based on membership811 container_level: :internal, access_level: :enabled, membership: :admin, access: :all812 allows actions based on membership813 container_level: :internal, access_level: :enabled, membership: :maintainer, access: :maintainer814 allows actions based on membership815 container_level: :internal, access_level: :enabled, membership: :developer, access: :developer816 allows actions based on membership817 container_level: :internal, access_level: :enabled, membership: :reporter, access: :reporter818 allows actions based on membership819 container_level: :internal, access_level: :enabled, membership: :guest, access: :guest820 allows actions based on membership821 container_level: :internal, access_level: :enabled, membership: :non_member, access: :guest822 allows actions based on membership823 container_level: :internal, access_level: :enabled, membership: :anonymous, access: nil824 allows actions based on membership825 container_level: :internal, access_level: :private, membership: :admin, access: :all826 allows actions based on membership827 container_level: :internal, access_level: :private, membership: :maintainer, access: :maintainer828 allows actions based on membership829 container_level: :internal, access_level: :private, membership: :developer, access: :developer830 allows actions based on membership831 container_level: :internal, access_level: :private, membership: :reporter, access: :reporter832 allows actions based on membership833 container_level: :internal, access_level: :private, membership: :guest, access: :guest834 allows actions based on membership835 container_level: :internal, access_level: :private, membership: :non_member, access: nil836 allows actions based on membership837 container_level: :internal, access_level: :private, membership: :anonymous, access: nil838 allows actions based on membership839 container_level: :internal, access_level: :disabled, membership: :admin, access: nil840 allows actions based on membership841 container_level: :internal, access_level: :disabled, membership: :maintainer, access: nil842 allows actions based on membership843 container_level: :internal, access_level: :disabled, membership: :developer, access: nil844 allows actions based on membership845 container_level: :internal, access_level: :disabled, membership: :reporter, access: nil846 allows actions based on membership847 container_level: :internal, access_level: :disabled, membership: :guest, access: nil848 allows actions based on membership849 container_level: :internal, access_level: :disabled, membership: :non_member, access: nil850 allows actions based on membership851 container_level: :internal, access_level: :disabled, membership: :anonymous, access: nil852 allows actions based on membership853 container_level: :private, access_level: :private, membership: :admin, access: :all854 allows actions based on membership855 container_level: :private, access_level: :private, membership: :maintainer, access: :maintainer856 allows actions based on membership857 container_level: :private, access_level: :private, membership: :developer, access: :developer858 allows actions based on membership859 container_level: :private, access_level: :private, membership: :reporter, access: :reporter860 allows actions based on membership861 container_level: :private, access_level: :private, membership: :guest, access: :guest862 allows actions based on membership863 container_level: :private, access_level: :private, membership: :non_member, access: nil864 allows actions based on membership865 container_level: :private, access_level: :private, membership: :anonymous, access: nil866 allows actions based on membership867 container_level: :private, access_level: :disabled, membership: :admin, access: nil868 allows actions based on membership869 container_level: :private, access_level: :disabled, membership: :maintainer, access: nil870 allows actions based on membership871 container_level: :private, access_level: :disabled, membership: :developer, access: nil872 allows actions based on membership873 container_level: :private, access_level: :disabled, membership: :reporter, access: nil874 allows actions based on membership875 container_level: :private, access_level: :disabled, membership: :guest, access: nil876 allows actions based on membership877 container_level: :private, access_level: :disabled, membership: :non_member, access: nil878 allows actions based on membership879 container_level: :private, access_level: :disabled, membership: :anonymous, access: nil880 allows actions based on membership881 issues feature882 when the feature is disabled883 does not include the issues permissions884 disables boards and lists permissions885 when external tracker configured886 does not include the issues permissions887 merge requests feature888 disallows all permissions when the feature is disabled889 for a guest in a private project890 disallows the guest from all merge request permissions891 when both issues and merge requests are disabled892 does not include the issues permissions893 creating_merge_request_in894 when the current_user can download_code895 when project is public896 when the current_user is guest897 is expected to be allowed :create_merge_request_in898 when project is internal899 when the current_user is guest900 is expected to be allowed :create_merge_request_in901 when project is private902 when the current_user is guest903 is expected not to be allowed :create_merge_request_in904 when the current_user is reporter or above905 is expected to be allowed :create_merge_request_in906 when the current_user can not download code907 when project is public908 when the current_user is guest909 is expected not to be allowed :create_merge_request_in910 when project is internal911 when the current_user is guest912 is expected not to be allowed :create_merge_request_in913 when project is private914 when the current_user is guest915 is expected not to be allowed :create_merge_request_in916 when the current_user is reporter or above917 is expected not to be allowed :create_merge_request_in918 pipeline feature919 for confirmed user920 allows modify pipelines921 for unconfirmed user922 disallows to modify pipelines923 destroy permission924 for developers925 prevents :destroy_pipeline926 for maintainers927 prevents :destroy_pipeline928 for project owner929 allows :destroy_pipeline930 on archived projects931 prevents :destroy_pipeline932 on archived pending_delete projects933 allows :destroy_pipeline934 builds feature935 when builds are disabled936 disallows all permissions except pipeline when the feature is disabled937 when builds are disabled only for some users938 disallows pipeline and commit_status permissions939 repository feature940 when user is a project member941 when it is disabled942 disallows all permissions943 when user is non-member944 when access level is private945 disallows all permissions946 behaves like project policies as anonymous947 abilities for public projects948 when a project has pending invites949 does not grant owner access950 behaves like archived project policies951 when the project is archived952 disables write actions on all relevant project features953 disables some other important write actions954 does not disable other abilities955 abilities for non-public projects956 is expected to be banned957 behaves like project policies as guest958 as a direct project member959 abilities for public projects960 is expected not to be allowed :set_note_created_at961 abilities for non-public projects962 is expected not to be allowed :set_note_created_at963 behaves like deploy token does not get confused with user964 is expected not to be allowed :set_note_created_at965 behaves like archived project policies966 when the project is archived967 disables write actions on all relevant project features968 disables some other important write actions969 does not disable other abilities970 public builds enabled971 is expected to be allowed :read_pipeline972 when public builds disabled973 is expected not to be allowed :read_pipeline974 when builds are disabled975 is expected to be allowed :read_pipeline976 as an inherited member from the group977 abilities for private projects978 is expected not to be allowed :set_note_created_at979 behaves like project policies as reporter980 abilities for non-public projects981 is expected not to be allowed :set_note_created_at982 behaves like deploy token does not get confused with user983 is expected not to be allowed :set_note_created_at984 behaves like archived project policies985 when the project is archived986 disables write actions on all relevant project features987 disables some other important write actions988 does not disable other abilities989 as an inherited member from the group990 abilities for private projects991 is expected not to be allowed :set_note_created_at992 behaves like project policies as developer993 abilities for non-public projects994 is expected not to be allowed :set_note_created_at995 behaves like deploy token does not get confused with user996 is expected not to be allowed :set_note_created_at997 behaves like archived project policies998 when the project is archived999 disables write actions on all relevant project features1000 disables some other important write actions1001 does not disable other abilities1002 as an inherited member from the group1003 abilities for private projects1004 is expected not to be allowed :set_note_created_at1005 behaves like project policies as maintainer1006 abilities for non-public projects1007 is expected not to be allowed :set_note_created_at1008 behaves like deploy token does not get confused with user1009 is expected not to be allowed :set_note_created_at1010 behaves like archived project policies1011 when the project is archived1012 disables write actions on all relevant project features1013 disables some other important write actions1014 does not disable other abilities1015 behaves like project policies as owner1016 abilities for non-public projects1017 is expected to be allowed :set_note_created_at1018 behaves like deploy token does not get confused with user1019 is expected not to be allowed :set_note_created_at1020 behaves like archived project policies1021 when the project is archived1022 disables write actions on all relevant project features1023 disables some other important write actions1024 does not disable other abilities1025 behaves like project policies as admin with admin mode1026 abilities for non-public projects1027 is expected to be allowed :set_note_created_at1028 deploy token does not get confused with user1029 is expected not to be allowed :set_note_created_at1030 behaves like archived project policies1031 when the project is archived1032 disables write actions on all relevant project features1033 disables some other important write actions1034 does not disable other abilities1035 abilities for all project visibility1036 behaves like project private features with read_all_resources ability1037 for public projects1038 allows the download_code ability1039 for internal projects1040 allows the download_code ability1041 for private projects1042 allows the download_code ability1043 behaves like project policies as admin without admin mode1044 abilities for non-public projects1045 is expected to be banned1046 deploy token does not get confused with user1047 is expected to be banned1048 when a public project has merge requests allowing access1049 does not allow pushing code1050 allows pushing if the user is a member with push access to the target project1051 disallows abilities to a maintainer if the merge request was closed1052 importing members from another project1053 with maintainer1054 is expected to be allowed :import_project_members_from_another_project1055 with owner1056 is expected to be allowed :import_project_members_from_another_project1057 with guest1058 is expected to be disallowed :import_project_members_from_another_project1059 with reporter1060 is expected to be disallowed :import_project_members_from_another_project1061 with developer1062 is expected to be disallowed :import_project_members_from_another_project1063 with anonymous1064 is expected to be disallowed :import_project_members_from_another_project1065 with an admin1066 when admin mode is enabled1067 is expected to be allowed :import_project_members_from_another_project1068 when admin mode is disabled1069 is expected not to be allowed :import_project_members_from_another_project1070 importing work items1071 with reporter1072 is expected to be allowed :import_work_items1073 with developer1074 is expected to be allowed :import_work_items1075 with maintainer1076 is expected to be allowed :import_work_items1077 with owner1078 is expected to be allowed :import_work_items1079 with guest1080 is expected to be disallowed :import_work_items1081 with anonymous1082 is expected to be disallowed :import_work_items1083 with an admin1084 when admin mode is enabled1085 is expected to be allowed :import_work_items1086 when admin mode is disabled1087 is expected not to be allowed :import_work_items1088 reading usage quotas1089 with maintainer1090 is expected to be allowed :read_usage_quotas1091 with owner1092 is expected to be allowed :read_usage_quotas1093 with guest1094 is expected to be disallowed :read_usage_quotas1095 with reporter1096 is expected to be disallowed :read_usage_quotas1097 with developer1098 is expected to be disallowed :read_usage_quotas1099 with anonymous1100 is expected to be disallowed :read_usage_quotas1101 with an admin1102 when admin mode is enabled1103 is expected to be allowed :read_usage_quotas1104 when admin mode is disabled1105 is expected not to be allowed :read_usage_quotas1106 behaves like clusterable policies1107 #add_cluster?1108 with a reporter1109 is expected not to be allowed :read_cluster1110 is expected not to be allowed :add_cluster1111 is expected not to be allowed :create_cluster1112 is expected not to be allowed :update_cluster1113 is expected not to be allowed :admin_cluster1114 with a developer1115 is expected to be allowed :read_cluster1116 is expected not to be allowed :add_cluster1117 is expected not to be allowed :create_cluster1118 is expected not to be allowed :update_cluster1119 is expected not to be allowed :admin_cluster1120 with a maintainer1121 with no clusters1122 is expected to be allowed :read_cluster1123 is expected to be allowed :add_cluster1124 is expected to be allowed :create_cluster1125 is expected to be allowed :update_cluster1126 is expected to be allowed :admin_cluster1127 owner access1128 personal project1129 allows owner access1130 group project1131 group members1132 allows owner access1133 with timeline event tags1134 when user is member of the project1135 allows access to timeline event tags1136 when user is a maintainer/owner1137 allows to create timeline event tags1138 when user is a developer/guest/reporter1139 disallows creation1140 when user is not a member of the project1141 disallows access to the timeline event tags1142 reading a project1143 allows access when a user has read access to the repo1144 never checks the external service1145 with an external authorization service1146 allows access when the external service allows it1147 prevents all but seeing a public project in a list when access is denied1148 passes the full path to external authorization for logging purposes1149 with an admin1150 when admin mode is enabled1151 does not check the external service and allows access1152 when admin mode is disabled1153 checks the external service and allows access1154 forking a project1155 anonymous user1156 is expected to be disallowed :fork_project1157 project member1158 guest1159 is expected to be disallowed :fork_project1160 reporter1161 is expected to be allowed :fork_project1162 developer1163 is expected to be allowed :fork_project1164 maintainer1165 is expected to be allowed :fork_project1166 create_task1167 when user is member of the project1168 is expected to be allowed :create_task1169 read_grafana1170 project_visibility: :public, role: :anonymous, allowed: false1171 is expected not to be allowed :read_grafana1172 project_visibility: :public, role: :guest, allowed: false1173 is expected not to be allowed :read_grafana1174 project_visibility: :public, role: :reporter, allowed: true1175 is expected to be allowed :read_grafana1176 project_visibility: :internal, role: :anonymous, allowed: false1177 is expected not to be allowed :read_grafana1178 project_visibility: :internal, role: :guest, allowed: true1179 is expected to be allowed :read_grafana1180 project_visibility: :internal, role: :reporter, allowed: true1181 is expected to be allowed :read_grafana1182 project_visibility: :private, role: :anonymous, allowed: false1183 is expected not to be allowed :read_grafana1184 project_visibility: :private, role: :guest, allowed: true1185 is expected to be allowed :read_grafana1186 project_visibility: :private, role: :reporter, allowed: true1187 is expected to be allowed :read_grafana1188 read_prometheus1189 project_visibility: :public, role: :anonymous, allowed: false1190 is expected not to be allowed :read_prometheus1191 project_visibility: :public, role: :guest, allowed: false1192 is expected not to be allowed :read_prometheus1193 project_visibility: :public, role: :reporter, allowed: true1194 is expected to be allowed :read_prometheus1195 project_visibility: :internal, role: :anonymous, allowed: false1196 is expected not to be allowed :read_prometheus1197 project_visibility: :internal, role: :guest, allowed: false1198 is expected not to be allowed :read_prometheus1199 project_visibility: :internal, role: :reporter, allowed: true1200 is expected to be allowed :read_prometheus1201 project_visibility: :private, role: :anonymous, allowed: false1202 is expected not to be allowed :read_prometheus1203 project_visibility: :private, role: :guest, allowed: false1204 is expected not to be allowed :read_prometheus1205 project_visibility: :private, role: :reporter, allowed: true1206 is expected to be allowed :read_prometheus1207 update_max_artifacts_size1208 when no user1209 is expected not to be allowed :update_max_artifacts_size1210 admin1211 when admin mode is enabled1212 is expected to be allowed :update_max_artifacts_size1213 when admin mode is disabled1214 is expected not to be allowed :update_max_artifacts_size1215 guest1216 is expected not to be allowed :update_max_artifacts_size1217 reporter1218 is expected not to be allowed :update_max_artifacts_size1219 developer1220 is expected not to be allowed :update_max_artifacts_size1221 maintainer1222 is expected not to be allowed :update_max_artifacts_size1223 owner1224 is expected not to be allowed :update_max_artifacts_size1225 read_storage_disk_path1226 when no user1227 is expected not to be allowed :read_storage_disk_path1228 admin1229 when admin mode is enabled1230 is expected to be allowed :read_storage_disk_path1231 when admin mode is disabled1232 is expected not to be allowed :read_storage_disk_path1233 guest1234 is expected not to be allowed :read_storage_disk_path1235 reporter1236 is expected not to be allowed :read_storage_disk_path1237 developer1238 is expected not to be allowed :read_storage_disk_path1239 maintainer1240 is expected not to be allowed :read_storage_disk_path1241 owner1242 is expected not to be allowed :read_storage_disk_path1243 alert bot1244 is expected to be allowed :reporter_access1245 within a private project1246 is expected to be allowed :admin_issue1247 set_pipeline_variables1248 when user is developer1249 when project allows user defined variables1250 is expected to be allowed :set_pipeline_variables1251 when project restricts use of user defined variables1252 is expected not to be allowed :set_pipeline_variables1253 when user is maintainer1254 when project allows user defined variables1255 is expected to be allowed :set_pipeline_variables1256 when project restricts use of user defined variables1257 is expected to be allowed :set_pipeline_variables1258 support bot1259 with service desk disabled1260 is expected to be allowed :public_access1261 is expected not to be allowed :read_project1262 with service desk enabled1263 is expected to be allowed :read_work_item1264 when issues are protected members only1265 is expected to be allowed :read_work_item1266 project bots1267 project_bot_access1268 when regular user and part of the project1269 is expected not to be allowed :project_bot_access1270 when project bot and not part of the project1271 is expected not to be allowed :project_bot_access1272 when project bot and part of the project1273 is expected to be allowed :project_bot_access1274 with resource access tokens1275 is expected not to be allowed :create_resource_access_tokens1276 read_prometheus_alerts1277 with admin1278 when admin mode is enabled1279 is expected to be allowed :read_prometheus_alerts1280 when admin mode is disabled1281 is expected to be disallowed :read_prometheus_alerts1282 with owner1283 is expected to be allowed :read_prometheus_alerts1284 with maintainer1285 is expected to be allowed :read_prometheus_alerts1286 with developer1287 is expected to be disallowed :read_prometheus_alerts1288 with reporter1289 is expected to be disallowed :read_prometheus_alerts1290 with guest1291 is expected to be disallowed :read_prometheus_alerts1292 with anonymous1293 is expected to be disallowed :read_prometheus_alerts1294 metrics_dashboard feature1295 public project1296 feature private1297 with reporter1298 is expected to be allowed :metrics_dashboard1299 is expected to be allowed :read_prometheus1300 is expected to be allowed :read_deployment1301 is expected to be allowed :read_metrics_user_starred_dashboard1302 is expected to be allowed :create_metrics_user_starred_dashboard1303 with guest1304 is expected to be disallowed :metrics_dashboard1305 with anonymous1306 is expected to be disallowed :metrics_dashboard1307 feature enabled1308 with reporter1309 is expected to be allowed :metrics_dashboard1310 is expected to be allowed :read_prometheus1311 is expected to be allowed :read_deployment1312 is expected to be allowed :read_metrics_user_starred_dashboard1313 is expected to be allowed :create_metrics_user_starred_dashboard1314 with guest1315 is expected to be allowed :metrics_dashboard1316 is expected to be disallowed :read_prometheus1317 is expected to be allowed :read_deployment1318 is expected to be allowed :read_metrics_user_starred_dashboard1319 is expected to be allowed :create_metrics_user_starred_dashboard1320 with anonymous1321 is expected to be allowed :metrics_dashboard1322 is expected to be disallowed :read_prometheus1323 is expected to be allowed :read_deployment1324 is expected to be disallowed :read_metrics_user_starred_dashboard1325 is expected to be disallowed :create_metrics_user_starred_dashboard1326 internal project1327 feature private1328 with reporter1329 is expected to be allowed :metrics_dashboard1330 is expected to be allowed :read_prometheus1331 is expected to be allowed :read_deployment1332 is expected to be allowed :read_metrics_user_starred_dashboard1333 is expected to be allowed :create_metrics_user_starred_dashboard1334 with guest1335 is expected to be disallowed :metrics_dashboard1336 is expected to be disallowed :read_prometheus1337 with anonymous1338 is expected to be disallowed :metrics_dashboard1339 is expected to be disallowed :read_prometheus1340 feature enabled1341 with reporter1342 is expected to be allowed :metrics_dashboard1343 is expected to be allowed :read_prometheus1344 is expected to be allowed :read_deployment1345 is expected to be allowed :read_metrics_user_starred_dashboard1346 is expected to be allowed :create_metrics_user_starred_dashboard1347 with guest1348 is expected to be allowed :metrics_dashboard1349 is expected to be disallowed :read_prometheus1350 is expected to be allowed :read_deployment1351 is expected to be allowed :read_metrics_user_starred_dashboard1352 is expected to be allowed :create_metrics_user_starred_dashboard1353 with anonymous1354 is expected to be disallowed :metrics_dashboard1355 is expected to be disallowed :read_prometheus1356 private project1357 feature private1358 with reporter1359 is expected to be allowed :metrics_dashboard1360 is expected to be allowed :read_prometheus1361 is expected to be allowed :read_deployment1362 is expected to be allowed :read_metrics_user_starred_dashboard1363 is expected to be allowed :create_metrics_user_starred_dashboard1364 with guest1365 is expected to be disallowed :metrics_dashboard1366 is expected to be disallowed :read_prometheus1367 with anonymous1368 is expected to be disallowed :metrics_dashboard1369 is expected to be disallowed :read_prometheus1370 feature enabled1371 with reporter1372 is expected to be allowed :metrics_dashboard1373 is expected to be allowed :read_prometheus1374 is expected to be allowed :read_deployment1375 is expected to be allowed :read_metrics_user_starred_dashboard1376 is expected to be allowed :create_metrics_user_starred_dashboard1377 with guest1378 is expected to be disallowed :metrics_dashboard1379 is expected to be disallowed :read_prometheus1380 with anonymous1381 is expected to be disallowed :metrics_dashboard1382 is expected to be disallowed :read_prometheus1383 feature disabled1384 with reporter1385 is expected to be disallowed :metrics_dashboard1386 with guest1387 is expected to be disallowed :metrics_dashboard1388 with anonymous1389 is expected to be disallowed :metrics_dashboard1390 deploy key access1391 private project1392 when a read deploy key is enabled in the project1393 is expected to be allowed :download_code1394 is expected to be disallowed :push_code1395 is expected to be disallowed :read_project1396 when a write deploy key is enabled in the project1397 is expected to be allowed :download_code1398 is expected to be allowed :push_code1399 is expected to be disallowed :read_project1400 when the deploy key is not enabled in the project1401 is expected to be disallowed :download_code1402 is expected to be disallowed :push_code1403 is expected to be disallowed :read_project1404 deploy token access1405 private project1406 a deploy token with read_registry scope1407 is expected to be allowed :read_container_image1408 is expected to be disallowed :create_container_image1409 with registry disabled1410 is expected to be disallowed :read_container_image1411 is expected to be disallowed :create_container_image1412 a deploy token with write_registry scope1413 is expected to be disallowed :read_container_image1414 is expected to be allowed :create_container_image1415 with registry disabled1416 is expected to be disallowed :read_container_image1417 is expected to be disallowed :create_container_image1418 a deploy token with no registry scope1419 is expected to be disallowed :read_container_image1420 is expected to be disallowed :create_container_image1421 a deploy token with read_package_registry scope1422 is expected to be allowed :read_project1423 is expected to be allowed :read_package1424 is expected to be disallowed :create_package1425 behaves like package access with repository disabled1426 is expected to be allowed :read_package1427 a deploy token with write_package_registry scope1428 is expected to be allowed :create_package1429 is expected to be allowed :read_package1430 is expected to be allowed :read_project1431 is expected to be allowed :destroy_package1432 behaves like package access with repository disabled1433 is expected to be allowed :read_package1434 public project1435 a deploy token with read_registry scope1436 is expected to be allowed :read_container_image1437 is expected to be disallowed :create_container_image1438 with registry disabled1439 is expected to be disallowed :read_container_image1440 is expected to be disallowed :create_container_image1441 with registry private1442 is expected to be allowed :read_container_image1443 is expected to be disallowed :create_container_image1444 a deploy token with write_registry scope1445 is expected to be allowed :read_container_image1446 is expected to be allowed :create_container_image1447 with registry disabled1448 is expected to be disallowed :read_container_image1449 is expected to be disallowed :create_container_image1450 with registry private1451 is expected to be allowed :read_container_image1452 is expected to be allowed :create_container_image1453 a deploy token with no registry scope1454 is expected to be disallowed :read_container_image1455 is expected to be disallowed :create_container_image1456 create_web_ide_terminal1457 with admin1458 when admin mode enabled1459 is expected to be allowed :create_web_ide_terminal1460 when admin mode disabled1461 is expected to be disallowed :create_web_ide_terminal1462 with owner1463 is expected to be allowed :create_web_ide_terminal1464 with maintainer1465 is expected to be allowed :create_web_ide_terminal1466 with developer1467 is expected to be disallowed :create_web_ide_terminal1468 with reporter1469 is expected to be disallowed :create_web_ide_terminal1470 with guest1471 is expected to be disallowed :create_web_ide_terminal1472 with non member1473 is expected to be disallowed :create_web_ide_terminal1474 with anonymous1475 is expected to be disallowed :create_web_ide_terminal1476 read_repository_graphs1477 when user can download_code1478 is expected to be allowed :read_repository_graphs1479 when user cannot download_code1480 is expected to be disallowed :read_repository_graphs1481 security configuration feature1482 guest1483 prevents reading security configuration1484 reporter1485 prevents reading security configuration1486 developer1487 allows reading security configuration1488 maintainer1489 allows reading security configuration1490 owner1491 allows reading security configuration1492 infrastructure google cloud feature1493 guest1494 disallows managing google cloud1495 reporter1496 disallows managing google cloud1497 developer1498 disallows managing google cloud1499 maintainer1500 allows managing google cloud1501 owner1502 allows managing google cloud1503 infrastructure aws feature1504 guest1505 disallows managing aws1506 reporter1507 disallows managing aws1508 developer1509 disallows managing aws1510 maintainer1511 allows managing aws1512 owner1513 allows managing aws1514 design permissions1515 when design management is not available1516 is expected not to be allowed :read_design_activity and :read_design1517 when design management is available1518 is expected to be allowed :read_design_activity and :read_design1519 read_build_report_results1520 when user can read_build and read_pipeline1521 is expected to be allowed :read_build_report_results1522 when user can read_build but cannot read_pipeline1523 is expected to be disallowed :read_build_report_results1524 when user cannot read_build but can read_pipeline1525 is expected to be disallowed :read_build_report_results1526 when user cannot read_build and cannot read_pipeline1527 is expected to be disallowed :read_build_report_results1528 read_package1529 with admin1530 is expected to be allowed :read_package1531 behaves like package access with repository disabled1532 is expected to be allowed :read_package1533 with owner1534 is expected to be allowed :read_package1535 with maintainer1536 is expected to be allowed :read_package1537 with developer1538 is expected to be allowed :read_package1539 with reporter1540 is expected to be allowed :read_package1541 with guest1542 is expected to be allowed :read_package1543 with non member1544 is expected to be allowed :read_package1545 with anonymous1546 is expected to be allowed :read_package1547 admin_package1548 with admin1549 when admin mode enabled1550 is expected to be allowed :admin_package1551 when admin mode disabled1552 is expected to be disallowed :admin_package1553 with owner1554 is expected to be allowed :admin_package1555 with maintainer1556 is expected to be allowed :admin_package1557 with developer1558 is expected to be disallowed :admin_package1559 with reporter1560 is expected to be disallowed :admin_package1561 with guest1562 is expected to be disallowed :admin_package1563 with non_member1564 is expected to be disallowed :admin_package1565 with anonymous1566 is expected to be disallowed :admin_package1567 view_package_registry_project_settings1568 with packages disabled and1569 with registry enabled1570 with an admin user1571 when admin mode enabled1572 is expected to be allowed :view_package_registry_project_settings1573 when admin mode disabled1574 is expected to be disallowed :view_package_registry_project_settings1575 with owner1576 is expected to be allowed :view_package_registry_project_settings1577 with maintainer1578 is expected to be allowed :view_package_registry_project_settings1579 with developer1580 is expected to be disallowed :view_package_registry_project_settings1581 with reporter1582 is expected to be disallowed :view_package_registry_project_settings1583 with guest1584 is expected to be disallowed :view_package_registry_project_settings1585 with non_member1586 is expected to be disallowed :view_package_registry_project_settings1587 with anonymous1588 is expected to be disallowed :view_package_registry_project_settings1589 with registry disabled1590 with admin user1591 when admin mode enabled1592 is expected to be disallowed :view_package_registry_project_settings1593 when admin mode disabled1594 is expected to be disallowed :view_package_registry_project_settings1595 with owner1596 is expected to be disallowed :view_package_registry_project_settings1597 with maintainer1598 is expected to be disallowed :view_package_registry_project_settings1599 with developer1600 is expected to be disallowed :view_package_registry_project_settings1601 with reporter1602 is expected to be disallowed :view_package_registry_project_settings1603 with guest1604 is expected to be disallowed :view_package_registry_project_settings1605 with non_member1606 is expected to be disallowed :view_package_registry_project_settings1607 with anonymous1608 is expected to be disallowed :view_package_registry_project_settings1609 with registry disabled and1610 with packages enabled1611 with an admin user1612 when admin mode enabled1613 is expected to be allowed :view_package_registry_project_settings1614 when admin mode disabled1615 is expected to be disallowed :view_package_registry_project_settings1616 with owner1617 is expected to be allowed :view_package_registry_project_settings1618 with maintainer1619 is expected to be allowed :view_package_registry_project_settings1620 with developer1621 is expected to be disallowed :view_package_registry_project_settings1622 with reporter1623 is expected to be disallowed :view_package_registry_project_settings1624 with guest1625 is expected to be disallowed :view_package_registry_project_settings1626 with non_member1627 is expected to be disallowed :view_package_registry_project_settings1628 with anonymous1629 is expected to be disallowed :view_package_registry_project_settings1630 with packages disabled1631 with admin user1632 when admin mode enabled1633 is expected to be disallowed :view_package_registry_project_settings1634 when admin mode disabled1635 is expected to be disallowed :view_package_registry_project_settings1636 with owner1637 is expected to be disallowed :view_package_registry_project_settings1638 with maintainer1639 is expected to be disallowed :view_package_registry_project_settings1640 with developer1641 is expected to be disallowed :view_package_registry_project_settings1642 with reporter1643 is expected to be disallowed :view_package_registry_project_settings1644 with guest1645 is expected to be disallowed :view_package_registry_project_settings1646 with non_member1647 is expected to be disallowed :view_package_registry_project_settings1648 with anonymous1649 is expected to be disallowed :view_package_registry_project_settings1650 with registry & packages both disabled1651 with admin user1652 when admin mode enabled1653 is expected to be disallowed :view_package_registry_project_settings1654 when admin mode disabled1655 is expected to be disallowed :view_package_registry_project_settings1656 with owner1657 is expected to be disallowed :view_package_registry_project_settings1658 with maintainer1659 is expected to be disallowed :view_package_registry_project_settings1660 with developer1661 is expected to be disallowed :view_package_registry_project_settings1662 with reporter1663 is expected to be disallowed :view_package_registry_project_settings1664 with guest1665 is expected to be disallowed :view_package_registry_project_settings1666 with non_member1667 is expected to be disallowed :view_package_registry_project_settings1668 with anonymous1669 is expected to be disallowed :view_package_registry_project_settings1670 read_feature_flag1671 with maintainer1672 when repository is available1673 is expected to be allowed :read_feature_flag1674 when repository is disabled1675 is expected to be disallowed :read_feature_flag1676 with developer1677 when repository is available1678 is expected to be allowed :read_feature_flag1679 with reporter1680 when repository is available1681 is expected to be disallowed :read_feature_flag1682 read_analytics1683 anonymous user1684 is expected to be allowed :read_analytics1685 with various analytics features1686 when analytics is disabled for the project1687 for guest user1688 is expected to be disallowed :read_cycle_analytics1689 is expected to be disallowed :read_insights1690 is expected to be disallowed :read_repository_graphs1691 is expected to be disallowed :read_ci_cd_analytics1692 for reporter user1693 is expected to be disallowed :read_cycle_analytics1694 is expected to be disallowed :read_insights1695 is expected to be disallowed :read_repository_graphs1696 is expected to be disallowed :read_ci_cd_analytics1697 for developer1698 is expected to be disallowed :read_cycle_analytics1699 is expected to be disallowed :read_insights1700 is expected to be disallowed :read_repository_graphs1701 is expected to be disallowed :read_ci_cd_analytics1702 when analytics is private for the project1703 for guest user1704 is expected to be allowed :read_cycle_analytics1705 is expected to be allowed :read_insights1706 is expected to be disallowed :read_repository_graphs1707 is expected to be disallowed :read_ci_cd_analytics1708 for reporter user1709 is expected to be allowed :read_cycle_analytics1710 is expected to be allowed :read_insights1711 is expected to be allowed :read_repository_graphs1712 is expected to be allowed :read_ci_cd_analytics1713 for developer1714 is expected to be allowed :read_cycle_analytics1715 is expected to be allowed :read_insights1716 is expected to be allowed :read_repository_graphs1717 is expected to be allowed :read_ci_cd_analytics1718 when analytics is enabled for the project1719 for guest user1720 is expected to be allowed :read_cycle_analytics1721 is expected to be allowed :read_insights1722 is expected to be disallowed :read_repository_graphs1723 is expected to be disallowed :read_ci_cd_analytics1724 for reporter user1725 is expected to be allowed :read_cycle_analytics1726 is expected to be allowed :read_insights1727 is expected to be allowed :read_repository_graphs1728 is expected to be allowed :read_ci_cd_analytics1729 for developer1730 is expected to be allowed :read_cycle_analytics1731 is expected to be allowed :read_insights1732 is expected to be allowed :read_repository_graphs1733 is expected to be allowed :read_ci_cd_analytics1734 project member1735 guest1736 is expected to be allowed :read_analytics1737 without access to Analytics1738 is expected to be disallowed :read_analytics1739 reporter1740 is expected to be allowed :read_analytics1741 without access to Analytics1742 is expected to be disallowed :read_analytics1743 developer1744 is expected to be allowed :read_analytics1745 without access to Analytics1746 is expected to be disallowed :read_analytics1747 maintainer1748 is expected to be allowed :read_analytics1749 without access to Analytics1750 is expected to be disallowed :read_analytics1751 read_ci_cd_analytics1752 public project1753 when public pipelines are disabled for the project1754 project member1755 guest1756 is expected to be disallowed :read_ci_cd_analytics1757 reporter1758 is expected to be allowed :read_ci_cd_analytics1759 developer1760 is expected to be allowed :read_ci_cd_analytics1761 maintainer1762 is expected to be allowed :read_ci_cd_analytics1763 non member1764 is expected to be disallowed :read_ci_cd_analytics1765 anonymous1766 is expected to be disallowed :read_ci_cd_analytics1767 when public pipelines are enabled for the project1768 project member1769 guest1770 is expected to be allowed :read_ci_cd_analytics1771 reporter1772 is expected to be allowed :read_ci_cd_analytics1773 developer1774 is expected to be allowed :read_ci_cd_analytics1775 maintainer1776 is expected to be allowed :read_ci_cd_analytics1777 non member1778 is expected to be allowed :read_ci_cd_analytics1779 anonymous1780 is expected to be allowed :read_ci_cd_analytics1781 private project1782 project member1783 guest1784 is expected to be disallowed :read_ci_cd_analytics1785 reporter1786 is expected to be allowed :read_ci_cd_analytics1787 developer1788 is expected to be allowed :read_ci_cd_analytics1789 maintainer1790 is expected to be allowed :read_ci_cd_analytics1791 non member1792 is expected to be disallowed :read_ci_cd_analytics1793 anonymous1794 is expected to be disallowed :read_ci_cd_analytics1795 behaves like Self-managed Core resource access tokens1796 with owner access1797 create resource access tokens1798 is expected to be allowed :create_resource_access_tokens1799 when resource access token creation is not allowed1800 is expected not to be allowed :create_resource_access_tokens1801 when parent group has project access token creation disabled1802 is expected not to be allowed :create_resource_access_tokens1803 with a personal namespace project1804 is expected to be allowed :create_resource_access_tokens1805 read resource access tokens1806 is expected to be allowed :read_resource_access_tokens1807 destroy resource access tokens1808 is expected to be allowed :destroy_resource_access_tokens1809 with developer access1810 create resource access tokens1811 is expected not to be allowed :create_resource_access_tokens1812 read resource access tokens1813 is expected not to be allowed :read_resource_access_tokens1814 destroy resource access tokens1815 is expected not to be allowed :destroy_resource_access_tokens1816 environments feature1817 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true1818 allows/disallows the abilities based on the environments feature access level1819 project_visibility: :public, access_level: 20, role: :developer, allowed: true1820 allows/disallows the abilities based on the environments feature access level1821 project_visibility: :public, access_level: 20, role: :guest, allowed: true1822 allows/disallows the abilities based on the environments feature access level1823 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true1824 allows/disallows the abilities based on the environments feature access level1825 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true1826 allows/disallows the abilities based on the environments feature access level1827 project_visibility: :public, access_level: 10, role: :developer, allowed: true1828 allows/disallows the abilities based on the environments feature access level1829 project_visibility: :public, access_level: 10, role: :guest, allowed: false1830 allows/disallows the abilities based on the environments feature access level1831 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false1832 allows/disallows the abilities based on the environments feature access level1833 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false1834 allows/disallows the abilities based on the environments feature access level1835 project_visibility: :public, access_level: 0, role: :developer, allowed: false1836 allows/disallows the abilities based on the environments feature access level1837 project_visibility: :public, access_level: 0, role: :guest, allowed: false1838 allows/disallows the abilities based on the environments feature access level1839 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false1840 allows/disallows the abilities based on the environments feature access level1841 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true1842 allows/disallows the abilities based on the environments feature access level1843 project_visibility: :internal, access_level: 20, role: :developer, allowed: true1844 allows/disallows the abilities based on the environments feature access level1845 project_visibility: :internal, access_level: 20, role: :guest, allowed: true1846 allows/disallows the abilities based on the environments feature access level1847 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false1848 allows/disallows the abilities based on the environments feature access level1849 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true1850 allows/disallows the abilities based on the environments feature access level1851 project_visibility: :internal, access_level: 10, role: :developer, allowed: true1852 allows/disallows the abilities based on the environments feature access level1853 project_visibility: :internal, access_level: 10, role: :guest, allowed: false1854 allows/disallows the abilities based on the environments feature access level1855 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false1856 allows/disallows the abilities based on the environments feature access level1857 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false1858 allows/disallows the abilities based on the environments feature access level1859 project_visibility: :internal, access_level: 0, role: :developer, allowed: false1860 allows/disallows the abilities based on the environments feature access level1861 project_visibility: :internal, access_level: 0, role: :guest, allowed: false1862 allows/disallows the abilities based on the environments feature access level1863 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false1864 allows/disallows the abilities based on the environments feature access level1865 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true1866 allows/disallows the abilities based on the environments feature access level1867 project_visibility: :private, access_level: 20, role: :developer, allowed: true1868 allows/disallows the abilities based on the environments feature access level1869 project_visibility: :private, access_level: 20, role: :guest, allowed: false1870 allows/disallows the abilities based on the environments feature access level1871 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false1872 allows/disallows the abilities based on the environments feature access level1873 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true1874 allows/disallows the abilities based on the environments feature access level1875 project_visibility: :private, access_level: 10, role: :developer, allowed: true1876 allows/disallows the abilities based on the environments feature access level1877 project_visibility: :private, access_level: 10, role: :guest, allowed: false1878 allows/disallows the abilities based on the environments feature access level1879 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false1880 allows/disallows the abilities based on the environments feature access level1881 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false1882 allows/disallows the abilities based on the environments feature access level1883 project_visibility: :private, access_level: 0, role: :developer, allowed: false1884 allows/disallows the abilities based on the environments feature access level1885 project_visibility: :private, access_level: 0, role: :guest, allowed: false1886 allows/disallows the abilities based on the environments feature access level1887 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false1888 allows/disallows the abilities based on the environments feature access level1889 monitor feature1890 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true1891 allows/disallows the abilities based on the monitor feature access level1892 project_visibility: :public, access_level: 20, role: :developer, allowed: true1893 allows/disallows the abilities based on the monitor feature access level1894 project_visibility: :public, access_level: 20, role: :guest, allowed: true1895 allows/disallows the abilities based on the monitor feature access level1896 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true1897 allows/disallows the abilities based on the monitor feature access level1898 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true1899 allows/disallows the abilities based on the monitor feature access level1900 project_visibility: :public, access_level: 10, role: :developer, allowed: true1901 allows/disallows the abilities based on the monitor feature access level1902 project_visibility: :public, access_level: 10, role: :guest, allowed: true1903 allows/disallows the abilities based on the monitor feature access level1904 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false1905 allows/disallows the abilities based on the monitor feature access level1906 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false1907 allows/disallows the abilities based on the monitor feature access level1908 project_visibility: :public, access_level: 0, role: :developer, allowed: false1909 allows/disallows the abilities based on the monitor feature access level1910 project_visibility: :public, access_level: 0, role: :guest, allowed: false1911 allows/disallows the abilities based on the monitor feature access level1912 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false1913 allows/disallows the abilities based on the monitor feature access level1914 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true1915 allows/disallows the abilities based on the monitor feature access level1916 project_visibility: :internal, access_level: 20, role: :developer, allowed: true1917 allows/disallows the abilities based on the monitor feature access level1918 project_visibility: :internal, access_level: 20, role: :guest, allowed: true1919 allows/disallows the abilities based on the monitor feature access level1920 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false1921 allows/disallows the abilities based on the monitor feature access level1922 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true1923 allows/disallows the abilities based on the monitor feature access level1924 project_visibility: :internal, access_level: 10, role: :developer, allowed: true1925 allows/disallows the abilities based on the monitor feature access level1926 project_visibility: :internal, access_level: 10, role: :guest, allowed: true1927 allows/disallows the abilities based on the monitor feature access level1928 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false1929 allows/disallows the abilities based on the monitor feature access level1930 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false1931 allows/disallows the abilities based on the monitor feature access level1932 project_visibility: :internal, access_level: 0, role: :developer, allowed: false1933 allows/disallows the abilities based on the monitor feature access level1934 project_visibility: :internal, access_level: 0, role: :guest, allowed: false1935 allows/disallows the abilities based on the monitor feature access level1936 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false1937 allows/disallows the abilities based on the monitor feature access level1938 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true1939 allows/disallows the abilities based on the monitor feature access level1940 project_visibility: :private, access_level: 20, role: :developer, allowed: true1941 allows/disallows the abilities based on the monitor feature access level1942 project_visibility: :private, access_level: 20, role: :guest, allowed: false1943 allows/disallows the abilities based on the monitor feature access level1944 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false1945 allows/disallows the abilities based on the monitor feature access level1946 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true1947 allows/disallows the abilities based on the monitor feature access level1948 project_visibility: :private, access_level: 10, role: :developer, allowed: true1949 allows/disallows the abilities based on the monitor feature access level1950 project_visibility: :private, access_level: 10, role: :guest, allowed: false1951 allows/disallows the abilities based on the monitor feature access level1952 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false1953 allows/disallows the abilities based on the monitor feature access level1954 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false1955 allows/disallows the abilities based on the monitor feature access level1956 project_visibility: :private, access_level: 0, role: :developer, allowed: false1957 allows/disallows the abilities based on the monitor feature access level1958 project_visibility: :private, access_level: 0, role: :guest, allowed: false1959 allows/disallows the abilities based on the monitor feature access level1960 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false1961 allows/disallows the abilities based on the monitor feature access level1962 feature flags feature1963 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true1964 allows/disallows the abilities based on the feature flags access level1965 project_visibility: :public, access_level: 20, role: :developer, allowed: true1966 allows/disallows the abilities based on the feature flags access level1967 project_visibility: :public, access_level: 20, role: :guest, allowed: true1968 allows/disallows the abilities based on the feature flags access level1969 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true1970 allows/disallows the abilities based on the feature flags access level1971 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true1972 allows/disallows the abilities based on the feature flags access level1973 project_visibility: :public, access_level: 10, role: :developer, allowed: true1974 allows/disallows the abilities based on the feature flags access level1975 project_visibility: :public, access_level: 10, role: :guest, allowed: true1976 allows/disallows the abilities based on the feature flags access level1977 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false1978 allows/disallows the abilities based on the feature flags access level1979 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false1980 allows/disallows the abilities based on the feature flags access level1981 project_visibility: :public, access_level: 0, role: :developer, allowed: false1982 allows/disallows the abilities based on the feature flags access level1983 project_visibility: :public, access_level: 0, role: :guest, allowed: false1984 allows/disallows the abilities based on the feature flags access level1985 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false1986 allows/disallows the abilities based on the feature flags access level1987 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true1988 allows/disallows the abilities based on the feature flags access level1989 project_visibility: :internal, access_level: 20, role: :developer, allowed: true1990 allows/disallows the abilities based on the feature flags access level1991 project_visibility: :internal, access_level: 20, role: :guest, allowed: true1992 allows/disallows the abilities based on the feature flags access level1993 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false1994 allows/disallows the abilities based on the feature flags access level1995 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true1996 allows/disallows the abilities based on the feature flags access level1997 project_visibility: :internal, access_level: 10, role: :developer, allowed: true1998 allows/disallows the abilities based on the feature flags access level1999 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2000 allows/disallows the abilities based on the feature flags access level2001 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2002 allows/disallows the abilities based on the feature flags access level2003 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2004 allows/disallows the abilities based on the feature flags access level2005 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2006 allows/disallows the abilities based on the feature flags access level2007 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2008 allows/disallows the abilities based on the feature flags access level2009 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2010 allows/disallows the abilities based on the feature flags access level2011 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2012 allows/disallows the abilities based on the feature flags access level2013 project_visibility: :private, access_level: 20, role: :developer, allowed: true2014 allows/disallows the abilities based on the feature flags access level2015 project_visibility: :private, access_level: 20, role: :guest, allowed: false2016 allows/disallows the abilities based on the feature flags access level2017 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2018 allows/disallows the abilities based on the feature flags access level2019 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2020 allows/disallows the abilities based on the feature flags access level2021 project_visibility: :private, access_level: 10, role: :developer, allowed: true2022 allows/disallows the abilities based on the feature flags access level2023 project_visibility: :private, access_level: 10, role: :guest, allowed: false2024 allows/disallows the abilities based on the feature flags access level2025 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2026 allows/disallows the abilities based on the feature flags access level2027 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2028 allows/disallows the abilities based on the feature flags access level2029 project_visibility: :private, access_level: 0, role: :developer, allowed: false2030 allows/disallows the abilities based on the feature flags access level2031 project_visibility: :private, access_level: 0, role: :guest, allowed: false2032 allows/disallows the abilities based on the feature flags access level2033 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2034 allows/disallows the abilities based on the feature flags access level2035 Releases feature2036 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2037 allows/disallows the abilities based on the Releases access level2038 project_visibility: :public, access_level: 20, role: :developer, allowed: true2039 allows/disallows the abilities based on the Releases access level2040 project_visibility: :public, access_level: 20, role: :guest, allowed: true2041 allows/disallows the abilities based on the Releases access level2042 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2043 allows/disallows the abilities based on the Releases access level2044 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2045 allows/disallows the abilities based on the Releases access level2046 project_visibility: :public, access_level: 10, role: :developer, allowed: true2047 allows/disallows the abilities based on the Releases access level2048 project_visibility: :public, access_level: 10, role: :guest, allowed: true2049 allows/disallows the abilities based on the Releases access level2050 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2051 allows/disallows the abilities based on the Releases access level2052 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2053 allows/disallows the abilities based on the Releases access level2054 project_visibility: :public, access_level: 0, role: :developer, allowed: false2055 allows/disallows the abilities based on the Releases access level2056 project_visibility: :public, access_level: 0, role: :guest, allowed: false2057 allows/disallows the abilities based on the Releases access level2058 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2059 allows/disallows the abilities based on the Releases access level2060 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2061 allows/disallows the abilities based on the Releases access level2062 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2063 allows/disallows the abilities based on the Releases access level2064 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2065 allows/disallows the abilities based on the Releases access level2066 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2067 allows/disallows the abilities based on the Releases access level2068 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2069 allows/disallows the abilities based on the Releases access level2070 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2071 allows/disallows the abilities based on the Releases access level2072 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2073 allows/disallows the abilities based on the Releases access level2074 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2075 allows/disallows the abilities based on the Releases access level2076 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2077 allows/disallows the abilities based on the Releases access level2078 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2079 allows/disallows the abilities based on the Releases access level2080 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2081 allows/disallows the abilities based on the Releases access level2082 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2083 allows/disallows the abilities based on the Releases access level2084 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2085 allows/disallows the abilities based on the Releases access level2086 project_visibility: :private, access_level: 20, role: :developer, allowed: true2087 allows/disallows the abilities based on the Releases access level2088 project_visibility: :private, access_level: 20, role: :guest, allowed: true2089 allows/disallows the abilities based on the Releases access level2090 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2091 allows/disallows the abilities based on the Releases access level2092 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2093 allows/disallows the abilities based on the Releases access level2094 project_visibility: :private, access_level: 10, role: :developer, allowed: true2095 allows/disallows the abilities based on the Releases access level2096 project_visibility: :private, access_level: 10, role: :guest, allowed: true2097 allows/disallows the abilities based on the Releases access level2098 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2099 allows/disallows the abilities based on the Releases access level2100 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2101 allows/disallows the abilities based on the Releases access level2102 project_visibility: :private, access_level: 0, role: :developer, allowed: false2103 allows/disallows the abilities based on the Releases access level2104 project_visibility: :private, access_level: 0, role: :guest, allowed: false2105 allows/disallows the abilities based on the Releases access level2106 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2107 allows/disallows the abilities based on the Releases access level2108 infrastructure feature2109 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2110 allows/disallows the abilities based on the infrastructure access level2111 project_visibility: :public, access_level: 20, role: :developer, allowed: true2112 allows/disallows the abilities based on the infrastructure access level2113 project_visibility: :public, access_level: 20, role: :guest, allowed: true2114 allows/disallows the abilities based on the infrastructure access level2115 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2116 allows/disallows the abilities based on the infrastructure access level2117 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2118 allows/disallows the abilities based on the infrastructure access level2119 project_visibility: :public, access_level: 10, role: :developer, allowed: true2120 allows/disallows the abilities based on the infrastructure access level2121 project_visibility: :public, access_level: 10, role: :guest, allowed: true2122 allows/disallows the abilities based on the infrastructure access level2123 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2124 allows/disallows the abilities based on the infrastructure access level2125 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2126 allows/disallows the abilities based on the infrastructure access level2127 project_visibility: :public, access_level: 0, role: :developer, allowed: false2128 allows/disallows the abilities based on the infrastructure access level2129 project_visibility: :public, access_level: 0, role: :guest, allowed: false2130 allows/disallows the abilities based on the infrastructure access level2131 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2132 allows/disallows the abilities based on the infrastructure access level2133 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2134 allows/disallows the abilities based on the infrastructure access level2135 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2136 allows/disallows the abilities based on the infrastructure access level2137 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2138 allows/disallows the abilities based on the infrastructure access level2139 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2140 allows/disallows the abilities based on the infrastructure access level2141 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2142 allows/disallows the abilities based on the infrastructure access level2143 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2144 allows/disallows the abilities based on the infrastructure access level2145 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2146 allows/disallows the abilities based on the infrastructure access level2147 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2148 allows/disallows the abilities based on the infrastructure access level2149 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2150 allows/disallows the abilities based on the infrastructure access level2151 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2152 allows/disallows the abilities based on the infrastructure access level2153 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2154 allows/disallows the abilities based on the infrastructure access level2155 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2156 allows/disallows the abilities based on the infrastructure access level2157 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2158 allows/disallows the abilities based on the infrastructure access level2159 project_visibility: :private, access_level: 20, role: :developer, allowed: true2160 allows/disallows the abilities based on the infrastructure access level2161 project_visibility: :private, access_level: 20, role: :guest, allowed: true2162 allows/disallows the abilities based on the infrastructure access level2163 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2164 allows/disallows the abilities based on the infrastructure access level2165 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2166 allows/disallows the abilities based on the infrastructure access level2167 project_visibility: :private, access_level: 10, role: :developer, allowed: true2168 allows/disallows the abilities based on the infrastructure access level2169 project_visibility: :private, access_level: 10, role: :guest, allowed: true2170 allows/disallows the abilities based on the infrastructure access level2171 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2172 allows/disallows the abilities based on the infrastructure access level2173 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2174 allows/disallows the abilities based on the infrastructure access level2175 project_visibility: :private, access_level: 0, role: :developer, allowed: false2176 allows/disallows the abilities based on the infrastructure access level2177 project_visibility: :private, access_level: 0, role: :guest, allowed: false2178 allows/disallows the abilities based on the infrastructure access level2179 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2180 allows/disallows the abilities based on the infrastructure access level2181 access_security_and_compliance2182 when the "Security and Compliance" is enabled2183 when the role is owner2184 is expected to be allowed :access_security_and_compliance2185 when the role is maintainer2186 is expected to be allowed :access_security_and_compliance2187 when the role is developer2188 is expected to be allowed :access_security_and_compliance2189 with admin2190 when admin mode enabled2191 is expected to be allowed :access_security_and_compliance2192 when admin mode disabled2193 is expected to be disallowed :access_security_and_compliance2194 when the role is reporter2195 is expected to be disallowed :access_security_and_compliance2196 when the role is guest2197 is expected to be disallowed :access_security_and_compliance2198 with non member2199 is expected to be disallowed :access_security_and_compliance2200 with anonymous2201 is expected to be disallowed :access_security_and_compliance2202 when the "Security and Compliance" is not enabled2203 when the role is owner2204 is expected to be disallowed :access_security_and_compliance2205 when the role is maintainer2206 is expected to be disallowed :access_security_and_compliance2207 when the role is developer2208 is expected to be disallowed :access_security_and_compliance2209 when the role is reporter2210 is expected to be disallowed :access_security_and_compliance2211 when the role is guest2212 is expected to be disallowed :access_security_and_compliance2213 with admin2214 when admin mode enabled2215 is expected to be disallowed :access_security_and_compliance2216 when admin mode disabled2217 is expected to be disallowed :access_security_and_compliance2218 with non member2219 is expected to be disallowed :access_security_and_compliance2220 with anonymous2221 is expected to be disallowed :access_security_and_compliance2222 when user is authenticated via CI_JOB_TOKEN2223 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2224 enforces the expected permissions2225 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2226 enforces the expected permissions2227 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: false2228 enforces the expected permissions2229 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2230 enforces the expected permissions2231 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2232 enforces the expected permissions2233 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2234 enforces the expected permissions2235 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: false2236 enforces the expected permissions2237 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2238 enforces the expected permissions2239 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2240 enforces the expected permissions2241 project_visibility: :internal, user_role: :reporter, external_user: true, scope_project_type: :same, token_scope_enabled: true, result: true2242 enforces the expected permissions2243 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2244 enforces the expected permissions2245 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2246 enforces the expected permissions2247 project_visibility: :internal, user_role: :reporter, external_user: true, scope_project_type: :different, token_scope_enabled: true, result: false2248 enforces the expected permissions2249 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2250 enforces the expected permissions2251 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2252 enforces the expected permissions2253 project_visibility: :internal, user_role: :guest, external_user: true, scope_project_type: :same, token_scope_enabled: true, result: true2254 enforces the expected permissions2255 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2256 enforces the expected permissions2257 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2258 enforces the expected permissions2259 project_visibility: :internal, user_role: :guest, external_user: true, scope_project_type: :different, token_scope_enabled: true, result: false2260 enforces the expected permissions2261 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2262 enforces the expected permissions2263 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2264 enforces the expected permissions2265 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2266 enforces the expected permissions2267 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2268 enforces the expected permissions2269 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2270 enforces the expected permissions2271 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2272 enforces the expected permissions2273 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2274 enforces the expected permissions2275 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2276 enforces the expected permissions2277 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2278 enforces the expected permissions2279 container_image policies2280 project_visibility: :public, access_level: 20, role: :admin, allowed: true2281 allows/disallows the abilities based on the container_registry feature access level2282 allows build_read_container_image to admins who are also team members2283 project_visibility: :public, access_level: 20, role: :owner, allowed: true2284 allows/disallows the abilities based on the container_registry feature access level2285 allows build_read_container_image to admins who are also team members2286 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2287 allows/disallows the abilities based on the container_registry feature access level2288 allows build_read_container_image to admins who are also team members2289 project_visibility: :public, access_level: 20, role: :developer, allowed: true2290 allows/disallows the abilities based on the container_registry feature access level2291 allows build_read_container_image to admins who are also team members2292 project_visibility: :public, access_level: 20, role: :reporter, allowed: true2293 allows/disallows the abilities based on the container_registry feature access level2294 allows build_read_container_image to admins who are also team members2295 project_visibility: :public, access_level: 20, role: :guest, allowed: true2296 allows/disallows the abilities based on the container_registry feature access level2297 allows build_read_container_image to admins who are also team members2298 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2299 allows/disallows the abilities based on the container_registry feature access level2300 allows build_read_container_image to admins who are also team members2301 project_visibility: :public, access_level: 10, role: :admin, allowed: true2302 allows/disallows the abilities based on the container_registry feature access level2303 allows build_read_container_image to admins who are also team members2304 project_visibility: :public, access_level: 10, role: :owner, allowed: true2305 allows/disallows the abilities based on the container_registry feature access level2306 allows build_read_container_image to admins who are also team members2307 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2308 allows/disallows the abilities based on the container_registry feature access level2309 allows build_read_container_image to admins who are also team members2310 project_visibility: :public, access_level: 10, role: :developer, allowed: true2311 allows/disallows the abilities based on the container_registry feature access level2312 allows build_read_container_image to admins who are also team members2313 project_visibility: :public, access_level: 10, role: :reporter, allowed: true2314 allows/disallows the abilities based on the container_registry feature access level2315 allows build_read_container_image to admins who are also team members2316 project_visibility: :public, access_level: 10, role: :guest, allowed: false2317 allows/disallows the abilities based on the container_registry feature access level2318 allows build_read_container_image to admins who are also team members2319 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2320 allows/disallows the abilities based on the container_registry feature access level2321 allows build_read_container_image to admins who are also team members2322 project_visibility: :public, access_level: 0, role: :admin, allowed: false2323 allows/disallows the abilities based on the container_registry feature access level2324 allows build_read_container_image to admins who are also team members2325 project_visibility: :public, access_level: 0, role: :owner, allowed: false2326 allows/disallows the abilities based on the container_registry feature access level2327 allows build_read_container_image to admins who are also team members2328 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2329 allows/disallows the abilities based on the container_registry feature access level2330 allows build_read_container_image to admins who are also team members2331 project_visibility: :public, access_level: 0, role: :developer, allowed: false2332 allows/disallows the abilities based on the container_registry feature access level2333 allows build_read_container_image to admins who are also team members2334 project_visibility: :public, access_level: 0, role: :reporter, allowed: false2335 allows/disallows the abilities based on the container_registry feature access level2336 allows build_read_container_image to admins who are also team members2337 project_visibility: :public, access_level: 0, role: :guest, allowed: false2338 allows/disallows the abilities based on the container_registry feature access level2339 allows build_read_container_image to admins who are also team members2340 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2341 allows/disallows the abilities based on the container_registry feature access level2342 allows build_read_container_image to admins who are also team members2343 project_visibility: :internal, access_level: 20, role: :admin, allowed: true2344 allows/disallows the abilities based on the container_registry feature access level2345 allows build_read_container_image to admins who are also team members2346 project_visibility: :internal, access_level: 20, role: :owner, allowed: true2347 allows/disallows the abilities based on the container_registry feature access level2348 allows build_read_container_image to admins who are also team members2349 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2350 allows/disallows the abilities based on the container_registry feature access level2351 allows build_read_container_image to admins who are also team members2352 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2353 allows/disallows the abilities based on the container_registry feature access level2354 allows build_read_container_image to admins who are also team members2355 project_visibility: :internal, access_level: 20, role: :reporter, allowed: true2356 allows/disallows the abilities based on the container_registry feature access level2357 allows build_read_container_image to admins who are also team members2358 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2359 allows/disallows the abilities based on the container_registry feature access level2360 allows build_read_container_image to admins who are also team members2361 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2362 allows/disallows the abilities based on the container_registry feature access level2363 allows build_read_container_image to admins who are also team members2364 project_visibility: :internal, access_level: 10, role: :admin, allowed: true2365 allows/disallows the abilities based on the container_registry feature access level2366 allows build_read_container_image to admins who are also team members2367 project_visibility: :internal, access_level: 10, role: :owner, allowed: true2368 allows/disallows the abilities based on the container_registry feature access level2369 allows build_read_container_image to admins who are also team members2370 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2371 allows/disallows the abilities based on the container_registry feature access level2372 allows build_read_container_image to admins who are also team members2373 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2374 allows/disallows the abilities based on the container_registry feature access level2375 allows build_read_container_image to admins who are also team members2376 project_visibility: :internal, access_level: 10, role: :reporter, allowed: true2377 allows/disallows the abilities based on the container_registry feature access level2378 allows build_read_container_image to admins who are also team members2379 project_visibility: :internal, access_level: 10, role: :guest, allowed: false2380 allows/disallows the abilities based on the container_registry feature access level2381 allows build_read_container_image to admins who are also team members2382 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2383 allows/disallows the abilities based on the container_registry feature access level2384 allows build_read_container_image to admins who are also team members2385 project_visibility: :internal, access_level: 0, role: :admin, allowed: false2386 allows/disallows the abilities based on the container_registry feature access level2387 allows build_read_container_image to admins who are also team members2388 project_visibility: :internal, access_level: 0, role: :owner, allowed: false2389 allows/disallows the abilities based on the container_registry feature access level2390 allows build_read_container_image to admins who are also team members2391 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2392 allows/disallows the abilities based on the container_registry feature access level2393 allows build_read_container_image to admins who are also team members2394 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2395 allows/disallows the abilities based on the container_registry feature access level2396 allows build_read_container_image to admins who are also team members2397 project_visibility: :internal, access_level: 0, role: :reporter, allowed: false2398 allows/disallows the abilities based on the container_registry feature access level2399 allows build_read_container_image to admins who are also team members2400 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2401 allows/disallows the abilities based on the container_registry feature access level2402 allows build_read_container_image to admins who are also team members2403 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2404 allows/disallows the abilities based on the container_registry feature access level2405 allows build_read_container_image to admins who are also team members2406 project_visibility: :private, access_level: 20, role: :admin, allowed: true2407 allows/disallows the abilities based on the container_registry feature access level2408 allows build_read_container_image to admins who are also team members2409 project_visibility: :private, access_level: 20, role: :owner, allowed: true2410 allows/disallows the abilities based on the container_registry feature access level2411 allows build_read_container_image to admins who are also team members2412 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2413 allows/disallows the abilities based on the container_registry feature access level2414 allows build_read_container_image to admins who are also team members2415 project_visibility: :private, access_level: 20, role: :developer, allowed: true2416 allows/disallows the abilities based on the container_registry feature access level2417 allows build_read_container_image to admins who are also team members2418 project_visibility: :private, access_level: 20, role: :reporter, allowed: true2419 allows/disallows the abilities based on the container_registry feature access level2420 allows build_read_container_image to admins who are also team members2421 project_visibility: :private, access_level: 20, role: :guest, allowed: false2422 allows/disallows the abilities based on the container_registry feature access level2423 allows build_read_container_image to admins who are also team members2424 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2425 allows/disallows the abilities based on the container_registry feature access level2426 allows build_read_container_image to admins who are also team members2427 project_visibility: :private, access_level: 10, role: :admin, allowed: true2428 allows/disallows the abilities based on the container_registry feature access level2429 allows build_read_container_image to admins who are also team members2430 project_visibility: :private, access_level: 10, role: :owner, allowed: true2431 allows/disallows the abilities based on the container_registry feature access level2432 allows build_read_container_image to admins who are also team members2433 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2434 allows/disallows the abilities based on the container_registry feature access level2435 allows build_read_container_image to admins who are also team members2436 project_visibility: :private, access_level: 10, role: :developer, allowed: true2437 allows/disallows the abilities based on the container_registry feature access level2438 allows build_read_container_image to admins who are also team members2439 project_visibility: :private, access_level: 10, role: :reporter, allowed: true2440 allows/disallows the abilities based on the container_registry feature access level2441 allows build_read_container_image to admins who are also team members2442 project_visibility: :private, access_level: 10, role: :guest, allowed: false2443 allows/disallows the abilities based on the container_registry feature access level2444 allows build_read_container_image to admins who are also team members2445 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2446 allows/disallows the abilities based on the container_registry feature access level2447 allows build_read_container_image to admins who are also team members2448 project_visibility: :private, access_level: 0, role: :admin, allowed: false2449 allows/disallows the abilities based on the container_registry feature access level2450 allows build_read_container_image to admins who are also team members2451 project_visibility: :private, access_level: 0, role: :owner, allowed: false2452 allows/disallows the abilities based on the container_registry feature access level2453 allows build_read_container_image to admins who are also team members2454 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2455 allows/disallows the abilities based on the container_registry feature access level2456 allows build_read_container_image to admins who are also team members2457 project_visibility: :private, access_level: 0, role: :developer, allowed: false2458 allows/disallows the abilities based on the container_registry feature access level2459 allows build_read_container_image to admins who are also team members2460 project_visibility: :private, access_level: 0, role: :reporter, allowed: false2461 allows/disallows the abilities based on the container_registry feature access level2462 allows build_read_container_image to admins who are also team members2463 project_visibility: :private, access_level: 0, role: :guest, allowed: false2464 allows/disallows the abilities based on the container_registry feature access level2465 allows build_read_container_image to admins who are also team members2466 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2467 allows/disallows the abilities based on the container_registry feature access level2468 allows build_read_container_image to admins who are also team members2469 update_runners_registration_token2470 when anonymous2471 is expected not to be allowed :update_runners_registration_token2472 admin2473 when admin mode is enabled2474 is expected to be allowed :update_runners_registration_token2475 when admin mode is disabled2476 is expected to be disallowed :update_runners_registration_token2477 guest2478 is expected to be disallowed :update_runners_registration_token2479 reporter2480 is expected to be disallowed :update_runners_registration_token2481 developer2482 is expected to be disallowed :update_runners_registration_token2483 maintainer2484 is expected to be allowed :update_runners_registration_token2485 owner2486 is expected to be allowed :update_runners_registration_token2487 register_project_runners2488 admin2489 when admin mode is enabled2490 is expected to be allowed :register_project_runners2491 with project runner registration disabled2492 is expected to be allowed :register_project_runners2493 with specific project runner registration disabled2494 is expected to be allowed :register_project_runners2495 when admin mode is disabled2496 is expected to be disallowed :register_project_runners2497 with owner2498 is expected to be allowed :register_project_runners2499 with project runner registration disabled2500 is expected to be disallowed :register_project_runners2501 with specific project runner registration disabled2502 is expected to be disallowed :register_project_runners2503 with maintainer2504 is expected to be allowed :register_project_runners2505 with reporter2506 is expected to be disallowed :register_project_runners2507 with guest2508 is expected to be disallowed :register_project_runners2509 with non member2510 is expected to be disallowed :register_project_runners2511 with anonymous2512 is expected to be disallowed :register_project_runners2513 create_runner2514 create_runner_workflow_for_namespace flag enabled2515 admin2516 when admin mode is enabled2517 is expected to be allowed :create_runner2518 with project runner registration disabled2519 is expected to be allowed :create_runner2520 with specific project runner registration disabled2521 is expected to be allowed :create_runner2522 when admin mode is disabled2523 is expected to be disallowed :create_runner2524 with owner2525 is expected to be allowed :create_runner2526 with project runner registration disabled2527 is expected to be disallowed :create_runner2528 with specific project runner registration disabled2529 is expected to be disallowed :create_runner2530 with maintainer2531 is expected to be allowed :create_runner2532 with reporter2533 is expected to be disallowed :create_runner2534 with guest2535 is expected to be disallowed :create_runner2536 with developer2537 is expected to be disallowed :create_runner2538 with anonymous2539 is expected to be disallowed :create_runner2540 create_runner_workflow_for_namespace flag disabled2541 admin2542 when admin mode is enabled2543 is expected to be disallowed :create_runner2544 with project runner registration disabled2545 is expected to be disallowed :create_runner2546 with specific project runner registration disabled2547 is expected to be disallowed :create_runner2548 when admin mode is disabled2549 is expected to be disallowed :create_runner2550 with owner2551 is expected to be disallowed :create_runner2552 with project runner registration disabled2553 is expected to be disallowed :create_runner2554 with specific project runner registration disabled2555 is expected to be disallowed :create_runner2556 with maintainer2557 is expected to be disallowed :create_runner2558 with reporter2559 is expected to be disallowed :create_runner2560 with guest2561 is expected to be disallowed :create_runner2562 with developer2563 is expected to be disallowed :create_runner2564 with anonymous2565 is expected to be disallowed :create_runner2566 admin_project_runners2567 admin2568 when admin mode is enabled2569 is expected to be allowed :create_runner2570 when admin mode is disabled2571 is expected to be disallowed :create_runner2572 with owner2573 is expected to be allowed :create_runner2574 with maintainer2575 is expected to be allowed :create_runner2576 with reporter2577 is expected to be disallowed :create_runner2578 with guest2579 is expected to be disallowed :create_runner2580 with developer2581 is expected to be disallowed :create_runner2582 with anonymous2583 is expected to be disallowed :create_runner2584 read_project_runners2585 with maintainer2586 is expected to be allowed :read_project_runners2587 with admin2588 is expected to be allowed :read_project_runners2589 with reporter2590 is expected to be disallowed :read_project_runners2591 when the user is not part of the project2592 is expected to be disallowed :read_project_runners2593 update_sentry_issue2594 role: :owner, allowed: true2595 is expected to equal true2596 role: :maintainer, allowed: true2597 is expected to equal true2598 role: :developer, allowed: true2599 is expected to equal true2600 role: :reporter, allowed: false2601 is expected to equal false2602 role: :guest, allowed: false2603 is expected to equal false2604 read_milestone2605 when project is public2606 and issues and merge requests are private2607 when user is an inherited member from the group2608 and user is a guest2609 is expected to be allowed :read_milestone2610 and user is a reporter2611 is expected to be allowed :read_milestone2612 and user is a developer2613 is expected to be allowed :read_milestone2614 role_enables_download_code2615 default roles2616 private project2617 role: :owner, allowed: true2618 is expected to equal true2619 role: :maintainer, allowed: true2620 is expected to equal true2621 role: :developer, allowed: true2622 is expected to equal true2623 role: :reporter, allowed: true2624 is expected to equal true2625 role: :guest, allowed: false2626 is expected to equal false2627 read_code2628 when the current_user can download_code2629 is expected to be allowed :read_code2630 when the current_user cannot download_code2631 is expected not to be allowed :read_code2632 read_namespace_catalog2633 is expected to be disallowed :read_namespace_catalog2634 add_catalog_resource2635 is expected to be disallowed :read_namespace_catalog2636Note2637 associations2638 is expected to belong to project required: false2639 is expected to belong to noteable required: false2640 is expected to belong to author class_name => User required: false2641 is expected to have many todos2642 is expected to belong to review required: false inverse_of => notes2643 modules2644 is expected to includes the Participable module2645 is expected to includes the Mentionable module2646 is expected to includes the Awardable module2647 is expected to includes the Sortable module2648 default values2649 is expected not to be system2650 validation2651 is expected to validate that the length of :note is at most 10000002652 is expected to validate that :note cannot be empty/falsy2653 is expected to validate that :project cannot be empty/falsy2654 when note is on commit2655 is expected to validate that :commit_id cannot be empty/falsy2656 is expected not to validate that :noteable_id cannot be empty/falsy2657 when note is not on commit2658 is expected not to validate that :commit_id cannot be empty/falsy2659 is expected to validate that :noteable_id cannot be empty/falsy2660 when noteable and note project differ2661 is expected to be invalid2662 when noteable and note project are the same2663 is expected to be valid2664 when project is missing for a project related note2665 is expected to be invalid2666 when noteable is a personal snippet2667 is valid without project2668 max notes limit2669 when creating a system note2670 is expected to be valid2671 when creating a user note2672 is expected not to be valid2673 when updating an existing note on a noteable that already exceeds the limit2674 is expected to be valid2675 created_at in the past2676 when creating a note not too much in the past2677 is expected to be valid2678 when creating a note too much in the past2679 is expected not to be valid2680 confidentiality2681 for existing public note2682 is not possible to change the note to confidential2683 is possible to change confidentiality from nil to false2684 for existing confidential note2685 is not possible to change the note to public2686 for a new note2687 allows to create a confidential note for an issue2688 when noteable is not allowed to have confidential notes2689 can not be set confidential2690 when note type is not allowed to be confidential2691 can not be set confidential2692 when the note is a discussion note2693 is expected to be valid2694 when replying to a note2695 when the note is reply to a confidential note2696 is expected to be valid2697 when the note is reply to a public note2698 can not be set confidential2699 when reply note is public but discussion is confidential2700 can not be set confidential2701 callbacks2702 #keep_around_commit2703 calls #keep_around_commit normally2704 skips #keep_around_commit if 'skip_keep_around_commits' is true2705 skips #keep_around_commit if 'importing' is true2706 #notify_after_create2707 calls #after_note_created on the noteable2708 #notify_after_destroy2709 calls #after_note_destroyed on the noteable2710 does not error if noteable is nil2711 sets internal flag2712 when confidential is `true`2713 is expected to equal true2714 when confidential is `false`2715 is expected to equal false2716 when confidential is `nil`2717 is expected to equal false2718 Commit notes2719 is accessible through #noteable2720 saves a valid note2721 is recognized by #for_commit?2722 keeps the commit around2723 does not generate N+1 queries for participants2724 authorization2725 read2726 is expected to be falsey2727 is expected to be truthy2728 is expected to be falsey2729 write2730 is expected to be falsey2731 is expected to be truthy2732 is expected to be falsey2733 admin2734 is expected to be falsey2735 is expected to be truthy2736 is expected to be falsey2737 behaves like an editable mentionable2738 creates new cross-reference notes when the mentionable text is edited2739 behaves like a mentionable2740 generates a descriptive back-reference2741 extracts references from its reference property2742 creates cross-reference notes2743 when there are cached markdown fields2744 sends in cached markdown fields when appropriate2745 when there are cached markdown fields2746 refreshes markdown cache if necessary2747 when the markdown cache is stale2748 persists the refreshed cache so that it does not have to be refreshed every time2749 #all_references2750 reads the rendered note body from the cache2751 editable?2752 returns true2753 returns false2754 noteable_author?2755 when note is on commit2756 if user is the noteable author2757 returns true2758 if user is not the noteable author2759 returns false2760 when note is on issue2761 if user is the noteable author2762 returns true2763 if user is not the noteable author2764 returns false2765 last_edited_at2766 with last_edited_at2767 returns last_edited_at2768 without last_edited_at2769 returns updated_at2770 edited?2771 with updated_by2772 returns true2773 without updated_by2774 returns false2775 #confidential?2776 when note is not confidential2777 is false when a noteable is not confidential2778 is false when noteable can't be confidential2779 when include_noteable is set to true2780 is true when a noteable is confidential2781 when include_noteable is not set to true2782 is false when a noteable is confidential2783 when note is confidential2784 is true even when a noteable is not confidential2785 #system_note_visible_for?2786 when project is public2787 behaves like users with note access2788 returns true2789 when group is private2790 returns visible but not readable for non-member user2791 returns visible but not readable for a nil user2792 behaves like users with note access2793 returns true2794 #system_note_viewable_by?(user)2795 when system_note_metadata is not present2796 returns true2797 system_note_metadata isn't of type 'branch' or 'contact'2798 returns true2799 system_note_metadata is of type 'branch'2800 user doesn't have :download_code ability2801 returns false2802 user has the :download_code ability2803 returns true2804 system_note_metadata is of type 'contact'2805 user doesn't have :read_crm_contact ability2806 returns false2807 user has the :read_crm_contact ability2808 returns true2809 system_note_visible_for?2810 when there is one reference in note2811 behaves like checks references2812 returns false2813 returns true2814 returns true if user visible reference count set2815 returns false if user visible reference count set but does not match total reference count2816 returns false if ref count is 02817 when there is a reference to a label2818 behaves like checks references2819 returns false2820 returns true2821 returns true if user visible reference count set2822 returns false if user visible reference count set but does not match total reference count2823 returns false if ref count is 02824 when there are two references in note2825 behaves like checks references2826 returns false2827 returns true2828 returns true if user visible reference count set2829 returns false if user visible reference count set but does not match total reference count2830 returns false if ref count is 02831 when there is a private issue and user reference2832 behaves like checks references2833 returns false2834 returns true2835 returns true if user visible reference count set2836 returns false if user visible reference count set but does not match total reference count2837 returns false if ref count is 02838 when there is a publicly visible user reference2839 returns true for other users2840 returns true for anonymous users2841 #system_note_with_references?2842 falsey for user-generated notes2843 when the note might contain cross references2844 with commit2845 delegates to the cross-reference regex2846 with cross_reference2847 delegates to the cross-reference regex2848 with closed2849 delegates to the cross-reference regex2850 with duplicate2851 delegates to the cross-reference regex2852 with moved2853 delegates to the cross-reference regex2854 with merge2855 delegates to the cross-reference regex2856 with label2857 delegates to the cross-reference regex2858 with milestone2859 delegates to the cross-reference regex2860 with relate2861 delegates to the cross-reference regex2862 with unrelate2863 delegates to the cross-reference regex2864 with cloned2865 delegates to the cross-reference regex2866 with epic_issue_added2867 delegates to the cross-reference regex2868 with issue_added_to_epic2869 delegates to the cross-reference regex2870 with epic_issue_removed2871 delegates to the cross-reference regex2872 with issue_removed_from_epic2873 delegates to the cross-reference regex2874 with epic_issue_moved2875 delegates to the cross-reference regex2876 with issue_changed_epic2877 delegates to the cross-reference regex2878 with relate_epic2879 delegates to the cross-reference regex2880 with unrelate_epic2881 delegates to the cross-reference regex2882 with iteration2883 delegates to the cross-reference regex2884 when the note cannot contain cross references2885 scan for a `mentioned in` prefix2886 when system note metadata is not present2887 delegates to the system note service2888 with a system note2889 with :label action2890 is expected to be falsy2891 behaves like system_note_metadata includes note action2892 delegates to the cross-reference regex2893 with cross reference label note2894 is expected to be truthy2895 with :milestone action2896 is expected to be falsy2897 behaves like system_note_metadata includes note action2898 delegates to the cross-reference regex2899 with cross reference milestone note2900 is expected to be truthy2901 clear_blank_line_code!2902 clears a blank line code before validation2903 #participants2904 includes the note author2905 #start_of_discussion?2906 returns true when note is the start of a discussion2907 returns false when note is a reply2908 .find_discussion2909 returns a discussion with multiple notes2910 .grouped_diff_discussions2911 active diff discussions2912 includes active discussions2913 doesn't include outdated discussions2914 groups the discussions by line code2915 with image discussions2916 groups image discussions by file identifier2917 groups text discussions by line code2918 diff discussions for older diff refs2919 for diff refs a discussion was created at2920 includes discussions that were created then2921 groups the discussions by original line code2922 for diff refs a discussion was last active at2923 includes discussions that were last active2924 groups the discussions by line code2925 .simple_sorts2926 does not contain name sorts2927 .cherry_picked_merge_requests2928 returns merge requests that match the given merge commit2929 #for_work_item?2930 returns true for a work item2931 returns false for an issue2932 #for_project_snippet?2933 returns true for a project snippet note2934 returns false for a personal snippet note2935 #for_personal_snippet?2936 returns false for a project snippet note2937 returns true for a personal snippet note2938 #for_design2939 is true when the noteable is a design2940 #to_ability_name2941 returns note2942 #noteable_ability_name2943 returns snippet for a project snippet note2944 returns snippet for a personal snippet note2945 returns merge_request for an MR note2946 returns issue for an issue note2947 returns commit for a commit note2948 returns alert_management_alert for an alert note2949 #cache_markdown_field2950 note for a project snippet2951 skips project check2952 note for a personal snippet2953 does not skip project check2954 #can_be_discussion_note?2955 for a note on a merge request2956 returns true2957 for a note on an issue2958 returns true2959 for a note on a commit2960 returns true2961 for a note on a snippet2962 returns true2963 for a diff note on merge request2964 returns false2965 for a diff note on commit2966 returns false2967 for a discussion note2968 returns false2969 #discussion_class2970 when the note is displayed out of context2971 returns OutOfContextDiscussion2972 when the note is displayed in the original context2973 returns IndividualNoteDiscussion2974 #discussion_id2975 when it is newly created2976 has a discussion id2977 when it didn't store a discussion id before2978 has a discussion id2979 when the note is displayed out of context2980 overrides the discussion id2981 #to_discussion2982 returns a discussion with just this note2983 #discussion2984 when the note is part of a discussion2985 returns the discussion this note is in2986 when the note is not part of a discussion2987 returns a discussion with just this note2988 #part_of_discussion?2989 for a regular note2990 returns false2991 for a diff note2992 returns true2993 for a discussion note2994 returns true2995 #in_reply_to?2996 for a note2997 when part of a discussion2998 checks if the note is in reply to the other discussion2999 when not part of a discussion3000 checks if the note is in reply to the other noteable3001 for a discussion3002 when part of the same discussion3003 returns true3004 when not part of the same discussion3005 returns false3006 for a noteable3007 when a comment on the same noteable3008 returns true3009 when not a comment on the same noteable3010 returns false3011 #references3012 when part of a discussion3013 references all earlier notes in the discussion3014 when not part of a discussion3015 returns the noteable3016 expiring ETag cache3017 expires cache for note's issue when note is saved3018 expires cache for note's issue when note is destroyed3019 when issuable etag caching is disabled3020 does not store cache key3021 for merge requests3022 when adding a note to the MR3023 expires the MR note etag cache3024 when adding a note to a commit on the MR3025 expires the MR note etag cache3026 #with_notes_filter3027 when notes filter is nil3028 is expected to include #<Note id: 170, note: [FILTERED], noteable_type: "Issue", author_id: 344, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 171, note: [FILTERED], noteable_type: "Issue", author_id: 345, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>3029 when notes filter is set to all notes3030 is expected to include #<Note id: 172, note: [FILTERED], noteable_type: "Issue", author_id: 346, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 173, note: [FILTERED], noteable_type: "Issue", author_id: 347, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>3031 when notes filter is set to only comments3032 is expected to include #<Note id: 174, note: [FILTERED], noteable_type: "Issue", author_id: 348, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>3033 is expected not to include #<Note id: 177, note: [FILTERED], noteable_type: "Issue", author_id: 351, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>3034 #parent3035 returns project for project notes3036 returns nil for personal snippet note3037 scopes3038 .for_note_or_capitalized_note3039 returns the expected matching note3040 returns the expected capitalized note3041 does not support pattern matching3042 .like_note_or_capitalized_note3043 returns the expected matching note3044 returns the expected capitalized note3045 supports pattern matching3046 .with_suggestions3047 returns the correct note3048 .inc_relations_for_view3049 when noteable can not have diffs3050 does not include additional associations3051 when noteable is not set3052 includes additional diff associations3053 when noteable can have diffs3054 includes additional diff associations3055 .without_hidden3056 when a note with a banned author exists3057 when the :hidden_notes feature is disabled3058 is expected to include #<Note id: 187, note: [FILTERED], noteable_type: "Issue", author_id: 362, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 180, note: [FILTERED], noteable_type: "Issue", author_id: 355, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>3059 when the :hidden_notes feature is enabled3060 is expected not to include #<Note id: 187, note: [FILTERED], noteable_type: "Issue", author_id: 362, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>3061 is expected to include #<Note id: 180, note: [FILTERED], noteable_type: "Issue", author_id: 355, created_at: "2023-04-27 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>3062 banzai_render_context3063 when noteable is a merge request3064 sets the label_url_method in the context3065 when noteable is an issue3066 sets the label_url_method in the context3067 when noteable is a personal snippet3068 sets the parent user in the context3069 #parent_user3070 returns the author of a personal snippet3071 returns nil for project snippet3072 returns nil when noteable is not a snippet3073 #skip_notification?3074 when there is no review3075 is expected to be falsey3076 when the review exists3077 is expected to be truthy3078 #attachment3079 is cleaned up correctly when project is destroyed3080 #post_processed_cache_key3081 returns cache key and author cache key by default3082 when note has no author3083 returns cache key only3084 when note has redacted_note_html3085 returns cache key with redacted_note_html sha3086 #commands_changes3087 only returns allowed keys3088 #bump_updated_at3089 sets updated_at to the current timestamp3090 with legacy edited note3091 copies updated_at to last_edited_at before bumping the timestamp3092 #note3093 behaves like note that replaces task for checklist item in body text3094 when note is not a system note3095 is expected to eq "marked the task **task 1** as completed"3096 when note is a system note3097 when note noteable_type is not Issue3098 is expected to eq "marked the task **task 1** as completed"3099 when note noteable_type is Issue3100 is expected to eq "marked the checklist item **task 1** as completed"3101 context when note and cache are null (happens in bulk insert)3102 is expected to be in [nil, ""]3103 behaves like note that replaces task for checklist item in body text3104 when note is not a system note3105 is expected to eq "marked the task **task 1** as incomplete"3106 when note is a system note3107 when note noteable_type is not Issue3108 is expected to eq "marked the task **task 1** as incomplete"3109 when note noteable_type is Issue3110 is expected to eq "marked the checklist item **task 1** as incomplete"3111 context when note and cache are null (happens in bulk insert)3112 is expected to be in [nil, ""]3113 #note_html3114 behaves like note that replaces task for checklist item in body text3115 when note is not a system note3116 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"3117 when note is a system note3118 when note noteable_type is not Issue3119 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"3120 when note noteable_type is Issue3121 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as completed</p>"3122 context when note and cache are null (happens in bulk insert)3123 is expected to be in [nil, ""]3124 behaves like note that replaces task for checklist item in body text3125 when note is not a system note3126 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"3127 when note is a system note3128 when note noteable_type is not Issue3129 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"3130 when note noteable_type is Issue3131 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as incomplete</p>"3132 context when note and cache are null (happens in bulk insert)3133 is expected to be in [nil, ""]3134 #issuable_ability_name3135 when not confidential note3136 is expected to eq :read_note3137 when confidential note3138 is expected to eq :read_internal_note3139 #exportable_record?3140 when not a system note3141 is expected to be truthy3142 with system note3143 returns `false` when the user cannot read the note3144 when user can read the note3145 is expected to be truthy3146DeploymentsFinder3147 validation3148 when both updated_at and finished_at filters are specified3149 raises an error3150 when updated_at filter and id sorting3151 raises an error3152 when finished_at filter and id sorting3153 raises an error3154 when running status filter and finished_at sorting3155 raises an error3156 when finished_at filter with failed status filter3157 raises an error3158 when environment filter with non-project scope3159 raises an error3160 when status filter with mixed finished and upcoming statuses3161 raises an error3162 #execute3163 when project or group is missing3164 returns nothing3165 at project scope3166 filtering3167 when updated_at filters are specified3168 returns deployments with matched updated_at3169 when the environment name is specified3170 returns deployments for the given environment3171 when the environment ID is specified3172 returns deployments for the given environment3173 when the deployment status is specified3174 returns deployments for the given environment3175 when using an invalid deployment status3176 raises ArgumentError3177 ordering3178 order_by: "created_at", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]3179 returns the deployments ordered3180 order_by: "created_at", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]3181 returns the deployments ordered3182 order_by: "id", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]3183 returns the deployments ordered3184 order_by: "id", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]3185 returns the deployments ordered3186 order_by: "iid", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]3187 returns the deployments ordered3188 order_by: "iid", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]3189 returns the deployments ordered3190 order_by: "ref", sort: "asc", ordered_deployments: [:deployment_2, :deployment_1, :deployment_3]3191 returns the deployments ordered3192 order_by: "ref", sort: "desc", ordered_deployments: [:deployment_3, :deployment_1, :deployment_2]3193 returns the deployments ordered3194 order_by: "updated_at", sort: "asc", ordered_deployments: [:deployment_2, :deployment_3, :deployment_1]3195 returns the deployments ordered3196 order_by: "updated_at", sort: "desc", ordered_deployments: [:deployment_1, :deployment_3, :deployment_2]3197 returns the deployments ordered3198 order_by: "finished_at", sort: "asc", ordered_deployments: DeploymentsFinder::InefficientQueryError3199 returns the deployments ordered3200 order_by: "finished_at", sort: "desc", ordered_deployments: DeploymentsFinder::InefficientQueryError3201 returns the deployments ordered3202 order_by: "invalid", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]3203 returns the deployments ordered3204 order_by: "iid", sort: "err", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]3205 returns the deployments ordered3206 transform `created_at` sorting to `id` sorting3207 sorts by only one column3208 sorts by `id`3209 transform `iid` sorting to `id` sorting3210 sorts by only one column3211 sorts by `id`3212 tie-breaker for `updated_at` sorting3213 sorts by two columns3214 adds `id` sorting as the second order column3215 uses the `id ASC` as tie-breaker when ordering3216 when sort direction is desc3217 uses the `id DESC` as tie-breaker when ordering3218 enforce sorting to `updated_at` sorting3219 raises an error3220 when deployments_raise_updated_at_inefficient_error is disabled3221 sorts by only one column3222 sorts by `updated_at`3223 when filtering by finished time3224 when filtering by finished_after and finished_before3225 is expected to contain exactly #<Deployment id: 59, iid: 1, project_id: 226, environment_id: 59, ref: "master", tag: false, sha: "b8...shed_at: "2023-04-25 06:03:32.277192483 +0000", cluster_id: nil, deployable_id: 59, archived: false>3226 when the finished_before parameter is missing3227 is expected to contain exactly #<Deployment id: 62, iid: 1, project_id: 226, environment_id: 62, ref: "master", tag: false, sha: "b8...shed_at: "2023-04-25 06:03:34.747354349 +0000", cluster_id: nil, deployable_id: 62, archived: false> and #<Deployment id: 64, iid: 3, project_id: 226, environment_id: 64, ref: "master", tag: false, sha: "b8...shed_at: "2023-04-27 01:03:36.339966312 +0000", cluster_id: nil, deployable_id: 64, archived: false>3228 when finished_after is missing3229 is expected to contain exactly #<Deployment id: 66, iid: 2, project_id: 226, environment_id: 66, ref: "master", tag: false, sha: "b8...shed_at: "2023-04-23 06:03:37.929404884 +0000", cluster_id: nil, deployable_id: 66, archived: false>3230 at group scope3231 avoids N+1 queries3232 ordering3233 order_by: "created_at", sort: "asc"3234 returns the deployments unordered3235 order_by: "created_at", sort: "desc"3236 returns the deployments unordered3237 order_by: "id", sort: "asc"3238 returns the deployments unordered3239 order_by: "id", sort: "desc"3240 returns the deployments unordered3241 order_by: "iid", sort: "asc"3242 returns the deployments unordered3243 order_by: "iid", sort: "desc"3244 returns the deployments unordered3245 order_by: "ref", sort: "asc"3246 returns the deployments unordered3247 order_by: "ref", sort: "desc"3248 returns the deployments unordered3249 order_by: "invalid", sort: "asc"3250 returns the deployments unordered3251 order_by: "iid", sort: "err"3252 returns the deployments unordered3253Integration3254 Associations3255 is expected to belong to project required: false inverse_of => integrations3256 is expected to belong to group required: false inverse_of => integrations3257 is expected to have one issue_tracker_data class_name => Integrations::IssueTrackerData inverse_of => integration3258 is expected to have one jira_tracker_data class_name => Integrations::JiraTrackerData inverse_of => integration3259 default values3260 is expected to be alert events3261 is expected to be commit events3262 is expected to be confidential issues events3263 is expected to be confidential note events3264 is expected to be issues events3265 is expected to be job events3266 is expected to be merge requests events3267 is expected to be note events3268 is expected to be pipeline events3269 is expected to be push events3270 is expected to be tag push events3271 is expected to be wiki page events3272 is expected not to be active3273 is expected not to be incident events3274 is expected to eq :common3275 validations3276 is expected to validate that :type cannot be empty/falsy3277 is expected to validate that :type is neither ‹"Integrations::BaseChatNotification"›, ‹"Integrations::BaseCi"›, ‹"Integrations::BaseIssueTracker"›, ‹"Integrations::BaseMonitoring"›, ‹"Integrations::BaseSlackNotification"›, ‹"Integrations::BaseSlashCommands"›, nor ‹"Integrations::BaseThirdPartyWiki"›3278 project_id: 1, group_id: nil, instance: false, valid: true3279 validates the integration3280 project_id: nil, group_id: 1, instance: false, valid: true3281 validates the integration3282 project_id: nil, group_id: nil, instance: true, valid: true3283 validates the integration3284 project_id: nil, group_id: nil, instance: false, valid: false3285 validates the integration3286 project_id: 1, group_id: 1, instance: false, valid: false3287 validates the integration3288 project_id: 1, group_id: nil, instance: false, valid: true3289 validates the integration3290 project_id: 1, group_id: nil, instance: true, valid: false3291 validates the integration3292 project_id: nil, group_id: 1, instance: false, valid: true3293 validates the integration3294 project_id: nil, group_id: 1, instance: true, valid: false3295 validates the integration3296 with existing integrations3297 allows only one instance integration per type3298 allows only one project integration per type3299 allows only one group integration per type3300 Scopes3301 .third_party_wikis3302 returns the right group integration3303 .with_default_settings3304 returns the correct integrations3305 .with_custom_settings3306 returns the correct integrations3307 .by_type3308 when type is "Integrations::JiraService"3309 is expected to contain exactly #<Integrations::Jira id: 13, project_id: 324, created_at: "2023-04-27 06:04:10.584345550 +0000", upda...d_properties_iv: "=\xF8\xB0\xE8\x8D\xEB\xF9\xC6|\xFB\xBBn", incident_events: false, properties: nil> and #<Integrations::Jira id: 14, project_id: 327, created_at: "2023-04-27 06:04:10.967521407 +0000", upda...d_properties_iv: "\x18I\xDB\x9C\x7F\xA8\xDBbV\xF5\xC2\xA7", incident_events: false, properties: nil>3310 when type is "Integrations::Redmine"3311 is expected to contain exactly #<Integrations::Redmine id: 18, project_id: 330, created_at: "2023-04-27 06:04:12.339543778 +0000", u...roperties_iv: "t\x06\xA0D\xF3\x01\xEE\xB7\xE9\xF9\xF4\xF4", incident_events: false, properties: nil>3312 .for_group3313 returns the right group integration3314 .confidential_note_hooks3315 includes services where confidential_note_events is true3316 excludes services where confidential_note_events is false3317 .alert_hooks3318 includes services where alert_events is true3319 excludes services where alert_events is false3320 .archive_trace_hooks3321 includes services where archive_trace_events is true3322 excludes services where archive_trace_events is false3323 .incident_hooks3324 includes services where incident_events is true3325 excludes services where incident_events is false3326 #operating?3327 is false when the integration is not active3328 is false when the integration is not persisted3329 is true when the integration is active and persisted3330 #testable?3331 when integration is project-level3332 is expected to be testable3333 when integration is not project-level3334 is expected not to be testable3335 #test3336 calls #execute3337 returns a result3338 #project_level?3339 is true when integration has a project3340 is false when integration has no project3341 #group_level?3342 is true when integration has a group3343 is false when integration has no group3344 #instance_level?3345 is true when integration has instance-level integration3346 is false when integration does not have instance-level integration3347 #chat?3348 is true when integration is chat integration3349 is false when integration is not chat integration3350 .find_or_initialize_non_project_specific_integration3351 returns the right integration3352 does not create a new integration3353 .find_or_initialize_all_non_project_specific3354 behaves like integration instances3355 returns the available integration instances3356 does not create integration instances3357 with all existing instances3358 behaves like integration instances3359 returns the available integration instances3360 does not create integration instances3361 with a previous existing integration (:mock_ci) and a new integration (:asana)3362 behaves like integration instances3363 returns the available integration instances3364 does not create integration instances3365 with a few existing instances3366 behaves like integration instances3367 returns the available integration instances3368 does not create integration instances3369 #inheritable?3370 is true for an instance integration3371 is true for a group integration3372 is false for a project integration3373 .build_from_integration3374 when integration is invalid3375 sets integration to inactive3376 when integration is an instance-level integration3377 sets inherit_from_id from integration3378 when integration is a group-level integration3379 sets inherit_from_id from integration3380 build issue tracker from an integration3381 when data is stored in properties3382 behaves like integration creation from an integration3383 creates a correct integration for a project integration3384 creates a correct integration for a group integration3385 when data are stored in separated fields3386 behaves like integration creation from an integration3387 creates a correct integration for a project integration3388 creates a correct integration for a group integration3389 when data are stored in both properties and separated fields3390 behaves like integration creation from an integration3391 creates a correct integration for a project integration3392 creates a correct integration for a group integration3393 .default_integration3394 with an instance-level integration3395 returns the instance integration3396 returns nil for nonexistent integration type3397 with a group integration3398 returns the group integration for a project3399 returns the instance integration for a group3400 with a subgroup3401 returns the closest group integration for a project3402 returns the closest group integration for a subgroup3403 having a integration with custom settings3404 returns the closest group integration for a project3405 having a integration inheriting settings3406 returns the closest group integration which does not inherit from its parent for a project3407 .create_from_active_default_integrations3408 with an active instance-level integration3409 creates an integration from the instance-level integration3410 passing a group3411 creates an integration from the instance-level integration3412 with an active group-level integration3413 creates an integration from the group-level integration3414 there are multiple inheritable integrations, and a duplicate3415 returns the number of successfully created integrations3416 passing a group3417 creates an integration from the group-level integration3418 with an active subgroup3419 creates an integration from the subgroup-level integration3420 passing a group3421 traversal queries3422 recursive3423 creates an integration from the subgroup-level integration3424 having an integration inheriting settings3425 creates an integration from the group-level integration3426 linear3427 creates an integration from the subgroup-level integration3428 having an integration inheriting settings3429 creates an integration from the group-level integration3430 .inherited_descendants_from_self_or_ancestors_from3431 returns the groups and projects inheriting from integration ancestors3432 .integration_name_to_type3433 handles a simple case3434 raises an error if the name is unknown3435 handles all available_integration_names3436 .integration_name_to_model3437 raises an error if integration name is invalid3438 {property}_changed?3439 returns false when the property has not been assigned a new value3440 returns true when the property has been assigned a different value3441 returns true when the property has been assigned a different value twice3442 returns false when the property has been re-assigned the same value3443 returns false when the property has been assigned a new value then saved3444 #properties=3445 supports indifferent access3446 #properties3447 is not mutable3448 {property}_touched?3449 returns false when the property has not been assigned a new value3450 returns true when the property has been assigned a different value3451 returns true when the property has been assigned a different value twice3452 returns true when the property has been re-assigned the same value3453 returns false when the property has been assigned a new value then saved3454 {property}_was3455 returns nil when the property has not been assigned a new value3456 returns the previous value when the property has been assigned a different value3457 returns initial value when the property has been re-assigned the same value3458 returns initial value when the property has been assigned multiple values3459 returns nil when the property has been assigned a new value then saved3460 initialize integration with no properties3461 does not raise error3462 sets data correctly3463 field definitions3464 when the class overrides #fields3465 behaves like #fields3466 does not return the same array3467 behaves like #api_field_names3468 filters out secret fields3469 behaves like #form_fields3470 filters out API only fields3471 when the class uses the field DSL3472 behaves like #fields3473 does not return the same array3474 behaves like #api_field_names3475 filters out secret fields3476 behaves like #form_fields3477 filters out API only fields3478 logging3479 logs info messages using json logger3480 logs error messages using json logger3481 when project is nil3482 logs info messages using json logger3483 logging exceptions3484 logs exceptions using json logger3485 logs exceptions using json logger with a custom message3486 .available_integration_names3487 is expected to include "foo", "bar", and "baz"3488 when `include_project_specific` is false3489 is expected to include "foo" and "baz"3490 is expected not to include "bar"3491 when `include_dev` is false3492 is expected to include "foo" and "bar"3493 is expected not to include "baz"3494 .project_specific_integration_names3495 is expected to include "apple_app_store", "google_play", "jenkins", and "shimo"3496 #secret_fields3497 returns all fields with type `password`3498 returns an empty array if no secret fields exist3499 #to_database_hash3500 does not include the properties key3501 does not include certain attributes3502 saves correctly using insert_all3503 decrypts encrypted properties correctly3504 when the properties are empty3505 is part of the to_database_hash3506 saves correctly using insert_all3507 field DSL3508 checks the value of storage3509 provides prop_accessors3510 provides boolean accessors for checkbox fields3511 provides data fields3512 registers fields in the fields list3513 fields have expected attributes3514 boolean_accessor3515 returns values when initialized without input3516 input: true, method_result: true, predicate_method_result: true3517 has the correct value3518 when using data fields3519 has the correct value3520 input: false, method_result: false, predicate_method_result: false3521 has the correct value3522 when using data fields3523 has the correct value3524 input: 1, method_result: true, predicate_method_result: true3525 has the correct value3526 when using data fields3527 has the correct value3528 input: 0, method_result: false, predicate_method_result: false3529 has the correct value3530 when using data fields3531 has the correct value3532 input: "1", method_result: true, predicate_method_result: true3533 has the correct value3534 when using data fields3535 has the correct value3536 input: "0", method_result: false, predicate_method_result: false3537 has the correct value3538 when using data fields3539 has the correct value3540 input: "true", method_result: true, predicate_method_result: true3541 has the correct value3542 when using data fields3543 has the correct value3544 input: "false", method_result: false, predicate_method_result: false3545 has the correct value3546 when using data fields3547 has the correct value3548 input: "foobar", method_result: nil, predicate_method_result: false3549 has the correct value3550 when using data fields3551 has the correct value3552 input: "", method_result: nil, predicate_method_result: false3553 has the correct value3554 when using data fields3555 has the correct value3556 input: nil, method_result: nil, predicate_method_result: false3557 has the correct value3558 when using data fields3559 has the correct value3560 input: "on", method_result: true, predicate_method_result: true3561 has the correct value3562 when using data fields3563 has the correct value3564 input: "off", method_result: false, predicate_method_result: false3565 has the correct value3566 when using data fields3567 has the correct value3568 input: "yes", method_result: true, predicate_method_result: true3569 has the correct value3570 when using data fields3571 has the correct value3572 input: "no", method_result: false, predicate_method_result: false3573 has the correct value3574 when using data fields3575 has the correct value3576 input: "n", method_result: false, predicate_method_result: false3577 has the correct value3578 when using data fields3579 has the correct value3580 input: "y", method_result: true, predicate_method_result: true3581 has the correct value3582 when using data fields3583 has the correct value3584 input: "t", method_result: true, predicate_method_result: true3585 has the correct value3586 when using data fields3587 has the correct value3588 input: "f", method_result: false, predicate_method_result: false3589 has the correct value3590 when using data fields3591 has the correct value3592 when getter is not defined3593 defines a prop_accessor3594 #attributes3595 does not include properties3596 can be used in assign_attributes without nullifying properties3597 #dup3598 results in distinct ciphertexts, but identical properties3599 when the model supports data-fields3600 creates distinct but identical data-fields3601 #async_execute3602 queues a Integrations::ExecuteWorker3603 when the event is not supported3604 does not queue a worker3605CommitStatus3606 is expected to belong to pipeline class_name => Ci::Pipeline required: false inverse_of => statuses3607 is expected to belong to user required: false3608 is expected to belong to project required: false3609 is expected to belong to auto_canceled_by required: false3610 is expected to validate that :name cannot be empty/falsy3611 is expected to validate that :status is either ‹"pending"›, ‹"running"›, ‹"failed"›, ‹"success"›, or ‹"canceled"›3612 is expected to delegate #sha to the #pipeline object3613 is expected to delegate #short_sha to the #pipeline object3614 is expected to respond to #success?3615 is expected to respond to #failed?3616 is expected to respond to #running?3617 is expected to respond to #pending?3618 is expected not to be retried3619 is expected to eq "id"3620 behaves like having unique enum values3621 has unique values in "scheduling_type"3622 has unique values in "failure_reason"3623 #author3624 is expected to eq #<User id: @>3625 status state machine3626 invalidates the cache after a transition3627 transitioning to running3628 records the started at time3629 transitioning to created from skipped or manual3630 does not update user without parameter3631 updates user with user parameter3632 .updated_at_before3633 finds the relevant records3634 .created_at_before3635 finds the relevant records3636 .scheduled_at_before3637 is expected to contain exactly #<CommitStatus status: "success", finished_at: "2016-01-26 07:23:42.000000000 +0000", created_at: "20...resource_at: nil, processed: false, scheduling_type: nil, id: 110, stage_id: nil, partition_id: 100>3638 #processed3639 processed state is always persisted3640 status is latest3641 is expected to be falsey3642 status is retried3643 is expected to be truthy3644 .cancelable3645 when running commit status3646 is expected to contain exactly #<CommitStatus status: "running", finished_at: "2016-01-26 07:23:42.000000000 +0000", created_at: "20...resource_at: nil, processed: false, scheduling_type: nil, id: 115, stage_id: nil, partition_id: 100>3647 when pending commit status3648 is expected to contain exactly #<CommitStatus status: "pending", finished_at: "2016-01-26 07:23:42.000000000 +0000", created_at: "20...resource_at: nil, processed: false, scheduling_type: nil, id: 116, stage_id: nil, partition_id: 100>3649 when waiting_for_resource commit status3650 is expected to contain exactly #<CommitStatus status: "waiting_for_resource", finished_at: "2016-01-26 07:23:42.000000000 +0000", cr...resource_at: nil, processed: false, scheduling_type: nil, id: 117, stage_id: nil, partition_id: 100>3651 when preparing commit status3652 is expected to contain exactly #<CommitStatus status: "preparing", finished_at: "2016-01-26 07:23:42.000000000 +0000", created_at: "...resource_at: nil, processed: false, scheduling_type: nil, id: 118, stage_id: nil, partition_id: 100>3653 when created commit status3654 is expected to contain exactly #<CommitStatus status: "created", finished_at: "2016-01-26 07:23:42.000000000 +0000", created_at: "20...resource_at: nil, processed: false, scheduling_type: nil, id: 119, stage_id: nil, partition_id: 100>3655 when scheduled commit status3656 is expected to contain exactly #<CommitStatus status: "scheduled", finished_at: "2016-01-26 07:23:42.000000000 +0000", created_at: "...resource_at: nil, processed: false, scheduling_type: nil, id: 120, stage_id: nil, partition_id: 100>3657 when failed commit status3658 is expected to be empty3659 when success commit status3660 is expected to be empty3661 when skipped commit status3662 is expected to be empty3663 when canceled commit status3664 is expected to be empty3665 when manual commit status3666 is expected to be empty3667 #started?3668 without started_at3669 is expected to equal false3670 with started_at3671 if commit status is running3672 is expected to eq true3673 if commit status is success3674 is expected to eq true3675 if commit status is failed3676 is expected to eq true3677 if commit status is created3678 is expected to equal false3679 if commit status is waiting_for_resource3680 is expected to equal false3681 if commit status is preparing3682 is expected to equal false3683 if commit status is pending3684 is expected to equal false3685 if commit status is canceled3686 is expected to equal false3687 if commit status is skipped3688 is expected to equal false3689 if commit status is manual3690 is expected to equal false3691 if commit status is scheduled3692 is expected to equal false3693 #active?3694 if commit_status.status is pending3695 is expected to be truthy3696 if commit_status.status is running3697 is expected to be truthy3698 if commit_status.status is success3699 is expected to be falsey3700 if commit_status.status is failed3701 is expected to be falsey3702 if commit_status.status is canceled3703 is expected to be falsey3704 #complete?3705 if commit_status.status is success3706 is expected to be truthy3707 if commit_status.status is failed3708 is expected to be truthy3709 if commit_status.status is canceled3710 is expected to be truthy3711 if commit_status.status is pending3712 is expected to be falsey3713 if commit_status.status is running3714 is expected to be falsey3715 #cancel3716 when status is scheduled3717 updates the status3718 #auto_canceled?3719 when it is canceled3720 when there is auto_canceled_by3721 is auto canceled3722 when there is no auto_canceled_by3723 is not auto canceled3724 #duration3725 is expected to eq 120.03726 if the building process has not started yet3727 is expected to be nil3728 if the building process has started3729 is expected to be a kind of Float3730 is expected to be > 0.03731 #queued_duration3732 when created, then enqueued, then started3733 is expected to eq 5.03734 when created but not yet enqueued3735 is expected to be nil3736 when enqueued, but not started3737 is expected to eq 1 minute3738 .latest3739 returns unique statuses3740 .retried3741 returns unique statuses3742 .retried_ordered3743 returns retried statuses in order3744 .running_or_pending3745 returns statuses that are running or pending3746 .after_stage3747 returns statuses from second and third stage3748 .failed_but_allowed3749 returns statuses without what we want to ignore3750 .for_ref3751 returns statuses with the specified ref3752 .by_name3753 returns statuses with the specified name3754 .for_project_paths3755 with a single path3756 returns statuses for other_project3757 with array of paths3758 returns statuses for project3759 .status3760 when there are multiple statuses present3761 returns a correct compound status3762 when there are only allowed to fail commit statuses present3763 returns status that indicates success3764 when using a scope to select latest statuses3765 returns status according to the scope3766 .match_id_and_lock_version3767 returns statuses that match the given id and lock versions3768 #before_sha3769 when no before_sha is set for pipeline3770 returns blank sha3771 for before_sha set for pipeline3772 returns the set value3773 #commit3774 returns commit pipeline has been created for3775 #group_name3776 name: "rspec1", group_name: "rspec1"3777 rspec1 puts in rspec13778 name: "rspec1 0 1", group_name: "rspec1"3779 rspec1 0 1 puts in rspec13780 name: "rspec1 0/2", group_name: "rspec1"3781 rspec1 0/2 puts in rspec13782 name: "rspec:windows", group_name: "rspec:windows"3783 rspec:windows puts in rspec:windows3784 name: "rspec:windows 0", group_name: "rspec:windows 0"3785 rspec:windows 0 puts in rspec:windows 03786 name: "rspec:windows 0 2/2", group_name: "rspec:windows 0"3787 rspec:windows 0 2/2 puts in rspec:windows 03788 name: "rspec:windows 0 test", group_name: "rspec:windows 0 test"3789 rspec:windows 0 test puts in rspec:windows 0 test3790 name: "rspec:windows 0 test 2/2", group_name: "rspec:windows 0 test"3791 rspec:windows 0 test 2/2 puts in rspec:windows 0 test3792 name: "rspec:windows 0 1 2/2", group_name: "rspec:windows"3793 rspec:windows 0 1 2/2 puts in rspec:windows3794 name: "rspec:windows 0 1 [aws] 2/2", group_name: "rspec:windows"3795 rspec:windows 0 1 [aws] 2/2 puts in rspec:windows3796 name: "rspec:windows 0 1 name [aws] 2/2", group_name: "rspec:windows 0 1 name"3797 rspec:windows 0 1 name [aws] 2/2 puts in rspec:windows 0 1 name3798 name: "rspec:windows 0 1 name", group_name: "rspec:windows 0 1 name"3799 rspec:windows 0 1 name puts in rspec:windows 0 1 name3800 name: "rspec:windows 0 1 name 1/2", group_name: "rspec:windows 0 1 name"3801 rspec:windows 0 1 name 1/2 puts in rspec:windows 0 1 name3802 name: "rspec:windows 0/1", group_name: "rspec:windows"3803 rspec:windows 0/1 puts in rspec:windows3804 name: "rspec:windows 0/1 name", group_name: "rspec:windows 0/1 name"3805 rspec:windows 0/1 name puts in rspec:windows 0/1 name3806 name: "rspec:windows 0/1 name 1/2", group_name: "rspec:windows 0/1 name"3807 rspec:windows 0/1 name 1/2 puts in rspec:windows 0/1 name3808 name: "rspec:windows 0:1", group_name: "rspec:windows"3809 rspec:windows 0:1 puts in rspec:windows3810 name: "rspec:windows 0:1 name", group_name: "rspec:windows 0:1 name"3811 rspec:windows 0:1 name puts in rspec:windows 0:1 name3812 name: "rspec:windows 10000 20000", group_name: "rspec:windows"3813 rspec:windows 10000 20000 puts in rspec:windows3814 name: "rspec:windows 0 : / 1", group_name: "rspec:windows"3815 rspec:windows 0 : / 1 puts in rspec:windows3816 name: "rspec:windows 0 : / 1 name", group_name: "rspec:windows 0 : / 1 name"3817 rspec:windows 0 : / 1 name puts in rspec:windows 0 : / 1 name3818 name: "rspec [inception: [something, other thing], value]", group_name: "rspec"3819 rspec [inception: [something, other thing], value] puts in rspec3820 name: "0 1 name ruby", group_name: "0 1 name ruby"3821 0 1 name ruby puts in 0 1 name ruby3822 name: "0 :/ 1 name ruby", group_name: "0 :/ 1 name ruby"3823 0 :/ 1 name ruby puts in 0 :/ 1 name ruby3824 name: "rspec: [aws]", group_name: "rspec"3825 rspec: [aws] puts in rspec3826 name: "rspec: [aws] 0/1", group_name: "rspec"3827 rspec: [aws] 0/1 puts in rspec3828 name: "rspec: [aws, max memory]", group_name: "rspec"3829 rspec: [aws, max memory] puts in rspec3830 name: "rspec:linux: [aws, max memory, data]", group_name: "rspec:linux"3831 rspec:linux: [aws, max memory, data] puts in rspec:linux3832 name: "rspec: [inception: [something, other thing], value]", group_name: "rspec"3833 rspec: [inception: [something, other thing], value] puts in rspec3834 name: "rspec:windows 0/1: [name, other]", group_name: "rspec:windows"3835 rspec:windows 0/1: [name, other] puts in rspec:windows3836 name: "rspec:windows: [name, other] 0/1", group_name: "rspec:windows"3837 rspec:windows: [name, other] 0/1 puts in rspec:windows3838 name: "rspec:windows: [name, 0/1] 0/1", group_name: "rspec:windows"3839 rspec:windows: [name, 0/1] 0/1 puts in rspec:windows3840 name: "rspec:windows: [0/1, name]", group_name: "rspec:windows"3841 rspec:windows: [0/1, name] puts in rspec:windows3842 name: "rspec:windows: [, ]", group_name: "rspec:windows"3843 rspec:windows: [, ] puts in rspec:windows3844 name: "rspec:windows: [name]", group_name: "rspec:windows"3845 rspec:windows: [name] puts in rspec:windows3846 name: "rspec:windows: [name,other]", group_name: "rspec:windows"3847 rspec:windows: [name,other] puts in rspec:windows3848 #detailed_status3849 returns a detailed status3850 #sortable_name3851 'karma' sorts as '["karma"]'3852 'karma 0 20' sorts as '["karma ", 0, " ", 20]'3853 'karma 10 20' sorts as '["karma ", 10, " ", 20]'3854 'karma 50:100' sorts as '["karma ", 50, ":", 100]'3855 'karma 1.10' sorts as '["karma ", 1, ".", 10]'3856 'karma 1.5.1' sorts as '["karma ", 1, ".", 5, ".", 1]'3857 'karma 1 a' sorts as '["karma ", 1, " a"]'3858 #locking_enabled?3859 when changing status3860 lock3861 raise exception when trying to update3862 when changing description3863 do not lock3864 save correctly3865 #drop3866 when failure_reason is nil3867 is expected to be unknown failure3868 behaves like incrementing failure reason counter3869 increments the counter with the failure_reason3870 when failure_reason is script_failure3871 is expected to be script failure3872 behaves like incrementing failure reason counter3873 increments the counter with the failure_reason3874 when failure_reason is unmet_prerequisites3875 is expected to be unmet prerequisites3876 behaves like incrementing failure reason counter3877 increments the counter with the failure_reason3878 when status is manual3879 is able to be dropped3880 when a failure reason is provided3881 when a failure reason is a symbol3882 correctly sets a failure reason3883 when a failure reason is an object3884 correctly sets a failure reason3885 ensure stage assignment3886 when the feature flag ci_remove_ensure_stage_service is disabled3887 when commit status has a stage_id assigned3888 does not create a new stage3889 when commit status does not have a stage_id assigned3890 creates a new stage3891 when commit status does not have stage but it exists3892 uses existing stage3893 when commit status is being imported3894 does not create a new stage3895 #all_met_to_become_pending?3896 is expected to eq true3897 #enqueue3898 when initial state is :created3899 behaves like commit status enqueued3900 sets queued_at value when enqueued3901 when initial state is :skipped3902 behaves like commit status enqueued3903 sets queued_at value when enqueued3904 when initial state is :manual3905 behaves like commit status enqueued3906 sets queued_at value when enqueued3907 when initial state is :scheduled3908 behaves like commit status enqueued3909 sets queued_at value when enqueued3910 #present3911 is expected to be a kind of CommitStatusPresenter3912 #recoverable?3913 when commit status is failed3914 failure_reason: :script_failure, recoverable: false3915 when failure reason is script_failure3916 is expected to eq false3917 failure_reason: :missing_dependency_failure, recoverable: false3918 when failure reason is missing_dependency_failure3919 is expected to eq false3920 failure_reason: :archived_failure, recoverable: false3921 when failure reason is archived_failure3922 is expected to eq false3923 failure_reason: :scheduler_failure, recoverable: false3924 when failure reason is scheduler_failure3925 is expected to eq false3926 failure_reason: :data_integrity_failure, recoverable: false3927 when failure reason is data_integrity_failure3928 is expected to eq false3929 failure_reason: :unknown_failure, recoverable: true3930 when failure reason is unknown_failure3931 is expected to eq true3932 failure_reason: :api_failure, recoverable: true3933 when failure reason is api_failure3934 is expected to eq true3935 failure_reason: :stuck_or_timeout_failure, recoverable: true3936 when failure reason is stuck_or_timeout_failure3937 is expected to eq true3938 failure_reason: :runner_system_failure, recoverable: true3939 when failure reason is runner_system_failure3940 is expected to eq true3941 when commit status is not failed3942 is expected to eq false3943 #update_older_statuses_retried!3944 updates 'retried' and 'status' columns of the latest status with the same name in the same pipeline3945 #expire_etag_cache!3946 expires the etag cache3947 loose foreign key on ci_builds.project_id3948 behaves like cleanup by a loose foreign key3949 cleans up (delete or nullify) the model3950 loose foreign key on ci_builds.runner_id3951 behaves like cleanup by a loose foreign key3952 cleans up (delete or nullify) the model3953 .stage_name3954 returns the stage name3955 when ci stage is not present3956 is expected to be nil3957 partitioning3958 with pipeline3959 copies the partition_id from pipeline3960 when it is already set3961 does not change the partition_id value3962 without pipeline3963 is expected to validate that :partition_id cannot be empty/falsy3964 does not change the partition_id value3965 #failure_reason3966 behaves like having enum with nil value3967 has enum with nil value3968Todo3969 relationships3970 is expected to belong to author class_name => User required: false3971 is expected to belong to note required: false3972 is expected to belong to project required: false3973 is expected to belong to group required: false3974 is expected to belong to target required: false3975 is expected to belong to user required: false3976 respond to3977 is expected to respond to #author_name3978 is expected to respond to #author_email3979 validations3980 is expected to validate that :action cannot be empty/falsy3981 is expected to validate that :target_type cannot be empty/falsy3982 is expected to validate that :user cannot be empty/falsy3983 is expected to validate that :author cannot be empty/falsy3984 for commits3985 is expected to validate that :commit_id cannot be empty/falsy3986 is expected not to validate that :target_id cannot be empty/falsy3987 for issuables3988 is expected to validate that :target_id cannot be empty/falsy3989 is expected not to validate that :commit_id cannot be empty/falsy3990 #body3991 returns target title when note is blank3992 returns note when note is present3993 returns full path of target when action is member_access_requested3994 #done3995 changes state to done3996 does not raise error when is already done3997 #for_commit?3998 returns true when target is a commit3999 returns false when target is an issuable4000 #for_design?4001 returns true when target is a Design4002 returns false when target is not a Design4003 #for_alert?4004 returns true when target is a Alert4005 returns false when target is not a Alert4006 #for_issue_or_work_item?4007 returns true when target is an Issue4008 returns true when target is a WorkItem4009 returns false when target is not an Issue4010 #target4011 returns the issuable for issuables4012 for commits4013 returns an instance of Commit when exists4014 returns nil when does not exists4015 #target_reference4016 returns commit full reference with short id4017 returns full reference for issuables4018 when target is member access requested4019 behaves like returns full_path4020 is expected to eq "namespace506/project-522"4021 behaves like returns full_path4022 is expected to eq "group36"4023 #self_added?4024 is true when the user is the author4025 is false when the user is not the author4026 #done?4027 returns true for todos with done state4028 returns false for todos with state pending4029 #self_assigned?4030 when self_added4031 returns true for ASSIGNED4032 returns true for REVIEW_REQUESTED4033 returns false for other action4034 when todo is not self_added4035 returns false4036 .for_action4037 returns the todos for a given action4038 .for_author4039 returns the todos for a given author4040 .for_project4041 returns the todos for a given project4042 returns the todos for many projects4043 .for_undeleted_projects4044 returns the todos for a given project4045 when todo belongs to deleted project4046 excludes todos of deleted projects4047 .for_group4048 returns the todos for a given group4049 .for_type4050 returns the todos for a given target type4051 .for_target4052 returns the todos for a given target4053 .for_commit4054 returns the todos for a commit ID4055 .for_group_ids_and_descendants4056 returns the todos for a group and its descendants4057 .for_user4058 returns the expected todos4059 .for_note4060 returns todos that belongs to notes4061 .group_by_user_id_and_state4062 is expected to eq {[655, "done"]=>1, [655, "pending"]=>2, [656, "pending"]=>1}4063 .any_for_target?4064 returns true if there are todos for a given target4065 returns true if there is at least one todo for a given target with state pending4066 returns false if there are only todos for a given target with state done while searching for pending4067 returns false if there are no todos for a given target4068 .batch_update4069 updates the state of todos4070 does not update todos that already have the given state4071 updates updated_at4072 .distinct_user_ids4073 is expected to contain exactly 680 and 6814074 .for_internal_notes4075 returns todos created from internal notes4076 #access_request_url4077 when only_path param is false4078 behaves like returns member access requests tab url/path4079 returns group access requests tab url/path if target is group4080 returns project access requests tab url/path if target is project4081 returns empty string if target is neither group nor project4082 when only_path param is nil4083 behaves like returns member access requests tab url/path4084 returns group access requests tab url/path if target is group4085 returns project access requests tab url/path if target is project4086 returns empty string if target is neither group nor project4087 when only_path param is true4088 behaves like returns member access requests tab url/path4089 returns group access requests tab url/path if target is group4090 returns project access requests tab url/path if target is project4091 returns empty string if target is neither group nor project4092Releases::CreateService4093 #execute4094 behaves like a successful release creation4095 creates a new release4096 when the tag does not exist4097 raises an error4098 when project is a catalog resource4099 and it is valid4100 behaves like a successful release creation4101 creates a new release4102 and it is invalid4103 raises an error and does not update the release4104 when ref is provided4105 creates a tag if the tag does not exist4106 behaves like a successful release creation4107 creates a new release4108 and the tag would be protected4109 and the user does not have permissions4110 raises an error4111 and the user has permissions4112 behaves like a successful release creation4113 creates a new release4114 and tag_message is provided4115 creates a tag if the tag does not exist4116 behaves like a successful release creation4117 creates a new release4118 there already exists a release on a tag4119 raises an error and does not update the release4120 when a passed-in milestone does not exist for this project4121 raises an error saying the milestone is inexistent4122 raises an error saying the milestone id is inexistent4123 when existing milestone is passed in4124 by title4125 behaves like creates release4126 creates a release and ties this milestone to it4127 by ids4128 behaves like creates release4129 creates a release and ties this milestone to it4130 when another release was previously created with that same milestone linked4131 also creates another release tied to that same milestone4132 when multiple existing milestones are passed in4133 by title4134 behaves like creates multiple releases4135 creates a release and ties it to these milestones4136 by ids4137 behaves like creates multiple releases4138 creates a release and ties it to these milestones4139 when multiple milestone titles are passed in but one of them does not exist4140 raises an error4141 does not create any release4142 with milestones as ids4143 raises an error4144 no milestone association behavior4145 when no milestones parameter is passed4146 creates a release without a milestone tied to it4147 does not create any new MilestoneRelease object4148 when an empty array is passed as the milestones parameter4149 creates a release without a milestone tied to it4150 when nil is passed as the milestones parameter4151 creates a release without a milestone tied to it4152 Evidence collection4153 historical release4154 does not execute CreateEvidenceWorker4155 does not create an Evidence object4156 is a historical release4157 is not an upcoming release4158 immediate release4159 sets `released_at` to the current dttm4160 queues CreateEvidenceWorker4161 creates Evidence4162 is not a historical release4163 is not an upcoming release4164 creates evidence without pipeline if it does not exist4165 uses the last pipeline for evidence4166 pipeline is still being used for evidence if new pipeline is being created for tag4167 uses the last pipeline for evidence when tag is already created4168 when old evidence_pipeline is passed to service4169 uses the old pipeline for evidence4170 upcoming release4171 does not execute CreateEvidenceWorker4172 does not create an Evidence object4173 is not a historical release4174 is an upcoming release4175Gitlab::Database::RenameReservedPathsMigration::V1::RenameProjects4176 #projects_for_paths4177 searches using nested paths4178 includes the correct projects4179 #rename_projects4180 renames each project4181 invalidates the markdown cache of related projects4182 #rename_project4183 renames path & route for the project4184 tracks the rename4185 renames the folders for the project4186 #move_project_folders4187 moves the wiki & the repo4188 does not move the repositories when hashed storage is enabled4189 moves uploads4190 does not move uploads when hashed storage is enabled for attachments4191 moves pages4192 #move_repository4193 moves the repository for a project4194 #revert_renames4195 renames the routes back to the previous values4196 moves the repositories back to their original place4197 doesn't break when the project was renamed4198CI YML Templates4199 that support autodevops4200 when including available templates in a CI YAML configuration4201 template_name: "5-Minute-Production-App.gitlab-ci.yml"4202 is expected to be valid4203 require default stages to be included4204 template_name: "Android.gitlab-ci.yml"4205 is expected to be valid4206 require default stages to be included4207 template_name: "Android-Fastlane.gitlab-ci.yml"4208 is expected to be valid4209 require default stages to be included4210 template_name: "Auto-DevOps.gitlab-ci.yml"4211 is expected to be valid4212 require default stages to be included4213 template_name: "Bash.gitlab-ci.yml"4214 is expected to be valid4215 require default stages to be included4216 template_name: "C++.gitlab-ci.yml"4217 is expected to be valid4218 require default stages to be included4219 template_name: "Chef.gitlab-ci.yml"4220 is expected to be valid4221 require default stages to be included4222 template_name: "Clojure.gitlab-ci.yml"4223 is expected to be valid4224 require default stages to be included4225 template_name: "Code-Quality.gitlab-ci.yml"4226 is expected to be valid4227 require default stages to be included4228 template_name: "Composer.gitlab-ci.yml"4229 is expected to be valid4230 require default stages to be included4231 template_name: "Crystal.gitlab-ci.yml"4232 is expected to be valid4233 require default stages to be included4234 template_name: "Dart.gitlab-ci.yml"4235 is expected to be valid4236 require default stages to be included4237 template_name: "Deploy-ECS.gitlab-ci.yml"4238 is expected to be valid4239 require default stages to be included4240 template_name: "Django.gitlab-ci.yml"4241 is expected to be valid4242 require default stages to be included4243 template_name: "Docker.gitlab-ci.yml"4244 is expected to be valid4245 require default stages to be included4246 template_name: "Elixir.gitlab-ci.yml"4247 is expected to be valid4248 require default stages to be included4249 template_name: "Flutter.gitlab-ci.yml"4250 is expected to be valid4251 require default stages to be included4252 template_name: "Getting-Started.gitlab-ci.yml"4253 is expected to be valid4254 require default stages to be included4255 template_name: "Go.gitlab-ci.yml"4256 is expected to be valid4257 require default stages to be included4258 template_name: "Gradle.gitlab-ci.yml"4259 is expected to be valid4260 require default stages to be included4261 template_name: "Grails.gitlab-ci.yml"4262 is expected to be valid4263 require default stages to be included4264 template_name: "Indeni.Cloudrail.gitlab-ci.yml"4265 is expected to be valid4266 require default stages to be included4267 template_name: "Julia.gitlab-ci.yml"4268 is expected to be valid4269 require default stages to be included4270 template_name: "Kaniko.gitlab-ci.yml"4271 is expected to be valid4272 require default stages to be included4273 template_name: "Katalon.gitlab-ci.yml"4274 is expected to be valid4275 require default stages to be included4276 template_name: "LaTeX.gitlab-ci.yml"4277 is expected to be valid4278 require default stages to be included4279 template_name: "Laravel.gitlab-ci.yml"4280 is expected to be valid4281 require default stages to be included4282 template_name: "MATLAB.gitlab-ci.yml"4283 is expected to be valid4284 require default stages to be included4285 template_name: "Maven.gitlab-ci.yml"4286 is expected to be valid4287 require default stages to be included4288 template_name: "Mono.gitlab-ci.yml"4289 is expected to be valid4290 require default stages to be included4291 template_name: "Nodejs.gitlab-ci.yml"4292 is expected to be valid4293 require default stages to be included4294 template_name: "OpenShift.gitlab-ci.yml"4295 is expected to be valid4296 require default stages to be included4297 template_name: "PHP.gitlab-ci.yml"4298 is expected to be valid4299 require default stages to be included4300 template_name: "Packer.gitlab-ci.yml"4301 is expected to be valid4302 require default stages to be included4303 template_name: "Python.gitlab-ci.yml"4304 is expected to be valid4305 require default stages to be included4306 template_name: "Qualys-IaC-Security.gitlab-ci.yml"4307 is expected to be valid4308 require default stages to be included4309 template_name: "Ruby.gitlab-ci.yml"4310 is expected to be valid4311 require default stages to be included4312 template_name: "Rust.gitlab-ci.yml"4313 is expected to be valid4314 require default stages to be included4315 template_name: "Scala.gitlab-ci.yml"4316 is expected to be valid4317 require default stages to be included4318 template_name: "Swift.gitlab-ci.yml"4319 is expected to be valid4320 require default stages to be included4321 template_name: "Terraform.gitlab-ci.yml"4322 is expected to be valid4323 require default stages to be included4324 template_name: "Terraform-Module.gitlab-ci.yml"4325 is expected to be valid4326 require default stages to be included4327 template_name: "dotNET.gitlab-ci.yml"4328 is expected to be valid4329 require default stages to be included4330 template_name: "dotNET-Core.gitlab-ci.yml"4331 is expected to be valid4332 require default stages to be included4333 template_name: "iOS-Fastlane.gitlab-ci.yml"4334 is expected to be valid4335 require default stages to be included4336 template_name: "liquibase.gitlab-ci.yml"4337 is expected to be valid4338 require default stages to be included4339 template_name: "npm.gitlab-ci.yml"4340 is expected to be valid4341 require default stages to be included4342 template_name: "Pages/Brunch.gitlab-ci.yml"4343 is expected to be valid4344 require default stages to be included4345 template_name: "Pages/Doxygen.gitlab-ci.yml"4346 is expected to be valid4347 require default stages to be included4348 template_name: "Pages/Gatsby.gitlab-ci.yml"4349 is expected to be valid4350 require default stages to be included4351 template_name: "Pages/HTML.gitlab-ci.yml"4352 is expected to be valid4353 require default stages to be included4354 template_name: "Pages/Harp.gitlab-ci.yml"4355 is expected to be valid4356 require default stages to be included4357 template_name: "Pages/Hexo.gitlab-ci.yml"4358 is expected to be valid4359 require default stages to be included4360 template_name: "Pages/Hugo.gitlab-ci.yml"4361 is expected to be valid4362 require default stages to be included4363 template_name: "Pages/Hyde.gitlab-ci.yml"4364 is expected to be valid4365 require default stages to be included4366 template_name: "Pages/JBake.gitlab-ci.yml"4367 is expected to be valid4368 require default stages to be included4369 template_name: "Pages/Jekyll.gitlab-ci.yml"4370 is expected to be valid4371 require default stages to be included4372 template_name: "Pages/Jigsaw.gitlab-ci.yml"4373 is expected to be valid4374 require default stages to be included4375 template_name: "Pages/Lektor.gitlab-ci.yml"4376 is expected to be valid4377 require default stages to be included4378 template_name: "Pages/Metalsmith.gitlab-ci.yml"4379 is expected to be valid4380 require default stages to be included4381 template_name: "Pages/Middleman.gitlab-ci.yml"4382 is expected to be valid4383 require default stages to be included4384 template_name: "Pages/Nanoc.gitlab-ci.yml"4385 is expected to be valid4386 require default stages to be included4387 template_name: "Pages/Octopress.gitlab-ci.yml"4388 is expected to be valid4389 require default stages to be included4390 template_name: "Pages/Pelican.gitlab-ci.yml"4391 is expected to be valid4392 require default stages to be included4393 template_name: "Pages/SwaggerUI.gitlab-ci.yml"4394 is expected to be valid4395 require default stages to be included4396 template_name: "Verify/Accessibility.gitlab-ci.yml"4397 is expected to be valid4398 require default stages to be included4399 template_name: "Verify/Browser-Performance.gitlab-ci.yml"4400 is expected to be valid4401 require default stages to be included4402 template_name: "Verify/FailFast.gitlab-ci.yml"4403 is expected to be valid4404 require default stages to be included4405 template_name: "Verify/Load-Performance-Testing.gitlab-ci.yml"4406 is expected to be valid4407 require default stages to be included4408 template_name: "Security/API-Discovery.gitlab-ci.yml"4409 is expected to be valid4410 require default stages to be included4411 template_name: "Security/Container-Scanning.gitlab-ci.yml"4412 is expected to be valid4413 require default stages to be included4414 template_name: "Security/Coverage-Fuzzing.gitlab-ci.yml"4415 is expected to be valid4416 require default stages to be included4417 template_name: "Security/DAST-On-Demand-API-Scan.gitlab-ci.yml"4418 is expected to be valid4419 require default stages to be included4420 template_name: "Security/DAST-On-Demand-Scan.gitlab-ci.yml"4421 is expected to be valid4422 require default stages to be included4423 template_name: "Security/DAST-Runner-Validation.gitlab-ci.yml"4424 is expected to be valid4425 require default stages to be included4426 template_name: "Security/Dependency-Scanning.gitlab-ci.yml"4427 is expected to be valid4428 require default stages to be included4429 template_name: "Security/Fortify-FoD-sast.gitlab-ci.yml"4430 is expected to be valid4431 require default stages to be included4432 template_name: "Security/License-Scanning.gitlab-ci.yml"4433 is expected to be valid4434 require default stages to be included4435 template_name: "Security/SAST.gitlab-ci.yml"4436 is expected to be valid4437 require default stages to be included4438 template_name: "Security/SAST-IaC.gitlab-ci.yml"4439 is expected to be valid4440 require default stages to be included4441 template_name: "Security/Secret-Detection.gitlab-ci.yml"4442 is expected to be valid4443 require default stages to be included4444 template_name: "Security/Secure-Binaries.gitlab-ci.yml"4445 is expected to be valid4446 require default stages to be included4447 that do not support autodevops4448 when DAST API template4449 with default stages4450 is expected not to be valid4451 with defined stages4452 is expected to be valid4453 require default stages to be included4454 when API Fuzzing template4455 with default stages4456 is expected not to be valid4457 with defined stages4458 is expected to be valid4459 require default stages to be included4460Gitlab::Database::BackgroundMigration::BatchedMigrationRunner4461 #run_migration_job4462 when the migration has no previous jobs4463 when the migration has batches to process4464 runs the job for the first batch4465 migration health4466 puts migration on hold on stop signal4467 optimizes migration on normal signal4468 optimizes migration on no signal4469 optimizes migration on unknown signal4470 when the batch maximum exceeds the migration maximum4471 clamps the batch maximum to the migration maximum4472 when the migration has no batches to process4473 behaves like it has completed the migration4474 does not create and run a migration job4475 marks the migration as finished4476 when the migration should stop4477 changes the status to failure4478 when the migration has previous jobs4479 when the migration has no batches remaining4480 behaves like it has completed the migration4481 does not create and run a migration job4482 marks the migration as finished4483 when the migration has batches to process4484 runs the migration job for the next batch4485 when the batch minimum exceeds the migration maximum4486 behaves like it has completed the migration4487 does not create and run a migration job4488 marks the migration as finished4489 when migration has failed jobs4490 retries the failed job4491 when failed job has reached the maximum number of attempts4492 marks the migration as failed4493 when migration has stuck jobs4494 retries the stuck job4495 when migration has possible stuck jobs4496 keeps the migration active4497 when the migration has batches to process and failed jobs4498 runs next batch then retries the failed job4499 #run_entire_migration4500 when not in a development or test environment4501 raises an error4502 when the given migration is not active4503 does not create and run migration jobs4504 when the given migration is active4505 runs all jobs inline until finishing the migration4506 #finalize4507 when the migration is not yet completed4508-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4509 -> 0.0030s4510-- create_table(:_test_batched_migrations_test_table, {:id=>false})4511 -> 0.0273s4512-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")4513 -> 0.0024s4514-- execute("SELECT * FROM _test_batched_migrations_test_table WHERE some_id_convert_to_bigint IS NULL")4515 -> 0.0014s4516-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4517 -> 0.0046s4518 completes the migration4519 when migration fails to complete4520-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4521 -> 0.0026s4522-- create_table(:_test_batched_migrations_test_table, {:id=>false})4523 -> 0.0055s4524-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")4525 -> 0.0027s4526-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4527 -> 0.0021s4528 raises an error4529 when the migration is already finished4530-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4531 -> 0.0021s4532-- create_table(:_test_batched_migrations_test_table, {:id=>false})4533 -> 0.0033s4534-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")4535 -> 0.0019s4536-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4537 -> 0.0020s4538 is a no-op4539 when the migration does not exist4540-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4541 -> 0.0017s4542-- create_table(:_test_batched_migrations_test_table, {:id=>false})4543 -> 0.0040s4544-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")4545 -> 0.0019s4546-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})4547 -> 0.0020s4548 is a no-op4549 .finalize4550 when the connection is passed4551 initializes the object with the given connection4552JobArtifactUploader4553 behaves like builds correct paths4554 #store_dir4555 behaves like matches the method pattern4556 is expected to match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/4557 #cache_dir4558 behaves like matches the method pattern4559 is expected to match /artifacts\/tmp\/cache/4560 #work_dir4561 behaves like matches the method pattern4562 is expected to match /artifacts\/tmp\/work/4563 #upload_path4564 behaves like matches the method pattern4565 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4566 #relative_path4567 is relative (PENDING: Path not set, skipping.)4568 .absolute_path4569 behaves like matches the method pattern4570 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4571 .base_dir4572 behaves like matches the method pattern4573 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4574 path traversal exploits4575 throws an exception4576 object store is REMOTE4577 behaves like builds correct paths4578 #store_dir4579 behaves like matches the method pattern4580 is expected to match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/4581 #cache_dir4582 behaves like matches the method pattern4583 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4584 #work_dir4585 behaves like matches the method pattern4586 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4587 #upload_path4588 behaves like matches the method pattern4589 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4590 #relative_path4591 is relative (PENDING: Path not set, skipping.)4592 .absolute_path4593 behaves like matches the method pattern4594 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4595 .base_dir4596 behaves like matches the method pattern4597 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4598 path traversal exploits4599 throws an exception4600 #cdn_enabled_url4601 returns URL and false4602 file is stored in valid local_path4603 is expected to start with "/builds/gitlab-org/gitlab/tmp/tests/artifacts/"4604 is expected to include "/2023_04_27/"4605 is expected to include "/279/20/"4606 is expected to end with "ci_build_artifacts.zip"4607 #dynamic_segment4608 when a job artifact is stored in legacy_path4609 behaves like Read file from legacy path4610 store_path returns the legacy path4611 has exactly the same content4612 when the artifact file is stored in hashed_path4613 behaves like Read file from hashed path4614 store_path returns hashed path4615 has exactly the same content4616 when file_location column is empty4617 behaves like Read file from hashed path4618 store_path returns hashed path4619 has exactly the same content4620 #migrate!4621 does not set Content-Type4622 behaves like migrates4623 returns corresponding file type4624 does nothing when migrating to the current store4625 migrate to the specified store4626 removes the original file after the migration4627 can access to the original file during migration4628 when migrate! is not occupied by another process4629 executes migrate!4630 executes use_file4631 when migrate! is occupied by another process4632 does not execute migrate!4633 does not execute use_file4634 migration is unsuccessful4635 when the store is not supported4636 does not update the object_store4637 does not delete the original file4638 upon a fog failure4639 does not update the object_store4640 does not delete the original file4641 upon a database failure4642 does not update the object_store4643 does not delete the original file4644 behaves like migrates4645 returns corresponding file type4646 does nothing when migrating to the current store4647 migrate to the specified store4648 removes the original file after the migration4649 can access to the original file during migration4650 when migrate! is not occupied by another process4651 executes migrate!4652 executes use_file4653 when migrate! is occupied by another process4654 does not execute migrate!4655 does not execute use_file4656 migration is unsuccessful4657 when the store is not supported4658 does not update the object_store4659 does not delete the original file4660 upon a fog failure4661 does not update the object_store4662 does not delete the original file4663 upon a database failure4664 does not update the object_store4665 does not delete the original file4666Gitlab::DataBuilder::Note4667 When asking for a note on commit4668 returns the note and commit-specific data4669 contains project data4670 contains deprecated repository data4671 behaves like includes general data4672 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/9eb6db04b081381652cbd1bcebfbcd92?s=80&d=identicon", :email=>"[REDACTED]", :id=>973, :name=>"Sidney Jones1066", :username=>"user315"}4673 When asking for a note on commit diff4674 returns the note and commit-specific data4675 contains project data4676 contains deprecated repository data4677 behaves like includes general data4678 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/90d60686d0160b2a491f65c0f7c7b6d2?s=80&d=identicon", :email=>"[REDACTED]", :id=>981, :name=>"Sidney Jones1074", :username=>"user319"}4679 When asking for a note on issue4680 returns the note and issue-specific data4681 contains project data4682 contains deprecated repository data4683 behaves like includes general data4684 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/5e587055f80173a97c6e8d11bc03fca8?s=80&d=identicon", :email=>"[REDACTED]", :id=>989, :name=>"Sidney Jones1082", :username=>"user323"}4685 with confidential issue4686 sets event_type to confidential_note4687 behaves like includes general data4688 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/84a0abf57e4891626fa1a2490480de33?s=80&d=identicon", :email=>"[REDACTED]", :id=>993, :name=>"Sidney Jones1086", :username=>"user325"}4689 When asking for a note on merge request4690 returns the merge request data4691 contains project data4692 contains deprecated repository data4693 behaves like includes general data4694 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/a875c4790e1d4c4c9c56700124d72867?s=80&d=identicon", :email=>"[REDACTED]", :id=>1001, :name=>"Sidney Jones1094", :username=>"user329"}4695 When asking for a note on merge request diff4696 returns the merge request data4697 contains project data4698 contains deprecated repository data4699 behaves like includes general data4700 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/04931952a54dff2cb90e9db2085e4172?s=80&d=identicon", :email=>"[REDACTED]", :id=>1009, :name=>"Sidney Jones1102", :username=>"user333"}4701 When asking for a note on project snippet4702 returns the note and project snippet data4703 contains project data4704 contains deprecated repository data4705 behaves like includes general data4706 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/7076a0204fbd2766cc61d22273c3d707?s=80&d=identicon", :email=>"[REDACTED]", :id=>1017, :name=>"Sidney Jones1110", :username=>"user337"}4707RepositoryForkWorker4708 modules4709 includes ProjectImportOptions4710 #perform4711 only project ID passed4712 behaves like RepositoryForkWorker performing4713 creates a new repository from a fork4714 protects the default branch4715 flushes various caches4716 handles bad fork4717 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects4718 handles LFS objects link failure4719 when a worker was reset without cleanup4720 creates a new repository from a fork4721 project ID, storage and repo paths passed4722 behaves like RepositoryForkWorker performing4723 creates a new repository from a fork4724 protects the default branch4725 flushes various caches4726 handles bad fork4727 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects4728 handles LFS objects link failure4729 when a worker was reset without cleanup4730 creates a new repository from a fork4731Clusters::Agent4732 is expected to belong to created_by_user class_name => User optional: true4733 is expected to belong to project class_name => ::Project required: false4734 is expected to have many agent_tokens class_name => Clusters::AgentToken order => #<Arel::Nodes::NullsLast:0x00007f0ac1ff0618>4735 is expected to have many ci_access_group_authorizations class_name => Clusters::Agents::Authorizations::CiAccess::GroupAuthorization4736 is expected to have many ci_access_authorized_groups through ci_access_group_authorizations4737 is expected to have many ci_access_project_authorizations class_name => Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization4738 is expected to have many ci_access_authorized_projects class_name => ::Project through ci_access_project_authorizations4739 is expected to validate that :name cannot be empty/falsy4740 is expected to validate that the length of :name is at most 634741 is expected to validate that :name is case-sensitively unique within the scope of :project_id4742 scopes4743 .ordered_by_name4744 is expected to eq ["agent-a", "agent-b", "agent-c", "agent-d"]4745 .with_name4746 is expected to contain exactly #<Clusters::Agent id: 15, created_at: "2023-04-27 06:09:49.638401227 +0000", updated_at: "2023-04-27 ...0000", project_id: 756, name: "matching-name", created_by_user_id: 1075, has_vulnerabilities: false>4747 .has_vulnerabilities4748 when value is not provided4749 returns agents which have vulnerabilities4750 when value is provided4751 as true4752 returns agents which have vulnerabilities4753 as false4754 returns agents which do not have vulnerabilities4755 validation4756 name validation4757 rejects names that do not conform to RFC 11234758 accepts valid names4759 #has_access_to?4760 has access to own project4761 does not have access to other projects4762 #connected?4763 agent has never connected4764 is expected to be falsey4765 agent has connected, but not recently4766 is expected to be falsey4767 agent has connected recently4768 is expected to be truthy4769 agent token has been revoked4770 is expected to be falsey4771 agent has multiple tokens4772 is expected to be truthy4773 #activity_event_deletion_cutoff4774 is expected to within one second of 2023-04-27 04:09:53 UTC4775 #ci_access_authorized_for?4776 is expected to eq false4777 with project-level authorization4778 user_role: :guest, allowed: false4779 is expected to eq false4780 user_role: :reporter, allowed: false4781 is expected to eq false4782 user_role: :developer, allowed: true4783 is expected to eq true4784 user_role: :maintainer, allowed: true4785 is expected to eq true4786 user_role: :owner, allowed: true4787 is expected to eq true4788 when expose_authorized_cluster_agents feature flag is disabled4789 is expected to eq false4790 with group-level authorization4791 user_role: :guest, allowed: false4792 is expected to eq false4793 user_role: :reporter, allowed: false4794 is expected to eq false4795 user_role: :developer, allowed: true4796 is expected to eq true4797 user_role: :maintainer, allowed: true4798 is expected to eq true4799 user_role: :owner, allowed: true4800 is expected to eq true4801 when expose_authorized_cluster_agents feature flag is disabled4802 is expected to eq false4803ExternalDiffUploader4804 behaves like builds correct paths4805 #store_dir4806 behaves like matches the method pattern4807 is expected to match /merge_request_diffs\/mr-\d+/4808 #cache_dir4809 behaves like matches the method pattern4810 is expected to match /\/external-diffs\/tmp\/cache/4811 #work_dir4812 behaves like matches the method pattern4813 is expected to match /\/external-diffs\/tmp\/work/4814 #upload_path4815 behaves like matches the method pattern4816 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4817 #relative_path4818 is relative (PENDING: Path not set, skipping.)4819 .absolute_path4820 behaves like matches the method pattern4821 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4822 .base_dir4823 behaves like matches the method pattern4824 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4825 path traversal exploits4826 throws an exception4827 object store is REMOTE4828 behaves like builds correct paths4829 #store_dir4830 behaves like matches the method pattern4831 is expected to match /merge_request_diffs\/mr-\d+/4832 #cache_dir4833 behaves like matches the method pattern4834 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4835 #work_dir4836 behaves like matches the method pattern4837 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4838 #upload_path4839 behaves like matches the method pattern4840 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4841 #relative_path4842 is relative (PENDING: Path not set, skipping.)4843 .absolute_path4844 behaves like matches the method pattern4845 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4846 .base_dir4847 behaves like matches the method pattern4848 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4849 path traversal exploits4850 throws an exception4851 remote file4852 with object storage enabled4853 can store file remotely4854SystemHook4855 behaves like a hook that does not get automatically disabled on failure4856 .executable/.disabled4857 finds the correct set of project hooks4858 #executable?4859 recent_failures: 0, not_until: :not_set4860 has the correct state4861 recent_failures: 0, not_until: :past4862 has the correct state4863 recent_failures: 0, not_until: :future4864 has the correct state4865 recent_failures: 0, not_until: :now4866 has the correct state4867 recent_failures: 1, not_until: :not_set4868 has the correct state4869 recent_failures: 1, not_until: :past4870 has the correct state4871 recent_failures: 1, not_until: :future4872 has the correct state4873 recent_failures: 3, not_until: :not_set4874 has the correct state4875 recent_failures: 3, not_until: :past4876 has the correct state4877 recent_failures: 3, not_until: :future4878 has the correct state4879 recent_failures: 4, not_until: :not_set4880 has the correct state4881 recent_failures: 4, not_until: :past4882 has the correct state4883 recent_failures: 4, not_until: :now4884 has the correct state4885 recent_failures: 4, not_until: :future4886 has the correct state4887 #enable!4888 makes a hook executable if it was marked as failed4889 makes a hook executable if it is currently backed off4890 does not update hooks unless necessary4891 #backoff!4892 when we have not backed off before4893 does not disable the hook4894 when we have exhausted the grace period4895 does not disable the hook4896 #disable!4897 does not disable a group hook4898 #temporarily_disabled?4899 is false4900 #permanently_disabled?4901 is false4902 #alert_status4903 is expected to eq :executable4904 when hook has been disabled4905 is expected to eq :executable4906 when hook has been backed off4907 is expected to eq :executable4908 default attributes4909 sets defined default parameters4910 validations4911 url4912 is expected not to allow :url to be ‹"http://localhost:9000"›4913 is valid if application settings allow local requests from system hooks4914 execute4915 project_create hook4916 project_destroy hook4917 user_create hook4918 user_destroy hook4919 project member create hook4920 project member destroy hook4921 project member update hook4922 group create hook4923 group destroy hook4924 group member create hook4925 group member destroy hook4926 group member update hook4927 .repository_update_hooks4928 returns hooks for repository update events only4929 execute WebHookService4930 #execute4931 #async_execute4932 #application_context4933 includes the type4934Search::GlobalService4935 #execute4936 unauthenticated4937 returns public projects only4938 authenticated4939 returns public, internal and private projects4940 returns only public & internal projects4941 project name is searchable4942 does not return archived projects4943 issues4944 sorting4945 sort: created_desc4946 sorts results by created_at4947 sort: created_asc4948 sorts results by created_at4949 sort: updated_desc4950 sorts results by updated_desc4951 sort: updated_asc4952 sorts results by updated_asc4953 merge_request4954 sorting4955 sort: created_desc4956 sorts results by created_at4957 sort: created_asc4958 sorts results by created_at4959 sort: updated_desc4960 sorts results by updated_desc4961 sort: updated_asc4962 sorts results by updated_asc4963ContainerRegistry::GitlabApiClient4964 #supports_gitlab_api?4965 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true4966 returns the expected result4967 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true4968 returns the expected result4969 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true4970 returns the expected result4971 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true4972 returns the expected result4973 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true4974 returns the expected result4975 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false4976 returns the expected result4977 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false4978 returns the expected result4979 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false4980 returns the expected result4981 with 401 response4982 is expected to be truthy4983 #pre_import_repository4984 status_code: 200, expected_result: :already_imported4985 is expected to eq :already_imported4986 status_code: 202, expected_result: :ok4987 is expected to eq :ok4988 status_code: 400, expected_result: :bad_request4989 is expected to eq :bad_request4990 status_code: 401, expected_result: :unauthorized4991 is expected to eq :unauthorized4992 status_code: 404, expected_result: :not_found4993 is expected to eq :not_found4994 status_code: 409, expected_result: :already_being_imported4995 is expected to eq :already_being_imported4996 status_code: 418, expected_result: :error4997 is expected to eq :error4998 status_code: 424, expected_result: :pre_import_failed4999 is expected to eq :pre_import_failed5000 status_code: 425, expected_result: :already_being_imported5001 is expected to eq :already_being_imported5002 status_code: 429, expected_result: :too_many_imports5003 is expected to eq :too_many_imports5004 #import_repository5005 status_code: 200, expected_result: :already_imported5006 is expected to eq :already_imported5007 status_code: 202, expected_result: :ok5008 is expected to eq :ok5009 status_code: 400, expected_result: :bad_request5010 is expected to eq :bad_request5011 status_code: 401, expected_result: :unauthorized5012 is expected to eq :unauthorized5013 status_code: 404, expected_result: :not_found5014 is expected to eq :not_found5015 status_code: 409, expected_result: :already_being_imported5016 is expected to eq :already_being_imported5017 status_code: 418, expected_result: :error5018 is expected to eq :error5019 status_code: 424, expected_result: :pre_import_failed5020 is expected to eq :pre_import_failed5021 status_code: 425, expected_result: :already_being_imported5022 is expected to eq :already_being_imported5023 status_code: 429, expected_result: :too_many_imports5024 is expected to eq :too_many_imports5025 #cancel_repository_import5026 status_code: 200, expected_result: :already_imported5027 is expected to eq {:migration_state=>nil, :status=>:already_imported}5028 status_code: 202, expected_result: :ok5029 is expected to eq {:migration_state=>nil, :status=>:ok}5030 status_code: 400, expected_result: :bad_request5031 is expected to eq {:migration_state=>nil, :status=>:bad_request}5032 status_code: 401, expected_result: :unauthorized5033 is expected to eq {:migration_state=>nil, :status=>:unauthorized}5034 status_code: 404, expected_result: :not_found5035 is expected to eq {:migration_state=>nil, :status=>:not_found}5036 status_code: 409, expected_result: :already_being_imported5037 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}5038 status_code: 418, expected_result: :error5039 is expected to eq {:migration_state=>nil, :status=>:error}5040 status_code: 424, expected_result: :pre_import_failed5041 is expected to eq {:migration_state=>nil, :status=>:pre_import_failed}5042 status_code: 425, expected_result: :already_being_imported5043 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}5044 status_code: 429, expected_result: :too_many_imports5045 is expected to eq {:migration_state=>nil, :status=>:too_many_imports}5046 bad request5047 is expected to eq {:migration_state=>"this_is_a_test", :status=>:bad_request}5048 force cancel5049 is expected to eq {:migration_state=>nil, :status=>:ok}5050 #import_status5051 with successful response5052 with a status5053 is expected to eq "this_is_a_test"5054 with no status5055 is expected to eq "error"5056 with non successful response5057 is expected to eq "pre_import_failed"5058 #repository_details5059 with sizing self5060 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5061 with sizing self_with_descendants5062 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5063 with sizing5064 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}5065 with non successful response5066 is expected to eq {}5067 #tags5068 with valid parameters5069 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-04-27T06:06:01.488Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}5070 with a response with a link header5071 is expected to eq {:pagination=>{:next=>{:uri=>#<URI::HTTP http://sandbox.org/test?last=b>}}, :response_body=>[{"create...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}5072 with a large page size set5073 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-04-27T06:06:01.600Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}5074 with a last parameter set5075 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-04-27T06:06:01.644Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}5076 with non successful response5077 logs an error and returns an empty hash5078 #sub_repositories_with_tag5079 with valid parameters5080 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}5081 with a response with a link header5082 is expected to eq {:pagination=>{:next=>{:uri=>#<URI::HTTP http://sandbox.org/test?last=c>}}, :response_body=>[{"create...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}5083 with a large page size set5084 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}5085 with a last parameter set5086 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}5087 with non successful response5088 logs an error and returns an empty hash5089 .supports_gitlab_api?5090 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5091 returns the expected result5092 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true5093 returns the expected result5094 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true5095 returns the expected result5096 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false5097 returns the expected result5098 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5099 returns the expected result5100 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true5101 returns the expected result5102 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5103 returns the expected result5104 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false5105 returns the expected result5106 with the registry disabled5107 returns false5108 with a blank registry url5109 returns false5110 .deduplicated_size5111 with successful response5112 is expected to eq 5555113 with unsuccessful response5114 is expected to eq nil5115 with the registry disabled5116 is expected to eq nil5117 with a nil path5118 is expected to eq nil5119 with uppercase path5120 is expected to eq 5555121 .one_project_with_container_registry_tag5122 with successful response5123 behaves like fetching the project from container repository and path5124 fetches the project from the given path details5125 returns nil when path is invalid5126 returns nil when there is no container_repository matching the path5127 with unsuccessful response5128 is expected to eq nil5129 with uppercase path5130 behaves like fetching the project from container repository and path5131 fetches the project from the given path details5132 returns nil when path is invalid5133 returns nil when there is no container_repository matching the path5134ResourceStateEvent5135 behaves like a resource event5136 importable5137 is expected to respond to #importing?5138 is expected to respond to #imported?5139 validations5140 is expected not to allow :user to be ‹nil›5141 when importing5142 is expected to allow :user to be ‹nil›5143 associations5144 is expected to belong to user required: false5145 .created_after5146 returns the expected events5147 returns no events if time is after last record time5148 behaves like a resource event for issues5149 associations5150 is expected to belong to issue required: false5151 .by_issue5152 returns the expected records for an issue with events5153 returns the expected records for an issue with no events5154 .by_issue_ids5155 returns the expected events5156 .by_created_at_earlier_or_equal_to5157 returns the expected events5158 returns the expected events5159 #issuable5160 returns the expected issuable5161 behaves like a resource event for merge requests5162 associations5163 is expected to belong to merge_request required: false5164 .by_merge_request5165 returns the expected records for an issue with events5166 returns the expected records for an issue with no events5167 #issuable5168 returns the expected issuable5169 on callbacks5170 does not trigger note created subscription5171 behaves like a note for work item resource event5172 builds synthetic note with correct synthetic_note_class5173 on callbacks5174 triggers note created subscription5175 validations5176 Issuable validation5177 is valid if an issue is set5178 is valid if a merge request is set5179 is invalid if both issue and merge request are set5180 is invalid if there is no issuable set5181 callbacks5182 #issue_usage_metrics5183 does not track merge requests5184 when an issue is closed5185 tracks closed issues5186 behaves like issue_edit snowplow tracking5187 behaves like Snowplow event tracking with RedisHLL context5188 behaves like Snowplow event tracking5189 is emitted5190 when an issue is reopened5191 tracks reopened issues5192 behaves like issue_edit snowplow tracking5193 behaves like Snowplow event tracking with RedisHLL context5194 behaves like Snowplow event tracking5195 is emitted5196TrendingProject5197 .refresh!5198 populates the trending projects table5199 removes existing rows before populating the table5200 stores the project IDs for every trending project5201 does not store projects that fall out of the trending time range5202 stores only public projects5203npm.gitlab-ci.yml5204 the created pipeline5205 on default branch5206 when package.json has been changed5207 behaves like publish job created5208 creates a pipeline with a single job: publish5209 when package.json does not exist or has not been changed5210 behaves like no pipeline created5211 does not create a pipeline because the only job (publish) is not created5212 when the branch name is v1.0.05213 behaves like publish job created5214 creates a pipeline with a single job: publish5215 when the tag name is v1.0.05216 behaves like publish job created5217 creates a pipeline with a single job: publish5218 when the branch name is v2.1.0-alpha5219 behaves like publish job created5220 creates a pipeline with a single job: publish5221 when the tag name is v2.1.0-alpha5222 behaves like publish job created5223 creates a pipeline with a single job: publish5224 when the branch name is patch-15225 behaves like no pipeline created5226 does not create a pipeline because the only job (publish) is not created5227 when the tag name is patch-15228 behaves like no pipeline created5229 does not create a pipeline because the only job (publish) is not created5230 when the branch name is my-feature-branch5231 behaves like no pipeline created5232 does not create a pipeline because the only job (publish) is not created5233 when the tag name is my-feature-branch5234 behaves like no pipeline created5235 does not create a pipeline because the only job (publish) is not created5236 when the branch name is v15237 behaves like no pipeline created5238 does not create a pipeline because the only job (publish) is not created5239 when the tag name is v15240 behaves like no pipeline created5241 does not create a pipeline because the only job (publish) is not created5242 when the branch name is v1.05243 behaves like no pipeline created5244 does not create a pipeline because the only job (publish) is not created5245 when the tag name is v1.05246 behaves like no pipeline created5247 does not create a pipeline because the only job (publish) is not created5248 when the branch name is 2.1.05249 behaves like no pipeline created5250 does not create a pipeline because the only job (publish) is not created5251 when the tag name is 2.1.05252 behaves like no pipeline created5253 does not create a pipeline because the only job (publish) is not created5254Gitlab::Ci::Status::Factory5255 when object has a core status5256 when simple core status is created5257 fabricates a core status created5258 matches a valid core status for created5259 does not match any extended statuses for created5260 when simple core status is waiting_for_resource5261 fabricates a core status waiting_for_resource5262 matches a valid core status for waiting_for_resource5263 does not match any extended statuses for waiting_for_resource5264 when simple core status is preparing5265 fabricates a core status preparing5266 matches a valid core status for preparing5267 does not match any extended statuses for preparing5268 when simple core status is pending5269 fabricates a core status pending5270 matches a valid core status for pending5271 does not match any extended statuses for pending5272 when simple core status is running5273 fabricates a core status running5274 matches a valid core status for running5275 does not match any extended statuses for running5276 when simple core status is success5277 fabricates a core status success5278 matches a valid core status for success5279 does not match any extended statuses for success5280 when simple core status is failed5281 fabricates a core status failed5282 matches a valid core status for failed5283 does not match any extended statuses for failed5284 when simple core status is canceled5285 fabricates a core status canceled5286 matches a valid core status for canceled5287 does not match any extended statuses for canceled5288 when simple core status is skipped5289 fabricates a core status skipped5290 matches a valid core status for skipped5291 does not match any extended statuses for skipped5292 when simple core status is manual5293 fabricates a core status manual5294 matches a valid core status for manual5295 does not match any extended statuses for manual5296 when simple core status is scheduled5297 fabricates a core status scheduled5298 matches a valid core status for scheduled5299 does not match any extended statuses for scheduled5300 when resource supports multiple extended statuses5301 when exclusive statuses are matches5302 does not fabricate compound decorator5303 delegates to core status5304 matches correct core status5305 matches correct extended statuses5306 when exclusive statuses are not matched5307 behaves like compound decorator factory5308 fabricates compound decorator5309 delegates to core status5310 latest matches status becomes a status name5311 matches correct core status5312 matches correct extended statuses5313 when using simplified status grouping5314 behaves like compound decorator factory5315 fabricates compound decorator5316 delegates to core status5317 latest matches status becomes a status name5318 matches correct core status5319 matches correct extended statuses5320 behaviour of FactoryBot traits that create associations5321 creating a namespace with an associated aggregation_schedule record5322 creates only one Namespace record and one Namespace::AggregationSchedule record5323Group Routable5324 creates route with namespace referencing group5325 behaves like routable resource5326 .find_by_full_path5327 finds records by their full path5328 returns nil for unknown paths5329 includes route information when loading a record5330 when path is a negative number5331 returns nil5332 with redirect routes5333 without follow_redirects option5334 does not find records by their redirected path5335 with follow_redirects option set to true5336 finds records by their canonical path5337 finds records by their redirected path5338 returns nil for unknown paths5339 behaves like routable resource with parent5340 behaves like routable resource5341 .find_by_full_path5342 finds records by their full path5343 returns nil for unknown paths5344 includes route information when loading a record5345 when path is a negative number5346 returns nil5347 with redirect routes5348 without follow_redirects option5349 does not find records by their redirected path5350 with follow_redirects option set to true5351 finds records by their canonical path5352 finds records by their redirected path5353 returns nil for unknown paths5354 #full_path5355 is expected to eq "foo/group65"5356 hits the cache when not preloaded5357 #full_name5358 is expected to eq "foo / group65"5359 hits the cache when not preloaded5360 without route name5361 builds full name5362 Validations5363 is expected to validate that :route cannot be empty/falsy5364 Associations5365 is expected to have one route dependent => destroy5366 is expected to have many redirect_routes dependent => destroy5367 Callbacks5368 for a group5369 creates route record on create5370 updates route record on path change5371 ensure route path uniqueness across different objects5372 for a user5373 creates the route for a record on create5374 updates routes and nested routes on name change5375 .where_full_path_in5376 without any paths5377 returns an empty relation5378 without any valid paths5379 returns an empty relation5380 with valid paths5381 returns the projects matching the paths5382 returns projects regardless of the casing of paths5383 #parent_loaded?5384 is false when the parent is not loaded5385 is true when the parent is loaded5386 #route_loaded?5387 is false when the route is not loaded5388 is true when the route is loaded5389Project Routable5390 creates route with namespace referencing project namespace5391 behaves like routable resource with parent5392 behaves like routable resource5393 .find_by_full_path5394 finds records by their full path5395 returns nil for unknown paths5396 includes route information when loading a record5397 when path is a negative number5398 returns nil5399 with redirect routes5400 without follow_redirects option5401 does not find records by their redirected path5402 with follow_redirects option set to true5403 finds records by their canonical path5404 finds records by their redirected path5405 returns nil for unknown paths5406 #full_path5407 is expected to eq "namespace1026/project-1027"5408 hits the cache when not preloaded5409 #full_name5410 is expected to eq "Sidney Jones1472 / Project-1027 Name"5411 hits the cache when not preloaded5412 without route name5413 builds full name5414Namespaces::ProjectNamespace Routable5415 skips route creation for the resource5416AutoMergeService5417 .all_strategies_ordered_by_preference5418 returns all strategies in preference order5419 #available_strategies5420 returns available strategies5421 when the head piipeline succeeded5422 returns available strategies5423 #preferred_strategy5424 returns preferred strategy5425 when the head piipeline succeeded5426 returns available strategies5427 .get_service_class5428 returns service instance5429 when strategy is not present5430 returns nil5431 #execute5432 delegates to a relevant service instance5433 when the head pipeline succeeded5434 returns failed5435 when strategy is not specified5436 chooses the most preferred strategy5437 #update5438 when auto merge is enabled5439 delegates to a relevant service instance5440 when auto merge is not enabled5441 returns failed5442 #process5443 delegates to a relevant service instance5444 when auto merge is not enabled5445 returns nil5446 #cancel5447 delegates to a relevant service instance5448 when auto merge is not enabled5449 returns error5450 #abort5451 delegates to a relevant service instance5452 when auto merge is not enabled5453 returns error5454TodoPolicy5455 own_todo5456 user: user1, todo: todo1, allowed: true5457 behaves like grants the expected permissions5458 is expected to be allowed :read_todo5459 user: user2, todo: todo2, allowed: true5460 behaves like grants the expected permissions5461 is expected to be allowed :read_todo5462 user: user1, todo: todo2, allowed: false5463 behaves like grants the expected permissions5464 is expected to be disallowed :read_todo5465 user: user1, todo: todo3, allowed: false5466 behaves like grants the expected permissions5467 is expected to be disallowed :read_todo5468 user: user2, todo: todo1, allowed: false5469 behaves like grants the expected permissions5470 is expected to be disallowed :read_todo5471 user: user2, todo: todo4, allowed: false5472 behaves like grants the expected permissions5473 is expected to be disallowed :read_todo5474 user: user3, todo: todo1, allowed: false5475 behaves like grants the expected permissions5476 is expected to be disallowed :read_todo5477 user: user3, todo: todo2, allowed: false5478 behaves like grants the expected permissions5479 is expected to be disallowed :read_todo5480 user: user3, todo: todo3, allowed: false5481 behaves like grants the expected permissions5482 is expected to be disallowed :read_todo5483 user: user3, todo: todo4, allowed: false5484 behaves like grants the expected permissions5485 is expected to be disallowed :read_todo5486 user: user2, todo: todo3, allowed: false5487 behaves like grants the expected permissions5488 is expected to be disallowed :read_todo5489 read_note5490 user: reporter, todo: no_note_todo1, allowed: true5491 behaves like grants the expected permissions5492 is expected to be allowed :read_todo5493 behaves like grants the expected permissions5494 is expected to be allowed :update_todo5495 user: reporter, todo: note_todo1, allowed: true5496 behaves like grants the expected permissions5497 is expected to be allowed :read_todo5498 behaves like grants the expected permissions5499 is expected to be allowed :update_todo5500 user: reporter, todo: internal_note_todo1, allowed: true5501 behaves like grants the expected permissions5502 is expected to be allowed :read_todo5503 behaves like grants the expected permissions5504 is expected to be allowed :update_todo5505 user: guest, todo: no_note_todo2, allowed: true5506 behaves like grants the expected permissions5507 is expected to be allowed :read_todo5508 behaves like grants the expected permissions5509 is expected to be allowed :update_todo5510 user: guest, todo: note_todo2, allowed: true5511 behaves like grants the expected permissions5512 is expected to be allowed :read_todo5513 behaves like grants the expected permissions5514 is expected to be allowed :update_todo5515 user: guest, todo: internal_note_todo2, allowed: false5516 behaves like grants the expected permissions5517 is expected to be disallowed :read_todo5518 behaves like grants the expected permissions5519 is expected to be disallowed :update_todo5520 user: non_member, todo: no_note_todo3, allowed: false5521 behaves like grants the expected permissions5522 is expected to be disallowed :read_todo5523 behaves like grants the expected permissions5524 is expected to be disallowed :update_todo5525 user: non_member, todo: note_todo3, allowed: false5526 behaves like grants the expected permissions5527 is expected to be disallowed :read_todo5528 behaves like grants the expected permissions5529 is expected to be disallowed :update_todo5530 user: non_member, todo: internal_note_todo3, allowed: false5531 behaves like grants the expected permissions5532 is expected to be disallowed :read_todo5533 behaves like grants the expected permissions5534 is expected to be disallowed :update_todo5535ReleasesFinder5536 when parent is a project5537 behaves like when the user is not part of the project5538 returns no releases5539 when the user is a project guest5540 sorts by release date5541 with sorting parameters5542 by default is released_at in descending order5543 is expected to eq [#<Release id: 42, tag: "v1.1.0", description: [FILTERED], project_id: 956, created_at: "2023-04-24 0...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-04-25 06:12:31.265726927 +0000">]5544 released_at in ascending order5545 is expected to eq [#<Release id: 43, tag: "v1.0.0", description: [FILTERED], project_id: 957, created_at: "2023-04-27 0...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-04-26 06:12:32.906475057 +0000">]5546 order by created_at in descending order5547 is expected to eq [#<Release id: 45, tag: "v1.0.0", description: [FILTERED], project_id: 958, created_at: "2023-04-27 0...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-04-26 06:12:34.411077468 +0000">]5548 order by created_at in ascending order5549 is expected to eq [#<Release id: 48, tag: "v1.1.0", description: [FILTERED], project_id: 959, created_at: "2023-04-24 0...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-04-25 06:12:35.710478094 +0000">]5550 behaves like preload5551 preloads associations5552 when preload is false5553 does not preload associations5554 behaves like when a tag parameter is passed5555 only returns the release with the matching tag5556Gitlab::Ci::Pipeline::Seed::Stage5557 #size5558 returns a number of jobs in the stage5559 #attributes5560 returns hash attributes of a stage5561 #included?5562 when it contains builds seeds5563 is expected to be included5564 when it does not contain build seeds5565 is expected not to be included5566 #seeds5567 returns build seeds5568 returns build seeds including valid attributes5569 filters seeds using only/except policies5570 when a legacy trigger exists5571 returns build seeds including legacy trigger5572 when a ref is protected5573 returns protected builds5574 when a ref is not protected5575 returns unprotected builds5576 #seeds_names5577 returns all job names5578 returns a set5579 #seeds_errors5580 returns all errors from seeds5581 #to_resource5582 builds a valid stage object with all builds5583 can not be persisted without explicit pipeline assignment5584ActiveHookFilter5585 #matches?5586 for various types of branch_filter5587 branch_filter_strategy: "all_branches", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true5588 is expected to equal true5589 is expected to equal true5590 branch_filter_strategy: "all_branches", branch_filter: "", ref: "refs/heads/master", expected_matches?: true5591 is expected to equal true5592 is expected to equal true5593 branch_filter_strategy: "all_branches", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true5594 is expected to equal true5595 is expected to equal true5596 branch_filter_strategy: "all_branches", branch_filter: ".*", ref: "refs/heads/master", expected_matches?: true5597 is expected to equal true5598 is expected to equal true5599 branch_filter_strategy: "wildcard", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true5600 is expected to equal true5601 is expected to equal true5602 branch_filter_strategy: "wildcard", branch_filter: "master", ref: "refs/heads/my_branch", expected_matches?: false5603 is expected to equal false5604 is expected to equal true5605 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/features/my-branch", expected_matches?: true5606 is expected to equal true5607 is expected to equal true5608 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/features/my-branch/something", expected_matches?: true5609 is expected to equal true5610 is expected to equal true5611 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/master", expected_matches?: false5612 is expected to equal false5613 is expected to equal true5614 branch_filter_strategy: "wildcard", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true5615 is expected to equal true5616 is expected to equal true5617 branch_filter_strategy: "wildcard", branch_filter: "", ref: "refs/heads/master", expected_matches?: true5618 is expected to equal true5619 is expected to equal true5620 branch_filter_strategy: "regex", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true5621 is expected to equal true5622 is expected to equal true5623 branch_filter_strategy: "regex", branch_filter: "master", ref: "refs/heads/my_branch", expected_matches?: false5624 is expected to equal false5625 is expected to equal true5626 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/xxxx/features/my-branch", expected_matches?: true5627 is expected to equal true5628 is expected to equal true5629 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/features/", expected_matches?: true5630 is expected to equal true5631 is expected to equal true5632 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/features", expected_matches?: true5633 is expected to equal true5634 is expected to equal true5635 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/features/my-branch", expected_matches?: true5636 is expected to equal true5637 is expected to equal true5638 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/features/my-branch/something", expected_matches?: true5639 is expected to equal true5640 is expected to equal true5641 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/master", expected_matches?: false5642 is expected to equal false5643 is expected to equal true5644 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/feature", expected_matches?: true5645 is expected to equal true5646 is expected to equal true5647 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/dev", expected_matches?: true5648 is expected to equal true5649 is expected to equal true5650 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/master", expected_matches?: false5651 is expected to equal false5652 is expected to equal true5653 branch_filter_strategy: "regex", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true5654 is expected to equal true5655 is expected to equal true5656 branch_filter_strategy: "regex", branch_filter: "", ref: "refs/heads/master", expected_matches?: true5657 is expected to equal true5658 is expected to equal true5659 when the branch filter is a invalid regex5660 is expected to equal false5661 when the branch filter is not properly set to nil5662 is expected to equal true5663Gitlab::RelativePositioning::Range5664 infers neighbours correctly5665 RelativePositioning.range5666 raises if lhs and rhs are nil5667 raises an error if there is no extent5668 constructs a closed range when both termini are provided5669 constructs a starting-from range when only the LHS is provided5670 constructs an ending-at range when only the RHS is provided5671 #open_on_left?5672 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5673 is true if there is no LHS terminus5674 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, expected_result: false5675 is true if there is no LHS terminus5676 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5677 is true if there is no LHS terminus5678 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, expected_result: false5679 is true if there is no LHS terminus5680 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5681 is true if there is no LHS terminus5682 #open_on_right?5683 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5684 is true if there is no RHS terminus5685 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, expected_result: false5686 is true if there is no RHS terminus5687 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5688 is true if there is no RHS terminus5689 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, expected_result: true5690 is true if there is no RHS terminus5691 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: false5692 is true if there is no RHS terminus5693 #cover?5694 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5695 is true when the object is within the bounds of the range5696 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true5697 is true when the object is within the bounds of the range5698 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true5699 is true when the object is within the bounds of the range5700 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false5701 is true when the object is within the bounds of the range5702 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false5703 is true when the object is within the bounds of the range5704 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5705 is true when the object is within the bounds of the range5706 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5707 is true when the object is within the bounds of the range5708 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5709 is true when the object is within the bounds of the range5710 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: nil, expected_result: false5711 is true when the object is within the bounds of the range5712 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5713 is true when the object is within the bounds of the range5714 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true5715 is true when the object is within the bounds of the range5716 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true5717 is true when the object is within the bounds of the range5718 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false5719 is true when the object is within the bounds of the range5720 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false5721 is true when the object is within the bounds of the range5722 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5723 is true when the object is within the bounds of the range5724 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5725 is true when the object is within the bounds of the range5726 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5727 is true when the object is within the bounds of the range5728 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: nil, expected_result: false5729 is true when the object is within the bounds of the range5730 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5731 is true when the object is within the bounds of the range5732 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true5733 is true when the object is within the bounds of the range5734 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true5735 is true when the object is within the bounds of the range5736 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false5737 is true when the object is within the bounds of the range5738 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false5739 is true when the object is within the bounds of the range5740 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5741 is true when the object is within the bounds of the range5742 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5743 is true when the object is within the bounds of the range5744 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5745 is true when the object is within the bounds of the range5746 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: nil, expected_result: false5747 is true when the object is within the bounds of the range5748 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5749 is true when the object is within the bounds of the range5750 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5751 is true when the object is within the bounds of the range5752 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: false5753 is true when the object is within the bounds of the range5754 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: true5755 is true when the object is within the bounds of the range5756 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false5757 is true when the object is within the bounds of the range5758 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5759 is true when the object is within the bounds of the range5760 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5761 is true when the object is within the bounds of the range5762 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5763 is true when the object is within the bounds of the range5764 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: nil, expected_result: false5765 is true when the object is within the bounds of the range5766 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: false5767 is true when the object is within the bounds of the range5768 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true5769 is true when the object is within the bounds of the range5770 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: false5771 is true when the object is within the bounds of the range5772 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false5773 is true when the object is within the bounds of the range5774 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: true5775 is true when the object is within the bounds of the range5776 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5777 is true when the object is within the bounds of the range5778 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5779 is true when the object is within the bounds of the range5780 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5781 is true when the object is within the bounds of the range5782 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: nil, expected_result: false5783 is true when the object is within the bounds of the range5784Ci::CreatePipelineService#execute5785 with resource group5786 creates bridge job with resource group5787 when sidekiq processes the job5788 transitions to pending status and triggers a downstream pipeline5789 when the resource is occupied by the other bridge5790 stays waiting for resource5791BulkImports::Projects::Pipelines::SnippetsRepositoryPipeline5792 extractor5793 is a GraphqlExtractor with Graphql::GetSnippetRepositoryQuery5794 #run5795 when a snippet is not matched5796 behaves like skippable snippet5797 does not create snippet repo5798 when httpUrlToRepo is empty5799 behaves like skippable snippet5800 does not create snippet repo5801 when a snippet matches5802 when snippet url is valid5803 creates snippet repo5804 updates snippets statistics5805 fetches snippet repo from url5806 when url is invalid5807 when not a real URL5808 behaves like skippable snippet5809 does not create snippet repo5810 when scheme is blocked5811 logs the failure5812 behaves like skippable snippet5813 does not create snippet repo5814 when snippet is invalid5815 does not leave a hanging SnippetRepository behind5816 does not call UpdateStatisticsService5817 behaves like skippable snippet5818 does not create snippet repo5819DiffsEntity5820 as json5821 contains needed attributes5822 broken merge request5823 renders without errors5824 when a commit_id is passed5825 when the passed commit is not the first or last in the group5826 includes commit references for previous and next5827 when the passed commit is the first in the group5828 includes commit references for nil and previous commit5829 when the passed commit is the last in the group5830 includes commit references for the next and nil5831 diff_files5832 serializes diff files using DiffFileEntity5833 when there are conflicts5834 serializes diff files with conflicts5835ObjectStorage::Config5836 #credentials5837 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :provider=>"AWS", :region=>"us-east-1"}5838 #storage_options5839 is expected to eq {:server_side_encryption=>"AES256", :server_side_encryption_kms_key_id=>"arn:aws:12345"}5840 #enabled?5841 is expected to eq true5842 #bucket5843 is expected to eq "test-bucket"5844 #use_iam_profile5845 is expected to equal false5846 #use_path_style5847 is expected to equal false5848 with unconsolidated settings5849 consolidated_settings? returns false5850 is expected to equal false5851 with consolidated settings5852 consolidated_settings? returns true5853 is expected to equal true5854 with IAM profile configured5855 value: true, expected: true5856 coerces the value to a boolean5857 value: "true", expected: true5858 coerces the value to a boolean5859 value: "yes", expected: true5860 coerces the value to a boolean5861 value: false, expected: false5862 coerces the value to a boolean5863 value: "false", expected: false5864 coerces the value to a boolean5865 value: "no", expected: false5866 coerces the value to a boolean5867 value: nil, expected: false5868 coerces the value to a boolean5869 with path style configured5870 value: true, expected: true5871 coerces the value to a boolean5872 value: "true", expected: true5873 coerces the value to a boolean5874 value: "yes", expected: true5875 coerces the value to a boolean5876 value: false, expected: false5877 coerces the value to a boolean5878 value: "false", expected: false5879 coerces the value to a boolean5880 value: "no", expected: false5881 coerces the value to a boolean5882 value: nil, expected: false5883 coerces the value to a boolean5884 with hostname style access5885 #use_path_style? returns false5886 with AWS credentials5887 is expected to eq "AWS"5888 is expected to equal true5889 is expected to equal false5890 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :provider=>"AWS", :region=>"us-east-1"}5891 with FIPS enabled5892 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :disable_content_md5_validation=>true, :provider=>"AWS", :region=>"us-east-1"}5893 with Google credentials5894 is expected to eq "Google"5895 is expected to equal false5896 is expected to equal true5897 is expected to eq {}5898 with SSE-KMS enabled5899 is expected to equal true5900 is expected to eq "AES256"5901 is expected to eq "arn:aws:12345"5902 is expected to contain exactly "x-amz-server-side-encryption" and "x-amz-server-side-encryption-aws-kms-key-id"5903 with only server side encryption enabled5904 is expected to equal true5905 is expected to eq "AES256"5906 is expected to be nil5907 is expected to eq {"x-amz-server-side-encryption"=>"AES256"}5908 without encryption enabled5909 is expected to equal false5910 is expected to be nil5911 is expected to be nil5912 is expected to eq {}5913 with object storage disabled5914 is expected to equal false5915gitlab:packages:events namespace rake task5916 generate_unique5917 excludes guest events5918 includes `maven` scope5919 includes `npm` scope5920 includes `conan` scope5921 includes `nuget` scope5922 includes `pypi` scope5923 includes `composer` scope5924 includes `generic` scope5925 includes `golang` scope5926 includes `debian` scope5927 includes `rubygems` scope5928 includes `helm` scope5929 includes `terraform_module` scope5930 includes `rpm` scope5931 includes `container` scope5932 includes `tag` scope5933 includes `dependency_proxy` scope5934 excludes some event types5935 generate_counts5936 includes `maven` scope5937 includes `npm` scope5938 includes `conan` scope5939 includes `nuget` scope5940 includes `pypi` scope5941 includes `composer` scope5942 includes `generic` scope5943 includes `golang` scope5944 includes `debian` scope5945 includes `rubygems` scope5946 includes `helm` scope5947 includes `terraform_module` scope5948 includes `rpm` scope5949 includes `container` scope5950 includes `tag` scope5951 includes `dependency_proxy` scope5952 excludes some event types5953Ci::CreatePipelineService5954 needs5955 with a valid config5956 creates a pipeline with builds5957 saves needs5958 saves dependencies5959 artifacts default to true5960 saves parallel jobs5961 sets scheduling_type as 'dag'5962 with an invalid config5963 is expected to be persisted5964 is expected to be falsey5965 assigns an error to the pipeline5966 when needs is empty array5967 creates a pipeline with build_a and test_b pending; deploy_b manual5968 when needs is empty hash5969 raises error5970 when the needed job has rules5971 returns error5972 when need is optional5973 creates the pipeline without an error5974DraftNotes::CreateService5975 creates a simple draft note5976 tracks the start event when the draft is persisted5977 does not track the start event when the draft is not persisted5978 cannot resolve when there is nothing to resolve5979 creates a draft note with a position in a diff5980 in a thread5981 creates a draft note with discussion_id5982 creates a draft that resolves the thread5983 diff highlight cache clearing5984 when diff file is unfolded and it is not a reply5985 clears diff highlighting cache5986 when diff file is not unfolded and it is not a reply5987 clears diff highlighting cache5988Ci::RunnerManager5989 # order random5990 is expected to have many builds through runner_manager_builds5991 is expected to belong to runner required: false5992 is expected to have many runner_manager_builds5993 is expected to belong to runner_version required: false5994 .online_contact_time_deadline5995 is expected to eq 2023-04-27 04:13:59.000000000 +00005996 .stale_deadline5997 is expected to eq 2023-04-20 06:13:59.000000000 +00005998 .stale5999 returns stale runner managers6000 behaves like having unique enum values6001 has unique values in "executor_type"6002 #status6003 if never connected6004 is expected to eq :stale6005 if created recently6006 is expected to eq :never_contacted6007 if contacted 1s ago6008 is expected to eq :online6009 if contacted recently6010 is expected to eq :offline6011 if contacted long time ago6012 is expected to eq :stale6013 validation6014 is expected to validate that :runner cannot be empty/falsy6015 is expected to validate that :system_xid cannot be empty/falsy6016 is expected to validate that the length of :system_xid is at most 646017 is expected to validate that the length of :version is at most 20486018 is expected to validate that the length of :revision is at most 2556019 is expected to validate that the length of :platform is at most 2556020 is expected to validate that the length of :architecture is at most 2556021 is expected to validate that the length of :ip_address is at most 10246022 when runner has config6023 is valid6024 when runner has an invalid config6025 is invalid6026 #heartbeat6027 when database was updated recently6028 when version is changed6029 schedules version information update6030 updates cache6031 when fetching runner releases is disabled6032 does not schedule version information update6033 with only ip_address specified6034 updates only ip_address6035 with new version having been cached6036 does not lose cached version value6037 when database was not updated recently6038 when version is changed6039 updates redis cache and database6040 with invalid runner_manager6041 still updates redis cache and database6042 with unchanged runner_manager version6043 does not schedule ci_runner_versions update6044 with unknown executor6045 updates with expected executor type6046 with custom executor6047 updates with expected executor type6048 with shell executor6049 updates with expected executor type6050 with docker executor6051 updates with expected executor type6052 with docker-windows executor6053 updates with expected executor type6054 with docker-ssh executor6055 updates with expected executor type6056 with ssh executor6057 updates with expected executor type6058 with parallels executor6059 updates with expected executor type6060 with virtualbox executor6061 updates with expected executor type6062 with docker+machine executor6063 updates with expected executor type6064 with docker-ssh+machine executor6065 updates with expected executor type6066 with kubernetes executor6067 updates with expected executor type6068 with an unknown executor type6069 updates with unknown executor type6070 behaves like it has loose foreign keys6071 has at least one loose foreign key definition6072 has the deletion trigger present6073 records record deletions6074 cleans up record deletions6075Gitlab::Email::Handler::CreateIssueHandler6076 behaves like reply processing shared examples6077 when the user could not be found6078 raises a UserNotFoundError6079 when the user is not authorized to the project6080 raises a ProjectNotFound6081 when email key6082 matches the new format6083 matches the legacy format6084 doesn't match either format6085 when everything is fine6086 behaves like a new issue6087 creates a new issue6088 creates a new issue with legacy email address6089 behaves like a new issue6090 creates a new issue6091 when the reply is blank6092 creates a new issue6093 when there are quotes in email6094 creates a new issue6095 when all lines of email are quotes6096 creates email with correct body6097 something is wrong6098 raises a RateLimitedService::RateLimitedError6099 when the issue could not be saved6100 raises an InvalidIssueError6101 when we can't find the incoming_email_token6102 raises an UserNotFoundError6103 when project is private6104 raises a ProjectNotFound if the user is not a member6105 when project ID is invalid6106 raises a ProjectNotFound6107SlackIntegration6108 # order random6109 all_features_supported?/upgrade_needed?6110 with enough scopes6111 is expected to be all features supported6112 is expected not to be upgrade needed6113 without chat:write.public6114 is expected not to be all features supported6115 is expected to be upgrade needed6116 without chat:write6117 is expected not to be all features supported6118 is expected to be upgrade needed6119 authorized_scope_names6120 accepts assignment to nil6121 accepts assignment to a string6122 accepts assignment to an array of strings6123 accepts assignment to a comma-separated string6124 strips white-space6125 Associations6126 is expected to belong to integration required: false6127 Scopes6128 #with_bot6129 returns records with bot data6130 #by_team6131 returns records with shared team_id6132 feature_available?6133 without any scopes6134 is always true for :commands6135 is always false for others6136 with enough scopes for notifications6137 only has the correct features6138 with enough scopes for commands6139 only has the correct features6140 with all scopes6141 only has the correct features6142 Validations6143 is expected to validate that :team_id cannot be empty/falsy6144 is expected to validate that :team_name cannot be empty/falsy6145 is expected to validate that :alias cannot be empty/falsy6146 is expected to validate that :user_id cannot be empty/falsy6147 is expected to validate that :integration cannot be empty/falsy6148Projects::ParticipantsService6149 #execute6150 does not return duplicate author6151 N+1 checks6152 avoids N+1 UserDetail queries6153 avoids N+1 groups queries6154 group items6155 group user counts6156 returns correct user counts for groups6157 avatar_url6158 returns an url for the avatar6159 returns an url for the avatar with relative url6160 #project_members6161 behaves like return project members6162 when there is a project in group namespace6163 returns members of a group6164 when there is a private group and a public project6165 when the private group is invited to the public project6166 when a user who is outside the public project and the private group is signed in6167 does not return the private group6168 does not return private group members6169 returns the project maintainer6170 returns project members from an invited public group6171 does not return ancestors of the private group6172 when private group owner is signed in6173 returns private group members6174 returns ancestors of the the private group6175 when the namespace owner of the public project is signed in6176 returns private group members6177 does not return members of the ancestral groups of the private group6178BulkImports::Projects::Pipelines::RepositoryBundlePipeline6179 #run6180 imports repository into destination project and removes tmpdir6181 when something goes wrong during import6182 marks entity as failed6183 #extract6184 downloads & extracts repository bundle filepath6185 #load6186 creates repository from bundle6187 when file does not exist6188 returns6189 when path is directory6190 returns6191 when path is symlink6192 returns6193 when path is not under tmpdir6194 returns6195 when path is being traversed6196 raises an error6197 #after_run6198 removes tmpdir6199 when tmpdir does not exist6200 does not attempt to remove tmpdir6201Packages::Conan::FileMetadatum6202 relationships6203 is expected to belong to package_file required: false6204 validations6205 is expected to validate that :package_file cannot be empty/falsy6206 is expected to validate that :recipe_revision cannot be empty/falsy6207 #recipe_revision6208 is expected to allow :recipe_revision to be ‹"0"›6209 is expected not to allow :recipe_revision to be ‹nil›6210 #package_revision_for_package_file6211 recipe file6212 is valid with empty value6213 is invalid with value6214 package file6215 is valid with default value6216 is invalid with non-default value6217 #conan_package_reference_for_package_file6218 recipe file6219 is valid with empty value6220 is invalid with value6221 package file6222 is valid with acceptable value6223 is invalid with invalid value6224 is invalid when nil6225 #conan_package_type6226 validates package of type conan6227ApplicationWorker6228 Sidekiq attributes6229 sets the queue name based on the output of the router6230 when a worker attribute is updated6231 updates the queue name afterward6232 when the worker is inherited6233 sets the queue name for the inherited worker6234 #logging_extras6235 returns extra data to be logged that was set from #log_extra_metadata_on_done6236 returns extra data to be logged that was set from #log_hash_metadata_on_done6237 when nothing is set6238 returns {}6239 #structured_payload6240 adds worker related payload6241 adds labkit context6242 adds custom payload converting stringified keys6243 does not override predefined context keys with custom payload6244 .queue_namespace6245 updates the queue name from the router again6246 updates the queue_namespace options of the worker6247 .queue6248 returns the queue name6249 .data_consistency6250 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true6251 when workers data consistency is6252 not to raise an exception6253 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true6254 when workers data consistency is6255 not to raise an exception6256 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false6257 when workers data consistency is6258 not to raise an exception6259 data_consistency: :delayed, sidekiq_option_retry: nil, expect_error: false6260 when workers data consistency is6261 not to raise an exception6262 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false6263 when workers data consistency is6264 not to raise an exception6265 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false6266 when workers data consistency is6267 not to raise an exception6268 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false6269 when workers data consistency is6270 not to raise an exception6271 data_consistency: :sticky, sidekiq_option_retry: nil, expect_error: false6272 when workers data consistency is6273 not to raise an exception6274 data_consistency: :always, sidekiq_option_retry: false, expect_error: false6275 when workers data consistency is6276 not to raise an exception6277 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false6278 when workers data consistency is6279 not to raise an exception6280 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false6281 when workers data consistency is6282 not to raise an exception6283 data_consistency: :always, sidekiq_option_retry: nil, expect_error: false6284 when workers data consistency is6285 not to raise an exception6286 .retry6287 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true6288 when retry sidekiq option is6289 not to raise an exception6290 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true6291 when retry sidekiq option is6292 not to raise an exception6293 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false6294 when retry sidekiq option is6295 not to raise an exception6296 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false6297 when retry sidekiq option is6298 not to raise an exception6299 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false6300 when retry sidekiq option is6301 not to raise an exception6302 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false6303 when retry sidekiq option is6304 not to raise an exception6305 data_consistency: :always, sidekiq_option_retry: false, expect_error: false6306 when retry sidekiq option is6307 not to raise an exception6308 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false6309 when retry sidekiq option is6310 not to raise an exception6311 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false6312 when retry sidekiq option is6313 not to raise an exception6314 different kinds of push_bulk6315 .bulk_perform_async6316 push_bulk in safe limit batches6317 when the number of jobs to be enqueued does not exceed the safe limit6318 behaves like enqueues jobs in one go6319 enqueues jobs in one go6320 behaves like logs bulk insertions6321 logs arguments and job IDs6322 behaves like returns job_id of all enqueued jobs6323 returns job_id of all enqueued jobs6324 behaves like does not schedule the jobs for any specific time6325 does not schedule the jobs for any specific time6326 when the number of jobs to be enqueued exceeds safe limit6327 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6328 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6329 behaves like returns job_id of all enqueued jobs6330 returns job_id of all enqueued jobs6331 behaves like does not schedule the jobs for any specific time6332 does not schedule the jobs for any specific time6333 .bulk_perform_in6334 without batches6335 when the scheduled time falls in the past6336 raises an ArgumentError exception6337 push_bulk in safe limit batches6338 when the number of jobs to be enqueued does not exceed the safe limit6339 behaves like enqueues jobs in one go6340 enqueues jobs in one go6341 behaves like returns job_id of all enqueued jobs6342 returns job_id of all enqueued jobs6343 behaves like schedules all the jobs at a specific time6344 schedules all the jobs at a specific time6345 when the number of jobs to be enqueued exceeds safe limit6346 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6347 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6348 behaves like returns job_id of all enqueued jobs6349 returns job_id of all enqueued jobs6350 behaves like schedules all the jobs at a specific time6351 schedules all the jobs at a specific time6352 with batches6353 when the `batch_size` is invalid6354 when `batch_size` is 06355 raises an ArgumentError exception6356 when `batch_size` is negative6357 raises an ArgumentError exception6358 when the `batch_delay` is invalid6359 when `batch_delay` is 06360 raises an ArgumentError exception6361 when `batch_delay` is negative6362 raises an ArgumentError exception6363 push_bulk in safe limit batches6364 when the number of jobs to be enqueued does not exceed the safe limit6365 behaves like enqueues jobs in one go6366 enqueues jobs in one go6367 behaves like returns job_id of all enqueued jobs6368 returns job_id of all enqueued jobs6369 behaves like schedules all the jobs at a specific time, per batch6370 schedules all the jobs at a specific time, per batch6371 when the number of jobs to be enqueued exceeds safe limit6372 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6373 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6374 behaves like returns job_id of all enqueued jobs6375 returns job_id of all enqueued jobs6376 behaves like schedules all the jobs at a specific time, per batch6377 schedules all the jobs at a specific time, per batch6378 .with_status6379 when the worker does have status_expiration set6380 uses status_expiration from the worker6381 uses status_expiration from the worker without with_status6382 when the worker does not have status_expiration set6383 uses the default status_expiration6384 does not set status_expiration without with_status6385notify/pipeline_success_email.text.erb6386 behaves like pipeline status changes email6387 when the pipeline contains a failed job6388 behaves like renders the pipeline status changes email correctly6389 pipeline with user6390 renders the email correctly6391 behaves like correct pipeline information for pipelines for merge requests6392 when pipeline for merge request6393 renders a source ref of the pipeline6394 pipeline without user6395 renders the email correctly6396 when the latest failed job is a bridge job6397 behaves like renders the pipeline status changes email correctly6398 pipeline with user6399 renders the email correctly6400 behaves like correct pipeline information for pipelines for merge requests6401 when pipeline for merge request6402 renders a source ref of the pipeline6403 pipeline without user6404 renders the email correctly6405Gitlab::LegacyGithubImport::ProjectCreator6406 #execute6407 creates a project6408 handle GitHub credentials6409 when GitHub project is private6410 sets project visibility to private6411 when GitHub project is public6412 sets project visibility to namespace visibility level6413 when importing into a user namespace6414 sets project visibility to user namespace visibility level6415 when visibility level is restricted6416 when GitHub project is private6417 sets project visibility to the default project visibility6418 when GitHub project is public6419 sets project visibility to the default project visibility6420 when GitHub project has wiki6421 does not create the wiki repository6422 when GitHub project does not have wiki6423 creates the wiki repository6424gitlab:db:decomposition:rollback:bump_ci_sequences6425 when passing wrong argument6426 will print an error message and exit when passing no argument6427 will print an error message and exit when passing a non positive integer value6428 when bumping the ci sequences6429 changes ci sequences by the passed argument `increase_by` value on the main database6430 will still increase the value of sequences that have is_called = False6431 resets the INCREMENT value of the sequences back to 1 for the following calls to nextval()6432 does not change the sequences on the gitlab_main tables6433 when multiple databases6434 does not change ci sequences on the ci database6435Mutations::ReleaseAssetLinks::Update6436 #ready?6437 when link_type is included as an argument but is passed nil6438 raises a validation error6439 #resolve6440 when the current user has access to update the link6441 name6442 when a new name is provided6443 updates the name6444 behaves like no changes to the link except for the6445 does not change other link properties6446 with protected tag6447 when user has access to the protected tag6448 does not have errors6449 when user does not have access to the protected tag6450 raises a resource access error6451 when nil is provided6452 behaves like validation error with messages6453 returns the updated link as nil6454 returns a validation error6455 url6456 when a new URL is provided6457 updates the url6458 behaves like no changes to the link except for the6459 does not change other link properties6460 when nil is provided6461 behaves like validation error with messages6462 returns the updated link as nil6463 returns a validation error6464 filepath6465 when a new filepath is provided6466 updates the filepath6467 behaves like no changes to the link except for the6468 does not change other link properties6469 when nil is provided6470 updates the filepath to nil6471 link_type6472 when a new link type is provided6473 updates the link type6474 behaves like no changes to the link except for the6475 does not change other link properties6476 when the current user does not have access to update the link6477 raises an error6478 when the link doesn't exist6479 raises an error6480Gitlab::Database::BackgroundMigration::HealthStatus::Indicators::PatroniApdex6481 # order random6482 #evaluate6483 behaves like Patroni Apdex Evaluator6484 with main schema6485 returns NoSignal signal in case the feature flag is disabled6486 returns Normal signal when Patroni apdex SLI is above SLO6487 returns Stop signal when Patroni apdex is below SLO6488 without database_apdex_settings6489 returns Unknown signal6490 when Prometheus client is not ready6491 returns Unknown signal6492 when apdex SLI query is not configured6493 returns Unknown signal6494 when slo is not configured6495 returns Unknown signal6496 when Patroni apdex can not be calculated6497 result: nil6498 returns Unknown signal6499 result: []6500 returns Unknown signal6501 result: [{}]6502 returns Unknown signal6503 result: [{"value"=>1}]6504 returns Unknown signal6505 result: [{"value"=>[1]}]6506 returns Unknown signal6507 behaves like Patroni Apdex Evaluator6508 with ci schema6509 returns NoSignal signal in case the feature flag is disabled6510 returns Normal signal when Patroni apdex SLI is above SLO6511 returns Stop signal when Patroni apdex is below SLO6512 without database_apdex_settings6513 returns Unknown signal6514 when Prometheus client is not ready6515 returns Unknown signal6516 when apdex SLI query is not configured6517 returns Unknown signal6518 when slo is not configured6519 returns Unknown signal6520 when Patroni apdex can not be calculated6521 result: nil6522 returns Unknown signal6523 result: []6524 returns Unknown signal6525 result: [{}]6526 returns Unknown signal6527 result: [{"value"=>1}]6528 returns Unknown signal6529 result: [{"value"=>[1]}]6530 returns Unknown signal6531Gitlab::Ci::Ansi2json6532 lines6533 prints non-ansi as-is6534 recognizes color changing ANSI sequences6535 recognizes color changing ANSI sequences across multiple lines6536 recognizes background and foreground colors6537 recognizes style changes within the same line6538 verify_state6539 uses SignedState when true6540 uses State when false6541 new lines6542 adds new line when encountering \n6543 adds new line when encountering \r\n6544 ignores empty newlines6545 replace the current line when encountering \r6546 with section markers6547 marks the first line of the section as header6548 does not marks the other lines of the section as header6549 marks the last line of the section as footer6550 marks the first line as header and footer if is the only line in the section6551 does not add sections attribute to lines after the section is closed6552 ignores section_end marker if no section_start exists6553 prints HTML tags as is6554 when section name contains .-_ and capital letters6555 sanitizes the section name6556 when section name includes $6557 ignores the section6558 when section name includes <6559 ignores the section6560 with nested section6561 adds multiple sections to the lines inside the nested section6562 adds multiple sections to the lines inside the nested section and closes all sections together6563 with section options6564 provides section options when set6565 incremental updates6566 with split word6567 returns the full line6568 with split word on second line6569 returns all lines since last partially processed line6570 with split sequence across multiple lines6571 returns the line since last partially processed line6572 with split partial sequence6573 returns the line since last partially processed line6574 with split new line6575 returns a blank line and the next line6576 with split section6577 with split section body6578 returns the full line6579 with split section where header is also split6580 returns the full line6581 with split section end6582 returns the full line6583 trucates6584 returns truncated output6585 does not append output6586Integrations::Harbor6587 behaves like Integrations::ResetSecretFields6588 #exposing_secrets_fields6589 returns an array of strings6590 #reset_secret_fields?6591 returns false if no exposing field has changed6592 returns true if any exposing field has changed6593 validation callback6594 when an exposing field has changed6595 clears all secret fields6596 when a secret field has been updated6597 does not clear this secret field6598 when a secret field has been updated with the same value6599 does not clear this secret field6600 when no exposing field has changed6601 does not clear any secret fields6602 masked password6603 is expected not to allow :password to be ‹"hello"›6604 is expected not to allow :password to be ‹"hello world"›6605 is expected not to allow :password to be ‹"hello$VARIABLEworld"›6606 is expected not to allow :password to be ‹"hello\\rworld"›6607 is expected to allow :password to be ‹"helloworld"›6608 url6609 is expected not to allow :url to be ‹"https://192.168.1.1"›6610 is expected not to allow :url to be ‹"https://127.0.0.1"›6611 is expected to allow :url to be ‹"https://demo.goharbor.io"›6612 hostname6613 returns the host of the integration url6614 #fields6615 returns custom fields6616 #test6617 gets response from Gitlab::Harbor::Client#ping6618 #help6619 renders prompt information6620 .to_param6621 returns the name of the integration6622 ci variables6623 returns vars when harbor_integration is activated6624 when harbor_integration is inactive6625 returns []6626 with robot username6627 returns username variable with $$6628Mutations::Namespace::PackageSettings::Update6629 is expected to require graphql authorizations :admin_package6630 #resolve6631 with existing namespace package setting6632 user_role: :maintainer, shared_examples_name: "updating the namespace package setting"6633 behaves like updating the namespace package setting6634 behaves like updating the namespace package setting attributes6635 updates the namespace package setting6636 behaves like not creating the namespace package setting6637 doesn't create the namespace package setting6638 behaves like returning a success6639 returns the namespace package setting with no errors6640 with invalid params6641 doesn't update the maven_duplicates_allowed6642 returns an error6643 behaves like not creating the namespace package setting6644 doesn't create the namespace package setting6645 user_role: :developer, shared_examples_name: "denying access to namespace package setting"6646 behaves like denying access to namespace package setting6647 raises Gitlab::Graphql::Errors::ResourceNotAvailable6648 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"6649 behaves like denying access to namespace package setting6650 raises Gitlab::Graphql::Errors::ResourceNotAvailable6651 user_role: :guest, shared_examples_name: "denying access to namespace package setting"6652 behaves like denying access to namespace package setting6653 raises Gitlab::Graphql::Errors::ResourceNotAvailable6654 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"6655 behaves like denying access to namespace package setting6656 raises Gitlab::Graphql::Errors::ResourceNotAvailable6657 without existing namespace package setting6658 user_role: :maintainer, shared_examples_name: "creating the namespace package setting"6659 behaves like creating the namespace package setting6660 creates a new package setting6661 saves the settings6662 behaves like returning a success6663 returns the namespace package setting with no errors6664 user_role: :developer, shared_examples_name: "denying access to namespace package setting"6665 behaves like denying access to namespace package setting6666 raises Gitlab::Graphql::Errors::ResourceNotAvailable6667 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"6668 behaves like denying access to namespace package setting6669 raises Gitlab::Graphql::Errors::ResourceNotAvailable6670 user_role: :guest, shared_examples_name: "denying access to namespace package setting"6671 behaves like denying access to namespace package setting6672 raises Gitlab::Graphql::Errors::ResourceNotAvailable6673 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"6674 behaves like denying access to namespace package setting6675 raises Gitlab::Graphql::Errors::ResourceNotAvailable6676Ci::HasVariable6677 is expected to validate that :key cannot be empty/falsy6678 is expected to validate that the length of :key is at most 2556679 is expected to allow :key to be ‹"foo"›6680 is expected not to allow :key to be ‹"foo bar"›6681 is expected not to allow :key to be ‹"foo/bar"›6682 scopes6683 .by_key6684 is expected to contain exactly #<Ci::Variable id: 1, key: [FILTERED], value: nil, encrypted_value: "+nBZKjWZ+JD1gm3JyDyfJA==\n", enc...1091, protected: false, environment_scope: "*", masked: false, variable_type: "env_var", raw: false>6685 #key=6686 when the new key is nil6687 strips leading and trailing whitespaces6688 when the new key has leadind and trailing whitespaces6689 strips leading and trailing whitespaces6690 #value6691 stores the encrypted value6692 stores an iv for value6693 stores a salt for value6694 fails to decrypt if iv is incorrect6695 #to_runner_variable6696 returns a hash for the runner6697 with RequestStore enabled6698 decrypts once6699 does not cache similar keys6700 does not cache unpersisted values6701 .order_by6702 supports ordering by key ascending6703 supports ordering by key descending6704 when order method is unknown6705 does not call reorder6706 when order method is nil6707 does not call reorder6708Gitlab::GithubImport::Importer::SingleEndpointMergeRequestNotesImporter6709 is expected to includes the Gitlab::GithubImport::ParallelScheduling module6710 is expected to includes the Gitlab::GithubImport::SingleEndpointNotesImporting module6711 is expected to eq Gitlab::GithubImport::Representation::Note6712 is expected to eq Gitlab::GithubImport::Importer::NoteImporter6713 is expected to eq :issue_comments6714 is expected to eq :note6715 is expected to eq 16716 #each_object_to_import6717 fetches data6718 skips cached pages6719 skips cached merge requests6720JiraConnect::SyncProjectWorker6721 behaves like worker with data consistency6722 .get_data_consistency_feature_flag_enabled?6723 returns true6724 .get_data_consistency6725 returns correct data consistency6726 #perform6727 avoids N+1 database queries6728 when the project is not found6729 does not raise an error6730 with branches to sync6731 on a single branch6732 sends the request with custom update_sequence_id6733 on multiple branches6734 does not requests a lot from Gitaly6735 when the number of items to sync is higher than the limit6736 syncs only the most recent merge requests and branches within the limit6737 when the feature flag is disabled6738 does not sync branches6739Diffs::OverflowWarningComponent6740 rendered component6741 on a commit page6742 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."6743 links to the diff6744 links to the patch6745 on a merge request page and the merge request is persisted6746 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."6747 links to the diff6748 links to the patch6749 both conditions fail6750 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."6751 is expected not to include "btn gl-alert-action btn-default gl-button btn-default-secondary"6752 is expected not to include "Plain diff"6753 is expected not to include "Email patch"6754 #message6755 is expected to be a kind of String6756 is HTML-safe6757 #diff_link6758 is a string when on a commit page6759 is a string when on a merge request page6760 is nil in other situations6761 #patch_link6762 is a string when on a commit page6763 is a string when on a merge request page6764 is nil in other situations6765MergeRequests::CreateApprovalEventWorker6766 calls MergeRequests::CreateApprovalEventService6767 behaves like subscribes to event6768 consumes the published event6769 behaves like an idempotent worker6770 is labeled as idempotent6771 performs multiple times sequentially without raising an exception6772 when the user does not exist6773 behaves like when object does not exist6774 does not call MergeRequests::CreateApprovalEventService6775 when the merge request does not exist6776 behaves like when object does not exist6777 does not call MergeRequests::CreateApprovalEventService6778lograge6779 for API requests6780 logs to api_json log6781 limits param size6782 for Controller requests6783 logs to production_json log6784 logs cpu_s on supported platform6785 does not log cpu_s on unsupported platform6786 limits param size6787 when logging memory allocations6788 logs memory usage metrics6789 with a log subscriber6790 with an exception6791 adds exception data to log6792 with an ActiveRecord::StatementInvalid6793 adds the SQL query to the log6794 with etag_route6795 adds etag_route to log6796 with access token in url6797 strips location from sensitive information6798 leaves non-sensitive information from location6799 with db payload6800 when RequestStore is enabled6801 includes db counters6802 when RequestStore is disabled6803 does not include db counters6804 with db payload6805 when RequestStore is enabled6806 includes db counters for load balancing6807 when RequestStore is disabled6808 does not include db counters for load balancing6809Gitlab::Diff::PositionTracer6810 #trace6811 position is on text6812 calls LineStrategy#trace6813 position is not on text6814 calls ImageStrategy#trace6815 diffs methods6816 #ac_diffs6817 returns the diffs between the base of old and new diff6818 #bd_diffs6819 returns the diffs between the HEAD of old and new diff6820 #cd_diffs6821 returns the diffs in the new diff6822RemoveUnreferencedLfsObjectsWorker6823 #perform6824 removes unreferenced lfs objects6825 leaves referenced lfs objects6826 removes unreferenced lfs objects after project removal6827 behaves like an idempotent worker6828 is labeled as idempotent6829 performs multiple times sequentially without raising an exception6830Gitlab::Chat::Responder::Slack6831 #send_response6832 sends a response back to Slack6833 #success6834 returns the output for a successful build6835 limits the output to a fixed size6836 does not send a response if the output is empty6837 #failure6838 returns the output for a failed build6839 #scheduled_output6840 returns the output for a scheduled build6841UserStatus6842 is expected to validate that :user cannot be empty/falsy6843 is expected to allow :emoji to be ‹"smirk"›6844 is expected not to allow :emoji to be ‹"hello world"›6845 is expected not to allow :emoji to be ‹""›6846 is expected to validate that the length of :message is at most 1006847 is expected to allow :message to be ‹""›6848 is expected to be deleted when the user is deleted6849 #clear_status_after6850 is an alias of #clear_status_at6851 #clear_status_after=6852 sets clear_status_at6853 unsets clear_status_at6854 when unknown clear status is given6855 unsets clear_status_at6856 #customized?6857 is customized when message text is present6858 is not customized when message text is absent6859 is customized without message but with custom emoji6860 is not customized without message but with default custom emoji6861Packages::Go::VersionFinder6862 #execute6863 for the root module6864 behaves like #execute6865 returns v1.0.1, v1.0.2, v1.0.3, v1.0.46866 for the package6867 behaves like #execute6868 returns nothing6869 for the submodule6870 behaves like #execute6871 returns v1.0.3, v1.0.46872 for the root module v26873 behaves like #execute6874 returns v2.0.06875 for the bad module6876 with gomod checking enabled6877 behaves like #execute6878 returns nothing6879 with gomod checking disabled6880 behaves like #execute6881 returns v1.0.46882 #find6883 with a ref6884 returns a ref version6885 with a semver tag6886 returns a version with a semver6887 with a semver tag string6888 returns a version with a semver6889 with a commit6890 retruns a commit version6891 with a pseudo-version6892 returns a pseudo version6893 with a string that is not a semantic version6894 returns nil6895 with a pseudo-version that does not reference a commit6896 behaves like #find with an invalid argument6897 raises an argument exception: invalid pseudo-version: unknown commit6898 with a pseudo-version with a short sha6899 behaves like #find with an invalid argument6900 raises an argument exception: invalid pseudo-version: revision is shorter than canonical6901 with a pseudo-version with an invalid timestamp6902 behaves like #find with an invalid argument6903 raises an argument exception: invalid pseudo-version: does not match version-control timestamp6904DependencyProxy::FileUploader6905 DependencyProxy::Blob uploader6906 behaves like builds correct paths6907 #store_dir6908 behaves like matches the method pattern6909 is expected to match /\h{2}\/\h{2}/6910 #cache_dir6911 behaves like matches the method pattern6912 is expected to match /\/dependency_proxy\/tmp\/cache/6913 #work_dir6914 behaves like matches the method pattern6915 is expected to match /\/dependency_proxy\/tmp\/work/6916 #upload_path6917 behaves like matches the method pattern6918 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6919 #relative_path6920 is relative (PENDING: Path not set, skipping.)6921 .absolute_path6922 behaves like matches the method pattern6923 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6924 .base_dir6925 behaves like matches the method pattern6926 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6927 path traversal exploits6928 throws an exception6929 object store is remote6930 behaves like builds correct paths6931 #store_dir6932 behaves like matches the method pattern6933 is expected to match /\h{2}\/\h{2}/6934 #cache_dir6935 behaves like matches the method pattern6936 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6937 #work_dir6938 behaves like matches the method pattern6939 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6940 #upload_path6941 behaves like matches the method pattern6942 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6943 #relative_path6944 is relative (PENDING: Path not set, skipping.)6945 .absolute_path6946 behaves like matches the method pattern6947 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6948 .base_dir6949 behaves like matches the method pattern6950 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6951 path traversal exploits6952 throws an exception6953 DependencyProxy::Manifest uploader6954 will change upload file content type to match the model content type6955Users::UpdateTodoCountCacheService6956 #execute6957 updates the todos_counts for users6958 avoids N+1 queries6959 executes one query per batch of users6960 sets the correct cache expire time6961RuboCop::TodoDir6962 # order random6963 #delete_inspected6964 with YAML files6965 is expected to eq 36966 deletes all .inspected YAML files6967 with non-YAML files6968 is expected to eq 06969 does not delete non-YAML files6970 without files6971 is expected to eq 06972 #list_inspect6973 when file exists and is being inspected6974 is expected to contain exactly "/tmp/d20230427-324-wkbioc/r_spec/variable_instance.yml.inspect"6975 when file exists but not being inspected6976 is expected to be empty6977 when file is missing6978 is expected to be empty6979 #initialize6980 when passing inflector6981 calls .underscore6982 #inspect_all6983 with YAML files6984 is expected to eq 36985 moves all YAML files to .inspect6986 with non-YAML files6987 is expected to eq 06988 does not move non-YAML files6989 without files6990 is expected to eq 06991 #inspect6992 with existing YAML file6993 is expected to eq true6994 moves YAML file to .inspect6995 with missing YAML file6996 is expected to eq false6997 #write6998 is expected to eq "/tmp/d20230427-324-tqmncb/r_spec/variable_instance.yml"6999 writes content to YAML file7000 #read7001 when file exists7002 is expected to eq "a"7003 when file is missing7004 is expected to be nil7005WorkItems::DeleteTaskService7006 #execute7007 when work item params are valid7008 is expected to be success7009 deletes the work item and the related issue link7010 removes the task list item with the work item reference7011 when first operation fails7012 behaves like failing WorkItems::DeleteTaskService7013 is expected to be error7014 does not remove work item or issue links7015 returns an error message7016 when last operation fails7017 behaves like failing WorkItems::DeleteTaskService7018 is expected to be error7019 does not remove work item or issue links7020 returns an error message7021Integrations::Confluence7022 Validations7023 when integration is active7024 is expected not to allow :confluence_url to be ‹"https://example.com"›7025 is expected not to allow :confluence_url to be ‹"example.com"›7026 is expected not to allow :confluence_url to be ‹"foo"›7027 is expected not to allow :confluence_url to be ‹"ftp://example.atlassian.net/wiki"›7028 is expected not to allow :confluence_url to be ‹"https://example.atlassian.net"›7029 is expected not to allow :confluence_url to be ‹"https://.atlassian.net/wiki"›7030 is expected not to allow :confluence_url to be ‹"https://example.atlassian.net/wikifoo"›7031 is expected not to allow :confluence_url to be ‹""›7032 is expected not to allow :confluence_url to be ‹nil›7033 is expected not to allow :confluence_url to be ‹"😊"›7034 is expected to allow :confluence_url to be ‹"https://example.atlassian.net/wiki"›7035 is expected to allow :confluence_url to be ‹"http://example.atlassian.net/wiki"›7036 is expected to allow :confluence_url to be ‹"https://example.atlassian.net/wiki/"›7037 is expected to allow :confluence_url to be ‹"http://example.atlassian.net/wiki/"›7038 is expected to allow :confluence_url to be ‹"https://example.atlassian.net/wiki/foo"›7039 is expected to validate that :confluence_url cannot be empty/falsy7040 when integration is inactive7041 is expected not to validate that :confluence_url cannot be empty/falsy7042 is expected to allow :confluence_url to be ‹"foo"›7043 #help7044 can correctly return a link to the project wiki when active7045 when the project wiki is not enabled7046 returns nil when both active or inactive7047 Caching has_confluence on project_settings7048 sets the property to true when integration is active7049 sets the property to false when integration is not active7050 creates a project_setting record if one was not already created7051Network::Graph7052 #initialize7053 has initialized7054 when disable_network_graph_note_counts is disabled7055 initializes the notes hash7056 #commits7057 returns a list of commits7058 sorts commits by commit date (descending)7059 sorts children before parents for commits with the same timestamp7060Gitlab::UsageData::Topology7061 #topology_usage_data7062 can reach a ready Prometheus client7063 behaves like query topology data from Prometheus7064 tracking node metrics7065 contains node level metrics for each instance7066 and some node memory metrics are missing7067 removes the respective entries and includes the failures7068 and services run on the same node but report different instance values7069 normalizes equivalent instance values and maps them to the same node7070 and node metrics are missing but service metrics exist7071 still reports service metrics7072 and unknown services are encountered7073 filters out unknown service data and reports the unknown services as a failure7074 and an error is raised when querying Prometheus7075 without timeout failures7076 returns empty result and executes subsequent queries as usual7077 with timeout failures7078 exception: Errno::ETIMEDOUT7079 returns empty result and cancelled subsequent queries7080 exception: Net::OpenTimeout7081 returns empty result and cancelled subsequent queries7082 exception: Net::ReadTimeout7083 returns empty result and cancelled subsequent queries7084 can not reach a ready Prometheus client7085 behaves like returns empty result with no failures7086 is expected to eq {:duration_s=>0, :failures=>[]}7087 when top-level function raises error7088 returns empty result with generic failure7089Ci::UnitTestFailure7090 relationships7091 is expected to belong to build required: false7092 is expected to belong to unit_test required: false7093 validations7094 is expected to validate that :unit_test cannot be empty/falsy7095 is expected to validate that :build cannot be empty/falsy7096 is expected to validate that :failed_at cannot be empty/falsy7097 .recent_failures_count7098 when unit test failures are within the date range and are for the unit test keys7099 returns the number of failures for each unit test key hash for the past 14 days by default7100 when unit test failures are within the date range but are not for the unit test keys7101 excludes them from the count7102 when unit test failures are not within the date range but are for the unit test keys7103 excludes them from the count7104 partitioning7105 with build7106 copies the partition_id from build (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)7107 when it is already set7108 does not change the partition_id value (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)7109 without build7110 example at ./spec/models/ci/unit_test_failure_spec.rb:108 (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)7111 does not change the partition_id value (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)7112Banzai::ReferenceParser::LabelParser7113 #nodes_visible_to_user7114 when the link has a data-issue attribute7115 behaves like referenced feature visibility7116 when feature is disabled7117 does not create reference7118 when feature is enabled only for team members7119 does not create reference for non member7120 creates reference for member7121 when feature is enabled7122 creates reference7123 #referenced_by7124 when the link has a data-label attribute7125 using an existing label ID7126 returns an Array of labels7127 using a non-existing label ID7128 returns an empty Array7129Gitlab::HookData::IssueBuilder7130 #build7131 includes safe attribute7132 includes additional attrs7133 when the issue has an image in the description7134 sets the image to use an absolute URL7135 for incident7136 includes additional attr7137Sidebars::Groups::Menus::IssuesMenu7138 Menu Items7139 List7140 is expected not to be nil7141 behaves like menu access rights7142 is expected not to be nil7143 when the user does not have access7144 is expected to be nil7145 Boards7146 behaves like menu access rights7147 is expected not to be nil7148 when the user does not have access7149 is expected to be nil7150 Milestones7151 behaves like menu access rights7152 is expected not to be nil7153 when the user does not have access7154 is expected to be nil7155 behaves like pill_count formatted results7156 returns all digits for count value under 10007157 returns truncated digits for count value over 10007158 returns truncated digits for count value over 100007159 returns truncated digits for count value over 1000007160 behaves like serializable as super_sidebar_menu_args7161 returns hash with provided attributes7162 returns hash with an item_id7163Gitlab::Ci::Pipeline::Chain::Build::Associations7164 sets pipeline variables7165 when a bridge is passed in to the pipeline creation7166 links the pipeline to the upstream bridge job7167 behaves like does not break the chain7168 returns false7169 when a bridge is not passed in to the pipeline creation7170 leaves the source pipeline empty7171 behaves like does not break the chain7172 returns false7173 when project setting restrict_user_defined_variables is enabled7174 when user is developer7175 returns an error on variables_attributes7176 behaves like breaks the chain7177 returns true7178 when variables_attributes is not specified7179 assigns empty variables7180 behaves like does not break the chain7181 returns false7182 when user is maintainer7183 assigns variables_attributes7184 behaves like does not break the chain7185 returns false7186 with duplicate pipeline variables7187 returns an error for variables_attributes7188 behaves like breaks the chain7189 returns true7190DeployTokenPolicy7191 creating a deploy key7192 when user is maintainer7193 is expected to be allowed :create_deploy_token7194 when user is not maintainer7195 is expected to be disallowed :create_deploy_token7196 updating a deploy key7197 when user is maintainer7198 is expected to be allowed :update_deploy_token7199 when user is not maintainer7200 is expected to be disallowed :update_deploy_token7201Ci::StatusHelper7202 #ci_icon_for_status7203 renders to correct svg on success7204 renders the correct svg on failure7205 #ci_text_for_status7206 when status is manual7207 changes the status to blocked7208 when status is success7209 changes the status to passed7210 when status is something else7211 returns status unchanged7212 #pipeline_status_cache_key7213 builds a cache key for pipeline status7214 #render_status_with_link7215 renders a passed status icon7216 has 'Pipeline' as the status type in the title7217 has the success status icon7218 when pipeline has commit path7219 links to commit7220 does not contain a span element7221 has 'Pipeline' as the status type in the title7222 has the correct status icon7223 when different type than pipeline is provided7224 has the provided type in the title7225 when tooltip_placement is provided7226 has the provided tooltip placement7227 when additional CSS classes are provided7228 has appended extra class to icon classes7229 when container is provided7230 has the provided container in data7231 when icon_size is provided7232 has the svg class to change size7233Packages::Rpm::RepositoryFileUploader7234 # order random7235 behaves like builds correct paths7236 #store_dir7237 behaves like matches the method pattern7238 is expected to match /^\h{2}\/\h{2}\/\h{64}\/projects\/\d+\/rpm\/repository_files\/\d+$/7239 #cache_dir7240 behaves like matches the method pattern7241 is expected to match /\/packages\/tmp\/cache/7242 #work_dir7243 behaves like matches the method pattern7244 is expected to match /\/packages\/tmp\/work/7245 #upload_path7246 behaves like matches the method pattern7247 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7248 #relative_path7249 is relative (PENDING: Path not set, skipping.)7250 .absolute_path7251 behaves like matches the method pattern7252 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7253 .base_dir7254 behaves like matches the method pattern7255 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7256 path traversal exploits7257 throws an exception7258 when object store is remote7259 behaves like builds correct paths7260 #store_dir7261 behaves like matches the method pattern7262 is expected to match /^\h{2}\/\h{2}\/\h{64}\/projects\/\d+\/rpm\/repository_files\/\d+$/7263 #cache_dir7264 behaves like matches the method pattern7265 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7266 #work_dir7267 behaves like matches the method pattern7268 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7269 #upload_path7270 behaves like matches the method pattern7271 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7272 #relative_path7273 is relative (PENDING: Path not set, skipping.)7274 .absolute_path7275 behaves like matches the method pattern7276 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7277 .base_dir7278 behaves like matches the method pattern7279 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7280 path traversal exploits7281 throws an exception7282 remote file7283 with object storage enabled7284 can store file remotely7285Database::MultipleDatabasesHelpers7286 # order random7287 preloads database version for ApplicationRecord7288 preloads database version for Ci::ApplicationRecord7289 .with_added_ci_connection7290 when only a single database is setup7291 connects Ci::ApplicationRecord to the main database for the duration of the block (PENDING: Skipping because some of the extra databases [:ci] are setup)7292 when multiple databases are setup7293 does not mock the original Ci::ApplicationRecord connection7294 .with_reestablished_active_record_base7295 when doing establish_connection7296 on ActiveRecord::Base7297 raises exception7298 when using with_reestablished_active_record_base7299 does not raise exception7300 on Ci::ApplicationRecord7301 raises exception7302 when using with_reestablished_active_record_base7303 does not raise exception7304 when trying to access connection7305 when reconnect is true7306 does not raise exception7307 when reconnect is false7308 does raise exception7309projects/merge_requests/creations/_new_submit.html.haml7310 when there are pipelines for merge request but no pipeline for last commit7311 shows <<Pipelines>> tab and hides <<Builds>> tab7312Gitlab::Ci::Config::Entry::Include::Rules7313 .new7314 with an "if"7315 behaves like a valid config7316 is expected to be valid7317 when composed7318 is expected to be valid7319 with a "changes"7320 when composed7321 behaves like an invalid config7322 is expected not to be valid7323 has errors7324 with a list of two rules7325 behaves like a valid config7326 is expected to be valid7327 when composed7328 is expected to be valid7329 without an array7330 behaves like an invalid config7331 is expected not to be valid7332 has errors7333 #value7334 with an "if"7335 is expected to eq [{:if=>"$THIS == \"that\""}]7336 with a list of two rules7337 is expected to eq [{:if=>"$THIS == \"that\""}, {:if=>"$SKIP"}]7338Ci::BuildNeed7339 is expected to belong to build class_name => Ci::Processable required: false7340 is expected to validate that :build cannot be empty/falsy7341 is expected to validate that :name cannot be empty/falsy7342 is expected to validate that the length of :name is at most 1287343 .artifacts7344 is expected to contain exactly #<Ci::BuildNeed name: "build_1", artifacts: true, optional: false, build_id: 417, partition_id: 100, id: 99>7345 BulkInsertSafe7346 bulk inserts from Ci::Build model7347 partitioning7348 with build7349 sets partition_id to the current partition value7350 when it is already set7351 does not change the partition_id value7352 without build7353 is expected to validate that :partition_id cannot be empty/falsy7354 does not change the partition_id value7355 when using bulk_insert7356 creates build needs successfully (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)7357PagesDomainVerificationWorker7358 #perform7359 does nothing if the database is read-only7360 does nothing for a non-existent domain7361 delegates to VerifyPagesDomainService7362Gitlab::Cache::Metadata7363 # order random7364 #backing_resource7365 is expected to eq :unknown7366 #cache_identifier7367 is expected to eq "ApplicationController#show"7368 #initialize7369 when optional arguments are not set7370 sets default value for them7371 when invalid feature category is set7372 is expected to raise RuntimeError7373 when on production7374 does not raise an exception7375 when backing resource is not supported7376 is expected to raise RuntimeError7377 when on production7378 does not raise an exception7379 #feature_category7380 is expected to eq :source_code_management7381Gitlab::Database::SchemaValidation::Database7382 # order random7383 when having tables7384 #fetch_table_by_name7385 returns nil when schema object does not exists7386 returns the schema object by name7387 #table_exists?7388 returns true when schema object exists7389 returns false when schema object does not exists7390 #tables7391 returns all the schema objects7392 when having indexes7393 #fetch_index_by_name7394 returns nil when schema object does not exists7395 returns the schema object by name7396 #index_exists?7397 returns true when schema object exists7398 returns false when schema object does not exists7399 #indexes7400 returns all the schema objects7401 when having triggers7402 #fetch_trigger_by_name7403 returns nil when schema object does not exists7404 returns the schema object by name7405 #trigger_exists?7406 returns true when schema object exists7407 returns false when schema object does not exists7408 #triggers7409 returns all the schema objects7410BackgroundMigrationWorker7411 behaves like it runs background migration jobs7412 defining the job attributes7413 defines the data_consistency as always7414 defines the retry count in sidekiq_options7415 defines the feature_category as database7416 defines the urgency as throttled7417 defines the loggable_arguments7418 .tracking_database7419 does not raise an error7420 overrides the method to return the tracking database7421 .minimum_interval7422 returns 2 minutes7423 #perform7424 when execute_background_migrations feature flag is disabled7425 does not perform the job, reschedules it in the future, and logs a message7426 when execute_background_migrations feature flag is enabled7427 performs jobs using the coordinator for the worker7428 when lease can be obtained7429 sets up the shared connection before checking replication7430 performs a background migration7431 can run scheduled job and retried job concurrently7432 sets the class that will be executed as the caller_id7433 when lease_attempts is 17434 performs a background migration7435 when lease not obtained (migration of same class was performed recently)7436 reschedules the migration and decrements the lease_attempts7437 when lease_attempts is 17438 reschedules the migration and decrements the lease_attempts7439 when lease_attempts is 07440 gives up performing the migration7441 when database is not healthy7442 reschedules a migration if the database is not healthy7443 increments the unhealthy counter7444 when lease_attempts is 07445 gives up performing the migration7446Timelogs::DeleteService7447 #execute7448 when the timelog exists7449 removes the timelog7450 returns the removed timelog7451 when the timelog does not exist7452 returns an error7453 when the user does not have permission7454 returns an error7455 when the timelog deletion fails7456 returns an error7457Ci::RunnerManagerBuild7458 # order random7459 is expected to belong to runner_manager required: false7460 is expected to belong to build required: false7461 loose foreign key on p_ci_runner_manager_builds.runner_manager_id7462 behaves like cleanup by a loose foreign key7463 cleans up (delete or nullify) the model7464 partitioning7465 with build7466 sets partition_id to the current partition value7467 when it is already set7468 does not change the partition_id value7469 without build7470 is expected to validate that :partition_id cannot be empty/falsy7471 does not change the partition_id value7472 .for_build7473 with valid build_id7474 is expected to contain exactly #<Ci::RunnerManagerBuild partition_id: 100, build_id: 420, runner_machine_id: 29>7475 with valid build_ids7476 is expected to eq #<ActiveRecord::Relation [#<Ci::RunnerManagerBuild partition_id: 100, build_id: 420, runner_machine_id: 29>, #<Ci::RunnerManagerBuild partition_id: 100, build_id: 422, runner_machine_id: 29>]>7477 with non-existeng build_id7478 is expected to be empty7479 .pluck_runner_manager_id_and_build_id7480 with default scope7481 is expected to eq {420=>29}7482 with scope excluding build7483 is expected to be empty7484 ci_sliding_list partitioning7485 is expected to be empty7486 is expected to be empty7487 is expected to include #<Gitlab::Database::Partitioning::SingleNumericListPartition:0x00007f0aa16bea88 @table="p_ci_runner_machine_builds", @value=100, @partition_name="ci_runner_machine_builds_100">7488 is expected to be present7489Gitlab::GithubImport::Markdown::Attachment7490 # order random7491 #doc_belongs_to_project?7492 when url relates to this project7493 is expected to eq true7494 when url is not related to this project7495 is expected to eq false7496 when url is a part of project blob7497 is expected to eq false7498 #inspect7499 returns attachment basic info7500 .from_markdown7501 when it's a doc attachment7502 returns instance with attachment info7503 when type is not in whitelist7504 is expected to eq nil7505 when domain name is unknown7506 is expected to eq nil7507 when URL is blank7508 is expected to eq nil7509 when it's an image attachment7510 returns instance with attachment info7511 when type is not in whitelist7512 is expected to eq nil7513 when domain name is unknown7514 is expected to eq nil7515 when URL is blank7516 is expected to eq nil7517 when it's an inline html node7518 returns instance with attachment info7519 when image src is not present7520 is expected to eq nil7521 #part_of_project_blob?7522 when url is a part of project blob7523 is expected to eq true7524 when url is not a part of project blob7525 is expected to eq false7526 #media?7527 when it is a media link7528 is expected to eq true7529 when it is not a media link7530 is expected to eq false7531AnalyticsIssueEntity7532 without subgroup7533 behaves like generic entity7534 contains the entity URL7535 contains the author7536 contains the project path7537 contains the namespace full path7538 contains the end event timestamp7539 does not contain sensitive information7540 when end_event_timestamp is nil7541 contains a nil end_event_timestamp7542 with subgroup7543 has URL containing subgroup7544 behaves like generic entity7545 contains the entity URL7546 contains the author7547 contains the project path7548 contains the namespace full path7549 contains the end event timestamp7550 does not contain sensitive information7551 when end_event_timestamp is nil7552 contains a nil end_event_timestamp7553MilestonesFinder7554 without filters7555 returns milestones for projects7556 returns milestones for groups7557 milestones for groups and project7558 returns milestones for groups and projects7559 orders milestones by due date7560 when grouping and sorting by expired_last7561 current milestones are returned first, then milestones without due date followed by expired milestones, sorted by due date in ascending order7562 #find_by7563 finds a single milestone7564 with filters7565 filters by id7566 filters by active state7567 filters by closed state7568 filters by title7569 filters by search_title7570 filters by search (title, description)7571 by timeframe7572 returns milestones with start_date and due_date between timeframe7573 returns milestones which starts before the timeframe7574 returns milestones which ends after the timeframe7575 by updated_at7576 returns milestones updated before a given date7577 returns milestones updated after a given date7578 returns milestones updated between the given dates7579 by iids7580 returns milestone for the given iids7581 when include_parent_milestones is true7582 ignores the iid filter7583Gitlab::Prometheus::MetricGroup7584 .common_metrics7585 returns exactly two groups7586 returns exactly three metric queries7587 orders by priority7588 .for_project7589 returns exactly one common metric7590Ci::Catalog::Listing7591 # order random7592 #new7593 when namespace is not a root namespace7594 raises an exception7595 #resources7596 when the user has access to all projects in the namespace7597 when the namespace has no catalog resources7598 is expected to be empty7599 when the namespace has catalog resources7600 contains only catalog resources for projects in that namespace7601 when the user only has access to some projects in the namespace7602 only returns catalog resources for projects the user has access to7603 when the user does not have access to the namespace7604 is expected to be empty7605Sidebars::Projects::Menus::DeploymentsMenu7606 behaves like not serializable as super_sidebar_menu_args7607 returns nil7608 #render?7609 when menu does not have any menu items7610 returns false7611 when menu has menu items7612 returns true7613 Menu Items7614 Feature flags7615 behaves like access rights checks7616 is expected not to be nil7617 when the user does not have access7618 is expected to be nil7619 when the feature is disabled7620 is expected to be nil7621 Environments7622 behaves like access rights checks7623 is expected not to be nil7624 when the user does not have access7625 is expected to be nil7626 when the feature is disabled7627 is expected to be nil7628 Releases7629 behaves like access rights checks7630 is expected not to be nil7631 when the user does not have access7632 is expected to be nil7633 when the feature is disabled7634 is expected to be nil7635Sidebars::UserSettings::Menus::ProfileMenu7636 # order random7637 behaves like User settings menu #render? method7638 #render?7639 when user is logged in7640 renders7641 when user is not logged in7642 does not render7643 behaves like User settings menu7644 does not contain any sub menu7645 renders the correct link7646 renders the correct title7647 renders the correct icon7648 defines correct active route7649Projects::ContainerRepository::Gitlab::DeleteTagsService7650 #execute7651 with tags to delete7652 succeeds when tag delete returns 4047653 succeeds when a tag delete returns 5007654 behaves like deleting tags7655 deletes the tags by name7656 with failures7657 when the delete request fails7658 is expected to eq {:message=>"could not delete tags", :status=>:error}7659 with timeout7660 set to a valid value7661 example at ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:62 (FAILED - 1)76631st Try error in ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:62:7664comparison of Integer with ActiveSupport::TimeWithZone failed7666RSpec::Retry: 2nd try ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:627667 tracks the exception (FAILED - 2)76691st Try error in ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:64:7670comparison of Integer with ActiveSupport::TimeWithZone failed7672RSpec::Retry: 2nd try ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:647673 set to 07674 behaves like deleting tags7675 deletes the tags by name7676 set to nil7677 behaves like deleting tags7678 deletes the tags by name7679 with a network error7680 is expected to eq {:deleted=>[], :exception_class_name=>"Faraday::TimeoutError", :message=>"error while deleting tags", :status=>:error}7681 tracks the exception7682 with empty tags7683 does not remove anything7684Branches::ValidateNewService7685 #execute7686 validation7687 returns error with an invalid branch name7688 returns success with a valid branch name7689 branch exist7690 returns error when branch exists7691 returns success when branch name is available7692Issues::CloseWorker7693 # order random7694 #perform7695 #perform7696 when the user can update the issues7697 closes the issues7698 closes external issues7699 when the user can not update the issues7700 does not close the issues7701 when the project does not exist7702 behaves like when object does not exist7703 does not call the close issue service7704 when the user does not exist7705 behaves like when object does not exist7706 does not call the close issue service7707 when the issue does not exist7708 behaves like when object does not exist7709 does not call the close issue service7710Gitlab::Identifier7711 #identify7712 without an identifier7713 returns nil7714 with a user identifier7715 identifies the user using a user ID7716 with an SSH key identifier7717 identifies the user using an SSH key ID7718 #identify_using_user7719 returns the User for an existing ID in the identifier7720 returns nil for a non existing user ID7721 caches the found users per ID7722 #identify_using_ssh_key7723 returns the User for an existing SSH key7724 returns nil for an invalid SSH key7725 caches the found users per key7726LfsFileLockEntity7727 exposes basic attrs of the lock7728 exposes the owner info7729ReactiveCachingWorker7730 behaves like reactive cacheable worker7731 #perform7732 when reactive cache worker class is found7733 calls #exclusively_update_reactive_cache!7734 when ReactiveCaching::ExceededReactiveCacheLimit is raised7735 avoids failing the job and tracks via Gitlab::ErrorTracking7736 when reactive cache worker class is not found7737 raises no error7738 when reactive cache worker class is invalid7739 raises no error7740 worker context7741 sets the related class on the job7742 sets the related class on the job when it was passed as a class7743Users::SavedReplies::UpdateService7744 #execute7745 when update fails7746 is expected not to be success7747 returns error messages7748 when update succeeds7749 is expected to be success7750 updates new Saved Reply in database7751 returns saved reply7752Mutations::IncidentManagement::TimelineEvent::Destroy7753 # order random7754 is expected to require graphql authorizations :admin_incident_management_timeline_event7755 #resolve7756 when a user has permissions to delete timeline event7757 when TimelineEvents::DestroyService responds with success7758 returns the timeline event with no errors7759 when TimelineEvents::DestroyService responds with an error7760 returns errors7761 when a user has no permissions to delete timeline event7762 raises an error7763MigrateExternalDiffsWorker7764 #perform7765 migrates the listed diff7766 does nothing if the diff is missing7767Gitlab::Auth::OAuth::Provider7768 .enabled?7769 when OmniAuth is disabled7770 allows database auth7771 allows LDAP auth7772 does not allow other OmniAuth providers7773 when OmniAuth is enabled7774 allows database auth7775 allows LDAP auth7776 allows other OmniAuth providers7777 .config_for7778 for an LDAP provider7779 when the provider exists7780 returns the config7781 when the provider does not exist7782 returns nil7783 for an OmniAuth provider7784 when the provider exists7785 returns the config7786 merges defaults with the given configuration7787 when the provider does not exist7788 returns nil7789 for an OpenID Connect provider7790 when the provider exists7791 returns the config7792 .label_for7793 when configuration specifies a custom label7794 returns the custom label name7795 when configuration does not specify a custom label7796 when the name does not correspond to a label mapping7797 returns the titleized name7798 when the name corresponds to a label mapping7799 returns the mapped name7800Groups::AcceptingProjectImportsFinder7801 # order random7802 #execute7803 only returns groups where the user has access to import projects7804SafeZip::Extract7805 #extract7806 when using valid-simple.zip archive7807 behaves like extracts archive7808 when specifying directories7809 does extract archive7810 when specifying files7811 does extract archive7812 when using valid-symlinks-first.zip archive7813 behaves like extracts archive7814 when specifying directories7815 does extract archive7816 when specifying files7817 does extract archive7818 when using valid-non-writeable.zip archive7819 behaves like extracts archive7820 when specifying directories7821 does extract archive7822 when specifying files7823 does extract archive7824 when zip files are invalid7825 name: "invalid-symlink-does-not-exist.zip", message: "does not exist"7826 behaves like fails to extract archive7827 does not extract archive7828 name: "invalid-symlinks-outside.zip", message: "Symlink cannot be created"7829 behaves like fails to extract archive7830 does not extract archive7831 name: "invalid-unexpected-large.zip", message: "larger when inflated"7832 behaves like fails to extract archive7833 does not extract archive7834 when no matching directories are found7835 behaves like fails to extract archive7836 does not extract archive7837 when no matching files are found7838 behaves like fails to extract archive7839 does not extract archive7840NotificationRecipients::Builder::NewNote7841 #notification_recipients7842 for public notes7843 adds all participants, watchers and subscribers7844 for confidential notes7845 adds all participants, watchers and subscribers that are project memebrs7846Gitlab::JiraImport::IssueSerializer7847 #execute7848 attributes setting7849 sets the basic attributes7850 creates a hash for valid issue7851 labels7852 creates all missing labels (on project level)7853 when there are no new labels7854 assigns the labels to the Issue hash7855 does not create new labels7856 author7857 when reporter maps to a valid GitLab user7858 sets the issue author to the mapped user7859 when reporter does not map to a valid Gitlab user7860 defaults the issue author to project creator7861 when reporter field is empty7862 defaults the issue author to project creator7863 when reporter field is missing accountId7864 defaults the issue author to project creator7865 assignee7866 when assignee maps to a valid GitLab user7867 sets the issue assignees to the mapped user7868 when assignee does not map to a valid GitLab user7869 leaves the assignee empty7870 when assginee field is empty7871 leaves the assignee empty7872 when assginee field is missing accountId7873 leaves the assignee empty7874 with jira server response7875 when assignee maps to a valid GitLab user7876 sets the issue assignees to the mapped user7877 with done status7878 maps the status to closed7879 without the iid7880 does not set the iid7881RefMatcher7882 #matching7883 when refs are strings7884 is expected to contain exactly "v1.0"7885 behaves like matching_refs7886 when there is no match7887 is expected to contain exactly7888 when ref pattern is a wildcard7889 is expected to contain exactly "v1.0" and "v1.1"7890 when refs are ref objects7891 is expected to contain exactly #<Double "tag">7892 behaves like matching_refs7893 when there is no match7894 is expected to contain exactly7895 when ref pattern is a wildcard7896 is expected to contain exactly #<Double "tag"> and #<Double "tag">7897 #matches?7898 is expected to be truthy7899 when ref_name is empty7900 is expected to be falsey7901 when ref pattern matches wildcard7902 is expected to be truthy7903 when ref pattern does not match wildcard7904 is expected to be falsey7905 #wildcard?7906 is expected to be falsey7907 when pattern is a wildcard7908 is expected to be truthy7909Gitlab::MailRoom::Authenticator7910 #verify_api_request7911 verify a valid token7912 returns the decoded payload7913 verify an invalid token7914 returns false7915 verify a valid token but wrong mailbox type7916 returns false7917 verify a valid token but wrong issuer7918 returns false7919 verify a valid token but expired7920 returns false7921 verify a valid token but wrong header field7922 returns false7923 verify headers for a disabled mailbox type7924 returns false7925 verify headers for a non-existing mailbox type7926 returns false7927 #secret7928 the secret is valid7929 returns the memorized secret from a file7930 the secret file is not configured7931 raises a SecretConfigurationError exception7932 the secret file not found7933 raises a SecretConfigurationError exception7934PersonalAccessTokens::ExpiredNotificationWorker7935 #perform7936 when a token has expired7937 uses notification service to send email to the user7938 updates notified column7939 when token has expired in the past7940 behaves like expiry notification is not required to be sent for the token7941 is expected not to receive access_token_expired(#<User id:1865 @user721>, ["PAT 3"]) 0 times7942 when token is impersonated7943 behaves like expiry notification is not required to be sent for the token7944 is expected not to receive access_token_expired(#<User id:1866 @user722>, ["PAT 4"]) 0 times7945 when token is revoked7946 behaves like expiry notification is not required to be sent for the token7947 is expected not to receive access_token_expired(#<User id:1867 @user723>, ["PAT 5"]) 0 times7948Tooling::Mappings::JsToSystemSpecsMappings7949 # order random7950 #construct_js_keywords7951 returns a singularized keyword based on the first folder the file is in7952 when the files are under the pages folder7953 captures the second folder7954 #execute7955 when no JS files were changed7956 does not change the output file7957 when some JS files were changed7958 when the JS files are not present on disk7959 does not change the output file7960 when the JS files are present on disk7961 when no system specs match the JS keyword7962 does not change the output file7963 when a system spec matches the JS keyword7964 adds the new specs to the output file7965 #filter_files7966 when no files were changed7967 returns an empty array7968 when JS files were changed7969 returns the path to the JS files7970 when JS files are deleted7971 returns an empty array7972 #system_specs_for_edition7973 when a file is not a ruby spec7974 does not return that file7975 when a file is a ruby spec7976 returns that file7977 when FOSS7978 checks the correct folder7979 when EE7980 checks the correct folder7981 when JiHu7982 checks the correct folder7983Clusters::Agents::DeleteExpiredEventsService7984 #execute7985 does not delete events if the limit has not been reached7986 there are more events than the limit7987 removes events to remain at the limit, keeping the most recent7988MergeRequests::ExecuteApprovalHooksService7989 #execute7990 sends a notification when approving7991 with remaining approvals7992 fires an approval webhook7993Gitlab::Experiment::Rollout::Feature7994 #enabled?7995 is enabled when all criteria are met7996 isn't enabled if the feature definition doesn't exist7997 isn't enabled if we're not in dev or dotcom environments7998 isn't enabled if the feature flag state is :off7999 isn't enabled if the gitlab_experiment feature flag is false8000 #execute_assignment8001 uses the default value as specified in the yaml8002 returns an assigned name8003 #flipper_id8004 returns the expected flipper id if the experiment doesn't provide one8005 lets the experiment provide a flipper id so it can override the default8006Resolvers::GroupMembersResolver8007 is expected to have nullable GraphQL type GroupMemberConnection8008 behaves like querying members with a group8009 #resolve8010 finds all resource members8011 with sort options8012 searches users by user name8013 with search8014 when the search term matches a user8015 searches users by user name8016 when the search term does not match any user8017 is empty8018 when user can not see resource members8019 generates an error8020Pajamas::BannerComponent8021 basic usage8022 renders its content8023 renders its title8024 renders a close button8025 button_text and button_link8026 define the primary action8027 banner_options8028 are on the banner8029 with custom classes8030 don't conflict with internal banner_classes8031 close_options8032 are on the close button8033 embedded8034 by default (false)8035 keeps the banner's borders8036 when set to true8037 removes the banner's borders8038 variant8039 by default (promotion)8040 applies no variant class8041 when set to introduction8042 applies the introduction class to the banner8043 applies the confirm class to the close button8044 when set to unknown variant8045 ignores the unknown variant8046 illustration8047 has none by default8048 with svg_path8049 renders an image as illustration8050 with illustration slot8051 renders the slot content as illustration8052 and conflicting svg_path8053 uses the slot content8054 with primary_action slot8055 renders the slot content as the primary action8056 and conflicting button_text and button_link8057 uses the slot content8058EnvironmentsHelper8059 #metrics_data8060 returns data8061 without admin_operations permission8062 is expected to include {"can_access_operations_settings" => "false"}8063 with metrics_setting8064 adds external_dashboard_url8065 when the environment is not available8066 is expected to include {"environment_state" => "stopped"}8067 when request is from project scoped metrics path8068 /:namespace/:project/-/metrics8069 uses correct path for metrics_dashboard_base_path8070 /:namespace/:project/-/metrics/some_custom_dashboard.yml8071 uses correct path for metrics_dashboard_base_path8072 #custom_metrics_available?8073 returns true8074 #environment_logs_data8075 returns logs data8076 #environment_data8077 returns the environment as JSON8078Gitlab::Ci::Tags::BulkInsert8079 gem version8080 is expected to eq "9.0.0"8081 .bulk_insert_tags!8082 delegates to bulk insert class8083 #insert!8084 without tags8085 is expected to be falsey8086 with tags8087 persists tags8088 persists taggings8089 strips tags8090 when batching inserts for tags8091 inserts tags in batches8092 when batching inserts for taggings8093 inserts taggings in batches8094 with tags for only one job8095 persists tags8096 persists taggings8097Gitlab::Database::Migrations::ReestablishedConnectionStack8098 #with_restored_connection_stack8099 main8100 behaves like reconfigures connection stack8101 does restore connection hierarchy8102 does keep original connection handler8103 ci8104 behaves like reconfigures connection stack8105 does restore connection hierarchy8106 does reconfigure connection handler8107SystemNotes::IncidentsService8108 # order random8109 #delete_timeline_event8110 posts the correct text to the system note8111 behaves like a system note8112 has the correct attributes8113 #edit_timeline_event8114 behaves like a system note8115 has the correct attributes8116 when only timeline event's occurred_at was changed8117 posts the correct text to the system note8118 when only timeline event's note was changed8119 posts the correct text to the system note8120 when both timeline events occurred_at and note was changed8121 posts the correct text to the system note8122 when was changed reason is unknown8123 posts the correct text to the system note8124 #add_timeline_event8125 posts the correct text to the system note8126 behaves like a system note8127 has the correct attributes8128Gitlab::Ci::Pipeline::Chain::PopulateMetadata8129 # order random8130 with pipeline name8131 does not break the chain8132 builds pipeline_metadata8133 with empty name8134 strips whitespace from name8135 with empty name after variable substitution8136 does not save empty name8137 with variables8138 substitutes variables8139 with invalid name8140 returns error and breaks chain8141ResourceMilestoneEventPolicy8142 # order random8143 #read_milestone8144 allows to read deleted milestone8145 allows to read accessible milestone8146 does not allow to read not accessible milestone8147 #read_resource_milestone_event8148 with non-member user8149 does not allow to read event8150 with member user8151 allows to read event for accessible milestone8152 does not allow to read event for not accessible milestone8153BulkImports::FinishBatchedRelationExportWorker8154 # order random8155 #perform8156 behaves like an idempotent worker8157 is labeled as idempotent8158 performs multiple times sequentially without raising an exception8159 marks export as finished and expires batches cache8160 when export is finished8161 returns without updating export8162 when export is failed8163 returns without updating export8164 when export is in progress8165 reenqueues itself8166 when export timed out8167 marks export as failed8168 when export is missing8169 returns8170BulkImports::Projects::Pipelines::PipelineSchedulesPipeline8171 imports schedule into destination project8172 is active8173 imports the schedule but active is false8174ForkTargetsFinder8175 #execute8176 behaves like returns namespaces and groups8177 returns all user manageable namespaces8178 returns only groups when only_groups option is passed8179 returns groups relation when only_groups option is passed8180 when search is provided8181 filters the targets by the param8182Glfm::VerifyAllGeneratedFilesAreUpToDate#process8183 # order random8184 when repo is dirty8185 raises an error8186 when repo is clean8187 when all generated files are up to date8188 does not raise an error8189 when generated file(s) are not up to date8190ERROR: The following files were modified by running GLFM scripts. Please review, verify, and commit the changes:8191M /builds/gitlab-org/gitlab/glfm_specification/output_example_snapshots8192See the CI artifacts for the modified version of the files.8193This is the output of `git diff`:8194 raises an error8195Types::Clusters::AgentTokenType8196 is expected to eq "ClusterAgentToken"8197 is expected to require graphql authorizations :read_cluster_agent8198 is expected to have graphql fields :cluster_agent, :created_at, :created_by_user, :description, :id, :last_used_at, :name, and :status8199Gitlab::Analytics::UsageTrends::WorkersArgumentBuilder8200 when no measurement identifiers are given8201 returns empty array8202 when measurement identifiers are given8203 returns worker arguments8204 when bogus measurement identifiers are given8205 skips bogus measurement identifiers8206 when custom min and max queries are present8207 uses custom min/max for ids8208Gitlab::Cluster::LifecycleEvents8209 outside of clustered environments8210 hook: :on_worker_start, was_executed_immediately: true8211 executes the given block immediately8212 hook: :on_before_fork, was_executed_immediately: false8213 executes the given block immediately8214 hook: :on_before_graceful_shutdown, was_executed_immediately: false8215 executes the given block immediately8216 hook: :on_before_master_restart, was_executed_immediately: false8217 executes the given block immediately8218 hook: :on_worker_stop, was_executed_immediately: false8219 executes the given block immediately8220 in clustered environments8221 hook: :on_worker_start, execution_helper: :do_worker_start8222 requires explicit execution via do_* helper8223 hook: :on_before_fork, execution_helper: :do_before_fork8224 requires explicit execution via do_* helper8225 hook: :on_before_graceful_shutdown, execution_helper: :do_before_graceful_shutdown8226 requires explicit execution via do_* helper8227 hook: :on_before_master_restart, execution_helper: :do_before_master_restart8228 requires explicit execution via do_* helper8229 hook: :on_worker_stop, execution_helper: :do_worker_stop8230 requires explicit execution via do_* helper8231 #call8232 when many hooks raise exception8233 USE_FATAL_LIFECYCLE_EVENTS is set to default8234 only first hook is executed and is fatal8235 when USE_FATAL_LIFECYCLE_EVENTS is disabled8236ERROR: The hook my_hooks failed with exception (RuntimeError) "Exception A".8237ERROR: The hook my_hooks failed with exception (RuntimeError) "Exception B".8238 many hooks are executed and all exceptions are logged8239BulkImports::EntityWorker8240 updates pipeline trackers to enqueued state when selected8241 is labeled as idempotent8242 performs multiple times sequentially without raising an exception8243 enqueues the first stage pipelines work8244 logs and tracks the raised exceptions8245 in first stage8246 do not enqueue a new pipeline job if the current stage still running8247 enqueues the next stage pipelines when the current stage is finished8248Banzai::CrossProjectReference8249 #parent_from_ref8250 when no project was referenced8251 returns the project from context8252 when no project was referenced in group context8253 returns the group from context8254 when referenced project does not exist8255 returns nil8256 when referenced project exists8257 returns the referenced project8258 when reference cache is loaded8259 pulls from the reference cache8260Packages::Debian::CreatePackageFileService8261 #execute8262 with temp file8263 behaves like a valid deb8264 creates a new package file8265 with a .changes file8266 behaves like a valid changes8267 creates a new package file8268 with distribution8269 behaves like a valid deb8270 creates a new package file8271 when current_user is missing8272 raises an error8273 with remote file8274 behaves like a valid deb8275 creates a new package file8276 when package is missing8277 raises an error8278 when params is empty8279 raises an error8280 when file is missing8281 raises an error8282GitlabSettings::Settings8283 # order random8284 requires a source8285 loads the given section config8286 requires a section8287 #reload!8288 reloads the config8289Gitlab::Diff::Formatters::TextFormatter8290 behaves like position formatter8291 #key8292 is expected to eq [123, 456, 789, "35bd01186d18c9f4842e2f377cc780a95bab7bcf", "02fa17b1a8378a17c3103dc5a6cb16a5f73a1433", 1, 2]8293 #complete?8294 when there are missing key attributes8295 is expected to be truthy8296 when old_line and new_line are nil8297 is expected to be falsy8298 #to_h8299 is expected to eq {:base_sha=>123, :head_sha=>789, :line_range=>nil, :new_line=>2, :new_path=>"new_path.txt", :old_line=>1, :old_path=>"old_path.txt", :position_type=>"text", :start_sha=>456}8300 #==8301 is expected to eq #<Gitlab::Diff::Formatters::TextFormatter:0x00007f0ace677de0 @old_line=1, @new_line=2, @line_range=nil, @old_path="old_path.txt", @new_path="new_path.txt", @base_sha=123, @start_sha=456, @head_sha=789>8302 #line_age8303 when there is only new_line8304 is expected to eq "new"8305 when there is only old_line8306 is expected to eq "old"8307 #==8308 is false when the line_range changes8309 is true when the line_range doesn't change8310AwardEmojis::CollectUserEmojiService8311 #execute8312 returns an Array containing the awarded emoji names8313 returns an empty Array when no user is given8314DevOpsReportHelper8315 #devops_score_metrics8316 is expected to eq {:scoreLevel=>{:icon=>"status-alert", :label=>"Moderate", :variant=>"warning"}, :value=>"55.9"}8317 is expected to eq {:leadInstance=>"9.3", :score=>"13.3", :scoreLevel=>{:label=>"Low", :variant=>"muted"}, :title=>"Issues created per active user", :usage=>"1.2"}8318 is expected to eq {:leadInstance=>"30.3", :score=>"92.7", :scoreLevel=>{:label=>"High", :variant=>"success"}, :title=>"Comments created per active user", :usage=>"28.1"}8319 is expected to eq {:leadInstance=>"5.2", :score=>"62.4", :scoreLevel=>{:label=>"Moderate", :variant=>"neutral"}, :title=>"Boards created per active user", :usage=>"3.3"}8320 is expected to eq "2021-04-03 02:01"8321 with low average score8322 is expected to eq {:scoreLevel=>{:icon=>"status-failed", :label=>"Low", :variant=>"danger"}, :value=>"2.0"}8323 with high average score8324 is expected to eq {:scoreLevel=>{:icon=>"status_success_solid", :label=>"High", :variant=>"success"}, :value=>"82.0"}8325 with blank metrics8326 is expected to eq {}8327projects/commits/show.html.haml8328 tree controls8329 renders atom feed button with matching path8330Webauthn::RegisterService8331 #execute8332 returns a registration if challenge matches8333 returns an error if challenge does not match8334Gitlab::ColorSchemes8335 .body_classes8336 returns a space-separated list of class names8337 .by_id8338 returns a scheme by its ID8339 .default8340 use config default8341 .each8342 passes the block to the SCHEMES Array8343 .for_user8344 returns default when user is nil8345 returns user's preferred color scheme8346Projects::RecordTargetPlatformsWorker8347 has the `until_executed` deduplicate strategy8348 overrides #lease_release? to return false8349 when project uses Swift programming language8350 creates and executes a Projects::AppleTargetPlatformDetectorService instance for the project8351 logs extra metadata on done8352 when project uses Objective-C programming language8353 creates and executes a Projects::AppleTargetPlatformDetectorService instance for the project8354 logs extra metadata on done8355 when the project does not contain programming languages for Apple platforms8356 behaves like does nothing8357 does nothing8358 when project is not found8359 does nothing8360 when exclusive lease cannot be obtained8361 behaves like does nothing8362 does nothing8363LegacyDiffNote8364 #to_ability_name8365 is expected to eq "note"8366 callbacks8367 #set_diff8368 when not importing8369 updates st_diff8370 when importing8371 does not update st_diff8372 when st_diff is blank8373 updates st_diff8374Issue::Email8375 Associations8376 is expected to belong to issue required: false8377 Validations8378 is expected to validate that :issue cannot be empty/falsy8379 is expected to validate that :issue is case-sensitively unique8380 is expected to validate that :email_message_id is case-sensitively unique8381 is expected to validate that the length of :email_message_id is at most 10008382 is expected to validate that :email_message_id cannot be empty/falsy8383BizibleHelper8384 #bizible_enabled?8385 when bizible config is not true8386 is expected to be falsy8387 when bizible config is enabled8388 is expected to be truthy8389 with ecomm_instrumentation feature flag disabled8390 is expected to be falsey8391 with ecomm_instrumentation feature flag enabled8392 is expected to be truthy8393 with invite_email present8394 is expected to be falsy8395Graphql::Arguments8396 returns a blank string if the arguments are blank8397 returns a serialized arguments if the arguments are not blank8398 supports merge with +8399 supports merge with + and a string8400 supports merge with + and a string when empty8401 supports merge with + and an empty string8402 serializes all values correctly8403Branches::DivergingCommitCountsService8404 #call8405 returns the commit counts behind and ahead of default branch8406 calls diverging_commit_count without max count8407WorkItems::Widgets::Hierarchy8408 .type8409 is expected to eq :hierarchy8410 #type8411 is expected to eq :hierarchy8412 #parent8413 is expected to eq #<WorkItem id:271 group152/project-1426#2>8414 #children8415 is expected to contain exactly #<WorkItem id:270 group152/project-1426#1> and #<WorkItem id:272 group152/project-1426#3>8416 when ordered by relative position and created_at8417 when children relative positions are nil8418 orders by created_at8419 when children relative positions are present8420 orders by relative_position and by created_at8421Gitlab::Ci::Trace::RemoteChecksum8422 #md5_checksum8423 when the file is stored locally8424 is expected to be nil8425 when object store is enabled8426 with local files8427 is expected to be nil8428 with remote files8429 with AWS as provider8430 is expected to eq "ebde71c229ce37275c8708b4e3ae5eec"8431 with Google as provider8432 when the response does not include :content_md58433 raises an exception8434 when the response include :content_md58435 is expected to eq "ebde71c229ce37275c8708b4e3ae5eec"8436 with unsupported providers8437 is expected to be nil8438Users::ValidatePushOtpService8439 FortiAuthenticator8440 calls PushOtp strategy8441 unexpected error8442 returns error8443PropagateIntegrationProjectWorker8444 #perform8445 behaves like an idempotent worker8446 is labeled as idempotent8447 performs multiple times sequentially without raising an exception8448 calls to BulkCreateIntegrationService8449 with a group integration8450 calls to BulkCreateIntegrationService8451 with an invalid integration id8452 returns without failure8453Ci::GenerateTerraformReportsService8454 #execute8455 when head pipeline has terraform reports8456 returns status and data8457 when head pipeline has corrupted terraform reports8458 returns a report with error messages8459 when head pipeline is corrupted8460 returns status and error message8461RuboCop::Cop::PutProjectRoutesUnderScope8462 # order random8463 does not register an offense when resource inside the scope8464 registers an offense when route is outside scope for `get`8465 registers an offense when route is outside scope for `put`8466 registers an offense when route is outside scope for `delete`8467 registers an offense when route is outside scope for `patch`8468 does not register an offense for the root route8469 does not register an offense when resource is deep inside the scope8470 registers an offense when route is outside scope for `resources`8471 registers an offense when route is outside scope for `resource`8472 does not register an offense for the root route within scope8473 registers an offense when route is outside scope for `post`8474BulkImports::FileTransfer8475 .config_for8476 when portable is group8477 returns group config8478 when portable is project8479 returns project config8480 when portable is unsupported8481 raises an error8482Import/Export model configuration8483 has no new models8484Gitlab::Utils::MimeType8485 # order random8486 .from_io8487 input isn't an IO8488 returns nil8489 input is a file8490 fixture: "banana_sample.gif", mime_type: "image/gif"8491 is expected to eq "image/gif"8492 fixture: "rails_sample.jpg", mime_type: "image/jpeg"8493 is expected to eq "image/jpeg"8494 fixture: "rails_sample.png", mime_type: "image/png"8495 is expected to eq "image/png"8496 fixture: "rails_sample.bmp", mime_type: "image/bmp"8497 is expected to eq "image/bmp"8498 fixture: "rails_sample.tif", mime_type: "image/tiff"8499 is expected to eq "image/tiff"8500 fixture: "sample.ico", mime_type: "image/vnd.microsoft.icon"8501 is expected to eq "image/vnd.microsoft.icon"8502 fixture: "blockquote_fence_before.md", mime_type: "text/plain"8503 is expected to eq "text/plain"8504 fixture: "csv_empty.csv", mime_type: "application/x-empty"8505 is expected to eq "application/x-empty"8506 .from_string8507 input isn't a string8508 returns nil8509 input is a string8510 is expected to eq "text/plain"8511Types::RepositoryType8512 is expected to eq "Repository"8513 is expected to require graphql authorizations :read_code8514 is expected to have graphql field :root_ref8515 is expected to have graphql field :tree8516 is expected to have graphql field :paginated_tree and {:calls_gitaly?=>true, :max_page_size=>100}8517 is expected to have graphql field :exists and {:calls_gitaly?=>true, :complexity=>2}8518 is expected to have graphql field :blobs8519 is expected to have graphql field :branch_names and {:calls_gitaly?=>true, :complexity=>170}8520 is expected to have graphql field :disk_path8521OperationsHelper8522 #alerts_settings_data8523 initial integration configuration8524 returns the correct values8525 with external Prometheus configured8526 with external Prometheus enabled8527 returns the correct values8528 with external Prometheus disabled8529 returns the correct values8530 when cluster managed8531 returns the correct values8532 with project alert setting8533 returns the correct values8534 #operations_settings_data8535 returns the correct set of data8536RuboCop::Cop::UsageData::HistogramWithLargeTable8537 # order random8538 with non related class8539 does not register an offense8540 with large tables8541 with one-level constants8542 when calling histogram(Issue)8543 registers an offense8544 when calling histogram(::Issue)8545 registers an offense8546 when calling histogram(Issue.closed)8547 registers an offense8548 when calling histogram(::Issue.closed)8549 registers an offense8550 with two-level constants8551 when calling histogram(::Ci::Build)8552 registers an offense8553 when calling histogram(::Ci::Build.active)8554 registers an offense8555 when calling histogram(Ci::Build)8556 registers an offense8557 when calling histogram(Ci::Build.active)8558 registers an offense8559 with non related method8560 does not register an offense8561Users::SavedReplies::DestroyService8562 #execute8563 when destroy fails8564 does not remove Saved Reply from database8565 is expected not to be success8566 when destroy succeeds8567 is expected to be success8568 removes Saved Reply from database8569 returns saved reply8570Gitlab::AlertManagement::AlertStatusCounts8571 #execute8572 for an unauthorized user8573 returns zero for all statuses8574 for an authorized user8575 returns the correct counts for each status8576 when filtering params are included8577 returns the correct counts for each status8578 when search param is included8579 returns the correct countss8580BulkImports::Projects::Pipelines::ProjectAttributesPipeline8581 #run8582 imports project attributes8583 when project is archived8584 sets project as archived8585 #transform8586 removes prohibited attributes from hash8587 #load8588 assigns attributes, drops visibility and reconciles shared runner setting8589 #after_run8590 calls extractor#remove_tmpdir8591 .relation8592 is expected to eq "self"8593Types::MergeRequestReviewStateEnum8594 the correct enum members8595BlobViewer::PackageJson8596 #package_name8597 returns the package name8598 yarn8599 #package_url8600 returns the package URL8601 #manager_url8602 returns the manager URL8603 when json is an array8604 does not raise an error8605 npm8606 #package_url8607 returns the package URL8608 #manager_url8609 returns the manager URL8610 #package_type8611 returns "package"8612 when package.json has "private": true8613 #package_url8614 when the homepage has a valid URL8615 returns homepage URL8616 when the homepage has an invalid URL8617 returns nil8618 #package_type8619 returns "private package"8620Gitlab::GithubImport::Importer::PullRequests::ReviewRequestsImporter8621 # order random8622 #sequential_import8623 imports each project merge request reviewers8624 when merge request is already processed8625 doesn't import this merge request reviewers8626 #parallel_import8627 schedule import for each merge request reviewers8628 when merge request is already processed8629 doesn't schedule import this merge request reviewers8630Gitlab::Chat::Responder::Base8631 #pipeline8632 returns the pipeline8633 #project8634 returns the project8635 #success8636 raises NotImplementedError8637 #failure8638 raises NotImplementedError8639 #send_response8640 raises NotImplementedError8641 #scheduled_output8642 raises NotImplementedError8643Gitlab::SidekiqMiddleware::WorkerContext::Client8644 #call8645 applies a context for jobs scheduled in batch8646 root_caller_id8647 uses caller_id of the current context8648 uses root_caller_id instead of caller_id of the current context8649 when the feature category is set in the context_proc8650 takes the feature category from the worker, not the caller8651 takes the feature category from the caller if the worker is not owned8652 does not set any explicit feature category for mailers8653 when the feature category is already set in the surrounding block8654 takes the feature category from the worker, not the caller8655 takes the feature category from the caller if the worker is not owned8656Users::BatchStatusCleanerService8657 cleans up scheduled user statuses8658 does not affect rows with future clear_status_at8659 does not affect rows without clear_status_at8660 batch_size8661 clears status in batches8662Stepable8663 stops after the first non success status8664 when all methods return success8665 calls all methods in order8666 merges variables returned by all steps8667 can modify results of previous steps8668 with multiple stepable classes8669 does not leak steps8670BaseCountService8671 #relation_for_count8672 raises NotImplementedError8673 #count8674 returns the number of values8675 #uncached_count8676 returns the uncached number of values8677 #refresh_cache8678 refreshes the cache8679 #delete_cache8680 deletes the cache8681 #raw?8682 returns false8683 #cache_key8684 raises NotImplementedError8685 #cache_options8686 returns the default in options8687RuboCop::Cop::Gitlab::ConstGetInheritFalse8688 # order random8689 Object.const_get8690 registers an offense with no 2nd argument and corrects8691 inherit=false8692 does not register an offense8693 inherit=true8694 registers an offense and corrects8695 const_get for a nested class8696 registers an offense on reload usage and corrects8697 inherit=false8698 does not register an offense8699 inherit=true8700 registers an offense if inherit is true and corrects8701Gitlab::HookData::GroupMemberBuilder8702 #build8703 data8704 on create8705 is expected to eq "user_add_to_group"8706 behaves like includes the required attributes8707 includes the required attributes8708 on update8709 is expected to eq "user_update_for_group"8710 behaves like includes the required attributes8711 includes the required attributes8712 on destroy8713 is expected to eq "user_remove_from_group"8714 behaves like includes the required attributes8715 includes the required attributes8716Gitlab::Ci::Build::Status::Reason8717 .fabricate8718 when failure symbol reason is being passed8719 correctly fabricates a status reason object8720 when another status reason object is being passed8721 correctly fabricates a status reason object8722 #failure_reason_enum8723 exposes a failure reason enum8724 #force_allow_failure?8725 when build is not allowed to fail8726 when build is allowed to fail with a given exit code8727 returns true8728 when build is not allowed to fail regardless of an exit code8729 returns false8730 when an exit code is not specified8731 returns false8732RuboCop::Cop::CodeReuse::Presenter8733 # order random8734 flags the use of a Presenter in a Serializer8735 flags the use of a Presenter in a Service class8736 flags the use of a Service class in a Presenter8737 flags the use of a Presenter in a Finder8738 flags the use of a Presenter in a worker8739 flags the use of a Presenter in a model class method8740 flags the use of a Presenter in a model instance method8741Gitlab::DiscussionsDiff::HighlightCache8742 #write_multiple8743 sets multiple keys serializing content as JSON8744 #read_multiple8745 reads multiple keys and serializes content into Gitlab::Diff::Line objects8746 returns nil when cached key is not found8747 returns lines which rich_text are HTML-safe8748 #clear_multiple8749 removes all named keys8750 only removed named keys8751Gitlab::AlertManagement::Payload8752 #parse8753 without a monitoring_tool specified by caller8754 without a monitoring tool in the payload8755 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic8756 with the payload specifying Prometheus8757 is expected to be a kind of Gitlab::AlertManagement::Payload::Prometheus8758 with gitlab-managed attributes8759 is expected to be a kind of Gitlab::AlertManagement::Payload::ManagedPrometheus8760 with the payload specifying an unknown tool8761 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic8762 with monitoring_tool specified by caller8763 as Prometheus8764 with an externally managed prometheus payload8765 is expected to be a kind of Gitlab::AlertManagement::Payload::Prometheus8766 with a self-managed prometheus payload8767 is expected to be a kind of Gitlab::AlertManagement::Payload::ManagedPrometheus8768 as an unknown tool8769 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic8770 with integration specified by caller8771 passes an integration to a specific payload8772Gitlab::Checks::ForcePush8773 .force_push?8774 returns false if the repo is empty8775 checks if old rev is an anchestor8776projects/settings/operations/show8777 Operations > Alerts8778 renders the Operations Settings page8779 Operations > Error Tracking8780 Settings page8781 renders the Operations Settings page8782Gitlab::Database::SimilarityScore8783 when passing empty values8784 when search is nil8785 orders by a constant 0 value8786 when rules are empty8787 orders by a constant 0 value8788 when similarity scoring based on the path8789 when searching for `git`8790 is expected to eq ["git", "gitlab", "gitaly"]8791 when searching for `gitlab`8792 is expected to eq ["gitlab", "gitlab-styles", "gitlab-danger"]8793 when searching for something unrelated8794 results have 0 similarity score8795 score multiplier8796 ranks `path` matches higher8797 annotation8798 annotates the generated SQL expression8799JiraConnect::SyncBuildsWorker8800 behaves like worker with data consistency8801 .get_data_consistency_feature_flag_enabled?8802 returns true8803 .get_data_consistency8804 returns correct data consistency8805 #perform8806 when pipeline exists8807 calls the Jira sync service8808 when pipeline does not exist8809 does not call the sync service8810Gitlab::Metrics::Dashboard::Importer8811 .execute8812 valid dashboard hash8813 imports metrics to database8814 invalid dashboard hash8815 returns false8816 .execute!8817 valid dashboard hash8818 imports metrics to database8819 invalid dashboard hash8820 raises error8821Resolvers::BaseResolver.single8822 #resolve8823 with unauthorized user8824 is expected to be nil8825 when authorized8826 is expected to eq #<List id: 2, board_id: 1, label_id: 52, list_type: "label", position: 1, created_at: "2023-04-27 06:18:53.018794469 +0000", updated_at: "2023-04-27 06:18:53.018794469 +0000", user_id: nil, milestone_id: nil, max_issue_count: 0, max_issue_weight: 0, limit_metric: nil, iteration_id: nil>8827projects/runners/_project_runners.html.haml8828 # order random8829 render8830 when create_runner_workflow_for_namespace is disabled8831 when project runner registration is allowed8832 enables the Remove project button for a project8833 when project runner registration is not allowed8834 does not enable the Remove project button for a project8835 when create_runner_workflow_for_namespace is enabled8836 when user can create project runner8837 renders the New project runner button8838 when user cannot create project runner8839 does not render the New project runner button8840Gitlab::ImportExport::RecursiveMergeFolders8841 # order random8842 .merge8843 merge folder and ignore symlinks8844 raises an error for invalid source path8845 raises an error for source path outside temp dir8846 raises an error for invalid target path8847Gitlab::Graphql::Loaders::BatchModelLoader8848 #find8849 finds a model by id8850 only queries once per model8851 does not force values unnecessarily8852Gitlab::UsageDataCounters::ProductivityAnalyticsCounter8853 behaves like a redis usage counter8854 .count(views)8855 increments the ProductivityAnalytics views counter by 18856 .read(views)8857 returns the total number of views events8858 behaves like a redis usage counter with totals8859 totals8860 can report all totals8861 unknown events8862 cannot increment8863 cannot read8864RuboCop::Cop::FeatureFlagUsage8865 # order random8866 when calling Feature.enabled?8867 registers offence8868 registers offence when called with type parameter8869 registers offence when called under global namespace8870 when calling Feature.disabled?8871 registers offence8872 registers offence when called with type parameter8873 registers offence when called under global namespace8874Resolvers::SavedReplyResolver8875 # order random8876 feature flag enabled8877 returns users saved reply8878 returns nil when saved reply is not found8879 returns nil when saved reply is another users8880 feature flag disabled8881 does not return saved reply8882Gitlab::Utils::Gzip8883 # order random8884 #gzip_compress8885 compresses data passed to it8886 returns uncompressed data when encountering Zlib::GzipFile::Error8887 #gzip_decompress8888 decompresses encoded data8889 returns compressed data when encountering Zlib::GzipFile::Error8890 returns unmodified data when it is determined to be uncompressed8891UpdateExternalPullRequestsWorker8892 #perform8893 when ref is a branch8894 runs CreatePipelineService for each pull request matching the source branch and repository8895 when ref is not a branch8896 does nothing8897Projects::ClusterAgentsHelper8898 #js_cluster_agent_details_data8899 is expected to match {:agent_name=>"agent-name", :project_path=>"namespace1459/project-1456", :activity_empty_state_image=>#<RSpec::Mocks::ArgumentMatchers::KindOf:0x00007f0ac1df9508 @klass=String>, :empty_state_svg_path=>#<RSpec::Mocks::ArgumentMatchers::KindOf:0x00007f0ac1df94b8 @klass=String>, :can_admin_vulnerability=>"true", :kas_address=>"wss://kas.example.com", :kas_version=>#<Gitlab::VersionInfo:0x00007f0ac1df9238 @major=15, @minor=11, @patch=0, @suffix_s="", @suffix=[]>, :can_admin_cluster=>"false"}8900 user has admin cluster permissions8901 displays that the user can admin cluster8902devise/shared/_signin_box8903 Crowd form8904 is shown when Crowd is enabled8905 is not shown when Crowd is disabled8906 Base form8907 renders user_login label8908Ml::ExperimentMetadata8909 # order random8910 uniqueness of name8911 is unique within experiment8912 associations8913 is expected to belong to experiment required: false8914WorkItems::PrepareImportCsvService8915 # order random8916 when file is uploaded correctly8917 returns a success message8918 enqueues the ImportWorkItemsCsvWorker8919 when file upload fails8920 returns an error message8921FromUnion8922 behaves like from set operator8923 #from_union8924 selects from the results of the UNION8925 returns empty set when passing empty array8926 supports the use of a custom alias for the sub query8927 supports keeping duplicate rows8928Rails YAML safe load8929 # order random8930 with default permitted classes8931 deserializes data8932 with unpermitted classes8933 throws an exception8934Preloaders::CommitStatusPreloader8935 #execute8936 prevents N+1 for specified relations8937Gitlab::Auth::Otp::Strategies::DuoAuth::ManualOtp8938 # order random8939 when unexpected error8940 returns error8941 when successful validation8942 returns success8943 when unsuccessful validation8944 returns error8945Banzai::Filter::TimeoutHtmlPipelineFilter8946 # order random8947 raises NotImplementedError8948 behaves like filter timeout8949 when rendering takes too long8950 times out8951Import metrics on production seed8952 imports all prometheus metrics8953WebpackHelper8954 #prefetch_link_tag8955DEPRECATION WARNING: The asset "foo.js" is not present in the asset pipeline.8956Falling back to an asset that may be in the public folder.8957This behavior is deprecated and will be removed.8958To bypass the asset pipeline and preserve this behavior,8959use the `skip_pipeline: true` option.8960 (called from prefetch_link_tag at /builds/gitlab-org/gitlab/app/helpers/webpack_helper.rb:5)8961 returns prefetch link tag8962 #webpack_preload_asset_tag8963 preloads the resource by default8964 prefetches the resource if explicitly asked8965Members::BaseService8966 # order random8967 #resolve_access_request_todos8968 calls the resolve_access_request_todos of todo service8969Gitlab::Database::Migrations::PgBackendPid8970 # order random8971 Gitlab::Database::Migrations::PgBackendPid::MigratorPgBackendPid8972 re-yields with same arguments and wraps it with calls to .say8973 .say8974/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/rspec-mocks-3.12.3/lib/rspec/mocks/method_double.rb:287: warning: removing `object_id' may cause serious problems8975 outputs the connection information8976 .patch!8977 patches ActiveRecord::Migrator8978Sidebars::Projects::Menus::ExternalWikiMenu8979 does not contain any sub menu8980 #render?8981 when active external issue tracker8982 is present8983 returns true8984 is not present8985 returns false8986Banzai::Filter::BlockquoteFenceFilter8987 converts blockquote fences to blockquote lines8988 does not require newlines at start or end of string8989 allows trailing whitespace on blockquote fence lines8990 when incomplete blockquote fences with multiple blocks are present8991 does not raise timeout error8992Gitlab::ImportExport::Json::NdjsonWriter8993 #write_attributes8994 writes correct json to root8995 #write_relation8996 when single relation is serialized8997 appends json in correct file8998 when single relation is already serialized8999 raise exception9000 #write_relation_array9001 writes json in correct files9002Types::DesignManagementType9003 is expected to have graphql fields :version and :design_at_version9004RuboCop::Cop::BanCatchThrow9005 # order random9006 registers an offense when `catch` or `throw` are used9007 does not register an offense for a method called catch or throw9008Gitlab::BacktraceCleaner9009 .clean_backtrace9010 uses the Rails backtrace cleaner9011 removes lines from IGNORE_BACKTRACES9012KeyPresenter9013 # order random9014 #humanized_error_message9015 when public key is unsupported9016 returns the custom error message9017 when key is expired9018 returns Active Record error message9019Types::GroupMemberRelationEnum9020 is expected to eq "GroupMemberRelation"9021 exposes all the existing group member relation type values9022BulkImports::Groups::Extractors::SubgroupsExtractor9023 #extract9024 returns ExtractedData response9025Repositories::ChangelogTagFinder9026 #execute9027 when the regular expression is invalid9028 raises Gitlab::Changelog::Error9029 when there is a previous tag9030 returns the previous tag9031 when there is no previous tag9032 returns nil9033Types::Clusters::AgentTokenStatusEnum9034 is expected to eq "AgentTokenStatus"9035 is expected to contain exactly "ACTIVE" and "REVOKED"9036Types::Packages::PackageTagType9037 is expected to eq "PackageTag"9038 includes all the package tag fields9039Types::DesignManagement::VersionType9040 is expected to require graphql authorizations :read_design9041 has the expected fields9042Gitlab::Database::BackgroundMigration::BatchMetrics9043 #time_operation9044 tracks the duration of the operation using monotonic time9045 #instrument_operation9046 tracks duration and affected rows9047Types::MemberAccessLevelEnum9048 # order random9049 exposes all the existing access levels9050 is expected to eq "MemberAccessLevel"9051CrossDatabaseModification9052 .transaction9053 adds the current gitlab schema to gitlab_transactions_stack9054 yields9055RDoc segfault patch fix9056 RDoc::Markup::ToHtml9057 #parseable?9058 returns false9059 RDoc::Markup::Verbatim9060 ruby?9061 returns false9062RemoteMirrorEntity9063 exposes remote-mirror-specific elements9064 does not expose password information9065Gitlab::PerformanceBar::Stats9066 #process9067 #process9068 logs each SQL query including its duration9069 logs an error when the request could not be processed9070MemberPresenter9071 # order random9072 #last_owner?9073 raises `NotImplementedError`9074Mutations::Ci::PipelineSchedule::VariableInputType9075 # order random9076 is expected to eq "PipelineScheduleVariableInput"9077 is expected to contain exactly "key", "value", and "variableType"9078Types::IssuableSortEnum9079 is expected to eq "IssuableSort"9080 exposes all the existing issuable sort values9081Types::ContainerExpirationPolicyCadenceEnum9082 behaves like exposing container expiration policy option9083 exposes all options9084 uses all possible options from model9085Types::Ci::VariableTypeEnum9086 matches the keys of Ci::Variable.variable_types9087RuboCop::Cop::Migration::AddIndex9088 # order random9089 in migration9090 registers an offense when add_index is used9091 outside of migration9092 registers no offense9093Issues::BaseService9094 # order random9095 #constructor_container_arg9096 is expected to eq {:container=>"some-value"}9097Gitlab::GithubImport::ImportProtectedBranchWorker9098 # order random9099 #import9100 imports protected branch rule9101Types::Packages::Maven::MetadatumType9102 includes maven metadatum fields9103Gitlab::Database::SchemaValidation::Validators::MissingIndexes9104 # order random9105 returns index inconsistencies9106Gitlab::Database::SchemaValidation::Validators::ExtraTriggers9107 # order random9108 returns trigger inconsistencies9109Knapsack report was generated. Preview:9110{9111 "spec/policies/project_policy_spec.rb": 102.60461095699975,9112 "spec/models/note_spec.rb": 126.9025083460001,9113 "spec/finders/deployments_finder_spec.rb": 79.1746880619994,9114 "spec/models/integration_spec.rb": 27.083377468000435,9115 "spec/models/commit_status_spec.rb": 29.176490027,9116 "spec/models/todo_spec.rb": 50.465040445999875,9117 "spec/services/releases/create_service_spec.rb": 52.744041307999396,9118 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb": 45.35136235799928,9119 "spec/lib/gitlab/ci/templates/templates_spec.rb": 12.748225176999767,9120 "spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb": 28.046316785000272,9121 "spec/uploaders/job_artifact_uploader_spec.rb": 30.064164290999543,9122 "spec/lib/gitlab/data_builder/note_spec.rb": 28.483522907000406,9123 "spec/workers/repository_fork_worker_spec.rb": 30.923540325999966,9124 "spec/models/clusters/agent_spec.rb": 16.626544441999613,9125 "spec/uploaders/external_diff_uploader_spec.rb": 18.388490458999513,9126 "spec/models/hooks/system_hook_spec.rb": 12.616500068999812,9127 "spec/services/search/global_service_spec.rb": 29.176760410000497,9128 "spec/lib/container_registry/gitlab_api_client_spec.rb": 4.623541703000228,9129 "spec/models/resource_state_event_spec.rb": 14.141383034000683,9130 "spec/models/trending_project_spec.rb": 20.896159198000532,9131 "spec/lib/gitlab/ci/templates/npm_spec.rb": 13.18268265199913,9132 "spec/lib/gitlab/ci/status/factory_spec.rb": 7.649945015999037,9133 "spec/models/concerns/routable_spec.rb": 5.88734212899908,9134 "spec/services/auto_merge_service_spec.rb": 11.576618062999842,9135 "spec/policies/todo_policy_spec.rb": 10.157516929000849,9136 "spec/finders/releases_finder_spec.rb": 13.534720525998637,9137 "spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb": 12.639154033000523,9138 "spec/models/hooks/active_hook_filter_spec.rb": 3.5692727730001934,9139 "spec/lib/gitlab/relative_positioning/range_spec.rb": 3.570118162999279,9140 "spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb": 11.10032768199926,9141 "spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb": 9.858785544998682,9142 "spec/serializers/diffs_entity_spec.rb": 13.021266405999995,9143 "spec/lib/object_storage/config_spec.rb": 3.286096417999943,9144 "spec/tasks/gitlab/packages/events_rake_spec.rb": 3.6226951609987736,9145 "spec/services/ci/create_pipeline_service/needs_spec.rb": 7.893808602999343,9146 "spec/services/draft_notes/create_service_spec.rb": 9.589926820000983,9147 "spec/models/ci/runner_manager_spec.rb": 3.0683438230007596,9148 "spec/lib/gitlab/email/handler/create_issue_handler_spec.rb": 8.972796451998875,9149 "spec/models/slack_integration_spec.rb": 8.086676248000003,9150 "spec/services/projects/participants_service_spec.rb": 7.6395400569999765,9151 "spec/lib/bulk_imports/projects/pipelines/repository_bundle_pipeline_spec.rb": 8.168532227000469,9152 "spec/models/packages/conan/file_metadatum_spec.rb": 7.435014880000381,9153 "spec/workers/concerns/application_worker_spec.rb": 3.363560107000012,9154 "spec/views/notify/pipeline_success_email.text.erb_spec.rb": 7.8844858829997975,9155 "spec/lib/gitlab/legacy_github_import/project_creator_spec.rb": 7.699355894999826,9156 "spec/tasks/gitlab/db/decomposition/rollback/bump_ci_sequences_rake_spec.rb": 4.3089632489991345,9157 "spec/graphql/mutations/release_asset_links/update_spec.rb": 4.067077973999403,9158 "spec/lib/gitlab/database/background_migration/health_status/indicators/patroni_apdex_spec.rb": 1.644442718999926,9159 "spec/lib/gitlab/ci/ansi2json_spec.rb": 1.798116685999048,9160 "spec/models/integrations/harbor_spec.rb": 2.3876701560002402,9161 "spec/graphql/mutations/namespace/package_settings/update_spec.rb": 4.1104745129996445,9162 "spec/models/concerns/ci/has_variable_spec.rb": 2.903641204999076,9163 "spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb": 4.744288621001033,9164 "spec/workers/jira_connect/sync_project_worker_spec.rb": 5.9840114309990895,9165 "spec/components/diffs/overflow_warning_component_spec.rb": 2.0903858410001703,9166 "spec/workers/merge_requests/create_approval_event_worker_spec.rb": 4.463801489999241,9167 "spec/initializers/lograge_spec.rb": 2.753460678999545,9168 "spec/lib/gitlab/diff/position_tracer_spec.rb": 3.445894788001169,9169 "spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb": 2.91614034200029,9170 "spec/lib/gitlab/chat/responder/slack_spec.rb": 3.95027759200093,9171 "spec/models/user_status_spec.rb": 1.3421604859995568,9172 "spec/finders/packages/go/version_finder_spec.rb": 2.336461827999301,9173 "spec/uploaders/dependency_proxy/file_uploader_spec.rb": 1.1527366200007236,9174 "spec/services/users/update_todo_count_cache_service_spec.rb": 3.702242753999599,9175 "spec/rubocop/todo_dir_spec.rb": 1.041270264000559,9176 "spec/services/work_items/delete_task_service_spec.rb": 3.6071638749999693,9177 "spec/models/integrations/confluence_spec.rb": 2.613947133999318,9178 "spec/models/network/graph_spec.rb": 5.642944455999896,9179 "spec/lib/gitlab/usage_data/topology_spec.rb": 0.7398805459997675,9180 "spec/models/ci/unit_test_failure_spec.rb": 4.509287155000493,9181 "spec/lib/banzai/reference_parser/label_parser_spec.rb": 3.4924194639988855,9182 "spec/lib/gitlab/hook_data/issue_builder_spec.rb": 1.5882763110002998,9183 "spec/lib/sidebars/groups/menus/issues_menu_spec.rb": 1.8839261749999423,9184 "spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb": 3.4928271749995474,9185 "spec/policies/deploy_token_policy_spec.rb": 2.842962836000879,9186 "spec/helpers/ci/status_helper_spec.rb": 1.192203567999968,9187 "spec/uploaders/packages/rpm/repository_file_uploader_spec.rb": 1.5996365599985438,9188 "spec/support_specs/database/multiple_databases_helpers_spec.rb": 0.962390881999454,9189 "spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb": 4.214370671001234,9190 "spec/lib/gitlab/ci/config/entry/include/rules_spec.rb": 1.1042164490008872,9191 "spec/models/ci/build_need_spec.rb": 2.320723986000303,9192 "spec/workers/pages_domain_verification_worker_spec.rb": 0.5631195790010679,9193 "spec/lib/gitlab/cache/metadata_spec.rb": 0.8671042940004554,9194 "spec/lib/gitlab/database/schema_validation/database_spec.rb": 1.2465534660004778,9195 "spec/workers/background_migration_worker_spec.rb": 1.0671935199989093,9196 "spec/services/timelogs/delete_service_spec.rb": 1.2855627959997946,9197 "spec/models/ci/runner_manager_build_spec.rb": 2.8761702259998856,9198 "spec/lib/gitlab/github_import/markdown/attachment_spec.rb": 2.3535539759996027,9199 "spec/serializers/analytics_issue_entity_spec.rb": 2.8260971769996104,9200 "spec/finders/milestones_finder_spec.rb": 1.8691279650010983,9201 "spec/lib/gitlab/prometheus/metric_group_spec.rb": 2.115998249999393,9202 "spec/models/ci/catalog/listing_spec.rb": 1.9532997740006977,9203 "spec/lib/sidebars/projects/menus/deployments_menu_spec.rb": 1.9942225820013846,9204 "spec/lib/sidebars/user_settings/menus/profile_menu_spec.rb": 0.7271558070005995,9205 "spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb": 1.494870460999664,9206 "spec/services/branches/validate_new_service_spec.rb": 3.1170654019988433,9207 "spec/workers/issues/close_worker_spec.rb": 1.6407432289997814,9208 "spec/lib/gitlab/identifier_spec.rb": 1.3389691350002977,9209 "spec/serializers/lfs_file_lock_entity_spec.rb": 1.3546837440007948,9210 "spec/workers/reactive_caching_worker_spec.rb": 2.215885937999701,9211 "spec/services/users/saved_replies/update_service_spec.rb": 0.8560339439991367,9212 "spec/graphql/mutations/incident_management/timeline_event/destroy_spec.rb": 2.866912595998656,9213 "spec/workers/migrate_external_diffs_worker_spec.rb": 2.325971386000674,9214 "spec/lib/gitlab/auth/o_auth/provider_spec.rb": 1.0058573909991537,9215 "spec/finders/groups/accepting_project_imports_finder_spec.rb": 2.043181581000681,9216 "spec/lib/safe_zip/extract_spec.rb": 0.6944923869996273,9217 "spec/services/notification_recipients/builder/new_note_spec.rb": 3.2012061099994753,9218 "spec/lib/gitlab/jira_import/issue_serializer_spec.rb": 1.9416690730013215,9219 "spec/models/ref_matcher_spec.rb": 0.803103676000319,9220 "spec/lib/gitlab/mail_room/authenticator_spec.rb": 0.7837387160016078,9221 "spec/workers/personal_access_tokens/expired_notification_worker_spec.rb": 1.1647323580000375,9222 "spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb": 0.8532442439991428,9223 "spec/services/clusters/agents/delete_expired_events_service_spec.rb": 2.996799373999238,9224 "spec/services/merge_requests/execute_approval_hooks_service_spec.rb": 2.4290372550003667,9225 "spec/lib/gitlab/experiment/rollout/feature_spec.rb": 0.6963047570006893,9226 "spec/graphql/resolvers/group_members_resolver_spec.rb": 2.084035591000429,9227 "spec/components/pajamas/banner_component_spec.rb": 1.1437989480000397,9228 "spec/helpers/environments_helper_spec.rb": 1.8169960459999857,9229 "spec/lib/gitlab/ci/tags/bulk_insert_spec.rb": 1.9458338839995122,9230 "spec/lib/gitlab/database/migrations/reestablished_connection_stack_spec.rb": 1.1118313189999753,9231 "spec/services/system_notes/incidents_service_spec.rb": 1.793775995998658,9232 "spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb": 1.8878677249995235,9233 "spec/policies/resource_milestone_event_policy_spec.rb": 2.098098189999291,9234 "spec/workers/bulk_imports/finish_batched_relation_export_worker_spec.rb": 1.6124773800002004,9235 "spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb": 1.2378103869996266,9236 "spec/finders/fork_targets_finder_spec.rb": 2.3175127459999203,9237 "spec/scripts/lib/glfm/verify_all_generated_files_are_up_to_date_spec.rb": 0.44787060099952214,9238 "spec/graphql/types/clusters/agent_token_type_spec.rb": 0.5765925189989503,9239 "spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb": 1.3881744440004695,9240 "spec/lib/gitlab/cluster/lifecycle_events_spec.rb": 0.7638196360003349,9241 "spec/workers/bulk_imports/entity_worker_spec.rb": 0.8981483730003674,9242 "spec/lib/banzai/cross_project_reference_spec.rb": 0.5053634899995814,9243 "spec/services/packages/debian/create_package_file_service_spec.rb": 1.2618766269988555,9244 "spec/lib/gitlab_settings/settings_spec.rb": 0.4507002509999438,9245 "spec/lib/gitlab/diff/formatters/text_formatter_spec.rb": 0.8317885449996538,9246 "spec/services/award_emojis/collect_user_emoji_service_spec.rb": 2.1518021789997874,9247 "spec/helpers/dev_ops_report_helper_spec.rb": 1.0729933900001924,9248 "spec/views/projects/commits/show.html.haml_spec.rb": 1.1655216880008084,9249 "spec/services/webauthn/register_service_spec.rb": 0.7352912059996015,9250 "spec/lib/gitlab/color_schemes_spec.rb": 0.6077527690013085,9251 "spec/workers/projects/record_target_platforms_worker_spec.rb": 1.4958040219989925,9252 "spec/models/legacy_diff_note_spec.rb": 1.7799333370003296,9253 "spec/models/issue/email_spec.rb": 1.2683806460008782,9254 "spec/helpers/bizible_helper_spec.rb": 0.6090058980007598,9255 "spec/support_specs/graphql/arguments_spec.rb": 0.7150068770006328,9256 "spec/services/branches/diverging_commit_counts_service_spec.rb": 1.880468284998642,9257 "spec/models/work_items/widgets/hierarchy_spec.rb": 1.5581518300004973,9258 "spec/lib/gitlab/ci/trace/remote_checksum_spec.rb": 1.1901283070001227,9259 "spec/services/users/validate_push_otp_service_spec.rb": 0.6494820380012243,9260 "spec/workers/propagate_integration_project_worker_spec.rb": 1.7966748859998916,9261 "spec/services/ci/generate_terraform_reports_service_spec.rb": 1.95308634399953,9262 "spec/rubocop/cop/put_project_routes_under_scope_spec.rb": 1.1161243179994926,9263 "spec/models/bulk_imports/file_transfer_spec.rb": 0.4759402309991856,9264 "spec/lib/gitlab/import_export/model_configuration_spec.rb": 0.4386868820001837,9265 "spec/lib/gitlab/utils/mime_type_spec.rb": 0.8902637840001262,9266 "spec/graphql/types/repository_type_spec.rb": 0.6490500370000518,9267 "spec/helpers/operations_helper_spec.rb": 1.168434248000267,9268 "spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb": 0.716816756001208,9269 "spec/services/users/saved_replies/destroy_service_spec.rb": 1.1899951579998742,9270 "spec/lib/gitlab/alert_management/alert_status_counts_spec.rb": 1.5457362509987433,9271 "spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb": 0.937368171998969,9272 "spec/graphql/types/merge_request_review_state_enum_spec.rb": 0.46369780100030766,9273 "spec/models/blob_viewer/package_json_spec.rb": 1.1832039979999536,9274 "spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb": 1.1664705279999907,9275 "spec/lib/gitlab/chat/responder/base_spec.rb": 0.6826912079995964,9276 "spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb": 0.7472950360006507,9277 "spec/services/users/batch_status_cleaner_service_spec.rb": 0.8607256529994629,9278 "spec/models/concerns/stepable_spec.rb": 0.47286117099974945,9279 "spec/services/base_count_service_spec.rb": 0.5434214300003077,9280 "spec/rubocop/cop/gitlab/const_get_inherit_false_spec.rb": 0.5455943800006935,9281 "spec/lib/gitlab/hook_data/group_member_builder_spec.rb": 0.9670206119990326,9282 "spec/lib/gitlab/ci/build/status/reason_spec.rb": 0.5937222789998486,9283 "spec/rubocop/cop/code_reuse/presenter_spec.rb": 0.6231682279994857,9284 "spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb": 0.5442236300004879,9285 "spec/lib/gitlab/alert_management/payload_spec.rb": 0.8684701729998778,9286 "spec/lib/gitlab/checks/force_push_spec.rb": 1.0559443500005727,9287 "spec/views/projects/settings/operations/show.html.haml_spec.rb": 1.087591950001297,9288 "spec/lib/gitlab/database/similarity_score_spec.rb": 0.5056108410008164,9289 "spec/workers/jira_connect/sync_builds_worker_spec.rb": 0.9648961320017406,9290 "spec/lib/gitlab/metrics/dashboard/importer_spec.rb": 0.8798708329995861,9291 "spec/graphql/resolvers/board_list_resolver_spec.rb": 0.9568024519994651,9292 "spec/views/projects/runners/_project_runners.html.haml_spec.rb": 0.7905048949996853,9293 "spec/lib/gitlab/import_export/recursive_merge_folders_spec.rb": 0.6088948189990333,9294 "spec/lib/gitlab/graphql/loaders/batch_model_loader_spec.rb": 1.0657597599984001,9295 "spec/lib/gitlab/usage_data_counters/productivity_analytics_counter_spec.rb": 0.44334464199891954,9296 "spec/rubocop/cop/feature_flag_usage_spec.rb": 0.5966162490003626,9297 "spec/graphql/resolvers/saved_reply_resolver_spec.rb": 0.8406448250007088,9298 "spec/lib/gitlab/utils/gzip_spec.rb": 0.45816592200026207,9299 "spec/workers/update_external_pull_requests_worker_spec.rb": 0.7828414349987725,9300 "spec/helpers/projects/cluster_agents_helper_spec.rb": 0.6362105779990088,9301 "spec/views/devise/shared/_signin_box.html.haml_spec.rb": 0.6008443890004855,9302 "spec/models/ml/experiment_metadata_spec.rb": 0.6823176179987058,9303 "spec/services/work_items/prepare_import_csv_service_spec.rb": 0.8261605450006755,9304 "spec/models/concerns/from_union_spec.rb": 0.4297607019998395,9305 "spec/initializers/rails_yaml_safe_load_spec.rb": 0.9676928120006778,9306 "spec/models/preloaders/commit_status_preloader_spec.rb": 1.1792657080004574,9307 "spec/lib/gitlab/auth/otp/strategies/duo_auth/manual_otp_spec.rb": 0.6263589889986179,9308 "spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb": 1.2369382979995862,9309 "spec/db/production/import_common_metrics_spec.rb": 0.6257596280011057,9310 "spec/helpers/webpack_helper_spec.rb": 0.4279207919989858,9311 "spec/services/members/base_service_spec.rb": 0.7864823549989524,9312 "spec/lib/gitlab/database/migrations/pg_backend_pid_spec.rb": 0.4875378609995096,9313 "spec/lib/sidebars/projects/menus/external_wiki_menu_spec.rb": 0.5621939790016768,9314 "spec/lib/banzai/filter/blockquote_fence_filter_spec.rb": 0.43913346199951775,9315 "spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb": 0.5159524099999544,9316 "spec/graphql/types/design_management_type_spec.rb": 0.5303205000000162,9317 "spec/rubocop/cop/ban_catch_throw_spec.rb": 0.33218253400082176,9318 "spec/lib/gitlab/backtrace_cleaner_spec.rb": 0.44049480200010294,9319 "spec/presenters/key_presenter_spec.rb": 0.34306182299951615,9320 "spec/graphql/types/group_member_relation_enum_spec.rb": 0.415734951999184,9321 "spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb": 0.5597817500001838,9322 "spec/finders/repositories/changelog_tag_finder_spec.rb": 0.5715665300012915,9323 "spec/graphql/types/clusters/agent_token_status_enum_spec.rb": 0.8613469640004041,9324 "spec/graphql/types/packages/tag_type_spec.rb": 0.6254472379987419,9325 "spec/graphql/types/design_management/version_type_spec.rb": 0.5603394199988543,9326 "spec/lib/gitlab/database/background_migration/batch_metrics_spec.rb": 0.5114002200007235,9327 "spec/graphql/types/member_access_level_enum_spec.rb": 0.46389074199942115,9328 "spec/models/concerns/cross_database_modification_spec.rb": 0.4937436210002488,9329 "spec/initializers/rdoc_segfault_patch_spec.rb": 0.4105108019994077,9330 "spec/serializers/remote_mirror_entity_spec.rb": 0.43563902200003213,9331 "spec/lib/gitlab/performance_bar/stats_spec.rb": 0.45200627200028975,9332 "spec/presenters/member_presenter_spec.rb": 0.3506055229991034,9333 "spec/graphql/mutations/ci/pipeline_schedule/variable_input_type_spec.rb": 0.42337350199886714,9334 "spec/graphql/types/issuable_sort_enum_spec.rb": 0.4560786320016632,9335 "spec/graphql/types/container_expiration_policy_cadence_enum_spec.rb": 0.41594573200018203,9336 "spec/graphql/types/ci/variable_type_enum_spec.rb": 0.37969147300100303,9337 "spec/rubocop/cop/migration/add_index_spec.rb": 0.6396051680003438,9338 "spec/services/issues/base_service_spec.rb": 0.31528876399897854,9339 "spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb": 0.2852265340006852,9340 "spec/graphql/types/packages/maven/metadatum_type_spec.rb": 0.5687430300004053,9341 "spec/lib/gitlab/database/schema_validation/validators/missing_indexes_spec.rb": 0.4386670409985527,9342 "spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb": 0.27057228500052599343}9344Knapsack global time execution for tests: 20m 24s9345Pending: (Failures listed here are expected and do not affect your suite's status)9346 1) JobArtifactUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 9347 # No pattern provided, skipping.9348 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89349 2) JobArtifactUploader behaves like builds correct paths #relative_path is relative9350 # Path not set, skipping.9351 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409352 3) JobArtifactUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 9353 # No pattern provided, skipping.9354 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89355 4) JobArtifactUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9356 # No pattern provided, skipping.9357 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89358 5) JobArtifactUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9359 # No pattern provided, skipping.9360 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89361 6) JobArtifactUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9362 # No pattern provided, skipping.9363 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89364 7) JobArtifactUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 9365 # No pattern provided, skipping.9366 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89367 8) JobArtifactUploader object store is REMOTE behaves like builds correct paths #relative_path is relative9368 # Path not set, skipping.9369 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409370 9) JobArtifactUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9371 # No pattern provided, skipping.9372 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89373 10) JobArtifactUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9374 # No pattern provided, skipping.9375 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89376 11) ExternalDiffUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 9377 # No pattern provided, skipping.9378 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89379 12) ExternalDiffUploader behaves like builds correct paths #relative_path is relative9380 # Path not set, skipping.9381 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409382 13) ExternalDiffUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 9383 # No pattern provided, skipping.9384 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89385 14) ExternalDiffUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9386 # No pattern provided, skipping.9387 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89388 15) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9389 # No pattern provided, skipping.9390 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89391 16) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9392 # No pattern provided, skipping.9393 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89394 17) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 9395 # No pattern provided, skipping.9396 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89397 18) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #relative_path is relative9398 # Path not set, skipping.9399 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409400 19) ExternalDiffUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9401 # No pattern provided, skipping.9402 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89403 20) ExternalDiffUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9404 # No pattern provided, skipping.9405 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89406 21) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths #upload_path behaves like matches the method pattern 9407 # No pattern provided, skipping.9408 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89409 22) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths #relative_path is relative9410 # Path not set, skipping.9411 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409412 23) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 9413 # No pattern provided, skipping.9414 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89415 24) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9416 # No pattern provided, skipping.9417 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89418 25) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 9419 # No pattern provided, skipping.9420 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89421 26) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 9422 # No pattern provided, skipping.9423 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89424 27) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 9425 # No pattern provided, skipping.9426 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89427 28) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #relative_path is relative9428 # Path not set, skipping.9429 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409430 29) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 9431 # No pattern provided, skipping.9432 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89433 30) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 9434 # No pattern provided, skipping.9435 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89436 31) Ci::UnitTestFailure partitioning with build copies the partition_id from build9437 # Skipping partitioning tests until `ci_builds` is partitioned9438 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9439 RSpec::Core::Pending::SkipDeclaredInExample9440 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9441 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9442 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9443 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9444 32) Ci::UnitTestFailure partitioning with build when it is already set does not change the partition_id value9445 # Skipping partitioning tests until `ci_builds` is partitioned9446 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9447 RSpec::Core::Pending::SkipDeclaredInExample9448 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9449 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9450 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9451 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9452 33) Ci::UnitTestFailure partitioning without build 9453 # Skipping partitioning tests until `ci_builds` is partitioned9454 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9455 RSpec::Core::Pending::SkipDeclaredInExample9456 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9457 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9458 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9459 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9460 34) Ci::UnitTestFailure partitioning without build does not change the partition_id value9461 # Skipping partitioning tests until `ci_builds` is partitioned9462 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9463 RSpec::Core::Pending::SkipDeclaredInExample9464 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9465 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9466 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9467 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9468 35) Packages::Rpm::RepositoryFileUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 9469 # No pattern provided, skipping.9470 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89471 36) Packages::Rpm::RepositoryFileUploader behaves like builds correct paths #relative_path is relative9472 # Path not set, skipping.9473 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409474 37) Packages::Rpm::RepositoryFileUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 9475 # No pattern provided, skipping.9476 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89477 38) Packages::Rpm::RepositoryFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9478 # No pattern provided, skipping.9479 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89480 39) Packages::Rpm::RepositoryFileUploader when object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 9481 # No pattern provided, skipping.9482 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89483 40) Packages::Rpm::RepositoryFileUploader when object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 9484 # No pattern provided, skipping.9485 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89486 41) Packages::Rpm::RepositoryFileUploader when object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 9487 # No pattern provided, skipping.9488 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89489 42) Packages::Rpm::RepositoryFileUploader when object store is remote behaves like builds correct paths #relative_path is relative9490 # Path not set, skipping.9491 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409492 43) Packages::Rpm::RepositoryFileUploader when object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 9493 # No pattern provided, skipping.9494 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89495 44) Packages::Rpm::RepositoryFileUploader when object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 9496 # No pattern provided, skipping.9497 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89498 45) Database::MultipleDatabasesHelpers .with_added_ci_connection when only a single database is setup connects Ci::ApplicationRecord to the main database for the duration of the block9499 # Skipping because some of the extra databases [:ci] are setup9500 # ./spec/support_specs/database/multiple_databases_helpers_spec.rb:899501 46) Ci::BuildNeed partitioning when using bulk_insert creates build needs successfully9502 # Skipping partitioning tests until `ci_builds` is partitioned9503 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9504 RSpec::Core::Pending::SkipDeclaredInExample9505 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9506 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9507 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9508 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9509Failures:9510 1) Projects::ContainerRepository::Gitlab::DeleteTagsService#execute with tags to delete with timeout set to a valid value 9511 Failure/Error: clear_memoization(name) if Time.current > expire_at9512 ArgumentError:9513 comparison of Integer with ActiveSupport::TimeWithZone failed9514 # ./lib/gitlab/utils/strong_memoize.rb:47:in `>'9515 # ./lib/gitlab/utils/strong_memoize.rb:47:in `strong_memoize_with_expiration'9516 # ./app/models/container_repository.rb:423:in `registry'9517 # ./app/models/container_repository.rb:59:in `client'9518 # ./app/models/container_repository.rb:518:in `delete_tag_by_name'9519 # ./app/services/projects/container_repository/gitlab/delete_tags_service.rb:37:in `block in delete_tags'9520 # ./app/services/projects/container_repository/gitlab/delete_tags_service.rb:34:in `each'9521 # ./app/services/projects/container_repository/gitlab/delete_tags_service.rb:34:in `delete_tags'9522 # ./app/services/projects/container_repository/gitlab/delete_tags_service.rb:23:in `execute'9523 # ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:13:in `block (3 levels) in <top (required)>'9524 # ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:62:in `block (6 levels) in <top (required)>'9525 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'9526 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'9527 # ./spec/spec_helper.rb:415:in `block (2 levels) in <top (required)>'9528 # ./spec/spec_helper.rb:411:in `block (3 levels) in <top (required)>'9529 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'9530 # ./spec/spec_helper.rb:411:in `block (2 levels) in <top (required)>'9531 # ./spec/spec_helper.rb:242:in `block (2 levels) in <top (required)>'9532 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9533 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9534 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9535 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9536 2) Projects::ContainerRepository::Gitlab::DeleteTagsService#execute with tags to delete with timeout set to a valid value tracks the exception9537 Failure/Error: clear_memoization(name) if Time.current > expire_at9538 ArgumentError:9539 comparison of Integer with ActiveSupport::TimeWithZone failed9540 # ./lib/gitlab/utils/strong_memoize.rb:47:in `>'9541 # ./lib/gitlab/utils/strong_memoize.rb:47:in `strong_memoize_with_expiration'9542 # ./app/models/container_repository.rb:423:in `registry'9543 # ./app/models/container_repository.rb:59:in `client'9544 # ./app/models/container_repository.rb:518:in `delete_tag_by_name'9545 # ./app/services/projects/container_repository/gitlab/delete_tags_service.rb:37:in `block in delete_tags'9546 # ./app/services/projects/container_repository/gitlab/delete_tags_service.rb:34:in `each'9547 # ./app/services/projects/container_repository/gitlab/delete_tags_service.rb:34:in `delete_tags'9548 # ./app/services/projects/container_repository/gitlab/delete_tags_service.rb:23:in `execute'9549 # ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:13:in `block (3 levels) in <top (required)>'9550 # ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:68:in `block (6 levels) in <top (required)>'9551 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'9552 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'9553 # ./spec/spec_helper.rb:415:in `block (2 levels) in <top (required)>'9554 # ./spec/spec_helper.rb:411:in `block (3 levels) in <top (required)>'9555 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'9556 # ./spec/spec_helper.rb:411:in `block (2 levels) in <top (required)>'9557 # ./spec/spec_helper.rb:242:in `block (2 levels) in <top (required)>'9558 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9559 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'9560 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'9561 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'9562Finished in 20 minutes 29 seconds (files took 45.93 seconds to load)95634188 examples, 2 failures, 46 pending9564Failed examples:9565rspec ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:62 # Projects::ContainerRepository::Gitlab::DeleteTagsService#execute with tags to delete with timeout set to a valid value 9566rspec ./spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb:64 # Projects::ContainerRepository::Gitlab::DeleteTagsService#execute with tags to delete with timeout set to a valid value tracks the exception9567Randomized with seed 233559568[TEST PROF INFO] Time spent in factories: 12:16.035 (59.58% of total time)9569Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected9570RSpec exited with 1.9571RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg13_15_28_report.txt9572Retrying the failing examples in a new RSpec process...9573$ gem install junit_merge --no-document --version 0.1.29574Successfully installed nokogiri-1.14.3-x86_64-linux9575Successfully installed junit_merge-0.1.295762 gems installed9577==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.9578Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec-retry.xml --only-failures --pattern "spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb"9579warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.9581Run options: include {:last_run_status=>"failed"}9582Test environment set up in 0.380135723 seconds9583Projects::ContainerRepository::Gitlab::DeleteTagsService9584 #execute9585 with tags to delete9586 with timeout9587 set to a valid value9588 is expected to eq {:deleted=>["A"], :exception_class_name=>"Projects::ContainerRepository::Gitlab::Timeoutable::TimeoutError", :message=>"error while deleting tags", :status=>:error}9589 tracks the exception9590Finished in 5.11 seconds (files took 38.52 seconds to load)95912 examples, 0 failures9592[TEST PROF INFO] Time spent in factories: 00:01.334 (19.51% of total time)9593A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...9594Flaky test was not part of this MR.9596Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9598Uploading artifacts...9599coverage/: found 4 matching artifact files and directories 9600crystalball/: found 2 matching artifact files and directories 9601deprecations/: found 3 matching artifact files and directories 9602knapsack/: found 4 matching artifact files and directories 9603query_recorder/: found 2 matching artifact files and directories 9604rspec/: found 16 matching artifact files and directories 9605WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9606log/*.log: found 18 matching artifact files and directories 9607WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4187656170/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9608WARNING: Retrying... context=artifacts-uploader error=request redirected9609Uploading artifacts as "archive" to coordinator... 201 Created id=4187656170 responseStatus=201 Created token=64_gDWnp9610Uploading artifacts...9611rspec/junit_rspec.xml: found 1 matching artifact files and directories 9612WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4187656170/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9613WARNING: Retrying... context=artifacts-uploader error=request redirected9614Uploading artifacts as "junit" to coordinator... 201 Created id=4187656170 responseStatus=201 Created token=64_gDWnp9616Job succeeded