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

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-3.private.runners-manager.gitlab.com/gitlab.com/gitlab-org QuQPoFsC, system ID: s_fc023362bf2f3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14: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-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:2e09e9db92541ed81b1c00f1d5186f8c262d8b84e8d1755676ea4b25614f30c4 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:afc7bd7a60824044709543a6a700385e412d750d9ab4fc72b427e335e1d0f3ec ...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:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 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:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:d0675d033b87382205d08b598a004a99a1f6c4bd377cc86bb6df8957ce7dbb1c for redis:6.2-alpine with digest redis@sha256:740b5c973d1c9eea6e124a3905ba73d32354d0549f98ccc9e67af1af2a9ba478 ...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:c635f6eed733b5c5a06d4a28aff99748c4cbefca04af192e08f10d87387c6485 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:b3cc177faa2dc274a32b66866536932c39be8578316b364363735fc0b8e1f9cb ...26Starting service elasticsearch:7.17.6 ...27Pulling docker image elasticsearch:7.17.6 ...28Using docker image sha256:5fad10241ffd65d817ed0ddfaf6e87eee1f7dc2a7db33db1047835560ea71fda for elasticsearch:7.17.6 with digest elasticsearch@sha256:6c128de5d01c0c130a806022d6bd99b3e4c27a9af5bfc33b6b81861ae117d028 ...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-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...32Using docker image sha256:24a9e92645b17c878623efd51b7564f81e480bd281e94d7f33971082e0ca80e0 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-14: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-14@sha256:ca349d228348f199cb57f574476584f42aca338747393ed93a9032a0261afc4d ...34Running on runner-quqpofsc-project-278964-concurrent-0 via runner-quqpofsc-private-1691662437-f46626fc...36Fetching changes with git depth set to 20...37Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/38Created fresh repository.39remote: Enumerating objects: 145438, done. 40remote: Counting objects: 100% (145438/145438), done. 41remote: Compressing objects: 100% (96447/96447), done. 42remote: Total 145438 (delta 63547), reused 98646 (delta 43407), pack-reused 0 43Receiving objects: 100% (145438/145438), 119.87 MiB | 22.17 MiB/s, done.44Resolving deltas: 100% (63547/63547), done.46 * [new ref] refs/pipelines/962009091 -> refs/pipelines/96200909147Checking out 2a9b6857 as detached HEAD (ref is refs/merge-requests/128972/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 (4841630955)...56Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4841630955 responseStatus=200 OK token=64_jD7_G57Downloading artifacts for detect-tests (4841630974)...58Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4841630974 responseStatus=200 OK token=64_jD7_G59Downloading artifacts for retrieve-tests-metadata (4841630985)...60Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4841630985 responseStatus=200 OK token=64_jD7_G61Downloading artifacts for setup-test-env (4841630964)...62Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4841630964 responseStatus=200 OK token=64_jD7_G64Using docker image sha256:24a9e92645b17c878623efd51b7564f81e480bd281e94d7f33971082e0ca80e0 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-14: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-14@sha256:ca349d228348f199cb57f574476584f42aca338747393ed93a9032a0261afc4d ...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.120$ source ./scripts/rspec_helpers.sh121$ run_timed_command "gem install knapsack --no-document"122$ gem install knapsack --no-document123Successfully installed knapsack-4.0.01241 gem installed125==> 'gem install knapsack --no-document' succeeded in 1 seconds.126$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"131$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"132$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"133$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house"134SKIP_FLAKY_TESTS_AUTOMATICALLY: 135RETRY_FAILED_TESTS_IN_NEW_PROCESS: true136KNAPSACK_GENERATE_REPORT: true137FLAKY_RSPEC_GENERATE_REPORT: true138KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb139KNAPSACK_LOG_LEVEL: debug140KNAPSACK_REPORT_PATH: knapsack/rspec-ee_integration_pg14_4_6_report.json141FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json142FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_integration_pg14_4_6_report.json143NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_integration_pg14_4_6_report.json144RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-4841631428.txt145CRYSTALBALL: 146RSPEC_TESTS_MAPPING_ENABLED: 147RSPEC_TESTS_FILTER_FILE: 148Shell set options (set -o) enabled:149braceexpand on150hashall on151interactive-comments on152pipefail on153Knapsack report generator started!154/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!155/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!156/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!157/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!158/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!159/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!160/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!161/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!162/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!163/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!164/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!165/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!166/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!167/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!168/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!169/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!170/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!171/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!172/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!173/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!174/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!175/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!176/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!177/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!178/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!179/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!180/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!181/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!182/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!183/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!184/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!185/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!186/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!187/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!188/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!189/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!190/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:12: 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/reconcile/input/agent_infos_observer.rb:15: 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/reconcile/input/params_extractor.rb:14: 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/reconcile/input/params_extractor.rb:16: 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/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!195/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!196/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!197/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!198/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!199/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!200/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!201/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!202Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true}203Test environment set up in 0.584519911 seconds204API::VisualReviewDiscussions205 when project is public206 behaves like accepting request without authentication207 behaves like handling merge request feedback208 creates a new note209 tracks a visual review feedback event210 the API response211 responds with a status 201 Created212 returns the persisted note body213 returns the name of the Visual Review Bot assigned as the author214 returns the id of the merge request as the parent noteable_id215 returns a current time stamp instead of the provided one216 with no message body217 returns a 400 bad request error if body not given218 with an invalid project ID219 does not create a new note220 the API response221 responds with a status 404222 with an invalid merge request IID223 does not create a new note224 the API response225 responds with a status 404226 when anonymous_visual_review_feedback feature flag is disabled227 does not create a new note228 the API response229 responds 403230 returns error messaging specifying that the feature is disabled231 behaves like accepting request with authentication232 behaves like handling merge request feedback233 creates a new note234 tracks a visual review feedback event235 the API response236 responds with a status 201 Created237 returns the persisted note body including user details238 returns the name of the Visual Review Bot assigned as the author239 returns the id of the merge request as the parent noteable_id240 returns a current time stamp instead of the provided one241 with no message body242 returns a 400 bad request error if body not given243 with an invalid project ID244 does not create a new note245 the API response246 responds with a status 404247 with an invalid merge request IID248 does not create a new note249 the API response250 responds with a status 404251 when anonymous_visual_review_feedback feature flag is disabled252 does not create a new note253 the API response254 responds 403255 returns error messaging specifying that the feature is disabled256 when merge request discussion is locked and project is public257 without authentication258 rejects note creation259 with visual review bot authentication260 rejects note creation261 when project is archived262 without authentication263 rejects note creation264 with visual review bot authentication265 rejects note creation266 when project is private267 behaves like accepting request with authentication268 behaves like handling merge request feedback269 creates a new note270 tracks a visual review feedback event271 the API response272 responds with a status 201 Created273 returns the persisted note body including user details274 returns the name of the Visual Review Bot assigned as the author275 returns the id of the merge request as the parent noteable_id276 returns a current time stamp instead of the provided one277 with no message body278 returns a 400 bad request error if body not given279 with an invalid project ID280 does not create a new note281 the API response282 responds with a status 404283 with an invalid merge request IID284 does not create a new note285 the API response286 responds with a status 404287 when anonymous_visual_review_feedback feature flag is disabled288 does not create a new note289 the API response290 responds 403291 returns error messaging specifying that the feature is disabled292 behaves like rejecting request without authentication293 returns a 404 project not found294 and authenticated user has no project access295 returns a 404 project not found296 when project is internal297 behaves like accepting request with authentication298 behaves like handling merge request feedback299 creates a new note300 tracks a visual review feedback event301 the API response302 responds with a status 201 Created303 returns the persisted note body including user details304 returns the name of the Visual Review Bot assigned as the author305 returns the id of the merge request as the parent noteable_id306 returns a current time stamp instead of the provided one307 with no message body308 returns a 400 bad request error if body not given309 with an invalid project ID310 does not create a new note311 the API response312 responds with a status 404313 with an invalid merge request IID314 does not create a new note315 the API response316 responds with a status 404317 when anonymous_visual_review_feedback feature flag is disabled318 does not create a new note319 the API response320 responds 403321 returns error messaging specifying that the feature is disabled322 behaves like rejecting request without authentication323 returns a 404 project not found324 and authenticated user has no project access325 behaves like handling merge request feedback326 creates a new note327 tracks a visual review feedback event328 the API response329 responds with a status 201 Created330 returns the persisted note body including user details331 returns the name of the Visual Review Bot assigned as the author332 returns the id of the merge request as the parent noteable_id333 returns a current time stamp instead of the provided one334 with no message body335 returns a 400 bad request error if body not given336 with an invalid project ID337 does not create a new note338 the API response339 responds with a status 404340 with an invalid merge request IID341 does not create a new note342 the API response343 responds with a status 404344 when anonymous_visual_review_feedback feature flag is disabled345 does not create a new note346 the API response347 responds 403348 returns error messaging specifying that the feature is disabled349SearchController350 GET /search351 when elasticsearch is enabled352 for issues scope353 behaves like an efficient database result354 avoids N+1 database queries355 for merge_request scope356 behaves like an efficient database result357 avoids N+1 database queries358 for project scope359 behaves like an efficient database result360 avoids N+1 database queries361 for notes scope362 behaves like an efficient database result363 avoids N+1 database queries364 for milestones scope365 behaves like an efficient database result366 avoids N+1 database queries367 for users scope368 behaves like an efficient database result369 avoids N+1 database queries370 for epics scope371 behaves like an efficient database result372 avoids N+1 database queries373 for blobs scope374 avoids N+1 database queries375 does not raise an exeption when blob.path is nil376 for commits scope377 avoids N+1 database queries378 search index integrity379 when project is present and group is not present380 queues the project integrity worker381 when project is not present and group is not present382 does nothing383 when project is not present and group is present384 queues the namespace integrity worker which then schedules the project integrity worker385 when project is present and group is present386 queues the project integrity worker387 when search results are returned388 does nothing389 when search_index_integrity feature flag is not enabled390 does nothing391 when scope is not blobs392 does nothing393API::Scim::GroupScim394 # order random395 when user with an email extern_uid396 behaves like SCIM API endpoints397 GET api/scim/v2/groups/:group/Users398 responds with 404 for a non existent group399 responds with 404 for a group with no SAML SSO configuration400 responds with paginated users when there is no filter401 responds with an error for unsupported filters402 behaves like SCIM token authenticated403 without token auth404 responds with 401405 when existing user matches filter406 responds with 200407 sets default values as required by the specification408 when no user matches filter409 responds with 200410 GET api/scim/v2/groups/:group/Users/:id411 responds with 404 for a non existent group412 responds with 404 for a group with no SAML SSO configuration413 responds with 404 if there is no user414 behaves like SCIM token authenticated415 without token auth416 responds with 401417 when existing user418 responds with 200419 POST api/scim/v2/groups/:group/Users420 responds with 404 for a non existent group421 responds with 404 for a group with no SAML SSO configuration422 behaves like SCIM token authenticated423 without token auth424 responds with 401425 when a provisioning error occurs426 behaves like filtered params in errors427 does not expose the password in error response428 does not expose the access token in error response429 without an existing user430 responds with 201431 has the user external ID432 has the email433 created the user434 created the member with access level set in saml_provider435 created the identity436 marks the user as provisioned by the group437 when existing user438 responds with 201439 has the user external ID440 does not mark the user as provisioned441 behaves like storing arguments in the application context for the API442 places the expected params in the application context443 with allowed domain setting switched on444 with different domains445 created the user446 did not create member447 with invalid user params448 returns user error449 with matching domains450 created the user451 created the member with access level set in saml_provider452 PATCH api/scim/v2/groups/:group/Users/:id453 responds with 404 for a non existent group454 responds with 404 for a group with no SAML SSO configuration455 responds with 404 if there is no user456 deactivates the scim_identity457 behaves like SCIM token authenticated458 without token auth459 responds with 401460 with owner461 responds with 412462 returns the last group owner error463 does not deactivate the identity464 when reprovisioning user465 activates the scim_identity466 does not call reprovision service when identity is already active467 when existing user468 with extern UID469 responds with 204470 updates the extern_uid471 with user attributes472 with name473 responds with 204474 does not update the name475 responds with an empty response476 with email477 does not update the email478 responds with 204479 with userName480 responds with 204481 does not update the username482 responds with an empty response483 DELETE /scim/v2/groups/:group/Users/:id484 responds with 404 if there is no user485 responds with 404 for a non existent group486 responds with 404 for a group with no SAML SSO configuration487 when existing user488 responds with 204489 responds with an empty response490 deactivates the identity491 when the user is not a group member492 deactivates the identity493 with owner494 responds with 412495 returns the last group owner error496 does not deactivate the identity497 when user with an alphanumeric extern_uid498 behaves like SCIM API endpoints499 GET api/scim/v2/groups/:group/Users500 responds with 404 for a non existent group501 responds with 404 for a group with no SAML SSO configuration502 responds with paginated users when there is no filter503 responds with an error for unsupported filters504 behaves like SCIM token authenticated505 without token auth506 responds with 401507 when existing user matches filter508 responds with 200509 sets default values as required by the specification510 when no user matches filter511 responds with 200512 GET api/scim/v2/groups/:group/Users/:id513 responds with 404 for a non existent group514 responds with 404 for a group with no SAML SSO configuration515 responds with 404 if there is no user516 behaves like SCIM token authenticated517 without token auth518 responds with 401519 when existing user520 responds with 200521 POST api/scim/v2/groups/:group/Users522 responds with 404 for a non existent group523 responds with 404 for a group with no SAML SSO configuration524 behaves like SCIM token authenticated525 without token auth526 responds with 401527 when a provisioning error occurs528 behaves like filtered params in errors529 does not expose the password in error response530 does not expose the access token in error response531 without an existing user532 responds with 201533 has the user external ID534 has the email535 created the user536 created the member with access level set in saml_provider537 created the identity538 marks the user as provisioned by the group539 when existing user540 responds with 201541 has the user external ID542 does not mark the user as provisioned543 behaves like storing arguments in the application context for the API544 places the expected params in the application context545 with allowed domain setting switched on546 with different domains547 created the user548 did not create member549 with invalid user params550 returns user error551 with matching domains552 created the user553 created the member with access level set in saml_provider554 PATCH api/scim/v2/groups/:group/Users/:id555 responds with 404 for a non existent group556 responds with 404 for a group with no SAML SSO configuration557 responds with 404 if there is no user558 deactivates the scim_identity559 behaves like SCIM token authenticated560 without token auth561 responds with 401562 with owner563 responds with 412564 returns the last group owner error565 does not deactivate the identity566 when reprovisioning user567 activates the scim_identity568 does not call reprovision service when identity is already active569 when existing user570 with extern UID571 responds with 204572 updates the extern_uid573 with user attributes574 with name575 responds with 204576 does not update the name577 responds with an empty response578 with email579 does not update the email580 responds with 204581 with userName582 responds with 204583 does not update the username584 responds with an empty response585 DELETE /scim/v2/groups/:group/Users/:id586 responds with 404 if there is no user587 responds with 404 for a non existent group588 responds with 404 for a group with no SAML SSO configuration589 when existing user590 responds with 204591 responds with an empty response592 deactivates the identity593 when the user is not a group member594 deactivates the identity595 with owner596 responds with 412597 returns the last group owner error598 does not deactivate the identity599OperationsController600 GET #index601 format html602 renders index with 200 status code603 behaves like unlicensed604 renders 404605 with an anonymous user606 redirects to sign-in page607 format json608 behaves like unlicensed609 renders 404610 with added projects611 returns a list of added projects612 returns as many projects as are in the user's dashboard613 returns a list of added projects614 without sufficient access level615 behaves like empty project list616 returns an empty list617 without projects618 behaves like empty project list619 returns an empty list620 with an anonymous user621 returns unauthorized response622 GET #environments623 format html624 renders the view625 behaves like unlicensed626 renders 404627 with an anonymous user628 redirects to sign-in page629 format json630 behaves like unlicensed631 renders 404632 with an anonymous user633 returns unauthorized response634 with an authenticated user without sufficient access_level635 returns an empty project list636 with an authenticated developer637 returns an empty project list638 sets the polling interval header639 returns an empty project list when the project is not in the developer's dashboard640 with a project in the dashboard641 returns a project without an environment642 returns one project with one environment643 returns multiple projects and environments644 does not make N+1 queries with multiple environments645 does not return environments that would be grouped into a folder646 does not return environments that would be grouped into a folder even when there is only a single environment647 returns an environment not in a folder648 returns the last deployment for an environment649 returns the last deployment's deployable650 returns a failed deployment651 does not return a project for which the operations dashboard feature is unavailable652 returns seven projects when some projects do not have the dashboard feature available653 returns a maximum of three environments for a project654 returns a maximum of three environments for multiple projects655 with environments pagination656 pagination behaviour657 with `per_page`658 behaves like environments pagination659 is expected to include pagination headers660 with `page=1`661 behaves like environments pagination662 is expected to include pagination headers663 with `page=2`664 behaves like environments pagination665 is expected to include pagination headers666 N+1 queries667 avoids N+1 database queries668 with a pipeline669 returns the last pipeline for an environment670 returns the last pipeline details671 returns an upstream pipeline672 returns a downstream pipeline673 POST #create674 format json675 behaves like unlicensed676 renders 404677 without added projects678 adds projects to the dashboard679 cannot add a project twice680 does not add invalid project ids681 with added project682 does not add already added project683 with an anonymous user684 redirects to sign-in page685 DELETE #destroy686 behaves like unlicensed687 renders 404688 with added projects689 removes a project successfully690 without projects691 cannot remove invalid project692 with an anonymous user693 redirects to sign-in page694Projects::IssuesController695 licensed features696 licensed697 #update698 sets issue weight and epic699 #new700 when a vulnerability_id is provided701 sets the vulnerability_id702 sets the confidential flag to true by default703 default templates704 when a template has been set via project settings705 does not select a default template706 when a template has not been set via project settings707 selects a default template708 #create709 sets issue weight and epic710 when created from a vulnerability711 overwrites the default fields712 does not show an error message713 creates vulnerability feedback714 behaves like creates vulnerability issue link715 links the issue to the vulnerability716 when vulnerability already has a linked issue717 shows an error message718 unlicensed719 #update720 does not set issue weight721 #new722 when a vulnerability_id is provided723 does not build issue from a vulnerability724 #create725 does not set issue weight ane epic726 GET #show727 when issue is of type objective728 show action729 behaves like redirects to show work item page730 redirects to work item page using iid731 edit action732 behaves like redirects to show work item page733 redirects to work item page using iid734 update action735 behaves like redirects to show work item page736 redirects to work item page using iid737 when issue is of type key_result738 show action739 behaves like redirects to show work item page740 redirects to work item page using iid741 edit action742 behaves like redirects to show work item page743 redirects to work item page using iid744 update action745 behaves like redirects to show work item page746 redirects to work item page using iid747 GET #discussions748 with a related system note749 when authenticated750 behaves like user can see confidential issue751 when a user is a reporter752 displays related notes753 behaves like user can see confidential issue754 when a user is a developer755 displays related notes756 behaves like user can see confidential issue757 when a user is a maintainer758 displays related notes759 behaves like user cannot see confidential issue760 when a user is a guest761 redacts note related to a confidential issue762 when unauthenticated763 behaves like user cannot see confidential issue764 when a user is a 0765 redacts note related to a confidential issue766 PUT #update767 when changing the assignee768 exposes expected attributes769 DescriptionDiffActions770 when issuable is an issue type issue771 behaves like DescriptionDiffActions773 when license is available774 behaves like description diff actions775 GET description_diff776 returns the diff with the previous version777 returns the diff with the previous version of the specified start_version_id778 when description version is from another issuable779 returns 404780 when start_version_id is from another issuable781 returns 404782 when start_version_id is deleted783 returns 404784 when description version is deleted785 returns 404786 DELETE description_diff787 returns 200788 when start_version_id is present789 returns 200790 when version is already deleted791 returns 404792 when user cannot admin issuable793 returns 404794 when features are available through Registration Features795 behaves like description diff actions796 GET description_diff797 returns the diff with the previous version798 returns the diff with the previous version of the specified start_version_id799 when description version is from another issuable800 returns 404801 when start_version_id is from another issuable802 returns 404803 when start_version_id is deleted804 returns 404805 when description version is deleted806 returns 404807 DELETE description_diff808 returns 200809 when start_version_id is present810 returns 200811 when version is already deleted812 returns 404813 when user cannot admin issuable814 returns 404815 when license is not available816 GET description_diff817 returns 404818 DELETE description_diff819 returns 404820 when issuable is a task/work_item821 behaves like DescriptionDiffActions823 when license is available824 behaves like description diff actions825 GET description_diff826 returns the diff with the previous version827 returns the diff with the previous version of the specified start_version_id828 when description version is from another issuable829 returns 404830 when start_version_id is from another issuable831 returns 404832 when start_version_id is deleted833 returns 404834 when description version is deleted835 returns 404836 DELETE description_diff837 returns 200838 when start_version_id is present839 returns 200840 when version is already deleted841 returns 404842 when user cannot admin issuable843 returns 404844 when features are available through Registration Features845 behaves like description diff actions846 GET description_diff847 returns the diff with the previous version848 returns the diff with the previous version of the specified start_version_id849 when description version is from another issuable850 returns 404851 when start_version_id is from another issuable852 returns 404853 when start_version_id is deleted854 returns 404855 when description version is deleted856 returns 404857 DELETE description_diff858 returns 200859 when start_version_id is present860 returns 200861 when version is already deleted862 returns 404863 when user cannot admin issuable864 returns 404865 when license is not available866 GET description_diff867 returns 404868 DELETE description_diff869 returns 404870API::ProjectApprovalSettings871 GET /projects/:id/approval_settings872 when the request is correct873 matches the response schema874 when license is missing875 returns 403 error876 when target_branch is specified877 filters the rules returned by target branch878 private group filtering879 excludes private groups if user has no access880 includes private groups if user has access881 report_approver rules882 includes report_approver rules883 when project is archived884 when user has normal permissions885 returns 403886 when user has project admin permissions887 allows access888 POST /projects/:id/approval_settings/rules889 behaves like an API endpoint for creating project approval rule890 behaves like a restricted project approval rule API endpoint891 when admin_merge_request_approvers_rules license feature is disabled892 when disable_overriding_approvers_per_merge_request app setting is false893 behaves like a user with access894 returns 201 status895 when disable_overriding_approvers_per_merge_request app setting is true896 behaves like a user with access897 returns 201 status898 when admin_merge_request_approvers_rules license feature is enabled899 when disable_overriding_approvers_per_merge_request app setting is false900 behaves like a user with access901 returns 201 status902 when disable_overriding_approvers_per_merge_request app setting is true903 behaves like a user without access904 returns 403905 when user is an admin906 behaves like a user with access907 returns 201 status908 when missing parameters909 returns 400 status910 when user is without access911 behaves like a user without access912 returns 403913 when the request is correct914 changes settings properly915 behaves like a user with access916 returns 201 status917 when protected_branch_ids param is present918 creates approval rule associated to specified protected branches919 when applies_to_all_protected_branches param is present920 returns a list of project protected branches in the response921 with rule_type set to report_approver922 without report_type923 returns a error http status924 when creating a approval rule for each report_type925 rule_name: "License-Check", report_type: :license_scanning926 specifies `report_rule` and `report_type`927 rule_name: "Coverage-Check", report_type: :code_coverage928 specifies `report_rule` and `report_type`929 with users or groups params930 with a user931 returns a user932 with users_ids933 returns a user934 when both users and user_ids are set935 returns a user from user_ids936 with a group937 returns a group938 with group_ids939 returns a group940 when both groups and group_ids are set941 returns a group from group_ids942 with valid scanners943 returns 201 status944 with valid severity_levels945 returns 201 status946 with username947 returns 201 status948 with vulnerabilities_allowed949 returns 201 status950 PUT /projects/:id/approval_settings/:approval_rule_id951 behaves like an API endpoint for updating project approval rule952 behaves like a restricted project approval rule API endpoint953 when admin_merge_request_approvers_rules license feature is disabled954 when disable_overriding_approvers_per_merge_request app setting is false955 behaves like a user with access956 sets approvers957 when applies_to_all_protected_branches param is present958 returns a list of project protected branches in the response959 when protected_branch_ids param is present960 associates approval rule to specified protected branches961 with users or groups params962 with a user963 sets a user964 with users_ids965 sets a user966 when both users and user_ids are set967 sets a user from user_ids968 with a group969 sets a group970 with group_ids971 sets a group972 when both groups and group_ids are set973 sets a group from group_ids974 with valid scanners975 returns 200 status976 with nil scanners977 returns 200 status978 when scanners is NULL in the database979 returns 200 status980 with valid severity_levels981 returns 200 status982 when approver already exists983 when sending json data984 removes all approvers if empty params are given985 with vulnerabilities_allowed986 returns 200 status987 when disable_overriding_approvers_per_merge_request app setting is true988 behaves like a user with access989 sets approvers990 when applies_to_all_protected_branches param is present991 returns a list of project protected branches in the response992 when protected_branch_ids param is present993 associates approval rule to specified protected branches994 with users or groups params995 with a user996 sets a user997 with users_ids998 sets a user999 when both users and user_ids are set1000 sets a user from user_ids1001 with a group1002 sets a group1003 with group_ids1004 sets a group1005 when both groups and group_ids are set1006 sets a group from group_ids1007 with valid scanners1008 returns 200 status1009 with nil scanners1010 returns 200 status1011 when scanners is NULL in the database1012 returns 200 status1013 with valid severity_levels1014 returns 200 status1015 when approver already exists1016 when sending json data1017 removes all approvers if empty params are given1018 with vulnerabilities_allowed1019 returns 200 status1020 when admin_merge_request_approvers_rules license feature is enabled1021 when disable_overriding_approvers_per_merge_request app setting is false1022 behaves like a user with access1023 sets approvers1024 when applies_to_all_protected_branches param is present1025 returns a list of project protected branches in the response1026 when protected_branch_ids param is present1027 associates approval rule to specified protected branches1028 with users or groups params1029 with a user1030 sets a user1031 with users_ids1032 sets a user1033 when both users and user_ids are set1034 sets a user from user_ids1035 with a group1036 sets a group1037 with group_ids1038 sets a group1039 when both groups and group_ids are set1040 sets a group from group_ids1041 with valid scanners1042 returns 200 status1043 with nil scanners1044 returns 200 status1045 when scanners is NULL in the database1046 returns 200 status1047 with valid severity_levels1048 returns 200 status1049 when approver already exists1050 when sending json data1051 removes all approvers if empty params are given1052 with vulnerabilities_allowed1053 returns 200 status1054 when disable_overriding_approvers_per_merge_request app setting is true1055 behaves like a user without access1056 returns 4031057 when user is an admin1058 behaves like a user with access1059 sets approvers1060 when applies_to_all_protected_branches param is present1061 returns a list of project protected branches in the response1062 when protected_branch_ids param is present1063 associates approval rule to specified protected branches1064 with users or groups params1065 with a user1066 sets a user1067 with users_ids1068 sets a user1069 when both users and user_ids are set1070 sets a user from user_ids1071 with a group1072 sets a group1073 with group_ids1074 sets a group1075 when both groups and group_ids are set1076 sets a group from group_ids1077 with valid scanners1078 returns 200 status1079 with nil scanners1080 returns 200 status1081 when scanners is NULL in the database1082 returns 200 status1083 with valid severity_levels1084 returns 200 status1085 when approver already exists1086 when sending json data1087 removes all approvers if empty params are given1088 with vulnerabilities_allowed1089 returns 200 status1090 as a project admin1091 behaves like a user with access1092 sets approvers1093 when applies_to_all_protected_branches param is present1094 returns a list of project protected branches in the response1095 when protected_branch_ids param is present1096 associates approval rule to specified protected branches1097 with users or groups params1098 with a user1099 sets a user1100 with users_ids1101 sets a user1102 when both users and user_ids are set1103 sets a user from user_ids1104 with a group1105 sets a group1106 with group_ids1107 sets a group1108 when both groups and group_ids are set1109 sets a group from group_ids1110 with valid scanners1111 returns 200 status1112 with nil scanners1113 returns 200 status1114 when scanners is NULL in the database1115 returns 200 status1116 with valid severity_levels1117 returns 200 status1118 when approver already exists1119 when sending json data1120 removes all approvers if empty params are given1121 with vulnerabilities_allowed1122 returns 200 status1123 as a global admin1124 behaves like a user with access1125 sets approvers1126 when applies_to_all_protected_branches param is present1127 returns a list of project protected branches in the response1128 when protected_branch_ids param is present1129 associates approval rule to specified protected branches1130 with users or groups params1131 with a user1132 sets a user1133 with users_ids1134 sets a user1135 when both users and user_ids are set1136 sets a user from user_ids1137 with a group1138 sets a group1139 with group_ids1140 sets a group1141 when both groups and group_ids are set1142 sets a group from group_ids1143 with valid scanners1144 returns 200 status1145 with nil scanners1146 returns 200 status1147 when scanners is NULL in the database1148 returns 200 status1149 with valid severity_levels1150 returns 200 status1151 when approver already exists1152 when sending json data1153 removes all approvers if empty params are given1154 with vulnerabilities_allowed1155 returns 200 status1156 as a random user1157 behaves like a user without access1158 returns 4031159 DELETE /projects/:id/approval_settings/rules/:approval_rule_id1160 behaves like an API endpoint for deleting project approval rule1161 behaves like a user with access1162 destroys1163 behaves like a restricted project approval rule API endpoint1164 when admin_merge_request_approvers_rules license feature is disabled1165 when disable_overriding_approvers_per_merge_request app setting is false1166 behaves like a user with access1167 destroys1168 when disable_overriding_approvers_per_merge_request app setting is true1169 behaves like a user with access1170 destroys1171 when admin_merge_request_approvers_rules license feature is enabled1172 when disable_overriding_approvers_per_merge_request app setting is false1173 behaves like a user with access1174 destroys1175 when disable_overriding_approvers_per_merge_request app setting is true1176 behaves like a user without access1177 returns 4031178 when user is an admin1179 behaves like a user with access1180 destroys1181 when approval rule not found1182 returns not found1183 when user is not eligible to delete1184 behaves like a user without access1185 returns 4031186API::VulnerabilityFindings1187 GET /projects/:id/vulnerability_findings1188 with an authorized user with proper permissions1189 returns all non-dismissed vulnerabilities1190 using different finders1191 when the `Security::PureFindingsFinder` is not available1192 uses the `Security::FindingsFinder`1193 when the `Security::PureFindingsFinder` is available1194 uses the `Security::FindingsFinder`1195 filtering1196 returns vulnerabilities with sast report_type1197 returns vulnerabilities with dependency_scanning report_type1198 returns a "bad request" response for an unknown report type1199 returns dismissed vulnerabilities with `all` scope1200 returns vulnerabilities with low severity1201 returns a "bad request" response for an unknown severity value1202 returns vulnerabilities with high confidence1203 returns a "bad request" response for an unknown confidence value1204 when pipeline_id is supplied1205 returns vulnerabilities from supplied pipeline1206 pipeline has no reports1207 returns empty results1208 with unknown pipeline1209 returns empty results1210 when security dashboard feature is not available1211 responds with 403 Forbidden1212 permissions1213 is expected to be allowed for :admin1214 is expected to be allowed for :owner1215 is expected to be allowed for :maintainer1216 is expected to be allowed for :developer1217 is expected to be allowed for :auditor1218 is expected to be denied for :reporter1219 is expected to be denied for :guest1220 is expected to be denied for :anonymous1221Notify1222 for a project1223 for merge requests1224 that are new with approver1225 contains the approvers list1226 that are approved1227 is sent as the last approver1228 has the correct subject1229 contains the new status1230 contains a link to the merge request1231 contains the names of all of the approvers1232 contains the names of all assignees1233 behaves like a multiple recipients email1234 is sent to the given recipient1235 behaves like an answer to an existing thread with reply-by-email enabled1236 has X-GitLab-Project headers1237 has X-GitLab-*-ID header1238 has X-GitLab-*-IID header if model has iid defined1239 has X-GitLab-Project headers1240 has X-GitLab-*-ID header1241 has X-GitLab-*-IID header if model has iid defined1242 has the characteristics of a threaded reply1243 when reply-by-email is enabled with incoming address with %{key}1244 has a Reply-To header1245 when reply-by-email is enabled with incoming address without %{key}1246 has X-GitLab-Project headers1247 has X-GitLab-*-ID header1248 has X-GitLab-*-IID header if model has iid defined1249 has the characteristics of a threaded reply1250 has a Reply-To header1251 behaves like it should show Gmail Actions View Merge request link1252 is expected to have body including "View Merge request"1253 behaves like it should have Gmail Actions links1254 is expected to have body including "ViewAction"1255 behaves like an unsubscribeable thread1256 has a List-Unsubscribe header in the correct format, and a body link1257 behaves like an unsubscribeable thread with incoming address without %{key}1258 has a List-Unsubscribe header in the correct format, and a body link1259 when merge request has no assignee1260 does not show the assignee1261 that are unapproved1262 is sent as the last unapprover1263 has the correct subject1264 contains the new status1265 contains a link to the merge request1266 contains the names of all of the approvers1267 contains the names of all assignees1268 behaves like a multiple recipients email1269 is sent to the given recipient1270 behaves like an answer to an existing thread with reply-by-email enabled1271 has X-GitLab-Project headers1272 has X-GitLab-*-ID header1273 has X-GitLab-*-IID header if model has iid defined1274 has X-GitLab-Project headers1275 has X-GitLab-*-ID header1276 has X-GitLab-*-IID header if model has iid defined1277 has the characteristics of a threaded reply1278 when reply-by-email is enabled with incoming address with %{key}1279 has a Reply-To header1280 when reply-by-email is enabled with incoming address without %{key}1281 has X-GitLab-Project headers1282 has X-GitLab-*-ID header1283 has X-GitLab-*-IID header if model has iid defined1284 has the characteristics of a threaded reply1285 has a Reply-To header1286 behaves like it should show Gmail Actions View Merge request link1287 is expected to have body including "View Merge request"1288 behaves like it should have Gmail Actions links1289 is expected to have body including "ViewAction"1290 behaves like an unsubscribeable thread1291 has a List-Unsubscribe header in the correct format, and a body link1292 behaves like an unsubscribeable thread with incoming address without %{key}1293 has a List-Unsubscribe header in the correct format, and a body link1294 for merge requests without assignee1295 that are unapproved1296 contains the new status1297 for merge request with reviewer1298 merge request diff summary1299 when merge_request_diff_llm_summary exists1300 when SummarizeDiffService is disabled1301 does not include diff summary1302 when SummarizeDiffService is enabled1303 includes diff summary1304 when merge_request_diff_llm_summary is empty1305 when SummarizeDiffService is enabled1306 does not include diff summary1307 for a group1308 for epics1309 that are new1310 has the correct subject and body1311 contains a link to epic author1312 contains a link to the epic1313 behaves like an epic email starting a new thread with reply-by-email enabled1314 has the characteristics of a threaded email1315 when reply-by-email is enabled with incoming address with %{key}1316 has a Reply-To header1317 when reply-by-email is enabled with incoming address without %{key}1318 has the characteristics of a threaded email1319 has a Reply-To header1320 behaves like it should show Gmail Actions View Epic link1321 is expected to have body including "View Epic"1322 behaves like it should have Gmail Actions links1323 is expected to have body including "ViewAction"1324 behaves like an unsubscribeable thread1325 has a List-Unsubscribe header in the correct format, and a body link1326 behaves like an unsubscribeable thread with incoming address without %{key}1327 has a List-Unsubscribe header in the correct format, and a body link1328 behaves like having group identification headers1329 has specific group headers1330 got deleted before notification1331 does not send email1332 that changed status1333 behaves like epic notifications with reply1334 has the characteristics of a threaded reply1335 has a Reply-To header1336 has the correct subject and body1337 behaves like having group identification headers1338 has specific group headers1339 behaves like it should show Gmail Actions View Epic link1340 is expected to have body including "View Epic"1341 behaves like it should have Gmail Actions links1342 is expected to have body including "ViewAction"1343 behaves like an unsubscribeable thread1344 has a List-Unsubscribe header in the correct format, and a body link1345 behaves like an unsubscribeable thread with incoming address without %{key}1346 has a List-Unsubscribe header in the correct format, and a body link1347 for epic notes1348 behaves like epic notifications with reply1349 has the characteristics of a threaded reply1350 has a Reply-To header1351 has the correct subject and body1352 behaves like having group identification headers1353 has specific group headers1354 behaves like it should show Gmail Actions View Epic link1355 is expected to have body including "View Epic"1356 behaves like it should have Gmail Actions links1357 is expected to have body including "ViewAction"1358 behaves like an unsubscribeable thread1359 has a List-Unsubscribe header in the correct format, and a body link1360 behaves like an unsubscribeable thread with incoming address without %{key}1361 has a List-Unsubscribe header in the correct format, and a body link1362 behaves like a note email1363 is sent to the given recipient as the author1364 contains the message from the note1365 contains a link to note author1366 behaves like it should have Gmail Actions links1367 is expected to have body including "ViewAction"1368 for compliance frameworks1369 example at ./ee/spec/mailers/notify_spec.rb:3561370 is expected to have body including "Your Compliance Frameworks CSV export for the group"1371 behaves like an email sent from GitLab1372 has the characteristics of an email sent from GitLab1373 mirror was hard failed1374 has the correct subject and body1375 behaves like an email sent from GitLab1376 has the characteristics of an email sent from GitLab1377 behaves like it should not have Gmail Actions links1378 is expected not to have body including "ViewAction"1379 behaves like a user cannot unsubscribe through footer link1380 does not have a List-Unsubscribe header or a body link1381 mirror was disabled1382 has the correct subject and body1383 behaves like an email sent from GitLab1384 has the characteristics of an email sent from GitLab1385 behaves like it should not have Gmail Actions links1386 is expected not to have body including "ViewAction"1387 behaves like a user cannot unsubscribe through footer link1388 does not have a List-Unsubscribe header or a body link1389 user was deleted1390 does not send email1391 mirror user changed1392 has the correct subject and body1393 behaves like an email sent from GitLab1394 has the characteristics of an email sent from GitLab1395 behaves like it should not have Gmail Actions links1396 is expected not to have body including "ViewAction"1397 behaves like a user cannot unsubscribe through footer link1398 does not have a List-Unsubscribe header or a body link1399 new user was created via saml1400 delivers mail to user email1401 contains all the useful information1402 behaves like an email sent from GitLab1403 has the characteristics of an email sent from GitLab1404 behaves like it should not have Gmail Actions links1405 is expected not to have body including "ViewAction"1406 behaves like a user cannot unsubscribe through footer link1407 does not have a List-Unsubscribe header or a body link1408 behaves like appearance header and footer enabled1409 contains header and footer1410 behaves like appearance header and footer not enabled1411 does not contain header and footer1412 merge request reviews1413 includes review summary1414API::MergeRequestApprovals1415 GET :id/merge_requests/:merge_request_iid/approvals1416 retrieves the approval status1417 lists unapproved rule names1418 when private group approver1419 hides private group1420 when admin1421 shows all approver groups1422 when approvers are set to zero1423 returns a 2001424 when merge_status is cannot_be_merged_rechecking1425 returns `checking`1426 GET :id/merge_requests/:merge_request_iid/approval_settings1427 retrieves the approval rules details1428 behaves like an API endpoint for getting merge request approval state1429 when source rule is present1430 returns source rule details1431 when rule has groups1432 when user can view a group1433 includes group1434 when user cannot view a group included in groups1435 excludes private groups1436 when rule has a section1437 exposes the value of section when set1438 when target_branch is specified1439 filters the rules returned by target branch1440 GET :id/merge_requests/:merge_request_iid/approval_state1441 retrieves the approval state details1442 behaves like an API endpoint for getting merge request approval state1443 when source rule is present1444 returns source rule details1445 when rule has groups1446 when user can view a group1447 includes group1448 when user cannot view a group included in groups1449 excludes private groups1450 POST :id/merge_requests/:merge_request_iid/approvals1451 behaves like POST request permissions for admin mode1452 behaves like when admin1453 behaves like makes request1454 returns1455 behaves like makes request1456 returns1457 behaves like when user1458 returns1459 behaves like makes request1460 returns1461 when disable_overriding_approvers_per_merge_request is true on the project1462 does not allow you to set approvals_before_merge1463 as a project admin1464 behaves like user allowed to override approvals_before_merge1465 when approval rule is missing for the merge request1466 creates an approval rule with required number of approvals1467 behaves like cannot update approval rules1468 when users cannot update approval rules1469 returns 403 error1470 when approval rules already exist for the merge request1471 updates any approval rule with required number of approvals1472 behaves like cannot update approval rules1473 when users cannot update approval rules1474 returns 403 error1475 as a global admin1476 behaves like user allowed to override approvals_before_merge1477 when approval rule is missing for the merge request1478 creates an approval rule with required number of approvals1479 behaves like cannot update approval rules1480 when users cannot update approval rules1481 returns 403 error1482 when approval rules already exist for the merge request1483 updates any approval rule with required number of approvals1484 behaves like cannot update approval rules1485 when users cannot update approval rules1486 returns 403 error1487 as a random user1488 does not allow you to override approvals required1489 POST :id/merge_requests/:merge_request_iid/approve1490 as the author of the merge request1491 returns a 4011492 as a valid approver1493 only shows group approvers visible to the user1494 when the sha param is not set1495 approves the merge request1496 when the sha param is correct1497 approves the merge request1498 when the sha param is incorrect1499 returns a 4091500 does not approve the merge request1501 when project requires force auth for approval1502 does not approve the merge request with no password1503 does not approve the merge request with incorrect password1504 approves the merge request with correct password1505 POST :id/merge_requests/:merge_request_iid/unapprove1506 as a user who has approved the merge request1507 unapproves the merge request1508 only shows group approvers visible to the user1509Projects::PushRulesController1510 #update1511 updates the push rule1512 push rules unlicensed1513 returns 4041514 Updating reject_unsigned_commits rule1515 as an admin in admin mode1516 behaves like a setting with global default1517 when disabled1518 behaves like updateable setting1519 does not update the setting1520 when enabled1521 behaves like updateable setting1522 updates the setting1523 when global setting is enabled1524 behaves like updateable setting1525 updates the setting1526 as a maintainer user1527 behaves like a setting with global default1528 when disabled1529 behaves like updateable setting1530 does not update the setting1531 when enabled1532 behaves like updateable setting1533 updates the setting1534 when global setting is enabled1535 behaves like updateable setting1536 updates the setting1537 as a developer user1538 behaves like a setting with global default1539 when disabled1540 behaves like updateable setting1541 does not update the setting1542 when enabled1543 behaves like updateable setting1544 does not update the setting1545 when global setting is enabled1546 behaves like updateable setting1547 does not update the setting1548 Updating commit_committer_check rule1549 as an admin in admin mode1550 behaves like a setting with global default1551 when disabled1552 behaves like updateable setting1553 does not update the setting1554 when enabled1555 behaves like updateable setting1556 updates the setting1557 when global setting is enabled1558 behaves like updateable setting1559 updates the setting1560 as a maintainer user1561 behaves like a setting with global default1562 when disabled1563 behaves like updateable setting1564 does not update the setting1565 when enabled1566 behaves like updateable setting1567 updates the setting1568 when global setting is enabled1569 behaves like updateable setting1570 updates the setting1571 as a developer user1572 behaves like a setting with global default1573 when disabled1574 behaves like updateable setting1575 does not update the setting1576 when enabled1577 behaves like updateable setting1578 does not update the setting1579 when global setting is enabled1580 behaves like updateable setting1581 does not update the setting1582 Updating reject_non_dco_commits rule1583 as an admin in admin mode1584 behaves like a setting with global default1585 when disabled1586 behaves like updateable setting1587 does not update the setting1588 when enabled1589 behaves like updateable setting1590 updates the setting1591 when global setting is enabled1592 behaves like updateable setting1593 updates the setting1594 as a maintainer user1595 behaves like a setting with global default1596 when disabled1597 behaves like updateable setting1598 does not update the setting1599 when enabled1600 behaves like updateable setting1601 updates the setting1602 when global setting is enabled1603 behaves like updateable setting1604 updates the setting1605 as a developer user1606 behaves like a setting with global default1607 when disabled1608 behaves like updateable setting1609 does not update the setting1610 when enabled1611 behaves like updateable setting1612 does not update the setting1613 when global setting is enabled1614 behaves like updateable setting1615 does not update the setting1616 Updating commit_committer_name_check rule1617 when commit_committer_name_check is disabled1618 as an admin1619 behaves like updates push rule commit_committer_name_check of project1620 matches the given result1621 as a maintainer user1622 behaves like updates push rule commit_committer_name_check of project1623 matches the given result1624 as a developer user1625 behaves like updates push rule commit_committer_name_check of project1626 matches the given result1627 when commit_committer_name_check is enabled1628 as an admin1629 behaves like updates push rule commit_committer_name_check of project1630 matches the given result1631 as a maintainer user1632 behaves like updates push rule commit_committer_name_check of project1633 matches the given result1634 as a developer user1635 behaves like updates push rule commit_committer_name_check of project1636 matches the given result1637Updating an epic tree1638 when epics and subepics features are enabled1639 when the user does not have permission1640 returns the error message1641 behaves like a mutation that does not update the tree1642 does not change relative_positions1643 when user cannot reorder issue1644 returns the error message1645 behaves like a mutation that does not update the tree1646 does not change relative_positions1647 when user cannot reorder adjacent reference1648 returns the error message1649 behaves like a mutation that does not update the tree1650 does not change relative_positions1651 when the user has permission1652 when moving an epic1653 when moving an epic is successful1654 updates the epics relative positions1655 returns nil in errors1656 when a new_parent_id is provided1657 updates the epics relative positions and updates the parent1658 returns nil in errors1659 when relative_position is invalid1660 behaves like a mutation that returns top-level errors1661 is expected to contain exactly "Variable $epicTreeReorderInput of type EpicTreeReorderInput! was provided invalid value for moved.relativePosition (Expected \"invalid\" to be one of: before, after)"1662 when object being moved is not supported type1663 returns the error message1664 when moving an epic fails due to the parents of the relative position object and the moving object mismatching1665 returns the error message1666 behaves like a mutation that does not update the tree1667 does not change relative_positions1668 when the new parent is another epic and subepics feature is disabled1669 returns the error message1670 behaves like a mutation that does not update the tree1671 does not change relative_positions1672 when moving an issue1673 updates the epics relative positions1674 returns nil in errors1675 when a new_parent_id is provided1676 updates the epic's relative positions and parent1677 returns nil in errors1678 when moving an issue fails due to the parents of the relative position object and the moving object mismatching1679 returns the error message1680 behaves like a mutation that does not update the tree1681 does not change relative_positions1682getting an issue list at root level1683 # order random1684 when fetching issues from multiple projects1685 when ip_restrictions feature is enabled1686 when check_namespace_plan setting is enabled1687 avoids N+1 queries1688 behaves like graphql issue list request spec EE1689 sorting and pagination1690 when sorting by weight1691 when ascending1692 behaves like sorted paginated query1693 behaves like requires variables1694 shared example requires variables to be set1696 when sorting1697 sorts correctly1698 when paginating1699 paginates correctly1700 when descending1701 behaves like sorted paginated query1702 behaves like requires variables1703 shared example requires variables to be set1705 when sorting1706 sorts correctly1707 when paginating1708 paginates correctly1709 when sorting by published incident1710 when ascending1711 behaves like sorted paginated query1712 behaves like requires variables1713 shared example requires variables to be set1715 when sorting1716 sorts correctly1717 when paginating1718 paginates correctly1719 when descending1720 behaves like sorted paginated query1721 behaves like requires variables1722 shared example requires variables to be set1724 when sorting1725 sorts correctly1726 when paginating1727 paginates correctly1728 when sorting by sla due1729 when ascending1730 behaves like sorted paginated query1731 behaves like requires variables1732 shared example requires variables to be set1734 when sorting1735 sorts correctly1736 when paginating1737 paginates correctly1738 when descending1739 behaves like sorted paginated query1740 behaves like requires variables1741 shared example requires variables to be set1743 when sorting1744 sorts correctly1745 when paginating1746 paginates correctly1747 filtering1748 when filtering by weight1749 when filtering for all issues with an assigned weight1750 returns all issues with an assigned weight1751 when filtering for all issues without an assigned weight1752 returns all issues without an assigned weight1753 when both weight and weight_wildcard_id filters are provided1754 returns a mutually exclusive param error1755 when filtering by iteration1756 when filtering for issues in an iteration1757 returns all issues in the iteration1758 when filtering for issues in an iteration by iteration cadence1759 returns all issues in the iteration1760 when filtering by epic1761 when filtering for all issues with epics1762 returns all issues with epics1763 when filtering for issues without epics1764 returns all issues without epics1765 when both epic_id and epic_wildcard_id filters are provided1766 returns a mutually exclusive param error1767 blocked1768 uses the LazyLinksAggregate service1769 returns the correct blocked count result1770 returns the correct blocked issue detail result1771 behaves like a working graphql query1772 returns a successful response1773 related_vulnerabilities1774 avoids N+1 queries1775Projects::MergeRequestsController1776 GET #edit1777 when the project requires code owner approval1778 does not cause an extra queries when code owner rules are present1779 does not cause extra queries when multiple code owner rules are present1780 GET #index1781 avoids N+11782 security_reports1783 when the user can not read project security resources1784 responds with 4041785 when the user can read project security resources1786 when the pipeline is pending1787 returns 204 HTTP status along with the `Poll-Interval` header1788 when the pipeline is not pending1789 when the given type is invalid1790 responds with 4001791 when the given type is valid1792 when comparison is being processed1793 returns 204 HTTP status along with the `Poll-Interval` header1794 when comparison is done1795 when the comparison is errored1796 responds with 4001797 when the comparision is succeeded1798 responds with 200 along with the report payload1799Groups::Analytics::CycleAnalytics::StagesController1800 behaves like Value Stream Analytics Stages controller1801 GET #index1802 succeeds1803 returns correct start events1804 does not include internal events1805 succeeds for subgroups1806 renders `forbidden` based on the response of the service object1807 when `group_id` is not found1808 renders `not_found` when group is missing1809 when user has no lower access level than `reporter`1810 renders `forbidden` response1811 when feature is not available for the group1812 renders `forbidden` response1813 data endpoints1814 GET #median1815 matches the response schema1816 when valid parameters are given1817 succeeds1818 accepts optional `project_ids` array1819 succeeds1820 when `created_before` is missing1821 succeeds1822 when `created_after` is missing1823 succeeds1824 when `created_after` is invalid, falls back to default date1825 is expected to respond with numeric status code success1826 when `created_before` is invalid1827 renders `unprocessable_entity`1828 when `created_after` is later than `created_before`1829 renders `unprocessable_entity`1830 when the date range exceeds 180 days1831 renders `unprocessable_entity`1832 GET #average1833 matches the response schema1834 when valid parameters are given1835 succeeds1836 accepts optional `project_ids` array1837 succeeds1838 when `created_before` is missing1839 succeeds1840 when `created_after` is missing1841 succeeds1842 when `created_after` is invalid, falls back to default date1843 is expected to respond with numeric status code success1844 when `created_before` is invalid1845 renders `unprocessable_entity`1846 when `created_after` is later than `created_before`1847 renders `unprocessable_entity`1848 when the date range exceeds 180 days1849 renders `unprocessable_entity`1850 GET #records1851 when valid parameters are given1852 succeeds1853 accepts optional `project_ids` array1854 succeeds1855 when `created_before` is missing1856 succeeds1857 when `created_after` is missing1858 succeeds1859 when `created_after` is invalid, falls back to default date1860 is expected to respond with numeric status code success1861 when `created_before` is invalid1862 renders `unprocessable_entity`1863 when `created_after` is later than `created_before`1864 renders `unprocessable_entity`1865 when the date range exceeds 180 days1866 renders `unprocessable_entity`1867 when `group_id` is not found1868 renders `not_found` when group is missing1869 when user has no lower access level than `reporter`1870 renders `forbidden` response1871 when feature is not available for the group1872 renders `forbidden` response1873 sort params1874 accepts sort params1875 pagination1876 exposes pagination headers1877 GET #average_duration_chart1878 matches the response schema1879 fills all dates between the given range1880 when valid parameters are given1881 succeeds1882 accepts optional `project_ids` array1883 succeeds1884 when `created_before` is missing1885 succeeds1886 when `created_after` is missing1887 succeeds1888 when `created_after` is invalid, falls back to default date1889 is expected to respond with numeric status code success1890 when `created_before` is invalid1891 renders `unprocessable_entity`1892 when `created_after` is later than `created_before`1893 renders `unprocessable_entity`1894 when the date range exceeds 180 days1895 renders `unprocessable_entity`1896 when `group_id` is not found1897 renders `not_found` when group is missing1898 when user has no lower access level than `reporter`1899 renders `forbidden` response1900 when feature is not available for the group1901 renders `forbidden` response1902 GET #count1903 matches the response schema1904 when valid parameters are given1905 succeeds1906 accepts optional `project_ids` array1907 succeeds1908 when `created_before` is missing1909 succeeds1910 when `created_after` is missing1911 succeeds1912 when `created_after` is invalid, falls back to default date1913 is expected to respond with numeric status code success1914 when `created_before` is invalid1915 renders `unprocessable_entity`1916 when `created_after` is later than `created_before`1917 renders `unprocessable_entity`1918 when the date range exceeds 180 days1919 renders `unprocessable_entity`1920 when `group_id` is not found1921 renders `not_found` when group is missing1922 when user has no lower access level than `reporter`1923 renders `forbidden` response1924 when feature is not available for the group1925 renders `forbidden` response1926Git HTTP requests1927 User with no identities1928 when Kerberos token is provided1929 when authentication fails because of invalid Kerberos token1930 responds with status 401 Unauthorized1931 when authentication fails because of unknown Kerberos identity1932 responds with status 401 Unauthorized1933 when authentication succeeds1934 when the user has access to the project1935 complies with RFC45591936 when the user is blocked1937 responds with status 403 Forbidden1938 when the user isn't blocked1939 responds with status 200 OK1940 updates the user last activity1941 when the user doesn't have access to the project1942 responds with status 404 Not Found1943 complies with RFC45591944 when license is not provided1945 behaves like pulls are allowed1946 is expected to eq "application/vnd.gitlab-workhorse+json"1947 behaves like pushes are allowed1948 is expected to eq "application/vnd.gitlab-workhorse+json"1949 when SSO is enforced1950 behaves like pulls are allowed1951 is expected to eq "application/vnd.gitlab-workhorse+json"1952 when user cannot use password-based login1953 with feature flag switched off1954 behaves like pulls are allowed1955 is expected to eq "application/vnd.gitlab-workhorse+json"1956 behaves like pushes are allowed1957 is expected to eq "application/vnd.gitlab-workhorse+json"1958 with feature flag switched on1959 responds with status 401 Unauthorized for pull action1960 responds with status 401 Unauthorized for push action1961 when username and personal access token are provided1962 behaves like pulls are allowed1963 is expected to eq "application/vnd.gitlab-workhorse+json"1964 behaves like pushes are allowed1965 is expected to eq "application/vnd.gitlab-workhorse+json"1966 when user has 2FA enabled1967 when username and personal access token are provided1968 rejects the push attempt for read_repository scope1969 accepts the push attempt for write_repository scope1970 accepts the pull attempt for read_repository scope1971 accepts the pull attempt for api scope1972 accepts the push attempt for api scope1973 behaves like pulls are allowed1974 is expected to eq "application/vnd.gitlab-workhorse+json"1975 behaves like pushes are allowed1976 is expected to eq "application/vnd.gitlab-workhorse+json"1977 when namespace storage limits are enforced1978 behaves like pushes are allowed1979 is expected to eq "application/vnd.gitlab-workhorse+json"1980 when the limit has been exceeded1981 behaves like pushes are allowed1982 is expected to eq "application/vnd.gitlab-workhorse+json"1983API::EpicLinks1984 GET /groups/:id/epics/:epic_iid/epics1985 behaves like user does not have access1986 returns 403 when subepics feature is disabled1987 returns 404 not found error for a user without permissions to see the group1988 unauthenticated user1989 returns 401 unauthorized error1990 when subepics feature is enabled1991 returns 200 status1992 with group hierarchy1993 returns children from any group hierarchy1994 executes limited number of N+1 queries1995 POST /groups/:id/epics/:epic_iid/epics/child_epic_id1996 behaves like user does not have access1997 returns 403 when subepics feature is disabled1998 returns 404 not found error for a user without permissions to see the group1999 unauthenticated user2000 returns 401 unauthorized error2001 when subepics feature is enabled2002 when user is not a member2003 returns 4032004 when user is guest2005 returns 201 status2006 when target epic cannot be read2007 returns 404 status2008 POST /groups/:id/epics/:epic_iid/epics2009 behaves like user does not have access2010 returns 403 when subepics feature is disabled2011 returns 404 not found error for a user without permissions to see the group2012 unauthenticated user2013 returns 401 unauthorized error2014 when subepics feature is enabled2015 when user is not a member2016 returns 4032017 when user is a guest2018 returns 201 status2019 when user is a reporter2020 returns 201 status2021 does apply the confidential parameter if set2022 when the parent epic is confidential2023 copies the confidentiality status from the parent epic2024 does not allow creating a non-confidential sub-epic2025 and epic has errors2026 returns 400 error2027 PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id2028 behaves like user does not have access2029 returns 403 when subepics feature is disabled2030 returns 404 not found error for a user without permissions to see the group2031 unauthenticated user2032 returns 401 unauthorized error2033 when subepics are enabled2034 when user has permissions to reorder epics2035 returns status 2002036 when child belongs to a different group hierarchy2037 returns status 404 if user is not a member2038 returns status 200 if user has guest access2039 when user does not have permissions to reorder epics2040 returns status 4032041 DELETE /groups/:id/epics/:epic_iid/epics2042 behaves like user does not have access2043 returns 403 when subepics feature is disabled2044 returns 404 not found error for a user without permissions to see the group2045 unauthenticated user2046 returns 401 unauthorized error2047 when epics feature is enabled2048 when user is not a member2049 returns 4032050 when user is guest2051 returns 200 status2052 with confidential epic2053 returns status 4032054 when child belongs to a different group hierarchy2055 when user is not a member of the child's group2056 returns 404 status2057 when user has guest access to child's group2058 returns 200 status2059 when epics feature is disabled2060 when user is developer2061 returns 403 status2062API::RelatedEpicLinks2063 GET /groups/:id/related_epic_links2064 when user has no access to the group2065 returns 4042066 when user has access to the group2067 returns only related epics links the user has access to2068 behaves like endpoint with features check2069 when epics feature is not available2070 is expected to eq 4032071 when related_epics feature is not available2072 is expected to eq 4032073 when filtered by updated_before2074 returns related epic links updated before the given parameter2075 returns no related epic links2076 when filtered by updated_after2077 returns related epic links updated before the given parameter2078 returns no related epic links2079 when filtered by created_after2080 returns related epic links created after the given parameter2081 returns no related epic links2082 when filtered by created_before2083 returns related epic links created before the given parameter2084 returns no related epic links2085 when epics links are in a sub-group2086 returns linked epic from sub-group2087 when user has access to both groups2088 returns related epic links2089 returns multiple links without N + 12090 with pagination2091 returns first page of related epics2092 returns the last page of related epics2093 GET /groups/:id/epics/:epic_id/related_epics2094 when user cannot read epics2095 returns 4042096 when user can read epics2097 returns related epics2098 returns multiple links without N + 12099 behaves like endpoint with features check2100 when epics feature is not available2101 is expected to eq 4032102 when related_epics feature is not available2103 is expected to eq 4032104 POST /groups/:id/epics/:epic_id/related_epics2105 behaves like unauthenticated resource2106 returns 4012107 behaves like insufficient permissions2108 when user can not access source epic2109 behaves like not found resource2110 returns 4042111 when user can only read source epic2112 behaves like forbidden resource2113 returns 4032114 when user can only manage source epic2115 behaves like not found resource2116 returns 4042117 when user is guest in target group2118 behaves like successful response2119 returns created2120 when target epic is confidential2121 behaves like forbidden resource2122 returns 4032123 when user can relate epics2124 returns 201 when sending full path of target group2125 returns 201 status for is_blocked_by link and contains the expected link response2126 behaves like endpoint with features check2127 when epics feature is not available2128 is expected to eq 4032129 when related_epics feature is not available2130 is expected to eq 4032131 behaves like successful response2132 returns created2133 when target epic is not found2134 behaves like not found resource2135 returns 4042136 DELETE /groups/:id/epics/:epic_id/related_epics2137 behaves like unauthenticated resource2138 returns 4012139 behaves like insufficient permissions2140 when user can not access source epic2141 behaves like not found resource2142 returns 4042143 when user can only read source epic2144 behaves like forbidden resource2145 returns 4032146 when user can manage source epic2147 behaves like not found resource2148 returns 4042149 when user is guest in target group2150 behaves like successful response2151 returns ok2152 when related_epic_link_id belongs to a different epic2153 behaves like not found resource2154 returns 4042155 when user can relate epics2156 behaves like endpoint with features check2157 when epics feature is not available2158 is expected to eq 4032159 when related_epics feature is not available2160 is expected to eq 4032161 behaves like successful response2162 returns ok2163getting an issue list for a project2164 behaves like graphql issue list request spec EE2165 sorting and pagination2166 when sorting by weight2167 when ascending2168 behaves like sorted paginated query2169 behaves like requires variables2170 shared example requires variables to be set2172 when sorting2173 sorts correctly2174 when paginating2175 paginates correctly2176 when descending2177 behaves like sorted paginated query2178 behaves like requires variables2179 shared example requires variables to be set2181 when sorting2182 sorts correctly2183 when paginating2184 paginates correctly2185 when sorting by published incident2186 when ascending2187 behaves like sorted paginated query2188 behaves like requires variables2189 shared example requires variables to be set2191 when sorting2192 sorts correctly2193 when paginating2194 paginates correctly2195 when descending2196 behaves like sorted paginated query2197 behaves like requires variables2198 shared example requires variables to be set2200 when sorting2201 sorts correctly2202 when paginating2203 paginates correctly2204 when sorting by sla due2205 when ascending2206 behaves like sorted paginated query2207 behaves like requires variables2208 shared example requires variables to be set2210 when sorting2211 sorts correctly2212 when paginating2213 paginates correctly2214 when descending2215 behaves like sorted paginated query2216 behaves like requires variables2217 shared example requires variables to be set2219 when sorting2220 sorts correctly2221 when paginating2222 paginates correctly2223 filtering2224 when filtering by weight2225 when filtering for all issues with an assigned weight2226 returns all issues with an assigned weight2227 when filtering for all issues without an assigned weight2228 returns all issues without an assigned weight2229 when both weight and weight_wildcard_id filters are provided2230 returns a mutually exclusive param error2231 when filtering by iteration2232 when filtering for issues in an iteration2233 returns all issues in the iteration2234 when filtering for issues in an iteration by iteration cadence2235 returns all issues in the iteration2236 when filtering by epic2237 when filtering for all issues with epics2238 returns all issues with epics2239 when filtering for issues without epics2240 returns all issues without epics2241 when both epic_id and epic_wildcard_id filters are provided2242 returns a mutually exclusive param error2243 blocked2244 uses the LazyLinksAggregate service2245 returns the correct blocked count result2246 returns the correct blocked issue detail result2247 behaves like a working graphql query2248 returns a successful response2249 related_vulnerabilities2250 avoids N+1 queries2251 filtered2252 by negated health status2253 only returns issues without the negated health status2254Groups::AuditEventsController2255 GET #index2256 when authorized owner2258 behaves like when audit_events feature is available2259 renders index with 200 status code2260 tracks search event2261 invokes AuditEventFinder with correct arguments2262 behaves like AuditEventFinder params2263 has the correct params2264 author2265 when no author entity type is specified2266 behaves like AuditEventFinder params2267 has the correct params2268 when the author entity type is specified2269 behaves like AuditEventFinder params2270 has the correct params2271 ordering2272 when no sort order is specified2273 behaves like orders by id descending2274 orders by id descending2275 when sorting by latest events first2276 behaves like orders by id descending2277 orders by id descending2278 when sorting by oldest events first2279 orders by id ascending2280 when sorting by an unsupported sort order2281 behaves like orders by id descending2282 orders by id descending2283 pagination2284 sets instance variables2285 paginates audit events, without casting a count query2286 behaves like Snowplow event tracking with RedisHLL context2287 behaves like Snowplow event tracking2288 is emitted2289 when invalid date2290 created_before: "invalid-date", created_after: nil2291 returns an error2292 created_before: nil, created_after: true2293 returns an error2294 created_before: "2021-13-10", created_after: nil2295 returns an error2296 created_before: nil, created_after: "2021-02-31"2297 returns an error2298 created_before: "2021-03-31", created_after: "2021-02-31"2299 returns an error2300 when date range is greater than limit2301 behaves like a date range error is returned2302 created_after: "2021-01-01", created_before: "2021-02-02"2303 returns an error2304 created_after: "2022-01-31", created_before: nil2305 returns an error2306 behaves like tracking unique visits2307 tracks unique visit if the format is HTML2308 tracks unique visit if DNT is not enabled2309 does not track unique visit if DNT is enabled2310 does not track unique visit if the format is JSON2311 when authorized auditor2313 behaves like when audit_events feature is available2314 renders index with 200 status code2315 tracks search event2316 invokes AuditEventFinder with correct arguments2317 behaves like AuditEventFinder params2318 has the correct params2319 author2320 when no author entity type is specified2321 behaves like AuditEventFinder params2322 has the correct params2323 when the author entity type is specified2324 behaves like AuditEventFinder params2325 has the correct params2326 ordering2327 when no sort order is specified2328 behaves like orders by id descending2329 orders by id descending2330 when sorting by latest events first2331 behaves like orders by id descending2332 orders by id descending2333 when sorting by oldest events first2334 orders by id ascending2335 when sorting by an unsupported sort order2336 behaves like orders by id descending2337 orders by id descending2338 pagination2339 sets instance variables2340 paginates audit events, without casting a count query2341 behaves like Snowplow event tracking with RedisHLL context2342 behaves like Snowplow event tracking2343 is emitted2344 when invalid date2345 created_before: "invalid-date", created_after: nil2346 returns an error2347 created_before: nil, created_after: true2348 returns an error2349 created_before: "2021-13-10", created_after: nil2350 returns an error2351 created_before: nil, created_after: "2021-02-31"2352 returns an error2353 created_before: "2021-03-31", created_after: "2021-02-31"2354 returns an error2355 when date range is greater than limit2356 behaves like a date range error is returned2357 created_after: "2021-01-01", created_before: "2021-02-02"2358 returns an error2359 created_after: "2022-01-31", created_before: nil2360 returns an error2361 behaves like tracking unique visits2362 tracks unique visit if the format is HTML2363 tracks unique visit if DNT is not enabled2364 does not track unique visit if DNT is enabled2365 does not track unique visit if the format is JSON2366 unauthorized2367 renders 4042368getting epics information2369 query for epics which start with an iid2370 when a valid iidStartsWith query is provided2371 returns the expected epics2372 when invalid iidStartsWith query is provided2373 fails with negative number2374 fails with string2375 fails if query contains line breaks2376 query for epics by created_at and updated_at2377 filters by createdBefore2378 filters by createdAfter2379 filters by updatedBefore2380 filters by updatedAfter2381 filters by a combination of created parameters provided2382 filters by a combination of created/updated parameters provided2383 returns nothing for impossible parameters2384 query for epics by time frame2385 when `start` and `end` are present2386 returns epics within timeframe2387 when only start is present2388 raises error2389 when only end is present2390 raises error2391 query for epics with events2392 can lookahead to prevent N+1 queries2393 query for epics with ancestors2394 returns only ancestors up to the last accessible ancestor2395 when user is member of cross-hierarchy group2396 returns all ancestors2397 when requesting awardEmoji2398 includes award emojis2399 N+1 query checks2400 when requesting `award_emoji`2401 prevents N+1 queries2402 N+1 query test contains data2403 when requesting `health_status`2404 prevents N+1 queries2405 query for epics including their count2406 returns epics total count2407Ldap::OmniauthCallbacksController2408 displays LDAP sync flash on first sign in2409 skips LDAP sync flash on subsequent sign ins2410 for sign up2411 does not enforce onboarding for sign up2412 multiple ldap providers configured2413 multiple ldap servers licensed feature available2414 allows sign in to first provider2415 allows sign in to other provider2416 multiple ldap servers licensed feature not available2417 allows sign in2418 does not allow sign in for other providers2419 access denied2420 logs a failure event2421API::ProjectPushRule ProjectPushRule2422 GET /projects/:id/push_rule2423 authorized user2424 returns project push rule2425 the commit_committer_check feature is enabled2426 returns the commit_committer_check information2427 the reject_unsigned_commits feature is enabled2428 returns the reject_unsigned_commits information2429 the reject_unsigned_commits feature is not enabled2430 succeeds2431 does not return the reject_unsigned_commits information2432 push rules are not enabled2433 is forbidden2434 developer2435 does not have access to project push rule2436 POST /projects/:id/push_rule2437 adds push rule to project with no file size2438 returns 400 if no parameter is given2439 maintainer2440 is accepted2441 indicates that it belongs to the correct project2442 sets all given parameters2443 commit_committer_check not allowed by License2444 is forbidden to use this service2445 reject_unsigned_commits not allowed by License2446 is forbidden to use this service2447 commit_committer_check is not enabled2448 is forbidden to send the the :commit_committer_check parameter2449 without the :commit_committer_check parameter2450 sets all given parameters2451 reject_unsigned_commits is not enabled2452 is forbidden to send the the :reject_unsigned_commits parameter2453 without the :reject_unsigned_commits parameter2454 sets all given parameters2455 invalid params2456 returns an error2457 when regex is too long2458 returns an error2459 when feature flag "add_validation_for_push_rules" is disabled2460 is successful2461 user with developer_access2462 does not add push rule to project2463 with existing push rule2464 returns an error response2465 PUT /projects/:id/push_rule2466 does not update push rule for unauthorized user2467 with existing push rule2468 setting deny_delete_tag and commit_message_regex2469 is successful2470 includes the expected settings2471 setting commit_committer_check2472 is successful2473 sets the commit_committer_check2474 the commit_committer_check feature is not enabled2475 is an error to provide this parameter2476 setting reject_unsigned_commits2477 is successful2478 sets the reject_unsigned_commits2479 the reject_unsigned_commits feature is not enabled2480 is an error to provide the this parameter2481 not providing parameters2482 is an error2483 invalid params2484 returns an error2485 without existing push rule2486 returns an error response2487 DELETE /projects/:id/push_rule2488 for existing push rule2489 maintainer2490 deletes push rule from project2491 user with developer_access2492 returns a 403 error2493 for non existing push rule2494 deletes push rule from project2495 returns a 403 error if not authorized2496API::Admin::Search::Zoekt2497 # order random2498 DELETE /admin/zoekt/shards/:shard_id/indexed_namespaces/:namespace_id2499 removes the Zoekt::IndexedNamespace for this shard and namespace pair2500 behaves like DELETE request permissions for admin mode2501 behaves like when admin2502 behaves like makes request2503 returns2504 behaves like makes request2505 returns2506 behaves like when user2507 returns2508 behaves like makes request2509 returns2510 behaves like an API that returns 401 for unauthenticated requests2511 returns not_found status2512 with missing shard_id2513 behaves like an API that returns 404 for missing ids2514 returns not_found status2515 with missing namespace_id2516 behaves like an API that returns 404 for missing ids2517 returns not_found status2518 PUT /admin/zoekt/shards/:shard_id/indexed_namespaces/:namespace_id2519 creates a Zoekt::IndexedNamespace for this shard and namespace pair2520 behaves like PUT request permissions for admin mode2521 behaves like when admin2522 behaves like makes request2523 returns2524 behaves like makes request2525 returns2526 behaves like when user2527 returns2528 behaves like makes request2529 returns2530 behaves like an API that returns 401 for unauthenticated requests2531 returns not_found status2532 behaves like an API that returns 400 when the index_code_with_zoekt feature flag is disabled2533 returns not_found status2534 when it already exists2535 returns the existing one2536 with missing shard_id2537 behaves like an API that returns 404 for missing ids2538 returns not_found status2539 with missing namespace_id2540 behaves like an API that returns 404 for missing ids2541 returns not_found status2542 GET /admin/zoekt/shards/:shard_id/indexed_namespaces2543 returns all indexed namespaces for this shard2544 returns at most MAX_RESULTS most recent rows2545 behaves like GET request permissions for admin mode2546 behaves like when admin2547 behaves like makes request2548 returns2549 behaves like makes request2550 returns2551 behaves like when user2552 returns2553 behaves like makes request2554 returns2555 behaves like an API that returns 401 for unauthenticated requests2556 returns not_found status2557 behaves like an API that returns 404 for missing ids2558 returns not_found status2559 GET /admin/zoekt/shards2560 returns all shards2561 behaves like GET request permissions for admin mode2562 behaves like when admin2563 behaves like makes request2564 returns2565 behaves like makes request2566 returns2567 behaves like when user2568 returns2569 behaves like makes request2570 returns2571 behaves like an API that returns 401 for unauthenticated requests2572 returns not_found status2573 PUT /admin/zoekt/projects/:projects/index2574 triggers indexing for the project2575 behaves like PUT request permissions for admin mode2576 behaves like when admin2577 behaves like makes request2578 returns2579 behaves like makes request2580 returns2581 behaves like when user2582 returns2583 behaves like makes request2584 returns2585 behaves like an API that returns 401 for unauthenticated requests2586 returns not_found status2587 behaves like an API that returns 400 when the index_code_with_zoekt feature flag is disabled2588 returns not_found status2589 behaves like an API that returns 404 for missing ids2590 returns not_found status2591Projects::Analytics::CycleAnalytics::ValueStreamsController2592 # order random2593 behaves like value stream controller actions2594 GET index2595 when user is a member2596 returns the persisted value streams2597 when user is not a member2598 renders 4042599 GET #show2600 succeeds2601 when value stream is not found2602 renders 4042603 behaves like authorization examples2604 when not licensed2605 renders 4042606 when user is not a member2607 renders 4042608 GET #new2609 succeeds2610 behaves like authorization examples2611 when not licensed2612 renders 4042613 when user is not a member2614 renders 4042615 GET #edit2616 succeeds2617 when value stream is not found2618 renders 404 not found2619 behaves like authorization examples2620 when not licensed2621 renders 4042622 when user is not a member2623 renders 4042624 PUT #update2625 succeeds2626 when validation error happens2627 returns 422 unprocessable entity2628 when value stream is not found2629 renders 404 not found2630 when updating value stream with in-memory stages2631 returns a successful 200 response2632 when deleting the stage by excluding it from the stages array2633 returns a successful 200 response2634 behaves like authorization examples2635 when not licensed2636 renders 4042637 when user is not a member2638 renders 4042639 POST #create2640 succeeds2641 when validation error happens2642 returns 422 unprocessable entity2643 when stage names are not unique2644 returns 422 unprocessable entity2645 behaves like authorization examples2646 when not licensed2647 renders 4042648 when user is not a member2649 renders 4042650 DELETE #destroy2651 succeeds2652 when value stream is not found2653 renders 404 not found2654 behaves like authorization examples2655 when not licensed2656 renders 4042657 when user is not a member2658 renders 4042659 GET index2660 when user is member of the project2661 when not licensed2662 succeeds and returns the default value stream2663 when the project has lower visibility level2664 disallows deleting the record2665Projects::Security::VulnerabilitiesController2666 GET #new2667 checks if the user can create a vulnerability2668 behaves like security and compliance disabled2669 is expected to respond with numeric status code not_found2670 when user can admin vulnerability2671 renders the add new finding page2672 when user can not admin vulnerability2673 renders 404 page not found2674 GET #show2675 behaves like security and compliance disabled2676 is expected to respond with numeric status code not_found2677 when there's an attached pipeline2678 renders the vulnerability page2679 renders the vulnerability component2680 when there's no attached pipeline2681 renders the vulnerability page2682 GET #discussions2683 renders discussions2684 behaves like security and compliance disabled2685 is expected to respond with numeric status code not_found2686Projects::OnDemandScansController2687 GET #index2688 behaves like on-demand scans page2689 when the "Security and Compliance" feature is disabled2690 is expected to respond with numeric status code not_found2691 feature available2692 user authorized2693 can access page2694 user not authorized2695 sees a 404 error2696 feature not available2697 sees a 404 error if the license doesn't support the feature2698 GET #new2699 user has auditor role2700 sees a 404 error2701 behaves like on-demand scans page2702 when the "Security and Compliance" feature is disabled2703 is expected to respond with numeric status code not_found2704 feature available2705 user authorized2706 can access page2707 user not authorized2708 sees a 404 error2709 feature not available2710 sees a 404 error if the license doesn't support the feature2711 GET #edit2712 behaves like on-demand scans page2713 when the "Security and Compliance" feature is disabled2714 is expected to respond with numeric status code not_found2715 feature available2716 user authorized2717 can access page2718 user not authorized2719 sees a 404 error2720 feature not available2721 sees a 404 error if the license doesn't support the feature2722 feature available and user can access page2723 dast_profile exists in the database2724 includes a serialized dast_profile in the response body2725 dast_profile does not exist in the database2726 sees a 404 error2727 user has auditor role2728 sees a 404 error2729Projects::Settings::MergeRequestsController2730 # order random2731 PUT #update2732 updates Merge Request Approvers attributes2733 updates Issuable Default Templates attributes2734 when merge_pipelines_enabled param is specified2735 updates the attribute2736 when license is not sufficient2737 does not update the attribute2738 when suggested_reviewers_enabled param is specified2739 updates the attribute2740 when merge_trains_enabled param is specified2741 updates the attribute2742 when license is not sufficient2743 does not update the attribute2744 when only_allow_merge_if_all_status_checks_passed param is specified2745 behaves like update only allow merge if all status checks passed2746 when only_allow_merge_if_all_status_checks_passed param is specified2747 updates the attribute2748 when license is not sufficient2749 does not update the attribute2750 when auto_rollback_enabled param is specified2751 updates the attribute2752 when license is not sufficient2753 does not update the attribute2754 merge request approvers settings2755 does not push security_orchestration_policies licensed feature2756 :disable_overriding_approvers_per_merge_request2757 behaves like merge request approvers rules2758 can_modify: true, param_value: true, final_value: true2759 updates project if needed2760 can_modify: true, param_value: false, final_value: false2761 updates project if needed2762 can_modify: false, param_value: true, final_value: nil2763 updates project if needed2764 can_modify: false, param_value: false, final_value: nil2765 updates project if needed2766 :merge_requests_author_approval2767 behaves like merge request approvers rules2768 can_modify: true, param_value: true, final_value: true2769 updates project if needed2770 can_modify: true, param_value: false, final_value: false2771 updates project if needed2772 can_modify: false, param_value: true, final_value: nil2773 updates project if needed2774 can_modify: false, param_value: false, final_value: nil2775 updates project if needed2776 :merge_requests_disable_committers_approval2777 behaves like merge request approvers rules2778 can_modify: true, param_value: true, final_value: true2779 updates project if needed2780 can_modify: true, param_value: false, final_value: false2781 updates project if needed2782 can_modify: false, param_value: true, final_value: nil2783 updates project if needed2784 can_modify: false, param_value: false, final_value: nil2785 updates project if needed2786 with security_orchestration_policies licensed feature enabled2787 pushes security_orchestration_policies licensed feature2788Projects::FeatureFlagIssuesController2789 GET #index2790 returns linked issues2791 does not return linked issues for a reporter2792 orders by feature_flag_issue id2793 returns the correct relation_path when the feature flag is linked to multiple issues2794 returns the correct relation_path when multiple feature flags are linked to an issue2795 returns the correct relation_path when there are multiple linked feature flags and issues2796 does not make N+1 queries2797 returns only issues readable by the user2798 when feature flag related issues feature is unlicensed2799 does not return linked issues2800 POST #create2801 creates a link between the feature flag and the issue2802 creates a link for the correct feature flag when there are multiple feature flags and projects2803 creates a cross project link for a project in the same namespace2804 creates a cross project link for a project in another namespace2805 does not create a link for a reporter2806 does not create a cross project link when the user is not a member of the issue's project2807 does not create a cross project link when the user is a guest of the issue's project2808 does not create a link when the user cannot read the issue2809 when feature flag related issues feature is unlicensed2810 does not create a link between the feature flag and the issue2811 DELETE #destroy2812 unlinks the issue from the feature flag2813 does not unlink the issue for a reporter2814 when feature flag related issues feature is unlicensed2815 does not unlink the issue2816API::AwardEmoji2817 GET /groups/:id/awardable/:awardable_id/award_emoji2818 on an epic2819 returns an array of award_emoji2820 returns a 404 error when epic id not found2821 GET /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji2822 returns an array of award emoji2823 GET /groups/:id/awardable/:awardable_id/award_emoji/:award_id2824 on an epic2825 returns the award emoji2826 returns a 404 error if the award is not found2827 GET /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji/:award_id2828 returns an award emoji2829 POST /groups/:id/awardable/:awardable_id/award_emoji2830 on an epic2831 creates a new award emoji2832 returns a 400 bad request error if the name is not given2833 returns a 404 if the user is not authenticated2834 normalizes +1 as thumbsup award2835 when the emoji already has been awarded2836 returns a 404 status code2837 POST /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji2838 creates a new award emoji2839 marks Todos on the Noteable as done2840 normalizes +1 as thumbsup award2841 when the emoji already has been awarded2842 returns a 404 status code2843 DELETE /groups/:id/awardable/:awardable_id/award_emoji/:award_id2844 when the awardable is an Epic2845 deletes the award2846 returns a 404 error when the award emoji can not be found2847 behaves like 412 response2848 for a modified resource2849 returns 412 with a JSON error2850 for an unmodified resource2851 returns 204 with an empty body2852 DELETE /groups/:id/awardable/:awardable_id/award_emoji/:award_emoji_id2853 deletes the award2854 behaves like 412 response2855 for a modified resource2856 returns 412 with a JSON error2857 for an unmodified resource2858 returns 204 with an empty body2859API::Geo2860 GET /geo/retrieve/:replicable_name/:replicable_id2861 valid requests2862 returns the file2863 allowed IPs2864 responds with 401 when IP is not allowed2865 responds with 200 when IP is allowed2866 invalid requests2867 responds with 401 with invalid auth header2868 responds with 401 with mismatched params in auth headers2869 responds with 404 when resource is not found2870 POST /geo/status2871 responds with 401 with invalid auth header2872 responds with 401 when the db_key_base is wrong2873 allowed IPs2874 responds with 401 when IP is not allowed2875 responds with 201 when IP is allowed2876 when requesting primary node with valid auth header2877 updates the status and responds with 2012878 ignores invalid attributes upon update2879 behaves like with terms enforced2880 responds with 2xx HTTP response code2881 /geo/proxy_git_ssh2882 POST /geo/proxy_git_ssh/info_refs_upload_pack2883 with all required params missing2884 responds with 4002885 with all required params2886 with an invalid jwt token2887 responds with 4012888 where an exception occurs2889 responds with 5002890 with a valid secret token2891 responds with 2002892 POST /geo/proxy_git_ssh/upload_pack2893 with all required params missing2894 responds with 4002895 with all required params2896 with an invalid jwt token2897 responds with 4012898 where an exception occurs2899 responds with 5002900 with a valid secret token2901 responds with 2012902 POST /geo/proxy_git_ssh/info_refs_receive_pack2903 with all required params missing2904 responds with 4002905 with all required params2906 with an invalid jwt token issuer2907 responds with 4012908 with a jwt token encoded by a different secret_token2909 responds with 4012910 where an exception occurs2911 responds with 5002912 with a valid secret token2913 responds with 2002914 POST /geo/proxy_git_ssh/receive_pack2915 with all required params missing2916 responds with 4002917 with all required params2918 with an invalid jwt token2919 responds with 4012920 where an exception occurs2921 responds with 5002922 with a valid secret token2923 responds with 2012924 GET /geo/proxy2925 rejects requests that bypassed gitlab-workhorse2926 with valid auth2927 when Geo is not being used2928 returns empty data2929 when this is a primary site2930 returns empty data2931 when this is a secondary site with unified URL2932 when a primary exists2933 returns the primary internal URL and extra proxy data2934 when a primary does not exist2935 returns empty data2936 when this is a secondary site with separate URLs2937 when a primary does not exist2938 returns empty data2939 when geo_secondary_proxy_separate_urls feature flag is disabled2940 returns empty data2941 when geo_secondary_proxy_separate_urls feature flag is enabled2942 returns the primary internal URL and extra proxy data2943 POST /geo/node_proxy/:id/graphql2944 denies access if not admin2945 requests the graphql endpoint with the post body and returns the output2946 returns empty output if remote fails2947 behaves like 404 response2948 returns 4042949Create Google Cloud logging configuration2950 # order random2951 when feature is unlicensed2952 behaves like an unauthorized mutation that does not create a configuration2953 behaves like a mutation on an unauthorized resource2954 behaves like a mutation that returns top-level errors2955 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"2956 behaves like a mutation that does not create a configuration2957 does not create the configuration2958 does not create audit event2959 when feature is licensed2960 when current user is a group owner2961 resolves group by full path2962 creates the configuration2963 behaves like creates an audit event2964 audits the creation2965 when overriding log id name2966 creates the configuration2967 behaves like creates an audit event2968 audits the creation2969 when there is error while saving2970 does not create the configuration and returns the error2971 when current user is a group maintainer2972 behaves like an unauthorized mutation that does not create a configuration2973 behaves like a mutation on an unauthorized resource2974 behaves like a mutation that returns top-level errors2975 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"2976 behaves like a mutation that does not create a configuration2977 does not create the configuration2978 does not create audit event2979 when current user is a group developer2980 behaves like an unauthorized mutation that does not create a configuration2981 behaves like a mutation on an unauthorized resource2982 behaves like a mutation that returns top-level errors2983 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"2984 behaves like a mutation that does not create a configuration2985 does not create the configuration2986 does not create audit event2987 when current user is a group guest2988 behaves like an unauthorized mutation that does not create a configuration2989 behaves like a mutation on an unauthorized resource2990 behaves like a mutation that returns top-level errors2991 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"2992 behaves like a mutation that does not create a configuration2993 does not create the configuration2994 does not create audit event2995RegistrationsController2996 # order random2997 POST #create2998 behaves like creates a user with ArkoseLabs risk band on signup request2999 when arkose_labs_token verification succeeds3000 records the user's data from Arkose Labs3001 behaves like creates the user3002 creates the user3003 when verification fails3004 does not record the user's data from Arkose Labs3005 behaves like renders new action with an alert flash3006 renders new action with an alert flash3007 when user is not persisted3008 does not record the user's data from Arkose Labs3009 when the feature flag is disabled3010 behaves like creates the user3011 creates the user3012 behaves like skips verification and data recording3013 skips verification and data recording3014 when feature is disabled3015 behaves like creates the user3016 creates the user3017 behaves like skips verification and data recording3018 skips verification and data recording3019 when reCAPTCHA is enabled3020 behaves like creates the user3021 creates the user3022 when reCAPTCHA verification fails3023 does not create the user3024 when arkose_labs_token param is not present3025 behaves like renders new action with an alert flash3026 renders new action with an alert flash3027 behaves like skips verification and data recording3028 skips verification and data recording3029 identity verification3030 when identity verification is turned off3031 sending confirmation instructions3032 sends Devise confirmation instructions3033 does not send custom confirmation instructions3034 sets the confirmation_sent_at time3035 sets the confirmation_token to the unencrypted Devise token3036 setting a session variable3037 does not set the `verification_user_id` session variable3038 redirection3039 redirects to the `users_almost_there_path`3040 when identity verification is turned on3041 sending confirmation instructions3042 does not send Devise confirmation instructions3043 sends custom confirmation instructions3044 sets the confirmation_sent_at time3045 sets the confirmation_token to the encrypted custom token3046 preventing token collisions3047 does not raise an error when an identical token exists in the database3048 setting a session variable3049 sets the `verification_user_id` session variable3050 handling sticking3051 sticks or unsticks the request3052 redirection3053 redirects to the `identity_verification_path`3054 when user is not persisted3055 does not try to send custom confirmation instructions3056 with onboarding progress3057 when on SaaS3058 sets onboarding3059 when ensure_onboarding is disabled3060 does not set onboarding3061 when not on SaaS3062 does not set onboarding3063Groups::HooksController3064 with group_webhooks enabled3065 GET #index3066 is successful3067 POST #create3068 sets all parameters3069 alerts the user if the new hook is invalid3070 GET #edit3071 assigns hook_logs3072 handles when logs are present3073 can paginate logs3074 PATCH #update3075 valid params3076 is successful3077 invalid params3078 renders "edit" template3079 POST #test3080 when testing a job hook3081 where there are no jobs3082 reports the error3083 when group does not have a project3084 redirects back3085 when group has a project3086 when "trigger" params is empty3087 defaults to "push_events"3088 when "trigger" params is set3089 uses it3090 DELETE #destroy3091 behaves like Web hook destroyer3092 displays a message about synchronous delete3093 displays a message about async delete3094 displays an error if deletion failed3095 When user is not logged in3096 renders a 4043097 with group_webhooks disabled3098 GET #index3099 renders a 4043100Mutation.vulnerabilitiesDismiss3101 # order random3102 when the user does not have access3103 behaves like a mutation that returns a top-level access error3104 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"3105 when the user has access3106 when security_dashboard is disabled3107 behaves like a mutation that returns top-level errors3108 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"3109 when security_dashboard is enabled3110 dismisses the vulnerabilities3111 without a comment3112 dismisses the vulnerabilities3113 without a dismissal reason3114 dismisses the vulnerabilities3115 when too many vulnerabilities are passed3116 behaves like a mutation that returns top-level errors3117 is expected to contain exactly /Maximum vulnerability_ids exceeded \(1\)/3118 when vulnerability_id is nil3119 behaves like a mutation that returns top-level errors3120 is expected to contain exactly /Expected value to not be null/3121 when vulnerability_ids are empty3122 behaves like a mutation that returns top-level errors3123 is expected to contain exactly "At least 1 value must be provided for vulnerability_ids"3124SmartcardController3125 #auth3126 with smartcard_auth enabled3127 redirects to extract certificate3128 with provider param3129 forwards the provider param3130 with smartcard_auth disabled3131 renders 4043132 #extract_certificate3133 with smartcard_auth enabled3134 redirects to verify certificate3135 with provider param3136 forwards the provider param3137 missing NGINX client certificate header3138 renders unauthorized3139 request from different host / port3140 renders 4043141 with smartcard_auth disabled3142 renders 4043143 #verify_certificate3144 Smartcard::Certificate3145 behaves like a client certificate authentication3146 with smartcard_auth enabled3147 allows sign in3148 redirects to root3149 logs audit event3150 stores active session3151 user does not exist3152 signup allowed3153 creates user3154 signup disabled3155 renders 4013156 missing client certificate param3157 renders unauthorized3158 with smartcard_auth disabled3159 renders 4043160 user already exists3161 finds existing user3162 certificate header formats from NGINX3163 escaped format3164 behaves like valid certificate header3165 authenticates user3166 deprecated format3167 behaves like valid certificate header3168 authenticates user3169 Smartcard::LdapCertificate3170 sets correct parameters for LDAP search3171 behaves like a client certificate authentication3172 with smartcard_auth enabled3173 allows sign in3174 redirects to root3175 logs audit event3176 stores active session3177 user does not exist3178 signup allowed3179 creates user3180 signup disabled3181 renders 4013182 missing client certificate param3183 renders unauthorized3184 with smartcard_auth disabled3185 renders 4043186 user already exists3187 finds existing user3188 user has a different identity3189 doesn't login a user3190 doesn't create a new user entry either3191Groups::Analytics::DashboardsController3192 # order random3193 GET index3194 when user is not logged in3195 redirects the user to the login page3196 when user is logged in3197 when the license is not available3198 behaves like forbidden response3199 returns forbidden response3200 when the license is available3201 succeeds3202 when group_analytics_dashboards is disabled3203 redirects to value stream dashboards3204 GET value_streams_dashboard3205 when user is not logged in3206 redirects the user to the login page3207 when user is not authorized3208 behaves like forbidden response3209 returns forbidden response3210 when user is logged in3211 when the license is not available3212 behaves like forbidden response3213 returns forbidden response3214 when the license is available3215 succeeds3216 can accept a `query` params3217 will only return the first 4 namespaces3218 will return projects in a subgroup3219 passes pointer_project if it has been configured3220 does not pass pointer_project if the configured project is missing3221 does not pass pointer_project if it was not configured3222 tracks page view on usage ping3223Groups::Analytics::DashboardsController3224 # order random3225 behaves like Snowplow event tracking with RedisHLL context3226 behaves like Snowplow event tracking3227 is emitted3228 behaves like tracking unique visits3229 tracks unique visit if the format is HTML3230 tracks unique visit if DNT is not enabled3231 does not track unique visit if DNT is enabled3232 does not track unique visit if the format is JSON3233API::Analytics::GroupActivityAnalytics3234 GET /group_activity/issues_count3235 behaves like GET group_activity3236 when feature is enabled for a group3237 is successful3238 is returns a count3239 when feature is not available in plan3240 is returns `forbidden`3241 when `group_path` is not specified3242 returns `bad_request`3243 when name is made of only digits3244 is successful3245 is returns a count3246 when user does not have access to a group3247 is returns `not_found`3248 GET /group_activity/merge_requests_count3249 behaves like GET group_activity3250 when feature is enabled for a group3251 is successful3252 is returns a count3253 when feature is not available in plan3254 is returns `forbidden`3255 when `group_path` is not specified3256 returns `bad_request`3257 when name is made of only digits3258 is successful3259 is returns a count3260 when user does not have access to a group3261 is returns `not_found`3262 GET /group_activity/new_members_count3263 behaves like GET group_activity3264 when feature is enabled for a group3265 is successful3266 is returns a count3267 when feature is not available in plan3268 is returns `forbidden`3269 when `group_path` is not specified3270 returns `bad_request`3271 when name is made of only digits3272 is successful3273 is returns a count3274 when user does not have access to a group3275 is returns `not_found`3276Query.project(fullPath).pipeline(iid).securityReportSummary3277 when the required features are enabled3278 when user is member of the project3279 shows the vulnerabilitiesCount and scannedResourcesCount3280 shows the first 20 scanned resources3281 returns nil for the scannedResourcesCsvPath3282 when user is not a member of the project3283 returns no scanned resources3284 when the required features are disabled3285 returns no scanned resources3286API::Dependencies3287 GET /projects/:id/dependencies3288 behaves like a gitlab tracking event3289 creates a gitlab tracking event view_dependencies3290 with an authorized user with proper permissions3291 when a pipeline does not exist3292 returns an empty array response3293 when a pipeline exists3294 returns paginated dependencies3295 returns vulnerabilities info3296 when the license_scanning_sbom_scanner feature flag is false3297 include license information to response3298 when the license_scanning_sbom_scanner feature flag is true3299 when querying uncompressed package metadata3300 include license information to response3301 when querying compressed package metadata3302 include license information to response3303 with nil package_manager3304 returns no dependencies3305 with filter options3306 returns yarn dependencies3307 with wrong key3308 returns error message3309 with pagination params3310 returns paginated dependencies3311 without permissions to see vulnerabilities3312 returns empty vulnerabilities3313 without permissions to see licenses3314 returns empty licenses3315 with authorized user without read permissions3316 responds with 403 Forbidden3317 with no project access3318 responds with 404 Not Found3319get list of epic boards3320 when the user does not have access to the epic board group3321 returns nil group3322 when user can access the epic board group3323 avoids N+1 queries3324 sorting and pagination3325 behaves like sorted paginated query3326 behaves like requires variables3327 shared example requires variables to be set3329 when sorting3330 sorts correctly3331 when paginating3332 paginates correctly3333 field values3334 returns the correct values for collapsed3335 returns the correct metadata values3336 when totalWeight not requested3337 does not required the value from the service3338Dashboard::ProjectsController3339 #removed3340 when licensed3341 for admin users3342 returns success3343 paginates the records3344 returns projects marked for deletion3345 for non-admin users3346 returns success3347 paginates the records3348 for should_check_namespace_plan3349 should_check_namespace_plan: false, removed_projects_count: 33350 accounts total removable projects3351 should_check_namespace_plan: true, removed_projects_count: 23352 accounts total removable projects3353 when not licensed3354 behaves like returns not found3355 is expected to respond with numeric status code not_found3356API::Internal::AppSec::Dast::SiteValidations3357 POST /internal/dast/site_validations/:id/transition3358 when a job token header is not set3359 returns 4013360 when user token is set3361 returns 400 and a contextual error message3362 when a job token header is set3363 when user does not have access to the site validation3364 returns 4033365 when site validation does not exist3366 returns 4043367 when site validation and job are associated with different projects3368 returns 4003369 when the job project belongs to the same job token scope3370 returns 400 and a contextual error message3371 when site validation exists3372 when the licensed feature is not available3373 returns 4033374 when user has access to the site validation3375 when the state transition is unknown3376 returns 400 and a contextual error message3377 when the state transition is invalid3378 returns 400 and a contextual error message3379 when the state transition is valid3380 updates the record3381 behaves like it transitions3382 returns 200 and the new state3383 calls the underlying transition method: #start3384 behaves like it transitions3385 returns 200 and the new state3386 calls the underlying transition method: #fail_op3387 behaves like it transitions3388 returns 200 and the new state3389 calls the underlying transition method: #retry3390 behaves like it transitions3391 returns 200 and the new state3392 calls the underlying transition method: #pass3393Mutations::Security::Finding::RevertToDetected3394 # order random3395 #resolve3396 when the user has access to vulnerability management3397 when user does not have access to the project3398 behaves like a mutation that returns a top-level access error3399 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"3400 when no uuid is provided3401 raises an error3402 when the user has access to the project3403 when there is a dismissal feedback3404 when there is no vulnerability3405 behaves like properly sets the security finding state3406 sets the security finding state to detected3407 when there is a vulnerability3408 behaves like properly sets the security finding state3409 sets the security finding state to detected3410 behaves like properly sets the vulnerability state3411 sets the vulnerability state to detected3412 when the dismissal fails3413 raises an error3414 when the dismissal fails3415 raises an error3416 when there is no dismissal feedback3417 when there is no vulnerability3418 behaves like properly sets the security finding state3419 sets the security finding state to detected3420 when there is a vulnerability3421 behaves like properly sets the security finding state3422 sets the security finding state to detected3423 behaves like properly sets the vulnerability state3424 sets the vulnerability state to detected3425 when the security dashboard is not available to the user3426 behaves like a mutation that returns a top-level access error3427 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"3428Query.[group](fullPath).doraPerformanceScoreCounts3429 # order random3430 when DORA analytics feature is not available3431 returns nil3432 behaves like a working graphql query3433 returns a successful response3434 when there is some error in the service3435 returns an error3436 when user does not have access3437 returns nil3438 behaves like a working graphql query3439 returns a successful response3440 when there is no data for the target month3441 working query3442 returns all empty data3443 behaves like a working graphql query3444 returns a successful response3445 when there is data for the target month3446 working query3447 returns the correct data3448 behaves like a working graphql query3449 returns a successful response3450 when no metric count fields are requested3451 does not fire off any data queries3452 behaves like a working graphql query3453 returns a successful response3454Query.vulnerabilities.issueLinks3455 when invalid linkType argument is provided3456 errors with a string3457 errors with a number3458 errors with lowercased `created`3459 errors with lowercased `related`3460 when valid linkType argument is provided3461 returns a list of VulnerabilityIssueLink with `CREATED` linkType3462 returns a list of VulnerabilityIssueLink with `RELATED` linkType3463 when no arguments are provided3464 returns a list of all VulnerabilityIssueLink3465 loading issue links in batch3466 does not cause N+1 query issue3467Projects::RequirementsManagement::RequirementsController3468 GET #index3469 private project3470 with authorized user3471 when feature is available3472 renders the index template3473 when feature is not available3474 behaves like response with 404 status3475 returns 4043476 with unauthorized user3477 when feature is available3478 behaves like response with 404 status3479 returns 4043480 with anonymous user3481 returns 3023482 public project3483 with requirements disabled3484 behaves like response with 404 status3485 returns 4043486 with requirements visible to project members3487 with authorized user3488 renders the index template3489 with unauthorized user3490 behaves like response with 404 status3491 returns 4043492 with requirements visible to everyone3493 with anonymous user3494 renders the index template3495 GET import_csv3496 with authorized user3497 when feature is available3498 when the upload is processed successfully3499 renders the correct message3500 when the upload returns an error3501 renders the error message3502 when feature is not available3503 behaves like response with 404 status3504 returns 4043505Query.gitlabSubscriptionsPreviewBillableUserChange3506 # order random3507 with group query3508 behaves like preview billable user change3509 when project_or_group does not exist3510 returns nil3511 when project_or_group exists3512 when current_user has access to project_or_group3513 with add_group_id3514 returns successfully3515 with add_user_emails3516 returns successfully3517 with add_user_ids3518 returns successfully3519 when missing all add_* arguments3520 returns error3521 when current_user does not have access to project_or_group3522 returns error3523 with project query3524 behaves like preview billable user change3525 when project_or_group does not exist3526 returns nil3527 when project_or_group exists3528 when current_user has access to project_or_group3529 with add_group_id3530 returns successfully3531 with add_user_emails3532 returns successfully3533 with add_user_ids3534 returns successfully3535 when missing all add_* arguments3536 returns error3537 when current_user does not have access to project_or_group3538 returns error3539API::GitlabSubscriptions::AddOnPurchases3540 # order random3541 POST /namespaces/:id/subscription_add_on_purchase/:add_on_name3542 with a non-admin user3543 returns :forbidden3544 with admin user3545 when feature flag is disabled3546 behaves like not found error3547 returns :not_found3548 when the feature flag is enabled3549 when the namespace cannot be found3550 behaves like not found error3551 returns :not_found3552 when the add-on cannot be found3553 behaves like not found error3554 returns :not_found3555 when the add-on purchase does not exist3556 creates a new add-on purchase3557 when the add-on purchase cannot be saved3558 returns an error3559 when the add-on purchase already exists3560 does not create a new add-on purchase and does not update the existing one3561 PUT /namespaces/:id/subscription_add_on_purchase/:add_on_name3562 with a non-admin user3563 returns :forbidden3564 with admin user3565 when feature flag is disabled3566 behaves like not found error3567 returns :not_found3568 when the feature flag is enabled3569 when the namespace cannot be found3570 behaves like not found error3571 returns :not_found3572 when the add-on cannot be found3573 behaves like not found error3574 returns :not_found3575 when the add-on purchase exists3576 updates the found add-on purchase3577 with only required params3578 updates the add-on purchase3579 when the add-on purchase cannot be saved3580 returns an error3581 when the add-on purchase does not exist3582 returns an error3583 GET /namespaces/:id/subscription_add_on_purchase/:add_on_name3584 with a non-admin user3585 returns :forbidden3586 with admin user3587 when feature flag is disabled3588 behaves like not found error3589 returns :not_found3590 when the feature flag is enabled3591 when the namespace cannot be found3592 behaves like not found error3593 returns :not_found3594 when the add-on cannot be found3595 behaves like not found error3596 returns :not_found3597 when the add-on purchase does not exist3598 behaves like not found error3599 returns :not_found3600 when the add-on purchase exists3601 returns the found add-on purchase3602Groups::MergeRequestsController3603 POST #bulk_update3604 when group bulk edit feature is not enabled3605 returns 404 status3606 when group bulk edit feature is enabled3607 when user has permissions to bulk update merge requests3608 returns status 2003609 updates merge requests milestone3610 when user does not have permissions to bulk update merge requests3611 returns status 4043612 does not update merge requests milestone3613Adding a Note to an Epic3614 when the user does not have permission3615 behaves like a Note mutation when the user does not have permission3616 behaves like a Note mutation that does not create a Note3617 is expected not to change `Note.count`3618 behaves like a mutation that returns top-level errors3619 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"3620 when the user has permission3621 when using internal param3622 behaves like a Note mutation with confidential notes3623 returns a Note with confidentiality enabled3624 behaves like a Note mutation that creates a Note3625 is expected to change `Note.count` by 13626 when using deprecated confidential param3627 behaves like a Note mutation with confidential notes3628 returns a Note with confidentiality enabled3629 behaves like a Note mutation that creates a Note3630 is expected to change `Note.count` by 13631 when body contains quick actions3632 behaves like work item supports weights widget updates via quick actions3633 updates the work item3634 behaves like work item does not support weights widget updates via quick actions3635 ignores the quick action3636 behaves like work item supports health status widget updates via quick actions3637 updates work item health status3638 behaves like work item does not support health status widget updates via quick actions3639 ignores the quick action3640Unassigns scan execution policy project from a project/namespace3641 for project3642 behaves like unassigns security policy project3643 when licensed feature is available3644 when user is an owner of the container3645 when there is no security policy project assigned to the container3646 does not unassign the security policy project3647 when security policy project is assigned to the container3648 unassigns the security policy project3649 when user is not an owner3650 behaves like a mutation that returns top-level errors3651 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"3652 when feature is not licensed3653 behaves like a mutation that returns top-level errors3654 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"3655 for namespace3656 behaves like unassigns security policy project3657 when licensed feature is available3658 when user is an owner of the container3659 when there is no security policy project assigned to the container3660 does not unassign the security policy project3661 when security policy project is assigned to the container3662 unassigns the security policy project3663 when user is not an owner3664 behaves like a mutation that returns top-level errors3665 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"3666 when feature is not licensed3667 behaves like a mutation that returns top-level errors3668 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"3669Creating an Epic3670 when the user does not have permission3671 does not create epic3672 behaves like a mutation that returns a top-level access error3673 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"3674 when the user has permission3675 when epics are disabled3676 behaves like a mutation that returns top-level errors3677 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"3678 when epics are enabled3679 creates the epic3680 when using a named color3681 sets the color correctly3682 the color is invalid3683 reports a coercion error3684 when there are ActiveRecord validation errors3685 does not create the epic3686 behaves like a mutation that returns errors in the response3687 is expected to contain exactly "Title can't be blank"3688 when the list of attributes is empty3689 does not create the epic3690 behaves like a mutation that returns top-level errors3691 is expected to contain exactly "The list of epic attributes is empty"3692API::Repositories3693 GET /projects/:id/repository/archive(.:format)?:sha3694 when unauthenticated and project is public3695 behaves like an auditable and successful request3696 logs the audit event3697 sends the archive3698 when authenticated as a developer3699 behaves like an auditable and successful request3700 logs the audit event3701 sends the archive3702 projects download throttling3703 when user is banned from the project's top-level group3704 returns forbidden error3705 when user is not banned from the project's top-level group3706 returns the repository archive3707Admin::ProjectsController3708 GET /projects/:id3709 when geo_project_repository_replication FF is disabled3710 includes Geo Status widget partial3711 when geo_project_repository_replication FF is enabled3712 hides Geo Status widget partial3713 when Geo is enabled and is a secondary node3714 renders Geo Status widget3715 displays a different read-only message based on skip_readonly_message3716 without Geo enabled3717 doesnt render Geo Status widget3718Creating a new HTTP Integration3719 stores the custom mapping params3720 behaves like creating a new HTTP integration3721 creates a new integration3722 without required argument project_path3723 behaves like an invalid argument to the mutation3724 behaves like a mutation that returns top-level errors3725 is expected to contain exactly (include "invalid value for projectPath")3726 without required argument active3727 behaves like an invalid argument to the mutation3728 behaves like a mutation that returns top-level errors3729 is expected to contain exactly (include "invalid value for active")3730 without required argument name3731 behaves like an invalid argument to the mutation3732 behaves like a mutation that returns top-level errors3733 is expected to contain exactly (include "invalid value for name")3734 with the custom mappings feature unavailable3735 behaves like ignoring the custom mapping3736 creates integration without the custom mapping params3737 behaves like validating the payload_example3738 validates the payload_example size3739 with invalid payloadExample attribute3740 responds with errors3741 behaves like validating the payload_attribute_mappings3742 with invalid payloadAttributeMapping attribute does not contain fieldName3743 responds with errors3744 with invalid payloadAttributeMapping attribute does not contain path3745 responds with errors3746 with invalid payloadAttributeMapping attribute does not contain type3747 responds with errors3748Onboarding3749 # order random3750 .user_onboarding_enabled?3751 ensure_onboarding?: true, should_check_namespace_plan?: true3752 is expected to equal true3753 ensure_onboarding?: true, should_check_namespace_plan?: false3754 is expected to equal false3755 ensure_onboarding?: false, should_check_namespace_plan?: true3756 is expected to equal false3757 ensure_onboarding?: false, should_check_namespace_plan?: false3758 is expected to equal false3759 .user_onboarding_in_progress?3760 user?: true, user_onboarding?: true, ensure_onboarding?: true, should_check_namespace_plan?: true3761 is expected to equal true3762 user?: true, user_onboarding?: true, ensure_onboarding?: true, should_check_namespace_plan?: false3763 is expected to equal false3764 user?: true, user_onboarding?: true, ensure_onboarding?: false, should_check_namespace_plan?: true3765 is expected to equal false3766 user?: true, user_onboarding?: true, ensure_onboarding?: false, should_check_namespace_plan?: false3767 is expected to equal false3768 user?: true, user_onboarding?: false, ensure_onboarding?: true, should_check_namespace_plan?: true3769 is expected to equal false3770 user?: true, user_onboarding?: false, ensure_onboarding?: true, should_check_namespace_plan?: false3771 is expected to equal false3772 user?: true, user_onboarding?: false, ensure_onboarding?: false, should_check_namespace_plan?: true3773 is expected to equal false3774 user?: true, user_onboarding?: false, ensure_onboarding?: false, should_check_namespace_plan?: false3775 is expected to equal false3776 user?: false, user_onboarding?: true, ensure_onboarding?: true, should_check_namespace_plan?: true3777 is expected to equal false3778 user?: false, user_onboarding?: true, ensure_onboarding?: true, should_check_namespace_plan?: false3779 is expected to equal false3780 user?: false, user_onboarding?: true, ensure_onboarding?: false, should_check_namespace_plan?: true3781 is expected to equal false3782 user?: false, user_onboarding?: true, ensure_onboarding?: false, should_check_namespace_plan?: false3783 is expected to equal false3784 user?: false, user_onboarding?: false, ensure_onboarding?: true, should_check_namespace_plan?: true3785 is expected to equal false3786 user?: false, user_onboarding?: false, ensure_onboarding?: true, should_check_namespace_plan?: false3787 is expected to equal false3788 user?: false, user_onboarding?: false, ensure_onboarding?: false, should_check_namespace_plan?: true3789 is expected to equal false3790 user?: false, user_onboarding?: false, ensure_onboarding?: false, should_check_namespace_plan?: false3791 is expected to equal false3792view audit events3793 GET /groups/:group/-/audit_events3794 returns 200 response3795 avoids N+1 DB queries3796Rack Attack EE throttles3797 requests to prometheus alert notify endpoint with oauth token3798 behaves like incident management rate limiting3799 limits set3800 when the throttle is enabled3801 rejects requests over the rate limit3802 allows requests after throttling and then waiting for the next period3803 when the throttle is disabled3804 allows requests over the rate limit3805 requests to generic alert notify endpoint with oauth token3806 behaves like incident management rate limiting3807 limits set3808 when the throttle is enabled3809 rejects requests over the rate limit3810 allows requests after throttling and then waiting for the next period3811 when the throttle is disabled3812 allows requests over the rate limit3813 requests to AlertManagement::HttpIntegration notify endpoint with oauth token3814 behaves like incident management rate limiting3815 limits set3816 when the throttle is enabled3817 rejects requests over the rate limit3818 allows requests after throttling and then waiting for the next period3819 when the throttle is disabled3820 allows requests over the rate limit3821TrialRegistrationsController3822 POST create3823 when email_opted_in does not exist in params3824 sets user email_opted_in to false3825 when email_opted_in is true in params3826 sets user email_opted_in to true3827 with snowplow tracking3828 when the password is weak3829 does not track failed form submission3830 when the password is not weak3831 tracks successful form submission3832 with email confirmation3833 when email confirmation settings is set to `soft`3834 does not track an almost there redirect3835 when email confirmation settings is not set to `soft`3836 tracks an almost there redirect3837 behaves like creates a user with ArkoseLabs risk band on signup request3838 when arkose_labs_token verification succeeds3839 records the user's data from Arkose Labs3840 behaves like creates the user3841 creates the user3842 when verification fails3843 does not record the user's data from Arkose Labs3844 behaves like renders new action with an alert flash3845 renders new action with an alert flash3846 when user is not persisted3847 does not record the user's data from Arkose Labs3848 when the feature flag is disabled3849 behaves like creates the user3850 creates the user3851 behaves like skips verification and data recording3852 skips verification and data recording3853 when feature is disabled3854 behaves like creates the user3855 creates the user3856 behaves like skips verification and data recording3857 skips verification and data recording3858 when reCAPTCHA is enabled3859 behaves like creates the user3860 creates the user3861 when reCAPTCHA verification fails3862 does not create the user3863 when arkose_labs_token param is not present3864 behaves like renders new action with an alert flash3865 renders new action with an alert flash3866 behaves like skips verification and data recording3867 skips verification and data recording3868getting compliance frameworks for a collection of projects3869 querying a single project3870 avoids N+1 queries3871 contains the expected compliance framework3872 projects can have a compliance framework3873 contains the correct number of compliance frameworks3874 projects that share the same compliance framework3875 shares the same compliance framework id3876Getting code coverage summary in a project3877 behaves like a working graphql query3878 returns a successful response3879 when project has coverage3880 for the default branch3881 contains code coverage summary data3882 not for the default branch3883 returns nil3884 when project does not have coverage3885 returns nil3886CredentialsInventoryMailer3887 #personal_access_token_revoked_email3888 is expected to have subject of "Your Personal Access Token was revoked"3889 is expected to have body including "The following Personal Access Token was revoked by an administrator, Revoker"3890 is expected to have body including "PAT 782"3891 is expected to have body including "Created on Aug 10, 2023"3892 is expected to have body including "Scopes: api, sudo"3893 is expected to be delivered to ["user1818@example.org"]3894 is expected to have body including "Last used 21 days ago"3895 #ssh_key_deleted_email3896 is expected to have subject of "Your SSH key was deleted"3897 is expected to have body including "The following SSH key was deleted by an administrator, Revoker"3898 is expected to be delivered to ["user1819@example.org"]3899 is expected to have body including "My title 511"3900 is expected to have body including "Created on Aug 10, 2023"3901 is expected to have body including "Last used 21 days ago"3902API::ResourceStateEvents3903 # order random3904 when eventable is an Epic3905 behaves like resource_state_events API3906 GET /groups/:id/epics/:noteable_id/resource_state_events3907 returns an array of resource state events3908 returns a 404 error when eventable id not found3909 returns 404 when not authorized3910 GET /groups/:id/epics/:noteable_id/resource_state_events/:event_id3911 returns a resource state event by id3912 returns 404 when not authorized3913 returns a 404 error if resource state event not found3914 pagination3915 returns the second page3916Groups::Analytics::CycleAnalyticsController3917 GET show3918 when the license is available3919 succeeds3920 increments usage counter3921 renders `show` template when feature flag is enabled3922 when the initial, default value stream is requested3923 renders the default in memory value stream3924 when invalid name is given3925 renders 404 error3926 tracking events3927 tracks redis hll event3928 behaves like Snowplow event tracking with RedisHLL context3929 behaves like Snowplow event tracking3930 is emitted3931 when the license is missing3932 renders 403 error3933 when non-existent group is given3934 renders 404 error3935 with group and value stream params3936 builds request params with group and value stream3937Creating Issue Links3938 # order random3939 when the user does not have access3940 behaves like a mutation that returns a top-level access error3941 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"3942 when the user has access3943 when security_dashboard is disabled3944 behaves like a mutation that returns top-level errors3945 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"3946 when security_dashboard is enabled3947 creates the issue links3948 when too many vulnerabilities are passed3949 behaves like a mutation that returns top-level errors3950 is expected to contain exactly /Maximum vulnerability_ids exceeded \(1\)/3951 when the user does not have access to the issue3952 behaves like a mutation that returns a top-level access error3953 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"3954 when issue_id is nil3955 behaves like a mutation that returns top-level errors3956 is expected to contain exactly /Expected value to not be null/3957 when vulnerability_id is nil3958 behaves like a mutation that returns top-level errors3959 is expected to contain exactly /Expected value to not be null/3960 when vulnerability_ids are empty3961 behaves like a mutation that returns top-level errors3962 is expected to contain exactly "At least 1 value must be provided for vulnerability_ids"3963getting Alert Management HTTP Integrations3964 with integrations3965 without project permissions3966 is expected to be nil3967 behaves like a working graphql query3968 returns a successful response3969 with developer permissions3970 is expected to eq []3971 behaves like a working graphql query3972 returns a successful response3973 with maintainer permissions3974 when no extra params given3975 is expected to eq 23976 returns the correct properties of the integrations3977 behaves like a working graphql query3978 returns a successful response3979 when HTTP Integration ID is given3980 returns the correct properties of the integration3981 behaves like a working graphql query3982 returns a successful response3983 behaves like GraphQL query with several integrations requested3984 when several HTTP integrations requested3985 returns the correct properties of the integrations3986 batches queries3987Querying a Milestone3988 burnupTimeSeries3989 with insufficient license3990 returns nil3991 when missing dates3992 explains why the report cannot be generated3993 when there are too many events3994 explains why the report cannot be generated3995 when "rollup_timebox_chart" feature flag is enabled3996 explains why the report cannot be generated3997 with correct license3998 returns burnup chart data3999 group milestones4000 behaves like milestones queried by timeframe4001 query for milestones by timeframe4002 without start4003 returns error4004 without end date4005 returns error4006 with start and end date4007 does not have errors4008 project milestones4009 behaves like milestones queried by timeframe4010 query for milestones by timeframe4011 without start4012 returns error4013 without end date4014 returns error4015 with start and end date4016 does not have errors4017Running a DAST Profile4018 behaves like an on-demand scan mutation when user cannot run an on-demand scan4019 when a user does not have access to the project4020 behaves like a mutation that returns a top-level access error4021 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"4022 when a user does not have access to run a dast scan on the project4023 behaves like a mutation that returns a top-level access error4024 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"4025 behaves like an on-demand scan mutation when user can run an on-demand scan4026 returns an empty errors array4027 returns a pipeline_url containing the correct path4028 when on demand scan licensed feature is not available4029 behaves like a mutation that returns a top-level access error4030 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"4031 when pipeline creation fails4032 behaves like a mutation that returns errors in the response4033 is expected to contain exactly "full error messages"4034Query.project(fullPath).dastProfiles.dastProfileSchedule4035 when a user does not have access to the project4036 returns a null project4037 when a user does not have access to dast_profile4038 returns an empty dast_profile4039 when a user has access to dast_profile_schedule4040 returns a dast_profile_schedule4041 behaves like query dastProfiles.dastProfileSchedule shared examples4042 avoids N+1 queries4043Groups::ScimOauthController4044 when the feature is configured4045 POST #create4046 without token4047 creates a new SCIM token record4048 json4049 shows the token4050 shows the url4051 with token4052 does not create a new SCIM token record4053 updates the token4054 json4055 shows the token4056 shows the url4057getting a list of compliance frameworks for a root namespace4058 when authenticated as the namespace owner4059 returns the groups compliance frameworks4060 when querying a specific framework ID4061 returns only a single compliance framework4062 when querying an invalid object ID4063 returns an error message4064 when querying a specific framework that current_user has no access to4065 does not return the framework4066 when querying multiple namespaces4067 avoids N+1 queries4068 responds with the expected list of compliance frameworks4069 when authenticated as a different user4070 does not return the namespaces compliance frameworks4071 when not authenticated4072 does not return the namespace's compliance frameworks4073UserAddOnAssignmentRemove4074 # order random4075 when user_id does not exists4076 behaves like empty response4077 returns nil4078 when current_user is not owner or admin4079 behaves like empty response4080 returns nil4081 behaves like success response4082 returns expected response4083 when feature flag hamilton_seat_management is disabled4084 behaves like empty response4085 returns nil4086 when current_user is admin4087 behaves like success response4088 returns expected response4089 when add_on_purchase has expired4090 behaves like empty response4091 returns nil4092 when the user does not have existing assignment4093 behaves like empty response4094 returns nil4095 when add_on_purchase_id does not exists4096 behaves like empty response4097 returns nil4098API::PypiPackages4099 # order random4100 GET /api/v4/projects/:id/packages/pypi/files/:sha256/*file_identifier4101 behaves like applying ip restriction for group4102 in group without restriction4103 behaves like returning response status4104 returns ok4105 in group with restriction4106 with address within the range4107 behaves like returning response status4108 returns ok4109 with address outside the range4110 behaves like returning response status4111 returns not_found4112 GET /api/v4/groups/:id/-/packages/pypi/files/:sha256/*file_identifier4113 behaves like applying ip restriction for group4114 in group without restriction4115 behaves like returning response status4116 returns ok4117 in group with restriction4118 with address within the range4119 behaves like returning response status4120 returns ok4121 with address outside the range4122 behaves like returning response status4123 returns not_found4124Creating an iteration cadence4125 when the user does not have permission4126 does not create iteration cadence4127 behaves like a mutation that returns a top-level access error4128 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"4129 when the user has permission4130 when iterations feature is disabled4131 behaves like a mutation that returns top-level errors4132 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"4133 when iterations feature is enabled4134 creates the iteration cadence for a group4135 when creating a manual iteration cadence4136 creates an iteration cadence4137 when there are ActiveRecord validation errors4138 does not create the iteration cadence4139 behaves like a mutation that returns errors in the response4140 is expected to contain exactly "Iterations in advance can't be blank", "Start date can't be blank", and "Title can't be blank"4141 when required arguments are missing4142 returns error about required argument4143 does not create the iteration cadence4144Query.project(fullPath).dastSiteValidations4145 when a user does not have access to the project4146 returns a null project4147 when a user does not have access to dast_site_validations4148 returns an empty nodes array4149 when a user has access to dast_site_validations4150 avoids N+1 queries4151 behaves like sorted paginated query4152 behaves like requires variables4153 shared example requires variables to be set4155 when sorting4156 sorts correctly4157 when paginating4158 paginates correctly4159Projects::Pipelines::EmailCampaignsController4160 GET #validate_account4161 when user has access to the pipeline4162 emits a snowplow event4163 sets session[:start_account_validation] to true4164 redirects to the pipeline show page4165 when not in .com or dev env4166 returns 4044167 when user does not have access to the pipeline4168 returns :not_found4169 does not set session[:start_account_validation]4170Groups::RoadmapController4171 #show4172 when the user is signed in4173 when the user has access to the group4174 when epics feature is disabled4175 behaves like returns 404 status4176 is expected to respond with numeric status code not_found4177 when epics feature is enabled4178 returns 200 status4179 when roadmaps_sort is nil4180 stores roadmaps sorting param in user preference4181 defaults to sort_value_start_date_soon4182 when roadmaps_sort is present4183 update roadmaps_sort with current value4184 when the user does not have access to the group4185 behaves like returns 404 status4186 is expected to respond with numeric status code not_found4187 when user is not signed in4188 when epics feature is enabled4189 when anonymous users does not have access to the group4190 redirects to login page4191 when anonymous users have access to the group4192 stores epics sorting param in a cookie4193getting external status checks for a branch rule4194 # order random4195 is expected to eq 14196 when the user does have read_external_status_check permission4197 behaves like a working graphql query4198 returns a successful response4199 returns external_status_checks_data4200 when the user does not have read_external_status_check permission4201 behaves like a working graphql query4202 returns a successful response4203 hides external_status_checks_data4204Assigns scan execution policy project to a project/namespace4205 for project4206 behaves like assigns security policy project4207 when licensed feature is available4208 when user is an owner of the container4209 assigns the security policy project4210 when user is not an owner4211 behaves like a mutation that returns top-level errors4212 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"4213 when policy_project_id is invalid4214 behaves like a mutation that returns top-level errors4215 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"4216 when feature is not licensed4217 behaves like a mutation that returns top-level errors4218 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"4219 for namespace4220 behaves like assigns security policy project4221 when licensed feature is available4222 when user is an owner of the container4223 assigns the security policy project4224 when user is not an owner4225 behaves like a mutation that returns top-level errors4226 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"4227 when policy_project_id is invalid4228 behaves like a mutation that returns top-level errors4229 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"4230 when feature is not licensed4231 behaves like a mutation that returns top-level errors4232 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"4233Destroy an epic board list4234 behaves like board lists destroy request4235 when the user does not have permission4236 does not destroy the list4237 returns an error4238 when the user has permission4239 when given id is not for a list4240 returns an error4241 when list does not exist4242 returns a top level error4243 when everything is ok4244 destroys the list4245 returns an empty list4246 when the list is not destroyable4247 behaves like does not destroy the list and returns an error4248 does not destroy the list4249 returns an error and not nil list4250Admin::AuditLogsController4251 GET #index4252 licensed4253 tracks search event4254 pagination4255 paginates audit events, without casting a count query4256 behaves like tracking unique visits4257 tracks unique visit if the format is HTML4258 tracks unique visit if DNT is not enabled4259 does not track unique visit if DNT is enabled4260 does not track unique visit if the format is JSON4261 behaves like Snowplow event tracking with RedisHLL context4262 behaves like Snowplow event tracking4263 is emitted4264 when invalid date4265 created_before: "invalid-date", created_after: nil4266 returns an error4267 created_before: nil, created_after: true4268 returns an error4269 created_before: "2021-13-10", created_after: nil4270 returns an error4271 created_before: nil, created_after: "2021-02-31"4272 returns an error4273 created_before: "2021-03-31", created_after: "2021-02-31"4274 returns an error4275 when date range is greater than limit4276 behaves like a date range error is returned4277 created_after: "2021-01-01", created_before: "2021-02-02"4278 returns an error4279 created_after: "2022-01-31", created_before: nil4280 returns an error4281 by user4282 finds the user by id when provided with a entity_id4283 finds the user by username when provided with a entity_username4284SessionsController4285 # order random4286 #create4287 when identity verification is turned off4288 is expected to redirect to "/"4289 does not set the `verification_user_id` session variable4290 when identity verification is turned on4291 is expected to redirect to "/users/identity_verification"4292 sets the `verification_user_id` session variable4293 when the user is verified4294 is expected to redirect to "/"4295 when the user is locked4296 is expected not to respond with numeric status code redirect4297 when the user is a GitLab QA user4298 is expected not to redirect to "/users/identity_verification"4299API::CaptchaCheck4300 POST users/captcha_check4301 when the feature flag arkose_labs_login_challenge is disabled4302 does return not found status4303 when the feature flag arkose_labs_login_challenge is enabled4304 when the username is invalid4305 does return 200 OK status to prevent enumeration4306 when the username has a dot4307 does return 200 status4308 when the username is nil4309 does return 200 OK status to prevent enumeration4310 when the username is an array4311 does return 200 OK status to prevent enumeration4312 when the email is valid4313 returns status ok4314 when the email is unknown4315 returns 200 OK status to prevent enumeration4316 when the email is invalid4317 returns 200 OK status to prevent enumeration4318 when the user meets the criteria for the captcha check4319 does return true4320 when the user does not meets the criteria for the captcha check4321 does return true4322 when the user reach the rate limit4323 does return true4324Create test case4325 #resolve4326 when quality management feature is not available4327 behaves like a mutation that returns top-level errors4328 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"4329 when quality management feature is available4330 when user can create test cases4331 creates new test case4332 with invalid arguments4333 behaves like an invalid argument to the mutation4334 behaves like a mutation that returns top-level errors4335 is expected to contain exactly (include "invalid value for notValid")4336 when user cannot create test cases4337 behaves like a mutation that returns top-level errors4338 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"4339Groups::Settings::ReportingController4340 GET /groups/:group_id/-/settings/reporting4341 when user is owner4342 renders show with 200 status code4343 behaves like 404 when feature is unavailable4344 when feature flag is disabled4345 behaves like renders 4044346 renders 4044347 when licensed feature is not available4348 behaves like renders 4044349 renders 4044350 when subgroup4351 behaves like renders 4044352 renders 4044353 when user is not owner4354 renders a 4044355Querying a Board list4356 when the user has access to the list4357 is expected to include {"issuesCount" => 2, "title" => "foo"}4358 behaves like a working graphql query4359 returns a successful response4360 issue filters4361 when filtering by iteration arguments4362 is expected to include {"issuesCount" => 1, "title" => "foo"}4363 when filtering by health_status argument4364 is expected to include {"issuesCount" => 1, "title" => "foo"}4365 when filtering by negated health_status argument4366 is expected to include {"issuesCount" => 1, "title" => "foo"}4367 when the user does not have access to the list4368 is expected to be nil4369Updating an iteration cadence4370 when the user does not have permission4371 does not update the iteration cadence4372 behaves like a mutation that returns a top-level access error4373 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"4374 when the user has permission4375 when iterations feature is disabled4376 behaves like a mutation that returns top-level errors4377 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"4378 when iterations feature is enabled4379 updates the iteration cadence4380 when there are ActiveRecord validation errors4381 does not update the iteration cadence4382 behaves like a mutation that returns errors in the response4383 is expected to contain exactly "Title can't be blank"4384 when required arguments are missing4385 returns error about required argument4386Query.vulnerabilities.externalIssueLinks4387 when queried for the first time with reactive caching4388 schedules a background job to fetch data from Jira4389 returns null as value for externalIssue4390 when queried without reactive caching4391 returns a list of all VulnerabilityExternalIssueLink4392Projects::RepositoriesController4393 # order random4394 GET /archive4395 when user is banned from the project's top-level group4396 prevents the archive download4397 when user is not banned from the project's top-level group4398 proceeds with the archive download4399getting Incident Management on-call shifts4400 # order random4401 adding participants4402 updates the rotation and adds participants4403 updating name only4404 updates the rotation4405 removing participants4406 updates the rotation and removes participants4407 errors4408 user cannot be found4409 raises an error4410Projects::MirrorsController4411 updates the mirror URL4412 complains about passing an empty URL4413NamespaceCiCdSettingsUpdate4414 when unauthorized4415 when not a namespace member4416 behaves like unauthorized4417 returns an error4418 when a non-admin namespace member4419 behaves like unauthorized4420 returns an error4421 when authorized4422 updates allow_stale_runner_pruning?4423 does not update allow_stale_runner_pruning? if not specified4424 when bad arguments are provided4425 returns the errors4426OmniAuth Kerberos SPNEGO4427 asks for an SPNEGO token4428 when an SPNEGO token is provided4429 passes the token to spnego_negotiate!4430 when the final SPNEGO token is provided4431 redirects to the omniauth callback4432 stores the users principal name in the session4433 send the final SPNEGO response4434Query.issue(id)4435 # order random4436 when user has no access to the epic4437 when there is an epic4438 returns null for epic and hasEpic is `true`4439 when there is no epic4440 returns null for epic and hasEpic is `false`4441 when user has access to the epic4442 returns epic and hasEpic is `true`4443getting a list of external audit event destinations for a group4444 when authenticated as the group owner4445 returns the groups external audit event destinations4446 when authenticated as a group maintainer4447 behaves like a request that returns no destinations4448 returns no destinations4449 when authenticated as a group developer4450 behaves like a request that returns no destinations4451 returns no destinations4452 when authenticated as a group guest4453 behaves like a request that returns no destinations4454 returns no destinations4455 when not authenticated4456 behaves like a request that returns no destinations4457 returns no destinations4458UsersController4459 # order random4460 #available_group_templates4461 shows the first page of the pagination4462EE::Emails::Profile4463 #policy_revoked_personal_access_tokens_email4464 is sent to the user4465 has the correct subject4466 mentions the access tokens were revoke4467 includes a link to personal access tokens page4468 includes the email reason4469Groups::Settings::MergeRequestsController4470 # order random4471 PATCH #update4472 when user is not an admin4473 respond status :not_found4474 when user is an admin4475 is expected to redirect to "/groups/group312/-/edit#js-merge-requests-settings"4476 when service execution went wrong4477 returns a flash alert4478 when service execution was successful4479 returns a flash notice4480Create a milestone or assignee board list4481 the user is not allowed to read board lists4482 behaves like a mutation that returns a top-level access error4483 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"4484 when user has permissions to admin board lists4485 milestone list4486 creates the list4487 assignee list4488 creates the list4489API::ConanProjectPackages4490 # order random4491 GET /api/v4/projects/:id/packages/conan/v1/files/:package_name/package_version/:package_username/:package_channel/:recipe_revision/package/:conan_package_reference/:package_revision/:file_name4492 behaves like applying ip restriction for group4493 in group without restriction4494 behaves like returning response status4495 returns ok4496 in group with restriction4497 with address within the range4498 behaves like returning response status4499 returns ok4500 with address outside the range4501 behaves like returning response status4502 returns not_found4503Projects::Security::DastConfigurationController4504 GET #show4505 when the "Security and Compliance" feature is disabled4506 is expected to respond with numeric status code not_found4507 feature available4508 user authorized4509 can access page4510 user not authorized4511 sees a 404 error4512 feature not available4513 license doesn't support the feature4514 sees a 404 error4515API::HelmPackages4516 # order random4517 GET /api/v4/projects/:id/packages/helm/:channel/charts/:file_name.tgz4518 behaves like applying ip restriction for group4519 in group without restriction4520 behaves like returning response status4521 returns ok4522 in group with restriction4523 with address within the range4524 behaves like returning response status4525 returns ok4526 with address outside the range4527 behaves like returning response status4528 returns not_found4529Projects::Settings::IntegrationsController4530 sets correct services list4531 without a license key4532 behaves like endpoint with some disabled integrations4533 has some disabled integrations4534 with a license key4535 when checking if namespace plan is enabled4536 behaves like endpoint with some disabled integrations4537 has some disabled integrations4538 when checking if namespace plan is not enabled4539 behaves like endpoint without disabled integrations4540 does not have disabled integrations4541Query.project(fullPath).pushRules4542 returns nil when push_rules license is false4543 pushRules.rejectUnsignedCommits4544 field_value: true, license_value: true, expected: true4545 returns4546 field_value: true, license_value: false, expected: false4547 returns4548 field_value: false, license_value: true, expected: false4549 returns4550 field_value: false, license_value: false, expected: false4551 returns4552Environments Deployments query4553 # order random4554 when requesting user permissions4555 limits the result4556API::NugetGroupPackages4557 # order random4558 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/*package_version4559 behaves like applying ip restriction for group4560 in group without restriction4561 behaves like returning response status4562 returns ok4563 in group with restriction4564 with address within the range4565 behaves like returning response status4566 returns ok4567 with address outside the range4568 behaves like returning response status4569 returns not_found4570Creating an issuable resource link4571 # order random4572 creates issuable resource link4573 returns error4574 when link is invalid4575 returns nil4576Admin::ApplicationSettings::ScimOauthController4577 # order random4578 POST admin_application_settings_scim_oauth4579 when the user is an admin4580 when admin mode is not enabled4581 returns access denied4582 when admin mode is enabled4583 when the feature is not available4584 returns not found4585 when the feature is available4586 successfully creates a token4587 when a token already exists4588 successfully resets the token4589 when the SCIM token is invalid4590 returns an error4591 when the user is not an admin4592 returns not found4593Create a label or backlog board list4594 behaves like board lists create request4595 the user is not allowed to read board lists4596 behaves like a mutation that returns a top-level access error4597 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"4598 when user has permissions to admin board lists4599 backlog list4600 creates the list4601 label list4602 creates the list4603Security::VulnerabilitiesController4604 GET #index4605 behaves like Security::ApplicationController4606 when the user is authenticated4607 responds with success4608 and the instance does not have an Ultimate license4609 404s4610 when the user is not authenticated4611 redirects the user to the sign in page4612 when security dashboard feature4613 is enabled4614 is expected to render template instance_security4615 is disabled4616 is expected to respond with numeric status code not_found4617 is expected to render template errors/not_found4618getting a compliance frameworks list for a project4619 when the project has no compliance framework assigned4620 is an empty array4621 when the project has a compliance framework assigned4622 includes its name4623Projects::CycleAnalyticsController4624 # order random4625 with project and value stream id params4626 builds request params with project and value stream4627Admin::DashboardController4628 #index4629 allows an admin user to access the page4630 does not allow an auditor user to access the page4631 does not allow a regular user to access the page4632Emails::ComplianceFrameworks4633 # order random4634 #compliance_frameworks_csv_email4635 renders an email with attachment4636Projects::IncidentsController4637 # order random4638 GET #show4639 exposes the escalation_policies licensed feature setting4640API::Ai::Experimentation::Anthropic4641 # order random4642 POST /ai/experimentation/anthropic/complete4643 behaves like delegates AI request to Workhorse4644 responds with Workhorse send-url headers4645 behaves like behind AI related feature flags4646 when anthropic_experimentation is disabled4647 responds as not found4648 when ai_experimentation_api is disabled4649 responds as not found4650Ci/Cd settings through GroupQuery4651 when group has no associated ci_cd_settings4652 returns false for allowStaleRunnerPruning4653 when group has associated ci_cd_settings4654 with allow_stale_runner_pruning set to false4655 returns false for allowStaleRunnerPruning4656 with allow_stale_runner_pruning set to true4657 returns true for allowStaleRunnerPruning4658Groups::Security::MergeCommitReportsController4659 GET index4660 when feature is enabled4661 when user has access to dashboard4662 tells the service to enqueue a job4663 when user does not have access to dashboard4664 behaves like returns not found4665 is expected to respond with numeric status code not_found4666 when feature is not enabled4667 behaves like returns not found4668 is expected to respond with numeric status code not_found4669SitemapController4670 #show4671 when not Gitlab.com?4672 returns :not_found4673 when Gitlab.com?4674 with an authenticated user4675 when the sitemap generation raises an error4676 returns an xml error4677 when the sitemap was created suscessfully4678 returns sitemap4679Profiles::KeysController4680 #create4681 logs the audit event4682AuditEvents::AuditEventsParams4683 # order random4684 #filter_by_author4685 returns params when the user has permission to view all events4686 returns safe params with the current user id when the user lacks permission to view all events4687Knapsack report was generated. Preview:4688{4689 "ee/spec/requests/api/visual_review_discussions_spec.rb": 126.85829232600008,4690 "ee/spec/requests/search_controller_spec.rb": 99.59402630900058,4691 "ee/spec/requests/api/scim/group_scim_spec.rb": 67.60098646799997,4692 "ee/spec/controllers/operations_controller_spec.rb": 64.60703347899926,4693 "ee/spec/controllers/projects/issues_controller_spec.rb": 48.98680348200014,4694 "ee/spec/requests/api/project_approval_settings_spec.rb": 52.977012276000096,4695 "ee/spec/requests/api/vulnerability_findings_spec.rb": 49.26449425900046,4696 "ee/spec/mailers/notify_spec.rb": 39.13953087899972,4697 "ee/spec/requests/api/merge_request_approvals_spec.rb": 29.81869892299892,4698 "ee/spec/controllers/projects/push_rules_controller_spec.rb": 37.88818240299952,4699 "ee/spec/requests/api/graphql/mutations/epic_tree/reorder_spec.rb": 30.811409980000462,4700 "ee/spec/requests/api/graphql/issues_spec.rb": 23.785196029999497,4701 "ee/spec/requests/projects/merge_requests_controller_spec.rb": 25.656448788999114,4702 "ee/spec/controllers/groups/analytics/cycle_analytics/stages_controller_spec.rb": 22.74999507999928,4703 "ee/spec/requests/git_http_spec.rb": 20.29390609800066,4704 "ee/spec/requests/api/epic_links_spec.rb": 14.0233154739999,4705 "ee/spec/requests/api/related_epic_links_spec.rb": 17.6856890199997,4706 "ee/spec/requests/api/graphql/project/issues_spec.rb": 17.59101394800018,4707 "ee/spec/controllers/groups/audit_events_controller_spec.rb": 11.310383476000425,4708 "ee/spec/requests/api/graphql/epics/epic_resolver_spec.rb": 14.872512948999429,4709 "ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 20.197677546000705,4710 "ee/spec/requests/api/project_push_rule_spec.rb": 13.440874916999746,4711 "ee/spec/requests/api/admin/search/zoekt_spec.rb": 10.536320383998827,4712 "ee/spec/requests/projects/analytics/cycle_analytics/value_streams_controller_spec.rb": 11.950743269000668,4713 "ee/spec/controllers/projects/security/vulnerabilities_controller_spec.rb": 10.329333113000757,4714 "ee/spec/requests/projects/on_demand_scans_controller_spec.rb": 9.943005836999873,4715 "ee/spec/controllers/projects/settings/merge_requests_controller_spec.rb": 9.846099345999392,4716 "ee/spec/controllers/projects/feature_flag_issues_controller_spec.rb": 9.743901044001177,4717 "ee/spec/requests/api/award_emoji_spec.rb": 8.071627513998465,4718 "ee/spec/requests/api/geo_spec.rb": 4.526907548000963,4719 "ee/spec/requests/api/graphql/mutations/audit_events/google_cloud_logging_configurations/create_spec.rb": 7.418322081999577,4720 "ee/spec/requests/ee/registrations_controller_spec.rb": 6.582952095999644,4721 "ee/spec/controllers/groups/hooks_controller_spec.rb": 10.660752854000748,4722 "ee/spec/requests/api/graphql/mutations/vulnerabilities/bulk_dismiss_spec.rb": 7.600289485000758,4723 "ee/spec/requests/smartcard_controller_spec.rb": 4.417257136999979,4724 "ee/spec/requests/groups/analytics/dashboards_controller_spec.rb": 9.197508423001636,4725 "ee/spec/requests/api/analytics/group_activity_analytics_spec.rb": 3.3020237870005076,4726 "ee/spec/requests/api/graphql/project/pipeline/security_report_summary_spec.rb": 8.62332303400035,4727 "ee/spec/requests/api/dependencies_spec.rb": 5.728756561000409,4728 "ee/spec/requests/api/graphql/boards/epic_lists_query_spec.rb": 5.6318400200016185,4729 "ee/spec/controllers/ee/dashboard/projects_controller_spec.rb": 5.2546671830004925,4730 "ee/spec/requests/api/internal/app_sec/dast/site_validations_spec.rb": 3.450945853999656,4731 "ee/spec/requests/api/graphql/mutations/security/finding/revert_to_detected_spec.rb": 5.482063243000084,4732 "ee/spec/requests/api/graphql/dora/dora_scores_spec.rb": 5.705330602999311,4733 "ee/spec/requests/api/graphql/vulnerabilities/issue_links_spec.rb": 4.414965058000234,4734 "ee/spec/controllers/projects/requirements_management/requirements_controller_spec.rb": 4.677879614999256,4735 "ee/spec/requests/api/graphql/gitlab_subscriptions/preview_billable_user_change_spec.rb": 4.980695467998885,4736 "ee/spec/requests/api/gitlab_subscriptions/add_on_purchases_spec.rb": 2.374592569000015,4737 "ee/spec/controllers/groups/merge_requests_controller_spec.rb": 3.198637826000777,4738 "ee/spec/requests/api/graphql/mutations/notes/create/note_spec.rb": 5.6538604679990385,4739 "ee/spec/requests/api/graphql/mutations/security_policy/unassign_security_policy_project_spec.rb": 4.256324042000415,4740 "ee/spec/requests/api/graphql/mutations/epics/create_spec.rb": 3.9728758780001954,4741 "ee/spec/requests/api/repositories_spec.rb": 2.6820098419993883,4742 "ee/spec/controllers/admin/projects_controller_spec.rb": 5.175493380000262,4743 "ee/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb": 3.2767400089996954,4744 "ee/spec/controllers/concerns/onboarding_spec.rb": 1.0291572580008506,4745 "ee/spec/requests/groups/audit_events_spec.rb": 2.329717182999957,4746 "ee/spec/requests/rack_attack_spec.rb": 3.86980859599862,4747 "ee/spec/requests/trial_registrations_controller_spec.rb": 3.2735959389992786,4748 "ee/spec/requests/api/graphql/projects/compliance_frameworks_spec.rb": 4.882213416998638,4749 "ee/spec/requests/api/graphql/project/code_coverage_summary_spec.rb": 4.815292822000629,4750 "ee/spec/mailers/credentials_inventory_mailer_spec.rb": 1.291884365000442,4751 "ee/spec/requests/api/resource_state_events_spec.rb": 3.646940515998722,4752 "ee/spec/controllers/groups/analytics/cycle_analytics_controller_spec.rb": 4.455294154999137,4753 "ee/spec/requests/api/graphql/mutations/vulnerabilities/create_issue_link_spec.rb": 3.21407774400177,4754 "ee/spec/requests/api/graphql/project/alert_management/http_integrations_spec.rb": 3.7884911639994243,4755 "ee/spec/requests/api/graphql/milestone_spec.rb": 2.1653324569997494,4756 "ee/spec/requests/api/graphql/mutations/dast/profiles/run_spec.rb": 3.3015930959991238,4757 "ee/spec/requests/api/graphql/project/dast_profile_schedule_spec.rb": 3.801970082999105,4758 "ee/spec/controllers/groups/scim_oauth_controller_spec.rb": 2.8964348629997403,4759 "ee/spec/requests/api/graphql/namespace/compliance_frameworks_spec.rb": 3.349809113000447,4760 "ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb": 2.394103017000816,4761 "ee/spec/requests/api/pypi_packages_spec.rb": 2.096140233999904,4762 "ee/spec/requests/api/graphql/mutations/iterations/cadences/create_spec.rb": 2.756310284999927,4763 "ee/spec/requests/api/graphql/project/dast_site_validations_spec.rb": 3.0567935290000605,4764 "ee/spec/requests/projects/pipelines/email_campaigns_controller_spec.rb": 2.383340488000613,4765 "ee/spec/controllers/groups/roadmap_controller_spec.rb": 2.8143183100000897,4766 "ee/spec/requests/api/graphql/project/branch_rules/external_status_checks_spec.rb": 1.7222097869998834,4767 "ee/spec/requests/api/graphql/mutations/security_policy/assign_security_policy_project_spec.rb": 2.9448653889994603,4768 "ee/spec/requests/api/graphql/mutations/boards/epic_lists/destroy_spec.rb": 2.9460108680013946,4769 "ee/spec/controllers/admin/audit_logs_controller_spec.rb": 1.7580410740010848,4770 "ee/spec/requests/sessions_controller_spec.rb": 1.6887142200012022,4771 "ee/spec/requests/api/captcha_check_spec.rb": 0.9898574319995532,4772 "ee/spec/requests/api/graphql/mutations/quality_management/test_cases/create_spec.rb": 1.4881529979993502,4773 "ee/spec/requests/groups/settings/reporting_controller_spec.rb": 2.426867043999664,4774 "ee/spec/requests/api/graphql/boards/board_list_query_spec.rb": 2.098004593999576,4775 "ee/spec/requests/api/graphql/mutations/iterations/cadences/update_spec.rb": 2.2335923119990184,4776 "ee/spec/requests/api/graphql/vulnerabilities/external_issue_links_spec.rb": 2.1844562250007584,4777 "ee/spec/requests/ee/projects/repositories_controller_spec.rb": 1.4982988679985283,4778 "ee/spec/requests/api/graphql/mutations/incident_management/oncall_rotation/update_spec.rb": 1.9285941790003562,4779 "ee/spec/requests/projects/mirrors_controller_spec.rb": 1.2293467109993799,4780 "ee/spec/requests/api/graphql/mutations/ci/namespace_ci_cd_settings_update_spec.rb": 2.031480929999816,4781 "ee/spec/requests/omniauth_kerberos_spec.rb": 0.5825269679990015,4782 "ee/spec/requests/api/graphql/issue/issue_spec.rb": 2.0117797709990555,4783 "ee/spec/requests/api/graphql/group/external_audit_event_destinations_spec.rb": 1.8206717589982873,4784 "ee/spec/requests/users_controller_spec.rb": 1.544791623000492,4785 "ee/spec/mailers/ee/emails/profile_spec.rb": 0.5159513239996159,4786 "ee/spec/requests/groups/settings/merge_requests_controller_spec.rb": 1.5711990500003594,4787 "ee/spec/requests/api/graphql/mutations/boards/lists/create_spec.rb": 1.763954983000076,4788 "ee/spec/requests/api/conan_project_packages_spec.rb": 1.6931929189995572,4789 "ee/spec/requests/projects/security/dast_configuration_controller_spec.rb": 1.5219816449989594,4790 "ee/spec/requests/api/helm_packages_spec.rb": 1.3773578780001117,4791 "ee/spec/controllers/projects/settings/integrations_controller_spec.rb": 1.3677627180004492,4792 "ee/spec/requests/api/graphql/project/push_rules_spec.rb": 1.169719436999003,4793 "ee/spec/requests/api/graphql/environments/deployments_spec.rb": 1.4204228340004192,4794 "ee/spec/requests/api/nuget_group_packages_spec.rb": 1.2468479400013166,4795 "ee/spec/requests/api/graphql/mutations/incident_management/issuable_resource_link/create_spec.rb": 1.1151431309990585,4796 "ee/spec/requests/admin/application_settings/scim_oauth_controller_spec.rb": 0.7988931290001346,4797 "ee/spec/requests/api/graphql/mutations/boards/epic_lists/create_spec.rb": 1.2247608119996585,4798 "ee/spec/controllers/security/vulnerabilities_controller_spec.rb": 0.7302548549996573,4799 "ee/spec/requests/api/graphql/project/compliance_frameworks_spec.rb": 1.2031919529999868,4800 "ee/spec/requests/ee/projects/cycle_analytics_controller_spec.rb": 0.9652561439997953,4801 "ee/spec/controllers/admin/dashboard_controller_spec.rb": 0.6491545120006776,4802 "ee/spec/mailers/emails/compliance_frameworks_spec.rb": 1.0458587869998155,4803 "ee/spec/requests/projects/incidents_controller_spec.rb": 1.1844585850012663,4804 "ee/spec/requests/api/ai/experimentation/anthropic_spec.rb": 0.4429855709986441,4805 "ee/spec/requests/api/graphql/group/ci_cd_settings_spec.rb": 0.5047449559988308,4806 "ee/spec/controllers/groups/security/merge_commit_reports_controller_spec.rb": 0.6543459320000693,4807 "ee/spec/controllers/sitemap_controller_spec.rb": 0.2555584869987797,4808 "ee/spec/controllers/profiles/keys_controller_spec.rb": 0.3331324599985237,4809 "ee/spec/controllers/concerns/audit_events/audit_events_params_spec.rb": 0.197878193001088224810}4811Knapsack global time execution for tests: 19m 45s4812Finished in 19 minutes 48 seconds (files took 1 minute 10.69 seconds to load)48131974 examples, 0 failures4814Randomized with seed 87674815[TEST PROF INFO] Time spent in factories: 09:10.838 (45.11% of total time)4816RSpec exited with 0.4817No examples to retry, congrats!4819Running after script...4820$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"4825Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy4827Uploading artifacts...4828WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 4829coverage/: found 5 matching artifact files and directories 4830crystalball/: found 2 matching artifact files and directories 4831WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 4832knapsack/: found 4 matching artifact files and directories 4833rspec/: found 16 matching artifact files and directories 4834WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 4835log/*.log: found 16 matching artifact files and directories 4836WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4841631428/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com4837WARNING: Retrying... context=artifacts-uploader error=request redirected4838Uploading artifacts as "archive" to coordinator... 201 Created id=4841631428 responseStatus=201 Created token=64_jD7_G4839Uploading artifacts...4840rspec/rspec-*.xml: found 1 matching artifact files and directories 4841WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4841631428/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com4842WARNING: Retrying... context=artifacts-uploader error=request redirected4843Uploading artifacts as "junit" to coordinator... 201 Created id=4841631428 responseStatus=201 Created token=64_jD7_G4845Job succeeded