rspec-ee integration pg15 es8 4/6
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.3.0~beta.108.g2b6048b4 (2b6048b4)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv, system ID: s_e6befde69e263 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true, FF_RESOLVE_FULL_TLS_CHAIN:false6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-15:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-15-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-15-pgvector-0.4.1 ...10Using docker image sha256:6752fc64a3b03fab20c6eb4bd354519f70f87894bc90c7c667f1fbbaff2e65e9 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-15-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:fa328c3a000b5e1d66834b1b3cd6c7d35d0dc30da22eee80aa35729749b24a82 ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:f4c047edb00d9bbfcc2b002a01548fab14592940f5b3e6b3f227f690e3fa272d 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:9a1b6b68dc464f0baae914703d5b059e7773bf23c9579c44e2a1b1154a83656f ...17Starting service redis:7.0-alpine ...18Pulling docker image redis:7.0-alpine ...19Using docker image sha256:de2a15247104b70ded42ab81e9ab886efeb2b56fa63979f8b1dbd6c9666554fe for redis:7.0-alpine with digest redis@sha256:25b1ad49fe73044f92c6e5879de2fa27c41132cb8781f7720453995173662857 ...20WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 is already created. Ignoring.21WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 is already created. Ignoring.22Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 ...23Authenticating with credentials from job payload (GitLab Registry)24Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 ...25Using docker image sha256:3019060693909c4761e3d0a55f31591cdc9a425c5caabc0efe58b7aac9af2245 for registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:39a04f1ad7b480c016bbb682d5525e272bc54bc252be03b1b9236b2375d81384 ...26Starting service elasticsearch:8.6.2 ...27Pulling docker image elasticsearch:8.6.2 ...28Using docker image sha256:04485c81cc2d3ae1ae68e8be87f8a5043d71496332680a5b2e58664be95461c5 for elasticsearch:8.6.2 with digest elasticsearch@sha256:93bc71907ca0e6e3b4f181e0dc850b90bb6cb2686c2778def0b8542398983c28 ...29Waiting for services to be up and running (timeout 30 seconds)...30Authenticating with credentials from job payload (GitLab Registry)31Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-15:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...32Using docker image sha256:755454c717f104427f9604fc39bd4f3a5a8c819f7a79815fe64ee97658c487c5 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-15:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-15@sha256:d57d7dc7b25138121fc1d3ca81a75e0a3e211a0a1cf2e203cb84fd7b0a008e44 ...34Running on runner-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1697702267-bc06c088...36Fetching changes with git depth set to 20...37Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/38Created fresh repository.39remote: Enumerating objects: 175495, done. 40remote: Counting objects: 100% (175495/175495), done. 41remote: Compressing objects: 100% (119238/119238), done. 42remote: Total 175495 (delta 83016), reused 113694 (delta 49335), pack-reused 0 43Receiving objects: 100% (175495/175495), 148.32 MiB | 29.80 MiB/s, done.44Resolving deltas: 100% (83016/83016), done.46 * [new ref] refs/pipelines/1042272888 -> refs/pipelines/104227288847Checking out 3af7b5df as detached HEAD (ref is refs/merge-requests/134621/merge)...48Skipping Git submodules setup49$ git remote set-url origin "${CI_REPOSITORY_URL}"51Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...52cache.zip is up to date 53Successfully extracted cache55Downloading artifacts for compile-test-assets (5328358048)...56Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358048 responseStatus=200 OK token=64_X5y7y57Downloading artifacts for detect-tests (5328358058)...58Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358058 responseStatus=200 OK token=64_X5y7y59Downloading artifacts for retrieve-tests-metadata (5328358066)...60Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358066 responseStatus=200 OK token=64_X5y7y61Downloading artifacts for setup-test-env (5328358054)...62Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358054 responseStatus=200 OK token=64_X5y7y64Using docker image sha256:755454c717f104427f9604fc39bd4f3a5a8c819f7a79815fe64ee97658c487c5 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-15:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-15@sha256:d57d7dc7b25138121fc1d3ca81a75e0a3e211a0a1cf2e203cb84fd7b0a008e44 ...65$ echo $FOSS_ONLY66$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb67$ export GOPATH=$CI_PROJECT_DIR/.go68$ mkdir -p $GOPATH69$ source scripts/utils.sh70$ source scripts/prepare_build.sh102Using decomposed database config (config/database.yml.decomposed-postgresql)103Geo DB will be set up.104Embedding DB will be set up.138$ source ./scripts/rspec_helpers.sh139$ run_timed_command "gem install knapsack --no-document"140$ gem install knapsack --no-document141Successfully installed knapsack-4.0.01421 gem installed143==> 'gem install knapsack --no-document' succeeded in 1 seconds.144$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"149$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"150$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"151$ tooling/bin/create_job_metrics_file || true152[job-metrics] Creating the job metrics file for the CI/CD job.153$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"154RETRY_FAILED_TESTS_IN_NEW_PROCESS: true155KNAPSACK_GENERATE_REPORT: true156FLAKY_RSPEC_GENERATE_REPORT: true157KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb158KNAPSACK_LOG_LEVEL: debug159KNAPSACK_REPORT_PATH: knapsack/rspec-ee_integration_pg15_es8_4_6_report.json160FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json161FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_integration_pg15_es8_4_6_report.json162NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_integration_pg15_es8_4_6_report.json163RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5328359201.txt164CRYSTALBALL: 165RSPEC_TESTS_MAPPING_ENABLED: 166RSPEC_TESTS_FILTER_FILE: 167Shell set options (set -o) enabled:168braceexpand on169hashall on170interactive-comments on171pipefail on172Knapsack report generator started!173/builds/gitlab-org/gitlab/ee/app/services/remote_development/service_response_factory.rb:41: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!174/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/create_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!175/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/reconcile_service.rb:38: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!176/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/update_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!177/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:32: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!178/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!179/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!180/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!181/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!182/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:19: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!183/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!184/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!185/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_flattener.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!186/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!187/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!188/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!189/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!190/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!191/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!192/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:54: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!193/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:102: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!194/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:126: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!195/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:159: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!196/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:202: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!197/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:235: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!198/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!199/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:52: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!200/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!201/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!202/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!203/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:23: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!204/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!205/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!206/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!207/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!208/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!209/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!210/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!211/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_variables_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!212/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/main.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!213/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!214/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!215/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/agent_infos_observer.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!216/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!217/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!218/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_to_infos_converter.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!219/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_validator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!220/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/rails_infos_observer.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!221/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/workspaces_to_rails_infos_converter.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!222/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/orphaned_workspaces_observer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!223/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!224/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_finder.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!225/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!226INFO: analyzing "public.p_ci_runner_machine_builds" inheritance tree227INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_100"228INFO: "ci_runner_machine_builds_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows229INFO: analyzing "public.p_ci_job_annotations" inheritance tree230INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_100"231INFO: "ci_job_annotations_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows232INFO: analyzing "public.p_ci_builds_metadata" inheritance tree233INFO: analyzing "public.ci_builds_metadata"234INFO: "ci_builds_metadata": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows235INFO: analyzing "public.p_ci_runner_machine_builds" inheritance tree236INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_100"237INFO: "ci_runner_machine_builds_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows238INFO: analyzing "public.p_ci_job_annotations" inheritance tree239INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_100"240INFO: "ci_job_annotations_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows241INFO: analyzing "public.p_ci_builds_metadata" inheritance tree242INFO: analyzing "public.ci_builds_metadata"243INFO: "ci_builds_metadata": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows244Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}245Test environment set up in 0.697664413 seconds246Projects::MergeRequestsController247 PUT update248 when the merge request requires approval249 behaves like update invalid issuable250 when updating causes conflicts251 renders edit when format is html252 renders json error message when format is json253 when updating an invalid issuable254 renders edit when merge request is invalid255 overriding approvers per MR256 enabled257 updates approvals258 does not allow approvels before merge lower than the project setting259 creates rules260 disabled261 does not update approvals_before_merge262 does not update approver_ids263 does not update approver_group_ids264 does not create approval rules265 when the MR targets the project266 behaves like approvals_before_merge param267 approvals_before_merge not set for the existing MR268 when it is less than the one in the target project269 sets the param to the sames as the project270 updates the merge request271 when it is equal to the one in the target project272 sets the param to the same as the project273 updates the merge request274 when it is greater than the one in the target project275 saves the param in the merge request276 updates the merge request277 approvals_before_merge set for the existing MR278 when it is not set279 does not change the merge request280 updates the merge request281 when it is less than the one in the target project282 sets the param to the same as the target project283 updates the merge request284 when it is equal to the one in the target project285 sets the param to the same as the target project286 updates the merge request287 when it is greater than the one in the target project288 saves the param in the merge request289 updates the merge request290 when the project is a fork291 when the MR target upstream292 behaves like approvals_before_merge param293 approvals_before_merge not set for the existing MR294 when it is less than the one in the target project295 sets the param to the sames as the project296 updates the merge request297 when it is equal to the one in the target project298 sets the param to the same as the project299 updates the merge request300 when it is greater than the one in the target project301 saves the param in the merge request302 updates the merge request303 approvals_before_merge set for the existing MR304 when it is not set305 does not change the merge request306 updates the merge request307 when it is less than the one in the target project308 sets the param to the same as the target project309 updates the merge request310 when it is equal to the one in the target project311 sets the param to the same as the target project312 updates the merge request313 when it is greater than the one in the target project314 saves the param in the merge request315 updates the merge request316 when the MR target the fork317 behaves like approvals_before_merge param318 approvals_before_merge not set for the existing MR319 when it is less than the one in the target project320 sets the param to the sames as the project321 updates the merge request322 when it is equal to the one in the target project323 sets the param to the same as the project324 updates the merge request325 when it is greater than the one in the target project326 saves the param in the merge request327 updates the merge request328 approvals_before_merge set for the existing MR329 when it is not set330 does not change the merge request331 updates the merge request332 when it is less than the one in the target project333 sets the param to the same as the target project334 updates the merge request335 when it is equal to the one in the target project336 sets the param to the same as the target project337 updates the merge request338 when it is greater than the one in the target project339 saves the param in the merge request340 updates the merge request341 POST #merge342 with STRATEGY_MERGE_WHEN_CHECKS_PASS requested343 mergeable conditions344 when pipeline is active and no approvals are required345 behaves like merge MR when checks pass346 sets the MR to merge when it gets approved and the pipeline succeeds347 when feature flag "merge_when_checks_pass" is disabled348 fails to merge349 when pipeline has succeeded but required approvals are missing350 behaves like merge MR when checks pass351 sets the MR to merge when it gets approved and the pipeline succeeds352 when feature flag "merge_when_checks_pass" is disabled353 fails to merge354 when pipeline is active and required approvals are missing355 behaves like merge MR when checks pass356 sets the MR to merge when it gets approved and the pipeline succeeds357 when feature flag "merge_when_checks_pass" is disabled358 fails to merge359 when pipeline has succeeded and approvals are given360 returns :failed361 when auto merge has not been enabled yet362 calls AutoMergeService#execute363 when auto merge has already been enabled364 calls AutoMergeService#update365 POST #rebase366 approvals pending367 returns 200368 GET #edit369 default templates370 when a merge request description has content371 does not select a default template372 when a merge request description is blank373 when a default template does not exist in the repository374 does not select a default template375 when a default template exists in the repository376 does not select a default template377 GET #dependency_scanning_reports378 behaves like pending pipeline response379 when pipeline is pending380 sends polling interval381 returns 204 HTTP status382 behaves like comparable report383 when comparison is being processed384 sends polling interval385 returns 204 HTTP status386 when comparison is done387 does not send polling interval388 returns 200 HTTP status389 when user created corrupted reports390 does not send polling interval391 returns 400 HTTP status392 behaves like a security resource393 public project with public builds394 restricts access from signed out users395 restricts access from non-members396 restricts access from guests397 GET #container_scanning_reports398 behaves like pending pipeline response399 when pipeline is pending400 sends polling interval401 returns 204 HTTP status402 behaves like comparable report403 when comparison is being processed404 sends polling interval405 returns 204 HTTP status406 when comparison is done407 does not send polling interval408 returns 200 HTTP status409 when user created corrupted reports410 does not send polling interval411 returns 400 HTTP status412 behaves like a security resource413 public project with public builds414 restricts access from signed out users415 restricts access from non-members416 restricts access from guests417 GET #sast_reports418 behaves like pending pipeline response419 when pipeline is pending420 sends polling interval421 returns 204 HTTP status422 behaves like comparable report423 when comparison is being processed424 sends polling interval425 returns 204 HTTP status426 when comparison is done427 does not send polling interval428 returns 200 HTTP status429 when user created corrupted reports430 does not send polling interval431 returns 400 HTTP status432 behaves like a security resource433 public project with public builds434 restricts access from signed out users435 restricts access from non-members436 restricts access from guests437 GET #coverage_fuzzing_reports438 behaves like pending pipeline response439 when pipeline is pending440 sends polling interval441 returns 204 HTTP status442 behaves like comparable report443 when comparison is being processed444 sends polling interval445 returns 204 HTTP status446 when comparison is done447 does not send polling interval448 returns 200 HTTP status449 when user created corrupted reports450 does not send polling interval451 returns 400 HTTP status452 behaves like a security resource453 public project with public builds454 restricts access from signed out users455 restricts access from non-members456 restricts access from guests457 GET #api_fuzzing_reports458 behaves like pending pipeline response459 when pipeline is pending460 sends polling interval461 returns 204 HTTP status462 behaves like comparable report463 when comparison is being processed464 sends polling interval465 returns 204 HTTP status466 when comparison is done467 does not send polling interval468 returns 200 HTTP status469 when user created corrupted reports470 does not send polling interval471 returns 400 HTTP status472 behaves like a security resource473 public project with public builds474 restricts access from signed out users475 restricts access from non-members476 restricts access from guests477 GET #secret_detection_reports478 behaves like pending pipeline response479 when pipeline is pending480 sends polling interval481 returns 204 HTTP status482 behaves like comparable report483 when comparison is being processed484 sends polling interval485 returns 204 HTTP status486 when comparison is done487 does not send polling interval488 returns 200 HTTP status489 when user created corrupted reports490 does not send polling interval491 returns 400 HTTP status492 behaves like a security resource493 public project with public builds494 restricts access from signed out users495 restricts access from non-members496 restricts access from guests497 GET #dast_reports498 behaves like pending pipeline response499 when pipeline is pending500 sends polling interval501 returns 204 HTTP status502 behaves like comparable report503 when comparison is being processed504 sends polling interval505 returns 204 HTTP status506 when comparison is done507 does not send polling interval508 returns 200 HTTP status509 when user created corrupted reports510 does not send polling interval511 returns 400 HTTP status512 behaves like a security resource513 public project with public builds514 restricts access from signed out users515 restricts access from non-members516 restricts access from guests517 GET #license_scanning_reports518 behaves like license scanning report comparison519 when the report is being parsed520 returns 204 HTTP status521 when comparison is being processed522 sends polling interval523 returns 204 HTTP status524 when comparison is done525 does not send polling interval526 returns 200 HTTP status527 when user created corrupted test reports528 does not send polling interval529 returns 400 HTTP status530 when a user is authorized to read the licenses531 returns 200 HTTP status532 when license_scanning feature is disabled533 returns 404 status534 behaves like authorize read pipeline535 public project with private builds536 restricts access to signed out users537 restricts access to other users538 GET #license_scanning_reports_collapsed539 behaves like license scanning report comparison540 when the report is being parsed541 returns 204 HTTP status542 when comparison is being processed543 sends polling interval544 returns 204 HTTP status545 when comparison is done546 does not send polling interval547 returns 200 HTTP status548 when user created corrupted test reports549 does not send polling interval550 returns 400 HTTP status551 when a user is authorized to read the licenses552 returns 200 HTTP status553 when license_scanning feature is disabled554 returns 404 status555 behaves like authorize read pipeline556 public project with private builds557 restricts access to signed out users558 restricts access to other users559 GET #metrics_reports560 behaves like comparable report561 when comparison is being processed562 sends polling interval563 returns 204 HTTP status564 when comparison is done565 does not send polling interval566 returns 200 HTTP status567 when user created corrupted reports568 does not send polling interval569 returns 400 HTTP status570 behaves like authorize read pipeline571 public project with private builds572 restricts access to signed out users573 restricts access to other users574 behaves like DescriptionDiffActions576 when license is available577 behaves like description diff actions578 GET description_diff579 returns the diff with the previous version580 returns the diff with the previous version of the specified start_version_id581 when description version is from another issuable582 returns 404583 when start_version_id is from another issuable584 returns 404585 when start_version_id is deleted586 returns 404587 when description version is deleted588 returns 404589 DELETE description_diff590 returns 200591 when start_version_id is present592 returns 200593 when version is already deleted594 returns 404595 when user cannot admin issuable596 returns 404597 when license is not available598 GET description_diff599 returns 404600 DELETE description_diff601 returns 404602API::VisualReviewDiscussions603 when project is public604 behaves like accepting request without authentication605 behaves like handling merge request feedback606 creates a new note607 tracks a visual review feedback event608 the API response609 responds with a status 201 Created610 returns the persisted note body611 returns the name of the Visual Review Bot assigned as the author612 returns the id of the merge request as the parent noteable_id613 returns a current time stamp instead of the provided one614 with no message body615 returns a 400 bad request error if body not given616 with an invalid project ID617 does not create a new note618 the API response619 responds with a status 404620 with an invalid merge request IID621 does not create a new note622 the API response623 responds with a status 404624 when anonymous_visual_review_feedback feature flag is disabled625 does not create a new note626 the API response627 responds 403628 returns error messaging specifying that the feature is disabled629 behaves like accepting request with authentication630 behaves like handling merge request feedback631 creates a new note632 tracks a visual review feedback event633 the API response634 responds with a status 201 Created635 returns the persisted note body including user details636 returns the name of the Visual Review Bot assigned as the author637 returns the id of the merge request as the parent noteable_id638 returns a current time stamp instead of the provided one639 with no message body640 returns a 400 bad request error if body not given641 with an invalid project ID642 does not create a new note643 the API response644 responds with a status 404645 with an invalid merge request IID646 does not create a new note647 the API response648 responds with a status 404649 when anonymous_visual_review_feedback feature flag is disabled650 does not create a new note651 the API response652 responds 403653 returns error messaging specifying that the feature is disabled654 when merge request discussion is locked and project is public655 without authentication656 rejects note creation657 with visual review bot authentication658 rejects note creation659 when project is archived660 without authentication661 rejects note creation662 with visual review bot authentication663 rejects note creation664 when project is private665 behaves like accepting request with authentication666 behaves like handling merge request feedback667 creates a new note668 tracks a visual review feedback event669 the API response670 responds with a status 201 Created671 returns the persisted note body including user details672 returns the name of the Visual Review Bot assigned as the author673 returns the id of the merge request as the parent noteable_id674 returns a current time stamp instead of the provided one675 with no message body676 returns a 400 bad request error if body not given677 with an invalid project ID678 does not create a new note679 the API response680 responds with a status 404681 with an invalid merge request IID682 does not create a new note683 the API response684 responds with a status 404685 when anonymous_visual_review_feedback feature flag is disabled686 does not create a new note687 the API response688 responds 403689 returns error messaging specifying that the feature is disabled690 behaves like rejecting request without authentication691 returns a 404 project not found692 and authenticated user has no project access693 returns a 404 project not found694 when project is internal695 behaves like accepting request with authentication696 behaves like handling merge request feedback697 creates a new note698 tracks a visual review feedback event699 the API response700 responds with a status 201 Created701 returns the persisted note body including user details702 returns the name of the Visual Review Bot assigned as the author703 returns the id of the merge request as the parent noteable_id704 returns a current time stamp instead of the provided one705 with no message body706 returns a 400 bad request error if body not given707 with an invalid project ID708 does not create a new note709 the API response710 responds with a status 404711 with an invalid merge request IID712 does not create a new note713 the API response714 responds with a status 404715 when anonymous_visual_review_feedback feature flag is disabled716 does not create a new note717 the API response718 responds 403719 returns error messaging specifying that the feature is disabled720 behaves like rejecting request without authentication721 returns a 404 project not found722 and authenticated user has no project access723 behaves like handling merge request feedback724 creates a new note725 tracks a visual review feedback event726 the API response727 responds with a status 201 Created728 returns the persisted note body including user details729 returns the name of the Visual Review Bot assigned as the author730 returns the id of the merge request as the parent noteable_id731 returns a current time stamp instead of the provided one732 with no message body733 returns a 400 bad request error if body not given734 with an invalid project ID735 does not create a new note736 the API response737 responds with a status 404738 with an invalid merge request IID739 does not create a new note740 the API response741 responds with a status 404742 when anonymous_visual_review_feedback feature flag is disabled743 does not create a new note744 the API response745 responds 403746 returns error messaging specifying that the feature is disabled747API::Scim::GroupScim748 # order random749 when user with an alphanumeric extern_uid750 behaves like SCIM API endpoints751 GET api/scim/v2/groups/:group/Users752 responds with 404 for a non existent group753 responds with 404 for a group with no SAML SSO configuration754 responds with paginated users when there is no filter755 responds with an error for unsupported filters756 behaves like SCIM token authenticated757 without token auth758 responds with 401759 when existing user matches filter760 responds with 200761 sets default values as required by the specification762 when no user matches filter763 responds with 200764 GET api/scim/v2/groups/:group/Users/:id765 responds with 404 for a non existent group766 responds with 404 for a group with no SAML SSO configuration767 responds with 404 if there is no user768 behaves like SCIM token authenticated769 without token auth770 responds with 401771 when existing user772 responds with 200773 POST api/scim/v2/groups/:group/Users774 responds with 404 for a non existent group775 responds with 404 for a group with no SAML SSO configuration776 behaves like SCIM token authenticated777 without token auth778 responds with 401779 when a provisioning error occurs780 behaves like filtered params in errors781 does not expose the password in error response782 does not expose the access token in error response783 without an existing user784 responds with 201785 has the user external ID786 has the email787 created the user788 created the member with access level set in saml_provider789 created the identity790 marks the user as provisioned by the group791 when existing user792 responds with 201793 has the user external ID794 does not mark the user as provisioned795 behaves like storing arguments in the application context for the API796 places the expected params in the application context797 with allowed domain setting switched on798 with different domains799 created the user800 did not create member801 with invalid user params802 returns user error803 with matching domains804 created the user805 created the member with access level set in saml_provider806 PATCH api/scim/v2/groups/:group/Users/:id807 responds with 404 for a non existent group808 responds with 404 for a group with no SAML SSO configuration809 responds with 404 if there is no user810 deactivates the scim_identity811 behaves like SCIM token authenticated812 without token auth813 responds with 401814 with owner815 responds with 412816 returns the last group owner error817 does not deactivate the identity818 when reprovisioning user819 activates the scim_identity820 does not call reprovision service when identity is already active821 when existing user822 with extern UID823 responds with 204824 updates the extern_uid825 with user attributes826 with name827 responds with 204828 does not update the name829 responds with an empty response830 with email831 does not update the email832 responds with 204833 with userName834 responds with 204835 does not update the username836 responds with an empty response837 DELETE /scim/v2/groups/:group/Users/:id838 responds with 404 if there is no user839 responds with 404 for a non existent group840 responds with 404 for a group with no SAML SSO configuration841 when existing user842 responds with 204843 responds with an empty response844 deactivates the identity845 when the user is not a group member846 deactivates the identity847 with owner848 responds with 412849 returns the last group owner error850 does not deactivate the identity851 when user with an email extern_uid852 behaves like SCIM API endpoints853 GET api/scim/v2/groups/:group/Users854 responds with 404 for a non existent group855 responds with 404 for a group with no SAML SSO configuration856 responds with paginated users when there is no filter857 responds with an error for unsupported filters858 behaves like SCIM token authenticated859 without token auth860 responds with 401861 when existing user matches filter862 responds with 200863 sets default values as required by the specification864 when no user matches filter865 responds with 200866 GET api/scim/v2/groups/:group/Users/:id867 responds with 404 for a non existent group868 responds with 404 for a group with no SAML SSO configuration869 responds with 404 if there is no user870 behaves like SCIM token authenticated871 without token auth872 responds with 401873 when existing user874 responds with 200875 POST api/scim/v2/groups/:group/Users876 responds with 404 for a non existent group877 responds with 404 for a group with no SAML SSO configuration878 behaves like SCIM token authenticated879 without token auth880 responds with 401881 when a provisioning error occurs882 behaves like filtered params in errors883 does not expose the password in error response884 does not expose the access token in error response885 without an existing user886 responds with 201887 has the user external ID888 has the email889 created the user890 created the member with access level set in saml_provider891 created the identity892 marks the user as provisioned by the group893 when existing user894 responds with 201895 has the user external ID896 does not mark the user as provisioned897 behaves like storing arguments in the application context for the API898 places the expected params in the application context899 with allowed domain setting switched on900 with different domains901 created the user902 did not create member903 with invalid user params904 returns user error905 with matching domains906 created the user907 created the member with access level set in saml_provider908 PATCH api/scim/v2/groups/:group/Users/:id909 responds with 404 for a non existent group910 responds with 404 for a group with no SAML SSO configuration911 responds with 404 if there is no user912 deactivates the scim_identity913 behaves like SCIM token authenticated914 without token auth915 responds with 401916 with owner917 responds with 412918 returns the last group owner error919 does not deactivate the identity920 when reprovisioning user921 activates the scim_identity922 does not call reprovision service when identity is already active923 when existing user924 with extern UID925 responds with 204926 updates the extern_uid927 with user attributes928 with name929 responds with 204930 does not update the name931 responds with an empty response932 with email933 does not update the email934 responds with 204935 with userName936 responds with 204937 does not update the username938 responds with an empty response939 DELETE /scim/v2/groups/:group/Users/:id940 responds with 404 if there is no user941 responds with 404 for a non existent group942 responds with 404 for a group with no SAML SSO configuration943 when existing user944 responds with 204945 responds with an empty response946 deactivates the identity947 when the user is not a group member948 deactivates the identity949 with owner950 responds with 412951 returns the last group owner error952 does not deactivate the identity953Mutations::Geo::Registries::Update954 # order random955 registry_class: Geo::PagesDeploymentRegistry (call 'Geo::PagesDeploymentRegistry.connection' to establish a connection), registry_type: Types::Geo::PagesDeploymentRegistryType, registry_factory: :geo_pages_deployment_registry956 is expected to require graphql authorizations :read_geo_registry957 when feature flag `geo_registries_update_mutation` is disabled958 behaves like a mutation that returns top-level errors959 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."960 when geo licensed feature is not available961 behaves like a mutation that returns a top-level access error962 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"963 when maintenance mode is enabled964 behaves like a registry update action965 when it is valid966 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pagesDeploymentId"967 when it is invalid968 is expected to be nil969 with resync action970 behaves like a registry update action971 when it is valid972 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pagesDeploymentId"973 when it is invalid974 is expected to be nil975 with reverify action976 behaves like a registry update action977 when it is valid978 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pagesDeploymentId"979 when it is invalid980 is expected to be nil981 registry_class: Geo::ContainerRepositoryRegistry (call 'Geo::ContainerRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::ContainerRepositoryRegistryType, registry_factory: :geo_container_repository_registry982 is expected to require graphql authorizations :read_geo_registry983 when feature flag `geo_registries_update_mutation` is disabled984 behaves like a mutation that returns top-level errors985 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."986 when geo licensed feature is not available987 behaves like a mutation that returns a top-level access error988 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"989 when maintenance mode is enabled990 behaves like a registry update action991 when it is valid992 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "containerRepositoryId"993 when it is invalid994 is expected to be nil995 with resync action996 behaves like a registry update action997 when it is valid998 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "containerRepositoryId"999 when it is invalid1000 is expected to be nil1001 with reverify action1002 behaves like a registry update action1003 when it is valid1004 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "containerRepositoryId"1005 when it is invalid1006 is expected to be nil1007 registry_class: Geo::SnippetRepositoryRegistry (call 'Geo::SnippetRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::SnippetRepositoryRegistryType, registry_factory: :geo_snippet_repository_registry1008 is expected to require graphql authorizations :read_geo_registry1009 when feature flag `geo_registries_update_mutation` is disabled1010 behaves like a mutation that returns top-level errors1011 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1012 when geo licensed feature is not available1013 behaves like a mutation that returns a top-level access error1014 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1015 when maintenance mode is enabled1016 behaves like a registry update action1017 when it is valid1018 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "snippetRepositoryId"1019 when it is invalid1020 is expected to be nil1021 with resync action1022 behaves like a registry update action1023 when it is valid1024 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "snippetRepositoryId"1025 when it is invalid1026 is expected to be nil1027 with reverify action1028 behaves like a registry update action1029 when it is valid1030 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "snippetRepositoryId"1031 when it is invalid1032 is expected to be nil1033 registry_class: Geo::DesignManagementRepositoryRegistry (call 'Geo::DesignManagementRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::DesignManagementRepositoryRegistryType, registry_factory: :geo_design_management_repository_registry1034 is expected to require graphql authorizations :read_geo_registry1035 when feature flag `geo_registries_update_mutation` is disabled1036 behaves like a mutation that returns top-level errors1037 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1038 when geo licensed feature is not available1039 behaves like a mutation that returns a top-level access error1040 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1041 when maintenance mode is enabled1042 behaves like a registry update action1043 when it is valid1044 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "designManagementRepositoryId"1045 when it is invalid1046 is expected to be nil1047 with resync action1048 behaves like a registry update action1049 when it is valid1050 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "designManagementRepositoryId"1051 when it is invalid1052 is expected to be nil1053 with reverify action1054 behaves like a registry update action1055 when it is valid1056 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "designManagementRepositoryId"1057 when it is invalid1058 is expected to be nil1059 registry_class: Geo::LfsObjectRegistry (call 'Geo::LfsObjectRegistry.connection' to establish a connection), registry_type: Types::Geo::LfsObjectRegistryType, registry_factory: :geo_lfs_object_registry1060 is expected to require graphql authorizations :read_geo_registry1061 when feature flag `geo_registries_update_mutation` is disabled1062 behaves like a mutation that returns top-level errors1063 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1064 when geo licensed feature is not available1065 behaves like a mutation that returns a top-level access error1066 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1067 when maintenance mode is enabled1068 behaves like a registry update action1069 when it is valid1070 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "lfsObjectId"1071 when it is invalid1072 is expected to be nil1073 with resync action1074 behaves like a registry update action1075 when it is valid1076 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "lfsObjectId"1077 when it is invalid1078 is expected to be nil1079 with reverify action1080 behaves like a registry update action1081 when it is valid1082 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "lfsObjectId"1083 when it is invalid1084 is expected to be nil1085 registry_class: Geo::DependencyProxyManifestRegistry (call 'Geo::DependencyProxyManifestRegistry.connection' to establish a connection), registry_type: Types::Geo::DependencyProxyManifestRegistryType, registry_factory: :geo_dependency_proxy_manifest_registry1086 is expected to require graphql authorizations :read_geo_registry1087 when feature flag `geo_registries_update_mutation` is disabled1088 behaves like a mutation that returns top-level errors1089 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1090 when geo licensed feature is not available1091 behaves like a mutation that returns a top-level access error1092 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1093 when maintenance mode is enabled1094 behaves like a registry update action1095 when it is valid1096 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyManifestId"1097 when it is invalid1098 is expected to be nil1099 with resync action1100 behaves like a registry update action1101 when it is valid1102 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyManifestId"1103 when it is invalid1104 is expected to be nil1105 with reverify action1106 behaves like a registry update action1107 when it is valid1108 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyManifestId"1109 when it is invalid1110 is expected to be nil1111 registry_class: Geo::CiSecureFileRegistry (call 'Geo::CiSecureFileRegistry.connection' to establish a connection), registry_type: Types::Geo::CiSecureFileRegistryType, registry_factory: :geo_ci_secure_file_registry1112 is expected to require graphql authorizations :read_geo_registry1113 when feature flag `geo_registries_update_mutation` is disabled1114 behaves like a mutation that returns top-level errors1115 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1116 when geo licensed feature is not available1117 behaves like a mutation that returns a top-level access error1118 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1119 when maintenance mode is enabled1120 behaves like a registry update action1121 when it is valid1122 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "ciSecureFileId"1123 when it is invalid1124 is expected to be nil1125 with resync action1126 behaves like a registry update action1127 when it is valid1128 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "ciSecureFileId"1129 when it is invalid1130 is expected to be nil1131 with reverify action1132 behaves like a registry update action1133 when it is valid1134 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "ciSecureFileId"1135 when it is invalid1136 is expected to be nil1137 registry_class: Geo::UploadRegistry (call 'Geo::UploadRegistry.connection' to establish a connection), registry_type: Types::Geo::UploadRegistryType, registry_factory: :geo_upload_registry1138 is expected to require graphql authorizations :read_geo_registry1139 when feature flag `geo_registries_update_mutation` is disabled1140 behaves like a mutation that returns top-level errors1141 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1142 when geo licensed feature is not available1143 behaves like a mutation that returns a top-level access error1144 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1145 when maintenance mode is enabled1146 behaves like a registry update action1147 when it is valid1148 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "fileId"1149 when it is invalid1150 is expected to be nil1151 with resync action1152 behaves like a registry update action1153 when it is valid1154 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "fileId"1155 when it is invalid1156 is expected to be nil1157 with reverify action1158 behaves like a registry update action1159 when it is valid1160 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "fileId"1161 when it is invalid1162 is expected to be nil1163 registry_class: Geo::MergeRequestDiffRegistry (call 'Geo::MergeRequestDiffRegistry.connection' to establish a connection), registry_type: Types::Geo::MergeRequestDiffRegistryType, registry_factory: :geo_merge_request_diff_registry1164 is expected to require graphql authorizations :read_geo_registry1165 when feature flag `geo_registries_update_mutation` is disabled1166 behaves like a mutation that returns top-level errors1167 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1168 when geo licensed feature is not available1169 behaves like a mutation that returns a top-level access error1170 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1171 when maintenance mode is enabled1172 behaves like a registry update action1173 when it is valid1174 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "mergeRequestDiffId"1175 when it is invalid1176 is expected to be nil1177 with resync action1178 behaves like a registry update action1179 when it is valid1180 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "mergeRequestDiffId"1181 when it is invalid1182 is expected to be nil1183 with reverify action1184 behaves like a registry update action1185 when it is valid1186 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "mergeRequestDiffId"1187 when it is invalid1188 is expected to be nil1189 registry_class: Geo::TerraformStateVersionRegistry (call 'Geo::TerraformStateVersionRegistry.connection' to establish a connection), registry_type: Types::Geo::TerraformStateVersionRegistryType, registry_factory: :geo_terraform_state_version_registry1190 is expected to require graphql authorizations :read_geo_registry1191 when feature flag `geo_registries_update_mutation` is disabled1192 behaves like a mutation that returns top-level errors1193 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1194 when geo licensed feature is not available1195 behaves like a mutation that returns a top-level access error1196 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1197 when maintenance mode is enabled1198 behaves like a registry update action1199 when it is valid1200 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "terraformStateVersionId"1201 when it is invalid1202 is expected to be nil1203 with resync action1204 behaves like a registry update action1205 when it is valid1206 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "terraformStateVersionId"1207 when it is invalid1208 is expected to be nil1209 with reverify action1210 behaves like a registry update action1211 when it is valid1212 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "terraformStateVersionId"1213 when it is invalid1214 is expected to be nil1215 registry_class: Geo::DependencyProxyBlobRegistry (call 'Geo::DependencyProxyBlobRegistry.connection' to establish a connection), registry_type: Types::Geo::DependencyProxyBlobRegistryType, registry_factory: :geo_dependency_proxy_blob_registry1216 is expected to require graphql authorizations :read_geo_registry1217 when feature flag `geo_registries_update_mutation` is disabled1218 behaves like a mutation that returns top-level errors1219 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1220 when geo licensed feature is not available1221 behaves like a mutation that returns a top-level access error1222 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1223 when maintenance mode is enabled1224 behaves like a registry update action1225 when it is valid1226 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyBlobId"1227 when it is invalid1228 is expected to be nil1229 with resync action1230 behaves like a registry update action1231 when it is valid1232 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyBlobId"1233 when it is invalid1234 is expected to be nil1235 with reverify action1236 behaves like a registry update action1237 when it is valid1238 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyBlobId"1239 when it is invalid1240 is expected to be nil1241 registry_class: Geo::PackageFileRegistry (call 'Geo::PackageFileRegistry.connection' to establish a connection), registry_type: Types::Geo::PackageFileRegistryType, registry_factory: :geo_package_file_registry1242 is expected to require graphql authorizations :read_geo_registry1243 when feature flag `geo_registries_update_mutation` is disabled1244 behaves like a mutation that returns top-level errors1245 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1246 when geo licensed feature is not available1247 behaves like a mutation that returns a top-level access error1248 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1249 when maintenance mode is enabled1250 behaves like a registry update action1251 when it is valid1252 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "packageFileId"1253 when it is invalid1254 is expected to be nil1255 with resync action1256 behaves like a registry update action1257 when it is valid1258 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "packageFileId"1259 when it is invalid1260 is expected to be nil1261 with reverify action1262 behaves like a registry update action1263 when it is valid1264 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "packageFileId"1265 when it is invalid1266 is expected to be nil1267 registry_class: Geo::JobArtifactRegistry (call 'Geo::JobArtifactRegistry.connection' to establish a connection), registry_type: Types::Geo::JobArtifactRegistryType, registry_factory: :geo_job_artifact_registry1268 is expected to require graphql authorizations :read_geo_registry1269 when feature flag `geo_registries_update_mutation` is disabled1270 behaves like a mutation that returns top-level errors1271 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1272 when geo licensed feature is not available1273 behaves like a mutation that returns a top-level access error1274 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1275 when maintenance mode is enabled1276 behaves like a registry update action1277 when it is valid1278 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "artifactId"1279 when it is invalid1280 is expected to be nil1281 with resync action1282 behaves like a registry update action1283 when it is valid1284 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "artifactId"1285 when it is invalid1286 is expected to be nil1287 with reverify action1288 behaves like a registry update action1289 when it is valid1290 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "artifactId"1291 when it is invalid1292 is expected to be nil1293 registry_class: Geo::ProjectWikiRepositoryRegistry (call 'Geo::ProjectWikiRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::ProjectWikiRepositoryRegistryType, registry_factory: :geo_project_wiki_repository_registry1294 is expected to require graphql authorizations :read_geo_registry1295 when feature flag `geo_registries_update_mutation` is disabled1296 behaves like a mutation that returns top-level errors1297 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1298 when geo licensed feature is not available1299 behaves like a mutation that returns a top-level access error1300 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1301 when maintenance mode is enabled1302 behaves like a registry update action1303 when it is valid1304 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "projectWikiRepositoryId"1305 when it is invalid1306 is expected to be nil1307 with resync action1308 behaves like a registry update action1309 when it is valid1310 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "projectWikiRepositoryId"1311 when it is invalid1312 is expected to be nil1313 with reverify action1314 behaves like a registry update action1315 when it is valid1316 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "projectWikiRepositoryId"1317 when it is invalid1318 is expected to be nil1319 registry_class: Geo::GroupWikiRepositoryRegistry (call 'Geo::GroupWikiRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::GroupWikiRepositoryRegistryType, registry_factory: :geo_group_wiki_repository_registry1320 is expected to require graphql authorizations :read_geo_registry1321 when feature flag `geo_registries_update_mutation` is disabled1322 behaves like a mutation that returns top-level errors1323 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1324 when geo licensed feature is not available1325 behaves like a mutation that returns a top-level access error1326 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1327 when maintenance mode is enabled1328 behaves like a registry update action1329 when it is valid1330 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "groupWikiRepositoryId"1331 when it is invalid1332 is expected to be nil1333 with resync action1334 behaves like a registry update action1335 when it is valid1336 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "groupWikiRepositoryId"1337 when it is invalid1338 is expected to be nil1339 with reverify action1340 behaves like a registry update action1341 when it is valid1342 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "groupWikiRepositoryId"1343 when it is invalid1344 is expected to be nil1345 registry_class: Geo::PipelineArtifactRegistry (call 'Geo::PipelineArtifactRegistry.connection' to establish a connection), registry_type: Types::Geo::PipelineArtifactRegistryType, registry_factory: :geo_pipeline_artifact_registry1346 is expected to require graphql authorizations :read_geo_registry1347 when feature flag `geo_registries_update_mutation` is disabled1348 behaves like a mutation that returns top-level errors1349 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1350 when geo licensed feature is not available1351 behaves like a mutation that returns a top-level access error1352 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1353 when maintenance mode is enabled1354 behaves like a registry update action1355 when it is valid1356 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pipelineArtifactId"1357 when it is invalid1358 is expected to be nil1359 with resync action1360 behaves like a registry update action1361 when it is valid1362 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pipelineArtifactId"1363 when it is invalid1364 is expected to be nil1365 with reverify action1366 behaves like a registry update action1367 when it is valid1368 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pipelineArtifactId"1369 when it is invalid1370 is expected to be nil1371ProjectsController1372 GET new1373 when user does not have `:create_projects` permissions1374 returns a 4041375 when user does have `:create_projects` permissions1376 renders `new` template1377 GET show1378 additional repo storage by namespace1379 when automatic_purchased_storage_allocation setting is enabled1380 when usage_ratio < 0.751381 does not include the CTA for additional purchased storage1382 when usage_ratio >= 0.751383 includes the CTA for additional purchased storage1384 when automatic_purchased_storage_allocation setting is disabled1385 does not include the CTA for additional purchased storage1386 with automatic_purchased_storage_allocation set to true1387 does not show over size limit warning when above_size_limit1388 with automatic_purchased_storage_allocation set to false1389 shows the over size limit warning message if above_size_limit1390 does not show an over size warning if not above_size_limit1391 namespace storage limit1392 behaves like namespace storage limit alert1393 does render1394 when user has dismissed already1395 does not render alert1396 behaves like seat count alert1397 when the namespace qualifies for the alert1398 sets the seat_count_data1399 when the namespace does not qualify for the alert1400 sets the seat_count_data to nil1401 GET edit1402 does not allow an auditor user to access the page1403 POST create1404 with licensed repository mirrors1405 has mirror enabled in new project1406 with unlicensed repository mirrors1407 has mirror disabled in new project1408 built in project templates1409 creates one audit event1410 custom project templates1411 when licensed1412 object storage1413 creates the project from project template1414 when unlicensed1415 does not create the project from project template1416 PUT #update1417 updates Merge Request Approvers attributes1418 updates Issuable Default Templates attributes1419 updates cve_id_request_enabled1420 when merge_pipelines_enabled param is specified1421 updates the attribute1422 when license is not sufficient1423 does not update the attribute1424 when only_allow_merge_if_all_status_checks_passed param is specified1425 behaves like update only allow merge if all status checks passed1426 when only_allow_merge_if_all_status_checks_passed param is specified1427 updates the attribute1428 when license is not sufficient1429 does not update the attribute1430 when merge_trains_enabled param is specified1431 updates the attribute1432 when license is not sufficient1433 does not update the attribute1434 when merge_trains_skip_train_allowed param is specified1435 updates the attribute1436 when license is not sufficient1437 does not update the attribute1438 when auto_rollback_enabled param is specified1439 updates the attribute1440 when license is not sufficient1441 does not update the attribute1442 repository mirrors1443 when licensed1444 updates repository mirror attributes1445 ignores mirror_user_id1446 when unlicensed1447 does not update repository mirror attributes1448 merge request approvers settings1449 :disable_overriding_approvers_per_merge_request1450 behaves like merge request approvers rules1451 can_modify: true, param_value: true, final_value: true1452 updates project if needed1453 can_modify: true, param_value: false, final_value: false1454 updates project if needed1455 can_modify: false, param_value: true, final_value: nil1456 updates project if needed1457 can_modify: false, param_value: false, final_value: nil1458 updates project if needed1459 :merge_requests_author_approval1460 behaves like merge request approvers rules1461 can_modify: true, param_value: true, final_value: true1462 updates project if needed1463 can_modify: true, param_value: false, final_value: false1464 updates project if needed1465 can_modify: false, param_value: true, final_value: nil1466 updates project if needed1467 can_modify: false, param_value: false, final_value: nil1468 updates project if needed1469 :merge_requests_disable_committers_approval1470 behaves like merge request approvers rules1471 can_modify: true, param_value: true, final_value: true1472 updates project if needed1473 can_modify: true, param_value: false, final_value: false1474 updates project if needed1475 can_modify: false, param_value: true, final_value: nil1476 updates project if needed1477 can_modify: false, param_value: false, final_value: nil1478 updates project if needed1479 analytics dashboards pointer setting1480 without correct license1481 ignores input1482 with correct license1483 updates analytics dashboards configuration project1484 compliance framework settings1485 when unlicensed1486 behaves like no compliance framework is set1487 does not change compliance framework for project1488 when licensed1489 current_user is a project owner1490 sets the compliance framework1491 #download_export1492 when project export is enabled1493 behaves like audit events with event type1494 logs the audit event1495 when project export is disabled1496 does not log an audit event1497 Archive & Unarchive actions1498 POST #archive1499 for a user with the ability to archive a project1500 behaves like audit events with event type1501 logs the audit event1502 for a user that does not have the ability to archive a project1503 does not log the audit event1504 POST #unarchive1505 for a user with the ability to unarchive a project1506 behaves like audit events with event type1507 logs the audit event1508 for a user that does not have the ability to unarchive a project1509 does not log the audit event1510 DELETE #destroy1511 feature is available1512 when feature is enabled for group1513 does not mark project for deletion because of error1514 behaves like marks project for deletion1515 is expected to redirect to "/group182/project-318-deleted-322"1516 when instance setting is set to 0 days1517 deletes project right away1518 when project is already marked for deletion1519 when permanently_delete param is set1520 deletes project right away1521 when permanently_delete param is not set1522 does nothing1523 when feature is disabled for group1524 behaves like marks project for deletion1525 is expected to redirect to "/group182/project-322-deleted-326"1526 when feature is not available for the project1527 behaves like marks free project for deletion1528 is expected to redirect to "/dashboard/projects"1529 for projects in user namespace1530 behaves like deletes project right away1531 is expected to redirect to "/dashboard/projects"1532 feature is not available1533 behaves like deletes project right away1534 is expected to redirect to "/dashboard/projects"1535 POST #restore1536 restores project deletion1537 does not restore project because of error1538API::MergeTrains1539 GET /projects/:id/merge_trains1540 when there are two merge trains1541 returns merge trains sorted by id in descending order1542 does not have N+1 problem1543 when sort is specified1544 returns merge trains sorted by id in ascending order1545 when scope is specified1546 when scope is active1547 returns active merge trains1548 when scope is complete1549 returns complete merge trains1550 when user is guest1551 forbids the request1552 GET /projects/:id/merge_trains/:target_branch1553 when the project and target branch exist1554 with no params1555 returns the target branch merge train cars1556 with ascending sort1557 returns the target branch merge train cars ascending1558 with descending sort1559 returns the target branch merge train cars descending1560 with scope active1561 returns the active target branch merge train cars1562 when the target branch does not exist1563 returns no merge train cars1564 when the user does not have project access1565 returns forbidden1566 GET /projects/:id/merge_trains/merge_requests/:merge_request_iid1567 when the project and target branch exist1568 returns the target branch merge train cars1569 when the user does not have project access1570 returns forbidden1571 when the merge request does not exist1572 returns not found1573 when merge request is not in a merge train1574 returns not found1575 POST /projects/:id/merge_trains/merge_requests/:merge_request_iid1576 with valid merge request iid1577 behaves like succeeds to add to merge train1578 succeeds to add to merge train1579 with invalid merge request iid1580 exits with invalid return code1581 with no params1582 sets a default SHA1583 behaves like succeeds to add to merge train1584 succeeds to add to merge train1585 with valid parameters1586 behaves like succeeds to add to merge train1587 succeeds to add to merge train1588 with extra parameters1589 ignores the param and continues1590 with when_pipeline_succeeds enabled1591 when pipeline is not completed1592 returns status accepted1593 when sha is provided and matches1594 behaves like succeeds to add to merge train1595 succeeds to add to merge train1596 when sha is provided and doesn't match1597 returns status conflict1598 when user is guest1599 returns forbidden before reaching the api endpoint1600 when the service object fails1601 returns status unauthorized1602 when the service object returns an unexpected response1603 returns bad request1604API::GeoSites1605 # order random1606 DELETE /geo_sites/:id1607 denies access if not admin1608 deletes the site1609 returns 500 if Geo Site could not be deleted1610 behaves like 404 response1611 returns 4041612 POST /geo_sites1613 denies access if not admin1614 returns rendering error if params are missing1615 delegates the creation of the Geo site to Geo::NodeCreateService1616 returns error if failed to create a geo site1617 POST /geo_sites/:id/repair1618 denies access if not admin1619 returns 200 for the primary site1620 returns 200 when site does not need repairing1621 repairs a secondary with oauth application missing1622 behaves like 404 response1623 returns 4041624 when geo site is invalid1625 returns validation error1626 GET /geo_sites/status1627 retrieves all Geo sites statuses if admin is logged in1628 returns only one record if only one record exists1629 denies access if not admin1630 GET /geo_sites/:id1631 retrieves the Geo sites if admin is logged in1632 denies access if not admin1633 behaves like 404 response1634 returns 4041635 GET /geo_sites/:id/status1636 retrieves the Geo sites status if admin is logged in1637 fetches the current site status from redis1638 shows the database-held response if current site status exists in the database, but not redis1639 the secondary shows 404 response if current site status does not exist in database or redis yet1640 the primary shows 404 response if secondary site status does not exist in database yet1641 denies access if not admin1642 behaves like 404 response1643 returns 4041644 GET /geo_sites1645 retrieves the Geo sites if admin is logged in1646 denies access if not admin1647 PUT /geo_sites/:id1648 denies access if not admin1649 updates the parameters1650 can update primary1651 cannot disable a primary1652 behaves like 404 response1653 returns 4041654 with auth with geo site token1655 enables the secondary site1656 disables the secondary site1657 returns bad request if you try to update the primary1658 responds with 401 when IP is not allowed1659 responds 401 if auth header is bad1660Mutations::Geo::Registries::BulkUpdate1661 # order random1662 registry_class: Geo::JobArtifactRegistry (call 'Geo::JobArtifactRegistry.connection' to establish a connection), registry_type: Types::Geo::JobArtifactRegistryType, registry_factory: :geo_job_artifact_registry1663 is expected to require graphql authorizations :read_geo_registry1664 when feature flag `geo_registries_update_mutation` is disabled1665 behaves like a mutation that returns top-level errors1666 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1667 when geo licensed feature is not available1668 behaves like a mutation that returns a top-level access error1669 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1670 when maintenance mode is enabled1671 behaves like a registries update action1672 when it is valid1673 is expected to include "JOB_ARTIFACT_REGISTRY"1674 when it is invalid1675 is expected to be nil1676 with resync_all action1677 behaves like a registries update action1678 when it is valid1679 is expected to include "JOB_ARTIFACT_REGISTRY"1680 when it is invalid1681 is expected to be nil1682 with reverify_all action1683 behaves like a registries update action1684 when it is valid1685 is expected to include "JOB_ARTIFACT_REGISTRY"1686 when it is invalid1687 is expected to be nil1688 registry_class: Geo::DependencyProxyBlobRegistry (call 'Geo::DependencyProxyBlobRegistry.connection' to establish a connection), registry_type: Types::Geo::DependencyProxyBlobRegistryType, registry_factory: :geo_dependency_proxy_blob_registry1689 is expected to require graphql authorizations :read_geo_registry1690 when feature flag `geo_registries_update_mutation` is disabled1691 behaves like a mutation that returns top-level errors1692 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1693 when geo licensed feature is not available1694 behaves like a mutation that returns a top-level access error1695 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1696 when maintenance mode is enabled1697 behaves like a registries update action1698 when it is valid1699 is expected to include "DEPENDENCY_PROXY_BLOB_REGISTRY"1700 when it is invalid1701 is expected to be nil1702 with resync_all action1703 behaves like a registries update action1704 when it is valid1705 is expected to include "DEPENDENCY_PROXY_BLOB_REGISTRY"1706 when it is invalid1707 is expected to be nil1708 with reverify_all action1709 behaves like a registries update action1710 when it is valid1711 is expected to include "DEPENDENCY_PROXY_BLOB_REGISTRY"1712 when it is invalid1713 is expected to be nil1714 registry_class: Geo::TerraformStateVersionRegistry (call 'Geo::TerraformStateVersionRegistry.connection' to establish a connection), registry_type: Types::Geo::TerraformStateVersionRegistryType, registry_factory: :geo_terraform_state_version_registry1715 is expected to require graphql authorizations :read_geo_registry1716 when feature flag `geo_registries_update_mutation` is disabled1717 behaves like a mutation that returns top-level errors1718 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1719 when geo licensed feature is not available1720 behaves like a mutation that returns a top-level access error1721 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1722 when maintenance mode is enabled1723 behaves like a registries update action1724 when it is valid1725 is expected to include "TERRAFORM_STATE_VERSION_REGISTRY"1726 when it is invalid1727 is expected to be nil1728 with resync_all action1729 behaves like a registries update action1730 when it is valid1731 is expected to include "TERRAFORM_STATE_VERSION_REGISTRY"1732 when it is invalid1733 is expected to be nil1734 with reverify_all action1735 behaves like a registries update action1736 when it is valid1737 is expected to include "TERRAFORM_STATE_VERSION_REGISTRY"1738 when it is invalid1739 is expected to be nil1740 registry_class: Geo::PackageFileRegistry (call 'Geo::PackageFileRegistry.connection' to establish a connection), registry_type: Types::Geo::PackageFileRegistryType, registry_factory: :geo_package_file_registry1741 is expected to require graphql authorizations :read_geo_registry1742 when feature flag `geo_registries_update_mutation` is disabled1743 behaves like a mutation that returns top-level errors1744 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1745 when geo licensed feature is not available1746 behaves like a mutation that returns a top-level access error1747 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1748 when maintenance mode is enabled1749 behaves like a registries update action1750 when it is valid1751 is expected to include "PACKAGE_FILE_REGISTRY"1752 when it is invalid1753 is expected to be nil1754 with resync_all action1755 behaves like a registries update action1756 when it is valid1757 is expected to include "PACKAGE_FILE_REGISTRY"1758 when it is invalid1759 is expected to be nil1760 with reverify_all action1761 behaves like a registries update action1762 when it is valid1763 is expected to include "PACKAGE_FILE_REGISTRY"1764 when it is invalid1765 is expected to be nil1766 registry_class: Geo::CiSecureFileRegistry (call 'Geo::CiSecureFileRegistry.connection' to establish a connection), registry_type: Types::Geo::CiSecureFileRegistryType, registry_factory: :geo_ci_secure_file_registry1767 is expected to require graphql authorizations :read_geo_registry1768 when feature flag `geo_registries_update_mutation` is disabled1769 behaves like a mutation that returns top-level errors1770 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1771 when geo licensed feature is not available1772 behaves like a mutation that returns a top-level access error1773 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1774 when maintenance mode is enabled1775 behaves like a registries update action1776 when it is valid1777 is expected to include "CI_SECURE_FILE_REGISTRY"1778 when it is invalid1779 is expected to be nil1780 with resync_all action1781 behaves like a registries update action1782 when it is valid1783 is expected to include "CI_SECURE_FILE_REGISTRY"1784 when it is invalid1785 is expected to be nil1786 with reverify_all action1787 behaves like a registries update action1788 when it is valid1789 is expected to include "CI_SECURE_FILE_REGISTRY"1790 when it is invalid1791 is expected to be nil1792 registry_class: Geo::ProjectWikiRepositoryRegistry (call 'Geo::ProjectWikiRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::ProjectWikiRepositoryRegistryType, registry_factory: :geo_project_wiki_repository_registry1793 is expected to require graphql authorizations :read_geo_registry1794 when feature flag `geo_registries_update_mutation` is disabled1795 behaves like a mutation that returns top-level errors1796 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1797 when geo licensed feature is not available1798 behaves like a mutation that returns a top-level access error1799 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1800 when maintenance mode is enabled1801 behaves like a registries update action1802 when it is valid1803 is expected to include "PROJECT_WIKI_REPOSITORY_REGISTRY"1804 when it is invalid1805 is expected to be nil1806 with resync_all action1807 behaves like a registries update action1808 when it is valid1809 is expected to include "PROJECT_WIKI_REPOSITORY_REGISTRY"1810 when it is invalid1811 is expected to be nil1812 with reverify_all action1813 behaves like a registries update action1814 when it is valid1815 is expected to include "PROJECT_WIKI_REPOSITORY_REGISTRY"1816 when it is invalid1817 is expected to be nil1818 registry_class: Geo::UploadRegistry (call 'Geo::UploadRegistry.connection' to establish a connection), registry_type: Types::Geo::UploadRegistryType, registry_factory: :geo_upload_registry1819 is expected to require graphql authorizations :read_geo_registry1820 when feature flag `geo_registries_update_mutation` is disabled1821 behaves like a mutation that returns top-level errors1822 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1823 when geo licensed feature is not available1824 behaves like a mutation that returns a top-level access error1825 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1826 when maintenance mode is enabled1827 behaves like a registries update action1828 when it is valid1829 is expected to include "UPLOAD_REGISTRY"1830 when it is invalid1831 is expected to be nil1832 with resync_all action1833 behaves like a registries update action1834 when it is valid1835 is expected to include "UPLOAD_REGISTRY"1836 when it is invalid1837 is expected to be nil1838 with reverify_all action1839 behaves like a registries update action1840 when it is valid1841 is expected to include "UPLOAD_REGISTRY"1842 when it is invalid1843 is expected to be nil1844 registry_class: Geo::LfsObjectRegistry (call 'Geo::LfsObjectRegistry.connection' to establish a connection), registry_type: Types::Geo::LfsObjectRegistryType, registry_factory: :geo_lfs_object_registry1845 is expected to require graphql authorizations :read_geo_registry1846 when feature flag `geo_registries_update_mutation` is disabled1847 behaves like a mutation that returns top-level errors1848 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1849 when geo licensed feature is not available1850 behaves like a mutation that returns a top-level access error1851 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1852 when maintenance mode is enabled1853 behaves like a registries update action1854 when it is valid1855 is expected to include "LFS_OBJECT_REGISTRY"1856 when it is invalid1857 is expected to be nil1858 with resync_all action1859 behaves like a registries update action1860 when it is valid1861 is expected to include "LFS_OBJECT_REGISTRY"1862 when it is invalid1863 is expected to be nil1864 with reverify_all action1865 behaves like a registries update action1866 when it is valid1867 is expected to include "LFS_OBJECT_REGISTRY"1868 when it is invalid1869 is expected to be nil1870 registry_class: Geo::DesignManagementRepositoryRegistry (call 'Geo::DesignManagementRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::DesignManagementRepositoryRegistryType, registry_factory: :geo_design_management_repository_registry1871 is expected to require graphql authorizations :read_geo_registry1872 when feature flag `geo_registries_update_mutation` is disabled1873 behaves like a mutation that returns top-level errors1874 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1875 when geo licensed feature is not available1876 behaves like a mutation that returns a top-level access error1877 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1878 when maintenance mode is enabled1879 behaves like a registries update action1880 when it is valid1881 is expected to include "DESIGN_MANAGEMENT_REPOSITORY_REGISTRY"1882 when it is invalid1883 is expected to be nil1884 with resync_all action1885 behaves like a registries update action1886 when it is valid1887 is expected to include "DESIGN_MANAGEMENT_REPOSITORY_REGISTRY"1888 when it is invalid1889 is expected to be nil1890 with reverify_all action1891 behaves like a registries update action1892 when it is valid1893 is expected to include "DESIGN_MANAGEMENT_REPOSITORY_REGISTRY"1894 when it is invalid1895 is expected to be nil1896 registry_class: Geo::PagesDeploymentRegistry (call 'Geo::PagesDeploymentRegistry.connection' to establish a connection), registry_type: Types::Geo::PagesDeploymentRegistryType, registry_factory: :geo_pages_deployment_registry1897 is expected to require graphql authorizations :read_geo_registry1898 when feature flag `geo_registries_update_mutation` is disabled1899 behaves like a mutation that returns top-level errors1900 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1901 when geo licensed feature is not available1902 behaves like a mutation that returns a top-level access error1903 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1904 when maintenance mode is enabled1905 behaves like a registries update action1906 when it is valid1907 is expected to include "PAGES_DEPLOYMENT_REGISTRY"1908 when it is invalid1909 is expected to be nil1910 with resync_all action1911 behaves like a registries update action1912 when it is valid1913 is expected to include "PAGES_DEPLOYMENT_REGISTRY"1914 when it is invalid1915 is expected to be nil1916 with reverify_all action1917 behaves like a registries update action1918 when it is valid1919 is expected to include "PAGES_DEPLOYMENT_REGISTRY"1920 when it is invalid1921 is expected to be nil1922 registry_class: Geo::SnippetRepositoryRegistry (call 'Geo::SnippetRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::SnippetRepositoryRegistryType, registry_factory: :geo_snippet_repository_registry1923 is expected to require graphql authorizations :read_geo_registry1924 when feature flag `geo_registries_update_mutation` is disabled1925 behaves like a mutation that returns top-level errors1926 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1927 when geo licensed feature is not available1928 behaves like a mutation that returns a top-level access error1929 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1930 when maintenance mode is enabled1931 behaves like a registries update action1932 when it is valid1933 is expected to include "SNIPPET_REPOSITORY_REGISTRY"1934 when it is invalid1935 is expected to be nil1936 with resync_all action1937 behaves like a registries update action1938 when it is valid1939 is expected to include "SNIPPET_REPOSITORY_REGISTRY"1940 when it is invalid1941 is expected to be nil1942 with reverify_all action1943 behaves like a registries update action1944 when it is valid1945 is expected to include "SNIPPET_REPOSITORY_REGISTRY"1946 when it is invalid1947 is expected to be nil1948 registry_class: Geo::GroupWikiRepositoryRegistry (call 'Geo::GroupWikiRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::GroupWikiRepositoryRegistryType, registry_factory: :geo_group_wiki_repository_registry1949 is expected to require graphql authorizations :read_geo_registry1950 when feature flag `geo_registries_update_mutation` is disabled1951 behaves like a mutation that returns top-level errors1952 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1953 when geo licensed feature is not available1954 behaves like a mutation that returns a top-level access error1955 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1956 when maintenance mode is enabled1957 behaves like a registries update action1958 when it is valid1959 is expected to include "GROUP_WIKI_REPOSITORY_REGISTRY"1960 when it is invalid1961 is expected to be nil1962 with resync_all action1963 behaves like a registries update action1964 when it is valid1965 is expected to include "GROUP_WIKI_REPOSITORY_REGISTRY"1966 when it is invalid1967 is expected to be nil1968 with reverify_all action1969 behaves like a registries update action1970 when it is valid1971 is expected to include "GROUP_WIKI_REPOSITORY_REGISTRY"1972 when it is invalid1973 is expected to be nil1974 registry_class: Geo::DependencyProxyManifestRegistry (call 'Geo::DependencyProxyManifestRegistry.connection' to establish a connection), registry_type: Types::Geo::DependencyProxyManifestRegistryType, registry_factory: :geo_dependency_proxy_manifest_registry1975 is expected to require graphql authorizations :read_geo_registry1976 when feature flag `geo_registries_update_mutation` is disabled1977 behaves like a mutation that returns top-level errors1978 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1979 when geo licensed feature is not available1980 behaves like a mutation that returns a top-level access error1981 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1982 when maintenance mode is enabled1983 behaves like a registries update action1984 when it is valid1985 is expected to include "DEPENDENCY_PROXY_MANIFEST_REGISTRY"1986 when it is invalid1987 is expected to be nil1988 with resync_all action1989 behaves like a registries update action1990 when it is valid1991 is expected to include "DEPENDENCY_PROXY_MANIFEST_REGISTRY"1992 when it is invalid1993 is expected to be nil1994 with reverify_all action1995 behaves like a registries update action1996 when it is valid1997 is expected to include "DEPENDENCY_PROXY_MANIFEST_REGISTRY"1998 when it is invalid1999 is expected to be nil2000 registry_class: Geo::MergeRequestDiffRegistry (call 'Geo::MergeRequestDiffRegistry.connection' to establish a connection), registry_type: Types::Geo::MergeRequestDiffRegistryType, registry_factory: :geo_merge_request_diff_registry2001 is expected to require graphql authorizations :read_geo_registry2002 when feature flag `geo_registries_update_mutation` is disabled2003 behaves like a mutation that returns top-level errors2004 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."2005 when geo licensed feature is not available2006 behaves like a mutation that returns a top-level access error2007 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"2008 when maintenance mode is enabled2009 behaves like a registries update action2010 when it is valid2011 is expected to include "MERGE_REQUEST_DIFF_REGISTRY"2012 when it is invalid2013 is expected to be nil2014 with resync_all action2015 behaves like a registries update action2016 when it is valid2017 is expected to include "MERGE_REQUEST_DIFF_REGISTRY"2018 when it is invalid2019 is expected to be nil2020 with reverify_all action2021 behaves like a registries update action2022 when it is valid2023 is expected to include "MERGE_REQUEST_DIFF_REGISTRY"2024 when it is invalid2025 is expected to be nil2026 registry_class: Geo::PipelineArtifactRegistry (call 'Geo::PipelineArtifactRegistry.connection' to establish a connection), registry_type: Types::Geo::PipelineArtifactRegistryType, registry_factory: :geo_pipeline_artifact_registry2027 is expected to require graphql authorizations :read_geo_registry2028 when feature flag `geo_registries_update_mutation` is disabled2029 behaves like a mutation that returns top-level errors2030 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."2031 when geo licensed feature is not available2032 behaves like a mutation that returns a top-level access error2033 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"2034 when maintenance mode is enabled2035 behaves like a registries update action2036 when it is valid2037 is expected to include "PIPELINE_ARTIFACT_REGISTRY"2038 when it is invalid2039 is expected to be nil2040 with resync_all action2041 behaves like a registries update action2042 when it is valid2043 is expected to include "PIPELINE_ARTIFACT_REGISTRY"2044 when it is invalid2045 is expected to be nil2046 with reverify_all action2047 behaves like a registries update action2048 when it is valid2049 is expected to include "PIPELINE_ARTIFACT_REGISTRY"2050 when it is invalid2051 is expected to be nil2052 registry_class: Geo::ContainerRepositoryRegistry (call 'Geo::ContainerRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::ContainerRepositoryRegistryType, registry_factory: :geo_container_repository_registry2053 is expected to require graphql authorizations :read_geo_registry2054 when feature flag `geo_registries_update_mutation` is disabled2055 behaves like a mutation that returns top-level errors2056 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."2057 when geo licensed feature is not available2058 behaves like a mutation that returns a top-level access error2059 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"2060 when maintenance mode is enabled2061 behaves like a registries update action2062 when it is valid2063 is expected to include "CONTAINER_REPOSITORY_REGISTRY"2064 when it is invalid2065 is expected to be nil2066 with resync_all action2067 behaves like a registries update action2068 when it is valid2069 is expected to include "CONTAINER_REPOSITORY_REGISTRY"2070 when it is invalid2071 is expected to be nil2072 with reverify_all action2073 behaves like a registries update action2074 when it is valid2075 is expected to include "CONTAINER_REPOSITORY_REGISTRY"2076 when it is invalid2077 is expected to be nil2078Projects::LicensesController2079 GET #index2080 when the "Security and Compliance" feature is disabled2081 is expected to respond with numeric status code not_found2082 with authorized user2083 when feature is available2084 with reporter2085 counts usage of the feature2086 when requesting HTML2087 returns the necessary licenses app data2088 behaves like tracks govern usage event2089 tracks unique event2090 with existing report2091 returns success code2092 returns a hash with licenses sorted by name2093 returns status ok2094 includes the pagination headers2095 with pagination params2096 return only 1 license2097 when software policies are applied to some of the most recently detected licenses2098 when loading all policies2099 is expected to respond with numeric status code ok2100 is expected to equal 42101 sorts by name by default2102 includes a policy for an unclassified and known license that was detected in the scan report2103 includes a policy for a denied license found in the scan report2104 includes a policy for an allowed license NOT found in the latest scan report2105 includes an entry for an unclassified and unknown license found in the scan report2106 when loading software policies that match licenses detected in the most recent license scan report2107 is expected to respond with numeric status code ok2108 only includes policies for licenses detected in the most recent scan report2109 includes an unclassified policy for a known license detected in the scan report2110 includes a classified license for a known license detected in the scan report2111 includes an unclassified and unknown license discovered in the scan report2112 when loading `allowed` software policies only2113 is expected to respond with numeric status code ok2114 is expected to equal 12115 includes only `allowed` policies2116 when loading `allowed` and `denied` software policies2117 is expected to respond with numeric status code ok2118 is expected to equal 22119 includes `denied` policies2120 includes `allowed` policies2121 when loading policies ordered by `classification` in `ascending` order2122 is expected to respond with numeric status code ok2123 is expected to eq ["allowed", "unclassified", "unclassified", "denied"]2124 without existing license scanning report2125 returns status job_not_set_up2126 with maintainer2127 responds to an HTML request2128 behaves like tracks govern usage event2129 tracks unique event2130 when feature is not available2131 returns 4042132 behaves like doesn't track govern usage event2133 doesn't tracks event2134 with unauthorized user2135 returns 4042136 behaves like doesn't track govern usage event2137 doesn't tracks event2138Projects::SubscriptionsController2139 POST create2140 when user is authorized2141 when feature is available2142 when user is developer in upstream project2143 when project is public2144 when subscription count is below the limit2145 creates a new subscription2146 sets the flash2147 redirects to ci_cd settings2148 when subscription count is above the limit2149 does not create a new subscription2150 sets the flash2151 redirects to ci_cd settings2152 when project is not public2153 does not create a new subscription2154 sets the flash2155 redirects to ci_cd settings2156 when user is not developer in upstream project2157 does not create a new subscription2158 sets the flash2159 redirects to ci_cd settings2160 when feature is not available2161 does not create a new subscription2162 renders a not found response2163 when user is not authorized2164 does not create a new subscription2165 renders a not found response2166 DELETE destroy2167 when user is authorized2168 when feature is available2169 destroys the subscription2170 sets the flash2171 redirects to ci_cd settings2172 when feature is not available2173 does not destroy the subscription2174 renders a not found reseponse2175 when user is not authorized2176 does not destroy the subscription2177 renders a not found response2178Groups::EpicIssuesController2179 GET #index2180 behaves like unlicensed epics action2181 returns 403 status2182 when epics feature is enabled2183 when user has access to epic2184 returns status 2002185 returns the correct json2186 when user does not have access to epic2187EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2188EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2189 returns 404 status2190 POST #create2191 behaves like unlicensed epics action2192 returns 403 status2193 when epics feature is enabled2194 when user has permissions to create requested association2195 returns correct response for the correct issue reference2196 creates a new EpicIssue record2197 when user does not have permissions to create requested association2198 returns correct response for the correct issue reference2199 does not create a new EpicIssue record2200 DELETE #destroy2201 behaves like unlicensed epics action2202 returns 403 status2203 when epics feature is enabled2204 when user has permissions to delete the link2205 returns status 2002206 destroys the link2207 when user does not have permissions to delete the link2208 returns status 4032209 does not destroy the link2210 when the epic from the association does not equal epic from the path2211 returns status 4042212 does not destroy the link2213 when the epic_issue record does not exists2214 returns status 4042215 PUT #update2216 behaves like unlicensed epics action2217 returns 403 status2218 when epics feature is enabled2219 when user has permissions to admin the epic2220 returns status 2002221 updates the issue position value2222 when user does not have permissions to admin the epic2223 returns status 4032224 when the epic from the association does not equal epic from the path2225 returns status 4042226 when the epic_issue record does not exists2227 returns status 4042228Groups::GroupMembersController2229 PUT update2230 when assigning custom role to a user2231 when custom roles feature is enabled2232 returns success2233 assigns the member role2234 when custom roles feature is disabled2235 returns success2236 does not assign the member role2237 GET #index2238 with members, invites and requests queries2239 records queries2240 avoids extra group_link database queries utilizing pre-loading2241 when querying customizable roles2242 when there is no customizable role2243 returns no membership2244 when there are customizable roles defined2245 queries all customizable role of a user2246 when custom_roles_members_page is disabled2247 returns no membership2248 DELETE #leave2249 when member is not an owner2250 creates an audit event2251 when member is an owner2252 does not create an audit event2253 when member requested access2254 creates an audit event2255 with external authorization enabled2256 POST #override2257 is successful2258 when user has minimal access2259 is not successful2260 when minimal_access_role feature is available2261 is successful2262 POST request_access2263 when users with unconfirmed emails are allowed to log-in2264 when group has email domain feature enabled2265 for a user with an un-verified email belonging to the allowed domain2266 does not create a new access request2267 behaves like creates access request for a verified user with email belonging to the allowed domain2268 for a user with a verified email belonging to the allowed domain2269 behaves like creates a new access request2270 creates a new access request to the group2271 when group has email domain feature disabled2272 for a user with an un-verified email belonging to the allowed domain2273 behaves like creates a new access request2274 creates a new access request to the group2275 for a user with an un-verified email belonging to a domain different from the allowed domain2276 behaves like creates a new access request2277 creates a new access request to the group2278 behaves like creates access request for a verified user with email belonging to the allowed domain2279 for a user with a verified email belonging to the allowed domain2280 behaves like creates a new access request2281 creates a new access request to the group2282 when users with unconfirmed emails are not allowed to log-in2283 when group has email domain feature enabled2284 for a user with an un-verified email belonging to the allowed domain2285 behaves like does not create a new access request due to user pending confirmation2286 does not create a new access request due to user pending confirmation2287 behaves like creates access request for a verified user with email belonging to the allowed domain2288 for a user with a verified email belonging to the allowed domain2289 behaves like creates a new access request2290 creates a new access request to the group2291 when group has email domain feature disabled2292 for a user with an un-verified email belonging to the allowed domain2293 behaves like does not create a new access request due to user pending confirmation2294 does not create a new access request due to user pending confirmation2295 for a user with an un-verified email belonging to a domain different from the allowed domain2296 behaves like does not create a new access request due to user pending confirmation2297 does not create a new access request due to user pending confirmation2298 behaves like creates access request for a verified user with email belonging to the allowed domain2299 for a user with a verified email belonging to the allowed domain2300 behaves like creates a new access request2301 creates a new access request to the group2302 GET #export_csv2303 when feature is unlicensed2304 responds with :not_found2305 when feature is licensed2306 enqueues a worker job2307 current user is a group maintainer2308 returns a 4042309 current user is a group developer2310 returns a 4042311 current user is a group guest2312 returns a 4042313 POST #resend_invite2314 when user has minimal access2315 is not successful2316 when minimal_access_role feature is available2317 is successful2318API::Discussions2319 when noteable is an Epic2320 behaves like discussions API2321 GET /groups/:id/epics/:noteable_id/discussions2322 returns an array of discussions2323 returns a 404 error when noteable id not found2324EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2325EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2326 returns 404 when not authorized2327 GET /groups/:id/epics/:noteable_id/discussions/:discussion_id2328 returns a discussion by id2329 returns a 404 error if discussion not found2330 POST /groups/:id/epics/:noteable_id/discussions2331 creates a new note2332 returns a 400 bad request error if body not given2333 returns a 401 unauthorized error if user not authenticated2334 tracks a Notes::CreateService event2335 when an admin or owner makes the request2336 accepts the creation date to be set2337 when user does not have access to read the discussion2338EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2339EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2340 responds with 4042341 when a project is public with private repo access2342 when user is not a team member of private repo2343 creating a new note2344 raises 404 error2345 fetching a discussion2346 raises 404 error2347 POST /groups/:id/epics/:noteable_id/discussions/:discussion_id/notes2348 adds a new note to the discussion2349 returns a 400 bad request error if body not given2350 when the discussion is an individual note2351 creates a new discussion2352 PUT /groups/:id/epics/:noteable_id/discussions/:discussion_id/notes/:note_id2353 returns modified note2354 returns a 404 error when note id not found2355 returns a 400 bad request error if body not given2356 DELETE /groups/:id/epics/:noteable_id/discussions/:discussion_id/notes/:note_id2357 deletes a note2358 returns a 404 error when note id not found2359 behaves like 412 response2360 for a modified resource2361 returns 412 with a JSON error2362 for an unmodified resource2363 returns 204 with an empty body2364getting a requirement list for a project2365 when user has access to the project2366 returns requirements successfully2367 returns cached rendered html fields from requirement issue2368 behaves like a working graphql query2369 returns a successful response2370 when querying delegated fields2371 does not execute n+1 queries2372 when limiting the number of results2373 behaves like a working graphql query2374 returns a successful response2375 query performance with test reports2376 avoids N+1 queries2377 filtering2378 behaves like a working graphql query2379 returns a successful response2380 when given single author param2381 returns filtered requirements2382 when given multiple author param2383 returns filtered requirements2384 when given search param2385 returns filtered requirements2386 when given author and search params2387 returns filtered requirements2388 when given lastTestReportState2389 returns filtered requirements2390 for MISSING status2391 returns filtered requirements2392 sorting and pagination2393 when sorting by created_at2394 when ascending2395 behaves like sorted paginated query2396 behaves like requires variables2397 shared example requires variables to be set2399 when sorting2400 sorts correctly2401 when paginating2402 paginates correctly2403 when descending2404 behaves like sorted paginated query2405 behaves like requires variables2406 shared example requires variables to be set2408 when sorting2409 sorts correctly2410 when paginating2411 paginates correctly2412 when the user does not have access to the requirement2413 returns nil2414 when requirements feature is not available2415 returns nil2416Groups::ContributionAnalyticsController2417 #authorize_read_contribution_analytics!2418 when feature is not available2419 when user is an auditor2420 renders 4042421 when feature is available to the group through license2422 when user is an auditor2423 allows access2424 when user has access to the group2425 when user has access to the feature2426 renders 2002427 when user does not have access to the feature2428 renders 4042429 when feature is available to the group through usage ping features2430 when user is an auditor2431 allows access2432 #check_contribution_analytics_available!2433 when feature is not available to the group2434 renders 4042435 with contributions2436 sets instance variables properly2437 when postgres is the data source2438 does not cause N+1 queries when the format is JSON2439 behaves like correct data is returned2440 returns member contributions JSON when format is JSON2441 includes projects in subgroups2442 excludes projects outside of the group2443 with views2444 avoids a N+1 query in #show2445 GET #show2446 behaves like disabled when using an external authorization service2447 works when the feature is not enabled2448 renders a 404 with a message when the feature is enabled2449 behaves like tracking unique visits2450 tracks unique visit if the format is HTML2451 tracks unique visit if DNT is not enabled2452 does not track unique visit if DNT is enabled2453 does not track unique visit if the format is JSON2454 behaves like Snowplow event tracking with RedisHLL context2455 behaves like Snowplow event tracking2456 is emitted2457Projects::Security::VulnerabilitiesController2458 GET #new2459 checks if the user can create a vulnerability2460 behaves like security and compliance feature2461 when security and compliance disabled2462 when user has role that enables sufficient access2463 is expected to respond with numeric status code not_found2464 when user does not have role that enables sufficient access2465 is expected to respond with numeric status code not_found2466 behaves like doesn't track govern usage event2467 doesn't tracks event2468 when security and compliance enabled2469 when user has role that enables sufficient access2470 is expected not to respond with numeric status code not_found2471 when user does not have role that enables sufficient access2472 is expected to respond with numeric status code not_found2473 when user can admin vulnerability2474 renders the add new finding page2475 when user can not admin vulnerability2476 renders 404 page not found2477 GET #show2478 behaves like security and compliance feature2479 when security and compliance disabled2480 when user has role that enables sufficient access2481 is expected to respond with numeric status code not_found2482 when user does not have role that enables sufficient access2483 is expected to respond with numeric status code not_found2484 behaves like doesn't track govern usage event2485 doesn't tracks event2486 when security and compliance enabled2487 when user has role that enables sufficient access2488 is expected not to respond with numeric status code not_found2489 when user does not have role that enables sufficient access2490 is expected to respond with numeric status code not_found2491 when there's an attached pipeline2492 renders the vulnerability page2493 renders the vulnerability component2494 behaves like tracks govern usage event2495 tracks unique event2496 when there's no attached pipeline2497 renders the vulnerability page2498 behaves like tracks govern usage event2499 tracks unique event2500 GET #discussions2501 renders discussions2502 behaves like security and compliance feature2503 when security and compliance disabled2504 when user has role that enables sufficient access2505 is expected to respond with numeric status code not_found2506 when user does not have role that enables sufficient access2507 is expected to respond with numeric status code not_found2508 behaves like doesn't track govern usage event2509 doesn't tracks event2510 when security and compliance enabled2511 when user has role that enables sufficient access2512 is expected not to respond with numeric status code not_found2513 when user does not have role that enables sufficient access2514 is expected to respond with numeric status code not_found2515getting group information2516 Query group(fullPath)2517 when Group SSO is enforced2518 returns null data when not authorized2519 allows access via session2520 allows access via bearer token2521 when loading vulnerabilityGrades alongside with Vulnerability.userNotesCount2522 finds vulnerability grades for only projects that were added to instance security dashboard2523 returns a successful response2524 when loading multiple epics2525 can lookahead to eliminate N+1 queries2526 when loading release statistics2527 when the group is private2528 behaves like correct access to release statistics2529 when the user is not logged in2530 behaves like no access to release statistics2531 returns data about release utilization within the group2532 when the user is not a member of the group2533 behaves like no access to release statistics2534 returns data about release utilization within the group2535 when the user is at least a guest2536 behaves like full access to release statistics2537 when there are no releases2538 returns 0 for both statistics2539 when there are some releases2540 returns data about release utilization within the group2541 when the group is public2542 behaves like correct access to release statistics2543 when the user is not logged in2544 behaves like no access to release statistics2545 returns data about release utilization within the group2546 when the user is not a member of the group2547 behaves like no access to release statistics2548 returns data about release utilization within the group2549 when the user is at least a guest2550 behaves like full access to release statistics2551 when there are no releases2552 returns 0 for both statistics2553 when there are some releases2554 returns data about release utilization within the group2555 pagination2556 when default sorting2557 behaves like sorted paginated query2558 behaves like requires variables2559 shared example requires variables to be set2561 when sorting2562 sorts correctly2563 when paginating2564 paginates correctly2565API::ProjectPushRule ProjectPushRule2566 GET /projects/:id/push_rule2567 authorized user2568 returns project push rule2569 the commit_committer_check feature is enabled2570 returns the commit_committer_check information2571 the reject_unsigned_commits feature is enabled2572 returns the reject_unsigned_commits information2573 the reject_unsigned_commits feature is not enabled2574 succeeds2575 does not return the reject_unsigned_commits information2576 push rules are not enabled2577 is forbidden2578 developer2579 does not have access to project push rule2580 POST /projects/:id/push_rule2581 adds push rule to project with no file size2582 returns 400 if no parameter is given2583 maintainer2584 is accepted2585 indicates that it belongs to the correct project2586 sets all given parameters2587 commit_committer_check not allowed by License2588 is forbidden to use this service2589 reject_unsigned_commits not allowed by License2590 is forbidden to use this service2591 commit_committer_check is not enabled2592 is forbidden to send the the :commit_committer_check parameter2593 without the :commit_committer_check parameter2594 sets all given parameters2595 reject_unsigned_commits is not enabled2596 is forbidden to send the the :reject_unsigned_commits parameter2597 without the :reject_unsigned_commits parameter2598 sets all given parameters2599 invalid params2600 returns an error2601 when regex is too long2602 returns an error2603 when feature flag "add_validation_for_push_rules" is disabled2604 returns a server error2605 user with developer_access2606 does not add push rule to project2607 with existing push rule2608 returns an error response2609 PUT /projects/:id/push_rule2610 does not update push rule for unauthorized user2611 with existing push rule2612 setting deny_delete_tag and commit_message_regex2613 is successful2614 includes the expected settings2615 setting commit_committer_check2616 is successful2617 sets the commit_committer_check2618 the commit_committer_check feature is not enabled2619 is an error to provide this parameter2620 setting reject_unsigned_commits2621 is successful2622 sets the reject_unsigned_commits2623 the reject_unsigned_commits feature is not enabled2624 is an error to provide the this parameter2625 not providing parameters2626 is an error2627 invalid params2628 returns an error2629 without existing push rule2630 returns an error response2631 DELETE /projects/:id/push_rule2632 for existing push rule2633 maintainer2634 deletes push rule from project2635 user with developer_access2636 returns a 403 error2637 for non existing push rule2638 deletes push rule from project2639 returns a 403 error if not authorized2640Groups::DependenciesController2641 # order random2642 GET index2643 with HTML format2644 when security dashboard feature is enabled2645 and user is allowed to access group level dependencies2646 returns http status :ok2647 returns the correct template2648 behaves like tracks govern usage event2649 tracks unique event2650 when user is not allowed to access group level dependencies2651 return http status :not_found2652 behaves like doesn't track govern usage event2653 doesn't tracks event2654 when security dashboard feature is disabled2655 return http status :not_found2656 behaves like doesn't track govern usage event2657 doesn't tracks event2658 with JSON format2659 when security dashboard feature is enabled2660 and user is allowed to access group level dependencies2661 returns http status :ok2662 returns the expected data2663 with existing dependencies2664 returns the expected response2665 includes pagination headers in the response2666 avoids N+1 database queries related to projects and routes2667 with sorting params2668 when sorted by packager in ascending order2669 returns sorted list2670 when sorted by packager in descending order2671 returns sorted list2672 when sorted by name in ascending order2673 returns sorted list2674 when sorted by name in descending order2675 returns sorted list2676 when sorted by license in ascending order2677 returns sorted list2678 when sorted by license in descending order2679 returns sorted list2680 with filtering params2681 when filtered by package managers2682 returns filtered list2683 when filtered by component_names2684 returns filtered list2685 when `group_level_dependencies_filtering` is disabled2686 ignores the filter2687 when the group hierarchy depth is too high2688 ignores the filter2689 when filtered by licenses2690 returns a filtered list2691 when user is not allowed to access group level dependencies2692 returns http status :forbidden2693 when security dashboard feature is disabled2694 returns http status :forbidden2695 GET #licenses2696 when security dashboard feature is enabled2697 and user is allowed to access group level dependencies2698 returns http status :ok2699 returns empty array2700 with detected licenses2701 returns the list of detected licenses2702 when feature flag `group_level_dependencies_filtering` is disabled2703 returns http status :forbidden2704 when user is not allowed to access group level dependencies2705 returns http status :forbidden2706 when security dashboard feature is disabled2707 returns http status :forbidden2708 GET locations2709 when security dashboard feature is enabled2710 and user is allowed to access group level dependencies2711 returns http status :ok2712 returns empty array2713 with existing matches2714 returns location related data2715 without filtering params2716 returns empty array2717 when user is not allowed to access group level dependencies2718 returns http status :forbidden2719 when security dashboard feature is disabled2720 returns http status :forbidden2721API::GroupHooks2722 behaves like web-hook API endpoints2723 GET /groups/:id/hooks2724 authorized user2725 returns all hooks2726 when user is forbidden2727 prevents access to hooks2728 when user is unauthorized2729 prevents access to hooks2730 the hook has URL variables2731 returns the names of the url variables2732 GET /groups/:id/hooks/:hook_id2733 authorized user2734 returns a project hook2735 returns a 404 error if hook id is not available2736 the hook is disabled2737 has the correct alert status2738 the hook is backed-off2739 has the correct alert status2740 when user is forbidden2741 does not access an existing hook2742 when user is unauthorized2743 does not access an existing hook2744 POST /groups/:id/hooks2745WARNING: ignoring the provided expectation message argument (:push_events) since it is not a string or a proc.2746WARNING: ignoring the provided expectation message argument (:issues_events) since it is not a string or a proc.2747WARNING: ignoring the provided expectation message argument (:confidential_issues_events) since it is not a string or a proc.2748WARNING: ignoring the provided expectation message argument (:merge_requests_events) since it is not a string or a proc.2749WARNING: ignoring the provided expectation message argument (:tag_push_events) since it is not a string or a proc.2750WARNING: ignoring the provided expectation message argument (:note_events) since it is not a string or a proc.2751WARNING: ignoring the provided expectation message argument (:confidential_note_events) since it is not a string or a proc.2752WARNING: ignoring the provided expectation message argument (:job_events) since it is not a string or a proc.2753WARNING: ignoring the provided expectation message argument (:pipeline_events) since it is not a string or a proc.2754WARNING: ignoring the provided expectation message argument (:wiki_page_events) since it is not a string or a proc.2755WARNING: ignoring the provided expectation message argument (:deployment_events) since it is not a string or a proc.2756WARNING: ignoring the provided expectation message argument (:releases_events) since it is not a string or a proc.2757WARNING: ignoring the provided expectation message argument (:subgroup_events) since it is not a string or a proc.2758WARNING: ignoring the provided expectation message argument (:emoji_events) since it is not a string or a proc.2759 adds hook2760 adds the token without including it in the response2761 returns a 400 error if url not given2762 returns a 400 error if no parameters are provided2763WARNING: ignoring the provided expectation message argument (:push_events) since it is not a string or a proc.2764WARNING: ignoring the provided expectation message argument (:issues_events) since it is not a string or a proc.2765WARNING: ignoring the provided expectation message argument (:confidential_issues_events) since it is not a string or a proc.2766WARNING: ignoring the provided expectation message argument (:merge_requests_events) since it is not a string or a proc.2767WARNING: ignoring the provided expectation message argument (:tag_push_events) since it is not a string or a proc.2768WARNING: ignoring the provided expectation message argument (:note_events) since it is not a string or a proc.2769WARNING: ignoring the provided expectation message argument (:confidential_note_events) since it is not a string or a proc.2770WARNING: ignoring the provided expectation message argument (:job_events) since it is not a string or a proc.2771WARNING: ignoring the provided expectation message argument (:pipeline_events) since it is not a string or a proc.2772WARNING: ignoring the provided expectation message argument (:wiki_page_events) since it is not a string or a proc.2773WARNING: ignoring the provided expectation message argument (:deployment_events) since it is not a string or a proc.2774WARNING: ignoring the provided expectation message argument (:releases_events) since it is not a string or a proc.2775WARNING: ignoring the provided expectation message argument (:subgroup_events) since it is not a string or a proc.2776WARNING: ignoring the provided expectation message argument (:emoji_events) since it is not a string or a proc.2777 sets default values for events2778 returns a 422 error if token not valid2779 returns a 422 error if url not valid2780 PUT /groups/:id/hooks/:hook_id2781 updates an existing hook2782 updates the URL variables2783 adds the token without including it in the response2784 returns 404 error if hook id not found2785 returns 400 error if no parameters are provided2786 returns a 422 error if url is not valid2787 returns a 422 error if token is not valid2788 DELETE /projects/:id/hooks/:hook_id2789 deletes hook from project2790 returns a 404 error when deleting non existent hook2791 returns a 404 error if hook id not given2792 returns forbidden if a user attempts to delete hooks they do not own2793 behaves like 412 response2794 for a modified resource2795 returns 412 with a JSON error2796 for an unmodified resource2797 returns 204 with an empty body2798 PUT /groups/:id/hooks/:hook_id/url_variables/:key2799 sets the variable2800 overwrites existing values2801 returns a 404 error when editing non existent hook2802 returns a 422 error when the key is illegal2803 returns a 422 error when the value is illegal2804 DELETE /groups/:id/hooks/:hook_id/url_variables/:key2805 unsets the variable2806 returns 404 for keys that do not exist2807 returns a 404 error when deleting a variable from a non existent hook2808 behaves like web-hook API endpoints with branch-filter2809 POST /projects/:id/hooks2810 returns a 422 error if branch filter is not valid2811Query.project(fullPath).vulnerabilitySeveritiesCount2812 returns counts for each severity of the project's detected or confirmed vulnerabilities2813 when querying severities without any records2814 returns 0 as default value2815 with hasIssues filter2816 when counting vulnerabilities without issues2817 counts vulnerabilities with issues2818 when counting vulnerabilities with issues2819 counts vulnerabilities with issues2820 with hasResolution filter2821 when counting vulnerabilities without resolution2822 counts vulnerabilities with resolution2823 when counting vulnerabilities with resolution2824 counts vulnerabilities with resolution2825 with scannerId filter2826 counts vulnerabilities with issues2827API::ManagedLicenses2828 GET /projects/:id/managed_licenses2829 with license management not available2830 returns a forbidden status2831 with an authorized user with proper permissions2832 returns an empty response2833 with authorized user without read permissions2834 returns an empty response2835 with unauthorized user2836 returns an empty response2837 responses with 404 Not Found for not existing project2838 when project is private2839 responses with 404 Not Found2840 GET /projects/:id/managed_licenses/:managed_license_id2841 authorized user with proper permissions2842 returns an empty response2843 returns an empty response using the license name as key2844 returns an empty response if requesting non-existing managed license2845 authorized user with read permissions2846 returns an empty response2847 unauthorized user2848 does not return project managed license details2849 policy from license_finding rules2850 returns an empty response2851 POST /projects/:id/managed_licenses2852 authorized user with proper permissions2853 creates managed license2854 authorized user with read permissions2855 does not create managed license2856 authorized user without permissions2857 does not create managed license2858 unauthorized user2859 does not create managed license2860 PATCH /projects/:id/managed_licenses/:managed_license_id2861 authorized user with proper permissions2862 responds with 400 Bad Request2863 responds with 400 Bad Request if requesting non-existing managed license2864 authorized user with read permissions2865 does not update managed license2866 authorized user without permissions2867 does not update managed license2868 unauthorized user2869 does not update managed license2870 DELETE /projects/:id/managed_licenses/:managed_license_id2871 authorized user with proper permissions2872 responds with 400 Bad Request2873 authorized user with read permissions2874 does not delete managed license2875 authorized user without permissions2876 does not delete managed license2877 unauthorized user2878 does not delete managed license2879Projects::AuditEventsController2880 GET #index2881 when authorized as auditor2882 tracks search event2883 behaves like when audit_events feature is available2884 renders index with 200 status code2885 invokes AuditEventFinder with correct arguments2886 behaves like AuditEventFinder params2887 has the correct params2888 author2889 when no author entity type is specified2890 behaves like AuditEventFinder params2891 has the correct params2892 when the author entity type is specified2893 behaves like AuditEventFinder params2894 has the correct params2895 ordering2896 when no sort order is specified2897 behaves like orders by id descending2898 orders by id descending2899 when sorting by latest events first2900 behaves like orders by id descending2901 orders by id descending2902 when sorting by oldest events first2903 orders by id ascending2904 when sorting by an unsupported sort order2905 behaves like orders by id descending2906 orders by id descending2907 when invalid date2908 created_before: "invalid-date", created_after: nil2909 returns an error2910 created_before: nil, created_after: true2911 returns an error2912 created_before: "2021-13-10", created_after: nil2913 returns an error2914 created_before: nil, created_after: "2021-02-31"2915 returns an error2916 created_before: "2021-03-31", created_after: "2021-02-31"2917 returns an error2918 when date range is greater than limit2919 behaves like a date range error is returned2920 created_after: "2021-01-01", created_before: "2021-02-02"2921 returns an error2922 created_after: "2022-01-31", created_before: nil2923 returns an error2924 behaves like pagination2925 sets instance variables2926 paginates audit events, without casting a count query2927 behaves like when audit_events feature is not available2928 renders 4042929 when authorized as maintainer2930 tracks search event2931 behaves like when audit_events feature is available2932 renders index with 200 status code2933 invokes AuditEventFinder with correct arguments2934 behaves like AuditEventFinder params2935 has the correct params2936 author2937 when no author entity type is specified2938 behaves like AuditEventFinder params2939 has the correct params2940 when the author entity type is specified2941 behaves like AuditEventFinder params2942 has the correct params2943 ordering2944 when no sort order is specified2945 behaves like orders by id descending2946 orders by id descending2947 when sorting by latest events first2948 behaves like orders by id descending2949 orders by id descending2950 when sorting by oldest events first2951 orders by id ascending2952 when sorting by an unsupported sort order2953 behaves like orders by id descending2954 orders by id descending2955 when invalid date2956 created_before: "invalid-date", created_after: nil2957 returns an error2958 created_before: nil, created_after: true2959 returns an error2960 created_before: "2021-13-10", created_after: nil2961 returns an error2962 created_before: nil, created_after: "2021-02-31"2963 returns an error2964 created_before: "2021-03-31", created_after: "2021-02-31"2965 returns an error2966 when date range is greater than limit2967 behaves like a date range error is returned2968 created_after: "2021-01-01", created_before: "2021-02-02"2969 returns an error2970 created_after: "2022-01-31", created_before: nil2971 returns an error2972 behaves like pagination2973 sets instance variables2974 paginates audit events, without casting a count query2975 behaves like when audit_events feature is not available2976 renders 4042977 unauthorized2978 renders 4042979API::EpicIssues2980 GET /groups/:id/epics/:epic_iid/issues2981 when epics feature is disabled2982 returns 403 forbidden error2983 when epics feature is enabled2984 when an error occurs2985 returns 401 unauthorized error for non authenticated user2986EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2987EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2988 returns 404 not found error for a user without permissions to see the group2989 when the request is correct2990 responds 200 and matches the response schema2991 accepts pagination params2992 returns multiple issues without performing N + 12993 returns multiple issues without performing N + 12994 POST /groups/:id/epics/:epic_iid/issues2995 when epics feature is disabled2996 returns 403 forbidden error2997 when epics feature is enabled2998 when an error occurs2999 returns 401 unauthorized error for non authenticated user3000EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3001EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3002 returns 404 not found error for a user without permissions to see the group3003 behaves like user with insufficient permissions3004 when user does not have admin_issue_relation permissions for issue3005 returns 403 forbidden error3006 without permissions to read the epic3007 returns 403 forbidden error3008 when issue project is not under the epic group3009 returns an error3010 when the request is correct3011 returns 201 status3012 matches the response schema3013 assigns the issue to the epic3014 DELETE /groups/:id/epics/:epic_iid/issues/:epic_issue_id"3015 when epics feature is disabled3016 returns 403 forbidden error3017 when epics feature is enabled3018 when an error occurs3019 returns 401 unauthorized error for non authenticated user3020EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3021EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3022 returns 404 not found error for a user without permissions to see the group3023 behaves like user with insufficient permissions3024 when user does not have admin_issue_relation permissions for issue3025 returns 403 forbidden error3026 without permissions to read the epic3027 returns 403 forbidden error3028 when epic_issue association does not include the epic in the url3029 returns 404 not found error3030 when the request is correct3031 returns 200 status3032 matches the response schema3033 removes the association3034 PUT /groups/:id/epics/:epic_iid/issues/:epic_issue_id3035 when epics feature is disabled3036 returns 403 forbidden error3037 when epics feature is enabled3038 when an error occurs3039 returns 401 unauthorized error for non authenticated user3040EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3041EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3042 returns 404 not found error for a user without permissions to see the group3043 returns 404 not found error for the link of another epic3044 with insufficient permissions3045 returns 403 forbidden error for a user who can not move the issue3046 when the request is correct3047 returns 200 status3048 updates the positions values3049 matches the response schema3050API::Invitations EE Invitations3051 POST /groups/:id/invitations3052 behaves like member creation audit event3053 creates an audit event while creating a new member3054 does not create audit event if creating a new member fails3055 behaves like admin signup restrictions email error - denylist3056 behaves like restricted email error3057 returns an http error response and the validation message3058 behaves like POST request permissions for admin mode3059 behaves like when admin3060 behaves like makes request3061 returns3062 behaves like makes request3063 returns3064 behaves like when user3065 returns3066 behaves like makes request3067 returns3068 when the group is restricted by admin signup restrictions3069 behaves like admin signup restrictions email error - allowlist3070 behaves like restricted email error3071 returns an http error response and the validation message3072 behaves like admin signup restrictions email error - email restrictions3073 behaves like restricted email error3074 returns an http error response and the validation message3075 when the group is restricted by group signup restriction - allowed domains for signup3076 behaves like restricted email error3077 returns an http error response and the validation message3078 with free user cap considerations3079 when there are at the size limit3080 behaves like does not add members3081 does not add the member3082 when there are over the size limit3083 behaves like does not add members3084 does not add the member3085 when there is a seat left3086 creates a member3087 when there are seats left and we add enough to exhaust all seats3088 creates one member and errors on the other member3089 with minimal access level3090 when group has no parent3091 return success3092 when group has parent3093 return error3094 POST /projects/:id/invitations3095 behaves like member creation audit event3096 creates an audit event while creating a new member3097 does not create audit event if creating a new member fails3098 behaves like POST request permissions for admin mode3099 behaves like when admin3100 behaves like makes request3101 returns3102 behaves like makes request3103 returns3104 behaves like when user3105 returns3106 behaves like makes request3107 returns3108 with group membership locked3109 returns an error and exception message when group membership lock is enabled3110 when the project is restricted by admin signup restrictions3111 behaves like admin signup restrictions email error - denylist3112 behaves like restricted email error3113 returns an http error response and the validation message3114 when the group is restricted by admin signup restrictions3115 behaves like admin signup restrictions email error - allowlist3116 behaves like restricted email error3117 returns an http error response and the validation message3118 behaves like admin signup restrictions email error - email restrictions3119 behaves like restricted email error3120 returns an http error response and the validation message3121 group with LDAP group link3122 POST /groups/:id/invitations3123 returns a forbidden response3124 PUT /groups/:id/invitations/:email3125 returns a forbidden response3126 DELETE /groups/:id/invitations/:email3127 returns a forbidden response3128Groups::Epics::EpicLinksController3129 GET #index3130 behaves like unlicensed subepics action3131 returns 403 status3132 when epics are enabled3133 when user has access to epic3134 returns the correct JSON response3135 with query performance3136 executes same number of queries plus threshold3137 when user does not have access to epic3138EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3139EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3140 returns 404 status3141 when epic is confidential3142 returns 403 status when user is a guest3143 with children in different group hierarchies3144 behaves like returns correct response3145 includes only children with access3146 when user has no access to the other group3147 behaves like returns correct response3148EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3149EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3150 includes only children with access3151 POST #create3152 behaves like unlicensed subepics action3153 returns 403 status3154 when subepics are enabled3155 when user has permissions to create requested association3156 returns correct response for the correct issue reference3157 updates a parent for the referenced epic3158 with hierarchy depth validations3159 when it does not exceed the max hierarchy depth3160 sets the parent3161 when it exceeds the max hierarchy depth3162 does not set the parent and returns an error3163 when user does not have permissions to create requested association3164 returns 403 status3165 does not update parent attribute3166 PUT #update3167 behaves like unlicensed subepics action3168 returns 403 status3169 when subepics are enabled3170 when user has permissions to reorder epics3171 returns status 2003172 updates the epic position3173 when move_before_id is not a sibling epic3174 returns status 4043175 when user does not have permissions to reorder epics3176 returns status 4033177 DELETE #destroy3178 behaves like unlicensed subepics action3179 returns 403 status3180 when epics are enabled3181 when user has permissions to update the parent epic3182 returns status 2003183 destroys the link3184 when user does not have permissions to update the parent epic3185 returns status 4043186 does not destroy the link3187 when the epic does not have any parent3188 returns status 4043189 when user has permissions to update the parent epic but epics feature is disabled3190 does not destroy the link3191Projects::OnDemandScansController3192 GET #index3193 behaves like on-demand scans page3194 when the "Security and Compliance" feature is disabled3195 is expected to respond with numeric status code not_found3196 feature available3197 user authorized3198 can access page3199 user not authorized3200 sees a 404 error3201 feature not available3202 sees a 404 error if the license doesn't support the feature3203 sees a 404 error if FIPS mode is enabled3204 GET #new3205 user has auditor role3206 sees a 404 error3207 behaves like on-demand scans page3208 when the "Security and Compliance" feature is disabled3209 is expected to respond with numeric status code not_found3210 feature available3211 user authorized3212 can access page3213 user not authorized3214 sees a 404 error3215 feature not available3216 sees a 404 error if the license doesn't support the feature3217 sees a 404 error if FIPS mode is enabled3218 GET #edit3219 behaves like on-demand scans page3220 when the "Security and Compliance" feature is disabled3221 is expected to respond with numeric status code not_found3222 feature available3223 user authorized3224 can access page3225 user not authorized3226 sees a 404 error3227 feature not available3228 sees a 404 error if the license doesn't support the feature3229 sees a 404 error if FIPS mode is enabled3230 feature available and user can access page3231 dast_profile exists in the database3232 includes a serialized dast_profile in the response body3233 dast_profile does not exist in the database3234 sees a 404 error3235 user has auditor role3236 sees a 404 error3237Projects::FeatureFlagIssuesController3238 GET #index3239 returns linked issues3240 does not return linked issues for a reporter3241 orders by feature_flag_issue id3242 returns the correct relation_path when the feature flag is linked to multiple issues3243 returns the correct relation_path when multiple feature flags are linked to an issue3244 returns the correct relation_path when there are multiple linked feature flags and issues3245 does not make N+1 queries3246 returns only issues readable by the user3247 when feature flag related issues feature is unlicensed3248 does not return linked issues3249 POST #create3250 creates a link between the feature flag and the issue3251 creates a link for the correct feature flag when there are multiple feature flags and projects3252 creates a cross project link for a project in the same namespace3253 creates a cross project link for a project in another namespace3254 does not create a link for a reporter3255 does not create a cross project link when the user is not a member of the issue's project3256 does not create a cross project link when the user is a guest of the issue's project3257 does not create a link when the user cannot read the issue3258 when feature flag related issues feature is unlicensed3259 does not create a link between the feature flag and the issue3260 DELETE #destroy3261 unlinks the issue from the feature flag3262 does not unlink the issue for a reporter3263 when feature flag related issues feature is unlicensed3264 does not unlink the issue3265Registrations::WelcomeController3266 # order random3267 #update3268 without a signed in user3269 is expected to redirect to "/users/sign_up"3270 with a signed in user3271 when not on gitlab.com3272 is expected to respond with numeric status code not_found3273 with email updates3274 when registration_objective field is provided3275 sets the registration_objective3276 redirection3277 when onboarding is not enabled3278 is expected to redirect to "/dashboard/projects"3279 tracks successful submission event3280 when the new user already has any accepted group membership3281 redirects to the group activity page3282 when the new user already has more than 1 accepted group membership3283 redirects to the most recent membership group activity page3284 when the member has an orphaned source at the time of the welcome3285 redirects to the project dashboard page3286 when onboarding is enabled3287 when the new user already has any accepted group membership3288 when the member has an orphaned source at the time of the welcome3289 redirects to the project non invite onboarding flow3290 when joining_project is "true"3291 is expected to redirect to "/dashboard/projects"3292 when joining_project is "false"3293 with group and project creation3294 is expected to redirect to "/users/sign_up/groups/new"3295 when eligible for iterable trigger3296 initiates iterable trigger creation3297 when not eligible for iterable trigger3298 does not initiate iterable trigger creation3299 when setup_for_company is "true"3300 redirects to the company path and stores the url3301 with trial param sent with update3302 with trial as true3303 redirects to the company path with trial param3304 with trial as not true3305 does not include the trial param in the redirect path3306 when setup_for_company is "false"3307 is expected to redirect to "/users/sign_up/groups/new"3308 when trial is true3309 extra_params: {:trial=>"true", :opt_in_to_email=>"true"}, opt_in: "true"3310 is expected to redirect to "/users/sign_up/company/new?glm_content=some_content&glm_source=some_source&jobs_to_be_done_other=_jobs_to_be_done_other_&opt_in=true®istration_objective=code_storage&role=software_developer&trial=true"3311 extra_params: {:trial=>"true", :opt_in_to_email=>"false"}, opt_in: "false"3312 is expected to redirect to "/users/sign_up/company/new?glm_content=some_content&glm_source=some_source&jobs_to_be_done_other=_jobs_to_be_done_other_&opt_in=false®istration_objective=code_storage&role=software_developer&trial=true"3313 extra_params: {:trial=>"true", :opt_in_to_email=>nil}, opt_in: "false"3314 is expected to redirect to "/users/sign_up/company/new?glm_content=some_content&glm_source=some_source&jobs_to_be_done_other=_jobs_to_be_done_other_&opt_in=false®istration_objective=code_storage&role=software_developer&trial=true"3315 extra_params: {:trial=>"true", :opt_in_to_email=>""}, opt_in: "false"3316 is expected to redirect to "/users/sign_up/company/new?glm_content=some_content&glm_source=some_source&jobs_to_be_done_other=_jobs_to_be_done_other_&opt_in=false®istration_objective=code_storage&role=software_developer&trial=true"3317 extra_params: {:trial=>"true"}, opt_in: "false"3318 is expected to redirect to "/users/sign_up/company/new?glm_content=some_content&glm_source=some_source&jobs_to_be_done_other=_jobs_to_be_done_other_&opt_in=false®istration_objective=code_storage&role=software_developer&trial=true"3319 when trial is false3320 is expected to redirect to "/users/sign_up/groups/new"3321 when in subscription flow3322 is expected not to redirect to "/users/sign_up/groups/new"3323 when in invitation flow3324 is expected not to redirect to "/users/sign_up/groups/new"3325 tracks successful submission event3326 when in trial flow3327 is expected not to redirect to "/users/sign_up/groups/new"3328 tracks successful submission event3329 when stored company path3330 is expected to redirect to "/users/sign_up/company/new?glm_content=some_content&glm_source=some_source&jobs_to_be_done_other=_jobs_to_be_done_other_&opt_in=false®istration_objective=code_storage&role=software_developer&trial=true"3331 when failed request3332 does not track submission event3333 #show3334 without a signed in user3335 is expected to redirect to "/users/sign_up"3336 with signed in user3337 is expected to render template show3338 tracks render event3339 has the expected submission url3340 when not on gitlab.com3341 is expected to respond with numeric status code not_found3342 when in invitation flow3343 tracks render event3344 when in trial flow3345 tracks render event3346 when completed welcome step3347 when setup_for_company is set to true3348 does not track render event3349 when setup_for_company is set to false3350 is expected to redirect to "/dashboard/projects"3351 when 2FA is required from group3352 does not perform a redirect3353 when welcome step is completed3354 when user is confirmed3355 is expected to render template show3356 when user is not confirmed3357 is expected to redirect to "/users/sign_in"3358Projects::ProtectedEnvironmentsController3359 #POST create3360 with valid access and params3361 with valid params3362 creates a new ProtectedEnvironment3363 sets a flash3364 redirects to CI/CD settings3365 with invalid params3366 does not create a new ProtectedEnvironment3367 redirects to CI/CD settings3368 with invalid access3369 renders 4043370 #PUT update3371 when the user is authorized3372 finds the requested protected environment3373 updates the protected environment3374 is successful3375 when the user is not authorized3376 is not successful3377 #DELETE destroy3378 when the user is authorized3379 finds the requested protected environment3380 deletes the requested protected environment3381 redirects to CI/CD settings3382 when the user is not authorized3383 is not successful3384Projects::Integrations::Jira::IssuesController3385 GET #index3386 renders the "index" template3387 tracks usage3388 when jira_issues_integration licensed feature is not available3389 behaves like an action that returns a 4043390 returns 4043391 when jira integration is disabled3392 behaves like an action that returns a 4043393 returns 4043394 when jira integration does not exist3395 behaves like an action that returns a 4043396 returns 4043397 behaves like unauthorized when external service denies access3398 allows access when the authorization service allows it3399 allows access when the authorization service denies it3400 behaves like Snowplow event tracking with RedisHLL context3401 behaves like Snowplow event tracking3402 is emitted3403 when project has moved3404 redirects to the new issue tracker from the old one3405 json request3406 returns a list of serialized jira issues3407 renders bad request for IntegrationError3408 renders bad request for RequestError3409 sets pagination headers3410 when parameters are passed3411 when there are no params3412 behaves like proper parameter values3413 properly set the values3414 when pagination params3415 behaves like proper parameter values3416 properly set the values3417 when state is closed3418 behaves like proper parameter values3419 properly set the values3420 when status param3421 behaves like proper parameter values3422 properly set the values3423 when labels param3424 behaves like proper parameter values3425 properly set the values3426 when author_username param3427 behaves like proper parameter values3428 properly set the values3429 when assignee_username param3430 behaves like proper parameter values3431 properly set the values3432 when invalid params3433 behaves like proper parameter values3434 properly set the values3435 GET #show3436 when jira_issues_integration licensed feature is not available3437 returns 404 status3438 when jira_issues_integration licensed feature is available3439 renders `show` template3440 returns JSON response3441 when the description needs redaction3442 redacts confidential information from the issue JSON response3443 when the JSON fetched from Jira contains HTML3444 escapes the HTML in issue titles and references3445 when issue was not found3446 returns 404 status3447 returns 404 JSON response3448Query.instanceSecurityDashboard.projects3449 with logged in user3450 requesting projects in the dashboard3451 behaves like a working graphql query that returns data3452 contains data3453 finds only projects that were added to instance security dashboard3454 behaves like a working graphql query3455 returns a successful response3456 when loading vulnerabilityGrades alongside with Vulnerability.userNotesCount3457 behaves like a working graphql query that returns data3458 contains data3459 finds vulnerability grades for only projects that were added to instance security dashboard3460 behaves like a working graphql query3461 returns a successful response3462 requesting clusterAgents in the dashboard3463 behaves like a working graphql query that returns data3464 contains data3465 finds only projects that were added to instance security dashboard3466 behaves like a working graphql query3467 returns a successful response3468 with no user3469 behaves like a working graphql query that returns no data3470 contains no data3471 behaves like a working graphql query3472 returns a successful response3473Projects::ApproversController3474 #destroy3475 on a merge request3476 when the user cannot update approvers because they do not have access3477 returns a 4043478 does not destroy any approvers3479 when the user cannot update approvers because of the project setting3480 returns a 4043481 does not destroy any approvers3482 when the user can update approvers3483 destroys the provided approver3484 on a project3485 when the user cannot update approvers because they do not have access3486 returns a 4043487 does not destroy any approvers3488 when the user can update approvers3489 destroys the provided approver3490Query.project(fullPath).pipeline(iid).securityReportSummary3491 when the required features are enabled3492 when user is member of the project3493 shows the vulnerabilitiesCount and scannedResourcesCount3494 shows the first 20 scanned resources3495 returns nil for the scannedResourcesCsvPath3496 when user is not a member of the project3497 returns no scanned resources3498 when the required features are disabled3499 returns no scanned resources3500Projects::EnvironmentsController3501 GET #show3502 avoids N+1 queries3503Oauth::GeoAuthController3504 GET auth3505 redirects to root_url when state is invalid3506 without a tampered header3507 behaves like a valid redirect to to primary node's oauth endpoint3508 redirects to primary node's oauth endpoint3509 with a tampered HOST header3510 behaves like a valid redirect to to primary node's oauth endpoint3511 redirects to primary node's oauth endpoint3512 with a tampered X-Forwarded-Host header3513 behaves like a valid redirect to to primary node's oauth endpoint3514 redirects to primary node's oauth endpoint3515 GET callback3516 redirection3517 redirects to login screen if state is invalid3518 with a valid state3519 does not display a flash message3520 without a tampered header3521 behaves like a valid redirect to redirect_url3522 redirects to primary node's oauth endpoint3523 with a tampered HOST header3524 behaves like a valid redirect to redirect_url3525 redirects to primary node's oauth endpoint3526 with a tampered X-Forwarded-Host header3527 behaves like a valid redirect to redirect_url3528 redirects to primary node's oauth endpoint3529 invalid credentials3530 handles invalid credentials error3531 non-existent remote user3532 handles non-existent remote user error3533 non-existent local user3534 handles non-existent local user error3535 GET logout3536 when access_token is valid3537 logs out and redirects to the root_url3538 when access_token is invalid3539 shows access token errors3540Query.project(fullPath)3541 # order random3542 with productAnalyticsState3543 will pass through Cube API errors3544 will query state when Cube DB does not exist3545 will pass through Cube API connection errors3546 behaves like queries state successfully3547 will query state correctly3548 with trackingKey3549 licensed: true, enabled: true, user_role: :developer, snowplow_instrumentation_key: nil, output: nil3550 is expected to eq nil3551 licensed: true, enabled: true, user_role: :developer, snowplow_instrumentation_key: "snowplow_key", output: "snowplow_key"3552 is expected to eq "snowplow_key"3553 licensed: true, enabled: false, user_role: :developer, snowplow_instrumentation_key: nil, output: nil3554 is expected to eq nil3555 licensed: false, enabled: true, user_role: :developer, snowplow_instrumentation_key: nil, output: nil3556 is expected to eq nil3557 licensed: false, enabled: false, user_role: :developer, snowplow_instrumentation_key: nil, output: nil3558 is expected to eq nil3559 licensed: true, enabled: true, user_role: :maintainer, snowplow_instrumentation_key: nil, output: nil3560 is expected to eq nil3561 licensed: true, enabled: true, user_role: :maintainer, snowplow_instrumentation_key: "snowplow_key", output: "snowplow_key"3562 is expected to eq "snowplow_key"3563 licensed: true, enabled: false, user_role: :maintainer, snowplow_instrumentation_key: nil, output: nil3564 is expected to eq nil3565 licensed: false, enabled: true, user_role: :maintainer, snowplow_instrumentation_key: nil, output: nil3566 is expected to eq nil3567 licensed: false, enabled: false, user_role: :maintainer, snowplow_instrumentation_key: nil, output: nil3568 is expected to eq nil3569 licensed: true, enabled: true, user_role: :owner, snowplow_instrumentation_key: nil, output: nil3570 is expected to eq nil3571 licensed: true, enabled: true, user_role: :owner, snowplow_instrumentation_key: "snowplow_key", output: "snowplow_key"3572 is expected to eq "snowplow_key"3573 licensed: true, enabled: false, user_role: :owner, snowplow_instrumentation_key: nil, output: nil3574 is expected to eq nil3575 licensed: false, enabled: true, user_role: :owner, snowplow_instrumentation_key: nil, output: nil3576 is expected to eq nil3577 licensed: false, enabled: false, user_role: :owner, snowplow_instrumentation_key: nil, output: nil3578 is expected to eq nil3579 licensed: true, enabled: true, user_role: :guest, snowplow_instrumentation_key: nil, output: nil3580 is expected to eq nil3581 licensed: true, enabled: false, user_role: :guest, snowplow_instrumentation_key: nil, output: nil3582 is expected to eq nil3583 licensed: false, enabled: true, user_role: :guest, snowplow_instrumentation_key: nil, output: nil3584 is expected to eq nil3585 licensed: false, enabled: false, user_role: :guest, snowplow_instrumentation_key: nil, output: nil3586 is expected to eq nil3587[EE] Update of user activity3588 behaves like updating of user activity3589 without an authenticated user3590 does not set the last activity cookie3591 with an authenticated user3592 with a POST request3593 does not set the last activity cookie3594 on GET to /group/project/-/integrations/jira/issues3595 updates the last activity date3596 when calling it twice3597 updates last_activity_on just once3598 when last_activity_on is nil3599 updates the last activity date3600 when last_activity_on is stale3601 updates the last activity date3602 when last_activity_on is up to date3603 does not try to update it3604getting Incident Management on-call shifts3605 # order random3606 returns the correct properties of the on-call shifts3607 without required argument starts_at3608 raises an exception3609 without required argument ends_at3610 raises an exception3611 performance3612 for past and future shifts3613 behaves like avoids N+1 queries for additional generated shift3614 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdc738cada8 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=20>3615 behaves like avoids N+1 queries for additional historical shift3616 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdcafccbbc8 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=20>3617 behaves like avoids N+1 queries for additional participant3618 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdca55ddf50 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=20>3619 behaves like adds only one query for each additional rotation with participants3620 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdc88b20818 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=20>3621 for future shifts only3622 behaves like avoids N+1 queries for additional generated shift3623 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdc70ecacd8 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3624 behaves like avoids N+1 queries for additional participant3625 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdc8a3f28a0 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3626 behaves like avoids N+1 queries for additional rotation with participants3627 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdcad9ec738 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3628 for past shifts only3629 behaves like avoids N+1 queries for additional historical shift3630 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdc94ffffa8 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3631 behaves like avoids N+1 queries for additional participant3632 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdc88828340 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3633 behaves like adds only one query for each additional rotation with participants3634 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007cdc897cfde8 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3635 behaves like a working graphql query3636 returns a successful response3637Projects::Analytics::CycleAnalytics::StagesController3638 # order random3639 GET #index3640 succeeds3641 when the project is not licensed3642 returns forbidden error3643 when requesting aggregation endpoints3644 GET #median3645 succeeds3646 behaves like licensed project-level value stream stages examples3647 fails when stage is not found3648 fails when license is missing3649 GET #average3650 succeeds3651 behaves like licensed project-level value stream stages examples3652 fails when stage is not found3653 fails when license is missing3654 GET #records3655 succeeds3656 behaves like licensed project-level value stream stages examples3657 fails when stage is not found3658 fails when license is missing3659 GET #count3660 succeeds3661 behaves like licensed project-level value stream stages examples3662 fails when stage is not found3663 fails when license is missing3664 GET #average_duration_chart3665 succeeds3666 behaves like licensed project-level value stream stages examples3667 fails when stage is not found3668 fails when license is missing3669Adding a Note to an Epic3670 when the user does not have permission3671 behaves like a Note mutation when the user does not have permission3672 behaves like a Note mutation that does not create a Note3673 is expected not to change `Note.count`3674 behaves like a mutation that returns top-level errors3675 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3676 when the user has permission3677 when using internal param3678 behaves like a Note mutation with confidential notes3679 returns a Note with confidentiality enabled3680 behaves like a Note mutation that creates a Note3681 is expected to change `Note.count` by 13682 when using deprecated confidential param3683 behaves like a Note mutation with confidential notes3684 returns a Note with confidentiality enabled3685 behaves like a Note mutation that creates a Note3686 is expected to change `Note.count` by 13687 when body contains quick actions3688 behaves like work item supports weights widget updates via quick actions3689 updates the work item3690 behaves like work item does not support weights widget updates via quick actions3691 ignores the quick action3692 behaves like work item supports health status widget updates via quick actions3693 updates work item health status3694 behaves like work item does not support health status widget updates via quick actions3695 ignores the quick action3696Mutations::Security::Finding::RevertToDetected3697 # order random3698 #resolve3699 when the user has access to vulnerability management3700 when user does not have access to the project3701 behaves like a mutation that returns a top-level access error3702 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3703 when no uuid is provided3704 raises an error3705 when the user has access to the project3706 when there is a dismissal feedback3707 when there is no vulnerability3708 behaves like properly sets the security finding state3709 sets the security finding state to detected3710 when there is a vulnerability3711 behaves like properly sets the security finding state3712 sets the security finding state to detected3713 behaves like properly sets the vulnerability state3714 sets the vulnerability state to detected3715 when the dismissal fails3716 raises an error3717 when the dismissal fails3718 raises an error3719 when there is no dismissal feedback3720 when there is no vulnerability3721 behaves like properly sets the security finding state3722 sets the security finding state to detected3723 when there is a vulnerability3724 behaves like properly sets the security finding state3725 sets the security finding state to detected3726 behaves like properly sets the vulnerability state3727 sets the vulnerability state to detected3728 when the security dashboard is not available to the user3729 behaves like a mutation that returns a top-level access error3730 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3731Update Amazon S3 configuration3732 # order random3733 when feature is licensed3734 when current user is a group owner3735 updates the configuration3736 audits the update3737 when the fields are updated with existing values3738 does not audit the event3739 when no fields are provided for update3740 behaves like a mutation that does not update the configuration3741 does not update the configuration3742 does not create audit event3743 when there is error while updating3744 does not update the configuration and returns the error3745 when current user is a group maintainer3746 behaves like a mutation on an unauthorized resource3747 behaves like a mutation that returns top-level errors3748 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3749 behaves like a mutation that does not update the configuration3750 does not update the configuration3751 does not create audit event3752 when current user is a group developer3753 behaves like a mutation on an unauthorized resource3754 behaves like a mutation that returns top-level errors3755 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3756 behaves like a mutation that does not update the configuration3757 does not update the configuration3758 does not create audit event3759 when current user is a group guest3760 behaves like a mutation on an unauthorized resource3761 behaves like a mutation that returns top-level errors3762 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3763 behaves like a mutation that does not update the configuration3764 does not update the configuration3765 does not create audit event3766 when feature is unlicensed3767 behaves like a mutation on an unauthorized resource3768 behaves like a mutation that returns top-level errors3769 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3770 behaves like a mutation that does not update the configuration3771 does not update the configuration3772 does not create audit event3773Update of an existing issue3774 updates the issue3775 setting epic3776 sets the epic3777 the epic is not readable to the current user3778 does not set the epic3779 the epic is not an epic3780 does not set the epic3781 removing epic3782 removes the epic3783 the epic argument is not provided3784 does not remove the epic3785API::DependencyListExports3786 # order random3787 GET /dependency_list_exports/:export_id/download3788 with user without permission3789 returns 4033790 with user with enough permission3791 with license feature disabled3792 returns 4033793 with license feature enabled3794 returns file content3795 with dependency list export not finished3796 returns 4043797 GET /dependency_list_exports/:export_id3798 with user without permission3799 returns 4033800 with user with enough permission3801 with license feature disabled3802 returns 4033803 with license feature enabled3804 fetches and returns a dependency_list_export3805 with dependency list export not finished3806 sets polling and returns accepted3807 POST /pipelines/:id/dependency_list_exports3808 behaves like creating dependency list export3809 with user without permission3810 returns 4033811 with user with enough permission3812 with license feature disabled3813 returns 4033814 with license feature enabled3815 creates and returns a dependency_list_export3816 when the `merge_sbom_api` feature flag is disabled3817 returns 4043818 POST /projects/:id/dependency_list_exports3819 behaves like creating dependency list export3820 with user without permission3821 returns 4033822 with user with enough permission3823 with license feature disabled3824 returns 4033825 with license feature enabled3826 creates and returns a dependency_list_export3827 POST /groups/:id/dependency_list_exports3828 behaves like creating dependency list export3829 with user without permission3830 returns 4033831 with user with enough permission3832 with license feature disabled3833 returns 4033834 with license feature enabled3835 creates and returns a dependency_list_export3836Query.gitlabSubscriptionsPreviewBillableUserChange3837 # order random3838 with project query3839 behaves like preview billable user change3840 when project_or_group does not exist3841 returns nil3842 when project_or_group exists3843 when current_user has access to project_or_group3844 with add_group_id3845 returns successfully3846 with add_user_emails3847 returns successfully3848 with add_user_ids3849 returns successfully3850 when missing all add_* arguments3851 returns error3852 when current_user does not have access to project_or_group3853 returns error3854 with group query3855 behaves like preview billable user change3856 when project_or_group does not exist3857 returns nil3858 when project_or_group exists3859 when current_user has access to project_or_group3860 with add_group_id3861 returns successfully3862 with add_user_emails3863 returns successfully3864 with add_user_ids3865 returns successfully3866 when missing all add_* arguments3867 returns error3868 when current_user does not have access to project_or_group3869 returns error3870getting test reports of a requirement3871 when user can read requirement3872 returns test reports successfully3873 behaves like a working graphql query3874 returns a successful response3875 with pagination3876 behaves like sorted paginated query3877 behaves like requires variables3878 shared example requires variables to be set3880 when sorting3881 sorts correctly3882 when paginating3883 paginates correctly3884 behaves like sorted paginated query3885 behaves like requires variables3886 shared example requires variables to be set3888 when sorting3889 sorts correctly3890 when paginating3891 paginates correctly3892 when the user does not have access to the requirement3893 returns nil3894Getting issues for an epic3895 when epics are enabled3896 does not return inaccessible issues3897 when user has access to the issue project3898 returns issues in this project3899 pagination3900 behaves like sorted paginated query3901 behaves like requires variables3902 shared example requires variables to be set3904 when sorting3905 sorts correctly3906 when paginating3907 paginates correctly3908 when user is guest3909 filters out confidential issues3910 when issues from multiple epics are queried3911 returns issues for each epic3912 does limited number of N+1 queries3913 when epics are disabled3914 does not find the epic3915Subscriptions::TrialsController3916 # order random3917 POST create3918 when not authenticated3919 redirects to trial registration3920 when user is banned3921EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3922EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3923 redirects to sign in with banned message3924 when authenticated3925 when user is then banned3926EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3927EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3928 redirects to trial registration3929 when successful3930 redirects to group path3931 with stored location concerns on redirection3932 when the user is setup for company3933 when there is a stored location for the user3934 redirects to the stored location3935 without a stored location set for the user3936 redirects to the group path3937 when submitted with glm_content value of discover-group-security3938 redirects to the group security dashboard3939 when submitted with glm_content value of discover-project-security3940 redirects to the group security dashboard3941 with create service failures3942 when namespace is not found or not allowed to create3943 is expected to respond with numeric status code not_found3944 when lead creation fails3945 renders lead form3946 when lead creation is successful, but we need to select a namespace next to apply trial3947 redirects to new with trial step3948 with namespace creation failure3949 renders the select namespace form again with namespace creation errors only3950 with trial failure3951 renders the select namespace form again with trial creation errors only3952 with random failure3953 is expected to render select namespace3954 when not on SaaS3955 is expected to respond with numeric status code not_found3956 GET new3957 when not authenticated3958 is expected to redirect to trial registration3959 when authenticated3960 is expected to respond with numeric status code ok3961 when not on SaaS3962 is expected to respond with numeric status code not_found3963 with an unconfirmed email address present3964 does not show email confirmation warning3965 when on the trial step3966 is expected to render select namespace3967API::ResourceStateEvents3968 # order random3969 when eventable is an Epic3970 behaves like resource_state_events API3971 GET /groups/:id/epics/:noteable_id/resource_state_events3972 returns an array of resource state events3973 returns a 404 error when eventable id not found3974EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3975EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3976 returns 404 when not authorized3977 GET /groups/:id/epics/:noteable_id/resource_state_events/:event_id3978 returns a resource state event by id3979EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3980EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar3981 returns 404 when not authorized3982 returns a 404 error if resource state event not found3983 pagination3984 returns the second page3985Unassigns scan execution policy project from a project/namespace3986 for project3987 behaves like unassigns security policy project3988 when licensed feature is available3989 when user is an owner of the container3990 when there is no security policy project assigned to the container3991 does not unassign the security policy project3992 when security policy project is assigned to the container3993 unassigns the security policy project3994 when user is not an owner3995 behaves like a mutation that returns top-level errors3996 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3997 when feature is not licensed3998 behaves like a mutation that returns top-level errors3999 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4000 for namespace4001 behaves like unassigns security policy project4002 when licensed feature is available4003 when user is an owner of the container4004 when there is no security policy project assigned to the container4005 does not unassign the security policy project4006 when security policy project is assigned to the container4007 unassigns the security policy project4008 when user is not an owner4009 behaves like a mutation that returns top-level errors4010 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4011 when feature is not licensed4012 behaves like a mutation that returns top-level errors4013 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4014Groups::TwoFactorAuthsController4015 # order random4016 DELETE #destroy4017 when signed in user is a group owner4018 when the user has 2FA enabled4019 when the user is provisioned by the current group4020 successfully disables 2FA and redirects with a success notice4021 returns not found for nil user_id4022 returns not found for non-existent user_id4023 shows unauthorized error when group is not a root group4024 when user is not provisioned by current group4025 fails with unauthorized error4026 when the user does not have 2FA enabled4027 redirects to group_group_members_path4028 displays an alert on failure4029 when signed in user is not a group owner4030 when the user has 2FA enabled4031 responds with a 4044032 when signed in user is not a group member4033 responds with a 4044034 when invalid group id is passed4035 throws routing error4036Projects::Settings::RepositoryController4037 GET show4038 push rule4039 is created4040 is connected to project_settings4041 unlicensed4042 is not created4043 group protected branches4044 feature_flag: false, licensed_feature: false, expected_include_group: false4045 include group correctly4046 feature_flag: false, licensed_feature: true, expected_include_group: false4047 include group correctly4048 feature_flag: true, licensed_feature: false, expected_include_group: false4049 include group correctly4050 feature_flag: true, licensed_feature: true, expected_include_group: true4051 include group correctly4052 avoid N+1 sql queries4053 when the feature group protected branches disabled4054 does not perform N+1 sql queries4055 when the feature group protected branches enabled4056 does not perform N+1 sql queries4057Update an external audit event destination header4058 # order random4059 when feature is unlicensed4060 behaves like a mutation that returns top-level errors4061 is expected to contain exactly "You do not have access to this mutation."4062 behaves like a mutation that does not update a header4063 does not update a header key4064 does not update a header value4065 when feature is licensed4066 when current user is instance admin4067 updates the header with the correct attributes4068 when active attribute is also updated4069 updates the header with the correct attributes4070 when only active attribute is updated4071 updates the header active value4072 when the header attributes are invalid4073 returns correct errors4074 returns the unmutated attribute values4075 behaves like a mutation that does not update a header4076 does not update a header key4077 does not update a header value4078 when the header id is wrong4079 behaves like a mutation that returns top-level errors4080 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4081 behaves like a mutation that does not update a header4082 does not update a header key4083 does not update a header value4084 when current user is not instance admin4085 behaves like a mutation that does not update a header4086 does not update a header key4087 does not update a header value4088CiMinutesUsageMailer4089 #notify4090 when it is a group4091 behaves like mail format4092 is expected to have subject of "Action required: There are no remaining Pipeline minutes for group336"4093 is expected to be bcc'd to ["bob@example.com", "john@example.com"]4094 is expected to have body including "/group338"4095 is expected to have body including "has run out of Shared Runner Pipeline minutes"4096 is expected to have body including "http://localhost/-/subscriptions/buy_minutes?selected_group=2794"4097 when it is a namespace4098 behaves like mail format4099 is expected to have subject of "Action required: There are no remaining Pipeline minutes for Sidney Jones1708"4100 is expected to be bcc'd to ["bob@example.com", "john@example.com"]4101 is expected to have body including "/namespace661"4102 is expected to have body including "has run out of Shared Runner Pipeline minutes"4103 is expected to have body including "http://localhost/-/subscriptions/buy_minutes?selected_group=2799"4104 #notify_limit4105 when it is a group4106 behaves like mail format4107 is expected to have subject of "Action required: Less than 30% of Pipeline minutes remain for group341"4108 is expected to be bcc'd to ["bob@example.com", "john@example.com"]4109 is expected to have body including "/group343"4110 is expected to have body including "has 30% or less Shared Runner Pipeline minutes"4111 is expected to have body including "http://localhost/-/subscriptions/buy_minutes?selected_group=2804"4112 when it is a namespace4113 behaves like mail format4114 is expected to have subject of "Action required: Less than 30% of Pipeline minutes remain for Sidney Jones1713"4115 is expected to be bcc'd to ["bob@example.com", "john@example.com"]4116 is expected to have body including "/namespace666"4117 is expected to have body including "has 30% or less Shared Runner Pipeline minutes"4118 is expected to have body including "http://localhost/-/subscriptions/buy_minutes?selected_group=2809"4119Creating a DAST Site Token4120 behaves like an on-demand scan mutation when user cannot run an on-demand scan4121 when a user does not have access to the project4122 behaves like a mutation that returns a top-level access error4123 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4124 when a user does not have access to run a dast scan on the project4125 behaves like a mutation that returns a top-level access error4126 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4127 behaves like an on-demand scan mutation when user can run an on-demand scan4128 returns an empty errors array4129 returns the dast_site_validation id4130 creates a new dast_site_validation4131 when on demand scan licensed feature is not available4132 behaves like a mutation that returns a top-level access error4133 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4134API::MemberRoles4135 # order random4136 DELETE /groups/:id/member_roles/:member_role_id4137 behaves like custom_roles license required4138 without a valid license4139 returns not found error4140 when custom_roles license is enabled4141 when unauthorized4142 returns unauthorized error4143 when a less privileged user4144 does not remove the member role4145 when owner of the group4146 removes member role4147 when invalid group name is passed4148 returns 404 if SAML group can not used for a SAML group link4149 POST /groups/:id/member_roles4150 behaves like custom_roles license required4151 without a valid license4152 returns not found error4153 when custom_roles license is enabled4154 when unauthorized4155 returns unauthorized error4156 when a less privileged user4157 does not allow less privileged user to add member roles4158 when owner of the group4159 returns ok and add member role4160 when no name param is passed4161 populates a default name based on the access level passed in4162 when params are missing4163 returns a 400 error when params are missing4164 when params are invalid4165 returns a 400 error when params are invalid4166 when group is not a root group4167 returns not found error4168 when errors during creation of new record4169 returns a error message with 400 code4170 GET /groups/:id/member_roles4171 behaves like custom_roles license required4172 without a valid license4173 returns not found error4174 when custom_roles license is enabled4175 when unauthorized4176 returns forbidden error4177 when a less privileged user4178 returns forbidden error4179 when owner of the group4180 returns associated member roles4181 when group does not have any associated member_roles4182 returns empty array as response4183Update a DAST Scanner Profile4184 behaves like an on-demand scan mutation when user cannot run an on-demand scan4185 when a user does not have access to the project4186 behaves like a mutation that returns a top-level access error4187 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4188 when a user does not have access to run a dast scan on the project4189 behaves like a mutation that returns a top-level access error4190 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4191 behaves like an on-demand scan mutation when user can run an on-demand scan4192 returns an empty errors array4193 returns the dast_scanner_profile4194 updates the dast_scanner_profile4195 when on demand scan licensed feature is not available4196 behaves like a mutation that returns a top-level access error4197 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4198 when there is an issue updating the dast_scanner_profile4199 behaves like a mutation that returns errors in the response4200 is expected to contain exactly "Name has already been taken"4201 when the dast_scanner_profile does not exist4202 behaves like a mutation that returns top-level errors4203 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4204Registrations::CompanyController4205 #new4206 behaves like user authentication4207 when not authenticated4208 is expected to redirect to "/users/sign_in"4209 when authenticated4210 is expected to respond with numeric status code ok4211 behaves like a dot-com only feature4212 when not on gitlab.com4213 is expected to respond with numeric status code not_found4214 when on gitlab.com4215 is expected to respond with numeric status code ok4216 on render4217 is expected to render template layouts/minimal4218 is expected to render template new4219 tracks render event4220 when in trial flow4221 tracks render event4222 #create4223 on success4224 creates trial and redirects to the correct path4225 when saving onboarding_step_url4226 when current user onboarding is disabled4227 does not store onboarding url4228 when onboarding and on SaaS4229 stores onboarding url4230 when not on SaaS4231 does not store onboarding url4232 with snowplow tracking4233 tracks successful submission event4234 when in trial flow4235 tracks successful submission event4236 on failure4237 trial_onboarding_flow: "true"4238 renders company page :new4239 trial_onboarding_flow: "false"4240 renders company page :new4241 with snowplow tracking4242 does not track successful submission event4243 when in trial flow4244 tracks successful submission event4245Query.project(fullPath).dastProfiles.dastProfileSchedule4246 when a user does not have access to the project4247 returns a null project4248 when a user does not have access to dast_profile4249 returns an empty dast_profile4250 when a user has access to dast_profile_schedule4251 returns a dast_profile_schedule4252 behaves like query dastProfiles.dastProfileSchedule shared examples4253 avoids N+1 queries4254Query.resource_parent(id).visualizations4255 # order random4256 when resource parent is a project4257 behaves like listing visualizations4258 when user has developer access4259 returns visualizations4260 when querying a specific visualization4261 returns the specific visualization4262 when user has guest access4263 returns nil4264 when user is not authenticated4265 returns nil4266 when resource parent is a group4267 behaves like listing visualizations4268 when user has developer access4269 returns visualizations4270 when querying a specific visualization4271 returns the specific visualization4272 when user has guest access4273 returns nil4274 when user is not authenticated4275 returns nil4276Emails::IdentityVerification4277 # order random4278 confirmation_instructions_email4279 is sent to the user4280 has the correct subject4281 has the mailgun suppression bypass header4282 includes the token4283 includes the expiration time4284 behaves like an email sent from GitLab4285 has the characteristics of an email sent from GitLab4286 behaves like an email with information about unconfirmed user settings4287 when delete unconfirmed users settings are present4288 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "hard", delete_after_days: 7, result: true4289 has the correct email body contents4290 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "soft", delete_after_days: 7, result: true4291 has the correct email body contents4292 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "off", delete_after_days: 7, result: false4293 has the correct email body contents4294 delete_unconfirmed_users_license: false, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "hard", delete_after_days: 7, result: false4295 has the correct email body contents4296 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: false, email_confirmation_setting: "hard", delete_after_days: 7, result: false4297 has the correct email body contents4298 delete_unconfirmed_users_license: false, delete_unconfirmed_users_application_setting: false, email_confirmation_setting: "hard", delete_after_days: 7, result: false4299 has the correct email body contents4300Projects::BranchesController4301 GET #index4302 for mirrored projects with diverged branch4303 renders the diverged from upstream partial4304Projects::Security::ScannedResourcesController4305 GET #index4306 when the "Security and Compliance" feature is disabled4307 is expected to respond with numeric status code not_found4308 user has access to view vulnerabilities4309 when DAST security scan is found4310 returns a CSV representation of the scanned resources4311 when DAST licensed feature is unavailable4312 will return a 4044313 when security_dashboard licensed feature is not available4314 will return a 4044315 when DAST security scan is not found4316 will return a 4044317 when the pipeline id exists under another project4318 will return a 4044319 when the pipeline does not exist4320 will return a 4044321 user does not have access to view vulnerabilities4322 will return a 4044323Projects::Security::CorpusManagementController4324 GET #show4325 when the "Security and Compliance" feature is disabled4326 is expected to respond with numeric status code not_found4327 feature available4328 user authorized4329 can access page4330 user not authorized4331 sees a 404 error4332 feature not available4333 license doesnt't support the feature4334 sees a 404 error4335UserAddOnAssignmentRemove4336 # order random4337 when feature flag hamilton_seat_management is disabled4338 behaves like empty response4339 returns nil4340 when current_user is not owner or admin4341 behaves like empty response4342 returns nil4343 behaves like success response4344 returns expected response4345 when there are multiple add-on assignments for the user4346 avoids N+1 database queries4347 when user_id does not exists4348 behaves like empty response4349 returns nil4350 when add_on_purchase has expired4351 behaves like empty response4352 returns nil4353 when current_user is admin4354 behaves like success response4355 returns expected response4356 when the user does not have existing assignment4357 behaves like empty response4358 returns nil4359 when add_on_purchase_id does not exists4360 behaves like empty response4361 returns nil4362API::Templates4363 GET /templates/dockerfiles4364 includes the custom template in the response4365 excludes the custom template when the feature is disabled4366 GET /templates/dockerfiles/custom4367 returns the custom template4368 returns 404 when the feature is disabled4369 GET /templates/gitignores4370 includes the custom template in the response4371 excludes the custom template when the feature is disabled4372 GET /templates/gitignores/custom4373 returns the custom template4374 returns 404 when the feature is disabled4375 GET /templates/gitlab_ci_ymls4376 includes the custom template in the response4377 excludes the custom template when the feature is disabled4378 GET /templates/gitlab_ci_ymls/custom4379 returns the custom template4380 returns 404 when the feature is disabled4381 GET /templates/licenses4382 includes the custom template in the response4383 excludes the custom template when the feature is disabled4384 GET /templates/licenses/custom4385 returns the custom template4386 returns 404 when the feature is disabled4387Creating an iteration cadence4388 when the user does not have permission4389 does not create iteration cadence4390 behaves like a mutation that returns a top-level access error4391 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4392 when the user has permission4393 when iterations feature is disabled4394 behaves like a mutation that returns top-level errors4395 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4396 when iterations feature is enabled4397 creates the iteration cadence for a group4398 when creating a manual iteration cadence4399 creates an iteration cadence4400 when there are ActiveRecord validation errors4401 does not create the iteration cadence4402 behaves like a mutation that returns errors in the response4403 is expected to contain exactly "Iterations in advance can't be blank", "Start date can't be blank", and "Title can't be blank"4404 when required arguments are missing4405 returns error about required argument4406 does not create the iteration cadence4407Groups::IssuesController4408 # order random4409 POST #bulk_update4410 when group bulk edit feature is not available4411 returns a 404 status4412 when group bulk edit feature is enabled4413 updates attributes for selected issues4414 when setting arguments to null or none4415 does not unset arguments4416 when assignee_ids contains only null elements4417 does not unset assignees4418Projects::BlobController4419 POST create4420 redirects to blob4421 behaves like handling the codeowners interaction4422 redirects to blob4423 PUT update4424 behaves like handling the codeowners interaction4425 redirects to blob4426Groups::ScimOauthController4427 when the feature is configured4428 POST #create4429 without token4430 creates a new SCIM token record4431 json4432 shows the token4433 shows the url4434 with token4435 does not create a new SCIM token record4436 updates the token4437 json4438 shows the token4439 shows the url4440Admin::Geo::NodesController4441 #index4442 with valid license4443 does not show license alert4444 without valid license4445 does show license alert4446 does not redirects to the 403 page4447 #create4448 without add-on license4449 behaves like unlicensed geo action4450 redirects to the 403 page4451 with add-on license4452 delegates the create of the Geo node to Geo::NodeCreateService4453 #update4454 without add-on license4455 behaves like unlicensed geo action4456 redirects to the 403 page4457 with add-on license4458 updates the node4459 delegates the update of the Geo node to Geo::NodeUpdateService4460Querying a Milestone4461 burnupTimeSeries4462 with insufficient license4463 returns nil4464 when missing dates4465 explains why the report cannot be generated4466 when there are too many events4467 explains why the report cannot be generated4468 when "rollup_timebox_chart" feature flag is enabled4469 explains why the report cannot be generated4470 with correct license4471 returns burnup chart data4472 group milestones4473 behaves like milestones queried by timeframe4474 query for milestones by timeframe4475 without start4476 returns error4477 without end date4478 returns error4479 with start and end date4480 does not have errors4481 project milestones4482 behaves like milestones queried by timeframe4483 query for milestones by timeframe4484 without start4485 returns error4486 without end date4487 returns error4488 with start and end date4489 does not have errors4490Setting the escalation policy of an issue4491 sets given escalation_policy to the escalation status for the issue4492 when user does not have permission to edit the escalation status4493 behaves like a mutation that returns a top-level access error4494 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4495 with non-incident issue is provided4496 behaves like a mutation that returns top-level errors4497 is expected to contain exactly "Feature unavailable for provided issue"4498 when escalation_policy_id is nil4499 removes existing escalation policy4500Delete an audit event type filter4501 # order random4502 when unlicensed4503 behaves like a mutation on an unauthorized resource4504 behaves like a mutation that returns top-level errors4505 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4506 when licensed4507 when current user is a group maintainer4508 behaves like a mutation that returns top-level errors4509 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4510 when current user is a group developer4511 behaves like a mutation that returns top-level errors4512 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4513 when current user is a group guest4514 behaves like a mutation that returns top-level errors4515 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4516 when current user is a group owner4517 returns success response4518 when event type filters in input is empty4519 returns graphql error4520getting a list of external audit event destinations for the instance4521 # order random4522 when user is not authenticated4523 when feature is licensed4524 behaves like a request that returns no destinations4525 returns no destinations4526 when feature is not licensed4527 behaves like a request that returns no destinations4528 returns no destinations4529 when user is authenticated4530 when feature is licensed4531 when user is instance admin4532 returns the instance external audit event destinations4533 when user is not instance admin4534 behaves like a request that returns no destinations4535 returns no destinations4536 when feature is not licensed4537 when user is instance admin4538 behaves like a request that returns no destinations4539 returns no destinations4540 when user is not instance admin4541 behaves like a request that returns no destinations4542 returns no destinations4543Projects::Security::DastProfilesController4544 GET #index4545 when the "Security and Compliance" feature is disabled4546 is expected to respond with numeric status code not_found4547 feature available4548 user authorized4549 can access page4550 user not authorized4551 sees a 404 error4552 feature not available4553 license doesnt't support the feature4554 sees a 404 error4555Projects::ImportsController4556 GET #show4557 when import type is gitlab_custom_project_template4558 when developer is allowed to create projects4559 returns 200 response4560 when developer is not allowed to create projects4561 returns 404 response4562 POST #create4563 mirror user is not the current user4564 only assigns the current user4565Setting the epic of an issue4566 returns an error if the user is not allowed to update the issue4567 return an error if issue can not be updated4568 sets given epic to the issue4569 removes existing epic if epic_id is nil4570getting Incident Management on-call shifts4571 # order random4572 adding participants4573 updates the rotation and adds participants4574 updating name only4575 updates the rotation4576 errors4577 user cannot be found4578 raises an error4579 removing participants4580 updates the rotation and removes participants4581Projects::RepositoriesController4582 GET archive4583 when unauthenticated for a public project4584 behaves like logs the audit event4585 logs the audit event4586 when group sets event destination4587 behaves like sends the streaming audit event4588 sends the streaming event with audit event type4589 when authenticated as a developer4590 behaves like logs the audit event4591 logs the audit event4592 when group sets event destination4593 behaves like sends the streaming audit event4594 sends the streaming event with audit event type4595SessionsController4596 #new4597 on a Geo secondary node4598 when relative URL is configured4599 behaves like a valid oauth authentication redirect4600 redirects to the correct oauth_geo_auth_url4601 with a tampered HOST header4602 behaves like a valid oauth authentication redirect4603 redirects to the correct oauth_geo_auth_url4604 with a tampered X-Forwarded-Host header4605 behaves like a valid oauth authentication redirect4606 redirects to the correct oauth_geo_auth_url4607 without a tampered header4608 behaves like a valid oauth authentication redirect4609 redirects to the correct oauth_geo_auth_url4610 when login fails4611 creates a failed authentication audit event4612 #create4613 with wrong credentials4614 when is a trial form4615 redirects to new trial sign in page4616 when is a regular form4617 redirects to the regular sign in page4618 when using two-factor authentication4619 when OTP authentication fails4620 behaves like an auditable failed authentication4621 log an audit event4622 when WebAuthn authentication fails4623 behaves like an auditable failed authentication4624DEPRECATION WARNING: Invalid Feature Flag webauthn stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)4625 log an audit event4626 when user is not allowed to log in using password4627 does not authenticate the user4628Updating an iteration cadence4629 when the user does not have permission4630 does not update the iteration cadence4631 behaves like a mutation that returns a top-level access error4632 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4633 when the user has permission4634 when iterations feature is disabled4635 behaves like a mutation that returns top-level errors4636 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4637 when iterations feature is enabled4638 updates the iteration cadence4639 when there are ActiveRecord validation errors4640 does not update the iteration cadence4641 behaves like a mutation that returns errors in the response4642 is expected to contain exactly "Title can't be blank"4643 when required arguments are missing4644 returns error about required argument4645Admin::Licenses::UsageExportsController4646 GET show4647 with no current license4648 redirects the user4649 does not update the license usage data exported flag4650 does not attempt to create the CSV4651 with a current license4652 returns a csv file in response4653 returns the expected response body4654 when current license is an offline cloud license4655 updates the license usage data exported flag4656 when current license is an online cloud license4657 does not update the license usage data exported flag4658 when current license is a legacy license4659 does not update the license usage data exported flag4660 when data export fails4661 does not update the license usage data exported flag4662Delete a DAST Scanner Profile4663 behaves like an on-demand scan mutation when user cannot run an on-demand scan4664 when a user does not have access to the project4665 behaves like a mutation that returns a top-level access error4666 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4667 when a user does not have access to run a dast scan on the project4668 behaves like a mutation that returns a top-level access error4669 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4670 behaves like an on-demand scan mutation when user can run an on-demand scan4671 returns an empty errors array4672 deletes the dast_scanner_profile4673 when on demand scan licensed feature is not available4674 behaves like a mutation that returns a top-level access error4675 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4676 when the dast_scanner_profile does not exist4677 behaves like a mutation that returns top-level errors4678 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4679Query.project(id).dashboards.panels(id).visualization4680 # order random4681 when current user is a developer4682 returns visualization4683 when the visualization does not exist4684 returns an error4685 when the visualization has validation errors4686 returns the visualization with a validation error4687Create test case4688 #resolve4689 when quality management feature is not available4690 behaves like a mutation that returns top-level errors4691 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4692 when quality management feature is available4693 when user can create test cases4694 when all arguments are provided4695 behaves like creates a new test case4696 aggregate_failures4697 when only required arguments are provided4698 behaves like creates a new test case4699 aggregate_failures4700 when no required arguments are provided4701 behaves like a mutation that returns top-level errors4702 is expected to contain exactly "Variable $createTestCaseInput of type CreateTestCaseInput! was provided invalid value for title (Expected value to not be null), projectPath (Expected value to not be null)"4703 with invalid arguments4704 behaves like an invalid argument to the mutation4705 behaves like a mutation that returns top-level errors4706 is expected to contain exactly (include "invalid value for notValid")4707 when user cannot create test cases4708 behaves like a mutation that returns top-level errors4709 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4710Query.workspaces(include_actual_states: [GraphQL::Types::String])4711 # order random4712 behaves like workspaces query in unlicensed environment and with feature flag off4713 when remote_development feature is unlicensed4714 returns an error4715 when remote_development_feature_flag feature flag is disabled4716 returns an error4717 behaves like workspaces query in licensed environment and with feature flag on4718 when licensed and remote_development_feature_flag feature flag is enabled4719 is expected to contain exactly (a hash including {"name" => "workspace-4-1857-ozszpo"})4720 behaves like a working graphql query4721 returns a successful response4722 when user is not authorized4723 is expected to eq []4724Querying a Board list4725 when the user has access to the list4726 is expected to include {"issuesCount" => 2, "title" => "foo"}4727 behaves like a working graphql query4728 returns a successful response4729 issue filters4730 when filtering by iteration arguments4731 is expected to include {"issuesCount" => 1, "title" => "foo"}4732 when filtering by health_status argument4733 is expected to include {"issuesCount" => 1, "title" => "foo"}4734 when filtering by negated health_status argument4735 is expected to include {"issuesCount" => 1, "title" => "foo"}4736 when the user does not have access to the list4737 is expected to be nil4738Groups::ServiceAccountsController4739 # order random4740 GET #index4741 when `service_accounts_crud` feature flag is disabled4742 when user is not a group owner4743 returns a 404 status code4744 when user is a group owner4745 returns a 404 status code4746 when `service_accounts_crud` feature flag is enabled4747 when user is not a group owner4748 returns a 404 status code4749 when user is a group owner4750 returns a 200 status code4751Project creation via Registrations::GroupsController4752 # order random4753 POST #create4754 with an authenticated user4755 when group and project can be created4756 creates a group4757 when group already exists and project can be created4758 creates a project4759User with admin_vulnerability custom role4760 # order random4761 Projects::Security::VulnerabilitiesController4762 #new4763 user has access via a custom role4764Activate a subscription4765 persists license key4766 when there are future subscriptions4767 persists license key and stores future subscriptions4768view audit events4769 GET /audit_events4770 when admin mode is enabled4771 returns 200 response4772 avoids N+1 DB queries4773 when admin mode is disabled4774 redirects to admin mode enable4775Groups::TodosController4776 POST create4777 when epic is not confidential4778 when epics are available4779 behaves like todos actions4780 when authorized4781 creates todo4782 returns todo path and pending count4783 when not authorized for project/group4784 does not create todo for resource that user has no access to4785 does not create todo when user is not logged in4786 when epics are not available4787 behaves like todo for inaccessible resource4788 does not create todo because resource can not be found4789 when the user can not access confidential epic in public group4790 behaves like todo for inaccessible resource4791 does not create todo because resource can not be found4792Creating a new on-call schedule4793 # order random4794 create a new on-call schedule4795 without required argument project_path4796 behaves like an invalid argument to the mutation4797 behaves like a mutation that returns top-level errors4798 is expected to contain exactly (include "invalid value for projectPath")4799 without required argument name4800 behaves like an invalid argument to the mutation4801 behaves like a mutation that returns top-level errors4802 is expected to contain exactly (include "invalid value for name")4803 without required argument timezone4804 behaves like an invalid argument to the mutation4805 behaves like a mutation that returns top-level errors4806 is expected to contain exactly (include "invalid value for timezone")4807API::Internal::SuggestedReviewers4808 # order random4809 POST /internal/suggested_reviewers/tokens4810 when feature flag is disabled4811 returns 4044812 when feature flag is enabled4813 when authentication header is not set4814 returns 4014815 when authentication header is set4816 when project is not allowed to suggest reviewers4817 returns 4044818 when project is allowed to suggest reviewers4819 when create token service fails4820 returns 4004821 when create token service succeeds4822 returns 2004823API::HelmPackages4824 # order random4825 GET /api/v4/projects/:id/packages/helm/:channel/charts/:file_name.tgz4826 behaves like applying ip restriction for group4827 in group without restriction4828 behaves like returning response status4829 returns ok4830 in group with restriction4831 with address within the range4832 behaves like returning response status4833 returns ok4834 with address outside the range4835 behaves like returning response status4836 returns not_found4837Projects::Security::DastConfigurationController4838 GET #show4839 when the "Security and Compliance" feature is disabled4840 is expected to respond with numeric status code not_found4841 feature available4842 user authorized4843 can access page4844 user not authorized4845 sees a 404 error4846 feature not available4847 license doesn't support the feature4848 sees a 404 error4849Projects::Settings::CiCdController4850 as a maintainer4851 GET show4852 renders group protected environments4853 PATCH update4854 when updating general settings4855 when allow_pipeline_trigger_approve_deployment is specified4856 sets allow_pipeline_trigger_approve_deployment4857Update board epic user preferences4858 returns an error if user can not access the board4859 when user can access the board4860 returns an error if user can not access the epic4861 when user can access the epic4862 updates user preferences4863RootController4864 GET #index4865 when user is not logged in4866 on a Geo primary node4867 redirects to the sign-in page4868 when a custom home page URL is defined4869 redirects the user to the custom home page URL4870 on a Geo secondary node4871 redirects to the sign-in page4872 when a custom home page URL is defined4873 redirects to the sign-in page4874 with a user4875 who has customized their dashboard setting for operations4876 when licensed4877 redirects to operations dashboard4878 when unlicensed4879 renders the default dashboard4880API::Submodules4881 PUT /projects/:id/repository/submodule/:submodule4882 with an exceeded namespace storage limit4883 rejects the request4884Update of an existing epic board list4885 behaves like a GraphQL request to update board list4886 the user is not allowed to read board lists4887 behaves like a mutation that returns a top-level access error4888 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4889 when user has permissions to admin board lists4890 updates the list position and collapsed state4891 when user has permissions to read board lists4892 updates the list collapsed state but not the list position4893API::Ai::Llm::GitCommand4894 # order random4895 POST /ai/llm/git_command4896 behaves like delegates AI request to Workhorse4897 responds with Workhorse send-url headers4898 when openai model is requested4899 behaves like delegates AI request to Workhorse4900 responds with Workhorse send-url headers4901 when openai experimentation is unavailable4902 returns bad request4903 when git command is unavailable4904 returns bad request4905 when the endpoint is called too many times4906 returns too many requests response4907Projects::AutomationsController4908 # order random4909 GET /:namespace/:project/-/automations4910 returns 200 response4911 when the feature flag is disabled4912 behaves like returns not found4913 returns 404 response4914 when the feature is unlicensed4915 behaves like returns not found4916 returns 404 response4917 when the feature is unlicensed AND the feature flag is disabled4918 behaves like returns not found4919 returns 404 response4920ConfirmationsController4921 # order random4922 GET #show4923 when user is signed in4924 sets event_type4925 when user is provisioned by group4926 confirms the user and redirects to SSO login4927 when the provisioning group is deleted4928 redirects to default sign in path4929Groups::RunnersController4930 # order random4931 #show4932 enables runner_upgrade_management_for_namespace licensed feature4933 when fetching runner releases is disabled4934 does not enable runner_upgrade_management_for_namespace licensed feature4935 #index4936 enables runner_upgrade_management_for_namespace licensed feature4937 when fetching runner releases is disabled4938 does not enable runner_upgrade_management_for_namespace licensed feature4939getting a repository in a project4940 # order random4941 when ref arg is passed4942 returns the CODEOWNERS file from the requested branch4943 when ref arg is omitted4944 returns the CODEOWNERS file from the default branch4945 when ref arg is invalid4946 returns an error4947API::Ai::Experimentation::VertexAi4948 # order random4949 POST /ai/experimentation/vertex/chat4950 when ai_experimentation_api feature flag not enabled for user4951 behaves like behind AI experimentation API feature flag4952 when ai_experimentation_api is disabled4953 responds as not found4954 when neither content nor messages param is passed4955 behaves like invalid request4956 returns an error4957 when user input can not be parsed4958 behaves like invalid request4959 returns an error4960 behaves like proxies request to ai api endpoint4961 responds with Workhorse send-url headers4962 when messages param is used4963 behaves like proxies request to ai api endpoint4964 responds with Workhorse send-url headers4965Query.vulnerabilities.scanner4966 returns a vulnerability scanner4967Removing a namespace ban4968 removes the ban4969 when resource is not accessible to the user4970 returns an error message4971Environments Deployments query4972 # order random4973 when requesting user permissions4974 limits the result4975API::Ci::Pipelines4976 DELETE /projects/:id/pipelines/:pipeline_id4977 authorized user4978 when audit events is enabled4979 does not log an audit event4980Emails::InProductMarketing4981 has correct custom headers4982 #account_validation_email4983 sends to the right user with a link to unsubscribe4984 has the correct subject and content4985getting merge request listings (EE) nested in a project4986 when requesting approval fields4987 exposes approval metadata4988UploadsController4989 GET show4990 when viewing issuable metric images4991 responds with status 2004992Groups::InsightsController4993 # order random4994 GET #show4995 behaves like contribution analytics charts configuration4996 when user does not have permissions to access all charts4997 removes forbidden charts from configuration4998 when user have permissions to access all charts4999 does not remove charts from configuration5000Admin::SubscriptionsController5001 GET /subscriptions5002 when the user is not admin5003 responds with 4045004 when the user an admin5005 renders the Activation Form5006Ci/Cd settings through GroupQuery5007 when group has no associated ci_cd_settings5008 returns false for allowStaleRunnerPruning5009 when group has associated ci_cd_settings5010 with allow_stale_runner_pruning set to false5011 returns false for allowStaleRunnerPruning5012 with allow_stale_runner_pruning set to true5013 returns true for allowStaleRunnerPruning5014CountriesController5015 GET #index5016 returns list of countries as json5017 does not include list of denied countries5018 overrides Ukraine name and adds information about restricted regions5019 updates `Taiwan, Province of China` to `Taiwan`5020Rack Attack global throttles5021 when the request is from Geo secondary5022 allows requests over the rate limit5023SitemapController5024 #show5025 when not Gitlab.com?5026 returns :not_found5027 when Gitlab.com?5028 with an authenticated user5029 when the sitemap generation raises an error5030 returns an xml error5031 when the sitemap was created suscessfully5032 returns sitemap5033Oauth::ApplicationsController5034 project members5035 POST #create5036 logs the audit event5037InternalRedirect5038 #host_allowed?5039 allows redirecting to existing geo nodes5040Knapsack report was generated. Preview:5041{5042 "ee/spec/controllers/projects/merge_requests_controller_spec.rb": 161.45026298100038,5043 "ee/spec/requests/api/visual_review_discussions_spec.rb": 137.38271573900056,5044 "ee/spec/requests/api/scim/group_scim_spec.rb": 107.13284026700057,5045 "ee/spec/requests/api/graphql/mutations/geo/registries/update_spec.rb": 88.23747351099883,5046 "ee/spec/controllers/projects_controller_spec.rb": 78.2070956209991,5047 "ee/spec/requests/api/merge_trains_spec.rb": 62.07667800999843,5048 "ee/spec/requests/api/geo_sites_spec.rb": 45.284127670998714,5049 "ee/spec/requests/api/graphql/mutations/geo/registries/bulk_update_spec.rb": 22.118669893001424,5050 "ee/spec/controllers/projects/licenses_controller_spec.rb": 39.27031281800009,5051 "ee/spec/controllers/projects/subscriptions_controller_spec.rb": 36.69967134699982,5052 "ee/spec/controllers/groups/epic_issues_controller_spec.rb": 32.71025376899888,5053 "ee/spec/controllers/groups/group_members_controller_spec.rb": 32.28672011100025,5054 "ee/spec/requests/api/discussions_spec.rb": 30.711129879999135,5055 "ee/spec/requests/api/graphql/project/requirements_management/requirements_spec.rb": 25.944787668999197,5056 "ee/spec/controllers/groups/contribution_analytics_controller_spec.rb": 23.21904700400046,5057 "ee/spec/controllers/projects/security/vulnerabilities_controller_spec.rb": 25.16189285799919,5058 "ee/spec/requests/api/graphql/group_query_spec.rb": 23.526218463000987,5059 "ee/spec/requests/api/project_push_rule_spec.rb": 18.065730571999666,5060 "ee/spec/requests/groups/dependencies_controller_spec.rb": 16.98141038200083,5061 "ee/spec/requests/api/group_hooks_spec.rb": 19.063868062999973,5062 "ee/spec/requests/api/graphql/project/vulnerability_severities_count_spec.rb": 19.598077237000325,5063 "ee/spec/requests/api/managed_licenses_spec.rb": 15.923114597999302,5064 "ee/spec/controllers/projects/audit_events_controller_spec.rb": 13.813835369999651,5065 "ee/spec/requests/api/epic_issues_spec.rb": 17.51479579700026,5066 "ee/spec/requests/api/invitations_spec.rb": 12.44477631799964,5067 "ee/spec/requests/groups/epics/epic_links_controller_spec.rb": 14.637703467000392,5068 "ee/spec/requests/projects/on_demand_scans_controller_spec.rb": 13.140655517998312,5069 "ee/spec/controllers/projects/feature_flag_issues_controller_spec.rb": 12.4094898809999,5070 "ee/spec/controllers/registrations/welcome_controller_spec.rb": 11.81583068100008,5071 "ee/spec/controllers/projects/protected_environments_controller_spec.rb": 14.154053426000246,5072 "ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb": 9.767426307000278,5073 "ee/spec/requests/api/graphql/instance_security_dashboard_spec.rb": 11.034628800000064,5074 "ee/spec/controllers/projects/approvers_controller_spec.rb": 12.1817538840005,5075 "ee/spec/requests/api/graphql/project/pipeline/security_report_summary_spec.rb": 11.411464691998845,5076 "ee/spec/requests/ee/projects/environments_controller_spec.rb": 12.976446573999056,5077 "ee/spec/controllers/oauth/geo_auth_controller_spec.rb": 9.119815672000186,5078 "ee/spec/requests/api/graphql/project/product_analytics/product_analytics_spec.rb": 8.719793993001076,5079 "ee/spec/requests/user_activity_spec.rb": 9.46162194900171,5080 "ee/spec/requests/api/graphql/project/incident_management/oncall_shifts_spec.rb": 9.684711104999224,5081 "ee/spec/requests/projects/analytics/cycle_analytics/stages_controller_spec.rb": 8.443250080001235,5082 "ee/spec/requests/api/graphql/mutations/notes/create/note_spec.rb": 8.702376244998959,5083 "ee/spec/requests/api/graphql/mutations/security/finding/revert_to_detected_spec.rb": 7.962253118999797,5084 "ee/spec/requests/api/graphql/mutations/audit_events/amazon_s3_configurations/update_spec.rb": 6.97335492899947,5085 "ee/spec/requests/api/graphql/mutations/issues/update_spec.rb": 9.40309954300028,5086 "ee/spec/requests/api/dependency_list_exports_spec.rb": 7.381463727999289,5087 "ee/spec/requests/api/graphql/gitlab_subscriptions/preview_billable_user_change_spec.rb": 7.402865044999999,5088 "ee/spec/requests/api/graphql/project/requirements_management/test_reports_spec.rb": 7.284673506999752,5089 "ee/spec/requests/api/graphql/group/epic/epic_issues_spec.rb": 6.414235595000719,5090 "ee/spec/requests/subscriptions/trials_controller_spec.rb": 5.105145276000258,5091 "ee/spec/requests/api/resource_state_events_spec.rb": 5.60252572599893,5092 "ee/spec/requests/api/graphql/mutations/security_policy/unassign_security_policy_project_spec.rb": 6.664960449999853,5093 "ee/spec/requests/groups/two_factor_auths_controller_spec.rb": 5.881563888000528,5094 "ee/spec/controllers/projects/settings/repository_controller_spec.rb": 5.319733205000375,5095 "ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/update_spec.rb": 4.6418457420004415,5096 "ee/spec/mailers/ci_minutes_usage_mailer_spec.rb": 5.239418953000495,5097 "ee/spec/requests/api/graphql/mutations/dast_site_validations/create_spec.rb": 5.191245746998902,5098 "ee/spec/requests/api/member_roles_spec.rb": 4.904424686999846,5099 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/update_spec.rb": 4.416920974999812,5100 "ee/spec/controllers/registrations/company_controller_spec.rb": 3.614031047000026,5101 "ee/spec/requests/api/graphql/project/dast_profile_schedule_spec.rb": 5.084969368001111,5102 "ee/spec/requests/api/graphql/product_analytics/list_visualizations_spec.rb": 5.670889549001004,5103 "ee/spec/mailers/ee/emails/identity_verification_spec.rb": 3.8433616040001652,5104 "ee/spec/controllers/projects/branches_controller_spec.rb": 4.756963879999603,5105 "ee/spec/requests/projects/security/scanned_resources_controller_spec.rb": 4.356725711999388,5106 "ee/spec/requests/projects/security/corpus_management_controller_spec.rb": 4.343447573000958,5107 "ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb": 5.013408046001132,5108 "ee/spec/requests/api/templates_spec.rb": 3.5490835229993536,5109 "ee/spec/requests/api/graphql/mutations/iterations/cadences/create_spec.rb": 4.146085812999445,5110 "ee/spec/requests/groups/issues_controller_spec.rb": 4.905086366001342,5111 "ee/spec/controllers/ee/projects/blob_controller_spec.rb": 3.9955185769995296,5112 "ee/spec/controllers/groups/scim_oauth_controller_spec.rb": 4.829625454000052,5113 "ee/spec/controllers/admin/geo/nodes_controller_spec.rb": 4.111037716000283,5114 "ee/spec/requests/api/graphql/milestone_spec.rb": 3.7615669810002146,5115 "ee/spec/requests/api/graphql/mutations/issues/set_escalation_policy_spec.rb": 3.5407440030012367,5116 "ee/spec/requests/api/graphql/audit_events/streaming/event_type_filters/delete_spec.rb": 3.1548438530007843,5117 "ee/spec/requests/api/graphql/audit_events/instance/google_cloud_logging_configuration_spec.rb": 2.914245995998499,5118 "ee/spec/requests/projects/security/dast_profiles_controller_spec.rb": 4.2700331500000175,5119 "ee/spec/controllers/projects/imports_controller_spec.rb": 4.130555994001043,5120 "ee/spec/requests/api/graphql/mutations/issues/set_epic_spec.rb": 4.430655574000411,5121 "ee/spec/requests/api/graphql/mutations/incident_management/oncall_rotation/update_spec.rb": 3.010866127000554,5122 "ee/spec/controllers/projects/repositories_controller_spec.rb": 3.5326241639995715,5123 "ee/spec/controllers/ee/sessions_controller_spec.rb": 3.215650956999525,5124 "ee/spec/requests/api/graphql/mutations/iterations/cadences/update_spec.rb": 3.3363653940014046,5125 "ee/spec/controllers/admin/licenses/usage_exports_controller_spec.rb": 2.8462842729986733,5126 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/delete_spec.rb": 3.021796615999847,5127 "ee/spec/requests/api/graphql/product_analytics/visualizations_spec.rb": 3.965311780000775,5128 "ee/spec/requests/api/graphql/mutations/quality_management/test_cases/create_spec.rb": 2.919758235999325,5129 "ee/spec/requests/api/graphql/remote_development/workspaces_by_include_actual_states_spec.rb": 3.536613883999962,5130 "ee/spec/requests/api/graphql/boards/board_list_query_spec.rb": 3.3523066220004694,5131 "ee/spec/requests/groups/service_accounts_controller_spec.rb": 2.6431849239997973,5132 "ee/spec/requests/registrations/groups_controller_spec.rb": 3.1256796849993407,5133 "ee/spec/requests/custom_roles/admin_vulnerability/request_spec.rb": 2.464144841000234,5134 "ee/spec/requests/api/graphql/mutations/gitlab_subscriptions/activate_spec.rb": 1.9778093900004023,5135 "ee/spec/requests/admin/audit_events_spec.rb": 2.622068996000962,5136 "ee/spec/controllers/groups/todos_controller_spec.rb": 4.328745675000391,5137 "ee/spec/requests/api/graphql/mutations/incident_management/oncall_schedule/create_spec.rb": 2.104706158999761,5138 "ee/spec/requests/api/internal/suggested_reviewers_spec.rb": 1.9858783400013635,5139 "ee/spec/requests/api/helm_packages_spec.rb": 2.0555610629999137,5140 "ee/spec/requests/projects/security/dast_configuration_controller_spec.rb": 2.417138397000599,5141 "ee/spec/controllers/projects/settings/ci_cd_controller_spec.rb": 2.3854105999998865,5142 "ee/spec/requests/api/graphql/mutations/boards/update_epic_user_preferences_spec.rb": 2.0762727109995467,5143 "ee/spec/controllers/ee/root_controller_spec.rb": 1.6474563040010253,5144 "ee/spec/requests/api/submodules_spec.rb": 1.6840758099988307,5145 "ee/spec/requests/api/graphql/boards/epic_lists/update_spec.rb": 2.2124816680006916,5146 "ee/spec/requests/api/ai/llm/git_command_spec.rb": 1.094086219000019,5147 "ee/spec/requests/projects/automations_controller_spec.rb": 1.361633623000671,5148 "ee/spec/requests/ee/confirmations_controller_spec.rb": 1.4959877599994797,5149 "ee/spec/controllers/groups/runners_controller_spec.rb": 1.4091373079991172,5150 "ee/spec/requests/api/graphql/project/repository_spec.rb": 1.2876648299989029,5151 "ee/spec/requests/api/ai/experimentation/vertex_ai_spec.rb": 0.9379294959999243,5152 "ee/spec/requests/api/graphql/vulnerabilities/scanner_spec.rb": 1.6296176860014384,5153 "ee/spec/requests/api/graphql/mutations/users/abuse/namespace_bans/destroy_spec.rb": 1.3790215209992311,5154 "ee/spec/requests/api/graphql/environments/deployments_spec.rb": 1.4745683220007777,5155 "ee/spec/requests/api/ci/pipelines_spec.rb": 1.4356039249996684,5156 "ee/spec/mailers/emails/in_product_marketing_spec.rb": 1.1973908500003745,5157 "ee/spec/requests/api/graphql/project/merge_requests_spec.rb": 1.4332787660005124,5158 "ee/spec/controllers/ee/uploads_controller_spec.rb": 1.2399979349993373,5159 "ee/spec/requests/groups/insights_controller_spec.rb": 0.9959062899997662,5160 "ee/spec/requests/admin/subscriptions_controller_spec.rb": 0.7880468709990964,5161 "ee/spec/requests/api/graphql/group/ci_cd_settings_spec.rb": 0.7369796760012832,5162 "ee/spec/controllers/countries_controller_spec.rb": 0.34139053500075534,5163 "ee/spec/requests/rack_attack_global_spec.rb": 0.6683245229996828,5164 "ee/spec/controllers/sitemap_controller_spec.rb": 0.2798692320011469,5165 "ee/spec/controllers/oauth/applications_controller_spec.rb": 0.43639246599923354,5166 "ee/spec/controllers/concerns/internal_redirect_spec.rb": 0.318247419001636445167}5168Knapsack global time execution for tests: 26m 07s5169Finished in 26 minutes 10 seconds (files took 1 minute 45.23 seconds to load)51702056 examples, 0 failures5171Randomized with seed 507245172[TEST PROF INFO] Time spent in factories: 11:08.569 (41.43% of total time)5173RSpec exited with 0.5174No examples to retry, congrats!5176Running after script...5177$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"5183$ tooling/bin/push_job_metrics || true5184[job-metrics] Pushing job metrics file for the CI/CD job.5185[job-metrics] Pushed 4 CI job metric entries to InfluxDB.5187Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy5189Uploading artifacts...5190WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 5191coverage/: found 5 matching artifact files and directories 5192crystalball/: found 2 matching artifact files and directories 5193deprecations/: found 6 matching artifact files and directories 5194knapsack/: found 4 matching artifact files and directories 5195rspec/: found 16 matching artifact files and directories 5196WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 5197log/*.log: found 23 matching artifact files and directories 5198WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5328359201/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com5199WARNING: Retrying... context=artifacts-uploader error=request redirected5200Uploading artifacts as "archive" to coordinator... 201 Created id=5328359201 responseStatus=201 Created token=64_X5y7y5201Uploading artifacts...5202rspec/rspec-*.xml: found 1 matching artifact files and directories 5203WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5328359201/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com5204WARNING: Retrying... context=artifacts-uploader error=request redirected5205Uploading artifacts as "junit" to coordinator... 201 Created id=5328359201 responseStatus=201 Created token=64_X5y7y5207ERROR: Failed to remove network for build5208Job succeeded