Skip to content
Snippets Groups Projects

rspec-ee unit pg14 es8 5/39

Log timestamps in UTC.
Full log viewer Experiment
Running with gitlab-runner 17.4.0~pre.110.g27400594 (27400594)
on blue-3.shared-gitlab-org.runners-manager.gitlab.com/default sUrYYgEG, system ID: s_35f98e2af465
feature flags: FF_NETWORK_PER_BUILD:true, FF_TIMESTAMPS:true
Resolving secrets
Preparing the "docker+machine" executor
Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.45-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 ...
Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...
Using docker image sha256:82f132c22567f8ce17cc132c14b2f9aa3eaf9bb5424d91c2d966912433f0257d for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:c55e1364ee4327b244a9cfa1750f19feea14fc774eaf792b725967d146eb45f5 ...
WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.
WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.
Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...
Using docker image sha256:5c5ba5b83d6c60cb0b225bd670b7a43be8c238cc72347d24af57e5027c3648f3 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:46aceab84c42d0e819c8e7940f2f98ce9e184785cd7b22d95872024a35f52407 ...
Starting service redis:6.2-alpine...
Pulling docker image redis:6.2-alpine ...
Using docker image sha256:7de0dedd123b8cb2b105ace4e8d00b8bba5ad7be39617dfa229acff315fe4fbf for redis:6.2-alpine with digest redis@sha256:2d1463258f2764328496376f5d965f20c6a67f66ea2b06dc42af351f75248792 ...
WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.8 is already created. Ignoring.
WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.8 is already created. Ignoring.
Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.8...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.8 ...
Using docker image sha256:df819140e3df737cdc7b8d6fb73ce804b05058c790e025b5f52840956feb1734 for registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.8 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7bdf349fc3dd9da64bc6581d44c0e906bffd38977ddbd2668ba34adb5dedfe38 ...
Starting service elasticsearch:8.11.4...
Pulling docker image elasticsearch:8.11.4 ...
Using docker image sha256:d320525a9e105e5a96d2a3bdde150654db4eab596ad6bd02cb23e46c2c25579d for elasticsearch:8.11.4 with digest elasticsearch@sha256:0092c4086c3e0bc491293835566943a7fd22776c7c75b3f6bb1bc6905779e79a ...
Waiting for services to be up and running (timeout 30 seconds)...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.45-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 ...
Using docker image sha256:72c427a29f80c5ff14e5cd83601d7507c7de71ce18b2ccd8a04667fdd0d6aba0 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.45-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14@sha256:ba1a3d49eae4bc906535413ec79e7efdb3497247de3e53f23a928039672611a1 ...
Preparing environment
Running on runner-suryygeg-project-278964-concurrent-0 via runner-suryygeg-shared-gitlab-org-1726834306-a666bf2d...
Getting source from Git repository
Skipping Git repository setup
Skipping Git checkout
Skipping Git submodules setup
Restoring cache
Checking cache for ruby-gems-debian-bookworm-ruby-3.2.5-gemfile-Gemfile-19...
Downloading cache from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bookworm-ruby-3.2.5-gemfile-Gemfile-19 ETag="d6173d7713ba56a585725be3648044d8"
Successfully extracted cache
Downloading artifacts
Downloading artifacts for clone-gitlab-repo (7879697722)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=7879697722 responseStatus=200 OK token=glcbt-66
WARNING: Part of .git directory is on the list of files to extract
WARNING: This may introduce unexpected problems
Downloading artifacts for compile-test-assets (7879697836)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=7879697836 responseStatus=200 OK token=glcbt-66
Downloading artifacts for detect-tests (7879697861)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=7879697861 responseStatus=200 OK token=glcbt-66
Downloading artifacts for retrieve-tests-metadata (7879697871)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=7879697871 responseStatus=200 OK token=glcbt-66
Downloading artifacts for setup-test-env (7879697842)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=7879697842 responseStatus=200 OK token=glcbt-66
Executing "step_script" stage of the job script
Using docker image sha256:72c427a29f80c5ff14e5cd83601d7507c7de71ce18b2ccd8a04667fdd0d6aba0 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.45-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14@sha256:ba1a3d49eae4bc906535413ec79e7efdb3497247de3e53f23a928039672611a1 ...
$ echo $FOSS_ONLY
$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb
$ export GOPATH=$CI_PROJECT_DIR/.go
$ mkdir -p $GOPATH
$ source scripts/utils.sh
$ log_disk_usage before_script
[log_disk_usage before_script] start
df -h
Filesystem Size Used Avail Use% Mounted on
overlay 46G 24G 22G 53% /
tmpfs 64M 0 64M 0% /dev
shm 256M 0 256M 0% /dev/shm
/dev/sda1 46G 24G 22G 53% /cache
tmpfs 3.9G 0 3.9G 0% /sys/devices/virtual/dmi/id
tmpfs 3.9G 0 3.9G 0% /proc/acpi
tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs 3.9G 0 3.9G 0% /sys/firmware
du -h -d 1
7.4M ./workhorse
148K ./bin
1.2M ./.gitlab
161M ./.git
4.0K ./builds
28M ./lib
8.0K ./.vscode
516K ./storybook
20K ./log
1.8M ./data
10M ./qa
2.9M ./.rubocop_todo
827M ./vendor
620M ./public
59M ./doc
480K ./danger
172K ./rspec
548K ./tooling
140M ./ee
1.3M ./knapsack
296K ./patches
4.3M ./changelogs
20K ./haml_lint
28K ./metrics_server
88K ./keeps
48K ./shared
44K ./generator_templates
1.2M ./scripts
618M ./tmp
125M ./spec
20K ./file_hooks
32K ./crystalball
16K ./sidekiq_cluster
16M ./gems
1.2M ./fixtures
944K ./rubocop
4.0K ./.go
30M ./db
12K ./.github
125M ./locale
1.9M ./glfm_specification
17M ./config
80M ./app
16K ./.lefthook
2.9G .
[log_disk_usage before_script] end
$ source scripts/prepare_build.sh
Installing gems
Using decomposed database config (config/database.yml.decomposed-postgresql)
Geo DB will be set up.
Embedding DB will be set up.
Setting up DBs
$ source ./scripts/rspec_helpers.sh
$ run_timed_command "gem install knapsack --no-document"
$ gem install knapsack --no-document
Successfully installed knapsack-4.0.0
1 gem installed
==> 'gem install knapsack --no-document' succeeded in 2 seconds.
$ $ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"
Spawning Gitaly
$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"
$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"
$ tooling/bin/create_job_metrics_file || true
[job-metrics] Creating the job metrics file for the CI/CD job.
$ rspec_section rspec_parallelized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house"
RSpec
[15:34:21] Starting rspec_parallelized_job
RETRY_FAILED_TESTS_IN_NEW_PROCESS: true
KNAPSACK_GENERATE_REPORT: true
FLAKY_RSPEC_GENERATE_REPORT: true
KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,keeps,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,dot_gitlab_ci}{,/**/}*_spec.rb
KNAPSACK_LOG_LEVEL: debug
KNAPSACK_REPORT_PATH: knapsack/rspec-ee_unit_pg14_es8_5_39_278964_report.json
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json
FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_unit_pg14_es8_5_39_278964_report.json
NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_unit_pg14_es8_5_39_278964_report.json
RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-7879700343.txt
CRYSTALBALL:
RSPEC_TESTS_MAPPING_ENABLED:
RSPEC_TESTS_FILTER_FILE:
Shell set options (set -o) enabled:
braceexpand on
hashall on
interactive-comments on
pipefail on
Parsing expected rspec suite duration...
ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb not found in master report
RSpec suite is expected to take 32 minutes 42.7 seconds.
Expected duration for tests:
{
"ee/spec/models/ee/project_spec.rb": 1062.4448984532437,
"ee/spec/policies/global_policy_spec.rb": 57.86555343470643,
"ee/spec/lib/gitlab/ci/templates/dast_latest_gitlab_ci_yaml_spec.rb": 49.56626966917942,
"ee/spec/presenters/ci/build_runner_presenter_spec.rb": 42.25292548569371,
"ee/spec/lib/security/security_orchestration_policies/policy_scope_checker_spec.rb": 38.51437895890006,
"ee/spec/lib/ee/gitlab/background_migration/backfill_zoekt_replicas_spec.rb": 34.878447156391886,
"ee/spec/services/work_items/create_service_spec.rb": 31.91058288904977,
"ee/spec/lib/compliance_management/compliance_report/commit_loader_spec.rb": 29.907946198730265,
"ee/spec/helpers/vulnerabilities_helper_spec.rb": 27.671207703615494,
"ee/spec/services/ee/issuable/destroy_service_spec.rb": 25.836025161386978,
"ee/spec/policies/remote_development/workspace_policy_spec.rb": 23.99004531558588,
"ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb": 22.185158635481972,
"ee/spec/services/vulnerability_exports/export_service_spec.rb": 20.60086957315093,
"ee/spec/services/status_page/mark_for_publication_service_spec.rb": 19.555496712587033,
"ee/spec/tasks/gitlab/elastic_rake_spec.rb": 18.445093664572706,
"ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb": 17.444332254753704,
"ee/spec/models/epic/related_epic_link_spec.rb": 16.512489971214265,
"ee/spec/lib/gitlab/vulnerability_scanning/dependency_scanning/finding_builder_spec.rb": 15.640692006842771,
"ee/spec/lib/gitlab/ci/minutes/consumption_spec.rb": 14.891893088700765,
"ee/spec/helpers/ee/invite_members_helper_spec.rb": 14.226637712431522,
"ee/spec/helpers/groups/security_features_helper_spec.rb": 13.670868383800723,
"ee/spec/models/plan_spec.rb": 13.048128385702386,
"ee/spec/graphql/types/issue_type_spec.rb": 12.63195470484895,
"ee/spec/lib/elastic/latest/merge_request_class_proxy_spec.rb": 12.107107936939848,
"ee/spec/services/app_sec/dast/profiles/create_service_spec.rb": 11.630385856593364,
"ee/spec/lib/product_analytics/settings_spec.rb": 10.93817427744741,
"ee/spec/workers/security/delete_security_policy_worker_spec.rb": 10.530041275998883,
"ee/spec/services/security/security_orchestration_policies/group_protected_branches_deletion_check_service_spec.rb": 10.022345344283522,
"ee/spec/tasks/cloud_connector/health_check_rake_spec.rb": 9.642599977837186,
"ee/spec/services/audit_events/streaming/headers/update_service_spec.rb": 9.274617492306238,
"ee/spec/services/geo/container_repository_sync_service_spec.rb": 9.02392578961531,
"ee/spec/services/dora/aggregate_scores_service_spec.rb": 8.79776981474754,
"ee/spec/workers/group_destroy_worker_spec.rb": 8.404163930679868,
"ee/spec/services/epics/epic_links/list_service_spec.rb": 8.107651853144025,
"ee/spec/services/app_sec/dast/profiles/build_config_service_spec.rb": 7.87455166787554,
"ee/spec/services/compliance_management/pipl/update_user_country_access_logs_service_spec.rb": 7.590336393064751,
"ee/spec/lib/gitlab/usage/metrics/instrumentations/count_merge_requests_with_applied_scan_result_policies_metric_spec.rb": 7.357451730825186,
"ee/spec/workers/epics/update_cached_metadata_worker_spec.rb": 7.163204060148054,
"ee/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_reviewer_first_assigned_at_spec.rb": 6.888609212064078,
"ee/spec/services/status_page/publish_service_spec.rb": 6.755628598133082,
"ee/spec/policies/ci/subscriptions/project_policy_spec.rb": 6.5014441849785225,
"ee/spec/services/gitlab_subscriptions/add_on_purchases/self_managed/license_add_ons/info_spec.rb": 6.404310029455492,
"ee/spec/lib/gitlab/graphql/aggregations/vulnerabilities/lazy_user_notes_count_aggregate_spec.rb": 6.088405658459814,
"ee/spec/workers/gitlab_subscriptions/refresh_seats_worker_spec.rb": 5.929740758965334,
"ee/spec/lib/gitlab/git_audit_event_spec.rb": 5.841943249362469,
"ee/spec/lib/gitlab_subscriptions/purchase_url_builder_spec.rb": 5.547801818097628,
"ee/spec/models/gitlab_subscriptions/add_on_spec.rb": 5.515142990432352,
"ee/spec/models/ee/users_statistics_spec.rb": 5.389894486704048,
"ee/spec/serializers/ee/admin/abuse_report_details_entity_spec.rb": 5.119332713035794,
"ee/spec/services/namespaces/export/membership_collector_spec.rb": 4.992364306606181,
"ee/spec/workers/adjourned_group_deletion_worker_spec.rb": 4.941015736771518,
"ee/spec/workers/search/zoekt/task_failed_event_worker_spec.rb": 4.827324003790357,
"ee/spec/helpers/preferences_helper_spec.rb": 4.647964534496109,
"ee/spec/finders/incident_management/escalation_rules_finder_spec.rb": 4.50299014797673,
"ee/spec/lib/sidebars/admin/panel_spec.rb": 4.390608677756061,
"ee/spec/graphql/types/asset_type_spec.rb": 4.258557644828114,
"ee/spec/services/compliance_management/merge_requests/create_compliance_violations_service_spec.rb": 4.167528575743889,
"ee/spec/services/dashboard/environments/list_service_spec.rb": 4.073254565661137,
"ee/spec/lib/remote_development/workspace_operations/reconcile/input/params_validator_spec.rb": 3.9264773392647845,
"ee/spec/lib/sidebars/admin/menus/code_suggestions_menu_spec.rb": 3.8595246506452696,
"ee/spec/workers/security/refresh_compliance_framework_security_policies_worker_spec.rb": 3.6863883952311998,
"ee/spec/workers/set_user_status_based_on_user_cap_setting_worker_spec.rb": 3.630366341212432,
"ee/spec/workers/sbom/process_vulnerabilities_worker_spec.rb": 3.5064855691213057,
"ee/spec/graphql/mutations/security_policy/create_security_policy_project_async_spec.rb": 3.3884069488843958,
"ee/spec/graphql/mutations/requirements_management/create_requirement_spec.rb": 3.288892257293625,
"ee/spec/lib/gitlab/llm/chain/utils/chat_conversation_spec.rb": 3.205656909532167,
"ee/spec/policies/ai/duo_workflows/workflow_policy_spec.rb": 3.065521817573056,
"ee/spec/workers/click_house/event_paths_consistency_cron_worker_spec.rb": 3.020294448724805,
"ee/spec/models/dora/time_to_restore_service_metric_spec.rb": 2.9587545392108843,
"ee/spec/lib/gitlab/usage/metrics/instrumentations/count_external_status_checks_metric_spec.rb": 2.806191063998922,
"ee/spec/views/admin/users/_phone_info.html.haml_spec.rb": 2.721642083518682,
"ee/spec/lib/ee/gitlab/ci/status/build/manual_spec.rb": 2.6606763270595724,
"ee/spec/lib/gitlab/gl_repository/repo_type_spec.rb": 2.611119653937603,
"ee/spec/lib/web_ide/config/entry/schema/match_spec.rb": 2.4673344386820943,
"ee/spec/models/approval_rules/approval_project_rules_group_spec.rb": 2.439362420887844,
"ee/spec/graphql/types/dora/performance_score_connection_type_spec.rb": 2.3467010595551647,
"ee/spec/workers/merge_request_reset_approvals_worker_spec.rb": 2.289432691791703,
"ee/spec/services/ee/web_hooks/destroy_service_spec.rb": 2.1765116471419006,
"ee/spec/services/security/ingestion/tasks/ingest_vulnerability_reads_spec.rb": 2.122212602687449,
"ee/spec/workers/ci/trigger_downstream_subscriptions_worker_spec.rb": 2.0392481927973694,
"ee/spec/policies/merge_requests/external_status_check_policy_spec.rb": 1.958580629656381,
"ee/spec/presenters/ee/project_presenter_spec.rb": 1.8536612158309769,
"ee/spec/lib/gitlab/llm/response_modifiers/empty_response_modifier_spec.rb": 1.7857436112006742,
"ee/spec/workers/compliance_management/framework_export_mailer_worker_spec.rb": 1.7151001366073286,
"ee/spec/services/projects/enable_deploy_key_service_spec.rb": 1.6475452837683373,
"ee/spec/models/approval_rules/approval_merge_request_rules_approved_approver_spec.rb": 1.5662736761364995,
"ee/spec/workers/compliance_management/standards/gitlab/prevent_approval_by_author_worker_spec.rb": 1.5295040085534324,
"ee/spec/lib/gem_extensions/elasticsearch/model/indexing/instance_methods_spec.rb": 1.420758903048976,
"ee/spec/lib/gitlab/llm/chain/streamed_documentation_answer_spec.rb": 1.3921957237941769,
"ee/spec/lib/remote_development/settings/network_policy_egress_validator_spec.rb": 1.2959809967426268,
"ee/spec/graphql/ee/types/ci/pipeline_merge_request_type_enum_spec.rb": 1.219229232834686,
"ee/spec/services/dependencies/fetch_export_service_spec.rb": 1.1510991917765105,
"ee/spec/services/secrets_management/provision_project_secrets_manager_service_spec.rb": 1.096247308831637,
"ee/spec/graphql/types/requirements_management/requirement_state_enum_spec.rb": 0.997292455418151,
"ee/spec/models/package_metadata/package_version_license_spec.rb": 0.9647779753701142,
"ee/spec/graphql/types/audit_events/instance_external_audit_event_destination_type_spec.rb": 0.868041510843237,
"ee/spec/lib/elastic/latest/config_spec.rb": 0.8414470362195436,
"ee/spec/graphql/ee/types/issue_sort_enum_spec.rb": 0.7535964107163665,
"ee/spec/lib/cloud_connector/self_managed/available_service_data_spec.rb": 0.7501197663101792,
"ee/spec/services/gitlab_subscriptions/seat_usage_history_export_service_spec.rb": 0.6385523838593489,
"ee/spec/graphql/types/ci/code_coverage_summary_spec.rb": 0.6294136407587836,
"ee/spec/lib/gitlab/llm/anthropic/templates/tanuki_bot_spec.rb": 0.5557589604818846,
"ee/spec/graphql/types/geo/registry_state_enum_spec.rb": 0.5253074698913243,
"ee/spec/graphql/types/epic_descendant_weight_sum_type_spec.rb": 0.5198801344111863,
"ee/spec/services/security/security_orchestration_policies/ci_action/unknown_spec.rb": 0.37458792017921794,
"ee/spec/graphql/ee/types/branch_protection_type_spec.rb": 0.3724115412359805,
"ee/spec/graphql/types/alert_management/payload_alert_field_name_enum_spec.rb": 0.29541436257277076,
"ee/spec/lib/remote_development/workspace_operations/create/volume_component_injector_spec.rb": 0.2893162805410287,
"ee/spec/graphql/ee/types/board_type_spec.rb": 0.26741266320642787,
"ee/spec/workers/security/scans/purge_worker_spec.rb": 0.2626752439466987
}
Knapsack report generator started!
/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/io-event-1.6.5/lib/io/event/support.rb:27: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
warning: parser/current is loading parser/ruby32, which recognizes 3.2.4-compliant syntax, but you are running 3.2.5.
Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/io-event-1.6.5/lib/io/event/support.rb:27: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true}
# [RSpecRunTime] Starting RSpec timer...
[TEST PROF INFO] EventProf enabled (sql.active_record)
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.
Test environment set up in 3.424657099 seconds
# [RSpecRunTime] Starting example group ee/spec/models/ee/project_spec.rb. Expected to take 17 minutes 42.44 seconds.
Project
does not allow STI
associations
is expected to delegate #shared_runners_seconds to the #statistics object
is expected to delegate #ci_minutes_usage to the #shared_runners_limit_namespace object
is expected to delegate #shared_runners_minutes_limit_enabled? to the #shared_runners_limit_namespace object
is expected to delegate #prevent_merge_without_jira_issue to the #project_setting object
is expected to delegate #prevent_merge_without_jira_issue= to the #project_setting object passing arguments [true]
is expected to delegate #only_allow_merge_if_all_status_checks_passed to the #project_setting object
is expected to delegate #security_policy_management_project to the #security_orchestration_policy_configuration object
is expected to belong to deleting_user required: false
is expected to have one import_state class_name => ProjectImportState
is expected to have one wiki_repository class_name => Projects::WikiRepository inverse_of => project
is expected to have one push_rule inverse_of => project
is expected to have one status_page_setting class_name => StatusPage::ProjectSetting
is expected to have many compliance_framework_settings class_name => ComplianceManagement::ComplianceFramework::ProjectSettings
is expected to have many compliance_management_frameworks class_name => ComplianceManagement::Framework
is expected to have many compliance_standards_adherence class_name => Projects::ComplianceStandards::Adherence
is expected to have one security_setting class_name => ProjectSecuritySetting
is expected to have one vulnerability_statistic class_name => Vulnerabilities::Statistic
is expected to have one security_orchestration_policy_configuration class_name => Security::OrchestrationPolicyConfiguration inverse_of => project
is expected to have one dependency_proxy_packages_setting class_name => DependencyProxy::Packages::Setting inverse_of => project
is expected to have many path_locks
is expected to have many vulnerability_feedback
is expected to have many vulnerability_exports
is expected to have many vulnerability_scanners
is expected to have many dast_site_profiles
is expected to have many dast_site_tokens
is expected to have many dast_sites
is expected to have many audit_events dependent => false
is expected to have many protected_environments
is expected to have many approvers dependent => destroy
is expected to have many approver_users through approvers
is expected to have many approver_groups dependent => destroy
is expected to have many upstream_project_subscriptions
is expected to have many upstream_projects
is expected to have many downstream_project_subscriptions
is expected to have many vulnerability_historical_statistics class_name => Vulnerabilities::HistoricalStatistic
is expected to have many vulnerability_remediations class_name => Vulnerabilities::Remediation
is expected to have many vulnerability_reads class_name => Vulnerabilities::Read
is expected to have many merge_train_cars class_name => MergeTrains::Car
is expected to have many xray_reports class_name => Projects::XrayReport
is expected to have many observability_metrics class_name => Observability::MetricsIssuesConnection
is expected to have many observability_traces class_name => Observability::TracesIssuesConnection
is expected to have many security_policy_management_project_linked_configurations class_name => Security::OrchestrationPolicyConfiguration
is expected to have many security_policy_project_linked_projects through security_policy_management_project_linked_configurations
is expected to have many security_policy_project_linked_namespaces through security_policy_management_project_linked_configurations
is expected to have many security_policy_project_linked_groups through security_policy_management_project_linked_configurations
is expected to have many observability_logs class_name => Observability::LogsIssuesConnection
is expected to have many security_policy_project_links
is expected to have many security_policies through security_policy_project_links
is expected to have many approval_policy_rule_project_links
is expected to have many approval_policy_rules through approval_policy_rule_project_links
is expected to have one github_integration
is expected to have one zoekt_repository
is expected to have one google_cloud_platform_artifact_registry_integration
is expected to have one google_cloud_platform_workload_identity_federation_integration
is expected to have one git_guardian_integration
is expected to have many project_aliases
is expected to have many approval_rules
is expected to have many incident_management_oncall_schedules class_name => IncidentManagement::OncallSchedule
is expected to have many incident_management_oncall_rotations through incident_management_oncall_schedules source => rotations
is expected to have many incident_management_escalation_policies class_name => IncidentManagement::EscalationPolicy
is expected to have many security_scans
is expected to have many security_trainings
is expected to have many vulnerability_hooks_integrations class_name => Integration
is expected to have many dependency_list_exports class_name => Dependencies::DependencyListExport
is expected to have many sbom_occurrences class_name => Sbom::Occurrence
is expected to have one analytics_dashboards_pointer
is expected to have one analytics_dashboards_configuration_project
is expected to have many targeting_dashboards_pointers class_name => Analytics::DashboardsPointer
is expected to have many targeting_dashboards_pointer_projects through targeting_dashboards_pointers source => project
is expected to have many software_licenses
is expected to have many custom_software_licenses
is expected to have many security_exclusions class_name => Security::ProjectSecurityExclusion
is expected to delegate #restrict_pipeline_cancellation_role to the #ci_cd_settings object
when ci_cd_settings is destroyed but project is not
allows methods delegated to ci_cd_settings to be nil
#merge_pipelines_enabled?
behaves like a ci_cd_settings predicate method
when ci_cd_settings is nil
returns false
when ci_cd_settings is not nil
delegated_method_return: true, subject_return: true
returns the expected boolean value
delegated_method_return: false, subject_return: false
returns the expected boolean value
#merge_pipelines_were_disabled?
behaves like a ci_cd_settings predicate method
when ci_cd_settings is nil
returns false
when ci_cd_settings is not nil
delegated_method_return: true, subject_return: true
returns the expected boolean value
delegated_method_return: false, subject_return: false
returns the expected boolean value
#merge_trains_enabled?
behaves like a ci_cd_settings predicate method
when ci_cd_settings is nil
returns false
when ci_cd_settings is not nil
delegated_method_return: true, subject_return: true
returns the expected boolean value
delegated_method_return: false, subject_return: false
returns the expected boolean value
#auto_rollback_enabled?
behaves like a ci_cd_settings predicate method
when ci_cd_settings is nil
returns false
when ci_cd_settings is not nil
delegated_method_return: true, subject_return: true
returns the expected boolean value
delegated_method_return: false, subject_return: false
returns the expected boolean value
#jira_vulnerabilities_integration_enabled?
when project lacks a jira_integration relation
returns false
when project has a jira_integration relation
accesses the value from the jira_integration
#configured_to_create_issues_from_vulnerabilities?
when project lacks a jira_integration relation
returns false
when project has a jira_integration relation
accesses the value from the jira_integration
#jira_issue_association_required_to_merge_enabled?
jira_integration_licensed: true, jira_integration_active: true, jira_enforcement_licensed: true
is enabled if all values are true
jira_integration_licensed: true, jira_integration_active: true, jira_enforcement_licensed: false
is enabled if all values are true
jira_integration_licensed: true, jira_integration_active: false, jira_enforcement_licensed: true
is enabled if all values are true
jira_integration_licensed: true, jira_integration_active: false, jira_enforcement_licensed: false
is enabled if all values are true
jira_integration_licensed: false, jira_integration_active: true, jira_enforcement_licensed: true
is enabled if all values are true
jira_integration_licensed: false, jira_integration_active: true, jira_enforcement_licensed: false
is enabled if all values are true
jira_integration_licensed: false, jira_integration_active: false, jira_enforcement_licensed: true
is enabled if all values are true
jira_integration_licensed: false, jira_integration_active: false, jira_enforcement_licensed: false
is enabled if all values are true
import_state dependant predicate method
#mirror_last_update_succeeded?
behaves like returns expected values
when project lacks a import_state relation
returns false
when project has a import_state relation
accesses the value from the import_state
#mirror_last_update_failed?
behaves like returns expected values
when project lacks a import_state relation
returns false
when project has a import_state relation
accesses the value from the import_state
#mirror_ever_updated_successfully?
behaves like returns expected values
when project lacks a import_state relation
returns false
when project has a import_state relation
accesses the value from the import_state
approval_rules association
#applicable_to_branch
when there are no associated protected branches
is expected to eq [#<ApprovalProjectRule id: 1, created_at: "2024-09-20 15:37:49.810766000 +0000", updated_at: "2024-09...chestration_policy_configuration_id: nil, scan_result_policy_id: nil, approval_policy_rule_id: nil>]
when there are associated protected branches
and branch matches
is expected to eq [#<ApprovalProjectRule id: 1, created_at: "2024-09-20 15:37:49.810766000 +0000", updated_at: "2024-09...chestration_policy_configuration_id: nil, scan_result_policy_id: nil, approval_policy_rule_id: nil>]
and multiple rules
avoids N+1 queries
# [RSpecRunTime] RSpec elapsed time: 42.9 seconds. Current RSS: ~1271M. Threads: 4. load average: 1.27 1.20 1.03 1/401 412
.
but branch does not match anything
is expected to be empty
#inapplicable_to_branch
when there are no associated protected branches
is expected to be empty
when there are associated protected branches
and branch does not match anything
is expected to eq [#<ApprovalProjectRule id: 1, created_at: "2024-09-20 15:37:49.810766000 +0000", updated_at: "2024-09...chestration_policy_configuration_id: nil, scan_result_policy_id: nil, approval_policy_rule_id: nil>]
and multiple rules
avoids N+1 queries
# [RSpecRunTime] RSpec elapsed time: 45.62 seconds. Current RSS: ~1271M. Threads: 4. load average: 1.17 1.18 1.03 3/401 413
.
but branch matches
is expected to be empty
when deleting security policy project
also deletes the associated security_orchestration_policy_configuration
# [RSpecRunTime] RSpec elapsed time: 47.56 seconds. Current RSS: ~1266M. Threads: 4. load average: 1.17 1.18 1.03 1/401 414
.
scopes
.requiring_code_owner_approval
only includes the right projects
# [RSpecRunTime] RSpec elapsed time: 49.08 seconds. Current RSS: ~1266M. Threads: 4. load average: 1.32 1.21 1.04 1/401 415
.
.with_wiki_enabled
returns a project
# [RSpecRunTime] RSpec elapsed time: 51.22 seconds. Current RSS: ~1261M. Threads: 4. load average: 1.32 1.21 1.04 1/401 432
.
.github_imported
returns the correct project
# [RSpecRunTime] RSpec elapsed time: 52.58 seconds. Current RSS: ~1262M. Threads: 4. load average: 1.32 1.21 1.04 1/401 433
.
.with_protected_branches
returns the correct project
# [RSpecRunTime] RSpec elapsed time: 54.7 seconds. Current RSS: ~1263M. Threads: 4. load average: 1.29 1.21 1.04 1/401 434
.
.with_repositories_enabled
returns the correct project
# [RSpecRunTime] RSpec elapsed time: 56.1 seconds. Current RSS: ~1262M. Threads: 4. load average: 1.29 1.21 1.04 1/401 435
.
.with_security_scans
returns the correct project
# [RSpecRunTime] RSpec elapsed time: 1 minute 0.1 second. Current RSS: ~1265M. Threads: 4. load average: 1.27 1.21 1.04 1/401 436
.
.with_github_integration_pipeline_events
returns the correct project
# [RSpecRunTime] RSpec elapsed time: 1 minute 2.36 seconds. Current RSS: ~1278M. Threads: 4. load average: 1.27 1.21 1.04 1/401 437
.
.with_active_prometheus_integration
returns the correct project
# [RSpecRunTime] RSpec elapsed time: 1 minute 3.98 seconds. Current RSS: ~1281M. Threads: 4. load average: 1.25 1.20 1.04 1/401 438
.
.has_vulnerabilities
is expected to contain exactly #<Project id:61 namespace61/project-61>>
# [RSpecRunTime] RSpec elapsed time: 1 minute 5.58 seconds. Current RSS: ~1276M. Threads: 4. load average: 1.25 1.20 1.04 1/401 439
.
.has_vulnerability_statistics
is expected to contain exactly #<Project id:64 namespace64/project-64>>
# [RSpecRunTime] RSpec elapsed time: 1 minute 6.69 seconds. Current RSS: ~1270M. Threads: 4. load average: 1.25 1.20 1.04 1/401 440
.
.not_aimed_for_deletion
is expected to contain exactly #<Project id:66 namespace66/project-66>>
# [RSpecRunTime] RSpec elapsed time: 1 minute 7.75 seconds. Current RSS: ~1271M. Threads: 4. load average: 1.25 1.20 1.04 1/401 441
.
.by_marked_for_deletion_on
when marked_for_deletion_on is present
return projects marked for deletion
# [RSpecRunTime] RSpec elapsed time: 1 minute 8.76 seconds. Current RSS: ~1267M. Threads: 4. load average: 1.25 1.20 1.04 3/401 442
.
when marked_for_deletion_on is not present
return projects not marked for deletion
.order_by_excess_repo_storage_size_desc
is expected to eq [#<Project id:71 namespace71/project-71>>, #<Project id:73 namespace73/project-73>>, #<Project id:70 namespace70/project-70>>]
# [RSpecRunTime] RSpec elapsed time: 1 minute 10.66 seconds. Current RSS: ~1266M. Threads: 4. load average: 1.23 1.20 1.04 1/401 443
.
.with_coverage_feature_usage
when default_branch is not specified
is expected to contain exactly #<Project id:74 namespace74/project-74>> and #<Project id:75 namespace75/project-75>>
# [RSpecRunTime] RSpec elapsed time: 1 minute 12.28 seconds. Current RSS: ~1262M. Threads: 4. load average: 1.23 1.20 1.04 1/401 444
.
when default_branch is set to true
is expected to contain exactly #<Project id:74 namespace74/project-74>>
when default_branch is set to false
is expected to contain exactly #<Project id:74 namespace74/project-74>> and #<Project id:75 namespace75/project-75>>
.with_feature_available
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
lists projects with the feature available
# [RSpecRunTime] RSpec elapsed time: 1 minute 15.81 seconds. Current RSS: ~1259M. Threads: 4. load average: 1.21 1.20 1.04 1/401 445
.
.with_project_setting
eager loads the project setting and avoids N+1 queries
compliance framework scopes
.compliance_framework_id_in
when correct framework id is passed
is expected to contain exactly #<Project id:86 group9/project-86>>
# [RSpecRunTime] RSpec elapsed time: 1 minute 18.0 seconds. Current RSS: ~1265M. Threads: 4. load average: 1.21 1.20 1.04 1/401 446
.
when correct framework ids are passed
is expected to contain exactly #<Project id:86 group9/project-86>> and #<Project id:87 group9/project-87>>
when one framework id is valid and another is non existing
is expected to contain exactly #<Project id:86 group9/project-86>>
when a project has more than one frameworks and both are used as filters
is expected to contain exactly #<Project id:86 group9/project-86>> and #<Project id:87 group9/project-87>>
when same framework id is passed multiple times
is expected to contain exactly #<Project id:86 group9/project-86>> and #<Project id:87 group9/project-87>>
when nil is passed as framework id
is expected to be empty
when the framework id passed is of non existing record
is expected to be empty
.compliance_framework_id_not_in
when a valid framework id is passed
is expected to contain exactly #<Project id:87 group9/project-87>> and #<Project id:88 group9/project-88>>
when a valid framework ids are passed
is expected to contain exactly #<Project id:88 group9/project-88>>
when one framework id is valid and another is non existing
is expected to contain exactly #<Project id:87 group9/project-87>> and #<Project id:88 group9/project-88>>
when a project has multiple compliance frameworks
is expected to contain exactly #<Project id:86 group9/project-86>> and #<Project id:88 group9/project-88>>
when nil is passed as framework id
is expected to contain exactly #<Project id:86 group9/project-86>>, #<Project id:87 group9/project-87>>, and #<Project id:88 group9/project-88>>
when the framework id passed is of non existing record
is expected to contain exactly #<Project id:86 group9/project-86>>, #<Project id:87 group9/project-87>>, and #<Project id:88 group9/project-88>>
.missing_compliance_framework
is expected to eq [#<Project id:88 group9/project-88>>]
.any_compliance_framework
is expected to contain exactly #<Project id:86 group9/project-86>> and #<Project id:87 group9/project-87>>
.with_compliance_frameworks
is expected to contain exactly #<Project id:86 group9/project-86>> and #<Project id:87 group9/project-87>>
.not_with_compliance_frameworks
is expected to contain exactly #<Project id:87 group9/project-87>> and #<Project id:88 group9/project-88>>
.with_sbom_component_version
is expected to contain exactly #<Project id:89 namespace78/project-89>>
# [RSpecRunTime] RSpec elapsed time: 1 minute 21.72 seconds. Current RSS: ~1309M. Threads: 4. load average: 1.19 1.19 1.04 1/401 447
.
.not_indexed_in_elasticsearch
only matches indexed projects
# [RSpecRunTime] RSpec elapsed time: 1 minute 23.52 seconds. Current RSS: ~1307M. Threads: 4. load average: 1.19 1.19 1.04 1/402 486
.
validations
creates import state when mirror gets enabled
variables
ensures max_pages_size is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)
with duplicate variables with same environment scope
is expected not to be valid
# [RSpecRunTime] RSpec elapsed time: 1 minute 25.54 seconds. Current RSS: ~1311M. Threads: 4. load average: 1.26 1.21 1.04 1/402 487
.
with same variable keys and different environment scope
is expected to be valid
mirror
is expected to validate that :import_url cannot be empty/falsy
is expected to validate that :mirror_user cannot be empty/falsy
approvals_before_merge
is expected to validate that :approvals_before_merge looks like a number
is expected to be invalid
update callbacks
.update_legacy_open_source_license_available
visibility_level: 20, new_visibility_level: 10
sets `project_settings.legacy_open_source_license_available` to false
visibility_level: 20, new_visibility_level: 0
sets `project_settings.legacy_open_source_license_available` to false
visibility_level: 10, new_visibility_level: 20
sets `project_settings.legacy_open_source_license_available` to false
visibility_level: 10, new_visibility_level: 0
sets `project_settings.legacy_open_source_license_available` to false
visibility_level: 0, new_visibility_level: 20
sets `project_settings.legacy_open_source_license_available` to false
visibility_level: 0, new_visibility_level: 10
sets `project_settings.legacy_open_source_license_available` to false
.elastic_index_dependant_association
contains the correct array for elastic_index_dependants
setting up a mirror
when new project
creates import_state and sets next_execution_timestamp to now
when project already exists
when project is not import
creates import_state and sets next_execution_timestamp to now
when project is import
sets current import_state next_execution_timestamp to now
# [RSpecRunTime] RSpec elapsed time: 1 minute 34.55 seconds. Current RSS: ~1308M. Threads: 4. load average: 1.22 1.20 1.04 1/401 488
.
.mirrors_to_sync
when mirror is scheduled
returns empty
when mirror is started
returns empty
# [RSpecRunTime] RSpec elapsed time: 1 minute 36.6 seconds. Current RSS: ~1310M. Threads: 4. load average: 1.22 1.20 1.04 1/401 489
.
when mirror is finished
returns project if next_execution_timestamp is not in the future
returns empty if next_execution_timestamp is in the future
# [RSpecRunTime] RSpec elapsed time: 1 minute 38.28 seconds. Current RSS: ~1309M. Threads: 4. load average: 1.22 1.20 1.04 1/401 490
.
when project is failed
returns project if next_execution_timestamp is not in the future
returns empty if next_execution_timestamp is in the future
with retry limit exceeded
returns empty
# [RSpecRunTime] RSpec elapsed time: 1 minute 41.32 seconds. Current RSS: ~1313M. Threads: 4. load average: 1.20 1.20 1.04 1/401 491
.
#can_store_security_reports?
when the feature is enabled for the namespace
returns true
when the project is public
returns true
when the feature is disabled for the namespace and the project is not public
returns false
#deployment_variables
when environment name is review/name
returns variables from this service
# [RSpecRunTime] RSpec elapsed time: 1 minute 45.78 seconds. Current RSS: ~1304M. Threads: 4. load average: 1.18 1.19 1.04 1/401 492
.
when environment name is other
returns variables from this service
# [RSpecRunTime] RSpec elapsed time: 1 minute 47.81 seconds. Current RSS: ~1303M. Threads: 4. load average: 1.18 1.19 1.04 1/401 493
.
#ensure_external_webhook_token
sets external_webhook_token when it's missing
# [RSpecRunTime] RSpec elapsed time: 1 minute 49.31 seconds. Current RSS: ~1304M. Threads: 4. load average: 1.25 1.21 1.04 1/403 526
.
#push_rule
is expected not to be nil
push rules unlicensed
is expected to be nil
# [RSpecRunTime] RSpec elapsed time: 1 minute 52.03 seconds. Current RSS: ~1295M. Threads: 4. load average: 1.25 1.21 1.04 1/403 527
.
#predefined_push_rule
when inherited_push_rule_for_project is disabled
return push rule
push rules unlicensed
is expected to be nil
push rules licensed
when has push rule
is expected to eq #<PushRule id: 3, force_push_regex: "feature\\/.*", delete_branch_regex: "bug\\/.*", commit_message_r...e_regex: nil, reject_non_dco_commits: nil, commit_committer_name_check: false, organization_id: nil>
when has group push rule
is expected to eq #<PushRule id: nil, force_push_regex: "feature\\/.*", delete_branch_regex: "bug\\/.*", commit_message...e_regex: nil, reject_non_dco_commits: nil, commit_committer_name_check: false, organization_id: nil>
when has global push rule
is expected to eq #<PushRule id: 4, force_push_regex: "feature\\/.*", delete_branch_regex: "bug\\/.*", commit_message_r...e_regex: nil, reject_non_dco_commits: nil, commit_committer_name_check: false, organization_id: nil>
# [RSpecRunTime] RSpec elapsed time: 1 minute 56.02 seconds. Current RSS: ~1297M. Threads: 4. load average: 1.23 1.20 1.04 1/403 528
.
#should_check_index_integrity?
advanced_search_enabled: false, repository_exists: true, repository_empty: true, expected: false
is expected to equal false
advanced_search_enabled: false, repository_exists: false, repository_empty: true, expected: false
is expected to equal false
advanced_search_enabled: false, repository_exists: true, repository_empty: false, expected: false
is expected to equal false
advanced_search_enabled: false, repository_exists: false, repository_empty: false, expected: false
is expected to equal false
advanced_search_enabled: true, repository_exists: true, repository_empty: true, expected: false
is expected to equal false
advanced_search_enabled: true, repository_exists: false, repository_empty: true, expected: false
is expected to equal false
advanced_search_enabled: true, repository_exists: true, repository_empty: false, expected: true
is expected to equal true
advanced_search_enabled: true, repository_exists: false, repository_empty: false, expected: false
is expected to equal false
merge requests related settings
#disable_overriding_approvers_per_merge_request
returns false when the resolver returns true
returns true when the resolver returns false
# [RSpecRunTime] RSpec elapsed time: 1 minute 58.83 seconds. Current RSS: ~1308M. Threads: 4. load average: 1.23 1.20 1.04 1/403 529
.
#disable_overriding_approvers_per_merge_request?
behaves like a predicate wrapper method
wrapped_method_return: true, subject_return: true
returns the expected boolean value
wrapped_method_return: false, subject_return: false
returns the expected boolean value
wrapped_method_return: nil, subject_return: false
returns the expected boolean value
#merge_requests_disable_committers_approval
returns false when the resolver returns true
returns true when the resolver returns false
# [RSpecRunTime] RSpec elapsed time: 2 minutes 2.17 seconds. Current RSS: ~1305M. Threads: 4. load average: 1.29 1.22 1.05 1/403 530
.
#merge_requests_disable_committers_approval?
behaves like a predicate wrapper method
wrapped_method_return: true, subject_return: true
returns the expected boolean value
# [RSpecRunTime] RSpec elapsed time: 2 minutes 4.01 seconds. Current RSS: ~1302M. Threads: 4. load average: 1.27 1.21 1.05 1/403 531
.
wrapped_method_return: false, subject_return: false
returns the expected boolean value
wrapped_method_return: nil, subject_return: false
returns the expected boolean value
#require_reauthentication_to_approve?
returns true when the resolver returns true
returns false when the resolver returns false
# [RSpecRunTime] RSpec elapsed time: 2 minutes 6.9 seconds. Current RSS: ~1280M. Threads: 4. load average: 1.27 1.21 1.05 1/403 532
.
#require_password_to_approve?
returns true when the resolver returns true
returns false when the resolver returns false
sets require_reauthentication_to_approve along with require_password_to_approve
sets require_password_to_approve along with require_reauthentication_to_approve
# [RSpecRunTime] RSpec elapsed time: 2 minutes 9.98 seconds. Current RSS: ~1276M. Threads: 4. load average: 1.33 1.22 1.05 1/403 533
.
#merge_requests_author_approval
returns true when the resolver returns true
returns false when the resolver returns false
# [RSpecRunTime] RSpec elapsed time: 2 minutes 11.31 seconds. Current RSS: ~1276M. Threads: 4. load average: 1.33 1.22 1.05 1/403 534
.
#merge_requests_author_approval?
behaves like a predicate wrapper method
wrapped_method_return: true, subject_return: true
returns the expected boolean value
wrapped_method_return: false, subject_return: false
returns the expected boolean value
wrapped_method_return: nil, subject_return: false
returns the expected boolean value
#has_active_hooks?
with group hooks
returns true
with no group hooks
returns false
#has_group_hooks?
is expected to eq false
project is in a group
is expected to eq false
behaves like returns false when the feature is not available
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 2 minutes 17.09 seconds. Current RSS: ~1285M. Threads: 4. load average: 1.30 1.22 1.05 1/403 535
.
the group has hooks
is expected to eq true
caches matching integrations
behaves like returns false when the feature is not available
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 2 minutes 19.78 seconds. Current RSS: ~1302M. Threads: 4. load average: 1.28 1.22 1.05 1/403 536
.
but the hook is not in scope
is expected to eq false
behaves like returns false when the feature is not available
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 2 minutes 21.66 seconds. Current RSS: ~1300M. Threads: 4. load average: 1.28 1.22 1.05 1/403 537
.
the group inherits a hook
is expected to eq true
behaves like returns false when the feature is not available
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 2 minutes 23.98 seconds. Current RSS: ~1294M. Threads: 4. load average: 1.25 1.21 1.05 1/403 538
.
#execute_external_compliance_hooks
Job arguments to ApprovalRules::ExternalApprovalRulePayloadWorker must be native JSON types, but :external_approval_rule is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
enqueues the correct number of workers
#execute_hooks
group hooks
does not execute the hook when the feature is disabled
when group_webhooks feature is enabled
when the hook defines a branch filter for push events
respects the branch filter
# [RSpecRunTime] RSpec elapsed time: 2 minutes 26.54 seconds. Current RSS: ~1299M. Threads: 4. load average: 1.25 1.21 1.05 1/403 539
.
behaves like triggering group webhook
executes the hook
in sub group
behaves like triggering group webhook
executes the hook
# [RSpecRunTime] RSpec elapsed time: 2 minutes 28.73 seconds. Current RSS: ~1304M. Threads: 4. load average: 1.25 1.21 1.05 1/403 540
.
#allowed_to_share_with_group?
returns true
returns false
# [RSpecRunTime] RSpec elapsed time: 2 minutes 30.18 seconds. Current RSS: ~1302M. Threads: 4. load average: 1.23 1.21 1.05 1/403 541
.
#membership_locked?
when project has no group
is false
with group_membership_lock enabled
is true
with group_membership_lock disabled
is false
#feature_available?
only loads licensed availability once
when feature symbol is included on Namespace features code
audit_events
checking audit_events availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking audit_events only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
blocked_issues
checking blocked_issues availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking blocked_issues only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
board_iteration_lists
checking board_iteration_lists availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking board_iteration_lists only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
code_owners
checking code_owners availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking code_owners only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
code_review_analytics
checking code_review_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking code_review_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
full_codequality_report
checking full_codequality_report availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking full_codequality_report only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_activity_analytics
checking group_activity_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking group_activity_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_bulk_edit
checking group_bulk_edit availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking group_bulk_edit only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
issuable_default_templates
checking issuable_default_templates availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking issuable_default_templates only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
issue_weights
checking issue_weights availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking issue_weights only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
iterations
checking iterations availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking iterations only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ldap_group_sync
when checking ldap_group_sync only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
merge_request_approvers
checking merge_request_approvers availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking merge_request_approvers only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
milestone_charts
checking milestone_charts availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking milestone_charts only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
multiple_issue_assignees
checking multiple_issue_assignees availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking multiple_issue_assignees only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
multiple_ldap_servers
when checking multiple_ldap_servers only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
multiple_merge_request_assignees
checking multiple_merge_request_assignees availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking multiple_merge_request_assignees only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
multiple_merge_request_reviewers
checking multiple_merge_request_reviewers availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking multiple_merge_request_reviewers only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
project_merge_request_analytics
checking project_merge_request_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking project_merge_request_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
protected_refs_for_users
checking protected_refs_for_users availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking protected_refs_for_users only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
push_rules
checking push_rules availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking push_rules only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
resource_access_token
checking resource_access_token availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking resource_access_token only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
seat_link
when checking seat_link only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
seat_usage_quotas
when checking seat_usage_quotas only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
pipelines_usage_quotas
when checking pipelines_usage_quotas only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
transfer_usage_quotas
when checking transfer_usage_quotas only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
product_analytics_usage_quotas
when checking product_analytics_usage_quotas only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
wip_limits
checking wip_limits availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking wip_limits only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
zoekt_code_search
when checking zoekt_code_search only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
blocked_work_items
checking blocked_work_items availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking blocked_work_items only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
description_diffs
checking description_diffs availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking description_diffs only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
send_emails_from_admin_area
checking send_emails_from_admin_area availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking send_emails_from_admin_area only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
repository_size_limit
when checking repository_size_limit only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
maintenance_mode
checking maintenance_mode availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking maintenance_mode only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
scoped_issue_board
checking scoped_issue_board availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking scoped_issue_board only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
contribution_analytics
checking contribution_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking contribution_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_webhooks
checking group_webhooks availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking group_webhooks only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
member_lock
checking member_lock availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking member_lock only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
elastic_search
when checking elastic_search only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
repository_mirrors
checking repository_mirrors availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Global License
returns false
when checking repository_mirrors only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ai_chat
checking ai_chat availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ai_chat only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
adjourned_deletion_for_projects_and_groups
checking adjourned_deletion_for_projects_and_groups availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking adjourned_deletion_for_projects_and_groups only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
admin_audit_log
when checking admin_audit_log only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
auditor_user
when checking auditor_user only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
blocking_merge_requests
checking blocking_merge_requests availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking blocking_merge_requests only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
board_assignee_lists
checking board_assignee_lists availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking board_assignee_lists only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
board_milestone_lists
checking board_milestone_lists availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking board_milestone_lists only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ci_secrets_management
checking ci_secrets_management availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ci_secrets_management only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ci_pipeline_cancellation_restrictions
checking ci_pipeline_cancellation_restrictions availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ci_pipeline_cancellation_restrictions only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
cluster_agents_ci_impersonation
checking cluster_agents_ci_impersonation availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking cluster_agents_ci_impersonation only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
cluster_agents_user_impersonation
checking cluster_agents_user_impersonation availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking cluster_agents_user_impersonation only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
cluster_deployments
checking cluster_deployments availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking cluster_deployments only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
code_owner_approval_required
checking code_owner_approval_required availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking code_owner_approval_required only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
code_suggestions
checking code_suggestions availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking code_suggestions only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
commit_committer_check
checking commit_committer_check availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking commit_committer_check only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
commit_committer_name_check
checking commit_committer_name_check availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking commit_committer_name_check only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
compliance_framework
checking compliance_framework availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking compliance_framework only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
custom_compliance_frameworks
checking custom_compliance_frameworks availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking custom_compliance_frameworks only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
custom_file_templates
when checking custom_file_templates only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
custom_project_templates
when checking custom_project_templates only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
cycle_analytics_for_groups
checking cycle_analytics_for_groups availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking cycle_analytics_for_groups only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
cycle_analytics_for_projects
checking cycle_analytics_for_projects availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking cycle_analytics_for_projects only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
db_load_balancing
when checking db_load_balancing only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
default_branch_protection_restriction_in_groups
when checking default_branch_protection_restriction_in_groups only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
default_project_deletion_protection
checking default_project_deletion_protection availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking default_project_deletion_protection only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
delete_unconfirmed_users
checking delete_unconfirmed_users availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking delete_unconfirmed_users only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
dependency_proxy_for_packages
checking dependency_proxy_for_packages availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking dependency_proxy_for_packages only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
disable_extensions_marketplace_for_enterprise_users
checking disable_extensions_marketplace_for_enterprise_users availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking disable_extensions_marketplace_for_enterprise_users only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
disable_name_update_for_users
checking disable_name_update_for_users availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking disable_name_update_for_users only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
disable_personal_access_tokens
checking disable_personal_access_tokens availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking disable_personal_access_tokens only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
domain_verification
checking domain_verification availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking domain_verification only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
epics
checking epics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking epics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
extended_audit_events
when checking extended_audit_events only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
external_authorization_service_api_management
when checking external_authorization_service_api_management only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
feature_flags_code_references
checking feature_flags_code_references availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking feature_flags_code_references only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
file_locks
checking file_locks availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking file_locks only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
geo
when checking geo only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
generic_alert_fingerprinting
checking generic_alert_fingerprinting availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking generic_alert_fingerprinting only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
git_two_factor_enforcement
checking git_two_factor_enforcement availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking git_two_factor_enforcement only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_allowed_email_domains
checking group_allowed_email_domains availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_allowed_email_domains only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_coverage_reports
checking group_coverage_reports availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_coverage_reports only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_forking_protection
checking group_forking_protection availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_forking_protection only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_level_compliance_dashboard
checking group_level_compliance_dashboard availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_level_compliance_dashboard only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_milestone_project_releases
checking group_milestone_project_releases availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_milestone_project_releases only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_project_templates
checking group_project_templates availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_project_templates only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_repository_analytics
checking group_repository_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_repository_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_saml
checking group_saml availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_saml only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_scoped_ci_variables
checking group_scoped_ci_variables availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_scoped_ci_variables only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ide_schema_config
checking ide_schema_config availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ide_schema_config only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
incident_metric_upload
checking incident_metric_upload availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking incident_metric_upload only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
instance_level_scim
when checking instance_level_scim only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
jira_issues_integration
checking jira_issues_integration availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking jira_issues_integration only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ldap_group_sync_filter
when checking ldap_group_sync_filter only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
merge_request_performance_metrics
checking merge_request_performance_metrics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking merge_request_performance_metrics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
admin_merge_request_approvers_rules
checking admin_merge_request_approvers_rules availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking admin_merge_request_approvers_rules only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
merge_trains
checking merge_trains availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking merge_trains only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
metrics_reports
checking metrics_reports availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking metrics_reports only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
multiple_alert_http_integrations
checking multiple_alert_http_integrations availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking multiple_alert_http_integrations only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
multiple_approval_rules
checking multiple_approval_rules availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking multiple_approval_rules only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
multiple_group_issue_boards
checking multiple_group_issue_boards availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking multiple_group_issue_boards only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
object_storage
when checking object_storage only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
microsoft_group_sync
checking microsoft_group_sync availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking microsoft_group_sync only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
operations_dashboard
checking operations_dashboard availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking operations_dashboard only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
package_forwarding
checking package_forwarding availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking package_forwarding only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
pages_size_limit
when checking pages_size_limit only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
pages_multiple_versions
checking pages_multiple_versions availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking pages_multiple_versions only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
productivity_analytics
checking productivity_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking productivity_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
project_aliases
when checking project_aliases only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
protected_environments
checking protected_environments availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking protected_environments only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
reject_non_dco_commits
checking reject_non_dco_commits availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking reject_non_dco_commits only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
reject_unsigned_commits
checking reject_unsigned_commits availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking reject_unsigned_commits only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
remote_development
checking remote_development availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking remote_development only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
saml_group_sync
checking saml_group_sync availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking saml_group_sync only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
service_accounts
checking service_accounts availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking service_accounts only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
scoped_labels
checking scoped_labels availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking scoped_labels only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
smartcard_auth
checking smartcard_auth availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking smartcard_auth only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ssh_certificates
checking ssh_certificates availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ssh_certificates only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
swimlanes
checking swimlanes availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking swimlanes only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
target_branch_rules
checking target_branch_rules availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking target_branch_rules only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
type_of_work_analytics
checking type_of_work_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking type_of_work_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
minimal_access_role
checking minimal_access_role availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking minimal_access_role only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
unprotection_restrictions
checking unprotection_restrictions availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking unprotection_restrictions only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ci_project_subscriptions
checking ci_project_subscriptions availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ci_project_subscriptions only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
incident_timeline_view
checking incident_timeline_view availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking incident_timeline_view only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
oncall_schedules
checking oncall_schedules availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking oncall_schedules only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
escalation_policies
checking escalation_policies availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking escalation_policies only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
zentao_issues_integration
checking zentao_issues_integration availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking zentao_issues_integration only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
coverage_check_approval_rule
checking coverage_check_approval_rule availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking coverage_check_approval_rule only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
issuable_resource_links
checking issuable_resource_links availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking issuable_resource_links only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_protected_branches
checking group_protected_branches availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_protected_branches only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_level_merge_checks_setting
checking group_level_merge_checks_setting availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_level_merge_checks_setting only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
oidc_client_groups_claim
checking oidc_client_groups_claim availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking oidc_client_groups_claim only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
disable_deleting_account_for_users
checking disable_deleting_account_for_users availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking disable_deleting_account_for_users only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
disable_private_profiles
when checking disable_private_profiles only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_saved_replies
checking group_saved_replies availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_saved_replies only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
requested_changes_block_merge_request
checking requested_changes_block_merge_request availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking requested_changes_block_merge_request only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
project_saved_replies
checking project_saved_replies availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking project_saved_replies only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_ip_restriction
checking group_ip_restriction availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_ip_restriction only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
issues_analytics
checking issues_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking issues_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
password_complexity
when checking password_complexity only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_wikis
checking group_wikis availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_wikis only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
email_additional_text
checking email_additional_text availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking email_additional_text only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
custom_file_templates_for_namespace
checking custom_file_templates_for_namespace availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking custom_file_templates_for_namespace only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
incident_sla
checking incident_sla availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking incident_sla only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
export_user_permissions
checking export_user_permissions availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking export_user_permissions only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
cross_project_pipelines
checking cross_project_pipelines availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking cross_project_pipelines only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
feature_flags_related_issues
checking feature_flags_related_issues availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking feature_flags_related_issues only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
merge_pipelines
checking merge_pipelines availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking merge_pipelines only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ci_cd_projects
checking ci_cd_projects availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ci_cd_projects only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
github_integration
checking github_integration availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking github_integration only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ai_config_chat
checking ai_config_chat availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ai_config_chat only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ai_features
checking ai_features availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ai_features only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
glab_ask_git_command
checking glab_ask_git_command availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking glab_ask_git_command only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ai_agents
checking ai_agents availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ai_agents only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ai_review_mr
checking ai_review_mr availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ai_review_mr only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
api_discovery
checking api_discovery availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking api_discovery only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
api_fuzzing
checking api_fuzzing availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking api_fuzzing only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
auto_rollback
checking auto_rollback availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking auto_rollback only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
breach_and_attack_simulation
checking breach_and_attack_simulation availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking breach_and_attack_simulation only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
cluster_receptive_agents
checking cluster_receptive_agents availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking cluster_receptive_agents only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
cluster_image_scanning
checking cluster_image_scanning availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking cluster_image_scanning only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
external_status_checks
checking external_status_checks availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking external_status_checks only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
combined_project_analytics_dashboards
checking combined_project_analytics_dashboards availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking combined_project_analytics_dashboards only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
compliance_pipeline_configuration
checking compliance_pipeline_configuration availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking compliance_pipeline_configuration only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
container_scanning
checking container_scanning availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking container_scanning only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
credentials_inventory
checking credentials_inventory availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking credentials_inventory only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
custom_roles
checking custom_roles availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking custom_roles only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
dast
checking dast availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking dast only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
dependency_scanning
checking dependency_scanning availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking dependency_scanning only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
dora4_analytics
checking dora4_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking dora4_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
epic_colors
checking epic_colors availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking epic_colors only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
enterprise_templates
when checking enterprise_templates only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
environment_alerts
checking environment_alerts availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking environment_alerts only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
evaluate_group_level_compliance_pipeline
checking evaluate_group_level_compliance_pipeline availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking evaluate_group_level_compliance_pipeline only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
explain_code
checking explain_code availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking explain_code only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
external_audit_events
checking external_audit_events availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking external_audit_events only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
experimental_features
checking experimental_features availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking experimental_features only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
generate_description
checking generate_description availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking generate_description only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
generate_commit_message
checking generate_commit_message availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking generate_commit_message only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
generate_test_file
checking generate_test_file availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking generate_test_file only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ai_generate_cube_query
checking ai_generate_cube_query availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ai_generate_cube_query only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
git_abuse_rate_limit
when checking git_abuse_rate_limit only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_ci_cd_analytics
checking group_ci_cd_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_ci_cd_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_level_compliance_adherence_report
checking group_level_compliance_adherence_report availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_level_compliance_adherence_report only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_level_compliance_violations_report
checking group_level_compliance_violations_report availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_level_compliance_violations_report only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_level_analytics_dashboard
checking group_level_analytics_dashboard availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_level_analytics_dashboard only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
incident_management
checking incident_management availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking incident_management only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
inline_codequality
checking inline_codequality availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking inline_codequality only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
insights
checking insights availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking insights only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
issuable_health_status
checking issuable_health_status availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking issuable_health_status only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
issues_completed_analytics
checking issues_completed_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking issues_completed_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
jira_vulnerabilities_integration
checking jira_vulnerabilities_integration availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking jira_vulnerabilities_integration only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
jira_issue_association_enforcement
checking jira_issue_association_enforcement availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking jira_issue_association_enforcement only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
kubernetes_cluster_vulnerabilities
checking kubernetes_cluster_vulnerabilities availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking kubernetes_cluster_vulnerabilities only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
license_scanning
checking license_scanning availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking license_scanning only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
okrs
checking okrs availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
# [RSpecRunTime] RSpec elapsed time: 5 minutes 34.15 seconds. Current RSS: ~1337M. Threads: 4. load average: 1.08 1.14 1.05 1/401 542
.
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking okrs only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
personal_access_token_expiration_policy
checking personal_access_token_expiration_policy availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking personal_access_token_expiration_policy only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
pre_receive_secret_detection
checking pre_receive_secret_detection availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking pre_receive_secret_detection only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
product_analytics
checking product_analytics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking product_analytics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
project_quality_summary
checking project_quality_summary availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking project_quality_summary only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
project_level_analytics_dashboard
checking project_level_analytics_dashboard availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking project_level_analytics_dashboard only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
quality_management
checking quality_management availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking quality_management only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
related_epics
checking related_epics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking related_epics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
release_evidence_test_artifacts
checking release_evidence_test_artifacts availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking release_evidence_test_artifacts only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
report_approver_rules
checking report_approver_rules availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking report_approver_rules only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
required_ci_templates
when checking required_ci_templates only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
requirements
checking requirements availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking requirements only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
runner_maintenance_note
when checking runner_maintenance_note only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
runner_performance_insights
when checking runner_performance_insights only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
runner_performance_insights_for_namespace
checking runner_performance_insights_for_namespace availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking runner_performance_insights_for_namespace only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
runner_upgrade_management
when checking runner_upgrade_management only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
runner_upgrade_management_for_namespace
checking runner_upgrade_management_for_namespace availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking runner_upgrade_management_for_namespace only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
sast
checking sast availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking sast only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
sast_advanced
checking sast_advanced availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking sast_advanced only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
sast_iac
checking sast_iac availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking sast_iac only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
sast_custom_rulesets
checking sast_custom_rulesets availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking sast_custom_rulesets only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
sast_fp_reduction
checking sast_fp_reduction availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking sast_fp_reduction only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
secret_detection
checking secret_detection availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking secret_detection only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
security_configuration_in_ui
checking security_configuration_in_ui availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking security_configuration_in_ui only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
security_dashboard
checking security_dashboard availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking security_dashboard only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
security_on_demand_scans
checking security_on_demand_scans availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking security_on_demand_scans only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
security_orchestration_policies
checking security_orchestration_policies availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking security_orchestration_policies only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
security_training
checking security_training availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking security_training only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
ssh_key_expiration_policy
checking ssh_key_expiration_policy availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking ssh_key_expiration_policy only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
summarize_mr_changes
checking summarize_mr_changes availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking summarize_mr_changes only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
summarize_my_mr_code_review
checking summarize_my_mr_code_review availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking summarize_my_mr_code_review only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
summarize_new_merge_request
checking summarize_new_merge_request availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking summarize_new_merge_request only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
summarize_comments
checking summarize_comments availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking summarize_comments only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
stale_runner_cleanup_for_namespace
checking stale_runner_cleanup_for_namespace availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking stale_runner_cleanup_for_namespace only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
status_page
checking status_page availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking status_page only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
suggested_reviewers
checking suggested_reviewers availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking suggested_reviewers only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
subepics
checking subepics availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking subepics only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
observability
checking observability availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking observability only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
troubleshoot_job
checking troubleshoot_job availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking troubleshoot_job only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
unique_project_download_limit
checking unique_project_download_limit availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking unique_project_download_limit only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
vulnerability_finding_signatures
checking vulnerability_finding_signatures availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking vulnerability_finding_signatures only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
container_scanning_for_registry
checking container_scanning_for_registry availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking container_scanning_for_registry only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
security_exclusions
checking security_exclusions availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking security_exclusions only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
security_scans_api
checking security_scans_api availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking security_scans_api only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
coverage_fuzzing
checking coverage_fuzzing availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking coverage_fuzzing only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
devops_adoption
checking devops_adoption availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking devops_adoption only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
group_level_devops_adoption
checking group_level_devops_adoption availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking group_level_devops_adoption only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
instance_level_devops_adoption
checking instance_level_devops_adoption availability both on Global and Namespace license
allowed by Plan License AND Global License
returns true
not allowed by Plan License but project and namespace are public
returns true
not allowed by Plan License
returns false
not allowed by Global License
returns false
when checking instance_level_devops_adoption only for Global license
allowed by Global License
returns true
not allowed by Global License
returns false
when feature symbol is not included on Namespace features code
checks availability of licensed feature
legacy open-source license
public projects
gitlab_dot_com?: true, legacy_open_source_license_available_ff: true, ultimate_features: true
offers ultimate features
gitlab_dot_com?: true, legacy_open_source_license_available_ff: false, ultimate_features: false
offers ultimate features
gitlab_dot_com?: false, legacy_open_source_license_available_ff: true, ultimate_features: true
offers ultimate features
gitlab_dot_com?: false, legacy_open_source_license_available_ff: false, ultimate_features: true
offers ultimate features
#fetch_mirror
import_url: "http://foo:bar@example.com", auth_method: "password", expected: "http://foo:bar@example.com"
is expected to receive fetch_upstream("http://foo:bar@example.com", {:check_tags_changed=>false, :forced=>false}) 1 time
import_url: "ssh://foo:bar@example.com", auth_method: "password", expected: "ssh://foo:bar@example.com"
is expected to receive fetch_upstream("ssh://foo:bar@example.com", {:check_tags_changed=>false, :forced=>false}) 1 time
import_url: "ssh://foo:bar@example.com", auth_method: "ssh_public_key", expected: "ssh://foo@example.com"
is expected to receive fetch_upstream("ssh://foo@example.com", {:check_tags_changed=>false, :forced=>false}) 1 time
updating import_url
removes previous remote
# [RSpecRunTime] RSpec elapsed time: 6 minutes 25.83 seconds. Current RSS: ~1359M. Threads: 4. load average: 1.19 1.15 1.06 1/401 573
.
#any_online_runners?
is expected to be truthy
with used compute minutes
does not have any online runners
# [RSpecRunTime] RSpec elapsed time: 6 minutes 27.83 seconds. Current RSS: ~1357M. Threads: 4. load average: 1.19 1.15 1.06 1/401 574
.
#shared_runners_available?
with used compute minutes
shared runners are not available
without used compute minutes
shared runners are not available
#root_namespace
when namespace has parent group
returns root ancestor
when namespace is root ancestor
returns current namespace
#shared_runners_limit_namespace
returns root namespace
#shared_runners_minutes_limit_enabled?
with shared runners enabled
for public project
is expected to be truthy
for internal project
is expected to be truthy
for private project
is expected to be truthy
without shared runners
is expected to be falsey
#approvals_before_merge
license_value: true, db_value: 5, expected: 5
is expected to eq 5
license_value: true, db_value: 0, expected: 0
is expected to eq 0
license_value: false, db_value: 5, expected: 0
is expected to eq 0
license_value: false, db_value: 0, expected: 0
is expected to eq 0
#reset_approvals_on_push?
returns false when the resolver returns true
returns true when the resolver returns false
# [RSpecRunTime] RSpec elapsed time: 6 minutes 36.14 seconds. Current RSS: ~1325M. Threads: 4. load average: 1.16 1.15 1.06 1/401 575
.
#approvals_before_merge
license_value: true, db_value: 5, expected: 5
is expected to eq 5
license_value: true, db_value: 0, expected: 0
is expected to eq 0
license_value: false, db_value: 5, expected: 0
is expected to eq 0
license_value: false, db_value: 0, expected: 0
is expected to eq 0
#visible_user_defined_rules
returns all approval rules
when multiple approval rules is not available
returns the first approval rule
# [RSpecRunTime] RSpec elapsed time: 6 minutes 38.39 seconds. Current RSS: ~1319M. Threads: 4. load average: 1.16 1.15 1.06 1/401 576
.
when branch is provided
caches the rules
#visible_user_defined_inapplicable_rules
when multiple approval rules is available
when rules are scoped
returns rules that are not applicable to target_branch
when rules are not scoped
returns empty array
when multiple approval rules is not available
returns empty array
#min_fallback_approvals
returns the maximum requirement
returns the first rule requirement if there is a rule
# [RSpecRunTime] RSpec elapsed time: 6 minutes 41.82 seconds. Current RSS: ~1305M. Threads: 4. load average: 1.15 1.14 1.06 1/401 577
.
#merge_requests_require_code_owner_approval?
feature_available: true, feature_enabled: true, approval_required: true
requires code owner approval when needed
feature_available: false, feature_enabled: true, approval_required: false
requires code owner approval when needed
feature_available: true, feature_enabled: false, approval_required: false
requires code owner approval when needed
#branch_requires_code_owner_approval?
when feature is enabled
returns true when code owner approval is required
returns false when code owner approval is not required
# [RSpecRunTime] RSpec elapsed time: 6 minutes 44.62 seconds. Current RSS: ~1304M. Threads: 4. load average: 1.14 1.14 1.06 1/401 578
.
when feature is not enabled
returns true when code owner approval is required
returns false when code owner approval is not required
# [RSpecRunTime] RSpec elapsed time: 6 minutes 46.24 seconds. Current RSS: ~1298M. Threads: 4. load average: 1.14 1.14 1.06 1/401 579
.
#disabled_integrations
github
license_feature: :github_integration, disabled_integrations: ["github"]
when feature is available
is expected not to include "github"
when feature is unavailable
is expected to include "github"
artifact registry
is expected not to include "google_cloud_platform_artifact_registry"
when google artifact registry feature is unavailable
is expected to include "google_cloud_platform_artifact_registry"
workload identity federation
is expected to include "google_cloud_platform_workload_identity_federation"
when google artifact registry feature is available
is expected not to include "google_cloud_platform_workload_identity_federation"
#pull_mirror_available?
when mirror global setting is enabled
returns true
when mirror global setting is disabled
returns true when overridden
returns false when not overridden
# [RSpecRunTime] RSpec elapsed time: 6 minutes 49.36 seconds. Current RSS: ~1311M. Threads: 4. load average: 1.13 1.14 1.06 1/401 580
.
#username_only_import_url
import_url: "", username: "foo", expected_import_url: ""
is expected to eq ""
import_url: "", username: "", expected_import_url: ""
is expected to eq ""
import_url: "", username: nil, expected_import_url: ""
is expected to eq ""
import_url: nil, username: "foo", expected_import_url: nil
is expected to eq nil
import_url: nil, username: "", expected_import_url: nil
is expected to eq nil
import_url: nil, username: nil, expected_import_url: nil
is expected to eq nil
import_url: "http://example.com", username: "foo", expected_import_url: "http://foo@example.com"
is expected to eq "http://foo@example.com"
import_url: "http://example.com", username: "", expected_import_url: "http://example.com"
is expected to eq "http://example.com"
import_url: "http://example.com", username: nil, expected_import_url: "http://example.com"
is expected to eq "http://example.com"
#username_only_import_url=
sets the import url and username
does not unset the password
clears the username if passed the empty string
#build_or_assign_import_data
with credentials
merges the credentials into the ProjectImportData record
#licensed_features
when the namespace should be checked
when bronze
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
filters for bronze features
# [RSpecRunTime] RSpec elapsed time: 6 minutes 53.46 seconds. Current RSS: ~1343M. Threads: 4. load average: 1.13 1.14 1.06 1/401 581
.
when premium
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
filters for premium features
# [RSpecRunTime] RSpec elapsed time: 6 minutes 56.48 seconds. Current RSS: ~1337M. Threads: 4. load average: 1.12 1.14 1.06 1/401 582
.
when ultimate
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
filters for ultimate features
# [RSpecRunTime] RSpec elapsed time: 6 minutes 58.31 seconds. Current RSS: ~1325M. Threads: 4. load average: 1.12 1.14 1.06 1/401 583
.
when free plan
filters out paid features
when public project and namespace
includes all features in global license
# [RSpecRunTime] RSpec elapsed time: 7 minutes 1.78 seconds. Current RSS: ~1337M. Threads: 4. load average: 1.11 1.14 1.06 1/402 584
.
when service ping features are disabled
doesn't include coverage_fuzzing
# [RSpecRunTime] RSpec elapsed time: 7 minutes 3.58 seconds. Current RSS: ~1345M. Threads: 4. load average: 1.11 1.14 1.06 1/402 585
.
when service ping features are enabled
includes coverage_fuzzing
# [RSpecRunTime] RSpec elapsed time: 7 minutes 5.44 seconds. Current RSS: ~1351M. Threads: 4. load average: 1.10 1.13 1.06 1/402 586
.
when namespace should not be checked
includes all features in global license
when there is no license
is expected to be empty
#find_path_lock
returns path_lock
returns nil
# [RSpecRunTime] RSpec elapsed time: 7 minutes 8.87 seconds. Current RSS: ~1348M. Threads: 4. load average: 1.10 1.13 1.06 1/402 587
.
#any_path_locks?
returns false when there are no path locks
returns a cached true when there are path locks
# [RSpecRunTime] RSpec elapsed time: 7 minutes 10.66 seconds. Current RSS: ~1346M. Threads: 4. load average: 1.25 1.16 1.07 1/402 588
.
#has_dependencies?
returns false when project does not have dependencies
returns true when project does have dependencies
# [RSpecRunTime] RSpec elapsed time: 7 minutes 13.01 seconds. Current RSS: ~1332M. Threads: 4. load average: 1.25 1.16 1.07 1/402 589
.
#latest_ingested_security_pipeline
Job arguments to FlushCounterIncrementsWorker must be native JSON types, but :build_artifacts_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is expected to eq #<Ci::Pipeline ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil, creat...cts_locked", partition_id: 102, id: 5, auto_canceled_by_id: nil, auto_canceled_by_partition_id: nil>
# [RSpecRunTime] RSpec elapsed time: 7 minutes 14.01 seconds. Current RSS: ~1318M. Threads: 4. load average: 1.23 1.16 1.07 1/402 590
.
#latest_ingested_sbom_pipeline
when there is no record on Redis
is expected to be nil
when there is a record on Redis
is expected to eq #<Ci::Pipeline ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil, creat...cts_locked", partition_id: 102, id: 8, auto_canceled_by_id: nil, auto_canceled_by_partition_id: nil>
#latest_pipeline_with_reports_for_ref
when pipeline ref is non-default branch
Job arguments to FlushCounterIncrementsWorker must be native JSON types, but :build_artifacts_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
when reports are found
returns the latest pipeline with reports of right type
and one of the pipelines has not yet completed
returns the latest successful pipeline with reports
# [RSpecRunTime] RSpec elapsed time: 7 minutes 16.55 seconds. Current RSS: ~1320M. Threads: 4. load average: 1.23 1.16 1.07 1/402 591
.
when reports are not found
returns nothing
#security_reports_up_to_date_for_ref?
Job arguments to FlushCounterIncrementsWorker must be native JSON types, but :build_artifacts_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
when the target branch security reports are up to date
is expected to equal true
# [RSpecRunTime] RSpec elapsed time: 7 minutes 18.31 seconds. Current RSS: ~1327M. Threads: 4. load average: 1.23 1.16 1.07 1/405 657
.
when the target branch security reports are out of date
is expected to equal false
#after_import
elasticsearch indexing
elasticsearch indexing disabled for this project
Job arguments to ProjectCacheWorker must be native JSON types, but :repository_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
does not index the wiki repository
elasticsearch indexing enabled for this project
schedules a full index of the wiki repository using ElasticWikiIndexerWorker
when project is forked
does not index the wiki repository
#use_zoekt?
delegates to ::Search::Zoekt.index?
#lfs_http_url_to_repo
with a Geo setup that is a primary
for an upload operation
returns the project HTTP URL for the primary
# [RSpecRunTime] RSpec elapsed time: 7 minutes 21.29 seconds. Current RSS: ~1336M. Threads: 4. load average: 1.21 1.16 1.06 1/405 660
.
with a Geo setup that is a secondary
and has a primary
for an upload operation
returns the project HTTP URL for the primary
# [RSpecRunTime] RSpec elapsed time: 7 minutes 22.36 seconds. Current RSS: ~1330M. Threads: 4. load average: 1.21 1.16 1.06 1/405 661
.
for a download operation
returns the project HTTP URL for the secondary
# [RSpecRunTime] RSpec elapsed time: 7 minutes 23.48 seconds. Current RSS: ~1324M. Threads: 4. load average: 1.21 1.16 1.06 1/405 662
.
without a primary
returns the project HTTP URL for the secondary
# [RSpecRunTime] RSpec elapsed time: 7 minutes 24.55 seconds. Current RSS: ~1325M. Threads: 4. load average: 1.19 1.16 1.06 1/405 663
.
without a Geo setup
returns the project HTTP URL for the main node
#add_import_job
when import_type is gitlab_custom_project_template
when repository does not exist
does not create import job
when mirroring is enabled
does not create import job
# [RSpecRunTime] RSpec elapsed time: 7 minutes 26.46 seconds. Current RSS: ~1327M. Threads: 4. load average: 1.19 1.16 1.06 1/405 664
.
when repository exists
does not create import job
when mirroring is enabled
schedules an import job
# [RSpecRunTime] RSpec elapsed time: 7 minutes 27.58 seconds. Current RSS: ~1328M. Threads: 4. load average: 1.19 1.16 1.06 1/405 665
.
when mirror true on a jira imported project
when jira import is in progress
triggers mirror update
# [RSpecRunTime] RSpec elapsed time: 7 minutes 29.4 seconds. Current RSS: ~1324M. Threads: 4. load average: 1.18 1.15 1.06 1/403 696
.
#gitlab_custom_project_template_import?
when licensed
returns true
when unlicensed
returns false
#feature_flags_client_token
when there is no access token
creates a new one
when there is access token
provides an existing one
# [RSpecRunTime] RSpec elapsed time: 7 minutes 33.51 seconds. Current RSS: ~1318M. Threads: 4. load average: 1.18 1.15 1.06 1/403 697
.
#has_pool_repository?
returns false when there is no pool repository
returns true when there is a pool repository
# [RSpecRunTime] RSpec elapsed time: 7 minutes 36.61 seconds. Current RSS: ~1311M. Threads: 4. load average: 1.16 1.15 1.06 1/403 782
.
#link_pool_repository
logs geo event
# [RSpecRunTime] RSpec elapsed time: 7 minutes 37.9 seconds. Current RSS: ~1312M. Threads: 4. load average: 1.16 1.15 1.06 1/404 814
.
#elastic_namespace_ancestry
is a combination of the namespace and project id
#object_pool_missing?
returns true when object pool is missing
returns false when pool repository doesnt't exist
returns false when object pool exists
# [RSpecRunTime] RSpec elapsed time: 7 minutes 46.71 seconds. Current RSS: ~1325M. Threads: 4. load average: 1.29 1.18 1.07 1/404 1155
.
#insights_config
when project has no Insights config file
returns the project default config
when the project is inside a group
when the group has no Insights config
returns the group default config
# [RSpecRunTime] RSpec elapsed time: 7 minutes 48.33 seconds. Current RSS: ~1320M. Threads: 4. load average: 1.29 1.18 1.07 2/405 1156
.
when the group has an Insights config from another project
with a valid config file
returns the group config data from the other project
when the project is inside a nested group
returns the project default config
# [RSpecRunTime] RSpec elapsed time: 7 minutes 52.2 seconds. Current RSS: ~1294M. Threads: 4. load average: 1.43 1.21 1.08 1/407 1337
.
with an invalid config file
returns nil
# [RSpecRunTime] RSpec elapsed time: 7 minutes 54.05 seconds. Current RSS: ~1287M. Threads: 4. load average: 1.56 1.24 1.10 1/409 1440
.
when project has an Insights config file
with a valid config file
returns the insights config data
when the project is inside a group having another config
returns the project insights config data
# [RSpecRunTime] RSpec elapsed time: 7 minutes 57.63 seconds. Current RSS: ~1282M. Threads: 4. load average: 1.56 1.24 1.10 1/409 1723
.
with an invalid config file
returns nil
when the project is inside a group having another config
returns nil
# [RSpecRunTime] RSpec elapsed time: 8 minutes 1.19 seconds. Current RSS: ~1281M. Threads: 4. load average: 1.51 1.23 1.09 1/409 2006
.
#kerberos_url_to_repo
returns valid kerberos url for this repo
#actual_repository_size_limit
when repository_size_limit is set on the project
returns the repository_size_limit
when repository_size_limit is not set on the project
returns the actual_repository_size_limit of the namespace
#repository_size_checker
#current_size
returns the total repository and lfs size
#limit
returns the value set in the namespace when available
returns the value set locally when available
#enabled?
returns true when not equal to zero
returns false when equals to zero
when repository_size_limit is configured
when license feature enabled
size limit is enabled
when license feature disabled
size limit is disabled
when usage ping is enabled
when usage_ping_features is activated
size limit is enabled
when usage_ping_features is disabled
size limit is disabled
when usage ping is disabled
size limit is disabled
#repository_size_excess
total_repository_size: 50, size_limit: nil, result: 0
is expected to eq 0
total_repository_size: 50, size_limit: 0, result: 0
is expected to eq 0
total_repository_size: 50, size_limit: 60, result: 0
is expected to eq 0
total_repository_size: 50, size_limit: 50, result: 0
is expected to eq 0
total_repository_size: 50, size_limit: 10, result: 40
is expected to eq 40
#repository_size_limit column
support values up to 8 exabytes
handling import URL
when project is a mirror
returns the full URL
# [RSpecRunTime] RSpec elapsed time: 8 minutes 8.0 seconds. Current RSS: ~1323M. Threads: 4. load average: 1.47 1.23 1.09 1/409 2007
.
project is inside a fork network
the project is the root of the fork network
is expected to be valid
# [RSpecRunTime] RSpec elapsed time: 8 minutes 9.65 seconds. Current RSS: ~1321M. Threads: 4. load average: 1.43 1.23 1.09 1/408 2008
.
the URL is inside the fork network
is expected to be valid
# [RSpecRunTime] RSpec elapsed time: 8 minutes 11.22 seconds. Current RSS: ~1318M. Threads: 4. load average: 1.43 1.23 1.09 1/406 2009
.
the URL is external but the project exists
raises an error
# [RSpecRunTime] RSpec elapsed time: 8 minutes 12.89 seconds. Current RSS: ~1307M. Threads: 4. load average: 1.43 1.23 1.09 1/404 2010
.
the URL is not inside the fork network
raises an error
# [RSpecRunTime] RSpec elapsed time: 8 minutes 14.47 seconds. Current RSS: ~1299M. Threads: 4. load average: 1.40 1.22 1.09 1/404 2011
.
#add_import_job
forked
without mirror
returns nil
# [RSpecRunTime] RSpec elapsed time: 8 minutes 17.91 seconds. Current RSS: ~1294M. Threads: 4. load average: 1.40 1.22 1.09 1/404 2042
.
with mirror
schedules RepositoryUpdateMirrorWorker
# [RSpecRunTime] RSpec elapsed time: 8 minutes 21.89 seconds. Current RSS: ~1293M. Threads: 4. load average: 1.37 1.22 1.09 1/404 2103
.
.where_full_path_in
without any paths
returns an empty relation
without any valid paths
returns an empty relation
with valid paths
returns the projects matching the paths
returns projects regardless of the casing of paths
# [RSpecRunTime] RSpec elapsed time: 8 minutes 24.71 seconds. Current RSS: ~1298M. Threads: 4. load average: 1.42 1.23 1.10 1/404 2104
.
#approver_group_ids=
create approver_groups
# [RSpecRunTime] RSpec elapsed time: 8 minutes 26.03 seconds. Current RSS: ~1296M. Threads: 4. load average: 1.42 1.23 1.10 1/404 2105
.
#create_import_state
is called after save
#allowed_to_share_with_group?
for group related project
with lock_memberships_to_ldap application setting enabled
is expected not to be allowed to share with group
with lock_memberships_to_saml group setting enabled
with lock for ldap membership disabled
is expected not to be allowed to share with group
with lock for ldap membership enabled
is expected not to be allowed to share with group
with lock_memberships_to_saml group setting disabled
with lock for ldap membership disabled
is expected to be allowed to share with group
with lock for ldap membership enabled
is expected not to be allowed to share with group
personal project
with lock_memberships_to_ldap application setting enabled
is expected to be allowed to share with group
#self_or_ancestor_marked_for_deletion
delayed deletion feature is not available
the parent namespace has been marked for deletion
returns nil
the project has been marked for deletion
returns nil
delayed deletion feature is available
the parent namespace has been marked for deletion
returns the parent namespace
project or its parent group has not been marked for deletion
returns nil
the project has been marked for deletion
returns the project
ordering when project is not marked for deletion
returns the first group that is marked for deletion, up its ancestry chain
ordering when project is marked for deletion
returns the project itself rather than the ancestory chain
#adjourned_deletion?
licensed?: true, adjourned_period: 0, result: false
is expected to equal false
licensed?: true, adjourned_period: 1, result: true
is expected to equal true
licensed?: false, adjourned_period: 0, result: false
is expected to equal false
licensed?: false, adjourned_period: 1, result: false
is expected to equal false
when project belongs to user namespace
deletes immediately
#adjourned_deletion_configured?
adjourned_period: 0, result: false
is expected to equal false
adjourned_period: 1, result: true
is expected to equal true
when project belongs to user namespace
deletes immediately
# [RSpecRunTime] RSpec elapsed time: 8 minutes 38.44 seconds. Current RSS: ~1300M. Threads: 4. load average: 1.35 1.22 1.09 1/404 2106
.
#permanent_deletion_date
returns the sum of the date passed as argument and the deletion_adjourned_period set in application setting
calculate template repositories
counts instance level templates
counts group level templates
# [RSpecRunTime] RSpec elapsed time: 8 minutes 49.58 seconds. Current RSS: ~1271M. Threads: 4. load average: 1.42 1.24 1.10 2/406 2107
.
#license_compliance
is expected to be an instance of SCA::LicenseCompliance
#template_source?
when project is not template source
returns false
# [RSpecRunTime] RSpec elapsed time: 8 minutes 51.19 seconds. Current RSS: ~1275M. Threads: 4. load average: 1.42 1.24 1.10 1/405 2108
.
instance-level custom project templates
returns true
group-level custom project templates
returns true
#remove_import_data
when mirror
does not remove import data
# [RSpecRunTime] RSpec elapsed time: 8 minutes 52.83 seconds. Current RSS: ~1293M. Threads: 4. load average: 1.42 1.24 1.10 1/405 2109
.
#add_template_export_job
starts project template export job
#prevent_merge_without_jira_issue?
feature_available: true, prevent_merge: true, result: true
is expected to equal true
feature_available: true, prevent_merge: false, result: false
is expected to equal false
feature_available: false, prevent_merge: true, result: false
is expected to equal false
feature_available: false, prevent_merge: false, result: false
is expected to equal false
indexing updates in Elasticsearch
on update
when updating the visibility_level
triggers ElasticAssociationIndexerWorker to update issues, merge_requests and notes
ensures all visibility_level updates are correctly applied in issue searches
ensures all visibility_level updates are correctly applied in merge_request searches
# [RSpecRunTime] RSpec elapsed time: 9 minutes 16.05 seconds. Current RSS: ~1271M. Threads: 5. load average: 1.80 1.35 1.14 1/420 2112
.
when changing the title
does not trigger ElasticAssociationIndexerWorker to update issues
# [RSpecRunTime] RSpec elapsed time: 9 minutes 17.49 seconds. Current RSS: ~1274M. Threads: 5. load average: 1.80 1.35 1.14 1/420 2113
.
# [RSpecRunTime] RSpec elapsed time: 9 minutes 18.58 seconds. Current RSS: ~1273M. Threads: 5. load average: 1.80 1.35 1.14 1/420 2114
.
#available_shared_runners
when compute minutes are available for project
returns a list of shared runners
when out of compute minutes for project
returns a empty list
#all_available_runners
when compute minutes are available for project
returns a list with all runners
when out of compute minutes for project
returns a list with non-instance runners
#upstream_projects
returns the upstream projects
# [RSpecRunTime] RSpec elapsed time: 9 minutes 21.36 seconds. Current RSS: ~1290M. Threads: 5. load average: 1.66 1.33 1.14 1/420 2115
.
#upstream_projects_count
returns the upstream projects count
# [RSpecRunTime] RSpec elapsed time: 9 minutes 23.62 seconds. Current RSS: ~1291M. Threads: 5. load average: 1.66 1.33 1.14 1/420 2116
.
#downstream_projects_count
returns the downstream projects count
# [RSpecRunTime] RSpec elapsed time: 9 minutes 25.88 seconds. Current RSS: ~1289M. Threads: 5. load average: 1.61 1.32 1.13 1/420 2117
.
#ci_cancellation_restriction
returns the initialized cancellation restriction object
#visible_approval_rules
is expected not to include #<ApprovalProjectRule id: 26, created_at: "2024-09-20 15:46:36.061960970 +0000", updated_at: "2024-09...rchestration_policy_configuration_id: nil, scan_result_policy_id: nil, approval_policy_rule_id: nil>, #<ApprovalProjectRule id: 27, created_at: "2024-09-20 15:46:36.076899269 +0000", updated_at: "2024-09...rchestration_policy_configuration_id: nil, scan_result_policy_id: nil, approval_policy_rule_id: nil>, and #<ApprovalProjectRule id: 28, created_at: "2024-09-20 15:46:36.092057148 +0000", updated_at: "2024-09...rchestration_policy_configuration_id: nil, scan_result_policy_id: nil, approval_policy_rule_id: nil>
#affected_by_security_policy_management_project?
is expected to equal false
when security orchestration policy is configured for project
is expected to equal true
with other security policy management project
is expected to equal false
# [RSpecRunTime] RSpec elapsed time: 9 minutes 30.7 seconds. Current RSS: ~1301M. Threads: 5. load average: 1.56 1.32 1.13 1/421 2178
.
when security orchestration policy is configured for a parent namespace
is expected to equal true
with other security policy management project
is expected to equal false
when security orchestration policy is configured for another project
is expected to equal false
# [RSpecRunTime] RSpec elapsed time: 9 minutes 34.01 seconds. Current RSS: ~1305M. Threads: 5. load average: 1.51 1.31 1.13 1/421 2179
.
#all_security_orchestration_policy_configurations
when security orchestration policy is configured for project only
when configuration is invalid
is expected to be empty
when including invalid configurations
is expected to contain exactly #<Security::OrchestrationPolicyConfiguration id: 6, project_id: 346, security_policy_management_proje...48 +0000", updated_at: "2024-09-20 15:46:45.306510748 +0000", configured_at: nil, namespace_id: nil>
# [RSpecRunTime] RSpec elapsed time: 9 minutes 36.61 seconds. Current RSS: ~1298M. Threads: 5. load average: 1.51 1.31 1.13 1/421 2180
.
when configuration is valid
is expected to contain exactly #<Security::OrchestrationPolicyConfiguration id: 7, project_id: 348, security_policy_management_proje...73 +0000", updated_at: "2024-09-20 15:46:46.780217873 +0000", configured_at: nil, namespace_id: nil>
# [RSpecRunTime] RSpec elapsed time: 9 minutes 38.09 seconds. Current RSS: ~1295M. Threads: 5. load average: 1.51 1.31 1.13 1/421 2181
.
when security orchestration policy is configured for namespaces and project
when configuration is invalid
returns security policy configurations for all valid parent groups and project
# [RSpecRunTime] RSpec elapsed time: 9 minutes 41.75 seconds. Current RSS: ~1280M. Threads: 5. load average: 1.55 1.32 1.14 1/421 2182
.
when configuration is valid
returns security policy configurations for all valid parent groups and project
# [RSpecRunTime] RSpec elapsed time: 9 minutes 45.47 seconds. Current RSS: ~1274M. Threads: 5. load average: 1.59 1.34 1.14 1/421 2183
.
#all_inherited_security_orchestration_policy_configurations
when configuration is invalid
returns security policy configurations for all valid parent groups and project
# [RSpecRunTime] RSpec elapsed time: 9 minutes 49.63 seconds. Current RSS: ~1265M. Threads: 5. load average: 1.54 1.33 1.14 1/422 2184
.
when configuration is valid
returns security policy configurations for all valid parent groups only
#inactive?
when Gitlab.com
when project belongs to paid namespace
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
returns false
when project belongs to free namespace
behaves like returns true if project is inactive
storage_size: 1048576, last_activity_at: Tue, 20 Aug 2024 15:37:04.606874676 UTC +00:00, expected_result: false
returns expected result
storage_size: 1048576, last_activity_at: Mon, 20 Sep 2021 15:37:04.607437436 UTC +00:00, expected_result: false
returns expected result
storage_size: 8388608, last_activity_at: Tue, 20 Aug 2024 15:37:04.607656936 UTC +00:00, expected_result: false
returns expected result
storage_size: 8388608, last_activity_at: Mon, 20 Sep 2021 15:37:04.607873366 UTC +00:00, expected_result: true
returns expected result
when not Gitlab.com
behaves like returns true if project is inactive
storage_size: 1048576, last_activity_at: Tue, 20 Aug 2024 15:37:04.642424093 UTC +00:00, expected_result: false
returns expected result
storage_size: 1048576, last_activity_at: Mon, 20 Sep 2021 15:37:04.642972703 UTC +00:00, expected_result: false
returns expected result
storage_size: 8388608, last_activity_at: Tue, 20 Aug 2024 15:37:04.643274813 UTC +00:00, expected_result: false
returns expected result
storage_size: 8388608, last_activity_at: Mon, 20 Sep 2021 15:37:04.643477433 UTC +00:00, expected_result: true
returns expected result
.inactive
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
returns inactive projects belonging to free namespace
# [RSpecRunTime] RSpec elapsed time: 9 minutes 58.22 seconds. Current RSS: ~1293M. Threads: 5. load average: 1.50 1.32 1.14 1/421 2185
.
#security_training_available?
when check_namespace_plan application setting is true
when plan is not ultimate
is expected to eq false
when plan is ultimate
when security_training feature is not available
is expected to eq false
when security_training feature is available
is expected to eq true
when check_namespace_plan application setting is false
when security_training feature is not available
is expected to eq false
when security_training feature is available
is expected to eq true
#epic_ids_referenced_by_issues
returns epic ids referenced by issues in this project
# [RSpecRunTime] RSpec elapsed time: 10 minutes 2.25 seconds. Current RSS: ~1299M. Threads: 5. load average: 1.46 1.32 1.14 1/421 2186
.
#suggested_reviewers_available?
on Gitlab.com
when licensed features are available
is expected to eq true
when licensed features are unavailable
is expected to eq false
on self managed
when licensed features are available
is expected to eq false
#can_suggest_reviewers?
when available
when enabled
is expected to eq true
when not enabled
is expected to eq false
when not available
when enabled
is expected to eq false
#any_external_status_checks_not_passed?
when no external status checks are present
is expected to be falsey
when merge request branch is applicable
when all external status checks have passed
is expected to be falsey
# [RSpecRunTime] RSpec elapsed time: 10 minutes 8.56 seconds. Current RSS: ~1304M. Threads: 5. load average: 1.58 1.35 1.15 1/421 2187
.
when not all external status checks have passed
is expected to be truthy
# [RSpecRunTime] RSpec elapsed time: 10 minutes 9.8 seconds. Current RSS: ~1300M. Threads: 5. load average: 1.53 1.34 1.15 1/421 2188
.
when merge request branch is non applicable
is expected to be falsey
# [RSpecRunTime] RSpec elapsed time: 10 minutes 12.9 seconds. Current RSS: ~1299M. Threads: 5. load average: 1.53 1.34 1.15 1/421 2189
.
.cascading_with_parent_namespace
when calling .cascading_with_parent_namespace
create three instance methods for attribute
three configurations of MR checks
behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?
group_attr: true, subgroup_attr: true, project_attr: true, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: true, project_locked?: true
returns correct value
group_attr: true, subgroup_attr: true, project_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: true, subgroup_attr: false, project_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: false, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: true, project_attr: true, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, project_with_inherit_attr?: true, project_without_inherit_attr?: true, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: true, project_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: false, project_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: false, subgroup_without_inherit_attr?: false, subgroup_locked?: false, project_with_inherit_attr?: false, project_without_inherit_attr?: false, project_locked?: false
returns correct value
behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?
group_attr: true, subgroup_attr: true, project_attr: true, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: true, project_locked?: true
returns correct value
group_attr: true, subgroup_attr: true, project_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: true, subgroup_attr: false, project_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: false, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: true, project_attr: true, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, project_with_inherit_attr?: true, project_without_inherit_attr?: true, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: true, project_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: false, project_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: false, subgroup_without_inherit_attr?: false, subgroup_locked?: false, project_with_inherit_attr?: false, project_without_inherit_attr?: false, project_locked?: false
returns correct value
behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?
group_attr: true, subgroup_attr: true, project_attr: true, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: true, project_locked?: true
returns correct value
group_attr: true, subgroup_attr: true, project_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: true, subgroup_attr: false, project_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: false, subgroup_locked?: true, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: true, project_attr: true, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, project_with_inherit_attr?: true, project_without_inherit_attr?: true, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: true, project_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, project_with_inherit_attr?: true, project_without_inherit_attr?: false, project_locked?: true
returns correct value
group_attr: false, subgroup_attr: false, project_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: false, subgroup_without_inherit_attr?: false, subgroup_locked?: false, project_with_inherit_attr?: false, project_without_inherit_attr?: false, project_locked?: false
returns correct value
#only_allow_merge_if_pipeline_succeeds?
when project is not a security policy project
returns true
when project is a security policy project
returns false
# [RSpecRunTime] RSpec elapsed time: 10 minutes 21.02 seconds. Current RSS: ~1330M. Threads: 5. load average: 1.53 1.35 1.15 1/420 2190
.
#okrs_mvc_feature_flag_enabled?
returns true if feature_flag is enabled
returns false if feature_flag is disabled
#okr_automatic_rollups_enabled?
returns true if feature_flag is enabled
returns false if feature_flag is disabled
#member_usernames_among
returns project members' usernames among the users
returns empty array if users is empty
# [RSpecRunTime] RSpec elapsed time: 10 minutes 23.83 seconds. Current RSS: ~1330M. Threads: 5. load average: 1.53 1.35 1.15 1/420 2191
.
#custom_roles_enabled?
project belongs to group
root ancestor has custom roles enabled
returns true
root ancestor does not have custom roles enabled
returns false
project belongs to user
returns false
#mirror_branches_setting
mirror all branches
mirror protected branches
mirror branches match regex
#merge_train_for
with merge_trains_enabled
is expected to be a kind of MergeTrains::Train
with merge_trains disabled
is expected to eq nil
deprecated requirements_enabled attribute
delegates the attribute to project feature
sets the default value
.replicables_for_current_secondary
returns projects
# [RSpecRunTime] RSpec elapsed time: 10 minutes 28.79 seconds. Current RSS: ~1326M. Threads: 5. load average: 1.48 1.34 1.15 1/420 2192
.
on a primary node
.with_verification_state
returns records with given scope
.checksummed
returns records with given scope
.not_checksummed
returns records with given scope
#save_verification_details
when model record is not part of verifiables scope
does not create verification details (PENDING: Skipping because all Project Repositories are records that can be checksummed)
when model_record is part of verifiables scope
creates verification details
#verification_pending_batch
logs the verification state transition
#verification_failed_batch
logs the verification state transition
#fail_verification_timeouts
logs the verification state transition
when Geo is disabled
#save_verification_details
when model_record is part of verifiables scope
doesn't create verification details
# [RSpecRunTime] RSpec elapsed time: 10 minutes 35.08 seconds. Current RSS: ~1316M. Threads: 5. load average: 1.64 1.38 1.17 1/420 2193
.
#security_policy_bot
is expected to be nil
when there is a security_policy_bot
is expected to be nil
when the security_policy_bot is assigned to the project
is expected to eq #<User id:436 @user1434>
# [RSpecRunTime] RSpec elapsed time: 10 minutes 36.21 seconds. Current RSS: ~1313M. Threads: 5. load average: 1.64 1.38 1.17 1/420 2194
.
#product_analytics_events_used
when product analytics is enabled
when project is onboarded with product analytics
when month and year is overridden
queries the ProjectUsageData for the project
# [RSpecRunTime] RSpec elapsed time: 10 minutes 38.12 seconds. Current RSS: ~1318M. Threads: 5. load average: 1.64 1.38 1.17 1/420 2195
.
when using default time period
queries the ProjectUsageData for the project
when project is not onboarded with product analytics
is expected to be nil
when product analytics is not enabled
is expected to be nil
with loose foreign key on projects.marked_for_deletion_by_user_id
behaves like cleanup by a loose foreign key
cleans up (delete or nullify) the model
# [RSpecRunTime] RSpec elapsed time: 10 minutes 43.6 seconds. Current RSS: ~1334M. Threads: 5. load average: 1.59 1.37 1.17 1/420 2196
.
#resource_parent
returns self
#github_external_pull_request_pipelines_available?
when enabled through license
is expected to be truthy
when enabled through usage ping features
is expected to be truthy
without license
is expected to be falsey
#allows_multiple_merge_request_assignees?
when multiple_merge_request_assignees feature is enabled
is expected to eq true
when multiple_merge_request_assignees feature is disabled
is expected to eq false
#allows_multiple_merge_request_reviewers?
when multiple_merge_request_reviewers feature is enabled
is expected to eq true
when multiple_merge_request_reviewers feature is disabled
is expected to eq false
#on_demand_dast_available?
feature_available: false, on_demand_available: false
when feature is disallowed
is expected to eq false
feature_available: true, on_demand_available: true
when feature is allowed
is expected to eq true
#supports_saved_replies?
when feature flag is disabled
is expected to eq false
when license is invalid
is expected to eq false
when license is valid
is expected to eq true
#licensed_ai_features_available?
ai_features: true, ai_chat: true, licensed_ai_features_available: true
is expected to equal true
ai_features: true, ai_chat: false, licensed_ai_features_available: true
is expected to equal true
ai_features: false, ai_chat: true, licensed_ai_features_available: true
is expected to equal true
ai_features: false, ai_chat: false, licensed_ai_features_available: false
is expected to equal false
#path_locks_changed_epoch
returns a cached epoch value in milliseconds
#refresh_path_locks_changed_epoch
refreshes the cache and returns the new epoch value
#mark_as_vulnerable!
marks the project as vulnerable
#compliance_management_frameworks_names
returns names of all compliance frameworks
# [RSpecRunTime] RSpec elapsed time: 10 minutes 54.78 seconds. Current RSS: ~1328M. Threads: 5. load average: 1.46 1.35 1.16 1/420 2197
.
#compliance_framework_ids
is expected to contain exactly 5 and 6
#work_items_rolledup_dates_feature_flag_enabled?
behaves like checks parent group feature flag
when feature flag is disabled globally
is expected to be falsey
when feature flag is enabled globally
is expected to be truthy
when feature flag is enabled for the root group
is expected to be truthy
when feature flag is enabled for the group
is expected to be truthy
#prevent_blocking_non_deployment_jobs?
is expected to eq true
when the prevent_blocking_non_deployment_jobs feature flag is disabled
is expected to eq false
#vulnerability_quota
is expected to be an instance of Vulnerabilities::Quota
# [RSpecRunTime] Finishing example group ee/spec/models/ee/project_spec.rb. It took 10 minutes 50.18 seconds. Expected to take 17 minutes 42.44 seconds.
# [RSpecRunTime] Starting example group ee/spec/policies/global_policy_spec.rb. Expected to take 57.87 seconds.
GlobalPolicy
is expected to be disallowed :read_licenses
is expected to be disallowed :destroy_licenses
is expected to be disallowed :read_all_geo
is expected to be disallowed :read_all_workspaces
is expected to be disallowed :manage_subscription
is expected to be disallowed :read_cloud_connector_status
reading operations dashboard
when licensed
is expected to be allowed :read_operations_dashboard
and the user is not logged in
is expected to be disallowed :read_operations_dashboard
# [RSpecRunTime] RSpec elapsed time: 10 minutes 59.19 seconds. Current RSS: ~1333M. Threads: 5. load average: 1.42 1.35 1.16 1/420 2198
.
when unlicensed
is expected to be disallowed :read_operations_dashboard
access_workspaces_feature ability
anonymous: true, licensed: true, allowed: false
is expected to be disallowed :access_workspace_feature
anonymous: false, licensed: false, allowed: false
is expected to be disallowed :access_workspace_feature
anonymous: true, licensed: false, allowed: false
is expected to be disallowed :access_workspace_feature
anonymous: false, licensed: true, allowed: true
is expected to be allowed :access_workspaces_feature
when anon=false and licensed=true it is allowed
is expected to be allowed :access_workspaces_feature
when admin mode enabled
is expected to be allowed :read_licenses
is expected to be allowed :destroy_licenses
is expected to be allowed :read_all_geo
is expected to be allowed :read_all_workspaces
is expected to be allowed :manage_subscription
is expected to be allowed :read_cloud_connector_status
when admin mode disabled
is expected to be disallowed :read_licenses
is expected to be disallowed :destroy_licenses
is expected to be disallowed :read_all_geo
is expected to be disallowed :read_all_workspaces
is expected to be disallowed :manage_subscription
is expected to be disallowed :read_cloud_connector_status
view_productivity_analytics
anonymous user
is not allowed
authenticated user
is allowed
update_max_pages_size
is expected to be disallowed :update_max_pages_size
when feature is enabled
is expected to be disallowed :update_max_pages_size
when admin mode enabled
is expected to be allowed :update_max_pages_size
when admin mode disabled
is expected to be disallowed :update_max_pages_size
create_group_with_default_branch_protection
for an admin
when the `default_branch_protection_restriction_in_groups` feature is available
when the setting `group_owners_can_manage_default_branch_protection` is enabled
is expected to be allowed :create_group_with_default_branch_protection
when the setting `group_owners_can_manage_default_branch_protection` is disabled
when admin mode is enabled
is expected to be allowed :create_group_with_default_branch_protection
when admin mode is disabled
is expected to be disallowed :create_group_with_default_branch_protection
when the `default_branch_protection_restriction_in_groups` feature is not available
when the setting `group_owners_can_manage_default_branch_protection` is enabled
is expected to be allowed :create_group_with_default_branch_protection
when the setting `group_owners_can_manage_default_branch_protection` is disabled
is expected to be allowed :create_group_with_default_branch_protection
for a normal user
when the `default_branch_protection_restriction_in_groups` feature is available
when the setting `group_owners_can_manage_default_branch_protection` is enabled
is expected to be allowed :create_group_with_default_branch_protection
when the setting `group_owners_can_manage_default_branch_protection` is disabled
is expected to be disallowed :create_group_with_default_branch_protection
when the `default_branch_protection_restriction_in_groups` feature is not available
when the setting `group_owners_can_manage_default_branch_protection` is enabled
is expected to be allowed :create_group_with_default_branch_protection
when the setting `group_owners_can_manage_default_branch_protection` is disabled
is expected to be allowed :create_group_with_default_branch_protection
list_removable_projects
when user is an admin
when licensed feature is enabled
is expected to be allowed :list_removable_projects
when licensed feature is not enabled
is expected to be disallowed :list_removable_projects
when user is a normal user
when licensed feature is enabled
is expected to be allowed :list_removable_projects
when licensed feature is not enabled
is expected to be disallowed :list_removable_projects
custom roles
admin_member_role
when custom_roles feature is enabled
is expected to be disallowed :admin_member_role
when admin mode enabled
is expected to be allowed :admin_member_role
when admin mode disabled
is expected to be disallowed :admin_member_role
when custom_roles feature is disabled
when admin mode enabled
is expected to be disallowed :admin_member_role
read_member_role
when custom_roles feature is enabled
for anynomous user
is expected to be disallowed :read_member_role
for registeres user
is expected to be allowed :read_member_role
when custom_roles feature is disabled
when admin mode enabled
is expected to be disallowed :read_member_role
:export_user_permissions
role: :admin, licensed: true, allowed: true
is expected to be allowed :export_user_permissions
role: :admin, licensed: false, allowed: false
is expected to be disallowed :export_user_permissions
role: :guest, licensed: true, allowed: false
is expected to be disallowed :export_user_permissions
role: :guest, licensed: false, allowed: false
is expected to be disallowed :export_user_permissions
create_group_via_api
on .com
when feature is enabled
is expected to be allowed :create_group_via_api
when feature is disabled
is expected to be disallowed :create_group_via_api
on self-managed
when feature is enabled
is expected to be allowed :create_group_via_api
when feature is disabled
is expected to be allowed :create_group_via_api
:view_instance_devops_adoption & :manage_devops_adoption_namespaces
when license does not include the feature
is expected to be disallowed :view_instance_devops_adoption and :manage_devops_adoption_namespaces
when feature is enabled and license include the feature
is expected to be allowed :view_instance_devops_adoption and :manage_devops_adoption_namespaces
for non-admins
is expected to be disallowed :view_instance_devops_adoption and :manage_devops_adoption_namespaces
# [RSpecRunTime] RSpec elapsed time: 11 minutes 7.43 seconds. Current RSS: ~1389M. Threads: 5. load average: 1.47 1.36 1.17 1/420 2199
.
when feature is enabled through usage ping features
is expected to be allowed :view_instance_devops_adoption and :manage_devops_adoption_namespaces
for non-admins
is expected to be disallowed :view_instance_devops_adoption and :manage_devops_adoption_namespaces
read_runner_usage
licensed: true, is_admin: true, enable_admin_mode: true, clickhouse_configured: true, expected: true
matches expectation
licensed: false, is_admin: true, enable_admin_mode: true, clickhouse_configured: true, expected: false
matches expectation
licensed: true, is_admin: false, enable_admin_mode: true, clickhouse_configured: true, expected: false
matches expectation
licensed: true, is_admin: true, enable_admin_mode: false, clickhouse_configured: true, expected: false
matches expectation
licensed: true, is_admin: true, enable_admin_mode: true, clickhouse_configured: false, expected: false
matches expectation
read_jobs_statistics
when feature is enabled
is expected to be disallowed :read_jobs_statistics
when admin mode enabled
is expected to be allowed :read_jobs_statistics
when admin mode disabled
is expected to be disallowed :read_jobs_statistics
when feature is disabled
when admin mode enabled
is expected to be disallowed :read_jobs_statistics
read_runner_upgrade_status
is expected to be disallowed :read_runner_upgrade_status
when runner_upgrade_management is available
is expected to be allowed :read_runner_upgrade_status
when user has paid namespace
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is expected to be allowed :read_runner_upgrade_status
admin_service_accounts
is expected to be disallowed :admin_service_accounts
when feature is enabled
when admin mode enabled
is expected to be allowed :admin_service_accounts
when admin mode disabled
is expected to be disallowed :admin_service_accounts
admin_instance_external_audit_events
when licence is enabled
when user is instance admin
when admin mode enabled
is expected to be allowed :admin_instance_external_audit_events
when admin mode disabled
is expected to be disallowed :admin_instance_external_audit_events
when user is not instance admin
is expected to be disallowed :admin_instance_external_audit_events
when licence is not enabled
behaves like admin external events is not allowed
when user is instance admin
when admin mode enabled
is expected to be disallowed :admin_instance_external_audit_events
when admin mode disabled
is expected to be disallowed :admin_instance_external_audit_events
when user is not instance admin
is expected to be disallowed :admin_instance_external_audit_events
access_code_suggestions
code_suggestions_licensed: true, duo_pro_seat_assigned: true, self_hosted_enabled: true, self_hosted_licensed: true, self_hosted_free_access: false, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f206f5558 @method_name=:be_allowed, @args=[:access_code_suggestions], @block=nil>
is expected to be allowed :access_code_suggestions
code_suggestions_licensed: true, duo_pro_seat_assigned: true, self_hosted_enabled: false, self_hosted_licensed: false, self_hosted_free_access: false, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f206f43d8 @method_name=:be_allowed, @args=[:access_code_suggestions], @block=nil>
is expected to be allowed :access_code_suggestions
code_suggestions_licensed: true, duo_pro_seat_assigned: false, self_hosted_enabled: true, self_hosted_licensed: true, self_hosted_free_access: false, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f206f32a8 @method_name=:be_allowed, @args=[:access_code_suggestions], @block=nil>
is expected to be allowed :access_code_suggestions
code_suggestions_licensed: true, duo_pro_seat_assigned: false, self_hosted_enabled: true, self_hosted_licensed: false, self_hosted_free_access: true, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f206f21c8 @method_name=:be_allowed, @args=[:access_code_suggestions], @block=nil>
is expected to be allowed :access_code_suggestions
code_suggestions_licensed: true, duo_pro_seat_assigned: false, self_hosted_enabled: true, self_hosted_licensed: false, self_hosted_free_access: true, self_hosted_beta_ended: true, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f206f1048 @method_name=:be_disallowed, @args=[:access_code_suggestions], @block=nil>
is expected to be disallowed :access_code_suggestions
code_suggestions_licensed: true, duo_pro_seat_assigned: false, self_hosted_enabled: true, self_hosted_licensed: false, self_hosted_free_access: false, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2070ff70 @method_name=:be_disallowed, @args=[:access_code_suggestions], @block=nil>
is expected to be disallowed :access_code_suggestions
code_suggestions_licensed: true, duo_pro_seat_assigned: false, self_hosted_enabled: true, self_hosted_licensed: false, self_hosted_free_access: false, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2070eee0 @method_name=:be_disallowed, @args=[:access_code_suggestions], @block=nil>
is expected to be disallowed :access_code_suggestions
code_suggestions_licensed: true, duo_pro_seat_assigned: false, self_hosted_enabled: false, self_hosted_licensed: false, self_hosted_free_access: false, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2070dd10 @method_name=:be_disallowed, @args=[:access_code_suggestions], @block=nil>
is expected to be disallowed :access_code_suggestions
code_suggestions_licensed: false, duo_pro_seat_assigned: true, self_hosted_enabled: true, self_hosted_licensed: true, self_hosted_free_access: false, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2070cdc0 @method_name=:be_disallowed, @args=[:access_code_suggestions], @block=nil>
is expected to be disallowed :access_code_suggestions
code_suggestions_licensed: false, duo_pro_seat_assigned: false, self_hosted_enabled: false, self_hosted_licensed: false, self_hosted_free_access: false, self_hosted_beta_ended: false, code_suggestions_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2070bdd0 @method_name=:be_disallowed, @args=[:access_code_suggestions], @block=nil>
is expected to be disallowed :access_code_suggestions
access_duo_chat
when on .org or .com
group_with_ai_membership: false, duo_pro_seat_assigned: false, requires_licensed_seat: false, frozen_date: before_cutoff, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20703720 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
group_with_ai_membership: false, duo_pro_seat_assigned: true, requires_licensed_seat: false, frozen_date: before_cutoff, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20702640 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
group_with_ai_membership: true, duo_pro_seat_assigned: false, requires_licensed_seat: false, frozen_date: before_cutoff, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20701330 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
group_with_ai_membership: true, duo_pro_seat_assigned: true, requires_licensed_seat: false, frozen_date: before_cutoff, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f207001b0 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
group_with_ai_membership: true, duo_pro_seat_assigned: false, requires_licensed_seat: true, frozen_date: before_cutoff, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2072ef60 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
group_with_ai_membership: true, duo_pro_seat_assigned: true, requires_licensed_seat: true, frozen_date: before_cutoff, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2072de30 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
group_with_ai_membership: false, duo_pro_seat_assigned: true, requires_licensed_seat: false, frozen_date: after_cutoff, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2072cc10 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
group_with_ai_membership: true, duo_pro_seat_assigned: false, requires_licensed_seat: false, frozen_date: after_cutoff, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2072bb30 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
when not on .org or .com
licensed: true, duo_features_enabled: false, duo_chat_cut_off_date: tomorrow, duo_pro_seat_assigned: false, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f207264a0 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
licensed: true, duo_features_enabled: true, duo_chat_cut_off_date: tomorrow, duo_pro_seat_assigned: false, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20725370 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
licensed: true, duo_features_enabled: true, duo_chat_cut_off_date: tomorrow, duo_pro_seat_assigned: false, requires_licensed_seat_sm: true, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f207240b0 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
licensed: false, duo_features_enabled: false, duo_chat_cut_off_date: tomorrow, duo_pro_seat_assigned: false, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20722e40 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
licensed: false, duo_features_enabled: true, duo_chat_cut_off_date: tomorrow, duo_pro_seat_assigned: false, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20721bd0 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
licensed: false, duo_features_enabled: true, duo_chat_cut_off_date: tomorrow, duo_pro_seat_assigned: true, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20720a00 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
licensed: false, duo_features_enabled: true, duo_chat_cut_off_date: yesterday, duo_pro_seat_assigned: false, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2073f748 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
licensed: false, duo_features_enabled: true, duo_chat_cut_off_date: yesterday, duo_pro_seat_assigned: true, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2073e578 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
licensed: false, duo_features_enabled: false, duo_chat_cut_off_date: yesterday, duo_pro_seat_assigned: true, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2073d308 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
licensed: true, duo_features_enabled: false, duo_chat_cut_off_date: yesterday, duo_pro_seat_assigned: true, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2073c098 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
licensed: true, duo_features_enabled: false, duo_chat_cut_off_date: yesterday, duo_pro_seat_assigned: true, requires_licensed_seat_sm: true, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2073ad38 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
licensed: true, duo_features_enabled: true, duo_chat_cut_off_date: yesterday, duo_pro_seat_assigned: false, requires_licensed_seat_sm: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20739988 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
when duo chat is self hosted
duo_chat_on_saas: true, ai_chat_available: true, self_hosted: true, allowed_to_use: true, free: true, beta_ended: true, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20731aa8 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
duo_chat_on_saas: false, ai_chat_available: false, self_hosted: true, allowed_to_use: true, free: true, beta_ended: true, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20730978 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
duo_chat_on_saas: false, ai_chat_available: true, self_hosted: true, allowed_to_use: true, free: true, beta_ended: true, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2074f8c8 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
duo_chat_on_saas: true, ai_chat_available: true, self_hosted: false, allowed_to_use: true, free: true, beta_ended: true, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2074e7e8 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
duo_chat_on_saas: true, ai_chat_available: true, self_hosted: true, allowed_to_use: false, free: true, beta_ended: false, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2074d668 @method_name=:be_allowed, @args=[:access_duo_chat], @block=nil>
is expected to be allowed :access_duo_chat
duo_chat_on_saas: true, ai_chat_available: true, self_hosted: true, allowed_to_use: false, free: true, beta_ended: true, duo_chat_enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2074c498 @method_name=:be_disallowed, @args=[:access_duo_chat], @block=nil>
is expected to be disallowed :access_duo_chat
access_x_ray_on_instance
when on .org or .com
when x ray available
is expected to be allowed :access_x_ray_on_instance
# [RSpecRunTime] RSpec elapsed time: 11 minutes 16.6 seconds. Current RSS: ~1400M. Threads: 5. load average: 1.40 1.35 1.16 1/420 2200
.
when x ray not available
when code suggestions available
is expected to be allowed :access_x_ray_on_instance
when code suggestions not available
is expected to be disallowed :access_x_ray_on_instance
when not on .org or .com
when code suggestions available
is expected to be allowed :access_x_ray_on_instance
when code suggestions not available
is expected to be disallowed :access_x_ray_on_instance
git access
security policy bot
is expected to be allowed :access_git
explain git commands
for self-managed
duo_features_enabled: true, licensed: false, free_access: false, allowed_for: false, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f207428f8 @method_name=:be_disallowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be disallowed :access_glab_ask_git_command
duo_features_enabled: true, licensed: true, free_access: false, allowed_for: false, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20741638 @method_name=:be_disallowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be disallowed :access_glab_ask_git_command
duo_features_enabled: false, licensed: true, free_access: true, allowed_for: true, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20740418 @method_name=:be_disallowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be disallowed :access_glab_ask_git_command
duo_features_enabled: true, licensed: true, free_access: false, allowed_for: true, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2076f2e0 @method_name=:be_allowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be allowed :access_glab_ask_git_command
duo_features_enabled: true, licensed: true, free_access: true, allowed_for: false, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2076e0c0 @method_name=:be_allowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be allowed :access_glab_ask_git_command
duo_features_enabled: true, licensed: true, free_access: true, allowed_for: true, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f2076cfe0 @method_name=:be_allowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be allowed :access_glab_ask_git_command
for SaaS
free_access: false, any_group_with_ga_ai_available: false, allowed_for: false, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20768c60 @method_name=:be_disallowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be disallowed :access_glab_ask_git_command
free_access: true, any_group_with_ga_ai_available: false, allowed_for: false, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20767810 @method_name=:be_disallowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be disallowed :access_glab_ask_git_command
free_access: false, any_group_with_ga_ai_available: false, allowed_for: true, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20766500 @method_name=:be_disallowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be disallowed :access_glab_ask_git_command
free_access: true, any_group_with_ga_ai_available: true, allowed_for: false, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20765150 @method_name=:be_allowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be allowed :access_glab_ask_git_command
free_access: true, any_group_with_ga_ai_available: true, allowed_for: true, enabled_for_user: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007b1f20763da0 @method_name=:be_allowed, @args=[:access_glab_ask_git_command], @block=nil>
is expected to be allowed :access_glab_ask_git_command
manage self-hosted AI models
when admin
when conditions are respected
is expected to be allowed :manage_ai_settings
when admin mode is disabled
is expected to be disallowed :manage_ai_settings
when license is not paid
is expected to be disallowed :manage_ai_settings
when instance is in SASS mode
is expected to be disallowed :manage_ai_settings
when regular user
is expected to be disallowed :manage_ai_settings
# [RSpecRunTime] Finishing example group ee/spec/policies/global_policy_spec.rb. It took 21.21 seconds. Expected to take 57.87 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/ci/templates/dast_latest_gitlab_ci_yaml_spec.rb. Expected to take 49.57 seconds.
DAST.latest.gitlab-ci.yml
the created pipeline
is expected not to be nil
when ci yaml is just template
when project has no license
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
includes no jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 21.08 seconds. Current RSS: ~1396M. Threads: 5. load average: 1.36 1.34 1.16 1/424 2319
.
when stages includes dast
when project has no license
includes no jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 22.83 seconds. Current RSS: ~1377M. Threads: 5. load average: 1.36 1.34 1.16 1/425 2432
.
when project has cluster
by default
includes no jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 24.99 seconds. Current RSS: ~1380M. Threads: 5. load average: 1.50 1.37 1.17 1/425 2545
.
when project has Ultimate license
when no specification provided
behaves like acts as branch pipeline
when branch pipeline
includes a job
# [RSpecRunTime] RSpec elapsed time: 11 minutes 27.35 seconds. Current RSS: ~1356M. Threads: 5. load average: 1.50 1.37 1.17 1/425 2658
.
by default
includes no jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 28.93 seconds. Current RSS: ~1343M. Threads: 5. load average: 1.50 1.37 1.17 1/425 2771
.
when project has Ultimate license
when project has cluster
when DAST_DISABLED=1
includes no jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 31.43 seconds. Current RSS: ~1349M. Threads: 5. load average: 1.46 1.36 1.17 1/425 2884
.
when DAST_DISABLED="true"
includes no jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 33.71 seconds. Current RSS: ~1344M. Threads: 5. load average: 1.46 1.36 1.17 1/425 2997
.
when DAST_DISABLED="false"
includes jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 36.15 seconds. Current RSS: ~1353M. Threads: 5. load average: 1.42 1.36 1.17 1/425 3110
.
when CI_GITLAB_FIPS_MODE unset
sets DAST_IMAGE_SUFFIX to ""
# [RSpecRunTime] RSpec elapsed time: 11 minutes 38.72 seconds. Current RSS: ~1352M. Threads: 5. load average: 1.42 1.36 1.17 1/425 3223
.
when CI_GITLAB_FIPS_MODE=true
sets DAST_IMAGE_SUFFIX to "-fips"
# [RSpecRunTime] RSpec elapsed time: 11 minutes 41.4 seconds. Current RSS: ~1360M. Threads: 5. load average: 1.39 1.35 1.17 1/425 3336
.
when DAST_DISABLED_FOR_DEFAULT_BRANCH=1
when on default branch
includes no jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 43.74 seconds. Current RSS: ~1363M. Threads: 5. load average: 1.39 1.35 1.17 1/425 3449
.
when on feature branch
includes dast job
# [RSpecRunTime] RSpec elapsed time: 11 minutes 46.53 seconds. Current RSS: ~1363M. Threads: 5. load average: 1.43 1.36 1.18 1/425 3611
.
behaves like acts as MR pipeline
when MR pipeline
includes a job
# [RSpecRunTime] RSpec elapsed time: 11 minutes 50.18 seconds. Current RSS: ~1358M. Threads: 5. load average: 1.48 1.37 1.18 2/427 3915
.
when DAST_DISABLED_FOR_DEFAULT_BRANCH="false"
when on default branch
includes dast job
# [RSpecRunTime] RSpec elapsed time: 11 minutes 52.83 seconds. Current RSS: ~1363M. Threads: 5. load average: 1.48 1.37 1.18 1/425 4028
.
when on feature branch
includes dast job
# [RSpecRunTime] RSpec elapsed time: 11 minutes 55.52 seconds. Current RSS: ~1362M. Threads: 5. load average: 1.44 1.37 1.18 1/425 4190
.
behaves like acts as MR pipeline
when MR pipeline
includes a job
# [RSpecRunTime] RSpec elapsed time: 11 minutes 59.27 seconds. Current RSS: ~1355M. Threads: 5. load average: 1.41 1.36 1.18 1/426 4495
.
when REVIEW_DISABLED="true"
when on default branch
behaves like acts as branch pipeline
when branch pipeline
includes a job
# [RSpecRunTime] RSpec elapsed time: 12 minutes 1.71 seconds. Current RSS: ~1357M. Threads: 5. load average: 1.41 1.36 1.18 1/425 4608
.
when on feature branch
includes no jobs
# [RSpecRunTime] RSpec elapsed time: 12 minutes 4.46 seconds. Current RSS: ~1357M. Threads: 5. load average: 1.53 1.39 1.19 1/425 4770
.
when REVIEW_DISABLED="false"
when on default branch
behaves like acts as branch pipeline
when branch pipeline
includes a job
# [RSpecRunTime] RSpec elapsed time: 12 minutes 7.11 seconds. Current RSS: ~1354M. Threads: 5. load average: 1.53 1.39 1.19 1/425 4883
.
when on feature branch
includes dast job
# [RSpecRunTime] RSpec elapsed time: 12 minutes 9.95 seconds. Current RSS: ~1356M. Threads: 5. load average: 1.49 1.38 1.19 1/425 5045
.
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/ci/templates/dast_latest_gitlab_ci_yaml_spec.rb. It took 50.94 seconds. Expected to take 49.57 seconds.
# [RSpecRunTime] Starting example group ee/spec/presenters/ci/build_runner_presenter_spec.rb. Expected to take 42.25 seconds.
Ci::BuildRunnerPresenter
#secrets_configuration
build has no secrets
returns empty hash
build has secrets
with Hashicorp vault
Vault server URL
VAULT_SERVER_URL CI variable is present
returns the URL
# [RSpecRunTime] RSpec elapsed time: 12 minutes 11.94 seconds. Current RSS: ~1357M. Threads: 5. load average: 1.49 1.38 1.19 1/425 5046
.
VAULT_SERVER_URL CI variable is not present
returns nil
# [RSpecRunTime] RSpec elapsed time: 12 minutes 13.08 seconds. Current RSS: ~1359M. Threads: 5. load average: 1.49 1.38 1.19 1/425 5047
.
Vault auth role
VAULT_AUTH_ROLE CI variable is present
contains the auth role
# [RSpecRunTime] RSpec elapsed time: 12 minutes 14.18 seconds. Current RSS: ~1353M. Threads: 5. load average: 1.61 1.41 1.20 1/425 5048
.
VAULT_AUTH_ROLE CI variable is not present
skips the auth role
Vault auth path
VAULT_AUTH_PATH CI variable is present
contains user defined auth path
# [RSpecRunTime] RSpec elapsed time: 12 minutes 16.2 seconds. Current RSS: ~1362M. Threads: 5. load average: 1.61 1.41 1.20 1/425 5049
.
VAULT_AUTH_PATH CI variable is not present
contains the default auth path
# [RSpecRunTime] RSpec elapsed time: 12 minutes 17.28 seconds. Current RSS: ~1363M. Threads: 5. load average: 1.61 1.41 1.20 1/423 5050
.
Vault namespace
VAULT_NAMESPACE CI variable is present
contains user defined namespace
# [RSpecRunTime] RSpec elapsed time: 12 minutes 18.4 seconds. Current RSS: ~1366M. Threads: 5. load average: 1.61 1.41 1.20 1/423 5051
.
VAULT_NAMESPACE CI variable is not present
returns nil
# [RSpecRunTime] RSpec elapsed time: 12 minutes 20.63 seconds. Current RSS: ~1358M. Threads: 5. load average: 1.56 1.40 1.20 1/420 5052
.
File variable configuration
contains the file configuration directive
when there are ID tokens available
adds the first ID token to the Vault server payload
when the token variable is specified for the vault secret
uses the specified token variable
# [RSpecRunTime] RSpec elapsed time: 12 minutes 25.69 seconds. Current RSS: ~1344M. Threads: 5. load average: 1.52 1.39 1.19 1/420 5053
.
with Azure key vault
Vault azure key vault server url
AZURE_KEY_VAULT_SERVER_URL CI variable is present
returns the URL
AZURE_KEY_VAULT_SERVER_URL CI variable is not present
returns the nil
# [RSpecRunTime] RSpec elapsed time: 12 minutes 27.75 seconds. Current RSS: ~1353M. Threads: 5. load average: 1.52 1.39 1.19 1/420 5054
.
Vault client id
AZURE_CLIENT_ID CI variable is present
returns the URL
AZURE_CLIENT_ID CI variable is not present
returns the nil
Vault tenant id
AZURE_TENANT_ID CI variable is present
returns the URL
# [RSpecRunTime] RSpec elapsed time: 12 minutes 30.84 seconds. Current RSS: ~1354M. Threads: 5. load average: 1.48 1.39 1.19 1/420 5055
.
AZURE_TENANT_ID CI variable is not present
returns the nil
# [RSpecRunTime] RSpec elapsed time: 12 minutes 31.89 seconds. Current RSS: ~1354M. Threads: 5. load average: 1.48 1.39 1.19 1/420 5056
.
when there are ID tokens available
adds the first ID token to the Vault server payload
when the token variable is specified for the vault secret
uses the specified token variable
# [RSpecRunTime] RSpec elapsed time: 12 minutes 35.55 seconds. Current RSS: ~1353M. Threads: 5. load average: 1.44 1.38 1.19 1/420 5057
.
when there are no ID tokens available
adds CI_JOB_JWT_V2 to the Vault server payload
# [RSpecRunTime] RSpec elapsed time: 12 minutes 36.62 seconds. Current RSS: ~1355M. Threads: 5. load average: 1.44 1.38 1.19 1/420 5058
.
with GCP Secret Manager
GCP project number
GCP_PROJECT_NUMBER CI variable is present
returns the value
# [RSpecRunTime] RSpec elapsed time: 12 minutes 37.71 seconds. Current RSS: ~1354M. Threads: 5. load average: 1.44 1.38 1.19 1/420 5059
.
GCP_PROJECT_NUMBER CI variable is not present
returns nil
# [RSpecRunTime] RSpec elapsed time: 12 minutes 38.78 seconds. Current RSS: ~1354M. Threads: 5. load average: 1.44 1.38 1.19 1/420 5060
.
GCP workload federation pool id
GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID CI variable is present
returns the pool id
# [RSpecRunTime] RSpec elapsed time: 12 minutes 39.86 seconds. Current RSS: ~1354M. Threads: 5. load average: 1.40 1.37 1.19 1/420 5061
.
GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID CI variable is not present
returns nil
# [RSpecRunTime] RSpec elapsed time: 12 minutes 40.95 seconds. Current RSS: ~1354M. Threads: 5. load average: 1.40 1.37 1.19 1/420 5062
.
GCP workload federation provider id
GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID CI variable is present
returns the provider id
GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID CI variable is not present
returns nil
JWT token
uses the specified token variable
with akeyless secret manager
when feature flag ci_akeyless_secret is disabled
is expected to be nil
AKEYLESS_ACCESS_ID CI variable is present
returns the ACCESS_ID
# [RSpecRunTime] Finishing example group ee/spec/presenters/ci/build_runner_presenter_spec.rb. It took 35.72 seconds. Expected to take 42.25 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/security/security_orchestration_policies/policy_scope_checker_spec.rb. Expected to take 38.51 seconds.
Security::SecurityOrchestrationPolicies::PolicyScopeChecker
#security_policy_applicable?
when policy is empty
is expected to eq false
behaves like policy scope checker
when policy scope is not set for compliance framework nor project
is expected to eq true
# [RSpecRunTime] RSpec elapsed time: 12 minutes 47.76 seconds. Current RSS: ~1352M. Threads: 5. load average: 1.37 1.37 1.19 1/420 5063
.
when policy is scoped for compliance framework
when project does not have compliance framework set
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 12 minutes 49.16 seconds. Current RSS: ~1350M. Threads: 5. load average: 1.34 1.36 1.19 1/420 5064
.
when project have compliance framework set
is expected to eq true
when project has multiple compliance frameworks set
is expected to eq true
# [RSpecRunTime] RSpec elapsed time: 12 minutes 51.86 seconds. Current RSS: ~1349M. Threads: 5. load average: 1.34 1.36 1.19 2/420 5065
.
when policy additionally excludes the project from policy
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 12 minutes 53.2 seconds. Current RSS: ~1347M. Threads: 5. load average: 1.34 1.36 1.19 1/420 5066
.
when non-existing compliance framework is set
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 12 minutes 54.49 seconds. Current RSS: ~1347M. Threads: 5. load average: 1.31 1.35 1.19 1/420 5067
.
when policy is scoped for projects
with including project scope
when included project scope is not matching project id
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 12 minutes 55.8 seconds. Current RSS: ~1342M. Threads: 5. load average: 1.31 1.35 1.19 1/420 5068
.
when included project scope is matching project id
is expected to eq true
when additionally excluding project scope is matching project id
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 12 minutes 58.43 seconds. Current RSS: ~1342M. Threads: 5. load average: 1.31 1.35 1.19 1/420 5069
.
with excluding project scope
when excluding project scope is not matching project id
is expected to eq true
# [RSpecRunTime] RSpec elapsed time: 12 minutes 59.79 seconds. Current RSS: ~1342M. Threads: 5. load average: 1.29 1.35 1.18 1/420 5070
.
when excluding project scope is matching project id
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 13 minutes 1.13 seconds. Current RSS: ~1341M. Threads: 5. load average: 1.29 1.35 1.18 1/420 5071
.
when policy is scoped for groups
with including group scope
when included group scope is not matching group id
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 13 minutes 2.61 seconds. Current RSS: ~1341M. Threads: 5. load average: 1.29 1.35 1.18 1/420 5072
.
when included group scope is matching project distant ancestor group id
is expected to eq true
# [RSpecRunTime] RSpec elapsed time: 13 minutes 3.97 seconds. Current RSS: ~1341M. Threads: 5. load average: 1.29 1.35 1.18 1/420 5073
.
when included group scope is matching project direct ancestor group id
is expected to eq true
when additionally excluding group scope is matching project ancestor group id
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 13 minutes 6.59 seconds. Current RSS: ~1342M. Threads: 5. load average: 1.34 1.36 1.19 1/420 5074
.
with excluding group scope
when excluding group scope is not matching project ancestor group id
is expected to eq true
# [RSpecRunTime] RSpec elapsed time: 13 minutes 7.87 seconds. Current RSS: ~1341M. Threads: 5. load average: 1.34 1.36 1.19 1/420 5075
.
when excluding group scope is matching project ancestor group id
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 13 minutes 9.32 seconds. Current RSS: ~1343M. Threads: 5. load average: 1.48 1.39 1.20 1/420 5076
.
with excluding parent group and including subgroup
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 13 minutes 10.7 seconds. Current RSS: ~1342M. Threads: 5. load average: 1.48 1.39 1.20 1/420 5077
.
with excluding subgroup and including parent group
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 13 minutes 11.97 seconds. Current RSS: ~1342M. Threads: 5. load average: 1.48 1.39 1.20 1/420 5078
.
#policy_applicable?
when policy is empty
is expected to eq false
behaves like policy scope checker
when policy scope is not set for compliance framework nor project
is expected to eq true
when policy is scoped for compliance framework
when project does not have compliance framework set
is expected to eq false
when project have compliance framework set
is expected to eq true
when project has multiple compliance frameworks set
is expected to eq true
when policy additionally excludes the project from policy
is expected to eq false
when non-existing compliance framework is set
is expected to eq false
when policy is scoped for projects
with including project scope
when included project scope is not matching project id
is expected to eq false
when included project scope is matching project id
is expected to eq true
when additionally excluding project scope is matching project id
is expected to eq false
with excluding project scope
when excluding project scope is not matching project id
is expected to eq true
when excluding project scope is matching project id
is expected to eq false
when policy is scoped for groups
with including group scope
when included group scope is not matching group id
is expected to eq false
when included group scope is matching project distant ancestor group id
is expected to eq true
when included group scope is matching project direct ancestor group id
is expected to eq true
when additionally excluding group scope is matching project ancestor group id
is expected to eq false
with excluding group scope
when excluding group scope is not matching project ancestor group id
is expected to eq true
when excluding group scope is matching project ancestor group id
is expected to eq false
with excluding parent group and including subgroup
is expected to eq false
with excluding subgroup and including parent group
is expected to eq false
# [RSpecRunTime] Finishing example group ee/spec/lib/security/security_orchestration_policies/policy_scope_checker_spec.rb. It took 29.23 seconds. Expected to take 38.51 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/work_items/create_service_spec.rb. Expected to take 31.91 seconds.
WorkItems::CreateService
behaves like creates work item in container
#execute
when user is not allowed to create a work item in the container
is expected to be error
returns an access error
# [RSpecRunTime] RSpec elapsed time: 13 minutes 17.12 seconds. Current RSS: ~1414M. Threads: 5. load average: 1.44 1.38 1.20 1/420 5079
.
when params are valid
created instance is a WorkItem
calls NewIssueWorker with correct arguments
with color widget params
when user can admin_work_item
when type does not support color widget
creates new work item without setting color (PENDING: these examples only apply to a group container)
# [RSpecRunTime] RSpec elapsed time: 13 minutes 19.14 seconds. Current RSS: ~1422M. Threads: 5. load average: 1.40 1.37 1.20 1/420 5080
.
when type supports color widget
creates new work item and sets color (PENDING: these examples only apply to a group container)
when applying quick actions
with /weight action
when work item type does not support weight
with Epic type
saves the work item without applying the quick action (PENDING: these examples only apply to a group container)
with Incident type
saves the work item without applying the quick action
when work item type supports weight
saves the work item and applies the quick action
behaves like creates work item in container
#execute
when user is not allowed to create a work item in the container
is expected to be error
returns an access error
# [RSpecRunTime] RSpec elapsed time: 13 minutes 22.63 seconds. Current RSS: ~1430M. Threads: 5. load average: 1.40 1.37 1.20 1/420 5081
.
when params are valid
created instance is a WorkItem
calls NewIssueWorker with correct arguments
with color widget params
when user can admin_work_item
when type does not support color widget
creates new work item without setting color
# [RSpecRunTime] RSpec elapsed time: 13 minutes 23.9 seconds. Current RSS: ~1426M. Threads: 5. load average: 1.40 1.37 1.20 1/420 5082
.
when type supports color widget
creates new work item and sets color
when applying quick actions
with /weight action
when work item type does not support weight
with Epic type
saves the work item without applying the quick action
with Incident type
saves the work item without applying the quick action (PENDING: these examples don't apply to a group container)
when work item type supports weight
saves the work item and applies the quick action (PENDING: these examples don't apply to a group container)
for legacy epics
behaves like syncs all data from a work_item to an epic
sets the same epic data to the work item association
behaves like basic epic and work item attributes in sync
sets the same basic epic data to the work item
# [RSpecRunTime] RSpec elapsed time: 13 minutes 29.53 seconds. Current RSS: ~1387M. Threads: 5. load average: 1.42 1.38 1.20 1/420 5083
.
when creating the epic with only title and description
behaves like syncs all data from a work_item to an epic
sets the same epic data to the work item association
behaves like basic epic and work item attributes in sync
sets the same basic epic data to the work item
# [RSpecRunTime] RSpec elapsed time: 13 minutes 30.71 seconds. Current RSS: ~1388M. Threads: 5. load average: 1.42 1.38 1.20 1/420 5084
.
when creating an epic work item
creates the epic with correct relative_position
# [RSpecRunTime] RSpec elapsed time: 13 minutes 31.8 seconds. Current RSS: ~1389M. Threads: 5. load average: 1.42 1.38 1.20 1/420 5085
.
when creating an issue with a synced epic as parent
creates the work item and the EpicIssue with the correct relative_position
when not creating an epic work item
only creates a work item
when creating the work item fails
does not update the epic or work item
when creating the epic fails
does not create an epic or work item
when changes are invalid
does not create an epic or work item
behaves like creates work item in container
#execute
when user is not allowed to create a work item in the container
is expected to be error
returns an access error
# [RSpecRunTime] RSpec elapsed time: 13 minutes 36.27 seconds. Current RSS: ~1411M. Threads: 5. load average: 1.39 1.37 1.20 1/420 5086
.
when params are valid
created instance is a WorkItem
calls NewIssueWorker with correct arguments
with color widget params
when user can admin_work_item
when type does not support color widget
creates new work item without setting color (PENDING: these examples only apply to a group container)
# [RSpecRunTime] RSpec elapsed time: 13 minutes 37.52 seconds. Current RSS: ~1419M. Threads: 5. load average: 1.39 1.37 1.20 1/420 5087
.
when type supports color widget
creates new work item and sets color (PENDING: these examples only apply to a group container)
when applying quick actions
with /weight action
when work item type does not support weight
with Epic type
saves the work item without applying the quick action (PENDING: these examples only apply to a group container)
with Incident type
saves the work item without applying the quick action
when work item type supports weight
saves the work item and applies the quick action
# [RSpecRunTime] RSpec elapsed time: 13 minutes 40.18 seconds. Current RSS: ~1425M. Threads: 5. load average: 1.36 1.36 1.20 1/420 5088
.
# [RSpecRunTime] Finishing example group ee/spec/services/work_items/create_service_spec.rb. It took 25.28 seconds. Expected to take 31.91 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/compliance_management/compliance_report/commit_loader_spec.rb. Expected to take 29.91 seconds.
ComplianceManagement::ComplianceReport::CommitLoader
when user is missing
raises an ArgumentError
when group is missing
raises an ArgumentError
#find_each
when an MR exists
is expected to contain exactly "4e461972a40ed2c0acb2417c841e73f06342eb76"
# [RSpecRunTime] RSpec elapsed time: 13 minutes 45.23 seconds. Current RSS: ~1434M. Threads: 5. load average: 1.49 1.39 1.21 1/426 5431
.
when a project has more than the max commits
only returns the max commits
# [RSpecRunTime] RSpec elapsed time: 13 minutes 48.57 seconds. Current RSS: ~1435M. Threads: 5. load average: 1.49 1.39 1.21 1/427 5692
.
with a subgroup project
returns group and subgroup commits
# [RSpecRunTime] RSpec elapsed time: 13 minutes 51.63 seconds. Current RSS: ~1426M. Threads: 5. load average: 1.45 1.39 1.20 3/428 5907
.
with commits that span the 1 month window
returns only the commits within 1 month
# [RSpecRunTime] RSpec elapsed time: 13 minutes 55.02 seconds. Current RSS: ~1420M. Threads: 5. load average: 1.49 1.40 1.21 1/428 6183
.
when a project does not have a repository
does not throw a NoRepository error
returns an empty array
# [RSpecRunTime] RSpec elapsed time: 13 minutes 58.95 seconds. Current RSS: ~1407M. Threads: 5. load average: 1.49 1.40 1.21 1/428 6274
.
when given a commit sha to filter by
when the sha is a merge commit sha
is expected to contain exactly "837bbfa4857f5a93bfbbfe6a557205e2fb4c9698"
# [RSpecRunTime] RSpec elapsed time: 14 minutes 4.81 seconds. Current RSS: ~1391M. Threads: 5. load average: 1.42 1.38 1.21 1/428 6782
.
when the commit is a non-merge commit
is expected to contain exactly "4673013ed39a6adf44eb81606f4b916d20194390"
# [RSpecRunTime] RSpec elapsed time: 14 minutes 9.3 seconds. Current RSS: ~1388M. Threads: 5. load average: 1.38 1.38 1.20 1/428 7106
.
# [RSpecRunTime] Finishing example group ee/spec/lib/compliance_management/compliance_report/commit_loader_spec.rb. It took 29.13 seconds. Expected to take 29.91 seconds.
# [RSpecRunTime] Starting example group ee/spec/helpers/vulnerabilities_helper_spec.rb. Expected to take 27.67 seconds.
VulnerabilitiesHelper
#vulnerability_details
[:can_modify_related_issues]
with security dashboard feature enabled
when user can manage related issues
is expected to include {:can_modify_related_issues => true}
# [RSpecRunTime] RSpec elapsed time: 14 minutes 11.33 seconds. Current RSS: ~1382M. Threads: 5. load average: 1.38 1.38 1.20 1/428 7153
.
when user cannot manage related issues
is expected to include {:can_modify_related_issues => false}
with security dashboard feature disabled
is expected to include {:can_modify_related_issues => false}
[:can_admin]
when user can admin vulnerabilities
is expected to include {:can_admin => true}
when user can not admin vulnerabilities
is expected to include {:can_admin => false}
when pipeline exists
has expected vulnerability properties
returns expected pipeline data
when the issues are disabled for the project
has `new_issue_url` set as nil
when pipeline is nil
has expected vulnerability properties
returns no pipeline data
when the issues are disabled for the project
has `new_issue_url` set as nil
dismissal descriptions
includes translated dismissal descriptions
# [RSpecRunTime] RSpec elapsed time: 14 minutes 16.66 seconds. Current RSS: ~1411M. Threads: 5. load average: 1.43 1.39 1.21 1/427 7154
.
#create_jira_issue_url_for
with jira vulnerabilities integration enabled
when the given object is a vulnerability
delegates rendering URL to Integrations::Jira
when scan property is empty
renders description using dedicated template without raising error
# [RSpecRunTime] RSpec elapsed time: 14 minutes 18.9 seconds. Current RSS: ~1412M. Threads: 5. load average: 1.43 1.39 1.21 1/427 7155
.
when the given object is an unpersisted finding
delegates rendering URL to Integrations::Jira
when the given object is a Security::Finding
delegates rendering URL to Integrations::Jira
# [RSpecRunTime] RSpec elapsed time: 14 minutes 20.69 seconds. Current RSS: ~1406M. Threads: 5. load average: 1.40 1.38 1.21 1/422 7158
.
with jira vulnerabilities integration disabled
is expected to be nil
#vulnerability_finding_data
returns finding information
when there is no file
does not have a blob_path if there is no file
with existing vulnerability_state_transition, issue link and merge request link
returns finding link associations
returns dismissal feedback information
# [RSpecRunTime] RSpec elapsed time: 14 minutes 28.56 seconds. Current RSS: ~1399M. Threads: 5. load average: 1.37 1.37 1.21 1/428 7515
.
with markdown field for description
when vulnerability has no description and finding has description
returns finding information
when vulnerability has description and finding has description
returns finding information
#vulnerability_scan_data?
scanner present
is expected to be truthy
scan present
is expected to be truthy
neither scan nor scanner being present
is expected to be falsey
# [RSpecRunTime] Finishing example group ee/spec/helpers/vulnerabilities_helper_spec.rb. It took 20.96 seconds. Expected to take 27.67 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/ee/issuable/destroy_service_spec.rb. Expected to take 25.84 seconds.
Issuable::DestroyService
#execute
when destroying an epic
when deleting the epic
and deletes epic, epic work item and label links
deletes the epic and the epic work item
records usage ping epic destroy event
# [RSpecRunTime] RSpec elapsed time: 14 minutes 31.5 seconds. Current RSS: ~1401M. Threads: 5. load average: 1.34 1.37 1.20 1/427 7516
.
behaves like service deleting todos
behaves like service scheduling async deletes
destroys associated todos asynchronously
works inside a transaction
behaves like service deleting label links
behaves like service scheduling async deletes
destroys associated todos asynchronously
works inside a transaction
when deleting the epic work item
and deletes epic, epic work item and label links
deletes the epic and the epic work item
behaves like service deleting todos
behaves like service scheduling async deletes
destroys associated todos asynchronously
works inside a transaction
behaves like service deleting label links
behaves like service scheduling async deletes
destroys associated todos asynchronously
works inside a transaction
with unified notes
when deleting the epic
behaves like deletes notes on both epic and epic work item
deletes the epic, epic work item and all notes
# [RSpecRunTime] RSpec elapsed time: 14 minutes 37.08 seconds. Current RSS: ~1383M. Threads: 5. load average: 1.31 1.36 1.20 1/427 7517
.
when deleting the epic work item
behaves like deletes notes on both epic and epic work item
deletes the epic, epic work item and all notes
# [RSpecRunTime] RSpec elapsed time: 14 minutes 39.13 seconds. Current RSS: ~1373M. Threads: 5. load average: 1.28 1.35 1.20 1/422 7518
.
with unified resource_label_events
when deleting the epic
behaves like deletes label events on both epic and epic work item
deletes the epic, epic work item and all notes
when deleting the epic work item
behaves like deletes label events on both epic and epic work item
deletes the epic, epic work item and all notes
with unified resource_state_events
when deleting the epic
behaves like deletes state events on both epic and epic work item
deletes the epic, epic work item and all notes
when deleting the epic work item
behaves like deletes state events on both epic and epic work item
deletes the epic, epic work item and all notes
with unified description_versions
when deleting the epic
behaves like deletes description versions on both epic and epic work item
deletes the epic, epic work item and all notes
when deleting the epic work item
behaves like deletes description versions on both epic and epic work item
deletes the epic, epic work item and all notes
when destroying other issuable type
does not track usage ping epic destroy event
when issuable is an issue
behaves like logs delete issuable audit event
logs audit event
# [RSpecRunTime] RSpec elapsed time: 14 minutes 44.61 seconds. Current RSS: ~1362M. Threads: 5. load average: 1.26 1.35 1.20 1/422 7519
.
when issuable is an epic
behaves like logs delete issuable audit event
logs audit event
when issuable is a task
behaves like logs delete issuable audit event
logs audit event
when issuable is a merge_request
calls MergeRequestDestroyAuditor with correct arguments
calls MergeRequestBeforeDestroyAuditor with correct arguments
# [RSpecRunTime] RSpec elapsed time: 14 minutes 50.99 seconds. Current RSS: ~1374M. Threads: 5. load average: 1.40 1.38 1.21 1/428 7876
.
# [RSpecRunTime] Finishing example group ee/spec/services/ee/issuable/destroy_service_spec.rb. It took 20.73 seconds. Expected to take 25.84 seconds.
# [RSpecRunTime] Starting example group ee/spec/policies/remote_development/workspace_policy_spec.rb. Expected to take 23.99 seconds.
RemoteDevelopment::WorkspacePolicy
admin: false, admin_mode: false, licensed: true, workspace_owner: false, role_on_workspace_project: :none, role_on_agent_project: :maintainer, allowed: true
read_workspace ability
is expected to be allowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
# [RSpecRunTime] RSpec elapsed time: 14 minutes 54.48 seconds. Current RSS: ~1366M. Threads: 5. load average: 1.45 1.39 1.21 1/426 7877
.
update_workspace ability
is expected to be allowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
admin: false, admin_mode: false, licensed: false, workspace_owner: false, role_on_workspace_project: :none, role_on_agent_project: :maintainer, allowed: false
read_workspace ability
is expected to be disallowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
update_workspace ability
is expected to be disallowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
admin: true, admin_mode: true, licensed: true, workspace_owner: false, role_on_workspace_project: :none, role_on_agent_project: :none, allowed: true
read_workspace ability
is expected to be allowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
update_workspace ability
is expected to be allowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
admin: false, admin_mode: false, licensed: true, workspace_owner: false, role_on_workspace_project: :none, role_on_agent_project: :developer, allowed: false
read_workspace ability
is expected to be disallowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
update_workspace ability
is expected to be disallowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
admin: false, admin_mode: false, licensed: true, workspace_owner: true, role_on_workspace_project: :guest, role_on_agent_project: :none, allowed: false
read_workspace ability
is expected to be disallowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
update_workspace ability
is expected to be disallowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
admin: true, admin_mode: true, licensed: false, workspace_owner: false, role_on_workspace_project: :none, role_on_agent_project: :none, allowed: false
read_workspace ability
is expected to be disallowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
# [RSpecRunTime] RSpec elapsed time: 15 minutes 2.93 seconds. Current RSS: ~1439M. Threads: 5. load average: 1.41 1.38 1.21 1/421 7878
.
update_workspace ability
is expected to be disallowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
admin: true, admin_mode: false, licensed: true, workspace_owner: false, role_on_workspace_project: :none, role_on_agent_project: :none, allowed: false
read_workspace ability
is expected to be disallowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
update_workspace ability
is expected to be disallowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
admin: false, admin_mode: false, licensed: true, workspace_owner: true, role_on_workspace_project: :developer, role_on_agent_project: :none, allowed: true
read_workspace ability
is expected to be allowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
update_workspace ability
is expected to be allowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
admin: false, admin_mode: false, licensed: false, workspace_owner: true, role_on_workspace_project: :developer, role_on_agent_project: :none, allowed: false
read_workspace ability
is expected to be disallowed :read_workspace
behaves like fixture sanity checks
has fixture sanity checks
update_workspace ability
is expected to be disallowed :update_workspace
behaves like fixture sanity checks
has fixture sanity checks
# [RSpecRunTime] Finishing example group ee/spec/policies/remote_development/workspace_policy_spec.rb. It took 16.59 seconds. Expected to take 23.99 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb. Expected to take 22.19 seconds.
Gitlab::ImportExport::Group::TreeSaver
saves the group tree into a json object
saves successfully
saves the milestone data when there are boards with predefined milestones
saves the milestone data when there are boards with persisted milestones
epics relation
saves top level epics
saves parent of epic
saves epic notes
saves epic events
saves epic's note events
saves epic's award emojis
saves epic's note award emojis
saves epic labels
saves resource state events
with inaccessible resources
filters out inaccessible epic parent
filters out inaccessible epic notes
# [RSpecRunTime] RSpec elapsed time: 15 minutes 18.11 seconds. Current RSS: ~1418M. Threads: 5. load average: 1.32 1.36 1.21 1/421 7879
.
boards relation
saves top level boards
saves board assignee
saves board labels
saves board lists
# [RSpecRunTime] RSpec elapsed time: 15 minutes 25.05 seconds. Current RSS: ~1375M. Threads: 5. load average: 1.27 1.35 1.20 1/421 7880
.
iteration cadences relation
saves iteration cadences with iterations
# [RSpecRunTime] Finishing example group ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb. It took 18.24 seconds. Expected to take 22.19 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/vulnerability_exports/export_service_spec.rb. Expected to take 20.6 seconds.
VulnerabilityExports::ExportService
#export_segment
generates the exported segment file
when the export fails
raises an error and cleans up the export
# [RSpecRunTime] RSpec elapsed time: 15 minutes 28.27 seconds. Current RSS: ~1353M. Threads: 5. load average: 1.27 1.35 1.20 3/421 7881
.
#finalise_segmented_export
merges the exported segments into one file, dropping excess headers
when the export fails
{"time":"2024-09-20T15:52:38+00:00","severity":"warn","oid":169395740,"pid":334,"subject":"Async::Task","message":"Task may have ended with unhandled exception.","event":{"type":"failure","root":"/builds/gitlab-org/gitlab","class":"RuntimeError","message":"RuntimeError","backtrace":["/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:761:in `block in call'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:760:in `map'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:760:in `call'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:621:in `invoke_incrementing_actual_calls_by'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:474:in `invoke'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/proxy.rb:209:in `message_received'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/proxy.rb:361:in `message_received'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/method_double.rb:98:in `proxy_method_invoked'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/gitlab-experiment-0.9.1/lib/gitlab/experiment/rspec.rb:29:in `proxy_method_invoked'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/method_double.rb:74:in `block (2 levels) in define_proxy_method'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:85:in `block (6 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/semaphore.rb:87:in `acquire'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:78:in `block (5 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:77:in `each_line'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:77:in `block (4 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/app/uploaders/gitlab_uploader.rb:125:in `open'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:74:in `block (3 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/semaphore.rb:68:in `block in async'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/task.rb:164:in `block in run'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/task.rb:377:in `block in schedule'"]}}
{"time":"2024-09-20T15:52:38+00:00","severity":"warn","oid":169395760,"pid":334,"subject":"Async::Task","message":"Task may have ended with unhandled exception.","event":{"type":"failure","root":"/builds/gitlab-org/gitlab","class":"RuntimeError","message":"RuntimeError","backtrace":["/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:761:in `block in call'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:760:in `map'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:760:in `call'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:621:in `invoke_incrementing_actual_calls_by'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:474:in `invoke'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/proxy.rb:209:in `message_received'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/proxy.rb:361:in `message_received'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/method_double.rb:98:in `proxy_method_invoked'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/gitlab-experiment-0.9.1/lib/gitlab/experiment/rspec.rb:29:in `proxy_method_invoked'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/method_double.rb:74:in `block (2 levels) in define_proxy_method'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:85:in `block (6 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/semaphore.rb:87:in `acquire'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:78:in `block (5 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:77:in `each_line'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:77:in `block (4 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/app/uploaders/gitlab_uploader.rb:125:in `open'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:74:in `block (3 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/semaphore.rb:68:in `block in async'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/task.rb:164:in `block in run'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/task.rb:377:in `block in schedule'"]}}
{"time":"2024-09-20T15:52:38+00:00","severity":"warn","oid":169395780,"pid":334,"subject":"Async::Task","message":"Task may have ended with unhandled exception.","event":{"type":"failure","root":"/builds/gitlab-org/gitlab","class":"RuntimeError","message":"RuntimeError","backtrace":["/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:761:in `block in call'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:760:in `map'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:760:in `call'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:621:in `invoke_incrementing_actual_calls_by'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/message_expectation.rb:474:in `invoke'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/proxy.rb:209:in `message_received'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/proxy.rb:361:in `message_received'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/method_double.rb:98:in `proxy_method_invoked'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/gitlab-experiment-0.9.1/lib/gitlab/experiment/rspec.rb:29:in `proxy_method_invoked'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/rspec-mocks-3.12.6/lib/rspec/mocks/method_double.rb:74:in `block (2 levels) in define_proxy_method'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:85:in `block (6 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/semaphore.rb:87:in `acquire'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:78:in `block (5 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:77:in `each_line'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:77:in `block (4 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/app/uploaders/gitlab_uploader.rb:125:in `open'","/builds/gitlab-org/gitlab/ee/app/services/vulnerability_exports/export_service.rb:74:in `block (3 levels) in finalise_segmented_export'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/semaphore.rb:68:in `block in async'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/task.rb:164:in `block in run'","/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/async-2.12.1/lib/async/task.rb:377:in `block in schedule'"]}}
raises an error and cleans up the export
# [RSpecRunTime] RSpec elapsed time: 15 minutes 30.25 seconds. Current RSS: ~1356M. Threads: 5. load average: 1.25 1.34 1.20 1/421 7882
.
writing content into final tempfile concurrently
synchonizes the write operations
# [RSpecRunTime] RSpec elapsed time: 15 minutes 31.31 seconds. Current RSS: ~1356M. Threads: 5. load average: 1.25 1.34 1.20 1/421 7883
.
::export
instantiates a new instance of the service class and sends export message to it
#export
generating the export file
runs synchronized with distributed semaphore
when the vulnerability_export is not in `created` state
does not execute export file generation logic
when the vulnerability_export is in `created` state
when the exportable is a group
when the vulnerabilities are more than the partial file batch size
generates the export file in batches, scaling workers to the number of parts needed
Job arguments to Gitlab::Export::SegmentedExportWorker must be native JSON types, but #<GlobalID:0x00007b1f464b9c78 @uri=#<URI::GID gid://gitlab/Vulnerabilities::Export/10>> is a GlobalID.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to Gitlab::Export::SegmentedExportWorker must be native JSON types, but #<GlobalID:0x00007b1f46426568 @uri=#<URI::GID gid://gitlab/Vulnerabilities::Export/10>> is a GlobalID.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
sets organization_id appropriately
when there are no vulnerabilities for the vulnerable
does not raise an error
# [RSpecRunTime] RSpec elapsed time: 15 minutes 36.5 seconds. Current RSS: ~1362M. Threads: 5. load average: 1.23 1.34 1.20 1/421 7884
.
when an error occurs during the enqueuing
raises an error and cleans up the export
# [RSpecRunTime] RSpec elapsed time: 15 minutes 37.52 seconds. Current RSS: ~1355M. Threads: 5. load average: 1.23 1.34 1.20 1/421 7885
.
when there are many vulnerabilities
does not create more export workers than SEGMENTED_EXPORT_WORKERS
# [RSpecRunTime] RSpec elapsed time: 15 minutes 39.41 seconds. Current RSS: ~1352M. Threads: 5. load average: 1.21 1.33 1.20 1/421 7886
.
when the exportable is a project
when the export generation fails
sets the state of export back to `created`
schedules the export deletion background job
# [RSpecRunTime] RSpec elapsed time: 15 minutes 41.19 seconds. Current RSS: ~1351M. Threads: 5. load average: 1.21 1.33 1.20 2/421 7887
.
when the export generation succeeds
marks the state of export object as `started` and then `finished`
schedules the export deletion background job
# [RSpecRunTime] RSpec elapsed time: 15 minutes 42.82 seconds. Current RSS: ~1359M. Threads: 5. load average: 1.21 1.33 1.20 1/421 7888
.
when the export format is csv
calls the VulnerabilityExports::Exporters::CsvService which sets the file and filename
# [RSpecRunTime] RSpec elapsed time: 15 minutes 43.83 seconds. Current RSS: ~1360M. Threads: 5. load average: 1.21 1.33 1.20 1/421 7889
.
# [RSpecRunTime] Finishing example group ee/spec/services/vulnerability_exports/export_service_spec.rb. It took 18.0 seconds. Expected to take 20.6 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/status_page/mark_for_publication_service_spec.rb. Expected to take 19.56 seconds.
StatusPage::MarkForPublicationService
#execute
when license is not available
behaves like does not track the incident
is expected not to change `::StatusPage::PublishedIncident.count`
is expected not to change `issue.notes.count`
returns the exepected error state
# [RSpecRunTime] RSpec elapsed time: 15 minutes 45.75 seconds. Current RSS: ~1362M. Threads: 5. load average: 1.19 1.32 1.20 1/421 7890
.
when status page does not exist
behaves like does not track the incident
is expected not to change `::StatusPage::PublishedIncident.count`
is expected not to change `issue.notes.count`
returns the exepected error state
# [RSpecRunTime] RSpec elapsed time: 15 minutes 47.05 seconds. Current RSS: ~1383M. Threads: 5. load average: 1.19 1.32 1.20 1/421 7891
.
when status page is disabled
behaves like does not track the incident
is expected not to change `::StatusPage::PublishedIncident.count`
is expected not to change `issue.notes.count`
returns the exepected error state
# [RSpecRunTime] RSpec elapsed time: 15 minutes 48.38 seconds. Current RSS: ~1394M. Threads: 5. load average: 1.19 1.32 1.20 3/422 7892
.
when status page is enabled
when issue is publishable
is expected to change `::StatusPage::PublishedIncident.count` by 1
is expected to change `issue.notes.count` by 1
is expected to be success
behaves like internal event tracking
logs to Snowplow, Redis, and product analytics tooling
# [RSpecRunTime] RSpec elapsed time: 15 minutes 50.64 seconds. Current RSS: ~1402M. Threads: 5. load average: 1.18 1.32 1.20 1/422 7893
.
when issue is confidential
behaves like does not track the incident
is expected not to change `::StatusPage::PublishedIncident.count`
is expected not to change `issue.notes.count`
returns the exepected error state
# [RSpecRunTime] RSpec elapsed time: 15 minutes 52.13 seconds. Current RSS: ~1426M. Threads: 5. load average: 1.18 1.32 1.20 1/422 7894
.
when issue is already published
behaves like does not track the incident
is expected not to change `::StatusPage::PublishedIncident.count`
is expected not to change `issue.notes.count`
returns the exepected error state
# [RSpecRunTime] RSpec elapsed time: 15 minutes 53.57 seconds. Current RSS: ~1430M. Threads: 5. load average: 1.18 1.32 1.20 1/422 7895
.
when user is not logged in
behaves like does not track the incident
is expected not to change `::StatusPage::PublishedIncident.count`
is expected not to change `issue.notes.count`
returns the exepected error state
# [RSpecRunTime] RSpec elapsed time: 15 minutes 54.81 seconds. Current RSS: ~1436M. Threads: 5. load average: 1.16 1.31 1.20 1/421 7896
.
when user does not have permissions
behaves like does not track the incident
is expected not to change `::StatusPage::PublishedIncident.count`
is expected not to change `issue.notes.count`
returns the exepected error state
# [RSpecRunTime] RSpec elapsed time: 15 minutes 56.3 seconds. Current RSS: ~1442M. Threads: 5. load average: 1.16 1.31 1.20 1/421 7897
.
when an error occurs
is expected not to change `::StatusPage::PublishedIncident.count`
is expected not to change `issue.notes.count`
returns the exepected error state and reports the error to sentry
# [RSpecRunTime] RSpec elapsed time: 15 minutes 57.85 seconds. Current RSS: ~1451M. Threads: 5. load average: 1.16 1.31 1.20 5/421 7898
.
# [RSpecRunTime] Finishing example group ee/spec/services/status_page/mark_for_publication_service_spec.rb. It took 14.03 seconds. Expected to take 19.56 seconds.
# [RSpecRunTime] Starting example group ee/spec/tasks/gitlab/elastic_rake_spec.rb. Expected to take 18.45 seconds.
gitlab:elastic namespace rake tasks
gitlab:elastic:recreate_index
calls rake task executor
gitlab:elastic:estimate_shard_sizes
calls rake task executor
gitlab:elastic:index_snippets
calls rake task executor
gitlab:elastic:index_users
calls rake task executor
gitlab:elastic:mark_reindex_failed
calls rake task executor
gitlab:elastic:clear_index_status
calls rake task executor
gitlab:elastic:disable_search_with_elasticsearch
calls rake task executor
gitlab:elastic:delete_index
calls rake task executor
gitlab:elastic:index_projects_status
calls rake task executor
gitlab:elastic:projects_not_indexed
calls rake task executor
gitlab:elastic:resume_indexing
calls rake task executor
gitlab:elastic:index_group_entities
calls rake task executor
gitlab:elastic:index
with elasticsearch_indexing is disabled
Job arguments to Search::Elastic::TriggerIndexingWorker must be native JSON types, but :initiate is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
does not enable `elasticsearch_indexing`
with elasticsearch_indexing enabled
schedules Search::Elastic::TriggerIndexingWorker asynchronously
outputs warning if indexing is paused
when on GitLab.com
raises an error
# [RSpecRunTime] RSpec elapsed time: 16 minutes 1.29 seconds. Current RSS: ~1478M. Threads: 5. load average: 1.15 1.31 1.19 1/421 7899
.
gitlab:elastic:index_projects
calls rake task executor
gitlab:elastic:reindex_cluster
calls rake task executor
gitlab:elastic:pause_indexing
calls rake task executor
gitlab:elastic:index_group_wikis
calls rake task executor
gitlab:elastic:info
calls rake task executor
gitlab:elastic:estimate_cluster_size
calls rake task executor
gitlab:elastic:list_pending_migrations
calls rake task executor
gitlab:elastic:create_empty_index
calls rake task executor
gitlab:elastic:enable_search_with_elasticsearch
calls rake task executor
gitlab:elastic:index_epics
calls rake task executor
# [RSpecRunTime] Finishing example group ee/spec/tasks/gitlab/elastic_rake_spec.rb. It took 8.24 seconds. Expected to take 18.45 seconds.
# [RSpecRunTime] RSpec elapsed time: 16 minutes 6.18 seconds. Current RSS: ~1472M. Threads: 5. load average: 1.22 1.32 1.20 1/421 7900
.
# [RSpecRunTime] Starting example group ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb. Expected to take 17.44 seconds.
RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator
.calculate_actual_state
with cases parameterized from shared fixtures
previous_actual_state: "CreationRequested", current_actual_state: "Starting", workspace_exists: nil
calculates correct actual state
previous_actual_state: "Starting", current_actual_state: "Starting", workspace_exists: false
calculates correct actual state
previous_actual_state: "Starting", current_actual_state: "Running", workspace_exists: false
calculates correct actual state
previous_actual_state: "Starting", current_actual_state: "Failed", workspace_exists: false
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Starting, current_actual_state: Failed, workspace_exists: false)
previous_actual_state: "Failed", current_actual_state: "Starting", workspace_exists: false
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Starting, workspace_exists: false)
previous_actual_state: "Running", current_actual_state: "Failed", workspace_exists: nil
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Running, current_actual_state: Failed, workspace_exists: )
previous_actual_state: "Running", current_actual_state: "Stopping", workspace_exists: nil
calculates correct actual state
previous_actual_state: "Stopping", current_actual_state: "Stopped", workspace_exists: nil
calculates correct actual state
previous_actual_state: "Stopping", current_actual_state: "Failed", workspace_exists: nil
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Stopping, current_actual_state: Failed, workspace_exists: )
previous_actual_state: "Stopped", current_actual_state: "Starting", workspace_exists: nil
calculates correct actual state
previous_actual_state: "Stopped", current_actual_state: "Stopped", workspace_exists: true
calculates correct actual state
previous_actual_state: "Stopped", current_actual_state: "Failed", workspace_exists: nil
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Stopped, current_actual_state: Failed, workspace_exists: )
previous_actual_state: "Starting", current_actual_state: "Starting", workspace_exists: true
calculates correct actual state
previous_actual_state: "Starting", current_actual_state: "Running", workspace_exists: true
calculates correct actual state
previous_actual_state: "Starting", current_actual_state: "Failed", workspace_exists: true
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Starting, current_actual_state: Failed, workspace_exists: true)
previous_actual_state: "Failed", current_actual_state: "Starting", workspace_exists: true
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Starting, workspace_exists: true)
previous_actual_state: "Failed", current_actual_state: "Stopping", workspace_exists: nil
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Stopping, workspace_exists: )
previous_actual_state: nil, current_actual_state: "Failed", workspace_exists: nil
calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: , current_actual_state: Failed, workspace_exists: )
when the deployment is completed successfully
when new workspace has been created or existing workspace has been scaled up
returns the expected actual state
when existing workspace has been scaled down
returns the expected actual state
when status does not contain required information
returns the expected actual state
when the deployment is in progress
when new workspace has been created
returns the expected actual state
when existing workspace has been updated
returns the expected actual state
when existing workspace has been scaled up
returns the expected actual state
when existing workspace has been scaled down
returns the expected actual state
when spec replicas is more than 1
returns the expected actual state
when status does not contain required information
returns the expected actual state
when the deployment is failed
when new workspace has been created or existing workspace has been scaled up
returns the expected actual state
when existing scaled down workspace which was failing has been scaled up
returns the expected actual state (PENDING: This currently returns STARTING state. See related TODOs in the relevant code.)
when the deployment status is unknown
when spec is missing
returns the expected actual state
when spec replicas is missing
returns the expected actual state
when status is missing
returns the expected actual state
when status conditions is missing
returns the expected actual state
when status conditions reason is missing
returns the expected actual state
when status progressing and available conditions are unrecognized
returns the expected actual state
when termination_progress is Terminating
returns the expected actual state
when termination_progress is Terminated
returns the expected actual state
when latest_error_details is present
and termination_progress is missing
returns the expected actual state
and termination_progress is Terminated
returns the expected actual state
and termination_progress is Terminating
returns the expected actual state
# [RSpecRunTime] Finishing example group ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb. It took 4.59 seconds. Expected to take 17.44 seconds.
# [RSpecRunTime] Starting example group ee/spec/models/epic/related_epic_link_spec.rb. Expected to take 16.51 seconds.
Epic::RelatedEpicLink
does not allow STI
behaves like issuable link
Associations
is expected to belong to source class_name => Epic required: false
is expected to belong to target class_name => Epic required: false
# [RSpecRunTime] RSpec elapsed time: 16 minutes 12.44 seconds. Current RSS: ~1553M. Threads: 5. load average: 1.20 1.31 1.20 1/421 7901
.
Validation
is expected to validate that :source cannot be empty/falsy
is expected to validate that :target cannot be empty/falsy
is expected to validate that :source is case-sensitively unique within the scope of :target_id, producing a custom validation error on failure
is not valid if an opposite link already exists
when it relates to itself
when target is nil
does not invalidate object with self relation error
when source and target are present
invalidates object
when max number of links is exceeded
when source exceeds max
behaves like invalid due to exceeding max number of links
is expected to include "This epic would exceed the maximum number of linked epics (1)."
when target exceeds max
behaves like invalid due to exceeding max number of links
is expected to include "This epic would exceed the maximum number of linked epics (1)."
scopes
.for_source_or_target
returns only links where id is either source or target id
# [RSpecRunTime] RSpec elapsed time: 16 minutes 15.38 seconds. Current RSS: ~1540M. Threads: 5. load average: 1.27 1.33 1.20 1/421 7902
.
.link_type
is expected to define :link_type as an enum backed by an integer with values ‹{relates_to: 0, blocks: 1}›
provides the "related" as default link_type
behaves like issuables that can block or be blocked
.issuable_type
is expected to eq :epic
# [RSpecRunTime] RSpec elapsed time: 16 minutes 18.1 seconds. Current RSS: ~1524M. Threads: 5. load average: 1.27 1.33 1.20 1/421 7903
.
.inverse_link_type
returns the inverse type of link
.blocked_issuable_ids
returns only ids of issues which are blocked
# [RSpecRunTime] RSpec elapsed time: 16 minutes 20.72 seconds. Current RSS: ~1485M. Threads: 5. load average: 1.24 1.32 1.20 1/421 7904
.
.blocking_issuables_ids_for
returns blocking issuables ids
blocking issuables count
.blocking_issuables_for_collection
returns blocking issues count grouped by issue id
.blocked_issuables_for_collection
returns blocked issues count grouped by issue id
.blocking_issuables_count_for
returns blocked issues count for single issue
# [RSpecRunTime] Finishing example group ee/spec/models/epic/related_epic_link_spec.rb. It took 10.61 seconds. Expected to take 16.51 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/vulnerability_scanning/dependency_scanning/finding_builder_spec.rb. Expected to take 15.64 seconds.
Gitlab::VulnerabilityScanning::DependencyScanning::FindingBuilder
#finding
when cyclonedx sbom contains required gitlab:dependency_scanning properties
does not add any errors to the report
creates the links
creates the name
creates the description
creates the solution
creates a valid location
creates the severity
creates the confidence
creates the metadata version
# [RSpecRunTime] RSpec elapsed time: 16 minutes 30.31 seconds. Current RSS: ~1423M. Threads: 5. load average: 1.13 1.29 1.19 1/421 7905
.
when cyclonedx does not contain required gitlab:dependency_scanning properties
adds an error to the generated report
# [RSpecRunTime] RSpec elapsed time: 16 minutes 31.4 seconds. Current RSS: ~1423M. Threads: 5. load average: 1.13 1.29 1.19 1/421 7906
.
when title is not present
replaces with default title
# [RSpecRunTime] RSpec elapsed time: 16 minutes 32.52 seconds. Current RSS: ~1422M. Threads: 5. load average: 1.13 1.29 1.19 1/421 7907
.
when title is empty
replaces with default title
# [RSpecRunTime] RSpec elapsed time: 16 minutes 33.56 seconds. Current RSS: ~1421M. Threads: 5. load average: 1.13 1.29 1.19 1/421 7908
.
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/vulnerability_scanning/dependency_scanning/finding_builder_spec.rb. It took 12.18 seconds. Expected to take 15.64 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/ci/minutes/consumption_spec.rb. Expected to take 14.89 seconds.
Gitlab::Ci::Minutes::Consumption
#amount
duration: 120, visibility_level: 0, public_cost_factor: 1.0, private_cost_factor: 2.0, result: 4.0
returns the expected consumption
logs the cost factor
when consumption comes from a GitLab contribution
returns the consumption using the contribution cost factor
logs that the contributor cost factor was granted
# [RSpecRunTime] RSpec elapsed time: 16 minutes 35.07 seconds. Current RSS: ~1420M. Threads: 5. load average: 1.12 1.29 1.19 1/421 7909
.
duration: 120, visibility_level: 10, public_cost_factor: 1.0, private_cost_factor: 2.0, result: 4.0
returns the expected consumption
logs the cost factor
when consumption comes from a GitLab contribution
returns the consumption using the contribution cost factor
logs that the contributor cost factor was granted
duration: 120, visibility_level: 10, public_cost_factor: 1.0, private_cost_factor: 1.5, result: 3.0
returns the expected consumption
logs the cost factor
when consumption comes from a GitLab contribution
returns the consumption using the contribution cost factor
logs that the contributor cost factor was granted
duration: 120, visibility_level: 20, public_cost_factor: 2.0, private_cost_factor: 1.0, result: 4.0
returns the expected consumption
logs the cost factor
when consumption comes from a GitLab contribution
returns the consumption using the contribution cost factor
logs that the contributor cost factor was granted
duration: 120, visibility_level: 20, public_cost_factor: 1.0, private_cost_factor: 1.0, result: 2.0
returns the expected consumption
logs the cost factor
when consumption comes from a GitLab contribution
returns the consumption using the contribution cost factor
logs that the contributor cost factor was granted
duration: 120, visibility_level: 20, public_cost_factor: 0.5, private_cost_factor: 1.0, result: 1.0
returns the expected consumption
logs the cost factor
when consumption comes from a GitLab contribution
returns the consumption using the contribution cost factor
logs that the contributor cost factor was granted
duration: 119, visibility_level: 20, public_cost_factor: 0.5, private_cost_factor: 1.0, result: 0.99
returns the expected consumption
logs the cost factor
when consumption comes from a GitLab contribution
returns the consumption using the contribution cost factor
logs that the contributor cost factor was granted
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/ci/minutes/consumption_spec.rb. It took 6.57 seconds. Expected to take 14.89 seconds.
# [RSpecRunTime] Starting example group ee/spec/helpers/ee/invite_members_helper_spec.rb. Expected to take 14.23 seconds.
EE::InviteMembersHelper
#common_invite_group_modal_data
has expected common attributes
#invite_group_dataset
when `custom_role_for_group_link_enabled` is false
returns expected data
when `custom_role_for_group_link_enabled` is true
returns expected data
#common_invite_modal_dataset
includes add_seats_href for an owner
does not include add_seats_href for non-owners
when applying the free user cap is not valid
does not include users limit notification data
when applying the free user cap is valid
when not close to or over the free user cap limit
includes correct users limit notification data
# [RSpecRunTime] RSpec elapsed time: 16 minutes 44.88 seconds. Current RSS: ~1470M. Threads: 5. load average: 1.10 1.28 1.19 1/421 7910
.
when close to the free user cap limit
includes correct users limit notification data
when at the free user cap limit
includes correct users limit notification data
when a namespace has an active trial
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
includes correct active trial alert data
when namespace does not have an active trial
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
does not include users limit notification data
including the manage_member_roles_path
does not include users limit notification data
#users_filter_data
when the group has enforced sso
when there is a group with a saml provider
returns user filter data
when there is a group without a saml provider
does not return user filter data
when group has enforced sso disabled
when there is a group with a saml provider
does not return user filter data
when there is a group without a saml provider
does not return user filter data
#overage_members_modal_available
when SaaS
returns true
when SM
returns false
# [RSpecRunTime] Finishing example group ee/spec/helpers/ee/invite_members_helper_spec.rb. It took 8.06 seconds. Expected to take 14.23 seconds.
# [RSpecRunTime] Starting example group ee/spec/helpers/groups/security_features_helper_spec.rb. Expected to take 13.67 seconds.
Groups::SecurityFeaturesHelper
#group_level_security_dashboard_available?
group_level_compliance_dashboard_enabled: false, read_group_compliance_dashboard_permission: false, result: false
returns the expected result
group_level_compliance_dashboard_enabled: true, read_group_compliance_dashboard_permission: false, result: false
returns the expected result
group_level_compliance_dashboard_enabled: false, read_group_compliance_dashboard_permission: true, result: false
returns the expected result
group_level_compliance_dashboard_enabled: true, read_group_compliance_dashboard_permission: true, result: true
returns the expected result
#group_level_credentials_inventory_available?
group_owner?: false, saas?: false, licensed?: false, feature_flag_enabled?: false, result: false
for user
is expected to eq false
group_owner?: false, saas?: false, licensed?: false, feature_flag_enabled?: true, result: false
for user
is expected to eq false
group_owner?: false, saas?: false, licensed?: true, feature_flag_enabled?: false, result: false
for user
is expected to eq false
group_owner?: false, saas?: false, licensed?: true, feature_flag_enabled?: true, result: false
for user
is expected to eq false
group_owner?: false, saas?: true, licensed?: false, feature_flag_enabled?: false, result: false
for user
is expected to eq false
group_owner?: false, saas?: true, licensed?: false, feature_flag_enabled?: true, result: false
for user
is expected to eq false
group_owner?: false, saas?: true, licensed?: true, feature_flag_enabled?: false, result: false
for user
is expected to eq false
group_owner?: false, saas?: true, licensed?: true, feature_flag_enabled?: true, result: false
for user
is expected to eq false
group_owner?: true, saas?: false, licensed?: false, feature_flag_enabled?: false, result: false
for user
is expected to eq false
group_owner?: true, saas?: false, licensed?: false, feature_flag_enabled?: true, result: false
for user
is expected to eq false
group_owner?: true, saas?: false, licensed?: true, feature_flag_enabled?: false, result: false
for user
is expected to eq false
group_owner?: true, saas?: false, licensed?: true, feature_flag_enabled?: true, result: false
for user
is expected to eq false
group_owner?: true, saas?: true, licensed?: false, feature_flag_enabled?: false, result: false
for user
is expected to eq false
group_owner?: true, saas?: true, licensed?: false, feature_flag_enabled?: true, result: false
for user
is expected to eq false
group_owner?: true, saas?: true, licensed?: true, feature_flag_enabled?: false, result: false
for user
is expected to eq false
group_owner?: true, saas?: true, licensed?: true, feature_flag_enabled?: true, result: true
for user
is expected to eq true
#group_level_security_dashboard_data
when it does not have projects
is expected to eq {:can_admin_vulnerability=>"true", :can_view_false_positive=>"false", :dismissal_descriptions=>"{\"ac...140795.svg", :vulnerabilities_export_endpoint=>"/api/v4/security/groups/1409/vulnerability_exports"}
when it has projects
is expected to eq {:can_admin_vulnerability=>"true", :can_view_false_positive=>"false", :dismissal_descriptions=>"{\"ac...140795.svg", :vulnerabilities_export_endpoint=>"/api/v4/security/groups/1409/vulnerability_exports"}
when it does not have projects but has subgroups that do
is expected to eq {:can_admin_vulnerability=>"true", :can_view_false_positive=>"false", :dismissal_descriptions=>"{\"ac...140795.svg", :vulnerabilities_export_endpoint=>"/api/v4/security/groups/1409/vulnerability_exports"}
#group_security_discover_data
builds correct hash
# [RSpecRunTime] Finishing example group ee/spec/helpers/groups/security_features_helper_spec.rb. It took 7.94 seconds. Expected to take 13.67 seconds.
# [RSpecRunTime] Starting example group ee/spec/models/plan_spec.rb. Expected to take 13.05 seconds.
Plan
does not allow STI
#paid?
when 'default'
is expected to be falsey
when 'free'
is expected to be falsey
when 'bronze'
is expected to be truthy
when 'silver'
is expected to be truthy
when 'premium'
is expected to be truthy
when 'gold'
is expected to be truthy
when 'ultimate'
is expected to be truthy
when 'ultimate_trial'
is expected to be truthy
when 'ultimate_trial_paid_customer'
is expected to be truthy
when 'premium_trial'
is expected to be truthy
when 'opensource'
is expected to be truthy
::PLANS_ELIGIBLE_FOR_TRIAL
is expected to eq ["default", "free"]
.with_subscriptions
includes plans that have attached subscriptions
.by_namespace
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
includes plans that have attached subscriptions
.by_distinct_names
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
includes distinct plan names
#paid_excluding_trials?
when 'default'
is expected to be falsey
when 'free'
is expected to be falsey
when 'bronze'
is expected to be truthy
when 'silver'
is expected to be truthy
when 'premium'
is expected to be truthy
when 'gold'
is expected to be truthy
when 'ultimate'
is expected to be truthy
when 'ultimate_trial_paid_customer'
is expected to be truthy
when 'opensource'
is expected to be truthy
when 'ultimate_trial'
is expected to be falsey
when 'premium_trial'
is expected to be falsey
#open_source?
when is opensource
is expected to be truthy
when is not opensource
is expected to be falsey
# [RSpecRunTime] Finishing example group ee/spec/models/plan_spec.rb. It took 4.91 seconds. Expected to take 13.05 seconds.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/issue_type_spec.rb. Expected to take 12.63 seconds.
Types::IssueType
is expected to have graphql field :epic
is expected to have graphql field :has_epic
is expected to have graphql field :has_parent
is expected to have graphql field :iteration
is expected to have graphql field :weight
is expected to have graphql field :health_status
is expected to have graphql field :blocking_count
is expected to have graphql field :blocked
is expected to have graphql field :blocked_by_count
is expected to have graphql field :blocked_by_issues
is expected to have graphql field :sla_due_at
is expected to have graphql field :metric_images
is expected to have graphql field :escalation_policy
is expected to have graphql field :issuable_resource_links
N+1 queries
group issues
behaves like avoids N+1 queries on blocked
is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007b1f00779170 @data={"/app/models/group.rb:1043:block in max_membe...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=12>
# [RSpecRunTime] RSpec elapsed time: 17 minutes 5.09 seconds. Current RSS: ~1522M. Threads: 5. load average: 1.07 1.26 1.18 1/421 7911
.
project issues
behaves like avoids N+1 queries on blocked
is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007b1f003a37f8 @data={"/app/models/group.rb:1043:block in max_membe...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=11>
# [RSpecRunTime] RSpec elapsed time: 17 minutes 7.11 seconds. Current RSS: ~1510M. Threads: 5. load average: 1.07 1.26 1.18 1/421 7912
.
related vulnerabilities
when user signed in
and user is not a member of the project
behaves like does not include related vulnerabilities
does not return related vulnerabilities
# [RSpecRunTime] RSpec elapsed time: 17 minutes 8.41 seconds. Current RSS: ~1504M. Threads: 5. load average: 1.07 1.26 1.18 3/421 7913
.
and user is a member of the project
behaves like includes related vulnerabilities
returns related vulnerabilities
and the issue does not have any related vulnerabilities
behaves like does not include related vulnerabilities
does not return related vulnerabilities
when user is not signed in
behaves like does not include related vulnerabilities
does not return related vulnerabilities
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/issue_type_spec.rb. It took 8.94 seconds. Expected to take 12.63 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/elastic/latest/merge_request_class_proxy_spec.rb. Expected to take 12.11 seconds.
Elastic::Latest::MergeRequestClassProxy
#elastic_search
Job arguments to ElasticAssociationIndexerWorker must be native JSON types, but :issues is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
when search query is an iid
has the correct named queries
# [RSpecRunTime] RSpec elapsed time: 17 minutes 17.1 seconds. Current RSS: ~1419M. Threads: 5. load average: 1.06 1.25 1.18 1/422 7915
.
when include_archived is set
does not have a filter for archived
search on basis of hidden attribute
when feature_flag hide_merge_requests_from_banned_users is disabled
includes merge_requests from the banned authors
when feature_flag hide_merge_requests_from_banned_users is enabled
when current_user is non admin
does not include merge_requests from the banned authors
has the correct named queries
# [RSpecRunTime] RSpec elapsed time: 17 minutes 19.38 seconds. Current RSS: ~1421M. Threads: 5. load average: 1.06 1.25 1.18 2/422 7916
.
when current_user is anonymous
does not include merge_requests from the banned authors
when current_user is admin
includes merge_requests from the banned authors
# [RSpecRunTime] Finishing example group ee/spec/lib/elastic/latest/merge_request_class_proxy_spec.rb. It took 11.14 seconds. Expected to take 12.11 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/app_sec/dast/profiles/create_service_spec.rb. Expected to take 11.63 seconds.
AppSec::Dast::Profiles::CreateService
execute
when on demand scan licensed feature is not available
communicates failure
# [RSpecRunTime] RSpec elapsed time: 17 minutes 22.68 seconds. Current RSS: ~1432M. Threads: 5. load average: 1.06 1.25 1.18 1/422 7947
.
when the feature is enabled
communicates success
creates a dast_profile
audits the creation
when param run_after_create: true
creates a ci_pipeline
behaves like it delegates scan creation to another service
calls AppSec::Dast::Scans::CreateService
# [RSpecRunTime] RSpec elapsed time: 17 minutes 25.12 seconds. Current RSS: ~1455M. Threads: 5. load average: 1.05 1.24 1.18 1/426 7992
.
when param dast_profile_schedule is present
creates the dast_profile_schedule
responds with dast_profile_schedule
audits the creation
when invalid schedule it present
rollback the transaction
returns the error service response
# [RSpecRunTime] RSpec elapsed time: 17 minutes 26.98 seconds. Current RSS: ~1469M. Threads: 5. load average: 1.05 1.24 1.18 1/426 7993
.
when a param is missing
communicates failure
when param tag_list is present
creates a dast_profile with tags
when there is a invalid tag
does not create a new dast_profile
returns an error status
populates message
when tag list for on_demand_scans is available
returns a success status
creates a dast_profile with the tags
# [RSpecRunTime] Finishing example group ee/spec/services/app_sec/dast/profiles/create_service_spec.rb. It took 7.02 seconds. Expected to take 11.63 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/product_analytics/settings_spec.rb. Expected to take 10.94 seconds.
ProductAnalytics::Settings
config settings
can read product_analytics_data_collector_host
can read cube_api_base_url
can read cube_api_key
can read product_analytics_configurator_connection_string
can read product_analytics_data_collector_host
can read cube_api_base_url
can read cube_api_key
when configured
will be configured
# [RSpecRunTime] RSpec elapsed time: 17 minutes 29.58 seconds. Current RSS: ~1498M. Threads: 5. load average: 1.05 1.24 1.18 1/426 7994
.
when not configured
will not be configured
when one configuration setting is missing
will not be configured
with project
will override when provided a project product_analytics_data_collector_host
will will not override when provided a blank project product_analytics_data_collector_host
with project
will override when provided a project cube_api_base_url
will will not override when provided a blank project cube_api_base_url
with project
will override when provided a project cube_api_key
will will not override when provided a blank project cube_api_key
with project
will override when provided a project product_analytics_configurator_connection_string
will will not override when provided a blank project product_analytics_configurator_connection_string
with project
will override when provided a project product_analytics_data_collector_host
will will not override when provided a blank project product_analytics_data_collector_host
with project
will override when provided a project cube_api_base_url
will will not override when provided a blank project cube_api_base_url
with project
will override when provided a project cube_api_key
will will not override when provided a blank project cube_api_key
.enabled?
when enabled
will be enabled
when disabled
will be enabled
# [RSpecRunTime] Finishing example group ee/spec/lib/product_analytics/settings_spec.rb. It took 3.51 seconds. Expected to take 10.94 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/security/delete_security_policy_worker_spec.rb. Expected to take 10.53 seconds.
Security::DeleteSecurityPolicyWorker
#perform
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
# [RSpecRunTime] RSpec elapsed time: 17 minutes 39.68 seconds. Current RSS: ~1488M. Threads: 5. load average: 1.19 1.26 1.19 1/428 8350
.
when the policy type is scan execution policy
deletes the security policy and associated records
# [RSpecRunTime] RSpec elapsed time: 17 minutes 40.83 seconds. Current RSS: ~1465M. Threads: 5. load average: 1.19 1.26 1.19 2/428 8351
.
when the security policy exists
deletes the security policy and associated records
when the security policy does not exist
does not perform any deletes
# [RSpecRunTime] Finishing example group ee/spec/workers/security/delete_security_policy_worker_spec.rb. It took 9.54 seconds. Expected to take 10.53 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/security/security_orchestration_policies/group_protected_branches_deletion_check_service_spec.rb. Expected to take 10.02 seconds.
Security::SecurityOrchestrationPolicies::GroupProtectedBranchesDeletionCheckService#execute
block_branch_modification: false, block_group_branch_modification: {:enabled=>false, :exceptions=>[lazy { group.full_path }]}, expectation: false
is expected to equal false
# [RSpecRunTime] RSpec elapsed time: 17 minutes 42.49 seconds. Current RSS: ~1457M. Threads: 5. load average: 1.19 1.26 1.19 1/427 8382
.
block_branch_modification: false, block_group_branch_modification: {:enabled=>true, :exceptions=>[lazy { group.full_path }]}, expectation: false
is expected to equal false
block_branch_modification: true, block_group_branch_modification: nil, expectation: true
is expected to equal true
block_branch_modification: nil, block_group_branch_modification: {:enabled=>false}, expectation: false
is expected to equal false
block_branch_modification: nil, block_group_branch_modification: nil, expectation: false
is expected to equal false
block_branch_modification: nil, block_group_branch_modification: true, expectation: true
is expected to equal true
block_branch_modification: nil, block_group_branch_modification: false, expectation: false
is expected to equal false
block_branch_modification: false, block_group_branch_modification: {:enabled=>false, :exceptions=>[lazy { group.full_path.reverse }]}, expectation: false
is expected to equal false
block_branch_modification: true, block_group_branch_modification: false, expectation: false
is expected to equal false
block_branch_modification: true, block_group_branch_modification: {:enabled=>false, :exceptions=>[lazy { group.full_path }]}, expectation: false
is expected to equal false
block_branch_modification: true, block_group_branch_modification: {:enabled=>true}, expectation: true
is expected to equal true
block_branch_modification: true, block_group_branch_modification: {:enabled=>false}, expectation: false
is expected to equal false
with feature disabled
is expected to equal false
block_branch_modification: true, block_group_branch_modification: {:enabled=>true, :exceptions=>[lazy { group.full_path }]}, expectation: false
is expected to equal false
without approval_settings
is expected to equal false
block_branch_modification: false, block_group_branch_modification: {:enabled=>true, :exceptions=>[lazy { group.full_path.reverse }]}, expectation: true
is expected to equal true
block_branch_modification: nil, block_group_branch_modification: {:enabled=>true}, expectation: true
is expected to equal true
block_branch_modification: true, block_group_branch_modification: {:enabled=>false, :exceptions=>[lazy { group.full_path.reverse }]}, expectation: false
is expected to equal false
block_branch_modification: true, block_group_branch_modification: true, expectation: true
is expected to equal true
block_branch_modification: true, block_group_branch_modification: {:enabled=>true, :exceptions=>[lazy { group.full_path.reverse }]}, expectation: true
is expected to equal true
with conflicting settings
is expected to equal true
# [RSpecRunTime] Finishing example group ee/spec/services/security/security_orchestration_policies/group_protected_branches_deletion_check_service_spec.rb. It took 3.98 seconds. Expected to take 10.02 seconds.
# [RSpecRunTime] Starting example group ee/spec/tasks/cloud_connector/health_check_rake_spec.rb. Expected to take 9.64 seconds.
cloud_connector:health_check
error handling
handles file write errors gracefully
health check execution
executes the health check with TestProbe
when the probe fails
prints failure messages
handling parameters
when include_details is true
prints probe details
when include_details is not provided
defaults to printing probe details
when filename is provided
saves report to a file
when filename is not provided
does not attempt to save the report to a file
when a username is provided
loads the user and uses it in the health check
prints a warning if the user is not found and proceeds without the user
when a username is not provided
executes the health check without a user
# [RSpecRunTime] Finishing example group ee/spec/tasks/cloud_connector/health_check_rake_spec.rb. It took 5.03 seconds. Expected to take 9.64 seconds.
# [RSpecRunTime] RSpec elapsed time: 17 minutes 50.29 seconds. Current RSS: ~1492M. Threads: 5. load average: 1.16 1.25 1.18 1/422 8383
.
# [RSpecRunTime] Starting example group ee/spec/services/audit_events/streaming/headers/update_service_spec.rb. Expected to take 9.27 seconds.
AuditEvents::Streaming::Headers::UpdateService
#execute
when no header is provided
does not update the header
has an error response
# [RSpecRunTime] RSpec elapsed time: 17 minutes 51.45 seconds. Current RSS: ~1497M. Threads: 5. load average: 1.16 1.25 1.18 1/422 8384
.
behaves like header updation
when header updation is successful
has the header in the response payload
updates the header
with audit events
sends the audit streaming event
with license feature external_audit_events
when both key and value are updated
creates audit event
# [RSpecRunTime] RSpec elapsed time: 17 minutes 53.66 seconds. Current RSS: ~1509M. Threads: 5. load average: 1.16 1.25 1.18 1/422 8385
.
when only the header value is updated
has a audit message reflecting just the value was changed
when only the active attribute is updated
has a audit message reflecting just the active attribute was changed
when neither key, value nor active is updated
behaves like does not create audit event
is expected to not change `AuditEvent.count`
when header updation is unsuccessful
does not update the header
has an error response
behaves like does not create audit event
is expected to not change `AuditEvent.count`
# [RSpecRunTime] RSpec elapsed time: 17 minutes 56.4 seconds. Current RSS: ~1504M. Threads: 5. load average: 1.23 1.27 1.19 1/422 8386
.
# [RSpecRunTime] Finishing example group ee/spec/services/audit_events/streaming/headers/update_service_spec.rb. It took 6.13 seconds. Expected to take 9.27 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/geo/container_repository_sync_service_spec.rb. Expected to take 9.02 seconds.
Geo::ContainerRepositorySyncService
lease handling
returns the lease when sync succeeds
returns the lease when sync fails
skips syncing repositories if cannot obtain a lease
# [RSpecRunTime] RSpec elapsed time: 17 minutes 59.03 seconds. Current RSS: ~1482M. Threads: 5. load average: 1.23 1.27 1.19 1/422 8387
.
#execute
fails registry record if there was exception
fails registry record and saves the error if primary_api_url is not configured
tracks exception
finishes registry record if there was no exception
finishes registry record if there was no exception and registy does not exist
# [RSpecRunTime] RSpec elapsed time: 18 minutes 2.93 seconds. Current RSS: ~1479M. Threads: 5. load average: 1.21 1.26 1.19 1/422 8388
.
reschedules sync due to race condition instead of waiting for backfill
#mark_sync_as_successful
when UpdatedEvent was processed during a sync
reschedules the sync
# [RSpecRunTime] Finishing example group ee/spec/services/geo/container_repository_sync_service_spec.rb. It took 7.35 seconds. Expected to take 9.02 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/dora/aggregate_scores_service_spec.rb. Expected to take 8.8 seconds.
Dora::AggregateScoresService
#execute
when guest user
behaves like request failure
returns error
# [RSpecRunTime] RSpec elapsed time: 18 minutes 6.33 seconds. Current RSS: ~1446M. Threads: 5. load average: 1.19 1.26 1.18 1/422 8389
.
when container is nil
behaves like request failure
returns error
when there is no data for the target month
returns empty data
returns the correct aggregated count
when there is data for the target month
returns the aggregated data
returns the correct aggregated count
when filtering by topic
when single topic
returns the aggregated data
returns the correct aggregated count
# [RSpecRunTime] RSpec elapsed time: 18 minutes 8.95 seconds. Current RSS: ~1473M. Threads: 5. load average: 1.19 1.26 1.18 1/422 8390
.
when multiple topics
returns the aggregated data
returns the correct aggregated count
when there are no authorized projects available to user
returns all empty data
# [RSpecRunTime] Finishing example group ee/spec/services/dora/aggregate_scores_service_spec.rb. It took 5.95 seconds. Expected to take 8.8 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/group_destroy_worker_spec.rb. Expected to take 8.4 seconds.
GroupDestroyWorker
with protective settings
admin_mode_enabled: true, user_is_admin: true, worker_run_in_admin_mode: true, should_delete: true
is expected not to include #<Project id:655 group193/project-2056>>
# [RSpecRunTime] RSpec elapsed time: 18 minutes 11.97 seconds. Current RSS: ~1490M. Threads: 5. load average: 1.17 1.25 1.18 1/422 8391
.
admin_mode_enabled: true, user_is_admin: true, worker_run_in_admin_mode: false, should_delete: false
is expected to raise Groups::DestroyService::DestroyError
admin_mode_enabled: true, user_is_admin: false, worker_run_in_admin_mode: true, should_delete: false
is expected to raise Groups::DestroyService::DestroyError
admin_mode_enabled: true, user_is_admin: false, worker_run_in_admin_mode: false, should_delete: false
is expected to raise Groups::DestroyService::DestroyError
admin_mode_enabled: false, user_is_admin: true, worker_run_in_admin_mode: true, should_delete: true
is expected not to include #<Project id:655 group193/project-2056>>
admin_mode_enabled: false, user_is_admin: true, worker_run_in_admin_mode: false, should_delete: true
is expected not to include #<Project id:655 group193/project-2056>>
admin_mode_enabled: false, user_is_admin: false, worker_run_in_admin_mode: true, should_delete: false
is expected to raise Groups::DestroyService::DestroyError
admin_mode_enabled: false, user_is_admin: false, worker_run_in_admin_mode: false, should_delete: false
is expected to raise Groups::DestroyService::DestroyError
# [RSpecRunTime] Finishing example group ee/spec/workers/group_destroy_worker_spec.rb. It took 5.34 seconds. Expected to take 8.4 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/epics/epic_links/list_service_spec.rb. Expected to take 8.11 seconds.
Epics::EpicLinks::ListService
#execute
when epics feature is disabled
returns an empty array
# [RSpecRunTime] RSpec elapsed time: 18 minutes 16.31 seconds. Current RSS: ~1502M. Threads: 5. load average: 1.16 1.25 1.18 1/422 8392
.
when epics feature is enabled
group member can see all child epics
returns related issues JSON
# [RSpecRunTime] RSpec elapsed time: 18 minutes 18.01 seconds. Current RSS: ~1483M. Threads: 5. load average: 1.16 1.25 1.18 1/422 8393
.
with nested groups
returns all child epics for a group member
returns only some child epics for a subgroup member
# [RSpecRunTime] RSpec elapsed time: 18 minutes 22.99 seconds. Current RSS: ~1441M. Threads: 5. load average: 1.15 1.24 1.18 1/422 8394
.
# [RSpecRunTime] Finishing example group ee/spec/services/epics/epic_links/list_service_spec.rb. It took 7.93 seconds. Expected to take 8.11 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/app_sec/dast/profiles/build_config_service_spec.rb. Expected to take 7.87 seconds.
AppSec::Dast::Profiles::BuildConfigService
#execute
includes all profiles in the payload
behaves like a fetch operation
when licensed
when the profile exists
includes the profile in the payload
# [RSpecRunTime] RSpec elapsed time: 18 minutes 24.2 seconds. Current RSS: ~1439M. Threads: 5. load average: 1.14 1.24 1.18 1/422 8395
.
when the profile is not provided
does not include the profile in the payload
when the profile does not exist
behaves like an error occurred
communicates failure
when the profile cannot be read
behaves like an error occurred
communicates failure
when the user cannot create dast scans
behaves like an error occurred
communicates failure
when not licensed
behaves like an error occurred
communicates failure
behaves like a fetch operation
when licensed
when the profile exists
includes the profile in the payload
when the profile is not provided
does not include the profile in the payload
when the profile does not exist
behaves like an error occurred
communicates failure
when the profile cannot be read
behaves like an error occurred
communicates failure
when the user cannot create dast scans
behaves like an error occurred
communicates failure
when not licensed
behaves like an error occurred
communicates failure
# [RSpecRunTime] Finishing example group ee/spec/services/app_sec/dast/profiles/build_config_service_spec.rb. It took 4.04 seconds. Expected to take 7.87 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/compliance_management/pipl/update_user_country_access_logs_service_spec.rb. Expected to take 7.59 seconds.
ComplianceManagement::Pipl::UpdateUserCountryAccessLogsService
#execute
when user is nil
does not create a CountryAccessLog record
when country_code is nil
does not create a CountryAccessLog record
when country_code is not in %w[CN HK MO]
resets the access counts of access log records from ["CN", "HK", "MO"]
behaves like does not enqueue job to check if user is paid
does not enqueue job to check if user is paid
when country_code is in ["CN", "HK", "MO"]
when user access was tracked within the past 24 hours
does not create a new access log
when user has existing access logs
does not update existing log access records
does not update the user's last_access_from_pipl_country_at
behaves like does not enqueue job to check if user is paid
does not enqueue job to check if user is paid
when user has no existing access logs
creates a new record with the correct attribute values
when user has existing logs
updates the existing log record correctly
behaves like does not enqueue job to check if user is paid
does not enqueue job to check if user is paid
background job to check if user is paid
when user has exclusively accessed from PIPL-covered countries
with duration > 6 months
behaves like job is enqueued
enqueues job
with duration < 6 months
behaves like does not enqueue job to check if user is paid
does not enqueue job to check if user is paid
with a single access log record with access count >= 5
behaves like job is enqueued
enqueues job
with a single access log record with access count < 5
behaves like does not enqueue job to check if user is paid
does not enqueue job to check if user is paid
with accesses from multiple PIPL-covered countries
with sum of access counts < 5
behaves like does not enqueue job to check if user is paid
does not enqueue job to check if user is paid
with sum of access counts >= 5
behaves like job is enqueued
enqueues job
# [RSpecRunTime] Finishing example group ee/spec/services/compliance_management/pipl/update_user_country_access_logs_service_spec.rb. It took 2.83 seconds. Expected to take 7.59 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/usage/metrics/instrumentations/count_merge_requests_with_applied_scan_result_policies_metric_spec.rb. Expected to take 7.36 seconds.
Gitlab::Usage::Metrics::Instrumentations::CountMergeRequestsWithAppliedScanResultPoliciesMetric
behaves like a correct instrumented metric value and query
behaves like a correct instrumented metric value
has correct value
# [RSpecRunTime] RSpec elapsed time: 18 minutes 37.02 seconds. Current RSS: ~1505M. Threads: 5. load average: 1.11 1.23 1.18 1/428 8929
.
behaves like a correct instrumented metric query
has correct generate query
behaves like a correct instrumented metric value and query
behaves like a correct instrumented metric value
has correct value
behaves like a correct instrumented metric query
has correct generate query
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/usage/metrics/instrumentations/count_merge_requests_with_applied_scan_result_policies_metric_spec.rb. It took 7.58 seconds. Expected to take 7.36 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/epics/update_cached_metadata_worker_spec.rb. Expected to take 7.16 seconds.
Epics::UpdateCachedMetadataWorker
#perform
logs extra params
is labeled as idempotent
performs multiple times sequentially without raising an exception
behaves like successful metadata update
updates epic issue cached metadata and changes are propagated to ancestors
# [RSpecRunTime] RSpec elapsed time: 18 minutes 39.73 seconds. Current RSS: ~1489M. Threads: 5. load average: 1.10 1.23 1.18 1/427 8930
.
behaves like successful metadata update
updates epic issue cached metadata and changes are propagated to ancestors
when epic id not found
does nothing
when multiple epic ids are passed
updates epic issue cached metadata for each epic
obtains exclusive lock for each epic
when some epics are locked
re-schedules the job for locked epics
when epic's group was deleted during cache update
skips invalid epic and logs an error
# [RSpecRunTime] Finishing example group ee/spec/workers/epics/update_cached_metadata_worker_spec.rb. It took 3.67 seconds. Expected to take 7.16 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_reviewer_first_assigned_at_spec.rb. Expected to take 6.89 seconds.
Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestReviewerFirstAssignedAt
behaves like LEFT JOIN-able value stream analytics event
can use the event as LEFT JOIN
when looking at the record with data
contains the timestamp expression
# [RSpecRunTime] RSpec elapsed time: 18 minutes 44.94 seconds. Current RSS: ~1505M. Threads: 5. load average: 1.10 1.22 1.18 1/428 9286
.
when looking at the record without data
returns nil for the timestamp expression
behaves like value stream analytics event
is expected to be a kind of String
is expected to be a kind of Symbol
is expected to include ApplicationRecord(abstract)
is expected to respond to #timestamp_projection
is expected to respond to #html_description
is expected to be a kind of Array
#apply_query_customization
expects an ActiveRecord::Relation object as argument and returns a modified version of it
#hash_code
returns a hash that uniquely identifies an event
does not differ when the same object is built with the same params
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_reviewer_first_assigned_at_spec.rb. It took 4.92 seconds. Expected to take 6.89 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/status_page/publish_service_spec.rb. Expected to take 6.76 seconds.
StatusPage::PublishService
#execute
publish details
when upload succeeds
uploads incident details and list
behaves like an incident management tracked event
.track_event
tracks the event using redis
behaves like Snowplow event tracking with RedisHLL context
behaves like Snowplow event tracking
is emitted
when upload fails
propagates the exception
unpublish details
when unpublish succeeds
unpublishes incident details and uploads incident list
behaves like does not track incident management event
does not track the event
when unpublish service responses with error
returns the response
publish list
when upload fails
returns error response
with unrelated issue
returns error issue not found
when user cannot publish
returns error missing publish permission
# [RSpecRunTime] Finishing example group ee/spec/services/status_page/publish_service_spec.rb. It took 3.14 seconds. Expected to take 6.76 seconds.
# [RSpecRunTime] Starting example group ee/spec/policies/ci/subscriptions/project_policy_spec.rb. Expected to take 6.5 seconds.
Ci::Subscriptions::ProjectPolicy
when user has no permissions
is expected to be disallowed :read_project_subscription
# [RSpecRunTime] RSpec elapsed time: 18 minutes 51.41 seconds. Current RSS: ~1517M. Threads: 5. load average: 1.09 1.22 1.17 1/427 9347
.
when user is maintainer for the downstream project
is expected to be disallowed :read_project_subscription
is expected to be allowed :delete_project_subscription
when user is developer for both projects
is expected to be disallowed :read_project_subscription
when user is a developer for the upstream project
is expected to be disallowed :read_project_subscription
when user does have access to project
when user is a developer on the upstream project
is expected to be allowed :read_project_subscription
when user does not have maintainer access to project
is expected to be disallowed :delete_project_subscription
# [RSpecRunTime] Finishing example group ee/spec/policies/ci/subscriptions/project_policy_spec.rb. It took 4.69 seconds. Expected to take 6.5 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/gitlab_subscriptions/add_on_purchases/self_managed/license_add_ons/info_spec.rb. Expected to take 6.4 seconds.
GitlabSubscriptions::AddOnPurchases::SelfManaged::LicenseAddOns::Info
#active?
is expected to equal true
when started_on is blank
is expected to equal false
when expires_on is blank
is expected to equal false
when started_on is today
is expected to equal true
when started_on is in the future
is expected to equal false
when expires_on is in the past
is expected to equal false
when expires_on is today
is expected to equal false
#initialize
initializes with quantity, started_at, expires_on, purchase_xid, and trial
when quantity is not an integer
converts quantity to an integer
when started_on is a string
converts started_on to a date
when started_on cannot be converted to a date
returns nil for started_on
when expires_on is a string
converts expires_on to a date
when expires_on cannot be converted to a date
returns nil for expires_on
when trial is true
sets trial to true
when trial is not given
defaults to false for trial
# [RSpecRunTime] Finishing example group ee/spec/services/gitlab_subscriptions/add_on_purchases/self_managed/license_add_ons/info_spec.rb. It took 1.63 seconds. Expected to take 6.4 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/graphql/aggregations/vulnerabilities/lazy_user_notes_count_aggregate_spec.rb. Expected to take 6.09 seconds.
Gitlab::Graphql::Aggregations::Vulnerabilities::LazyUserNotesCountAggregate
#initialize
adds the vulnerability to the lazy state
when there are existing pending_vulnerability_ids
uses lazy_user_notes_count_aggregate to collect aggregates
# [RSpecRunTime] RSpec elapsed time: 18 minutes 57.2 seconds. Current RSS: ~1543M. Threads: 5. load average: 1.08 1.21 1.17 1/422 9348
.
#execute
if the record has already been loaded
does not make the query again
if the record has not been loaded
makes the query
clears the pending IDs
# [RSpecRunTime] RSpec elapsed time: 19 minutes 1.05 seconds. Current RSS: ~1515M. Threads: 5. load average: 1.07 1.21 1.17 1/422 9349
.
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/graphql/aggregations/vulnerabilities/lazy_user_notes_count_aggregate_spec.rb. It took 5.56 seconds. Expected to take 6.09 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/gitlab_subscriptions/refresh_seats_worker_spec.rb. Expected to take 5.93 seconds.
GitlabSubscriptions::RefreshSeatsWorker
#perform_work
with GitlabSubscriptions requiring refresh
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
when the DB is not read-only
with a paid plan
is labeled as idempotent
performs multiple times sequentially without raising an exception
updates seat count columns
updates last_seat_refresh_at without callbacks
# [RSpecRunTime] RSpec elapsed time: 19 minutes 2.18 seconds. Current RSS: ~1514M. Threads: 5. load average: 1.07 1.21 1.17 1/422 9350
.
with a free plan
does not update seat columns
with a trial plan
does not update seat columns
when the database is read_only
does not update seat columns
with no GitlabSubscriptions requiring refresh
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
does not update seat columns
#max_running_jobs
is expected to eq 6
#remaining_work_count
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
when there is remaining work
is expected to eq 7
# [RSpecRunTime] RSpec elapsed time: 19 minutes 4.63 seconds. Current RSS: ~1514M. Threads: 5. load average: 1.07 1.21 1.17 1/422 9351
.
when there is no remaining work
is expected to eq 0
# [RSpecRunTime] Finishing example group ee/spec/workers/gitlab_subscriptions/refresh_seats_worker_spec.rb. It took 3.83 seconds. Expected to take 5.93 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/git_audit_event_spec.rb. Expected to take 5.84 seconds.
Gitlab::GitAuditEvent
#enabled?
with successfully sending
when player is a regular user
is enable
# [RSpecRunTime] RSpec elapsed time: 19 minutes 6.23 seconds. Current RSS: ~1490M. Threads: 5. load average: 1.07 1.21 1.17 1/422 9352
.
when player is ::API::Support::GitAccessActor
Job arguments to AuthorizedKeysWorker must be native JSON types, but :add_key is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is enable too
with disallowed senarios
when feature flag is disabled
is disallowed
when group is blank
is disable
when group audit streaming event is not set
is disable
when user is blank
is disable
when Gitlab.com? is true
is disable
#send_audit_event
with successfully sending
when player is a regular user
sends git audit event
when player is ::API::Support::GitAccessActor
Job arguments to AuthorizedKeysWorker must be native JSON types, but :add_key is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
sends git audit event
when user is blank
does not send git audit event
when project is blank
does not send git audit event
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/git_audit_event_spec.rb. It took 3.2 seconds. Expected to take 5.84 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab_subscriptions/purchase_url_builder_spec.rb. Expected to take 5.55 seconds.
GitlabSubscriptions::PurchaseUrlBuilder
#build
when not eligible to be redirected to the CustomersDot purchase flow
when the gitlab purchase flow supports this namespace
generates the gitlab purchase flow URL
when supplied additional parameters
includes the params in the URL
when the current_user does not have a last name
generates the customers dot flow URL
when the namespace is a user namespace
generates the customers dot flow URL
when eligible to be redirected to the CustomersDot purchase flow
generates the customers dot flow URL
when supplied additional parameters
includes the params in the URL
when we do not pass the namespace
generates the new subscriptions group path
#customers_dot_flow?
when both migration feature flags are disabled
returns false
when the user has a valid billing account
when the migrate_purchase_flows_for_existing_customers feature is enabled
returns true
when the migrate_purchase_flows_for_existing_customers feature is disabled
returns false
when the user does not have a valid billing account
when the migrate_purchase_flows_for_new_customers is enabled
returns true
when the migrate_purchase_flows_for_new_customers is disabled
returns false
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab_subscriptions/purchase_url_builder_spec.rb. It took 1.91 seconds. Expected to take 5.55 seconds.
# [RSpecRunTime] Starting example group ee/spec/models/gitlab_subscriptions/add_on_spec.rb. Expected to take 5.52 seconds.
GitlabSubscriptions::AddOn
does not allow STI
validations
is expected to validate that :name cannot be empty/falsy
is expected to validate that :name is unique
is expected to validate that :description cannot be empty/falsy
is expected to validate that the length of :description is at most 512
.find_or_create_by_name
creates a new record with the correct description
when a record was found
returns the found add-on
does not create a new record
with product_analytics add-on
when feature flag is disabled
raises an ArgumentError
when feature flag is enabled
creates a new record
associations
is expected to have many add_on_purchases inverse_of => add_on
.descriptions
returns a description for each defined add-on
# [RSpecRunTime] Finishing example group ee/spec/models/gitlab_subscriptions/add_on_spec.rb. It took 1.36 seconds. Expected to take 5.52 seconds.
# [RSpecRunTime] Starting example group ee/spec/models/ee/users_statistics_spec.rb. Expected to take 5.39 seconds.
UsersStatistics
does not allow STI
#billable
sums users statistics values excluding blocked users and bots
when there is an ultimate license
excludes blocked users, bots, guest users, users without a group or project and minimal access users
#active
includes minimal access roles
#non_billable
sums bots and guests values
#non_billable_guests
sums only guests without an elevating custom role
.create_current_stats!
includes minimal access in current statistics values
includes guests with custom role in current statistics values
# [RSpecRunTime] Finishing example group ee/spec/models/ee/users_statistics_spec.rb. It took 1.56 seconds. Expected to take 5.39 seconds.
# [RSpecRunTime] Starting example group ee/spec/serializers/ee/admin/abuse_report_details_entity_spec.rb. Expected to take 5.12 seconds.
Admin::AbuseReportDetailsEntity
users credit card
when the user has no verified credit card
does not expose the credit card
when the user does have a verified credit card
exposes the credit card
when on ee
includes the path to the admin card matches page
users phone number
when the user has no phone number validation attempts
does not expose the phone number
when the user does have phone number validation attempts
exposes the phone number
phone verification state
when the user has no phone number validation attempts
is expected to eq false
when the user has a validated phone number
is expected to eq true
when the user has an unvalidated phone number
is expected to eq false
user's plan
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is included
# [RSpecRunTime] Finishing example group ee/spec/serializers/ee/admin/abuse_report_details_entity_spec.rb. It took 2.0 seconds. Expected to take 5.12 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/namespaces/export/membership_collector_spec.rb. Expected to take 4.99 seconds.
Namespaces::Export::MembershipCollector
#execute
returns correct data
# [RSpecRunTime] RSpec elapsed time: 19 minutes 20.85 seconds. Current RSS: ~1468M. Threads: 5. load average: 1.05 1.20 1.17 1/422 9353
.
# [RSpecRunTime] Finishing example group ee/spec/services/namespaces/export/membership_collector_spec.rb. It took 5.94 seconds. Expected to take 4.99 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/adjourned_group_deletion_worker_spec.rb. Expected to take 4.94 seconds.
AdjournedGroupDeletionWorker
#perform
only schedules to delete groups marked for deletion on or before the specified `deletion_adjourned_period`
does not schedule to delete a group not marked for deletion
does not schedule to delete a group that is marked for deletion after the specified `deletion_adjourned_period`
schedules groups 20 seconds apart
when admin_mode setting is enabled but group was not deleted by admin
does not pass admin_mode flag to GroupDestroyWorker
# [RSpecRunTime] RSpec elapsed time: 19 minutes 22.3 seconds. Current RSS: ~1459M. Threads: 5. load average: 1.05 1.20 1.17 1/422 9354
.
when group was deleted by admin
#perform
when admin_mode setting is enabled
passes admin_mode option to GroupDestroyWorker
when admin_mode setting is disabled
does not pass admin_mode option to GroupDestroyWorker
# [RSpecRunTime] Finishing example group ee/spec/workers/adjourned_group_deletion_worker_spec.rb. It took 1.94 seconds. Expected to take 4.94 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/search/zoekt/task_failed_event_worker_spec.rb. Expected to take 4.83 seconds.
Search::Zoekt::TaskFailedEventWorker
behaves like worker with data consistency
.get_data_consistency_feature_flag_enabled?
returns true
.get_data_consistency
returns correct data consistency
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
when retries_left is greater than one
decrements the retries_left and not change the state
when retries_left is equal to one
decrements the retries_left and change the state to failed
behaves like subscribes to event
consumes the published event
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
# [RSpecRunTime] Finishing example group ee/spec/workers/search/zoekt/task_failed_event_worker_spec.rb. It took 1.76 seconds. Expected to take 4.83 seconds.
# [RSpecRunTime] Starting example group ee/spec/helpers/preferences_helper_spec.rb. Expected to take 4.65 seconds.
PreferencesHelper
#dashboard_choices
when allowed to read operations dashboard
does not contain operations dashboard
when not allowed to read operations dashboard
does not contain operations dashboard
#group_view_choices
when security dashboard feature is enabled
is expected to include ["Security dashboard", :security_dashboard]
when security dashboard feature is disabled
is expected not to include ["Security dashboard", :security_dashboard]
#group_overview_content_preference?
when security dashboard feature is enabled
is expected to eq true
when security dashboard feature is disabled
is expected to eq false
#should_show_code_suggestions_preferences?
is expected to eq true
when the feature flag is disabled
is expected to eq false
#show_exact_code_search_settings?
is expected to eq true
when zoekt_search_enabled? is set to false in ApplicationSetting
is expected to eq false
when has_zoekt_indexed_namespace? is false for a user
is expected to eq false
# [RSpecRunTime] Finishing example group ee/spec/helpers/preferences_helper_spec.rb. It took 1.58 seconds. Expected to take 4.65 seconds.
# [RSpecRunTime] Starting example group ee/spec/finders/incident_management/escalation_rules_finder_spec.rb. Expected to take 4.5 seconds.
IncidentManagement::EscalationRulesFinder
#execute
when project is given
returns the rules in the project for different types of project inputs
when removed rules should be included
is expected to contain exactly #<IncidentManagement::EscalationRule id: 3, policy_id: 1, oncall_schedule_id: 3, status: "acknowledged", elapsed_time_seconds: 300, is_removed: true, user_id: nil, project_id: nil>, #<IncidentManagement::EscalationRule id: 4, policy_id: 1, oncall_schedule_id: nil, status: "acknowledged", elapsed_time_seconds: 300, is_removed: false, user_id: 1019, project_id: nil>, #<IncidentManagement::EscalationRule id: 5, policy_id: 1, oncall_schedule_id: nil, status: "acknowledged", elapsed_time_seconds: 300, is_removed: false, user_id: 1020, project_id: nil>, and #<IncidentManagement::EscalationRule id: 1, policy_id: 1, oncall_schedule_id: 1, status: "acknowledged", elapsed_time_seconds: 300, is_removed: false, user_id: nil, project_id: nil>
# [RSpecRunTime] RSpec elapsed time: 19 minutes 27.58 seconds. Current RSS: ~1495M. Threads: 5. load average: 1.05 1.19 1.17 1/422 9355
.
when user is given
returns the user rules for different types of user inputs
when group member is given
is expected to contain exactly #<IncidentManagement::EscalationRule id: 4, policy_id: 1, oncall_schedule_id: nil, status: "acknowledged", elapsed_time_seconds: 300, is_removed: false, user_id: 1019, project_id: nil> and #<IncidentManagement::EscalationRule id: 6, policy_id: 2, oncall_schedule_id: nil, status: "acknowledged", elapsed_time_seconds: 300, is_removed: false, user_id: 1019, project_id: nil>
when member does not belong to a user
is expected to raise ArgumentError with "Member does not correspond to a user"
when project member is given
is expected to contain exactly #<IncidentManagement::EscalationRule id: 5, policy_id: 1, oncall_schedule_id: nil, status: "acknowledged", elapsed_time_seconds: 300, is_removed: false, user_id: 1020, project_id: nil>
when user is also given
is expected to raise ArgumentError with "Member param cannot be used with project or user params"
when project is also given
is expected to raise ArgumentError with "Member param cannot be used with project or user params"
# [RSpecRunTime] Finishing example group ee/spec/finders/incident_management/escalation_rules_finder_spec.rb. It took 2.35 seconds. Expected to take 4.5 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/sidebars/admin/panel_spec.rb. Expected to take 4.39 seconds.
Sidebars::Admin::Panel
#configure_menus
when instance is self-managed
when instance has a paid license
renders ai-powered features menu
behaves like hides code suggestions menu
does not render code suggestions menu
when ai_custom_model feature is disabled
renders code suggestions menu
behaves like hides ai-powered features menu
does not render ai-powered features menu
when instance has no paid license
behaves like hides code suggestions menu
does not render code suggestions menu
behaves like hides ai-powered features menu
does not render ai-powered features menu
when instance is SaaS
behaves like hides code suggestions menu
does not render code suggestions menu
behaves like hides ai-powered features menu
does not render ai-powered features menu
behaves like a panel with uniquely identifiable menu items
all menu_items have unique item_id
all menu_items have an item_id
behaves like a panel without placeholders
has no Sidebars::NilMenuItem
behaves like a panel instantiable by the anonymous user
is expected to be a kind of Sidebars::Admin::Panel
# [RSpecRunTime] Finishing example group ee/spec/lib/sidebars/admin/panel_spec.rb. It took 1.6 seconds. Expected to take 4.39 seconds.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/asset_type_spec.rb. Expected to take 4.26 seconds.
Types::Vulnerabilities::AssetType
Job arguments to FlushCounterIncrementsWorker must be native JSON types, but :build_artifacts_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is expected to eq "AssetType"
is expected to have graphql fields :name, :type, and :url
checking field contents
checks the contents of the assets field
# [RSpecRunTime] RSpec elapsed time: 19 minutes 32.14 seconds. Current RSS: ~1509M. Threads: 5. load average: 1.04 1.19 1.17 1/422 9356
.
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/asset_type_spec.rb. It took 2.06 seconds. Expected to take 4.26 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/compliance_management/merge_requests/create_compliance_violations_service_spec.rb. Expected to take 4.17 seconds.
ComplianceManagement::MergeRequests::CreateComplianceViolationsService
when the compliance center feature is disabled
behaves like does not call process_merge_request
aggregate_failures
# [RSpecRunTime] RSpec elapsed time: 19 minutes 35.96 seconds. Current RSS: ~1512M. Threads: 5. load average: 1.04 1.19 1.17 1/428 9698
.
when the compliance center feature is enabled
and the merge request is not merged
does not call process_merge_request
and the merge request is merged
calls process_merge_request
# [RSpecRunTime] Finishing example group ee/spec/services/compliance_management/merge_requests/create_compliance_violations_service_spec.rb. It took 4.08 seconds. Expected to take 4.17 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/dashboard/environments/list_service_spec.rb. Expected to take 4.07 seconds.
Dashboard::Environments::ListService
#execute
returns a list of projects
when unlicensed
returns an empty array
# [RSpecRunTime] RSpec elapsed time: 19 minutes 38.75 seconds. Current RSS: ~1512M. Threads: 5. load average: 1.04 1.19 1.17 1/427 9729
.
# [RSpecRunTime] Finishing example group ee/spec/services/dashboard/environments/list_service_spec.rb. It took 2.55 seconds. Expected to take 4.07 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/remote_development/workspace_operations/reconcile/input/params_validator_spec.rb. Expected to take 3.93 seconds.
RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ParamsValidator
when original_params are valid
when update_type is "full"
behaves like success result
return an ok Result containing the original context which was passed
when error_details nil
behaves like success result
return an ok Result containing the original context which was passed
with error_details present
behaves like success result
return an ok Result containing the original context which was passed
behaves like success result
return an ok Result containing the original context which was passed
when original_params are invalid
when missing required entries
behaves like err result
returns an err Result containing error details nil original_params and an error
for workspace_agent_infos
when not an array
behaves like err result
returns an err Result containing error details nil original_params and an error
for update_type
when not "partial" or "full"
behaves like err result
returns an err Result containing error details nil original_params and an error
for error_details
when error_type is missing
behaves like err result
returns an err Result containing error details nil original_params and an error
when error_type has an invalid context
behaves like err result
returns an err Result containing error details nil original_params and an error
for termination_progress
when termination_progress is invalid
behaves like err result
returns an err Result containing error details nil original_params and an error
# [RSpecRunTime] Finishing example group ee/spec/lib/remote_development/workspace_operations/reconcile/input/params_validator_spec.rb. It took 1.2 seconds. Expected to take 3.93 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/sidebars/admin/menus/code_suggestions_menu_spec.rb. Expected to take 3.86 seconds.
Sidebars::Admin::Menus::CodeSuggestionsMenu
behaves like Admin menu without sub menus
does not contain any sub menu(s)
defines correct active route
behaves like Admin menu
renders the correct link
renders the correct title
renders the correct icon
renders the separator if needed
#render?
when user is admin
renders
when user is not admin
does not render
when user is not logged in
does not render
# [RSpecRunTime] Finishing example group ee/spec/lib/sidebars/admin/menus/code_suggestions_menu_spec.rb. It took 1.03 seconds. Expected to take 3.86 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/security/refresh_compliance_framework_security_policies_worker_spec.rb. Expected to take 3.69 seconds.
Security::RefreshComplianceFrameworkSecurityPoliciesWorker
invokes Security::ProcessScanResultPolicyWorker with the project_id and configuration_id
behaves like subscribes to event
consumes the published event
receives the event
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
# [RSpecRunTime] RSpec elapsed time: 19 minutes 43.8 seconds. Current RSS: ~1526M. Threads: 5. load average: 1.04 1.18 1.16 1/427 9730
.
# [RSpecRunTime] Finishing example group ee/spec/workers/security/refresh_compliance_framework_security_policies_worker_spec.rb. It took 2.79 seconds. Expected to take 3.69 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/set_user_status_based_on_user_cap_setting_worker_spec.rb. Expected to take 3.63 seconds.
SetUserStatusBasedOnUserCapSettingWorker
#perform
when user cap is set to nil
does not send an email to active admins
when current billable user count is less than user cap
does not send an email to active admins
when current billable user count is equal to user cap
sends an email to every active admin
when current billable user count is greater than user cap
sends an email to every active admin
when the auto-creation of an omniauth user is blocked
when the user is an omniauth user
does not send an email to active admins
# [RSpecRunTime] Finishing example group ee/spec/workers/set_user_status_based_on_user_cap_setting_worker_spec.rb. It took 1.15 seconds. Expected to take 3.63 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/sbom/process_vulnerabilities_worker_spec.rb. Expected to take 3.51 seconds.
Sbom::ProcessVulnerabilitiesWorker
#handle_event
calls Sbom::CreateVulnerabilitiesService
behaves like subscribes to event
consumes the published event
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
# [RSpecRunTime] RSpec elapsed time: 19 minutes 46.15 seconds. Current RSS: ~1506M. Threads: 5. load average: 1.03 1.18 1.16 1/427 9731
.
with feature flag disabled
does not call Sbom::CreateVulnerabilitiesService
# [RSpecRunTime] Finishing example group ee/spec/workers/sbom/process_vulnerabilities_worker_spec.rb. It took 1.32 seconds. Expected to take 3.51 seconds.
# [RSpecRunTime] Starting example group ee/spec/graphql/mutations/security_policy/create_security_policy_project_async_spec.rb. Expected to take 3.39 seconds.
Mutations::SecurityPolicy::CreateSecurityPolicyProjectAsync
#resolve
when fullPath is not provided
raises exception
for project
behaves like triggers the create security policy project worker
when licensed feature is available
when user is an owner of the container
triggers the worker
when user is not an owner
raises exception
when feature is not licensed
raises exception
for namespace
behaves like triggers the create security policy project worker
when licensed feature is available
when user is an owner of the container
triggers the worker
when user is not an owner
raises exception
when feature is not licensed
raises exception
# [RSpecRunTime] Finishing example group ee/spec/graphql/mutations/security_policy/create_security_policy_project_async_spec.rb. It took 2.39 seconds. Expected to take 3.39 seconds.
# [RSpecRunTime] Starting example group ee/spec/graphql/mutations/requirements_management/create_requirement_spec.rb. Expected to take 3.29 seconds.
Mutations::RequirementsManagement::CreateRequirement
#resolve
behaves like requirements not available
raises a not accessible error
when the user can create requirements
when requirements feature is available
Job arguments to Integrations::GroupMentionWorker must be native JSON types, but :mentionable_type is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
creates new requirement
when requirements feature is disabled
behaves like requirements not available
raises a not accessible error
# [RSpecRunTime] Finishing example group ee/spec/graphql/mutations/requirements_management/create_requirement_spec.rb. It took 1.83 seconds. Expected to take 3.29 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/llm/chain/utils/chat_conversation_spec.rb. Expected to take 3.21 seconds.
Gitlab::Llm::Chain::Utils::ChatConversation
#truncated_conversation_list
with different messages
returns only successful conversations in a right order
with limit on messages
returns exact number of messages
with more messages than default limit
returns exact number of messages
with empty history
returns an empty conversation
with nil message
returns only successful conversations in a right order
with duplicating roles message
returns only successful conversations in a right order
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/llm/chain/utils/chat_conversation_spec.rb. It took 0.83 second. Expected to take 3.21 seconds.
# [RSpecRunTime] Starting example group ee/spec/policies/ai/duo_workflows/workflow_policy_spec.rb. Expected to take 3.07 seconds.
Ai::DuoWorkflows::WorkflowPolicy
read_duo_workflow and update_duo_workflow
when duo_workflow FF is disabled
is expected to be disallowed :read_duo_workflow
is expected to be disallowed :update_duo_workflow
# [RSpecRunTime] RSpec elapsed time: 19 minutes 52.58 seconds. Current RSS: ~1497M. Threads: 5. load average: 1.03 1.18 1.16 1/421 9732
.
when duo_workflow FF is enabled
when user is guest
is expected to be disallowed :read_duo_workflow
is expected to be disallowed :update_duo_workflow
when user is developer
when user is not workflow owner
is expected to be disallowed :read_duo_workflow
is expected to be disallowed :update_duo_workflow
when user is workflow owner
is expected to be allowed :read_duo_workflow
is expected to be allowed :update_duo_workflow
# [RSpecRunTime] Finishing example group ee/spec/policies/ai/duo_workflows/workflow_policy_spec.rb. It took 2.06 seconds. Expected to take 3.07 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/click_house/event_paths_consistency_cron_worker_spec.rb. Expected to take 3.02 seconds.
ClickHouse::EventPathsConsistencyCronWorker
when ClickHouse is enabled
when ClickHouse is not configured
does nothing
when ClickHouse is disabled
does nothing
# [RSpecRunTime] Finishing example group ee/spec/workers/click_house/event_paths_consistency_cron_worker_spec.rb. It took 0.28 second. Expected to take 3.02 seconds.
# [RSpecRunTime] Starting example group ee/spec/models/dora/time_to_restore_service_metric_spec.rb. Expected to take 2.96 seconds.
Dora::TimeToRestoreServiceMetric
does not allow STI
#data_queries
for production environment
returns median of incidents duration closed at given date
# [RSpecRunTime] RSpec elapsed time: 19 minutes 55.91 seconds. Current RSS: ~1512M. Threads: 5. load average: 0.95 1.16 1.16 1/421 9763
.
for non-production environment
does not calculate time_to_restore_service daily metric
# [RSpecRunTime] Finishing example group ee/spec/models/dora/time_to_restore_service_metric_spec.rb. It took 2.37 seconds. Expected to take 2.96 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/usage/metrics/instrumentations/count_external_status_checks_metric_spec.rb. Expected to take 2.81 seconds.
Gitlab::Usage::Metrics::Instrumentations::CountExternalStatusChecksMetric
behaves like a correct instrumented metric value and query
behaves like a correct instrumented metric value
has correct value
# [RSpecRunTime] RSpec elapsed time: 19 minutes 57.74 seconds. Current RSS: ~1505M. Threads: 5. load average: 0.95 1.16 1.16 1/421 9764
.
behaves like a correct instrumented metric query
has correct generate query
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/usage/metrics/instrumentations/count_external_status_checks_metric_spec.rb. It took 1.84 seconds. Expected to take 2.81 seconds.
# [RSpecRunTime] Starting example group ee/spec/views/admin/users/_phone_info.html.haml_spec.rb. Expected to take 2.72 seconds.
admin/users/_phone_info.html.haml
does not show validated_at date
when user is validated
shows matches link
shows validated_at date
shows last attempted number
# [RSpecRunTime] Finishing example group ee/spec/views/admin/users/_phone_info.html.haml_spec.rb. It took 0.71 second. Expected to take 2.72 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/ee/gitlab/ci/status/build/manual_spec.rb. Expected to take 2.66 seconds.
Gitlab::Ci::Status::Build::Manual
#illustration
is expected to include :image, :size, :title, and :content
with protected environments
when user does not have access
is expected to match /This deployment job does not run automatically and must be started manually, but you do not have access to this job's protected environment/
# [RSpecRunTime] RSpec elapsed time: 20 minutes 0.08 second. Current RSS: ~1505M. Threads: 5. load average: 0.95 1.15 1.16 1/421 9765
.
when user has access
instructs the user about possible actions
when build prevents rollback deployment
is expected to match /This deployment job does not run automatically and must be started manually, but it's older than the latest deployment, and therefore can't run./
# [RSpecRunTime] Finishing example group ee/spec/lib/ee/gitlab/ci/status/build/manual_spec.rb. It took 2.06 seconds. Expected to take 2.66 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/gl_repository/repo_type_spec.rb. Expected to take 2.61 seconds.
Gitlab::GlRepository::RepoType
#<Gitlab::GlRepository::RepoType:0x00007b1f48b79de0>
group wiki
behaves like a repo type
#identifier_for_container
is expected to eq "group-1645-wiki"
#path_suffix
is expected to eq ".wiki"
#repository_for
finds the repository for the repo type
returns nil when container is nil
#identifier_for_container
is expected to eq "group-1645-wiki"
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/gl_repository/repo_type_spec.rb. It took 0.88 second. Expected to take 2.61 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/web_ide/config/entry/schema/match_spec.rb. Expected to take 2.47 seconds.
WebIde::Config::Entry::Schema::Match
validations
when match config value is correct
#value
returns the match glob pattern defined
#valid?
is valid
when value has a wrong type
reports errors about wrong type
.default
returns empty array
# [RSpecRunTime] Finishing example group ee/spec/lib/web_ide/config/entry/schema/match_spec.rb. It took 0.46 second. Expected to take 2.47 seconds.
# [RSpecRunTime] Starting example group ee/spec/models/approval_rules/approval_project_rules_group_spec.rb. Expected to take 2.44 seconds.
ApprovalRules::ApprovalProjectRulesGroup
does not allow STI
associations
is expected to belong to group required: false
is expected to belong to approval_project_rule required: false
validations
is expected to validate that :group cannot be empty/falsy
is expected to validate that :approval_project_rule cannot be empty/falsy
# [RSpecRunTime] Finishing example group ee/spec/models/approval_rules/approval_project_rules_group_spec.rb. It took 0.68 second. Expected to take 2.44 seconds.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/dora/performance_score_connection_type_spec.rb. Expected to take 2.35 seconds.
Types::Dora::PerformanceScoreConnectionType
is expected to eq "DoraPerformanceScoreConnectionType"
is expected to eq "Connection details for aggregated DORA metrics for a collection of projects"
is expected to have graphql fields :total_projects_count and :no_dora_data_projects_count
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/dora/performance_score_connection_type_spec.rb. It took 0.34 second. Expected to take 2.35 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/merge_request_reset_approvals_worker_spec.rb. Expected to take 2.29 seconds.
MergeRequestResetApprovalsWorker
#perform
executes MergeRequests::RefreshService with expected values
project is missing
doesn't execute the service
user is missing
doesn't execute the service
# [RSpecRunTime] Finishing example group ee/spec/workers/merge_request_reset_approvals_worker_spec.rb. It took 1.63 seconds. Expected to take 2.29 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/ee/web_hooks/destroy_service_spec.rb. Expected to take 2.18 seconds.
WebHooks::DestroyService
#execute
when destroying a project hook succeeds
creates an audit event
when destroying a project hook fails
does not create an audit event
# [RSpecRunTime] Finishing example group ee/spec/services/ee/web_hooks/destroy_service_spec.rb. It took 1.1 seconds. Expected to take 2.18 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/security/ingestion/tasks/ingest_vulnerability_reads_spec.rb. Expected to take 2.12 seconds.
Security::Ingestion::Tasks::IngestVulnerabilityReads
#execute
calls the update service
returns finding maps
# [RSpecRunTime] RSpec elapsed time: 20 minutes 7.89 seconds. Current RSS: ~1505M. Threads: 5. load average: 0.96 1.15 1.15 1/421 9766
.
# [RSpecRunTime] Finishing example group ee/spec/services/security/ingestion/tasks/ingest_vulnerability_reads_spec.rb. It took 2.15 seconds. Expected to take 2.12 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/ci/trigger_downstream_subscriptions_worker_spec.rb. Expected to take 2.04 seconds.
Ci::TriggerDownstreamSubscriptionsWorker
#perform
when pipeline exists
calls the trigger downstream pipeline service
when pipeline does not exist
does nothing
# [RSpecRunTime] Finishing example group ee/spec/workers/ci/trigger_downstream_subscriptions_worker_spec.rb. It took 0.98 second. Expected to take 2.04 seconds.
# [RSpecRunTime] Starting example group ee/spec/policies/merge_requests/external_status_check_policy_spec.rb. Expected to take 1.96 seconds.
MergeRequests::ExternalStatusCheckPolicy
when user is an non-member admin
when admin mode is enabled
is expected to be allowed :read_external_status_check
when admin mode is disabled
is expected to be disallowed :read_external_status_check
when user cannot admin project
is expected to be disallowed :read_external_status_check
when user can admin project
is expected to be allowed :read_external_status_check
# [RSpecRunTime] Finishing example group ee/spec/policies/merge_requests/external_status_check_policy_spec.rb. It took 1.48 seconds. Expected to take 1.96 seconds.
# [RSpecRunTime] Starting example group ee/spec/presenters/ee/project_presenter_spec.rb. Expected to take 1.85 seconds.
ProjectPresenter
#storage_anchor_text
when project is a fork
returns storage anchor text with the cost factored storage size
when feature flag is disabled
returns storage anchor text without cost factored storage size
# [RSpecRunTime] RSpec elapsed time: 20 minutes 11.75 seconds. Current RSS: ~1492M. Threads: 5. load average: 0.96 1.15 1.15 1/421 9767
.
when project is not a fork
returns storage anchor text with the full storage size
# [RSpecRunTime] Finishing example group ee/spec/presenters/ee/project_presenter_spec.rb. It took 1.55 seconds. Expected to take 1.85 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/llm/response_modifiers/empty_response_modifier_spec.rb. Expected to take 1.79 seconds.
Gitlab::Llm::ResponseModifiers::EmptyResponseModifier
when not message is passed
parses content from the ai response
returns empty errors
when message is passed
parses content from the ai response
returns empty errors
when error code is present is passed
parses content from the ai response
returns empty errors
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/llm/response_modifiers/empty_response_modifier_spec.rb. It took 0.67 second. Expected to take 1.79 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/compliance_management/framework_export_mailer_worker_spec.rb. Expected to take 1.72 seconds.
ComplianceManagement::FrameworkExportMailerWorker
#perform
schedules mail for delivery
with failing export
schedules no mail for delivery and returns appropriate error
with unknown record
rescues from not found error and logs exception
# [RSpecRunTime] Finishing example group ee/spec/workers/compliance_management/framework_export_mailer_worker_spec.rb. It took 1.04 seconds. Expected to take 1.72 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/projects/enable_deploy_key_service_spec.rb. Expected to take 1.65 seconds.
Projects::EnableDeployKeyService
Job arguments to AuthorizedKeysWorker must be native JSON types, but :add_key is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
records an audit event
behaves like sends correct event type in audit event stream
sends correct event type in audit event stream
# [RSpecRunTime] RSpec elapsed time: 20 minutes 14.95 seconds. Current RSS: ~1503M. Threads: 5. load average: 0.96 1.14 1.15 1/421 9768
.
# [RSpecRunTime] Finishing example group ee/spec/services/projects/enable_deploy_key_service_spec.rb. It took 1.34 seconds. Expected to take 1.65 seconds.
# [RSpecRunTime] Starting example group ee/spec/models/approval_rules/approval_merge_request_rules_approved_approver_spec.rb. Expected to take 1.57 seconds.
ApprovalRules::ApprovalMergeRequestRulesApprovedApprover
does not allow STI
associations
is expected to belong to user required: false
is expected to belong to approval_merge_request_rule required: false
validations
is expected to validate that :user cannot be empty/falsy
is expected to validate that :approval_merge_request_rule cannot be empty/falsy
# [RSpecRunTime] Finishing example group ee/spec/models/approval_rules/approval_merge_request_rules_approved_approver_spec.rb. It took 0.73 second. Expected to take 1.57 seconds.
# [RSpecRunTime] Starting example group ee/spec/workers/compliance_management/standards/gitlab/prevent_approval_by_author_worker_spec.rb. Expected to take 1.53 seconds.
ComplianceManagement::Standards::Gitlab::PreventApprovalByAuthorWorker
#perform
for non existent project
does not invoke PreventApprovalByAuthorService
for non existent user
invokes PreventApprovalByAuthorService
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
# [RSpecRunTime] Finishing example group ee/spec/workers/compliance_management/standards/gitlab/prevent_approval_by_author_worker_spec.rb. It took 0.95 second. Expected to take 1.53 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gem_extensions/elasticsearch/model/indexing/instance_methods_spec.rb. Expected to take 1.42 seconds.
GemExtensions::Elasticsearch::Model::Indexing::InstanceMethods
#index_document
overrides _id
# [RSpecRunTime] Finishing example group ee/spec/lib/gem_extensions/elasticsearch/model/indexing/instance_methods_spec.rb. It took 0.67 second. Expected to take 1.42 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/llm/chain/streamed_documentation_answer_spec.rb. Expected to take 1.39 seconds.
Gitlab::Llm::Chain::StreamedDocumentationAnswer
#next_chunk
when stream is empty
returns nil
when stream contains an answer
returns the content with an incremented id
when receiving sources
no longer returns chunks
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/llm/chain/streamed_documentation_answer_spec.rb. It took 0.34 second. Expected to take 1.39 seconds.
# [RSpecRunTime] Starting example group ee/spec/lib/remote_development/settings/network_policy_egress_validator_spec.rb. Expected to take 1.3 seconds.
RemoteDevelopment::Settings::NetworkPolicyEgressValidator
when network_policy_egress is invalid
when network_policy_egress is invalid because it omits the allowed ip list
returns an err Result highlighting validation failure
when network_policy_egress is valid
return an ok Result containing the original context which was passed
when requested_setting_names does not include network_policy_egress
returns an ok result with the original context
# [RSpecRunTime] Finishing example group ee/spec/lib/remote_development/settings/network_policy_egress_validator_spec.rb. It took 0.43 second. Expected to take 1.3 seconds.
# [RSpecRunTime] Starting example group ee/spec/graphql/ee/types/ci/pipeline_merge_request_type_enum_spec.rb. Expected to take 1.22 seconds.
Types::Ci::PipelineMergeRequestEventTypeEnum
has specific values
# [RSpecRunTime] Finishing example group ee/spec/graphql/ee/types/ci/pipeline_merge_request_type_enum_spec.rb. It took 0.13 second. Expected to take 1.22 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/dependencies/fetch_export_service_spec.rb. Expected to take 1.15 seconds.
Dependencies::FetchExportService
#execute
returns a dependency_list_export
when record does not exist
returns nil
# [RSpecRunTime] Finishing example group ee/spec/services/dependencies/fetch_export_service_spec.rb. It took 0.68 second. Expected to take 1.15 seconds.
# [RSpecRunTime] Starting example group ee/spec/services/secrets_management/provision_project_secrets_manager_service_spec.rb. Expected to take 1.1 seconds.
SecretsManagement::ProvisionProjectSecretsManagerService
#execute
enables the secret engine for the project and activates the secret manager
when the secrets engine has already been enabled
still activates the secrets manager
# [RSpecRunTime] Finishing example group ee/spec/services/secrets_management/provision_project_secrets_manager_service_spec.rb. It took 0.65 second. Expected to take 1.1 seconds.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/requirements_management/requirement_state_enum_spec.rb. Expected to take 1.0 second.
Types::RequirementsManagement::RequirementStateEnum
is expected to eq "RequirementState"
exposes all the existing requirement states
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/requirements_management/requirement_state_enum_spec.rb. It took 0.23 second. Expected to take 1.0 second.
# [RSpecRunTime] Starting example group ee/spec/models/package_metadata/package_version_license_spec.rb. Expected to take 0.96 second.
PackageMetadata::PackageVersionLicense
does not allow STI
association
is expected to belong to package_version required: true
is expected to belong to license required: true
# [RSpecRunTime] Finishing example group ee/spec/models/package_metadata/package_version_license_spec.rb. It took 0.34 second. Expected to take 0.96 second.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/audit_events/instance_external_audit_event_destination_type_spec.rb. Expected to take 0.87 second.
Types::AuditEvents::InstanceExternalAuditEventDestinationType
is expected to have graphql fields :id, :destination_url, :verification_token, :headers, :event_type_filters, and :name
is expected to require graphql authorizations :admin_instance_external_audit_events
is expected to eq "InstanceExternalAuditEventDestination"
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/audit_events/instance_external_audit_event_destination_type_spec.rb. It took 0.31 second. Expected to take 0.87 second.
# [RSpecRunTime] Starting example group ee/spec/lib/elastic/latest/config_spec.rb. Expected to take 0.84 second.
Elastic::Latest::Config
.mappings
returns config
.settings
behaves like config settings return correct values
returns config
sets correct shard/replica settings
# [RSpecRunTime] Finishing example group ee/spec/lib/elastic/latest/config_spec.rb. It took 0.33 second. Expected to take 0.84 second.
# [RSpecRunTime] Starting example group ee/spec/graphql/ee/types/issue_sort_enum_spec.rb. Expected to take 0.75 second.
Types::IssueSortEnum
is expected to eq "IssueSort"
exposes all the existing EE issue sort values
behaves like common sort values
exposes all the existing common sort values
# [RSpecRunTime] Finishing example group ee/spec/graphql/ee/types/issue_sort_enum_spec.rb. It took 0.38 second. Expected to take 0.75 second.
# [RSpecRunTime] Starting example group ee/spec/lib/cloud_connector/self_managed/available_service_data_spec.rb. Expected to take 0.75 second.
CloudConnector::SelfManaged::AvailableServiceData
#purchased?
ignores namespaces
#access_token
is expected to eq "eyJhbGciOiJub25lIn0.eyJleHAiOjE3MjY5MzQyNTAsImF1ZCI6WyJleGFtcGxlX2F1ZGllbmNlIl0sImlzcyI6ImV4YW1wbGVfaXNzdWVyIiwiZ2l0bGFiX3JlYWxtIjoiZXhhbXBsZV9yZWFsbSIsInNjb3BlcyI6WyJleGFtcGxlX3Njb3BlIl19."
# [RSpecRunTime] Finishing example group ee/spec/lib/cloud_connector/self_managed/available_service_data_spec.rb. It took 0.28 second. Expected to take 0.75 second.
# [RSpecRunTime] Starting example group ee/spec/services/gitlab_subscriptions/seat_usage_history_export_service_spec.rb. Expected to take 0.64 second.
GitlabSubscriptions::SeatUsageHistoryExportService
when group has no subscription history
returns only headers
when group has subscription histories
returns csv data
# [RSpecRunTime] Finishing example group ee/spec/services/gitlab_subscriptions/seat_usage_history_export_service_spec.rb. It took 0.25 second. Expected to take 0.64 second.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/ci/code_coverage_summary_spec.rb. Expected to take 0.63 second.
Types::Ci::CodeCoverageSummaryType
is expected to eq "CodeCoverageSummary"
fields
is expected to have graphql fields :average_coverage, :coverage_count, and :last_updated_on
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/ci/code_coverage_summary_spec.rb. It took 0.22 second. Expected to take 0.63 second.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/llm/anthropic/templates/tanuki_bot_spec.rb. Expected to take 0.56 second.
Gitlab::Llm::Anthropic::Templates::TanukiBot
#final_prompt
returns prompt
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/llm/anthropic/templates/tanuki_bot_spec.rb. It took 0.11 second. Expected to take 0.56 second.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/geo/registry_state_enum_spec.rb. Expected to take 0.53 second.
Types::Geo::RegistryStateEnum
is expected to eq "RegistryState"
exposes the correct registry states
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/geo/registry_state_enum_spec.rb. It took 0.22 second. Expected to take 0.53 second.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/epic_descendant_weight_sum_type_spec.rb. Expected to take 0.52 second.
Types::EpicDescendantWeightSumType
is expected to eq "EpicDescendantWeights"
has specific fields
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/epic_descendant_weight_sum_type_spec.rb. It took 0.22 second. Expected to take 0.52 second.
# [RSpecRunTime] Starting example group ee/spec/services/security/security_orchestration_policies/ci_action/unknown_spec.rb. Expected to take 0.37 second.
Security::SecurityOrchestrationPolicies::CiAction::Unknown
#config
is expected to eq {:"unknown-0"=>{"allow_failure"=>true, "script"=>"echo \"Error during Scan execution: Invalid Scan type\" && false"}}
# [RSpecRunTime] Finishing example group ee/spec/services/security/security_orchestration_policies/ci_action/unknown_spec.rb. It took 0.12 second. Expected to take 0.37 second.
# [RSpecRunTime] Starting example group ee/spec/graphql/ee/types/branch_protection_type_spec.rb. Expected to take 0.37 second.
Types::BranchRules::BranchProtectionType
is expected to have graphql fields :allow_force_push, :code_owner_approval_required, :merge_access_levels, :push_access_levels, and :unprotect_access_levels
# [RSpecRunTime] Finishing example group ee/spec/graphql/ee/types/branch_protection_type_spec.rb. It took 0.12 second. Expected to take 0.37 second.
# [RSpecRunTime] Starting example group ee/spec/graphql/types/alert_management/payload_alert_field_name_enum_spec.rb. Expected to take 0.3 second.
Types::AlertManagement::PayloadAlertFieldNameEnum
exposes all alert field names
# [RSpecRunTime] Finishing example group ee/spec/graphql/types/alert_management/payload_alert_field_name_enum_spec.rb. It took 0.12 second. Expected to take 0.3 second.
# [RSpecRunTime] Starting example group ee/spec/lib/remote_development/workspace_operations/create/volume_component_injector_spec.rb. Expected to take 0.29 second.
RemoteDevelopment::WorkspaceOperations::Create::VolumeComponentInjector
injects the workspace volume component
# [RSpecRunTime] Finishing example group ee/spec/lib/remote_development/workspace_operations/create/volume_component_injector_spec.rb. It took 0.14 second. Expected to take 0.29 second.
# [RSpecRunTime] Starting example group ee/spec/graphql/ee/types/board_type_spec.rb. Expected to take 0.27 second.
Types::BoardType
includes the ee specific fields
# [RSpecRunTime] Finishing example group ee/spec/graphql/ee/types/board_type_spec.rb. It took 0.12 second. Expected to take 0.27 second.
# [RSpecRunTime] Starting example group ee/spec/workers/security/scans/purge_worker_spec.rb. Expected to take 0.26 second.
Security::Scans::PurgeWorker
#perform
delegates the call to PurgeScansService
# [RSpecRunTime] Finishing example group ee/spec/workers/security/scans/purge_worker_spec.rb. It took 0.12 second. Expected to take 0.26 second.
# [RSpecRunTime] Starting example group ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb. Missing expected duration from Knapsack report for ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb.
GitLab Duo Chat QA Evaluation
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ElasticNamespaceIndexerWorker must be native JSON types, but :index is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Fast QA evaluation
behaves like the questions are correctly answered
skipping 'answers the questions correctly' because it does real third-party requests, set REAL_AI_REQUEST=true, ANTHROPIC_API_KEY='<key>'
answers the questions correctly (PENDING: around hook at ./ee/spec/support/llm.rb:4 did not execute the example)
# [RSpecRunTime] RSpec elapsed time: 21 minutes 49.88 seconds. Current RSS: ~1409M. Threads: 5. load average: 1.21 1.16 1.16 1/423 9770
.
for issue questions
behaves like the questions are correctly answered
skipping 'answers the questions correctly' because it does real third-party requests, set REAL_AI_REQUEST=true, ANTHROPIC_API_KEY='<key>'
answers the questions correctly (PENDING: around hook at ./ee/spec/support/llm.rb:4 did not execute the example)
for epic questions
behaves like the questions are correctly answered
skipping 'answers the questions correctly' because it does real third-party requests, set REAL_AI_REQUEST=true, ANTHROPIC_API_KEY='<key>'
answers the questions correctly (PENDING: around hook at ./ee/spec/support/llm.rb:4 did not execute the example)
# [RSpecRunTime] Finishing example group ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb. It took 1 minute 26.71 seconds. Missing expected duration from Knapsack report for ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb.
auto_explain log contains 1652 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-ee-unit-pg14-es8-5-39.334.main.ndjson.gz
took 26.790724143
auto_explain log contains 1653 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-ee-unit-pg14-es8-5-39.334.ci.ndjson.gz
took 23.051954701
[TEST PROF INFO] EventProf results for sql.active_record
Total time: 04:15.765 of 21:42.222 (19.64%)
Total events: 182486
Top 5 slowest suites (by time):
Project (./ee/spec/models/ee/project_spec.rb:5) – 02:02.638 (85853 / 1868) of 10:50.179 (18.86%)
GitLab Duo Chat QA Evaluation (./ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb:5) – 00:19.548 (17730 / 3) of 01:26.713 (22.54%)
DAST.latest.gitlab-ci.yml (./ee/spec/lib/gitlab/ci/templates/dast_latest_gitlab_ci_yaml_spec.rb:12) – 00:11.091 (5235 / 21) of 00:50.936 (21.78%)
Ci::BuildRunnerPresenter (./ee/spec/presenters/ci/build_runner_presenter_spec.rb:4) – 00:08.533 (5172 / 30) of 00:35.721 (23.89%)
Security::Sec...cyScopeChecker (./ee/spec/lib/security/security_orchestration_policies/policy_scope_checker_spec.rb:5) – 00:07.679 (4633 / 40) of 00:29.232 (26.27%)
Knapsack report was generated. Preview:
{
"ee/spec/models/ee/project_spec.rb": 650.1787912309992,
"ee/spec/policies/global_policy_spec.rb": 21.212770514001022,
"ee/spec/lib/gitlab/ci/templates/dast_latest_gitlab_ci_yaml_spec.rb": 50.93578032699952,
"ee/spec/presenters/ci/build_runner_presenter_spec.rb": 35.721551536000334,
"ee/spec/lib/security/security_orchestration_policies/policy_scope_checker_spec.rb": 29.23178223799914,
"ee/spec/services/work_items/create_service_spec.rb": 25.27531512800124,
"ee/spec/lib/compliance_management/compliance_report/commit_loader_spec.rb": 29.127061416000288,
"ee/spec/helpers/vulnerabilities_helper_spec.rb": 20.959885619000488,
"ee/spec/services/ee/issuable/destroy_service_spec.rb": 20.72614266799974,
"ee/spec/policies/remote_development/workspace_policy_spec.rb": 16.587931367999772,
"ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb": 18.237911638001606,
"ee/spec/services/vulnerability_exports/export_service_spec.rb": 18.003828028999123,
"ee/spec/services/status_page/mark_for_publication_service_spec.rb": 14.030085554000834,
"ee/spec/tasks/gitlab/elastic_rake_spec.rb": 8.243752643000335,
"ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb": 4.589343392000956,
"ee/spec/models/epic/related_epic_link_spec.rb": 10.604670942999292,
"ee/spec/lib/gitlab/vulnerability_scanning/dependency_scanning/finding_builder_spec.rb": 12.183409360000951,
"ee/spec/lib/gitlab/ci/minutes/consumption_spec.rb": 6.567752665001535,
"ee/spec/helpers/ee/invite_members_helper_spec.rb": 8.061819217999073,
"ee/spec/helpers/groups/security_features_helper_spec.rb": 7.936037639999995,
"ee/spec/models/plan_spec.rb": 4.908154675000333,
"ee/spec/graphql/types/issue_type_spec.rb": 8.943383603998882,
"ee/spec/lib/elastic/latest/merge_request_class_proxy_spec.rb": 11.142838207999375,
"ee/spec/services/app_sec/dast/profiles/create_service_spec.rb": 7.019668996999826,
"ee/spec/lib/product_analytics/settings_spec.rb": 3.505306183000357,
"ee/spec/workers/security/delete_security_policy_worker_spec.rb": 9.539726204000544,
"ee/spec/services/security/security_orchestration_policies/group_protected_branches_deletion_check_service_spec.rb": 3.976669084000605,
"ee/spec/tasks/cloud_connector/health_check_rake_spec.rb": 5.03006387500136,
"ee/spec/services/audit_events/streaming/headers/update_service_spec.rb": 6.127312611999514,
"ee/spec/services/geo/container_repository_sync_service_spec.rb": 7.347671298999558,
"ee/spec/services/dora/aggregate_scores_service_spec.rb": 5.953381146000538,
"ee/spec/workers/group_destroy_worker_spec.rb": 5.3430315389996395,
"ee/spec/services/epics/epic_links/list_service_spec.rb": 7.933539159001157,
"ee/spec/services/app_sec/dast/profiles/build_config_service_spec.rb": 4.042653177999455,
"ee/spec/services/compliance_management/pipl/update_user_country_access_logs_service_spec.rb": 2.8280087709990767,
"ee/spec/lib/gitlab/usage/metrics/instrumentations/count_merge_requests_with_applied_scan_result_policies_metric_spec.rb": 7.579772609000429,
"ee/spec/workers/epics/update_cached_metadata_worker_spec.rb": 3.672532290000163,
"ee/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_reviewer_first_assigned_at_spec.rb": 4.918213733999437,
"ee/spec/services/status_page/publish_service_spec.rb": 3.136631204999503,
"ee/spec/policies/ci/subscriptions/project_policy_spec.rb": 4.690160263000507,
"ee/spec/services/gitlab_subscriptions/add_on_purchases/self_managed/license_add_ons/info_spec.rb": 1.6283008020000125,
"ee/spec/lib/gitlab/graphql/aggregations/vulnerabilities/lazy_user_notes_count_aggregate_spec.rb": 5.5608825300005265,
"ee/spec/workers/gitlab_subscriptions/refresh_seats_worker_spec.rb": 3.831902796000577,
"ee/spec/lib/gitlab/git_audit_event_spec.rb": 3.200356430001193,
"ee/spec/lib/gitlab_subscriptions/purchase_url_builder_spec.rb": 1.906029818999741,
"ee/spec/models/gitlab_subscriptions/add_on_spec.rb": 1.3629839550012548,
"ee/spec/models/ee/users_statistics_spec.rb": 1.55454127899975,
"ee/spec/serializers/ee/admin/abuse_report_details_entity_spec.rb": 2.000027060999855,
"ee/spec/services/namespaces/export/membership_collector_spec.rb": 5.9443616869994,
"ee/spec/workers/adjourned_group_deletion_worker_spec.rb": 1.9424532859993633,
"ee/spec/workers/search/zoekt/task_failed_event_worker_spec.rb": 1.754703251999672,
"ee/spec/helpers/preferences_helper_spec.rb": 1.579566436001187,
"ee/spec/finders/incident_management/escalation_rules_finder_spec.rb": 2.3546045210005104,
"ee/spec/lib/sidebars/admin/panel_spec.rb": 1.599393725000482,
"ee/spec/graphql/types/asset_type_spec.rb": 2.0569668259995524,
"ee/spec/services/compliance_management/merge_requests/create_compliance_violations_service_spec.rb": 4.082638355001109,
"ee/spec/services/dashboard/environments/list_service_spec.rb": 2.5546005640007934,
"ee/spec/lib/remote_development/workspace_operations/reconcile/input/params_validator_spec.rb": 1.1971865679988696,
"ee/spec/lib/sidebars/admin/menus/code_suggestions_menu_spec.rb": 1.0341675729996496,
"ee/spec/workers/security/refresh_compliance_framework_security_policies_worker_spec.rb": 2.7896534539995628,
"ee/spec/workers/set_user_status_based_on_user_cap_setting_worker_spec.rb": 1.1532780329998786,
"ee/spec/workers/sbom/process_vulnerabilities_worker_spec.rb": 1.3185488279996207,
"ee/spec/graphql/mutations/security_policy/create_security_policy_project_async_spec.rb": 2.3869222680004896,
"ee/spec/graphql/mutations/requirements_management/create_requirement_spec.rb": 1.8330758850006532,
"ee/spec/lib/gitlab/llm/chain/utils/chat_conversation_spec.rb": 0.8284188899997389,
"ee/spec/policies/ai/duo_workflows/workflow_policy_spec.rb": 2.059080945999085,
"ee/spec/workers/click_house/event_paths_consistency_cron_worker_spec.rb": 0.28113446600036696,
"ee/spec/models/dora/time_to_restore_service_metric_spec.rb": 2.3653251599989744,
"ee/spec/lib/gitlab/usage/metrics/instrumentations/count_external_status_checks_metric_spec.rb": 1.8424628440006927,
"ee/spec/views/admin/users/_phone_info.html.haml_spec.rb": 0.7123312000003352,
"ee/spec/lib/ee/gitlab/ci/status/build/manual_spec.rb": 2.056425107000905,
"ee/spec/lib/gitlab/gl_repository/repo_type_spec.rb": 0.8797538359995087,
"ee/spec/lib/web_ide/config/entry/schema/match_spec.rb": 0.45632435199877364,
"ee/spec/models/approval_rules/approval_project_rules_group_spec.rb": 0.6842025430014473,
"ee/spec/graphql/types/dora/performance_score_connection_type_spec.rb": 0.34387440200043784,
"ee/spec/workers/merge_request_reset_approvals_worker_spec.rb": 1.6260369530009484,
"ee/spec/services/ee/web_hooks/destroy_service_spec.rb": 1.0964688670010219,
"ee/spec/services/security/ingestion/tasks/ingest_vulnerability_reads_spec.rb": 2.150378038000781,
"ee/spec/workers/ci/trigger_downstream_subscriptions_worker_spec.rb": 0.979298297999776,
"ee/spec/policies/merge_requests/external_status_check_policy_spec.rb": 1.484235734998947,
"ee/spec/presenters/ee/project_presenter_spec.rb": 1.5511866390006617,
"ee/spec/lib/gitlab/llm/response_modifiers/empty_response_modifier_spec.rb": 0.6689777929987031,
"ee/spec/workers/compliance_management/framework_export_mailer_worker_spec.rb": 1.0354455119995691,
"ee/spec/services/projects/enable_deploy_key_service_spec.rb": 1.3396276969997416,
"ee/spec/models/approval_rules/approval_merge_request_rules_approved_approver_spec.rb": 0.7250732990014512,
"ee/spec/workers/compliance_management/standards/gitlab/prevent_approval_by_author_worker_spec.rb": 0.945018889999119,
"ee/spec/lib/gem_extensions/elasticsearch/model/indexing/instance_methods_spec.rb": 0.6695166429999517,
"ee/spec/lib/gitlab/llm/chain/streamed_documentation_answer_spec.rb": 0.3376477919991885,
"ee/spec/lib/remote_development/settings/network_policy_egress_validator_spec.rb": 0.4246926639989397,
"ee/spec/graphql/ee/types/ci/pipeline_merge_request_type_enum_spec.rb": 0.13337122799930512,
"ee/spec/services/dependencies/fetch_export_service_spec.rb": 0.6778399329996319,
"ee/spec/services/secrets_management/provision_project_secrets_manager_service_spec.rb": 0.6498607550001907,
"ee/spec/graphql/types/requirements_management/requirement_state_enum_spec.rb": 0.2268845809994673,
"ee/spec/models/package_metadata/package_version_license_spec.rb": 0.3404177909997088,
"ee/spec/graphql/types/audit_events/instance_external_audit_event_destination_type_spec.rb": 0.31173013399893534,
"ee/spec/lib/elastic/latest/config_spec.rb": 0.32710284299901105,
"ee/spec/graphql/ee/types/issue_sort_enum_spec.rb": 0.381184507999933,
"ee/spec/lib/cloud_connector/self_managed/available_service_data_spec.rb": 0.2826720369994291,
"ee/spec/services/gitlab_subscriptions/seat_usage_history_export_service_spec.rb": 0.24607407900111866,
"ee/spec/graphql/types/ci/code_coverage_summary_spec.rb": 0.21819177100041998,
"ee/spec/lib/gitlab/llm/anthropic/templates/tanuki_bot_spec.rb": 0.11371540099935373,
"ee/spec/graphql/types/geo/registry_state_enum_spec.rb": 0.21825274100046954,
"ee/spec/graphql/types/epic_descendant_weight_sum_type_spec.rb": 0.2241285109994351,
"ee/spec/services/security/security_orchestration_policies/ci_action/unknown_spec.rb": 0.1168591200002993,
"ee/spec/graphql/ee/types/branch_protection_type_spec.rb": 0.1235681400012254,
"ee/spec/graphql/types/alert_management/payload_alert_field_name_enum_spec.rb": 0.12258713899973372,
"ee/spec/lib/remote_development/workspace_operations/create/volume_component_injector_spec.rb": 0.13895494900134508,
"ee/spec/graphql/ee/types/board_type_spec.rb": 0.11583507899922552,
"ee/spec/workers/security/scans/purge_worker_spec.rb": 0.11793834099989908
}
Knapsack global time execution for tests: 20m 15s
Pending: (Failures listed here are expected and do not affect your suite's status)
1) Project on a primary node #save_verification_details when model record is not part of verifiables scope does not create verification details
# Skipping because all Project Repositories are records that can be checksummed
# ./ee/spec/support/shared_examples/models/concerns/replicable_model_with_separate_table_shared_examples.rb:76
2) WorkItems::CreateService behaves like creates work item in container #execute when params are valid with color widget params when user can admin_work_item when type does not support color widget creates new work item without setting color
# these examples only apply to a group container
# ./ee/spec/services/work_items/create_service_spec.rb:60
3) WorkItems::CreateService behaves like creates work item in container #execute when params are valid with color widget params when user can admin_work_item when type supports color widget creates new work item and sets color
# these examples only apply to a group container
# ./ee/spec/services/work_items/create_service_spec.rb:72
4) WorkItems::CreateService behaves like creates work item in container #execute when applying quick actions with /weight action when work item type does not support weight with Epic type saves the work item without applying the quick action
# these examples only apply to a group container
# ./ee/spec/services/work_items/create_service_spec.rb:112
5) WorkItems::CreateService behaves like creates work item in container #execute when applying quick actions with /weight action when work item type does not support weight with Incident type saves the work item without applying the quick action
# these examples don't apply to a group container
# ./ee/spec/services/work_items/create_service_spec.rb:126
6) WorkItems::CreateService behaves like creates work item in container #execute when applying quick actions with /weight action when work item type supports weight saves the work item and applies the quick action
# these examples don't apply to a group container
# ./ee/spec/services/work_items/create_service_spec.rb:141
7) WorkItems::CreateService behaves like creates work item in container #execute when params are valid with color widget params when user can admin_work_item when type does not support color widget creates new work item without setting color
# these examples only apply to a group container
# ./ee/spec/services/work_items/create_service_spec.rb:60
8) WorkItems::CreateService behaves like creates work item in container #execute when params are valid with color widget params when user can admin_work_item when type supports color widget creates new work item and sets color
# these examples only apply to a group container
# ./ee/spec/services/work_items/create_service_spec.rb:72
9) WorkItems::CreateService behaves like creates work item in container #execute when applying quick actions with /weight action when work item type does not support weight with Epic type saves the work item without applying the quick action
# these examples only apply to a group container
# ./ee/spec/services/work_items/create_service_spec.rb:112
10) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Starting", current_actual_state: "Failed", workspace_exists: false calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: Starting, current_actual_state: Failed, workspace_exists: false
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
11) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Failed", current_actual_state: "Starting", workspace_exists: false calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Starting, workspace_exists: false
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
12) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Running", current_actual_state: "Failed", workspace_exists: nil calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: Running, current_actual_state: Failed, workspace_exists:
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
13) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Stopping", current_actual_state: "Failed", workspace_exists: nil calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: Stopping, current_actual_state: Failed, workspace_exists:
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
14) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Stopped", current_actual_state: "Failed", workspace_exists: nil calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: Stopped, current_actual_state: Failed, workspace_exists:
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
15) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Starting", current_actual_state: "Failed", workspace_exists: true calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: Starting, current_actual_state: Failed, workspace_exists: true
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
16) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Failed", current_actual_state: "Starting", workspace_exists: true calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Starting, workspace_exists: true
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
17) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Failed", current_actual_state: "Stopping", workspace_exists: nil calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Stopping, workspace_exists:
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
18) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: nil, current_actual_state: "Failed", workspace_exists: nil calculates correct actual state
# TODO: Properly implement the agent info status fixture for previous_actual_state: , current_actual_state: Failed, workspace_exists:
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:65
19) RemoteDevelopment::WorkspaceOperations::Reconcile::Input::ActualStateCalculator.calculate_actual_state when the deployment is failed when existing scaled down workspace which was failing has been scaled up returns the expected actual state
# This currently returns STARTING state. See related TODOs in the relevant code.
Failure/Error:
expect(actual_state_calculator.calculate_actual_state(latest_k8s_deployment_info: latest_k8s_deployment_info))
.to be(expected_actual_state)
expected #<String:176526080> => "Failed"
got #<String:176526100> => "Starting"
Compared using equal?, which compares object identity,
but expected and actual are not the same object. Use
`expect(actual).to eq(expected)` if you don't care about
object identity in this example.
# ./ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb:331:in `block (5 levels) in <top (required)>'
# ./spec/spec_helper.rb:472:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
# ./spec/spec_helper.rb:471:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:466:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:457:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:453:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:92:in `with_raw_context'
# ./spec/spec_helper.rb:453:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:269:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
# ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
# ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
20) GitLab Duo Chat QA Evaluation Fast QA evaluation behaves like the questions are correctly answered answers the questions correctly
# around hook at ./ee/spec/support/llm.rb:4 did not execute the example
# ./ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb:61
21) GitLab Duo Chat QA Evaluation for issue questions behaves like the questions are correctly answered answers the questions correctly
# around hook at ./ee/spec/support/llm.rb:4 did not execute the example
# ./ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb:61
22) GitLab Duo Chat QA Evaluation for epic questions behaves like the questions are correctly answered answers the questions correctly
# around hook at ./ee/spec/support/llm.rb:4 did not execute the example
# ./ee/spec/lib/gitlab/llm/chain/agents/zero_shot/qa_evaluation_spec.rb:61
Finished in 22 minutes 41 seconds (files took 2 minutes 41.4 seconds to load)
3035 examples, 0 failures, 22 pending
Randomized with seed 30101
RSpec exited with 0.
No examples to retry, congrats!
Running after_script
Running after script...
$ source scripts/utils.sh
$ log_disk_usage after_script
[log_disk_usage after_script] start
df -h
Filesystem Size Used Avail Use% Mounted on
overlay 46G 25G 21G 56% /
tmpfs 64M 0 64M 0% /dev
shm 256M 0 256M 0% /dev/shm
/dev/sda1 46G 25G 21G 56% /cache
tmpfs 3.9G 0 3.9G 0% /sys/devices/virtual/dmi/id
tmpfs 3.9G 0 3.9G 0% /proc/acpi
tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs 3.9G 0 3.9G 0% /sys/firmware
du -h -d 1
7.4M ./workhorse
148K ./bin
1.2M ./.gitlab
161M ./.git
4.0K ./builds
16M ./coverage
28M ./lib
8.0K ./.vscode
516K ./storybook
14M ./log
1.8M ./data
10M ./qa
2.9M ./.rubocop_todo
827M ./vendor
620M ./public
59M ./doc
480K ./danger
3.8M ./rspec
8.0K ./.bundle
548K ./tooling
140M ./ee
1.3M ./knapsack
296K ./patches
4.3M ./changelogs
20K ./haml_lint
28K ./metrics_server
88K ./keeps
1.2M ./shared
44K ./generator_templates
1.2M ./scripts
1.3G ./tmp
125M ./spec
20K ./file_hooks
32K ./crystalball
16K ./sidekiq_cluster
16M ./gems
1.2M ./fixtures
944K ./rubocop
4.0K ./.go
30M ./db
724K ./auto_explain
12K ./.github
125M ./locale
1.9M ./glfm_specification
17M ./config
80M ./app
16K ./.lefthook
3.5G .
[log_disk_usage after_script] end
$ bundle exec gem list gitlab_quality-test_tooling
gitlab_quality-test_tooling (1.38.1)
$ $ section_start "failed-test-issues" "Report test failures" # collapsed multi-line command
Report test failures
$ $ section_start "flaky-test-issues" "Report test flakiness" # collapsed multi-line command
Report test flakiness
$ $ section_start "slow-test-issues" "Report test slowness" # collapsed multi-line command
Not reporting test slowness because $CREATE_RAILS_SLOW_TEST_ISSUES != 'true'
Report test slowness
$ $ section_start "slow-test-merge-request-report-note" "Report test slowness in MR note" # collapsed multi-line command
Report test slowness in MR note
$ $ section_start "knapsack-report-issues" "Report test files close to timing out" # collapsed multi-line command
Report test files close to timing out
$ tooling/bin/push_job_metrics || true
[job-metrics] Pushing job metrics file for the CI/CD job.
[job-metrics] Pushed 4 CI job metric entries to InfluxDB.
Saving cache for successful job
Not uploading cache ruby-gems-debian-bookworm-ruby-3.2.5-gemfile-Gemfile-19 due to policy
Uploading artifacts for successful job
Uploading artifacts...
auto_explain/: found 3 matching artifact files and directories
coverage/: found 5 matching artifact files and directories
crystalball/: found 2 matching artifact files and directories
WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab)
knapsack/: found 4 matching artifact files and directories
rspec/: found 16 matching artifact files and directories
WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab)
log/*.log: found 18 matching artifact files and directories
WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/7879700343/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com
WARNING: Retrying... context=artifacts-uploader error=request redirected
Uploading artifacts as "archive" to coordinator... 201 Created id=7879700343 responseStatus=201 Created token=glcbt-66
Uploading artifacts...
rspec/rspec-*.xml: found 1 matching artifact files and directories
WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/7879700343/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com
WARNING: Retrying... context=artifacts-uploader error=request redirected
Uploading artifacts as "junit" to coordinator... 201 Created id=7879700343 responseStatus=201 Created token=glcbt-66
Cleaning up project directory and file based variables
Job succeeded