rspec-ee integration pg14 4/6
Passed Started
by
@dstull
Doug Stull
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-3.shared-gitlab-org.runners-manager.gitlab.com/default EuhiQzPR, system ID: s_360bc95445273 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true, FF_RESOLVE_FULL_TLS_CHAIN:false6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-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:3e6c24d49ca804019e2cfcf4951ed994b550043ce6af3757cb550e8c78892a99 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:50215d6eb4fdf053dfc39bc8a540c94a214139ba2a583092099c9eac46201eee ...34Running on runner-euhiqzpr-project-278964-concurrent-0 via runner-euhiqzpr-shared-gitlab-org-1692360122-6a27952d...36Fetching changes with git depth set to 20...37Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/38Created fresh repository.39remote: Enumerating objects: 150271, done. 40remote: Counting objects: 100% (150271/150271), done. 41remote: Compressing objects: 100% (97595/97595), done. 42remote: Total 150271 (delta 67215), reused 103431 (delta 46893), pack-reused 0 43Receiving objects: 100% (150271/150271), 124.68 MiB | 19.37 MiB/s, done.44Resolving deltas: 100% (67215/67215), done.46 * [new ref] refs/pipelines/972262671 -> refs/pipelines/97226267147Checking out 3f92a6c3 as detached HEAD (ref is refs/merge-requests/129383/merge)...48Skipping Git submodules setup49$ git remote set-url origin "${CI_REPOSITORY_URL}"51Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...52Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 53Successfully extracted cache55Downloading artifacts for compile-test-assets (4900739220)...56Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4900739220 responseStatus=200 OK token=64_hBVyQ57Downloading artifacts for detect-tests (4900739241)...58Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4900739241 responseStatus=200 OK token=64_hBVyQ59Downloading artifacts for retrieve-tests-metadata (4900739253)...60Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4900739253 responseStatus=200 OK token=64_hBVyQ61Downloading artifacts for setup-test-env (4900739227)...62Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4900739227 responseStatus=200 OK token=64_hBVyQ64Using docker image sha256:3e6c24d49ca804019e2cfcf4951ed994b550043ce6af3757cb550e8c78892a99 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:50215d6eb4fdf053dfc39bc8a540c94a214139ba2a583092099c9eac46201eee ...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 2 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-4900739658.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.783234564 seconds204API::Members205 group members endpoints for group with minimal access feature206 GET /groups/:id/members207 returns user with minimal access when feature is available208 does not return user with minimal access when feature is unavailable209 POST /groups/:id/members210 with free user cap considerations211 when there are at the size limit212 behaves like does not add members213 does not add the member214 when there are over the limit215 behaves like does not add members216 does not add the member217 when there is a seat left218 creates a member219 with minimal access concerns220 when minimal access license is not available221 does not create a member222 when minimal access license is available223 creates a member224 cannot be assigned to subgroup225 PUT /groups/:id/members/:user_id226 when setting minimal access role227 when minimal access role license is available228 updates the member229 when minimal access role license is not available230 does not update the member231 when member_role_id param is present232 when custom roles license is enabled233 when member_role is associated with membership group234 behaves like a successful member role update235 updates the member_role236 when member_role is associated with root group of subgroup membership237 behaves like a successful member role update238 updates the member_role239 when member_role is associated with root group of project membership240 behaves like a successful member role update241 updates the member_role242 when member_role has base_access_level that does not match user's access_level243 raises an error244 when member_role is not associated with root group of member source245 raises an error246 when invalid member_role_id247 returns 400248 when member_role_id is nil249 unsets the member_role_id attribute for the member250 when custom roles license is disabled251 ignores the member_role_id param252 DELETE /groups/:id/members/:user_id253 when minimal access role is available254 deletes the member255 when minimal access role is not available256 does not delete the member257 GET /groups/:id/members/:user_id258 when minimal access role is available259 shows the member260 when minimal access role is not available261 does not show the member262 group members endpoint for group managed accounts263 GET /groups/:id/members264 behaves like members response with exposed emails265 is expected to include (a hash including {"email" => "user12@example.org"})266 behaves like members response with hidden emails267 is expected not to include (a hash including {"email" => "user14@example.org"})268 GET /groups/:id/members/:user_id269 with group managed account member270 behaves like member response with exposed email271 is expected to include {"email" => "user18@example.org"}272 with a regular member273 behaves like member response with hidden email274 is expected not to have key "email"275 GET /groups/:id/members/all276 parent group277 behaves like members response with exposed emails278 is expected to include (a hash including {"email" => "user24@example.org"})279 behaves like members response with hidden emails280 is expected not to include (a hash including {"email" => "user28@example.org"})281 child group282 behaves like members response with exposed emails283 is expected to include (a hash including {"email" => "user36@example.org"})284 behaves like members response with hidden emails285 is expected not to include (a hash including {"email" => "user40@example.org"})286 GET /groups/:id/members/all/:user_id287 with group managed account member288 behaves like member response with exposed email289 is expected to include {"email" => "user44@example.org"}290 with regular member291 behaves like member response with hidden email292 is expected not to have key "email"293 with group managed account child group member294 behaves like member response with exposed email295 is expected to include {"email" => "user56@example.org"}296 with child group regular member297 behaves like member response with hidden email298 is expected not to have key "email"299 project members endpoint for group managed accounts300 GET /projects/:id/members301 behaves like members response with exposed emails302 is expected to include (a hash including {"email" => "user66@example.org"})303 behaves like members response with hidden emails304 is expected not to include (a hash including {"email" => "user70@example.org"})305 GET /projects/:id/members/:user_id306 with group managed account member307 behaves like member response with exposed email308 is expected to include {"email" => "user76@example.org"}309 with a regular member310 behaves like member response with hidden email311 is expected not to have key "email"312 GET /project/:id/members/all313 parent group project314 behaves like members response with exposed emails315 is expected to include (a hash including {"email" => "user86@example.org"})316 behaves like members response with hidden emails317 is expected not to include (a hash including {"email" => "user94@example.org"})318 child group project319 behaves like members response with exposed emails320 is expected to include (a hash including {"email" => "user108@example.org"})321 behaves like members response with hidden emails322 is expected not to include (a hash including {"email" => "user116@example.org"})323 GET /projects/:id/members/all/:user_id324 with group managed account member325 behaves like member response with hidden email326 is expected not to have key "email"327 with regular member328 behaves like member response with hidden email329 is expected not to have key "email"330 with group managed account child group member331 behaves like member response with exposed email332 is expected to include {"email" => "user144@example.org"}333 with child group regular member334 behaves like member response with hidden email335 is expected not to have key "email"336 billable member endpoints337 GET /groups/:id/billable_members338 with sub group and projects339 returns paginated billable users340 when the current user does not have the :read_billable_member ability341 is a bad request342 with search params provided343 returns the relevant billable users344 with search and sort params provided345 accepts only sorting options defined in a list346 does not accept query string not defined in a list347 when a specific sorting is provided348 returns the relevant billable users349 when sorting users350 with sort param last_activity_on_desc351 returns paginated users in deterministic order to avoid duplicates and flaky behavior352 with sort param recent_sign_in353 returns paginated users sorted by last_login_at in desc order354 with sort param oldest_sign_in355 returns paginated users sorted by last_login_at in asc order356 with non owner357 returns error358 when group can not be found359 returns error360 with non-root group361 returns error362 email363 when members have a public_email364 is expected to include (a hash including {"email" => "public@email.com"})365 when members have no public_email366 is expected to include (a hash including {"email" => nil})367 GET /groups/:id/billable_members/:user_id/memberships368 returns memberships for the billable group member369 returns not found when the user does not exist370 returns not found when the group does not exist371 returns not found when the user is not billable372 returns bad request if the user cannot admin group members373 returns bad request if the group is a subgroup374 excludes memberships outside the requested group hierarchy375 includes subgroup memberships376 includes project memberships377 paginates results378 PUT /groups/:id/members/:user_id/state379 when the current user has insufficient rights380 returns 400381 when authenticated as an owner382 forwards the error from the service383 when setting the user to be active384 is successful385 when setting the user to be awaiting386 is successful387 with invalid parameters388 returns a relevant error message389 with a group that does not exist390 returns a relevant error message391 with a group that is a sub-group392 returns a relevant error message393 with a user that does not exist394 returns a relevant error message395 with a user that is not a member of the group396 returns a relevant error message397 DELETE /groups/:id/billable_members/:user_id398 when the current user has insufficient rights399 returns 400400 when authenticated as an owner401 with a user that is a GroupMember402 behaves like successful deletion403 deletes the member404 with a user that is only a ProjectMember405 behaves like successful deletion406 deletes the member407 with a user that is not a member408 returns a relevant error message409 without LDAP410 POST /projects/:id/members411 group membership locked412 project in a group413 returns a 405 method not allowed error when group membership lock is enabled414 GET /groups/:id/members415 matches json schema416 when a group has SAML provider configured417 and current_user is group owner418 returns a list of users with group SAML identities info419 allows to filter by linked identity presence420 and current_user is not an owner421 returns a list of users without group SAML identities info422 ignores filter by linked identity presence423 with is_using_seat424 with show_seat_info set to true425 returns a list of users that contains the is_using_seat attribute426 with show_seat_info set to false427 behaves like seat information not included428 returns a list of users that does not contain the is_using_seat attribute429 with no show_seat_info set430 behaves like seat information not included431 returns a list of users that does not contain the is_using_seat attribute432 behaves like POST /:source_type/:id/members433 with :source_type == projects434 creates an audit event while creating a new member435 does not create audit event if creating a new member fails436 behaves like POST /:source_type/:id/members437 with :source_type == groups438 creates an audit event while creating a new member439 does not create audit event if creating a new member fails440 group with LDAP group link441 GET /groups/:id/members/:user_id442 does not contain an override attribute for non-LDAP users in the response443 contains an override attribute for ldap users in the response444 PUT /groups/:id/members/:user_id445 succeeds when access_level is modified after override has been set446 fails when access level is modified without an override447 POST /groups/:id/members448 returns a forbidden response449 POST /groups/:id/members/:user_id/override450 succeeds when override is set on an LDAP user451 fails when override is set for a non-ldap user452 DELETE /groups/:id/members/:user_id/override with LDAP links453 succeeds when override is already set on an LDAP user454 returns 403 when override is set for a non-ldap user455 group with pending members456 PUT /groups/:id/members/:member_id/approve457 with invalid params458 when a subgroup is used459 returns a bad request response460 when no group is found461 returns a not found response462 when the current user does not have the :admin_group_member ability463 returns a bad request response464 when the current user has permission to approve465 when the member is not found466 returns not found response467 when the activation fails due to no pending members to activate468 returns a bad request response469 when the member is a root group member470 behaves like successful activation471 activates the member472 when the member is a subgroup member473 behaves like successful activation474 activates the member475 when the member is a project member476 behaves like successful activation477 activates the member478 when the member is an invited user479 behaves like successful activation480 activates the member481 PUT /groups/:id/members/approve_all482 when the current user is not authorized483 returns a bad request response484 when the current user is authorized485 when the group ID is a subgroup486 returns a bad request response487 when params are valid488 approves all pending members489 when activation fails490 returns a bad request response491 GET /groups/:id/pending_members492 when the current user is not authorized493 returns a bad request response494 when the current user is authorized495 returns only pending members496 includes activated invited members497 returns only one membership per user498 paginates the response499 when the group ID is a subgroup500 returns a bad request response501 filtering project and group members502 for group sources503 behaves like filtered results504 for active members505 returns only active members506 for awaiting members507 returns only awaiting members508 for project sources509 behaves like filtered results510 for active members511 returns only active members512 for awaiting members513 returns only awaiting members514API::Groups515 GET /groups516 when authenticated as user517 returns ldap details518 returns saml group links519 when repository storage name is specified520 for an admin521 filters by the repository storage name522 does not return any group for unknown storage523 when group wikis are not available524 does not include repository storage field525 for a user526 the repository storage filter is ignored527 GET /groups/:id528 group_ip_restriction529 when the group_ip_restriction feature is not available530 returns 200531 when the group_ip_restriction feature is available532 returns 404 for request from ip not in the range533 returns 200 for request from ip in the range534 marked_for_deletion_on attribute535 when feature is available536 is exposed537 when feature is not available538 is not exposed539 file_template_project_id is a private project540 user has permission to private project541 returns file_template_project_id542 user does not have permission to private project543 does not return file_template_project_id544 user is not logged in545 does not return file_template_project_id546 PUT /groups/:id547 behaves like PUT request permissions for admin mode548 behaves like when admin549 behaves like makes request550 returns551 behaves like makes request552 returns553 behaves like when user554 returns555 behaves like makes request556 returns557 file_template_project_id558 does not update file_template_project_id if unlicensed559 updates file_template_project_id if licensed560 shared_runners_minutes_limit561 when authenticated as the group owner562 returns 200 if shared_runners_minutes_limit is not changing563 when authenticated as the admin564 updates the group for shared_runners_minutes_limit565 default_branch_protection566 authenticated as an admin567 feature_enabled: true, setting_enabled: true, default_branch_protection: 0568 updates the attribute as expected569 feature_enabled: false, setting_enabled: true, default_branch_protection: 0570 updates the attribute as expected571 feature_enabled: true, setting_enabled: false, default_branch_protection: 0572 updates the attribute as expected573 feature_enabled: false, setting_enabled: false, default_branch_protection: 0574 updates the attribute as expected575 authenticated a normal user576 feature_enabled: true, setting_enabled: true, default_branch_protection: 0577 updates the attribute as expected578 feature_enabled: false, setting_enabled: true, default_branch_protection: 0579 updates the attribute as expected580 feature_enabled: true, setting_enabled: false, default_branch_protection: 2581 updates the attribute as expected582 feature_enabled: false, setting_enabled: false, default_branch_protection: 0583 updates the attribute as expected584 prevent_forking_outside_group585 authenticated as group owner586 feature_enabled: false, prevent_forking_outside_group: false, result: nil587 updates the attribute as expected588 feature_enabled: false, prevent_forking_outside_group: true, result: nil589 updates the attribute as expected590 feature_enabled: true, prevent_forking_outside_group: false, result: false591 updates the attribute as expected592 feature_enabled: true, prevent_forking_outside_group: true, result: true593 updates the attribute as expected594 when ip_restriction_ranges is specified595 when feature is available596 updates ip restriction range for the group597 when feature is not available598 does not update the ip restriction range for the group599 for instances that have the usage_ping_features activated600 updates ip restriction range for the group601 unique_project_download* attributes602 when authenticated as group owner603 when feature flag enabled and feature available604 updates the attributes as expected605 flag_enabled: true, feature_available: false606 does not update the attributes607 flag_enabled: false, feature_available: true608 does not update the attributes609 flag_enabled: false, feature_available: false610 does not update the attributes611 wiki_access_level612 updates the attribute as expected613 updates the attribute as expected614 updates the attribute as expected615 POST /groups616 behaves like POST request permissions for admin mode617 behaves like when admin618 behaves like makes request619 returns620 behaves like makes request621 returns622 behaves like when user623 returns624 behaves like makes request625 returns626 when authenticated as user with group permissions627 creates an ldap_group_link if ldap_cn and ldap_access are supplied628 when shared_runners_minutes_limit is given629 when the current user is not an admin630 does not create a group with shared_runners_minutes_limit631 when the current user is an admin632 creates a group with shared_runners_minutes_limit633 when creating a group with `default_branch_protection` attribute634 authenticated as an admin635 feature_enabled: true, setting_enabled: true, default_branch_protection: 0636 creates the group with the expected `default_branch_protection` value637 feature_enabled: false, setting_enabled: true, default_branch_protection: 0638 creates the group with the expected `default_branch_protection` value639 feature_enabled: true, setting_enabled: false, default_branch_protection: 0640 creates the group with the expected `default_branch_protection` value641 feature_enabled: false, setting_enabled: false, default_branch_protection: 0642 creates the group with the expected `default_branch_protection` value643 authenticated a normal user644 feature_enabled: true, setting_enabled: true, default_branch_protection: 0645 creates the group with the expected `default_branch_protection` value646 feature_enabled: false, setting_enabled: true, default_branch_protection: 0647 creates the group with the expected `default_branch_protection` value648 feature_enabled: true, setting_enabled: false, default_branch_protection: 2649 creates the group with the expected `default_branch_protection` value650 feature_enabled: false, setting_enabled: false, default_branch_protection: 0651 creates the group with the expected `default_branch_protection` value652 when creating group on .com653 when top_level_group_creation_enabled feature flag is disabled654 does not create a top-level group655 creates a subgroup656 when top_level_group_creation_enabled feature flag is enabled657 creates a top-level group658 when creating group on self-managed659 when top_level_group_creation_enabled feature flag is disabled660 creates a top-level group661 creates a subgroup662 when top_level_group_creation_enabled feature flag is enabled663 creates a top-level group664 wiki_access_level665 updates the attribute as expected666 updates the attribute as expected667 updates the attribute as expected668 POST /groups/:id/ldap_sync669 behaves like POST request permissions for admin mode670 behaves like when admin671 behaves like makes request672 returns673 behaves like makes request674 returns675 behaves like when user676 returns677 behaves like makes request678 returns679 when the ldap_group_sync feature is available680 when authenticated as the group owner681 returns 404 for a non existing group682 when the group is ready to sync683 returns 202 Accepted684 queues a sync job685 sets the ldap_sync state to pending686 when the group is already pending a sync687 returns 202 Accepted688 does not queue a sync job689 does not change the ldap_sync state690 when authenticated as the admin691 returns 202 Accepted692 when authenticated as a non-owner user that can see the group693 returns 403694 when authenticated as an user that cannot see the group695 returns 404696 when the ldap_group_sync feature is not available697 returns 404 (same as CE would)698 GET /groups/:id/projects699 when authenticated as user700 when security dashboard is enabled for a group701 returns only projects with security scans702 when security dashboard is disabled for a group703 returns all projects regardless of the security scans704 when namespace license checks are enabled705 when there are plans and projects706 only loads plans once707 when there are no projects708 completes the request without error709 GET group/:id/audit_events710 behaves like inaccessable by reporter role and lower711 for reporter712 returns 403 response713 for guest714 returns 403 response715 for anonymous716 returns 403 response717 behaves like GET request permissions for admin mode718 behaves like when admin719 behaves like makes request720 returns721 behaves like makes request722 returns723 behaves like when user724 returns725 behaves like makes request726 returns727 when authenticated, as a member728 returns only events authored by current user729 when authenticated, as a group owner730 audit events feature is not available731 behaves like 403 response732 returns 403733 audit events feature is available734 returns 200 response735 includes the correct pagination headers736 does not include audit events of a different group737 parameters738 behaves like supports keyset pagination739 paginates the records correctly740 on making requests with unsupported ordering structure741 returns error742 created_before parameter743 returns audit events created before the given parameter744 created_after parameter745 returns audit events created after the given parameter746 response schema747 matches the response schema748 Snowplow event tracking749 behaves like Snowplow event tracking with RedisHLL context750 behaves like Snowplow event tracking751 is emitted752 GET group/:id/audit_events/:audit_event_id753 behaves like inaccessable by reporter role and lower754 for reporter755 returns 403 response756 for guest757 returns 403 response758 for anonymous759 returns 403 response760 when authenticated, as a member761 returns 200 response762 existing audit event of a different user763 behaves like 404 response764 returns 404765 when authenticated, as a group owner766 audit events feature is not available767 behaves like 403 response768 returns 403769 audit events feature is available770 existent audit event771 returns 200 response772 response schema773 matches the response schema774 Snowplow event tracking775 behaves like Snowplow event tracking with RedisHLL context776 behaves like Snowplow event tracking777 is emitted778 invalid audit_event_id779 behaves like 400 response780 returns 400781 non existent audit event782 non existent audit event of a group783 behaves like 404 response784 returns 404785 existing audit event of a different group786 behaves like 404 response787 returns 404788 DELETE /groups/:id789 feature is available790 does not mark the group for deletion when the group has a paid gitlab.com subscription791 marks for deletion a subgroup of a group with a paid gitlab.com subscription792 marks for deletion of a group with a trial plan793 when delayed group deletion is enabled794 success795 behaves like marks group for delayed deletion796 marks group for delayed deletion797 when deletion adjourned period is 0798 behaves like immediately enqueues the job to delete the group799 immediately enqueues the job to delete the group800 when permanently_remove param is sent801 if permanently_remove is true802 if group is a subgroup803 when group is already marked for deletion804 when full_path param is not passed805 behaves like does not immediately enqueues the job to delete the group806 does not immediately enqueues the job to delete the group807 when full_path param is not equal to full_path808 behaves like does not immediately enqueues the job to delete the group809 does not immediately enqueues the job to delete the group810 when the full_path param is passed and it matches the full path of subgroup811 behaves like immediately enqueues the job to delete the group812 immediately enqueues the job to delete the group813 when group is not marked for deletion814 behaves like does not immediately enqueues the job to delete the group815 does not immediately enqueues the job to delete the group816 if group is not a subgroup817 behaves like does not immediately enqueues the job to delete the group818 does not immediately enqueues the job to delete the group819 if permanently_remove is not true820 when it is false821 behaves like marks group for delayed deletion822 marks group for delayed deletion823 when it is non boolean824 behaves like marks group for delayed deletion825 marks group for delayed deletion826 when delayed group deletion is disabled827 behaves like marks group for delayed deletion828 marks group for delayed deletion829 failure830 returns error831 feature is not available832 does not delete the group when the group has a paid gitlab.com subscription833 deletes a subgroup of a group with a paid gitlab.com subscription834 deletes a group with a trial plan835 behaves like immediately enqueues the job to delete the group836 immediately enqueues the job to delete the group837 POST /groups/:id/restore838 feature is available839 authenticated as owner840 restoring is successful841 restores the group to original state842 restoring fails843 returns error844 authenticated as user without access to the group845 returns 403846 feature is not available847 returns 404848 GET /groups/:id/provisioned_users849 when current_user is not a group maintainer850 returns 403851 when current_user is a group maintainer852 returns a list of users provisioned by the group853 optional params854 search param855 filters by search856 username param857 filters by username858 blocked param859 filters by blocked860 active param861 filters by active status862 created_after863 filters by created_at864 created_before865 filters by created_at866SearchController867 GET /search868 when elasticsearch is enabled869 for issues scope870 behaves like an efficient database result871 avoids N+1 database queries872 for merge_request scope873 behaves like an efficient database result874 avoids N+1 database queries875 for project scope876 behaves like an efficient database result877 avoids N+1 database queries878 for notes scope879 behaves like an efficient database result880 avoids N+1 database queries881 for milestones scope882 behaves like an efficient database result883 avoids N+1 database queries884 for users scope885 behaves like an efficient database result886 avoids N+1 database queries887 for epics scope888 behaves like an efficient database result889 avoids N+1 database queries890 for blobs scope891 avoids N+1 database queries892 does not raise an exeption when blob.path is nil893 for commits scope894 avoids N+1 database queries895 search index integrity896 when project is present and group is not present897 queues the project integrity worker898 when project is not present and group is not present899 does nothing900 when project is not present and group is present901 queues the namespace integrity worker which then schedules the project integrity worker902 when project is present and group is present903 queues the project integrity worker904 when search results are returned905 does nothing906 when search_index_integrity feature flag is not enabled907 does nothing908 when scope is not blobs909 does nothing910Mutations::Geo::Registries::Update911 # order random912 registry_class: Geo::GroupWikiRepositoryRegistry (call 'Geo::GroupWikiRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::GroupWikiRepositoryRegistryType, registry_factory: :geo_group_wiki_repository_registry913 is expected to require graphql authorizations :read_geo_registry914 when feature flag `geo_registries_update_mutation` is disabled915 behaves like a mutation that returns top-level errors916 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."917 when geo licensed feature is not available918 behaves like a mutation that returns a top-level access error919 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"920 when maintenance mode is enabled921 behaves like a valid registry update922 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "groupWikiRepositoryId"923 when geo site is secondary924 behaves like a valid registry update925 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "groupWikiRepositoryId"926 when updating a single registry927 with resync action928 behaves like a valid registry update929 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "groupWikiRepositoryId"930 behaves like an invalid registry update931 is expected to be nil932 with reverify action933 behaves like a valid registry update934 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "groupWikiRepositoryId"935 behaves like an invalid registry update936 is expected to be nil937 registry_class: Geo::JobArtifactRegistry (call 'Geo::JobArtifactRegistry.connection' to establish a connection), registry_type: Types::Geo::JobArtifactRegistryType, registry_factory: :geo_job_artifact_registry938 is expected to require graphql authorizations :read_geo_registry939 when feature flag `geo_registries_update_mutation` is disabled940 behaves like a mutation that returns top-level errors941 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."942 when geo licensed feature is not available943 behaves like a mutation that returns a top-level access error944 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"945 when maintenance mode is enabled946 behaves like a valid registry update947 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "artifactId"948 when geo site is secondary949 behaves like a valid registry update950 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "artifactId"951 when updating a single registry952 with resync action953 behaves like a valid registry update954 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "artifactId"955 behaves like an invalid registry update956 is expected to be nil957 with reverify action958 behaves like a valid registry update959 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "artifactId"960 behaves like an invalid registry update961 is expected to be nil962 registry_class: Geo::PackageFileRegistry (call 'Geo::PackageFileRegistry.connection' to establish a connection), registry_type: Types::Geo::PackageFileRegistryType, registry_factory: :geo_package_file_registry963 is expected to require graphql authorizations :read_geo_registry964 when feature flag `geo_registries_update_mutation` is disabled965 behaves like a mutation that returns top-level errors966 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."967 when geo licensed feature is not available968 behaves like a mutation that returns a top-level access error969 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"970 when maintenance mode is enabled971 behaves like a valid registry update972 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "packageFileId"973 when geo site is secondary974 behaves like a valid registry update975 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "packageFileId"976 when updating a single registry977 with resync action978 behaves like a valid registry update979 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "packageFileId"980 behaves like an invalid registry update981 is expected to be nil982 with reverify action983 behaves like a valid registry update984 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "packageFileId"985 behaves like an invalid registry update986 is expected to be nil987 registry_class: Geo::UploadRegistry (call 'Geo::UploadRegistry.connection' to establish a connection), registry_type: Types::Geo::UploadRegistryType, registry_factory: :geo_upload_registry988 is expected to require graphql authorizations :read_geo_registry989 when feature flag `geo_registries_update_mutation` is disabled990 behaves like a mutation that returns top-level errors991 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."992 when geo licensed feature is not available993 behaves like a mutation that returns a top-level access error994 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"995 when maintenance mode is enabled996 behaves like a valid registry update997 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "fileId"998 when geo site is secondary999 behaves like a valid registry update1000 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "fileId"1001 when updating a single registry1002 with resync action1003 behaves like a valid registry update1004 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "fileId"1005 behaves like an invalid registry update1006 is expected to be nil1007 with reverify action1008 behaves like a valid registry update1009 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "fileId"1010 behaves like an invalid registry update1011 is expected to be nil1012 registry_class: Geo::DesignManagementRepositoryRegistry (call 'Geo::DesignManagementRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::DesignManagementRepositoryRegistryType, registry_factory: :geo_design_management_repository_registry1013 is expected to require graphql authorizations :read_geo_registry1014 when feature flag `geo_registries_update_mutation` is disabled1015 behaves like a mutation that returns top-level errors1016 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1017 when geo licensed feature is not available1018 behaves like a mutation that returns a top-level access error1019 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"1020 when maintenance mode is enabled1021 behaves like a valid registry update1022 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "designManagementRepositoryId"1023 when geo site is secondary1024 behaves like a valid registry update1025 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "designManagementRepositoryId"1026 when updating a single registry1027 with resync action1028 behaves like a valid registry update1029 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "designManagementRepositoryId"1030 behaves like an invalid registry update1031 is expected to be nil1032 with reverify action1033 behaves like a valid registry update1034 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "designManagementRepositoryId"1035 behaves like an invalid registry update1036 is expected to be nil1037 registry_class: Geo::ContainerRepositoryRegistry (call 'Geo::ContainerRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::ContainerRepositoryRegistryType, registry_factory: :geo_container_repository_registry1038 is expected to require graphql authorizations :read_geo_registry1039 when feature flag `geo_registries_update_mutation` is disabled1040 behaves like a mutation that returns top-level errors1041 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1042 when geo licensed feature is not available1043 behaves like a mutation that returns a top-level access error1044 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"1045 when maintenance mode is enabled1046 behaves like a valid registry update1047 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "containerRepositoryId"1048 when geo site is secondary1049 behaves like a valid registry update1050 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "containerRepositoryId"1051 when updating a single registry1052 with resync action1053 behaves like a valid registry update1054 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "containerRepositoryId"1055 behaves like an invalid registry update1056 is expected to be nil1057 with reverify action1058 behaves like a valid registry update1059 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "containerRepositoryId"1060 behaves like an invalid registry update1061 is expected to be nil1062 registry_class: Geo::MergeRequestDiffRegistry (call 'Geo::MergeRequestDiffRegistry.connection' to establish a connection), registry_type: Types::Geo::MergeRequestDiffRegistryType, registry_factory: :geo_merge_request_diff_registry1063 is expected to require graphql authorizations :read_geo_registry1064 when feature flag `geo_registries_update_mutation` is disabled1065 behaves like a mutation that returns top-level errors1066 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1067 when geo licensed feature is not available1068 behaves like a mutation that returns a top-level access error1069 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"1070 when maintenance mode is enabled1071 behaves like a valid registry update1072 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "mergeRequestDiffId"1073 when geo site is secondary1074 behaves like a valid registry update1075 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "mergeRequestDiffId"1076 when updating a single registry1077 with resync action1078 behaves like a valid registry update1079 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "mergeRequestDiffId"1080 behaves like an invalid registry update1081 is expected to be nil1082 with reverify action1083 behaves like a valid registry update1084 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "mergeRequestDiffId"1085 behaves like an invalid registry update1086 is expected to be nil1087 registry_class: Geo::PipelineArtifactRegistry (call 'Geo::PipelineArtifactRegistry.connection' to establish a connection), registry_type: Types::Geo::PipelineArtifactRegistryType, registry_factory: :geo_pipeline_artifact_registry1088 is expected to require graphql authorizations :read_geo_registry1089 when feature flag `geo_registries_update_mutation` is disabled1090 behaves like a mutation that returns top-level errors1091 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1092 when geo licensed feature is not available1093 behaves like a mutation that returns a top-level access error1094 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"1095 when maintenance mode is enabled1096 behaves like a valid registry update1097 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pipelineArtifactId"1098 when geo site is secondary1099 behaves like a valid registry update1100 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pipelineArtifactId"1101 when updating a single registry1102 with resync action1103 behaves like a valid registry update1104 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pipelineArtifactId"1105 behaves like an invalid registry update1106 is expected to be nil1107 with reverify action1108 behaves like a valid registry update1109 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pipelineArtifactId"1110 behaves like an invalid registry update1111 is expected to be nil1112 registry_class: Geo::SnippetRepositoryRegistry (call 'Geo::SnippetRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::SnippetRepositoryRegistryType, registry_factory: :geo_snippet_repository_registry1113 is expected to require graphql authorizations :read_geo_registry1114 when feature flag `geo_registries_update_mutation` is disabled1115 behaves like a mutation that returns top-level errors1116 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1117 when geo licensed feature is not available1118 behaves like a mutation that returns a top-level access error1119 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"1120 when maintenance mode is enabled1121 behaves like a valid registry update1122 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "snippetRepositoryId"1123 when geo site is secondary1124 behaves like a valid registry update1125 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "snippetRepositoryId"1126 when updating a single registry1127 with resync action1128 behaves like a valid registry update1129 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "snippetRepositoryId"1130 behaves like an invalid registry update1131 is expected to be nil1132 with reverify action1133 behaves like a valid registry update1134 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "snippetRepositoryId"1135 behaves like an invalid registry update1136 is expected to be nil1137 registry_class: Geo::DependencyProxyBlobRegistry (call 'Geo::DependencyProxyBlobRegistry.connection' to establish a connection), registry_type: Types::Geo::DependencyProxyBlobRegistryType, registry_factory: :geo_dependency_proxy_blob_registry1138 is expected to require graphql authorizations :read_geo_registry1139 when feature flag `geo_registries_update_mutation` is disabled1140 behaves like a mutation that returns top-level errors1141 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1142 when geo licensed feature is not available1143 behaves like a mutation that returns a top-level access error1144 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"1145 when maintenance mode is enabled1146 behaves like a valid registry update1147 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyBlobId"1148 when geo site is secondary1149 behaves like a valid registry update1150 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyBlobId"1151 when updating a single registry1152 with resync action1153 behaves like a valid registry update1154 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyBlobId"1155 behaves like an invalid registry update1156 is expected to be nil1157 with reverify action1158 behaves like a valid registry update1159 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyBlobId"1160 behaves like an invalid registry update1161 is expected to be nil1162 registry_class: Geo::LfsObjectRegistry (call 'Geo::LfsObjectRegistry.connection' to establish a connection), registry_type: Types::Geo::LfsObjectRegistryType, registry_factory: :geo_lfs_object_registry1163 is expected to require graphql authorizations :read_geo_registry1164 when feature flag `geo_registries_update_mutation` is disabled1165 behaves like a mutation that returns top-level errors1166 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1167 when geo licensed feature is not available1168 behaves like a mutation that returns a top-level access error1169 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"1170 when maintenance mode is enabled1171 behaves like a valid registry update1172 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "lfsObjectId"1173 when geo site is secondary1174 behaves like a valid registry update1175 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "lfsObjectId"1176 when updating a single registry1177 with resync action1178 behaves like a valid registry update1179 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "lfsObjectId"1180 behaves like an invalid registry update1181 is expected to be nil1182 with reverify action1183 behaves like a valid registry update1184 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "lfsObjectId"1185 behaves like an invalid registry update1186 is expected to be nil1187 registry_class: Geo::DependencyProxyManifestRegistry (call 'Geo::DependencyProxyManifestRegistry.connection' to establish a connection), registry_type: Types::Geo::DependencyProxyManifestRegistryType, registry_factory: :geo_dependency_proxy_manifest_registry1188 is expected to require graphql authorizations :read_geo_registry1189 when feature flag `geo_registries_update_mutation` is disabled1190 behaves like a mutation that returns top-level errors1191 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1192 when geo licensed feature is not available1193 behaves like a mutation that returns a top-level access error1194 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"1195 when maintenance mode is enabled1196 behaves like a valid registry update1197 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyManifestId"1198 when geo site is secondary1199 behaves like a valid registry update1200 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyManifestId"1201 when updating a single registry1202 with resync action1203 behaves like a valid registry update1204 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyManifestId"1205 behaves like an invalid registry update1206 is expected to be nil1207 with reverify action1208 behaves like a valid registry update1209 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "dependencyProxyManifestId"1210 behaves like an invalid registry update1211 is expected to be nil1212 registry_class: Geo::CiSecureFileRegistry (call 'Geo::CiSecureFileRegistry.connection' to establish a connection), registry_type: Types::Geo::CiSecureFileRegistryType, registry_factory: :geo_ci_secure_file_registry1213 is expected to require graphql authorizations :read_geo_registry1214 when feature flag `geo_registries_update_mutation` is disabled1215 behaves like a mutation that returns top-level errors1216 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1217 when geo licensed feature is not available1218 behaves like a mutation that returns a top-level access error1219 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"1220 when maintenance mode is enabled1221 behaves like a valid registry update1222 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "ciSecureFileId"1223 when geo site is secondary1224 behaves like a valid registry update1225 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "ciSecureFileId"1226 when updating a single registry1227 with resync action1228 behaves like a valid registry update1229 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "ciSecureFileId"1230 behaves like an invalid registry update1231 is expected to be nil1232 with reverify action1233 behaves like a valid registry update1234 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "ciSecureFileId"1235 behaves like an invalid registry update1236 is expected to be nil1237 registry_class: Geo::ProjectWikiRepositoryRegistry (call 'Geo::ProjectWikiRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::ProjectWikiRepositoryRegistryType, registry_factory: :geo_project_wiki_repository_registry1238 is expected to require graphql authorizations :read_geo_registry1239 when feature flag `geo_registries_update_mutation` is disabled1240 behaves like a mutation that returns top-level errors1241 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1242 when geo licensed feature is not available1243 behaves like a mutation that returns a top-level access error1244 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"1245 when maintenance mode is enabled1246 behaves like a valid registry update1247 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "projectWikiRepositoryId"1248 when geo site is secondary1249 behaves like a valid registry update1250 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "projectWikiRepositoryId"1251 when updating a single registry1252 with resync action1253 behaves like a valid registry update1254 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "projectWikiRepositoryId"1255 behaves like an invalid registry update1256 is expected to be nil1257 with reverify action1258 behaves like a valid registry update1259 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "projectWikiRepositoryId"1260 behaves like an invalid registry update1261 is expected to be nil1262 registry_class: Geo::TerraformStateVersionRegistry (call 'Geo::TerraformStateVersionRegistry.connection' to establish a connection), registry_type: Types::Geo::TerraformStateVersionRegistryType, registry_factory: :geo_terraform_state_version_registry1263 is expected to require graphql authorizations :read_geo_registry1264 when feature flag `geo_registries_update_mutation` is disabled1265 behaves like a mutation that returns top-level errors1266 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1267 when geo licensed feature is not available1268 behaves like a mutation that returns a top-level access error1269 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"1270 when maintenance mode is enabled1271 behaves like a valid registry update1272 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "terraformStateVersionId"1273 when geo site is secondary1274 behaves like a valid registry update1275 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "terraformStateVersionId"1276 when updating a single registry1277 with resync action1278 behaves like a valid registry update1279 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "terraformStateVersionId"1280 behaves like an invalid registry update1281 is expected to be nil1282 with reverify action1283 behaves like a valid registry update1284 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "terraformStateVersionId"1285 behaves like an invalid registry update1286 is expected to be nil1287 registry_class: Geo::PagesDeploymentRegistry (call 'Geo::PagesDeploymentRegistry.connection' to establish a connection), registry_type: Types::Geo::PagesDeploymentRegistryType, registry_factory: :geo_pages_deployment_registry1288 is expected to require graphql authorizations :read_geo_registry1289 when feature flag `geo_registries_update_mutation` is disabled1290 behaves like a mutation that returns top-level errors1291 is expected to contain exactly "`geo_registries_update_mutation` feature flag is disabled."1292 when geo licensed feature is not available1293 behaves like a mutation that returns a top-level access error1294 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"1295 when maintenance mode is enabled1296 behaves like a valid registry update1297 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pagesDeploymentId"1298 when geo site is secondary1299 behaves like a valid registry update1300 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pagesDeploymentId"1301 when updating a single registry1302 with resync action1303 behaves like a valid registry update1304 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pagesDeploymentId"1305 behaves like an invalid registry update1306 is expected to be nil1307 with reverify action1308 behaves like a valid registry update1309 is expected to include "id", "state", "retryCount", "lastSyncFailure", "retryAt", "lastSyncedAt", "verifiedAt", "verificationRetryAt", "createdAt", and "pagesDeploymentId"1310 behaves like an invalid registry update1311 is expected to be nil1312Projects::IssuesController1313 licensed features1314 licensed1315 #update1316 sets issue weight and epic1317 #new1318 when a vulnerability_id is provided1319 sets the vulnerability_id1320 sets the confidential flag to true by default1321 default templates1322 when a template has been set via project settings1323 does not select a default template1324 when a template has not been set via project settings1325 selects a default template1326 #create1327 sets issue weight and epic1328 when created from a vulnerability1329 overwrites the default fields1330 does not show an error message1331 creates vulnerability feedback1332 behaves like creates vulnerability issue link1333 links the issue to the vulnerability1334 when vulnerability already has a linked issue1335 shows an error message1336 unlicensed1337 #update1338 does not set issue weight1339 #new1340 when a vulnerability_id is provided1341 does not build issue from a vulnerability1342 #create1343 does not set issue weight ane epic1344 GET #show1345 when issue is of type objective1346 show action1347 behaves like redirects to show work item page1348 redirects to work item page using iid1349 edit action1350 behaves like redirects to show work item page1351 redirects to work item page using iid1352 update action1353 behaves like redirects to show work item page1354 redirects to work item page using iid1355 when issue is of type key_result1356 show action1357 behaves like redirects to show work item page1358 redirects to work item page using iid1359 edit action1360 behaves like redirects to show work item page1361 redirects to work item page using iid1362 update action1363 behaves like redirects to show work item page1364 redirects to work item page using iid1365 GET #discussions1366 with a related system note1367 when authenticated1368 behaves like user can see confidential issue1369 when a user is a reporter1370 displays related notes1371 behaves like user can see confidential issue1372 when a user is a developer1373 displays related notes1374 behaves like user can see confidential issue1375 when a user is a maintainer1376 displays related notes1377 behaves like user cannot see confidential issue1378 when a user is a guest1379 redacts note related to a confidential issue1380 when unauthenticated1381 behaves like user cannot see confidential issue1382 when a user is a 01383 redacts note related to a confidential issue1384 PUT #update1385 when changing the assignee1386 exposes expected attributes1387 DescriptionDiffActions1388 when issuable is an issue type issue1389 behaves like DescriptionDiffActions1391 when license is available1392 behaves like description diff actions1393 GET description_diff1394 returns the diff with the previous version1395 returns the diff with the previous version of the specified start_version_id1396 when description version is from another issuable1397 returns 4041398 when start_version_id is from another issuable1399 returns 4041400 when start_version_id is deleted1401 returns 4041402 when description version is deleted1403 returns 4041404 DELETE description_diff1405 returns 2001406 when start_version_id is present1407 returns 2001408 when version is already deleted1409 returns 4041410 when user cannot admin issuable1411 returns 4041412 when features are available through Registration Features1413 behaves like description diff actions1414 GET description_diff1415 returns the diff with the previous version1416 returns the diff with the previous version of the specified start_version_id1417 when description version is from another issuable1418 returns 4041419 when start_version_id is from another issuable1420 returns 4041421 when start_version_id is deleted1422 returns 4041423 when description version is deleted1424 returns 4041425 DELETE description_diff1426 returns 2001427 when start_version_id is present1428 returns 2001429 when version is already deleted1430 returns 4041431 when user cannot admin issuable1432 returns 4041433 when license is not available1434 GET description_diff1435 returns 4041436 DELETE description_diff1437 returns 4041438 when issuable is a task/work_item1439 behaves like DescriptionDiffActions1441 when license is available1442 behaves like description diff actions1443 GET description_diff1444 returns the diff with the previous version1445 returns the diff with the previous version of the specified start_version_id1446 when description version is from another issuable1447 returns 4041448 when start_version_id is from another issuable1449 returns 4041450 when start_version_id is deleted1451 returns 4041452 when description version is deleted1453 returns 4041454 DELETE description_diff1455 returns 2001456 when start_version_id is present1457 returns 2001458 when version is already deleted1459 returns 4041460 when user cannot admin issuable1461 returns 4041462 when features are available through Registration Features1463 behaves like description diff actions1464 GET description_diff1465 returns the diff with the previous version1466 returns the diff with the previous version of the specified start_version_id1467 when description version is from another issuable1468 returns 4041469 when start_version_id is from another issuable1470 returns 4041471 when start_version_id is deleted1472 returns 4041473 when description version is deleted1474 returns 4041475 DELETE description_diff1476 returns 2001477 when start_version_id is present1478 returns 2001479 when version is already deleted1480 returns 4041481 when user cannot admin issuable1482 returns 4041483 when license is not available1484 GET description_diff1485 returns 4041486 DELETE description_diff1487 returns 4041488Groups::WikisController1489 behaves like wiki controller actions1490 GET #new1491 redirects to #show and appends a `random_title` param1492 when the wiki repository cannot be created1493 redirects to the wiki container and displays an error message1494 GET #pages1495 assigns the page collections1496 does not load the page content1497 does not load the sidebar1498 behaves like recovers from git errors1499 when we encounter CommandTimedOut error1500 renders the appropriate template1501 when we encounter a NoRepository error1502 renders the appropriate template1503 when the request is of non-html format1504 returns a 404 error1505 GET #history1506 behaves like recovers from git errors1507 when we encounter CommandTimedOut error1508 renders the appropriate template1509 when we encounter a NoRepository error1510 renders the appropriate template1511 behaves like fetching history1512 returns status ok1513 assigns @commits1514 behaves like fetching history1515 returns status not_found1516 GET #diff1517 when commit exists1518 renders the diff1519 when commit does not exist1520 returns a 404 error1521 when page does not exist1522 returns a 404 error1523 behaves like recovers from git errors1524 when we encounter CommandTimedOut error1525 renders the appropriate template1526 when we encounter a NoRepository error1527 renders the appropriate template1528 GET #show1529 when page exists1530 renders the page1531 behaves like recovers from git errors1532 when we encounter CommandTimedOut error1533 renders the appropriate template1534 when we encounter a NoRepository error1535 renders the appropriate template1536 the sidebar fails to load1537 renders the page, and marks the sidebar as failed1538 page view tracking1539 increases the page view counter1540 behaves like tracking unique hll events1541 tracks unique event1542 when page content encoding is invalid1543 sets flash error1544 when the page does not exist1545 when the user can create pages1546 builds a new wiki page with the id as the title1547 when a random_title param is present1548 builds a new wiki page with no title1549 when the user cannot create pages1550 shows the empty state1551 when page is a file1552 file_name: "dk.png"1553 delivers the file with the correct headers1554 file_name: "unsanitized.svg"1555 delivers the file with the correct headers1556 file_name: "sample.pdf"1557 delivers the file with the correct headers1558 POST #preview_markdown1559 renders json in a correct format1560 GET #edit1561 behaves like edit action1562 when the page does not exist1563 redirects to show1564 when id param is blank1565 redirects to the home page1566 when page content encoding is invalid1567 redirects to show1568 when the page has nil content1569 redirects to show1570 behaves like recovers from git errors1571 when we encounter CommandTimedOut error1572 renders the appropriate template1573 when we encounter a NoRepository error1574 renders the appropriate template1575 when page content encoding is valid1576 shows the edit page1577 PATCH #update1578 behaves like edit action1579 when the page does not exist1580 redirects to show1581 when id param is blank1582 redirects to the home page1583 when page content encoding is invalid1584 redirects to show1585 when the page has nil content1586 redirects to show1587 when page content encoding is valid1588 updates the page1589 when user does not have edit permissions1590 renders the empty state1591 POST #create1592 when page is valid1593 creates the page1594 when page is not valid1595 renders the edit state1596 DELETE #destroy1597 when page exists1598 behaves like deletes the page1599 is expected to be empty1600 but page cannot be deleted1601 renders the edit state1602 when user is a developer1603 behaves like deletes the page1604 is expected to be empty1605 when user is a reporter1606 returns 4041607 when page does not exist1608 renders 4041609 #git_access1610 renders the git access page1611 when the feature is not available1612 method: :get, action: :new1613 returns a 404 error1614 method: :get, action: :pages1615 returns a 404 error1616 method: :post, action: :create1617 returns a 404 error1618 method: :get, action: :show1619 returns a 404 error1620 method: :get, action: :edit1621 returns a 404 error1622 method: :get, action: :history1623 returns a 404 error1624 method: :post, action: :preview_markdown1625 returns a 404 error1626 method: :put, action: :update1627 returns a 404 error1628 method: :delete, action: :destroy1629 returns a 404 error1630API::Notes1631 when noteable is an Epic1632 behaves like noteable API with confidential notes1633 behaves like noteable API1634 GET /groups/:id/epics/:noteable_id/notes1635 returns an array of notes1636 returns a 404 error when noteable id not found1637 returns 404 when not authorized1638 sorting1639 sorts by ascending order when requested1640 sorts by updated_at in descending order when requested1641 sorts by updated_at in ascending order when requested1642 without sort params1643 sorts by created_at in descending order by default1644 fetches notes using parent path as id paremeter1645 2 notes with equal created_at1646 page breaks first page correctly1647 page breaks second page correctly1648 GET /groups/:id/epics/:noteable_id/notes/:note_id1649 returns a note by id1650 returns a 404 error if note not found1651 POST /groups/:id/epics/:noteable_id/notes1652 creates a new note1653 returns a 400 bad request error if body not given1654 returns a 401 unauthorized error if user not authenticated1655 creates an activity event when a note is created1656 setting created_at1657 by an admin1658 sets the creation time on the new note1659 by a group owner1660 sets the creation time on the new note1661 by another user1662 ignores the given creation time1663 when the user is posting an award emoji on a noteable created by someone else1664 creates a new note1665 when the user is posting an award emoji on their own noteable1666 creates a new note1667 when user does not have access to read the noteable1668 responds with 4041669 when request exceeds the rate limit1670 prevents user from creating more notes1671 allows user in allow-list to create notes1672 PUT /groups/:id/epics/:noteable_id/notes/:note_id1673 returns a 404 error when note id not found1674 returns a 400 bad request error if body is empty1675 when only body param is present1676 updates the note text1677 when confidential param is present1678 does not allow to change confidentiality1679 DELETE /groups/:id/epics/:noteable_id/notes/:note_id1680 deletes a note1681 returns a 404 error when note id not found1682 behaves like 412 response1683 for a modified resource1684 returns 412 with a JSON error1685 for an unmodified resource1686 returns 204 with an empty body1687 POST /groups/:id/epics/:noteable_id/notes1688 with internal param1689 creates a confidential note if internal is set to true1690 with deprecated confidential param1691 creates a confidential note if confidential is set to true1692 when issue was promoted to epic1693 when user is reporter1694 returns previous issue system notes1695 when user is guest1696 does not return previous issue system notes1697Projects::PushRulesController1698 #update1699 updates the push rule1700 push rules unlicensed1701 returns 4041702 Updating reject_unsigned_commits rule1703 as an admin in admin mode1704 behaves like a setting with global default1705 when disabled1706 behaves like updateable setting1707 does not update the setting1708 when enabled1709 behaves like updateable setting1710 updates the setting1711 when global setting is enabled1712 behaves like updateable setting1713 updates the setting1714 as a maintainer user1715 behaves like a setting with global default1716 when disabled1717 behaves like updateable setting1718 does not update the setting1719 when enabled1720 behaves like updateable setting1721 updates the setting1722 when global setting is enabled1723 behaves like updateable setting1724 updates the setting1725 as a developer user1726 behaves like a setting with global default1727 when disabled1728 behaves like updateable setting1729 does not update the setting1730 when enabled1731 behaves like updateable setting1732 does not update the setting1733 when global setting is enabled1734 behaves like updateable setting1735 does not update the setting1736 Updating commit_committer_check rule1737 as an admin in admin mode1738 behaves like a setting with global default1739 when disabled1740 behaves like updateable setting1741 does not update the setting1742 when enabled1743 behaves like updateable setting1744 updates the setting1745 when global setting is enabled1746 behaves like updateable setting1747 updates the setting1748 as a maintainer user1749 behaves like a setting with global default1750 when disabled1751 behaves like updateable setting1752 does not update the setting1753 when enabled1754 behaves like updateable setting1755 updates the setting1756 when global setting is enabled1757 behaves like updateable setting1758 updates the setting1759 as a developer user1760 behaves like a setting with global default1761 when disabled1762 behaves like updateable setting1763 does not update the setting1764 when enabled1765 behaves like updateable setting1766 does not update the setting1767 when global setting is enabled1768 behaves like updateable setting1769 does not update the setting1770 Updating reject_non_dco_commits rule1771 as an admin in admin mode1772 behaves like a setting with global default1773 when disabled1774 behaves like updateable setting1775 does not update the setting1776 when enabled1777 behaves like updateable setting1778 updates the setting1779 when global setting is enabled1780 behaves like updateable setting1781 updates the setting1782 as a maintainer user1783 behaves like a setting with global default1784 when disabled1785 behaves like updateable setting1786 does not update the setting1787 when enabled1788 behaves like updateable setting1789 updates the setting1790 when global setting is enabled1791 behaves like updateable setting1792 updates the setting1793 as a developer user1794 behaves like a setting with global default1795 when disabled1796 behaves like updateable setting1797 does not update the setting1798 when enabled1799 behaves like updateable setting1800 does not update the setting1801 when global setting is enabled1802 behaves like updateable setting1803 does not update the setting1804 Updating commit_committer_name_check rule1805 when commit_committer_name_check is disabled1806 as an admin1807 behaves like updates push rule commit_committer_name_check of project1808 matches the given result1809 as a maintainer user1810 behaves like updates push rule commit_committer_name_check of project1811 matches the given result1812 as a developer user1813 behaves like updates push rule commit_committer_name_check of project1814 matches the given result1815 when commit_committer_name_check is enabled1816 as an admin1817 behaves like updates push rule commit_committer_name_check of project1818 matches the given result1819 as a maintainer user1820 behaves like updates push rule commit_committer_name_check of project1821 matches the given result1822 as a developer user1823 behaves like updates push rule commit_committer_name_check of project1824 matches the given result1825API::DependencyProxy::Packages::Maven1826 # order random1827 GET /api/v4/projects/:project_id/dependency_proxy/packages/maven/*path/:file_name1828 with valid parameters1829 with package registry public access set to true1830 with a public project1831 behaves like handling different token types1832 and a personal access token1833 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :accepted1834 behaves like returning response status1835 returns accepted1836 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :accepted1837 behaves like returning response status1838 returns accepted1839 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :accepted1840 behaves like returning response status1841 returns accepted1842 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1843 behaves like returning response status1844 returns unauthorized1845 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1846 behaves like returning response status1847 returns unauthorized1848 and a deploy token1849 valid_token: true, sent_using: :custom_header, expected_status: :accepted1850 behaves like returning response status1851 returns accepted1852 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1853 behaves like returning response status1854 returns unauthorized1855 valid_token: true, sent_using: :basic_auth, expected_status: :accepted1856 behaves like returning response status1857 returns accepted1858 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1859 behaves like returning response status1860 returns unauthorized1861 and a ci job token1862 valid_token: true, sent_using: :custom_header, expected_status: :accepted1863 behaves like returning response status1864 returns accepted1865 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1866 behaves like returning response status1867 returns unauthorized1868 valid_token: true, sent_using: :basic_auth, expected_status: :accepted1869 behaves like returning response status1870 returns accepted1871 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1872 behaves like returning response status1873 returns unauthorized1874 with an internal project1875 behaves like handling different token types1876 and a personal access token1877 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized1878 behaves like returning response status1879 returns unauthorized1880 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :accepted1881 behaves like returning response status1882 returns accepted1883 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :accepted1884 behaves like returning response status1885 returns accepted1886 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1887 behaves like returning response status1888 returns unauthorized1889 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1890 behaves like returning response status1891 returns unauthorized1892 and a deploy token1893 valid_token: true, sent_using: :custom_header, expected_status: :accepted1894 behaves like returning response status1895 returns accepted1896 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1897 behaves like returning response status1898 returns unauthorized1899 valid_token: true, sent_using: :basic_auth, expected_status: :accepted1900 behaves like returning response status1901 returns accepted1902 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1903 behaves like returning response status1904 returns unauthorized1905 and a ci job token1906 valid_token: true, sent_using: :custom_header, expected_status: :accepted1907 behaves like returning response status1908 returns accepted1909 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1910 behaves like returning response status1911 returns unauthorized1912 valid_token: true, sent_using: :basic_auth, expected_status: :accepted1913 behaves like returning response status1914 returns accepted1915 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1916 behaves like returning response status1917 returns unauthorized1918 with a private project1919 behaves like handling different token types1920 and a personal access token1921 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized1922 behaves like returning response status1923 returns unauthorized1924 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :forbidden1925 behaves like returning response status1926 returns forbidden1927 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :forbidden1928 behaves like returning response status1929 returns forbidden1930 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1931 behaves like returning response status1932 returns unauthorized1933 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1934 behaves like returning response status1935 returns unauthorized1936 user_role: :reporter, valid_token: true, sent_using: :custom_header, expected_status: :accepted1937 behaves like returning response status1938 returns accepted1939 user_role: :reporter, valid_token: true, sent_using: :basic_auth, expected_status: :accepted1940 behaves like returning response status1941 returns accepted1942 user_role: :reporter, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1943 behaves like returning response status1944 returns unauthorized1945 user_role: :reporter, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1946 behaves like returning response status1947 returns unauthorized1948 and a deploy token1949 valid_token: true, sent_using: :custom_header, expected_status: :accepted1950 behaves like returning response status1951 returns accepted1952 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1953 behaves like returning response status1954 returns unauthorized1955 valid_token: true, sent_using: :basic_auth, expected_status: :accepted1956 behaves like returning response status1957 returns accepted1958 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1959 behaves like returning response status1960 returns unauthorized1961 and a ci job token1962 valid_token: true, sent_using: :custom_header, expected_status: :accepted1963 behaves like returning response status1964 returns accepted1965 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1966 behaves like returning response status1967 returns unauthorized1968 valid_token: true, sent_using: :basic_auth, expected_status: :accepted1969 behaves like returning response status1970 returns accepted1971 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1972 behaves like returning response status1973 returns unauthorized1974 with package registry public access set to false1975 with a public project1976 behaves like handling different token types1977 and a personal access token1978 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :accepted1979 behaves like returning response status1980 returns accepted1981 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :accepted1982 behaves like returning response status1983 returns accepted1984 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :accepted1985 behaves like returning response status1986 returns accepted1987 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1988 behaves like returning response status1989 returns unauthorized1990 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1991 behaves like returning response status1992 returns unauthorized1993 and a deploy token1994 valid_token: true, sent_using: :custom_header, expected_status: :accepted1995 behaves like returning response status1996 returns accepted1997 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1998 behaves like returning response status1999 returns unauthorized2000 valid_token: true, sent_using: :basic_auth, expected_status: :accepted2001 behaves like returning response status2002 returns accepted2003 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2004 behaves like returning response status2005 returns unauthorized2006 and a ci job token2007 valid_token: true, sent_using: :custom_header, expected_status: :accepted2008 behaves like returning response status2009 returns accepted2010 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2011 behaves like returning response status2012 returns unauthorized2013 valid_token: true, sent_using: :basic_auth, expected_status: :accepted2014 behaves like returning response status2015 returns accepted2016 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2017 behaves like returning response status2018 returns unauthorized2019 with an internal project2020 behaves like handling different token types2021 and a personal access token2022 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized2023 behaves like returning response status2024 returns unauthorized2025 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :accepted2026 behaves like returning response status2027 returns accepted2028 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :accepted2029 behaves like returning response status2030 returns accepted2031 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2032 behaves like returning response status2033 returns unauthorized2034 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2035 behaves like returning response status2036 returns unauthorized2037 and a deploy token2038 valid_token: true, sent_using: :custom_header, expected_status: :accepted2039 behaves like returning response status2040 returns accepted2041 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2042 behaves like returning response status2043 returns unauthorized2044 valid_token: true, sent_using: :basic_auth, expected_status: :accepted2045 behaves like returning response status2046 returns accepted2047 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2048 behaves like returning response status2049 returns unauthorized2050 and a ci job token2051 valid_token: true, sent_using: :custom_header, expected_status: :accepted2052 behaves like returning response status2053 returns accepted2054 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2055 behaves like returning response status2056 returns unauthorized2057 valid_token: true, sent_using: :basic_auth, expected_status: :accepted2058 behaves like returning response status2059 returns accepted2060 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2061 behaves like returning response status2062 returns unauthorized2063 with a private project2064 behaves like handling different token types2065 and a personal access token2066 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized2067 behaves like returning response status2068 returns unauthorized2069 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :forbidden2070 behaves like returning response status2071 returns forbidden2072 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :forbidden2073 behaves like returning response status2074 returns forbidden2075 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2076 behaves like returning response status2077 returns unauthorized2078 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2079 behaves like returning response status2080 returns unauthorized2081 user_role: :reporter, valid_token: true, sent_using: :custom_header, expected_status: :accepted2082 behaves like returning response status2083 returns accepted2084 user_role: :reporter, valid_token: true, sent_using: :basic_auth, expected_status: :accepted2085 behaves like returning response status2086 returns accepted2087 user_role: :reporter, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2088 behaves like returning response status2089 returns unauthorized2090 user_role: :reporter, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2091 behaves like returning response status2092 returns unauthorized2093 and a deploy token2094 valid_token: true, sent_using: :custom_header, expected_status: :accepted2095 behaves like returning response status2096 returns accepted2097 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2098 behaves like returning response status2099 returns unauthorized2100 valid_token: true, sent_using: :basic_auth, expected_status: :accepted2101 behaves like returning response status2102 returns accepted2103 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2104 behaves like returning response status2105 returns unauthorized2106 and a ci job token2107 valid_token: true, sent_using: :custom_header, expected_status: :accepted2108 behaves like returning response status2109 returns accepted2110 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized2111 behaves like returning response status2112 returns unauthorized2113 valid_token: true, sent_using: :basic_auth, expected_status: :accepted2114 behaves like returning response status2115 returns accepted2116 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized2117 behaves like returning response status2118 returns unauthorized2119 with a developer2120 with non existing dependency proxy setting2121 behaves like returning response status2122 returns not_found2123 with disabled dependency proxy setting2124 behaves like returning response status2125 returns not_found2126 with packages disabled2127 behaves like returning response status2128 returns not_found2129 with dependency_proxy disabled2130 behaves like returning response status2131 returns not_found2132 with licensed feature dependency_proxy_for_packages disabled2133 behaves like returning response status2134 returns forbidden2135 with feature flag packages_dependency_proxy_maven disabled2136 behaves like returning response status2137 returns not_found2138Groups::Analytics::CycleAnalytics::StagesController2139 behaves like Value Stream Analytics Stages controller2140 GET #index2141 succeeds2142 returns correct start events2143 does not include internal events2144 succeeds for subgroups2145 renders `forbidden` based on the response of the service object2146 when `group_id` is not found2147 renders `not_found` when group is missing2148 when user has no lower access level than `reporter`2149 renders `forbidden` response2150 when feature is not available for the group2151 renders `forbidden` response2152 data endpoints2153 GET #median2154 matches the response schema2155 when valid parameters are given2156 succeeds2157 accepts optional `project_ids` array2158 succeeds2159 when `created_before` is missing2160 succeeds2161 when `created_after` is missing2162 succeeds2163 when `created_after` is invalid, falls back to default date2164 is expected to respond with numeric status code success2165 when `created_before` is invalid2166 renders `unprocessable_entity`2167 when `created_after` is later than `created_before`2168 renders `unprocessable_entity`2169 when the date range exceeds 180 days2170 renders `unprocessable_entity`2171 GET #average2172 matches the response schema2173 when valid parameters are given2174 succeeds2175 accepts optional `project_ids` array2176 succeeds2177 when `created_before` is missing2178 succeeds2179 when `created_after` is missing2180 succeeds2181 when `created_after` is invalid, falls back to default date2182 is expected to respond with numeric status code success2183 when `created_before` is invalid2184 renders `unprocessable_entity`2185 when `created_after` is later than `created_before`2186 renders `unprocessable_entity`2187 when the date range exceeds 180 days2188 renders `unprocessable_entity`2189 GET #records2190 when valid parameters are given2191 succeeds2192 accepts optional `project_ids` array2193 succeeds2194 when `created_before` is missing2195 succeeds2196 when `created_after` is missing2197 succeeds2198 when `created_after` is invalid, falls back to default date2199 is expected to respond with numeric status code success2200 when `created_before` is invalid2201 renders `unprocessable_entity`2202 when `created_after` is later than `created_before`2203 renders `unprocessable_entity`2204 when the date range exceeds 180 days2205 renders `unprocessable_entity`2206 when `group_id` is not found2207 renders `not_found` when group is missing2208 when user has no lower access level than `reporter`2209 renders `forbidden` response2210 when feature is not available for the group2211 renders `forbidden` response2212 sort params2213 accepts sort params2214 pagination2215 exposes pagination headers2216 GET #average_duration_chart2217 matches the response schema2218 fills all dates between the given range2219 when valid parameters are given2220 succeeds2221 accepts optional `project_ids` array2222 succeeds2223 when `created_before` is missing2224 succeeds2225 when `created_after` is missing2226 succeeds2227 when `created_after` is invalid, falls back to default date2228 is expected to respond with numeric status code success2229 when `created_before` is invalid2230 renders `unprocessable_entity`2231 when `created_after` is later than `created_before`2232 renders `unprocessable_entity`2233 when the date range exceeds 180 days2234 renders `unprocessable_entity`2235 when `group_id` is not found2236 renders `not_found` when group is missing2237 when user has no lower access level than `reporter`2238 renders `forbidden` response2239 when feature is not available for the group2240 renders `forbidden` response2241 GET #count2242 matches the response schema2243 when valid parameters are given2244 succeeds2245 accepts optional `project_ids` array2246 succeeds2247 when `created_before` is missing2248 succeeds2249 when `created_after` is missing2250 succeeds2251 when `created_after` is invalid, falls back to default date2252 is expected to respond with numeric status code success2253 when `created_before` is invalid2254 renders `unprocessable_entity`2255 when `created_after` is later than `created_before`2256 renders `unprocessable_entity`2257 when the date range exceeds 180 days2258 renders `unprocessable_entity`2259 when `group_id` is not found2260 renders `not_found` when group is missing2261 when user has no lower access level than `reporter`2262 renders `forbidden` response2263 when feature is not available for the group2264 renders `forbidden` response2265Projects::SubscriptionsController2266 POST create2267 when user is authorized2268 when feature is available2269 when user is developer in upstream project2270 when project is public2271 when subscription count is below the limit2272 creates a new subscription2273 sets the flash2274 redirects to ci_cd settings2275 when subscription count is above the limit2276 does not create a new subscription2277 sets the flash2278 redirects to ci_cd settings2279 when project is not public2280 does not create a new subscription2281 sets the flash2282 redirects to ci_cd settings2283 when user is not developer in upstream project2284 does not create a new subscription2285 sets the flash2286 redirects to ci_cd settings2287 when feature is not available2288 does not create a new subscription2289 renders a not found response2290 when user is not authorized2291 does not create a new subscription2292 renders a not found response2293 DELETE destroy2294 when user is authorized2295 when feature is available2296 destroys the subscription2297 sets the flash2298 redirects to ci_cd settings2299 when feature is not available2300 does not destroy the subscription2301 renders a not found reseponse2302 when user is not authorized2303 does not destroy the subscription2304 renders a not found response2305Registrations::GroupsController2306 GET #new2307 with an unauthenticated user2308 is expected to respond with numeric status code redirect2309 is expected to redirect to "/users/sign_in"2310 with an authenticated user2311 when on .com2312 is expected to respond with numeric status code ok2313 is expected to render template new2314 assigns the group variable to a new Group with the default group visibility2315 builds a project object2316 tracks the new group view event2317 when on trial2318 tracks the new group view event2319 when user does not have the ability to create a group2320 is expected to respond with numeric status code not_found2321 when not on .com2322 is expected to respond with numeric status code not_found2323 behaves like hides email confirmation warning2324 with an unconfirmed email address present2325 is expected not to set confirm warning for "unconfirmed@gitlab.com"2326 without an unconfirmed email address present2327 is expected not to set confirm warning for "user996@example.org"2328 POST #create2329 with an unauthenticated user2330 is expected to respond with numeric status code redirect2331 is expected to redirect to "/users/sign_in"2332 with an authenticated user2333 creates a group and project2334 tracks submission event2335 behaves like hides email confirmation warning2336 with an unconfirmed email address present2337 is expected not to set confirm warning for "unconfirmed@gitlab.com"2338 without an unconfirmed email address present2339 is expected not to set confirm warning for "user998@example.org"2340 behaves like finishing onboarding2341 when current user onboarding is disabled2342 does not finish onboarding2343 when not on SaaS2344 does not finish onboarding2345 when onboarding is enabled2346 finishes onboarding2347 when on trial2348 tracks submission event2349 when there is no suggested path based from the name2350 creates a group2351 when the group cannot be created2352 does not create a group2353 the project is not disregarded completely2354 is expected to respond with numeric status code ok2355 is expected to render template new2356 does not tracks submission event2357 with signup onboarding not enabled2358 is expected to respond with numeric status code not_found2359 when group can be created but the project can't2360 does not create a project2361 is expected to respond with numeric status code ok2362 is expected to render template new2363 when a group is already created but a project isn't2364 creates a project and not another group2365 when redirecting2366 is expected to redirect to "/namespace444/project-447/-/learn_gitlab/onboarding"2367 when trial_onboarding_flow2368 is expected to redirect to "/namespace444/project-447/-/learn_gitlab/onboarding?trial_onboarding_flow=true"2369 with import_url in the params2370 behaves like hides email confirmation warning2371 with an unconfirmed email address present2372 is expected not to set confirm warning for "unconfirmed@gitlab.com"2373 without an unconfirmed email address present2374 is expected not to set confirm warning for "user1002@example.org"2375 behaves like finishing onboarding2376 when current user onboarding is disabled2377 does not finish onboarding2378 when not on SaaS2379 does not finish onboarding2380 when onboarding is enabled2381 finishes onboarding2382 when a group can't be created2383 is expected to render template new2384 when there is no suggested path based from the group name2385 creates a group, and redirects2386 when group can be created2387 creates a group2388 redirects to the import url with a namespace_id parameter2389API::RelatedEpicLinks2390 GET /groups/:id/related_epic_links2391 when user has no access to the group2392 returns 4042393 when user has access to the group2394 returns only related epics links the user has access to2395 behaves like endpoint with features check2396 when epics feature is not available2397 is expected to eq 4032398 when related_epics feature is not available2399 is expected to eq 4032400 when filtered by updated_before2401 returns related epic links updated before the given parameter2402 returns no related epic links2403 when filtered by updated_after2404 returns related epic links updated before the given parameter2405 returns no related epic links2406 when filtered by created_after2407 returns related epic links created after the given parameter2408 returns no related epic links2409 when filtered by created_before2410 returns related epic links created before the given parameter2411 returns no related epic links2412 when epics links are in a sub-group2413 returns linked epic from sub-group2414 when user has access to both groups2415 returns related epic links2416 returns multiple links without N + 12417 with pagination2418 returns first page of related epics2419 returns the last page of related epics2420 GET /groups/:id/epics/:epic_id/related_epics2421 when user cannot read epics2422 returns 4042423 when user can read epics2424 returns related epics2425 returns multiple links without N + 12426 behaves like endpoint with features check2427 when epics feature is not available2428 is expected to eq 4032429 when related_epics feature is not available2430 is expected to eq 4032431 POST /groups/:id/epics/:epic_id/related_epics2432 behaves like unauthenticated resource2433 returns 4012434 behaves like insufficient permissions2435 when user can not access source epic2436 behaves like not found resource2437 returns 4042438 when user can only read source epic2439 behaves like forbidden resource2440 returns 4032441 when user can only manage source epic2442 behaves like not found resource2443 returns 4042444 when user is guest in target group2445 behaves like successful response2446 returns created2447 when target epic is confidential2448 behaves like forbidden resource2449 returns 4032450 when user can relate epics2451 returns 201 when sending full path of target group2452 returns 201 status for is_blocked_by link and contains the expected link response2453 behaves like endpoint with features check2454 when epics feature is not available2455 is expected to eq 4032456 when related_epics feature is not available2457 is expected to eq 4032458 behaves like successful response2459 returns created2460 when target epic is not found2461 behaves like not found resource2462 returns 4042463 DELETE /groups/:id/epics/:epic_id/related_epics2464 behaves like unauthenticated resource2465 returns 4012466 behaves like insufficient permissions2467 when user can not access source epic2468 behaves like not found resource2469 returns 4042470 when user can only read source epic2471 behaves like forbidden resource2472 returns 4032473 when user can manage source epic2474 behaves like not found resource2475 returns 4042476 when user is guest in target group2477 behaves like successful response2478 returns ok2479 when related_epic_link_id belongs to a different epic2480 behaves like not found resource2481 returns 4042482 when user can relate epics2483 behaves like endpoint with features check2484 when epics feature is not available2485 is expected to eq 4032486 when related_epics feature is not available2487 is expected to eq 4032488 behaves like successful response2489 returns ok2490GroupsController2491 PUT update2492 setting ip_restriction2493 top-level group2494 when ip_restriction does not exist2495 valid param2496 single IP subnet2497 behaves like creates ip restrictions2498 creates ip restrictions2499 multiple IP subnets2500 behaves like creates ip restrictions2501 creates ip restrictions2502 invalid param2503 adds error message2504 when ip_restriction already exists2505 ip restriction param set2506 valid param2507 single subnet2508 behaves like updates ip restrictions2509 updates ip restrictions2510 multiple subnets2511 a new subnet along with the existing one2512 behaves like updates ip restrictions2513 updates ip restrictions2514 completely new range of subnets2515 behaves like updates ip restrictions2516 updates ip restrictions2517 invalid param2518 not a valid subnet2519 behaves like does not update existing ip restrictions2520 does not change ip restriction records2521 adds error message2522 multiple IP subnets2523 any one of them being not a valid2524 behaves like does not update existing ip restrictions2525 does not change ip restriction records2526 adds error message2527 empty ip restriction param2528 deletes ip restriction2529 subgroup2530 does not create ip restriction2531 with empty ip restriction param2532 updates group setting2533 does not create ip restriction2534 feature is disabled2535 does not create ip restriction2536 setting email domain restrictions2537 top-level group2538 when email domain restriction does not exist2539 valid param2540 single domain2541 behaves like creates email domain restrictions2542 creates email domain restrictions2543 multiple domains2544 behaves like creates email domain restrictions2545 creates email domain restrictions2546 invalid param2547 adds error message2548 when email domain restrictions already exists2549 allowed email domain param set2550 valid param2551 single domain2552 behaves like updates allowed email domain restrictions2553 updates allowed email domain restrictions2554 multiple domains2555 a new domain along with the existing one2556 behaves like updates allowed email domain restrictions2557 updates allowed email domain restrictions2558 completely new set of domains2559 behaves like updates allowed email domain restrictions2560 updates allowed email domain restrictions2561 invalid param2562 not a valid domain2563 behaves like does not update existing email domain restrictions2564 does not change allowed_email_domains records2565 adds error message2566 multiple domains2567 any one of them being not a valid2568 behaves like does not update existing email domain restrictions2569 does not change allowed_email_domains records2570 adds error message2571 empty param2572 deletes all email domain restrictions2573 subgroup2574 does not create email domain restriction2575 feature is disabled2576 does not create email domain restrictions2577 PUT #transfer2578 does not transfer a group with a gitlab saas subscription2579 transfers a subgroup with a parent group with a gitlab saas subscription2580 DELETE #destroy2581 does not delete a group with a gitlab.com subscription2582 deletes a subgroup with a parent group with a gitlab.com subscription2583 delayed deletion feature is enabled2584 deletes a group with trial plan2585 delayed deletion feature is disabled2586 immediately schedules a group destroy2587getting a requirement list for a project2588 when user has access to the project2589 returns requirements successfully2590 returns cached rendered html fields from requirement issue2591 behaves like a working graphql query2592 returns a successful response2593 when querying delegated fields2594 does not execute n+1 queries2595 when limiting the number of results2596 behaves like a working graphql query2597 returns a successful response2598 query performance with test reports2599 avoids N+1 queries2600 filtering2601 behaves like a working graphql query2602 returns a successful response2603 when given single author param2604 returns filtered requirements2605 when given multiple author param2606 returns filtered requirements2607 when given search param2608 returns filtered requirements2609 when given author and search params2610 returns filtered requirements2611 when given lastTestReportState2612 returns filtered requirements2613 for MISSING status2614 returns filtered requirements2615 sorting and pagination2616 when sorting by created_at2617 when ascending2618 behaves like sorted paginated query2619 behaves like requires variables2620 shared example requires variables to be set2622 when sorting2623 sorts correctly2624 when paginating2625 paginates correctly2626 when descending2627 behaves like sorted paginated query2628 behaves like requires variables2629 shared example requires variables to be set2631 when sorting2632 sorts correctly2633 when paginating2634 paginates correctly2635 when the user does not have access to the requirement2636 returns nil2637 when requirements feature is not available2638 returns nil2639Git LFS API and storage2640 with group wikis2641 behaves like LFS http requests2642 when LFS is disabled globally2643 download request2644 behaves like LFS http 501 response2645 behaves like LFS http expected response code and message2646 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."2647 upload request2648 behaves like LFS http 501 response2649 behaves like LFS http expected response code and message2650 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."2651 unauthenticated2652 download request2653 behaves like LFS http 401 response2654 behaves like LFS http expected response code and message2655 is expected to match "text/plain"2656 upload request2657 behaves like LFS http 401 response2658 behaves like LFS http expected response code and message2659 is expected to match "text/plain"2660 without access2661 download request2662 behaves like LFS http 404 response2663 behaves like LFS http expected response code and message2664 is expected to match "application/vnd.git-lfs+json"2665 upload request2666 behaves like LFS http 404 response2667 behaves like LFS http expected response code and message2668 is expected to match "application/vnd.git-lfs+json"2669 with guest access2670 download request2671 behaves like LFS http 404 response2672 behaves like LFS http expected response code and message2673 is expected to match "application/vnd.git-lfs+json"2674 upload request2675 behaves like LFS http 404 response2676 behaves like LFS http expected response code and message2677 is expected to match "application/vnd.git-lfs+json"2678 with download permission2679 download request2680 behaves like LFS http 200 blob response2681 behaves like LFS http 404 response2682 behaves like LFS http expected response code and message2683 is expected to match "application/vnd.git-lfs+json"2684 when container does not exist2685 behaves like LFS http 404 response2686 behaves like LFS http expected response code and message2687 is expected to match "application/vnd.git-lfs+json"2688 upload request2689 behaves like LFS http 403 response2690 behaves like LFS http 404 response2691 behaves like LFS http expected response code and message2692 is expected to match "application/vnd.git-lfs+json"2693 with upload permission2694 upload request2695 behaves like LFS http 200 response2696 behaves like LFS http 404 response2697 behaves like LFS http expected response code and message2698 is expected to match "application/vnd.git-lfs+json"2699 deprecated API2700 when fetching LFS object using deprecated API2701 behaves like deprecated request2702 behaves like LFS http expected response code and message2703 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."2704 when handling LFS request using deprecated API2705 behaves like deprecated request2706 behaves like LFS http expected response code and message2707 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."2708 when handling lfs batch request2709 upload2710 when request is authenticated2711 when user has project push access2712 when pushing a lfs object that does not exist2713 behaves like pushes new LFS objects2714 and project is above the repository size limit2715 responds with status 4062716 and project will go over the repository size limit2717 responds with status 4062718 when the namespace storage limit is exceeded2719 responds with status 4062720 when the push size would exceed the namespace storage limit2721 responds with status 4062722 when the namespace is over the free user cap limit2723 responds with status 4062724 when pushing to a subgroup project2725 when the namespace storage limit is exceeded2726 responds with status 4062727 when Geo is not enabled2728 when custom_http_clone_url_root is not configured2729 returns hrefs based on external_url2730 when custom_http_clone_url_root is configured2731 returns hrefs based on custom_http_clone_url_root2732 when this site is a Geo primary site2733 when custom_http_clone_url_root is not configured2734 returns hrefs based on the Geo primary site URL2735 when custom_http_clone_url_root is configured2736 returns hrefs based on the Geo primary site URL2737 when deploy key has project push access2738 behaves like pushes new LFS objects2739 and project is above the repository size limit2740 responds with status 4062741 and project will go over the repository size limit2742 responds with status 4062743 when the namespace storage limit is exceeded2744 responds with status 4062745 when the push size would exceed the namespace storage limit2746 responds with status 4062747 when pushing a lfs object2748 to one project2749 when user is authenticated2750 when user has push access to the project2751 when project has repository size limit enabled2752 responds with status 200 when the push will stay under the limit2753 when namespace storage limits are enabled2754 responds with status 200 when the push is under the limit2755Projects::DependenciesController2756 # order random2757 GET #index2758 when the "Security and Compliance" feature is disabled2759 is expected to respond with numeric status code not_found2760 with authorized user2761 when feature is available2762 when requesting HTML2763 is expected to respond with numeric status code ok2764 renders the side navigation with the correct submenu set as active2765 with existing report2766 without pagination params2767 returns paginated list2768 returns status ok2769 returns job path2770 returns success code2771 with params2772 with sorting params2773 does not include occurrence_id within dependencies2774 when sorted by packager2775 returns sorted list2776 return 20 dependencies2777 when sorted by severity2778 returns sorted list2779 with filter by vulnerable2780 with authorized user to see vulnerabilities2781 return vulnerable dependencies2782 returns vulnerability params2783 with pagination params2784 returns paginated list2785 with found cyclonedx report2786 when querying uncompressed package metadata2787 includes license information in response2788 when querying compressed package metadata2789 includes license information in response2790 with a report of the wrong type2791 returns job_not_set_up status2792 returns a nil job_path2793 when report doesn't have dependency list field2794 returns dependencies with vulnerabilities2795 when job failed2796 returns job_failed status2797 behaves like tracks govern usage event2798 tracks unique event2799 when licensed feature is unavailable2800 returns 403 for a JSON request2801 returns a 404 for an HTML request2802 behaves like doesn't track govern usage event2803 doesn't tracks event2804 with unauthorized user2805 returns 403 for a JSON request2806 returns a 404 for an HTML request2807 behaves like doesn't track govern usage event2808 doesn't tracks event2809API::Admin::Search::Migrations2810 # order random2811 GET /admin/search/migrations/:migration_id2812 behaves like GET request permissions for admin mode2813 behaves like when admin2814 behaves like makes request2815 returns2816 behaves like makes request2817 returns2818 behaves like when user2819 returns2820 behaves like makes request2821 returns2822 behaves like an API that returns 401 for unauthenticated requests2823 returns not_found status2824 behaves like an API that returns 400 when elasticsearch_indexing is disabled2825 returns bad_request status2826 when requested by version2827 behaves like an API that returns a migration2828 returns a migration2829 when requested by name2830 behaves like an API that returns a migration2831 returns a migration2832 GET /admin/search/migrations2833 lists all migrations2834 behaves like GET request permissions for admin mode2835 behaves like when admin2836 behaves like makes request2837 returns2838 behaves like makes request2839 returns2840 behaves like when user2841 returns2842 behaves like makes request2843 returns2844 behaves like an API that returns 401 for unauthenticated requests2845 returns not_found status2846 behaves like an API that returns 400 when elasticsearch_indexing is disabled2847 returns bad_request status2848API::Admin::Search::Zoekt2849 # order random2850 GET /admin/zoekt/shards/:shard_id/indexed_namespaces2851 returns all indexed namespaces for this shard2852 returns at most MAX_RESULTS most recent rows2853 behaves like GET request permissions for admin mode2854 behaves like when admin2855 behaves like makes request2856 returns2857 behaves like makes request2858 returns2859 behaves like when user2860 returns2861 behaves like makes request2862 returns2863 behaves like an API that returns 401 for unauthenticated requests2864 returns not_found status2865 behaves like an API that returns 404 for missing ids2866 returns not_found status2867 PUT /admin/zoekt/shards/:shard_id/indexed_namespaces/:namespace_id2868 creates a Zoekt::IndexedNamespace for this shard and namespace pair2869 behaves like PUT request permissions for admin mode2870 behaves like when admin2871 behaves like makes request2872 returns2873 behaves like makes request2874 returns2875 behaves like when user2876 returns2877 behaves like makes request2878 returns2879 behaves like an API that returns 401 for unauthenticated requests2880 returns not_found status2881 behaves like an API that returns 400 when the index_code_with_zoekt feature flag is disabled2882 returns not_found status2883 when it already exists2884 returns the existing one2885 with missing shard_id2886 behaves like an API that returns 404 for missing ids2887 returns not_found status2888 with missing namespace_id2889 behaves like an API that returns 404 for missing ids2890 returns not_found status2891 DELETE /admin/zoekt/shards/:shard_id/indexed_namespaces/:namespace_id2892 removes the Zoekt::IndexedNamespace for this shard and namespace pair2893 behaves like DELETE request permissions for admin mode2894 behaves like when admin2895 behaves like makes request2896 returns2897 behaves like makes request2898 returns2899 behaves like when user2900 returns2901 behaves like makes request2902 returns2903 behaves like an API that returns 401 for unauthenticated requests2904 returns not_found status2905 with missing shard_id2906 behaves like an API that returns 404 for missing ids2907 returns not_found status2908 with missing namespace_id2909 behaves like an API that returns 404 for missing ids2910 returns not_found status2911 PUT /admin/zoekt/projects/:projects/index2912 triggers indexing for the project2913 behaves like PUT request permissions for admin mode2914 behaves like when admin2915 behaves like makes request2916 returns2917 behaves like makes request2918 returns2919 behaves like when user2920 returns2921 behaves like makes request2922 returns2923 behaves like an API that returns 401 for unauthenticated requests2924 returns not_found status2925 behaves like an API that returns 400 when the index_code_with_zoekt feature flag is disabled2926 returns not_found status2927 behaves like an API that returns 404 for missing ids2928 returns not_found status2929 GET /admin/zoekt/shards2930 returns all shards2931 behaves like GET request permissions for admin mode2932 behaves like when admin2933 behaves like makes request2934 returns2935 behaves like makes request2936 returns2937 behaves like when user2938 returns2939 behaves like makes request2940 returns2941 behaves like an API that returns 401 for unauthenticated requests2942 returns not_found status2943Groups::Security::CredentialsController2944 GET #index2945 when `credentials_inventory` feature is enabled2946 for a group that enforces group managed accounts2947 for a user with access to view credentials inventory2948 responds with 2002949 filtering by type of credential2950 no credential type specified2951 behaves like filtering by `personal_access_tokens`2952 is expected to contain exactly #<PersonalAccessToken id: 566, user_id: 1235, name: "PAT 566", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 567, user_id: 1234, name: "PAT 567", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 568, user_id: 1235, name: "PAT 568", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>2953 non-existent credential type specified2954 behaves like filtering by `personal_access_tokens`2955 is expected to contain exactly #<PersonalAccessToken id: 566, user_id: 1235, name: "PAT 566", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 569, user_id: 1234, name: "PAT 569", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 570, user_id: 1235, name: "PAT 570", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>2956 credential type specified as `personal_access_tokens`2957 behaves like filtering by `personal_access_tokens`2958 is expected to contain exactly #<PersonalAccessToken id: 566, user_id: 1235, name: "PAT 566", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 571, user_id: 1234, name: "PAT 571", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 572, user_id: 1235, name: "PAT 572", revoked: false, expires_at: "2023-09-1...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>2959 user scope2960 does not show the credentials of a user outside the group2961 credential type specified as `ssh_keys`2962 filters by ssh keys2963 for a user without access to view credentials inventory2964 responds with 4042965 for a group that does not enforce group managed accounts2966 responds with 4042967 when `credentials_inventory` feature is disabled2968 returns 4042969 DELETE #destroy2970 behaves like credentials inventory delete SSH key2971 admin user2972 when `credentials_inventory` feature is enabled2973 and the ssh_key exists2974 and it removes the key2975 renders a success message2976 notifies the key owner2977 and it fails to remove the key2978 renders a failure message2979 and the ssh_key does not exist2980 renders a not found message2981 when `credentials_inventory` feature is disabled2982 returns 4042983 non-admin user2984 returns 4042985 PUT #revoke2986 when `credentials_inventory` feature is enabled2987 for a group that enforces group managed accounts2988 for a user with access to view credentials inventory2989 non-existent personal access token specified2990 behaves like responds with 4042991 is expected to respond with numeric status code not_found2992 with an existing personal access token2993 personal access token is already revoked2994 behaves like displays the flash success message2995 is expected to start with "Revoked personal access token "2996 personal access token is already expired2997 behaves like displays the flash success message2998 is expected to start with "Revoked personal access token "2999 does not have permissions to revoke the credential3000 behaves like responds with 4043001 is expected to respond with numeric status code not_found3002 personal access token is already revoked3003 behaves like displays the flash success message3004 is expected to start with "Revoked personal access token "3005 personal access token is already expired3006 behaves like displays the flash success message3007 is expected to start with "Revoked personal access token "3008 personal access token is not revoked or expired3009 informs the token owner3010 behaves like displays the flash success message3011 is expected to start with "Revoked personal access token "3012 for a user without access to view credentials inventory3013 behaves like responds with 4043014 is expected to respond with numeric status code not_found3015 for a group that does not enforce group managed accounts3016 responds with 4043017 when `credentials_inventory` feature is disabled3018 behaves like responds with 4043019 is expected to respond with numeric status code not_found3020API::EpicLinks3021 GET /groups/:id/epics/:epic_iid/epics3022 behaves like user does not have access3023 returns 403 when subepics feature is disabled3024 returns 404 not found error for a user without permissions to see the group3025 unauthenticated user3026 returns 401 unauthorized error3027 when subepics feature is enabled3028 returns 200 status3029 with group hierarchy3030 returns children from any group hierarchy3031 executes limited number of N+1 queries3032 POST /groups/:id/epics/:epic_iid/epics/child_epic_id3033 behaves like user does not have access3034 returns 403 when subepics feature is disabled3035 returns 404 not found error for a user without permissions to see the group3036 unauthenticated user3037 returns 401 unauthorized error3038 when subepics feature is enabled3039 when user is not a member3040 returns 4033041 when user is guest3042 returns 201 status3043 when target epic cannot be read3044 returns 404 status3045 POST /groups/:id/epics/:epic_iid/epics3046 behaves like user does not have access3047 returns 403 when subepics feature is disabled3048 returns 404 not found error for a user without permissions to see the group3049 unauthenticated user3050 returns 401 unauthorized error3051 when subepics feature is enabled3052 when user is not a member3053 returns 4033054 when user is a guest3055 returns 201 status3056 when user is a reporter3057 returns 201 status3058 does apply the confidential parameter if set3059 when the parent epic is confidential3060 copies the confidentiality status from the parent epic3061 does not allow creating a non-confidential sub-epic3062 and epic has errors3063 returns 400 error3064 PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id3065 behaves like user does not have access3066 returns 403 when subepics feature is disabled3067 returns 404 not found error for a user without permissions to see the group3068 unauthenticated user3069 returns 401 unauthorized error3070 when subepics are enabled3071 when user has permissions to reorder epics3072 returns status 2003073 when child belongs to a different group hierarchy3074 returns status 404 if user is not a member3075 returns status 200 if user has guest access3076 when user does not have permissions to reorder epics3077 returns status 4033078 DELETE /groups/:id/epics/:epic_iid/epics3079 behaves like user does not have access3080 returns 403 when subepics feature is disabled3081 returns 404 not found error for a user without permissions to see the group3082 unauthenticated user3083 returns 401 unauthorized error3084 when epics feature is enabled3085 when user is not a member3086 returns 4033087 when user is guest3088 returns 200 status3089 with confidential epic3090 returns status 4033091 when child belongs to a different group hierarchy3092 when user is not a member of the child's group3093 returns 404 status3094 when user has guest access to child's group3095 returns 200 status3096 when epics feature is disabled3097 when user is developer3098 returns 403 status3099Projects::JobsController3100 GET #show3101 when requesting JSON3102 with shared runner that has quota3103 exposes quota information3104 with shared runner quota exceeded3105 exposes quota information3106 when shared runner has no quota3107 does not exposes quota information3108 when project is public3109 exposes quota information3110 the environment is protected3111 renders successfully3112 anonymous user3113 renders successfully3114 when project is private3115 when user has read_ci_minutes_limited_summary permissions3116 behaves like returns nil quota3117 returns no quota for the runner3118 with shared_runners_minutes_limit_enabled3119 behaves like returns quota3120 returns a quota3121 when user does not have read_ci_minutes_limited_summary permissions3122 behaves like returns nil quota3123 returns no quota for the runner3124 with shared_runners_minutes_limit_enabled3125 behaves like returns nil quota3126 returns no quota for the runner3127Groups::Analytics::CycleAnalytics::ValueStreamsController3128 # order random3129 behaves like value stream controller actions3130 GET index3131 when user is a member3132 returns the persisted value streams3133 when user is not a member3134 renders 4043135 GET #show3136 succeeds3137 when value stream is not found3138 renders 4043139 behaves like authorization examples3140 when not licensed3141 renders 4043142 when user is not a member3143 renders 4043144 GET #new3145 succeeds3146 behaves like authorization examples3147 when not licensed3148 renders 4043149 when user is not a member3150 renders 4043151 GET #edit3152 succeeds3153 when value stream is not found3154 renders 404 not found3155 behaves like authorization examples3156 when not licensed3157 renders 4043158 when user is not a member3159 renders 4043160 PUT #update3161 succeeds3162 when validation error happens3163 returns 422 unprocessable entity3164 when value stream is not found3165 renders 404 not found3166 when updating value stream with in-memory stages3167 returns a successful 200 response3168 when deleting the stage by excluding it from the stages array3169 returns a successful 200 response3170 behaves like authorization examples3171 when not licensed3172 renders 4043173 when user is not a member3174 renders 4043175 POST #create3176 succeeds3177 when validation error happens3178 returns 422 unprocessable entity3179 when stage names are not unique3180 returns 422 unprocessable entity3181 behaves like authorization examples3182 when not licensed3183 renders 4043184 when user is not a member3185 renders 4043186 DELETE #destroy3187 succeeds3188 when value stream is not found3189 renders 404 not found3190 behaves like authorization examples3191 when not licensed3192 renders 4043193 when user is not a member3194 renders 4043195Groups::EpicsController3196 # order random3197 GET #show3198 behaves like observability csp policy3199 when there is no CSP config3200 does not add any csp header3201 frame-src3202 when frame-src exists in the CSP config3203 appends the proper url to frame-src CSP directives3204 when signin url is already present in the policy3205 does not append signin again3206 when oauth url is already present in the policy3207 does not append oauth again3208 when default-src exists in the CSP config3209 does not change default-src3210 appends the proper url to frame-src CSP directives3211 when frame-src and default-src exist in the CSP config3212 appends to frame-src CSP directives3213 connect-src3214 when connect-src exists in the CSP config3215 appends the proper url to connect-src CSP directives3216 when default-src exists in the CSP config3217 does not change default-src3218 appends the proper url to connect-src CSP directives3219 when connect-src and default-src exist in the CSP config3220 appends to connect-src CSP directives3221 for summarize notes feature3222 when feature is available set3223 exposes the required feature flags3224 when feature is not available3225 does not expose the feature flags3226 GET #new3227 behaves like observability csp policy3228 when there is no CSP config3229 does not add any csp header3230 frame-src3231 when frame-src exists in the CSP config3232 appends the proper url to frame-src CSP directives3233 when signin url is already present in the policy3234 does not append signin again3235 when oauth url is already present in the policy3236 does not append oauth again3237 when default-src exists in the CSP config3238 does not change default-src3239 appends the proper url to frame-src CSP directives3240 when frame-src and default-src exist in the CSP config3241 appends to frame-src CSP directives3242 connect-src3243 when connect-src exists in the CSP config3244 appends the proper url to connect-src CSP directives3245 when default-src exists in the CSP config3246 does not change default-src3247 appends the proper url to connect-src CSP directives3248 when connect-src and default-src exist in the CSP config3249 appends to connect-src CSP directives3250API::EpicBoards3251 # order random3252 GET /groups/:id/epic_boards/:board_id/lists/list_id3253 behaves like request with epics unavailable3254 returns 403 forbidden error3255 when epics are available3256 behaves like request with errors3257 with unauthenticated user3258 returns 401 unauthorized error3259 with user without permissions3260 returns 404 not found error3261 when provided ids are not found3262 returns 404 not found error3263 when the request is correct3264 returns 200 status3265 matches the response schema3266 GET /groups/:id/epic_boards/:board_id/lists3267 behaves like request with epics unavailable3268 returns 403 forbidden error3269 when epics are available3270 behaves like request with errors3271 with unauthenticated user3272 returns 401 unauthorized error3273 with user without permissions3274 returns 404 not found error3275 when provided ids are not found3276 returns 404 not found error3277 behaves like request with pagination3278 when viewing the first page3279 behaves like paginated API endpoint3280 returns the correct page3281 when viewing the second page3282 behaves like paginated API endpoint3283 returns the correct page3284 when the request is correct3285 returns 200 status3286 matches the response schema3287 avoids N+1 queries3288 GET /groups/:id/epic_boards3289 behaves like request with epics unavailable3290 returns 403 forbidden error3291 when epics are available3292 behaves like request with errors3293 with unauthenticated user3294 returns 401 unauthorized error3295 with user without permissions3296 returns 404 not found error3297 when provided ids are not found3298 returns 404 not found error3299 behaves like request with pagination3300 when viewing the first page3301 behaves like paginated API endpoint3302 returns the correct page3303 when viewing the second page3304 behaves like paginated API endpoint3305 returns the correct page3306 when the request is correct3307 returns 200 status3308 returns correct information3309 matches the response schema3310 avoids N+1 queries3311 GET /groups/:id/epic_boards/:board_id3312 behaves like request with epics unavailable3313 returns 403 forbidden error3314 when epics are available3315 behaves like request with errors3316 with unauthenticated user3317 returns 401 unauthorized error3318 with user without permissions3319 returns 404 not found error3320 when provided ids are not found3321 returns 404 not found error3322 when the request is correct3323 returns 200 status3324 matches the response schema3325API::GroupServiceAccounts3326 # order random3327 POST /groups/:id/service_accounts3328 when the feature is licensed3329 when current user is an owner3330 when the group exists3331 creates user with user type service_account_user3332 returns bad request when service returns bad request3333 when the group does not exist3334 returns error3335 when user is not an owner3336 returns error3337 without authentication3338 returns error3339 when the feature is not licensed3340 returns error3341 POST /personal_access_tokens/:token_id/rotate3342 when the feature is licensed3343 when user is an owner3344 when the group exists3345 revokes the token3346 when service raises an error3347 returns error message3348 when token does not exist3349 returns not found3350 when token does not belong to service account user3351 returns bad request3352 when target user does not belong to group3353 returns error3354 when target user is not service accounts3355 returns bad request error3356 when group does not exist3357 returns error3358 when user is not an owner3359 throws error3360 when the feature is not licensed3361 returns error3362 POST /groups/:id/service_accounts/:user_id/personal_access_tokens3363 when the feature is licensed3364 when user is an owner3365 when the group exists3366 creates personal access token for the user3367 when an error is thrown by the model3368 returns the error3369 when target user does not belong to group3370 returns error3371 when target user is not service accounts3372 returns bad request error3373 when group does not exist3374 returns error3375 when user is not an owner3376 returns error3377 without authentication3378 returns error3379 when feature is not licensed3380 returns error3381API::Geo3382 GET /geo/retrieve/:replicable_name/:replicable_id3383 valid requests3384 returns the file3385 allowed IPs3386 responds with 401 when IP is not allowed3387 responds with 200 when IP is allowed3388 invalid requests3389 responds with 401 with invalid auth header3390 responds with 401 with mismatched params in auth headers3391 responds with 404 when resource is not found3392 POST /geo/status3393 responds with 401 with invalid auth header3394 responds with 401 when the db_key_base is wrong3395 allowed IPs3396 responds with 401 when IP is not allowed3397 responds with 201 when IP is allowed3398 when requesting primary node with valid auth header3399 updates the status and responds with 2013400 ignores invalid attributes upon update3401 behaves like with terms enforced3402 responds with 2xx HTTP response code3403 /geo/proxy_git_ssh3404 POST /geo/proxy_git_ssh/info_refs_upload_pack3405 with all required params missing3406 responds with 4003407 with all required params3408 with an invalid jwt token3409 responds with 4013410 where an exception occurs3411 responds with 5003412 with a valid secret token3413 responds with 2003414 POST /geo/proxy_git_ssh/upload_pack3415 with all required params missing3416 responds with 4003417 with all required params3418 with an invalid jwt token3419 responds with 4013420 where an exception occurs3421 responds with 5003422 with a valid secret token3423 responds with 2013424 POST /geo/proxy_git_ssh/info_refs_receive_pack3425 with all required params missing3426 responds with 4003427 with all required params3428 with an invalid jwt token issuer3429 responds with 4013430 with a jwt token encoded by a different secret_token3431 responds with 4013432 where an exception occurs3433 responds with 5003434 with a valid secret token3435 responds with 2003436 POST /geo/proxy_git_ssh/receive_pack3437 with all required params missing3438 responds with 4003439 with all required params3440 with an invalid jwt token3441 responds with 4013442 where an exception occurs3443 responds with 5003444 with a valid secret token3445 responds with 2013446 GET /geo/proxy3447 rejects requests that bypassed gitlab-workhorse3448 with valid auth3449 when Geo is not being used3450 returns empty data3451 when this is a primary site3452 returns empty data3453 when this is a secondary site with unified URL3454 when a primary exists3455 returns the primary internal URL and extra proxy data3456 when a primary does not exist3457 returns empty data3458 when this is a secondary site with separate URLs3459 when a primary does not exist3460 returns empty data3461 when geo_secondary_proxy_separate_urls feature flag is disabled3462 returns empty data3463 when geo_secondary_proxy_separate_urls feature flag is enabled3464 returns the primary internal URL and extra proxy data3465 POST /geo/node_proxy/:id/graphql3466 denies access if not admin3467 requests the graphql endpoint with the post body and returns the output3468 returns empty output if remote fails3469 behaves like 404 response3470 returns 4043471Groups::Epics::EpicLinksController3472 GET #index3473 behaves like unlicensed subepics action3474 returns 403 status3475 when epics are enabled3476 when user has access to epic3477 returns the correct JSON response3478 with query performance3479 executes same number of queries plus threshold3480 when user does not have access to epic3481 returns 404 status3482 when epic is confidential3483 returns 403 status when user is a guest3484 with children in different group hierarchies3485 behaves like returns correct response3486 includes only children with access3487 when user has no access to the other group3488 behaves like returns correct response3489 includes only children with access3490 POST #create3491 behaves like unlicensed subepics action3492 returns 403 status3493 when subepics are enabled3494 when user has permissions to create requested association3495 returns correct response for the correct issue reference3496 updates a parent for the referenced epic3497 with hierarchy depth validations3498 when it does not exceed the max hierarchy depth3499 sets the parent3500 when it exceeds the max hierarchy depth3501 does not set the parent and returns an error3502 when user does not have permissions to create requested association3503 returns 403 status3504 does not update parent attribute3505 PUT #update3506 behaves like unlicensed subepics action3507 returns 403 status3508 when subepics are enabled3509 when user has permissions to reorder epics3510 returns status 2003511 updates the epic position3512 when move_before_id is not a sibling epic3513 returns status 4043514 when user does not have permissions to reorder epics3515 returns status 4033516 DELETE #destroy3517 behaves like unlicensed subepics action3518 returns 403 status3519 when epics are enabled3520 when user has permissions to update the parent epic3521 returns status 2003522 destroys the link3523 when user does not have permissions to update the parent epic3524 returns status 4043525 does not destroy the link3526 when the epic does not have any parent3527 returns status 4043528 when user has permissions to update the parent epic but epics feature is disabled3529 does not destroy the link3530Projects::ProtectedEnvironmentsController3531 #POST create3532 with valid access and params3533 with valid params3534 creates a new ProtectedEnvironment3535 sets a flash3536 redirects to CI/CD settings3537 with invalid params3538 does not create a new ProtectedEnvironment3539 redirects to CI/CD settings3540 with invalid access3541 renders 4043542 #PUT update3543 when the user is authorized3544 finds the requested protected environment3545 updates the protected environment3546 is successful3547 when the user is not authorized3548 is not successful3549 #DELETE destroy3550 when the user is authorized3551 finds the requested protected environment3552 deletes the requested protected environment3553 redirects to CI/CD settings3554 when the user is not authorized3555 is not successful3556API::Invitations EE Invitations3557 POST /groups/:id/invitations3558 behaves like member creation audit event3559 creates an audit event while creating a new member3560 does not create audit event if creating a new member fails3561 behaves like admin signup restrictions email error - denylist3562 behaves like restricted email error3563 returns an http error response and the validation message3564 behaves like POST request permissions for admin mode3565 behaves like when admin3566 behaves like makes request3567 returns3568 behaves like makes request3569 returns3570 behaves like when user3571 returns3572 behaves like makes request3573 returns3574 when the group is restricted by admin signup restrictions3575 behaves like admin signup restrictions email error - allowlist3576 behaves like restricted email error3577 returns an http error response and the validation message3578 behaves like admin signup restrictions email error - email restrictions3579 behaves like restricted email error3580 returns an http error response and the validation message3581 when the group is restricted by group signup restriction - allowed domains for signup3582 behaves like restricted email error3583 returns an http error response and the validation message3584 with free user cap considerations3585 when there are at the size limit3586 behaves like does not add members3587 does not add the member3588 when there are over the size limit3589 behaves like does not add members3590 does not add the member3591 when there is a seat left3592 creates a member3593 when there are seats left and we add enough to exhaust all seats3594 creates one member and errors on the other member3595 with minimal access level3596 when group has no parent3597 return success3598 when group has parent3599 return error3600 POST /projects/:id/invitations3601 behaves like member creation audit event3602 creates an audit event while creating a new member3603 does not create audit event if creating a new member fails3604 behaves like POST request permissions for admin mode3605 behaves like when admin3606 behaves like makes request3607 returns3608 behaves like makes request3609 returns3610 behaves like when user3611 returns3612 behaves like makes request3613 returns3614 with group membership locked3615 returns an error and exception message when group membership lock is enabled3616 when the project is restricted by admin signup restrictions3617 behaves like admin signup restrictions email error - denylist3618 behaves like restricted email error3619 returns an http error response and the validation message3620 when the group is restricted by admin signup restrictions3621 behaves like admin signup restrictions email error - allowlist3622 behaves like restricted email error3623 returns an http error response and the validation message3624 behaves like admin signup restrictions email error - email restrictions3625 behaves like restricted email error3626 returns an http error response and the validation message3627 group with LDAP group link3628 POST /groups/:id/invitations3629 returns a forbidden response3630 PUT /groups/:id/invitations/:email3631 returns a forbidden response3632 DELETE /groups/:id/invitations/:email3633 returns a forbidden response3634getting project flow metrics3635 # order random3636 behaves like value stream analytics flow metrics leadTime examples3637 returns the correct value3638 when the user is not authorized3639 returns nil3640 when outside of the date range3641 returns 0 count3642 with all filters3643 returns filtered count3644 when cycle analytics is not licensed3645 returns nil3646 behaves like value stream analytics flow metrics deploymentCount examples3647 returns the correct count3648 uses DORA data3649 when the user is not authorized3650 returns nil3651 when outside of the date range3652 returns 0 count3653 behaves like validation on Time arguments3654 when `to` parameter is higher than `from`3655 returns error3656 when from and to parameter range is higher than 180 days3657 returns error3658 behaves like value stream analytics flow metrics issuesCompleted examples3659 returns the correct value3660 when the user is not authorized3661 returns nil3662 when outside of the date range3663 returns 0 count3664 with all filters3665 returns filtered count3666 when cycle analytics is not licensed3667 returns nil3668 behaves like value stream analytics flow metrics cycleTime examples3669 returns the correct value3670 when the user is not authorized3671 returns nil3672 when outside of the date range3673 returns 0 count3674 with all filters3675 returns filtered count3676 when cycle analytics is not licensed3677 returns nil3678API::Iterations3679 GET /groups/:id/iterations3680 excludes ancestor iterations when include_ancestors is set to false3681 behaves like iterations list3682 when user does not have access3683 returns 4043684 when user has access3685 returns a list of iterations3686 returns iterations filtered by title3687 returns iterations filtered by title with `in` parameter3688 returns iterations filtered by cadence title3689 returns 400 when `in` param is invalid3690 returns 400 when `state` param is invalid3691 filter by iteration state3692 returns `closed` state iterations3693 returns current iteration3694 returns `current` state iterations3695 filter by updated_at3696 returns iterations filtered only by updated_before3697 returns iterations filtered only by updated_after3698 returns iterations filtered by updated_after and updated_before3699 GET /projects/:id/iterations3700 return direct parent group iterations when include_ancestors is set to false3701 behaves like iterations list3702 when user does not have access3703 returns 4043704 when user has access3705 returns a list of iterations3706 returns iterations filtered by title3707 returns iterations filtered by title with `in` parameter3708 returns iterations filtered by cadence title3709 returns 400 when `in` param is invalid3710 returns 400 when `state` param is invalid3711 filter by iteration state3712 returns `closed` state iterations3713 returns current iteration3714 returns `current` state iterations3715 filter by updated_at3716 returns iterations filtered only by updated_before3717 returns iterations filtered only by updated_after3718 returns iterations filtered by updated_after and updated_before3719SessionsController3720 #new3721 on a Geo secondary node3722 when relative URL is configured3723 behaves like a valid oauth authentication redirect3724 redirects to the correct oauth_geo_auth_url3725 with a tampered HOST header3726 behaves like a valid oauth authentication redirect3727 redirects to the correct oauth_geo_auth_url3728 with a tampered X-Forwarded-Host header3729 behaves like a valid oauth authentication redirect3730 redirects to the correct oauth_geo_auth_url3731 without a tampered header3732 behaves like a valid oauth authentication redirect3733 redirects to the correct oauth_geo_auth_url3734 #create3735 with wrong credentials3736 when is a trial form3737 redirects to new trial sign in page3738 when is a regular form3739 redirects to the regular sign in page3740 when using two-factor authentication3741 when OTP authentication fails3742 behaves like an auditable failed authentication3743 log an audit event3744 when WebAuthn authentication fails3745 behaves like an auditable failed authentication3746DEPRECATION WARNING: Invalid Feature Flag webauthn stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)3747 log an audit event3748 when user is not allowed to log in using password3749 does not authenticate the user3750 with Arkose reCAPTCHA3751 when ArkoseLabs namespace setting is not set3752 passes the default API domain to the view3753 when ArkoseLabs namespace setting is set3754 passes the custom API domain to the view3755 when the user was verified by Arkose3756 when user is low risk3757 successfully logs in the user3758 when user is NOT low risk3759 prevents the user from logging in3760 when request is for QA3761 skips token verification3762 logs in the user3763 when the user is a group SAML user3764 skips token verification3765 logs in the user3766 when the user was not verified by Arkose3767 prevents the user from logging in3768 sets gon variables3769 when the user should be verified by Arkose but the request does not contain the arkose token3770 prevents the user from logging in3771Projects::EnvironmentsController3772 GET #show3773 avoids N+1 queries3774API::GroupRepositoryStorageMoves3775 behaves like repository_storage_moves API3776 GET /groups/:id/repository_storage_moves3777 behaves like get container repository storage move list3778 returns container repository storage moves3779 avoids N+1 queries3780 returns the most recently created first3781 permissions3782 is expected to be allowed for :admin3783 is expected to be denied for :user3784 non-existent container3785 returns not found3786 GET /groups/:id/repository_storage_moves/:repository_storage_move_id3787 behaves like get single container repository storage move3788 returns a container repository storage move3789 non-existent container repository storage move3790 returns not found3791 permissions3792 is expected to be allowed for :admin3793 is expected to be denied for :user3794 non-existent container3795 returns not found3796 GET /group_repository_storage_moves3797 behaves like get container repository storage move list3798 returns container repository storage moves3799 avoids N+1 queries3800 returns the most recently created first3801 permissions3802 is expected to be allowed for :admin3803 is expected to be denied for :user3804 GET /group_repository_storage_moves/:repository_storage_move_id3805 behaves like get single container repository storage move3806 returns a container repository storage move3807 non-existent container repository storage move3808 returns not found3809 permissions3810 is expected to be allowed for :admin3811 is expected to be denied for :user3812 POST /groups/:id/repository_storage_moves3813 schedules a container repository storage move3814 permissions3815 is expected to be allowed for :admin3816 is expected to be denied for :user3817 destination_storage_name is missing3818 schedules a container repository storage move3819 when container does not exist3820 returns not found3821 POST /group_repository_storage_moves3822 schedules the worker3823 source_storage_name is invalid3824 gives an error3825 destination_storage_name is missing3826 schedules the worker3827 destination_storage_name is invalid3828 gives an error3829 normal user3830 is expected to be denied for :user3831getting Incident Management on-call shifts3832 # order random3833 returns the correct properties of the on-call shifts3834 without required argument ends_at3835 raises an exception3836 performance3837 for past and future shifts3838 behaves like avoids N+1 queries for additional generated shift3839 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa3a5b5450 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=20>3840 behaves like avoids N+1 queries for additional historical shift3841 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa3c107618 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=20>3842 behaves like avoids N+1 queries for additional participant3843 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa1bee2a88 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=20>3844 behaves like adds only one query for each additional rotation with participants3845 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa1ff124c8 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=20>3846 for future shifts only3847 behaves like avoids N+1 queries for additional generated shift3848 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa24ecc630 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3849 behaves like avoids N+1 queries for additional participant3850 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa62238868 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3851 behaves like avoids N+1 queries for additional rotation with participants3852 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa51573548 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3853 for past shifts only3854 behaves like avoids N+1 queries for additional historical shift3855 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa40e55b68 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3856 behaves like avoids N+1 queries for additional participant3857 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa3225dda0 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3858 behaves like adds only one query for each additional rotation with participants3859 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007afa3a673d60 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3860 behaves like a working graphql query3861 returns a successful response3862 without required argument starts_at3863 raises an exception3864API::ProjectClusters3865 POST /projects/:id/clusters/user3866 when user sets specific environment scope3867 creates a cluster with that specific environment3868 when does not set an specific environment scope3869 sets default environment3870 when another cluster exists3871 responds with 2013872 allows multiple clusters to be associated to project3873 PUT /projects/:id/clusters/:cluster_id3874 With a GCP cluster3875 updates the environment scope3876 With an user cluster3877 updates the environment scope3878Creating a Requirement3879 when the user does not have permission3880 does not create requirement3881 behaves like a mutation that returns a top-level access error3882 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"3883 when the user has permission3884 when requirements are disabled3885 behaves like a mutation that returns top-level errors3886 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"3887 when requirements are enabled3888 creates the requirement3889 when there are ActiveRecord validation errors3890 does not create the requirement3891 behaves like a mutation that returns errors in the response3892 is expected to contain exactly "Title can't be blank"3893 behaves like has spam protection3894 #check_spam_action_response!3895 when the object is spam (DISALLOW)3896 and no CAPTCHA is available3897 behaves like disallow response3898 informs the client that the request was denied as spam3899 and a CAPTCHA is required3900 behaves like disallow response3901 informs the client that the request was denied as spam3902 when the object is not spam (CONDITIONAL ALLOW)3903 and no CAPTCHA is required3904 does not return a top-level error3905 and a CAPTCHA is required3906 informs the client that the request may be retried after solving the CAPTCHA3907Repositories::GitHttpController3908 POST #git_upload_pack3909 geo pulls a personal snippet3910 allows access3911 does not allow access if scope is wrong3912 GET #info_refs3913 smartcard session required3914 user with a smartcard session3915 allows access3916 user without a smartcard session3917 does not allow access3918 with the setting off3919 allows access3920 POST #git_receive_pack3921 when node is a primary Geo one3922 with projects3923 behaves like triggers Geo3924 executes ::Gitlab::Geo::GitPushHttp3925 returns 2003926 with a project wiki3927 behaves like triggers Geo3928 executes ::Gitlab::Geo::GitPushHttp3929 returns 2003930 with a group wiki3931 behaves like triggers Geo3932 executes ::Gitlab::Geo::GitPushHttp3933 returns 2003934 with a personal snippet3935 behaves like triggers Geo3936 executes ::Gitlab::Geo::GitPushHttp3937 returns 2003938 with a project snippet3939 behaves like triggers Geo3940 executes ::Gitlab::Geo::GitPushHttp3941 returns 2003942Groups::IssuesController3943 POST #bulk_update3944 when group bulk edit feature is not enabled3945 returns 404 status3946 when group bulk edit feature is enabled3947 when user has permissions to bulk update issues3948 returns status 2003949 updates issues milestone and epic3950 when params are incorrect3951 returns 422 status3952 when user does not have permissions to bulk update issues3953 returns status 4043954 does not update issues milestone or epic3955Epic aggregates (count and weight)3956 count and weight totals3957 uses the LazyEpicAggregate service3958 returns the weights3959 behaves like counts properly3960 returns the epic counts3961 returns the issue counts3962 behaves like a working graphql query3963 returns a successful response3964 when requesting has_issues3965 behaves like having correct values for3966 behaves like a working graphql query3967 returns a successful response3968 when target epic has child epics or issues3969 returns true3970 when target epic has no child epics nor issues3971 returns false3972 behaves like efficient query3973 does not result in N+13974 when requesting has_children3975 behaves like having correct values for3976 behaves like a working graphql query3977 returns a successful response3978 when target epic has child epics or issues3979 returns true3980 when target epic has no child epics nor issues3981 returns false3982 behaves like efficient query3983 does not result in N+13984Projects::Analytics::CodeReviewsController3985 GET /*namespace_id/:project_id/analytics/code_reviews3986 for reporter+3987 with code_review_analytics included in plan3988 is success3989 without code_review_analytics in plan3990 is not found3991 for guests3992 is not found3993Projects::Analytics::CodeReviewsController3994 behaves like tracking unique visits3995 tracks unique visit if the format is HTML3996 tracks unique visit if DNT is not enabled3997 does not track unique visit if DNT is enabled3998 does not track unique visit if the format is JSON3999 behaves like Snowplow event tracking with RedisHLL context4000 behaves like Snowplow event tracking4001 is emitted4002Query.project(fullPath).dastSiteProfiles4003 when a user does not have access to the project4004 returns a null project4005 when a user does not have access to dast_site_profiles4006 returns an empty edges array4007 when a user has access dast_site_profiles4008 returns populated edges array4009 returns a populated edges array containing a dast_site_profile associated with the project4010 avoids N+1 queries4011 when there are fewer dast_site_profiles than the page limit4012 indicates there are no more pages available4013 when there are more dast_site_profiles than the page limit4014 indicates there are more pages available4015 when on demand scan licensed feature is not available4016 returns an empty edges array4017Projects::Security::VulnerabilityReportController4018 GET #index4019 behaves like security and compliance disabled4020 is expected to respond with numeric status code not_found4021 behaves like doesn't track govern usage event4022 doesn't tracks event4023 when project has no vulnerabilities4024 renders empty state4025 when project has vulnerabilities4026 renders dashboard with vulnerability metadata4027 behaves like tracks govern usage event4028 tracks unique event4029Getting issues for an epic4030 when epics are enabled4031 does not return inaccessible issues4032 when user has access to the issue project4033 returns issues in this project4034 pagination4035 behaves like sorted paginated query4036 behaves like requires variables4037 shared example requires variables to be set4039 when sorting4040 sorts correctly4041 when paginating4042 paginates correctly4043 when user is guest4044 filters out confidential issues4045 when issues from multiple epics are queried4046 returns issues for each epic4047 does limited number of N+1 queries4048 when epics are disabled4049 does not find the epic4050Admin::ProjectsController4051 GET /projects/:id4052 when geo_project_repository_replication FF is disabled4053 includes Geo Status widget partial4054 when geo_project_repository_replication FF is enabled4055 hides Geo Status widget partial4056 when Geo is enabled and is a secondary node4057 renders Geo Status widget4058 displays a different read-only message based on skip_readonly_message4059 without Geo enabled4060 doesnt render Geo Status widget4061TrialRegistrationsController4062 POST create4063 when email_opted_in does not exist in params4064 sets user email_opted_in to false4065 when email_opted_in is true in params4066 sets user email_opted_in to true4067 with snowplow tracking4068 when the password is weak4069 does not track failed form submission4070 when the password is not weak4071 tracks successful form submission4072 with email confirmation4073 when email confirmation settings is set to `soft`4074 does not track an almost there redirect4075 when email confirmation settings is not set to `soft`4076 tracks an almost there redirect4077 behaves like creates a user with ArkoseLabs risk band on signup request4078 when arkose_labs_token verification succeeds4079 records the user's data from Arkose Labs4080 behaves like creates the user4081 creates the user4082 when verification fails4083 does not record the user's data from Arkose Labs4084 behaves like renders new action with an alert flash4085 renders new action with an alert flash4086 when user is not persisted4087 does not record the user's data from Arkose Labs4088 when the feature flag is disabled4089 behaves like creates the user4090 creates the user4091 behaves like skips verification and data recording4092 skips verification and data recording4093 when feature is disabled4094 behaves like creates the user4095 creates the user4096 behaves like skips verification and data recording4097 skips verification and data recording4098 when reCAPTCHA is enabled4099 behaves like creates the user4100 creates the user4101 when reCAPTCHA verification fails4102 does not create the user4103 when arkose_labs_token param is not present4104 behaves like renders new action with an alert flash4105 renders new action with an alert flash4106 behaves like skips verification and data recording4107 skips verification and data recording4108Groups::TwoFactorAuthsController4109 # order random4110 DELETE #destroy4111 when signed in user is a group owner4112 when the user has 2FA enabled4113 when the user is provisioned by the current group4114 successfully disables 2FA and redirects with a success notice4115 returns not found for nil user_id4116 returns not found for non-existent user_id4117 shows unauthorized error when group is not a root group4118 when user is not provisioned by current group4119 fails with unauthorized error4120 when the user does not have 2FA enabled4121 redirects to group_group_members_path4122 displays an alert on failure4123 when signed in user is not a group owner4124 when the user has 2FA enabled4125 responds with a 4044126 when signed in user is not a group member4127 responds with a 4044128 when invalid group id is passed4129 throws routing error4130Project Environments query4131 # order random4132 with protected environments4133 returns protected environment attributes4134 returns deploy access levels4135 returns approval rules4136 returns unified approval setting4137 when a specifc user is allowed to deploy4138 returns deploy access levels4139 when a specifc user is allowed to approve4140 returns approval rules4141 when a specifc group is allowed to deploy4142 returns deploy access levels4143 when a specifc group is allowed to approve4144 returns approval rules4145 when fetching protected environments for multiple environments4146 avoids N+1 query issue4147 when user does not have access to the environment4148 does not return protected environments4149Projects::DeployKeysController4150 POST create4151 records an audit event4152 when the account has configured ssh key expiry4153 shows an alert with the validation error4154 /enable/:id4155 with user with permission4156 records an audit event4157 returns 4044158 /disable/:id4159 with admin4160 records an audit event4161Create an instance external audit event destination4162 # order random4163 when feature is unlicensed4164 when feature flag ff_external_audit_events is enabled4165 behaves like a mutation that does not create a destination4166 does not create the destination4167 behaves like a mutation that returns top-level errors4168 is expected to contain exactly "You do not have access to this mutation."4169 behaves like a mutation that does not create a destination4170 does not create the destination4171 behaves like a mutation that returns top-level errors4172 is expected to contain exactly "You do not have access to this mutation."4173 when feature flag ff_external_audit_events is disabled4174 behaves like a mutation that does not create a destination4175 does not create the destination4176 behaves like a mutation that returns top-level errors4177 is expected to contain exactly "You do not have access to this mutation."4178 behaves like a mutation that does not create a destination4179 does not create the destination4180 behaves like a mutation that returns top-level errors4181 is expected to contain exactly "You do not have access to this mutation."4182 when feature is licensed4183 when user is instance admin4184 when feature flag ff_external_audit_events is enabled4185 creates the destination4186 when overriding default name4187 creates the destination4188 behaves like creates an audit event4189 audits the creation4190 when destination is invalid4191 returns correct errors4192 when feature flag ff_external_audit_events is disabled4193 behaves like a mutation that does not create a destination4194 does not create the destination4195 behaves like a mutation that returns top-level errors4196 is expected to contain exactly "You do not have access to this mutation."4197 when current user is not instance admin4198 behaves like a mutation that does not create a destination4199 does not create the destination4200 behaves like a mutation that returns top-level errors4201 is expected to contain exactly "You do not have access to this mutation."4202API::Ci::Runner4203 /api/v4/jobs4204 POST /api/v4/jobs/request4205 secrets management4206 when secrets management feature is available4207 when job has secrets configured4208 when runner does not support secrets4209 sets "runner_unsupported" failure reason and does not expose the build at all4210 when runner supports secrets4211 returns secrets configuration4212 job does not have secrets configured4213 doesn not return secrets configuration4214 when secrets management feature is not available4215 job has secrets configured4216 does not return secrets configuration4217 GET api/v4/jobs/:id/artifacts4218 when a job has a cross-project dependency4219 when the job is created by a user with sufficient permission in upstream project4220 behaves like successful artifact download4221 downloads artifacts4222 and the upstream project has disabled public builds4223 behaves like successful artifact download4224 downloads artifacts4225 when the job is created by a user without sufficient permission in upstream project4226 behaves like forbidden request4227 responds with forbidden4228 and the upstream project has disabled public builds4229 behaves like forbidden request4230 responds with forbidden4231 when the upstream project is public and the job user does not have permission in the project4232 behaves like successful artifact download4233 downloads artifacts4234 and the upstream project has disabled public builds4235 behaves like forbidden request4236 responds with forbidden4237Admin::DevOpsReportController4238 show_adoption?4239 is false if license feature 'devops_adoption' is disabled4240 'devops_adoption' license feature is enabled4241 is true4242 #show4243 with devops adoption available4244 behaves like tracks usage event4245 tracks i_analytics_dev_ops_adoption usage event for4246 behaves like Snowplow event tracking with RedisHLL context4247 behaves like Snowplow event tracking4248 is emitted4249 behaves like tracks usage event4250 tracks i_analytics_dev_ops_adoption usage event for dev4251 behaves like Snowplow event tracking with RedisHLL context4252 behaves like Snowplow event tracking4253 is emitted4254 behaves like tracks usage event4255 tracks i_analytics_dev_ops_adoption usage event for sec4256 behaves like Snowplow event tracking with RedisHLL context4257 behaves like Snowplow event tracking4258 is emitted4259 behaves like tracks usage event4260 tracks i_analytics_dev_ops_adoption usage event for ops4261 behaves like Snowplow event tracking with RedisHLL context4262 behaves like Snowplow event tracking4263 is emitted4264 behaves like tracks usage event4265 tracks i_analytics_dev_ops_score usage event for devops-score4266 with devops adoption not available4267 behaves like tracks usage event4268 tracks i_analytics_dev_ops_score usage event for4269 behaves like tracks usage event4270 tracks i_analytics_dev_ops_score usage event for dev4271 behaves like tracks usage event4272 tracks i_analytics_dev_ops_score usage event for sec4273 behaves like tracks usage event4274 tracks i_analytics_dev_ops_score usage event for ops4275 behaves like tracks usage event4276 tracks i_analytics_dev_ops_score usage event for devops-score4277API::DependencyListExports4278 # order random4279 POST /projects/:id/dependency_list_exports4280 behaves like creating dependency list export4281 with user without permission4282 returns 4034283 with user with enough permission4284 with license feature disabled4285 returns 4034286 with license feature enabled4287 creates and returns a dependency_list_export4288 POST /groups/:id/dependency_list_exports4289 behaves like creating dependency list export4290 with user without permission4291 returns 4034292 with user with enough permission4293 with license feature disabled4294 returns 4034295 with license feature enabled4296 creates and returns a dependency_list_export4297 when the `group_level_dependencies` feature flag is disabled4298 returns 4044299 GET /dependency_list_exports/:export_id4300 with user without permission4301 returns 4034302 with user with enough permission4303 with license feature disabled4304 returns 4034305 with license feature enabled4306 fetches and returns a dependency_list_export4307 with dependency list export not finished4308 sets polling and returns accepted4309 GET /dependency_list_exports/:export_id/download4310 with user without permission4311 returns 4034312 with user with enough permission4313 with license feature disabled4314 returns 4034315 with license feature enabled4316 returns file content4317 with dependency list export not finished4318 returns 4044319Admin::UsersController4320 GET #index4321 eager loads obstacles to user deletion4322 POST update4323 update custom attributes4324 updates the value4325 updating name4326 when `disable_name_update_for_users` feature is available4327 when the ability to update their name is disabled for users4328 behaves like admin can update the name of a user4329 updates the name4330 when the ability to update their name is not disabled for users4331 behaves like admin can update the name of a user4332 updates the name4333 when `disable_name_update_for_users` feature is not available4334 behaves like admin can update the name of a user4335 updates the name4336 POST #reset_runner_minutes4337 when the reset is successful4338 redirects to group path4339 POST #impersonate4340 enqueues a new worker4341 POST #identity_verification_phone_exemption4342 when it is successful4343 calls create_phone_number_exemption! and redirects with a success notice4344 when it fails4345 calls create_phone_number_exemption! and redirects with an alert4346 DELETE #destroy_identity_verification_phone_exemption4347 when it is successful4348 calls destroy_phone_number_exemption and redirects with a success notice4349 when it fails4350 calls destroy_phone_number_exemption and redirects with an alert4351Creating a new HTTP Integration4352 stores the custom mapping params4353 behaves like creating a new HTTP integration4354 creates a new integration4355 without required argument project_path4356 behaves like an invalid argument to the mutation4357 behaves like a mutation that returns top-level errors4358 is expected to contain exactly (include "invalid value for projectPath")4359 without required argument active4360 behaves like an invalid argument to the mutation4361 behaves like a mutation that returns top-level errors4362 is expected to contain exactly (include "invalid value for active")4363 without required argument name4364 behaves like an invalid argument to the mutation4365 behaves like a mutation that returns top-level errors4366 is expected to contain exactly (include "invalid value for name")4367 with the custom mappings feature unavailable4368 behaves like ignoring the custom mapping4369 creates integration without the custom mapping params4370 behaves like validating the payload_example4371 validates the payload_example size4372 with invalid payloadExample attribute4373 responds with errors4374 behaves like validating the payload_attribute_mappings4375 with invalid payloadAttributeMapping attribute does not contain fieldName4376 responds with errors4377 with invalid payloadAttributeMapping attribute does not contain path4378 responds with errors4379 with invalid payloadAttributeMapping attribute does not contain type4380 responds with errors4381Projects::RequirementsManagement::RequirementsController4382 POST #import_csv4383 unauthorized4384 when user is not signed in4385 behaves like response with 404 status4386 returns 4044387 with project member with a guest role4388 behaves like response with 404 status4389 returns 4044390 authorized4391 when requirements feature is available and member is a reporter4392 shows error when upload fails4393 behaves like response with success status4394 returns 200 status and success message4395 when file extension is in upper case4396 behaves like response with success status4397 returns 200 status and success message4398 when file extension is not csv4399 returns error message4400 when requirements feature is not available4401 behaves like response with 404 status4402 returns 4044403 POST #authorize4404 with authorized user4405 when requirements feature is enabled4406 behaves like handle uploads authorize request4407 POST authorize4408 authorizes workhorse header4409 rejects requests that bypassed gitlab-workhorse4410 when using remote storage4411 when direct upload is enabled4412 responds with status 200, location of file remote store and object details4413 when direct upload is disabled4414 handles as a local file4415 when requirements feature is disabled4416 behaves like response with 404 status4417 returns 4044418 with unauthorized user4419 behaves like response with 404 status4420 returns 4044421Rack Attack EE throttles4422 requests to prometheus alert notify endpoint with oauth token4423 behaves like incident management rate limiting4424 limits set4425 when the throttle is enabled4426 rejects requests over the rate limit4427 allows requests after throttling and then waiting for the next period4428 when the throttle is disabled4429 allows requests over the rate limit4430 requests to generic alert notify endpoint with oauth token4431 behaves like incident management rate limiting4432 limits set4433 when the throttle is enabled4434 rejects requests over the rate limit4435 allows requests after throttling and then waiting for the next period4436 when the throttle is disabled4437 allows requests over the rate limit4438 requests to AlertManagement::HttpIntegration notify endpoint with oauth token4439 behaves like incident management rate limiting4440 limits set4441 when the throttle is enabled4442 rejects requests over the rate limit4443 allows requests after throttling and then waiting for the next period4444 when the throttle is disabled4445 allows requests over the rate limit4446Projects::Analytics::MergeRequestAnalyticsController4447 GET #show4448 is expected to be successful4449 behaves like tracking unique visits4450 tracks unique visit if the format is HTML4451 tracks unique visit if DNT is not enabled4452 does not track unique visit if DNT is enabled4453 does not track unique visit if the format is JSON4454 behaves like Snowplow event tracking with RedisHLL context4455 behaves like Snowplow event tracking4456 is emitted4457 when license is missing4458 is expected to respond with numeric status code not_found4459 when the user has no access to the group4460 is expected to respond with numeric status code not_found4461 when requesting HTML4462 renders the side navigation with the correct submenu set as active4463getting approval project rules for a branch rule4464 # order random4465 when the user does not have read_approval_rule abilities4466 behaves like a working graphql query4467 returns a successful response4468 hides approval rule data4469 when the user does have read_approval_rule abilities4470 behaves like a working graphql query4471 returns a successful response4472 returns all approval project rule data4473 avoids N+1 queries4474Query.group(fullPath).projects.dastProfiles.dastProfileSchedule4475 when a user has access to dast_profile_schedule4476 returns a dast_profile_schedule4477 behaves like query dastProfiles.dastProfileSchedule shared examples4478 avoids N+1 queries4479API::Repositories4480 GET /projects/:id/repository/archive(.:format)?:sha4481 when unauthenticated and project is public4482 behaves like an auditable and successful request4483 logs the audit event4484 sends the archive4485 when authenticated as a developer4486 behaves like an auditable and successful request4487 logs the audit event4488 sends the archive4489 projects download throttling4490 when user is banned from the project's top-level group4491 returns forbidden error4492 when user is not banned from the project's top-level group4493 returns the repository archive4494Groups::Security::VulnerabilitiesController4495 GET index4496 when security dashboard feature is enabled4497 and user is allowed to access group security vulnerabilities4498 is expected to respond with numeric status code ok4499 behaves like tracks govern usage event4500 tracks unique event4501 when user is not allowed to access group security vulnerabilities4502 is expected to respond with numeric status code ok4503 is expected to render template unavailable4504 behaves like doesn't track govern usage event4505 doesn't tracks event4506 when security dashboard feature is disabled4507 is expected to respond with numeric status code ok4508 is expected to render template unavailable4509 behaves like doesn't track govern usage event4510 doesn't tracks event4511Setting weight of an issue4512 returns an error if the user is not allowed to update the issue4513 when weight is a number4514 updates the issue weight4515 when weight is null4516 updates the issue weight4517 when weight is not an integer4518 raises invalid value error4519API::Analytics::ProductAnalytics4520 # order random4521 GET projects/:id/product_analytics/request/dry-run4522 behaves like well behaved cube query4523 when current user has guest project access4524 returns an unauthorized error4525 when current user is a project developer4526 returns a 2004527 GET projects/:id/product_analytics/funnels4528 behaves like well behaved cube query4529 when current user has guest project access4530 returns an unauthorized error4531 when current user is a project developer4532 returns a 2004533 when a project is moved4534 returns 404 error4535 GET projects/:id/product_analytics/request/load4536 behaves like well behaved cube query4537 when current user has guest project access4538 returns an unauthorized error4539 when current user is a project developer4540 returns a 2004541 GET projects/:id/product_analytics/meta4542 behaves like well behaved cube query4543 when current user has guest project access4544 returns an unauthorized error4545 when current user is a project developer4546 returns a 2004547API::ProtectedTags4548 GET /projects/:id/protected_tags4549 returns user and group ids for the access levels4550 GET /projects/:id/protected_tags/:tag4551 returns user and group ids for the access levels4552 POST /projects/:id/protected_tags4553 with granular access4554 can protect a tag while allowing an individual user to create tags4555 can protect a tag while allowing a group to create tags4556 avoids creating default access levels unless necessary4557 when protected_refs_for_users feature is not available4558 cannot protect a tag for a user or group only4559Running a DAST Profile4560 behaves like an on-demand scan mutation when user cannot run an on-demand scan4561 when a user does not have access to the project4562 behaves like a mutation that returns a top-level access error4563 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"4564 when a user does not have access to run a dast scan on the project4565 behaves like a mutation that returns a top-level access error4566 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"4567 behaves like an on-demand scan mutation when user can run an on-demand scan4568 returns an empty errors array4569 returns a pipeline_url containing the correct path4570 when on demand scan licensed feature is not available4571 behaves like a mutation that returns a top-level access error4572 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"4573 when pipeline creation fails4574 behaves like a mutation that returns errors in the response4575 is expected to contain exactly "full error messages"4576Lock/unlock project's file path4577 when the user does not have permission4578 does not create requirement4579 behaves like a mutation that returns a top-level access error4580 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"4581 when the user has permission4582 creates the path lock4583 when there are validation errors4584 behaves like a mutation that returns errors in the response4585 is expected to contain exactly "You have no permissions"4586Groups::Security::DashboardController4587 GET show4588 when security dashboard feature is enabled4589 and user is allowed to access group security dashboard4590 is expected to respond with numeric status code ok4591 is expected to render template show4592 behaves like tracks govern usage event4593 tracks unique event4594 when user is not allowed to access group security dashboard4595 is expected to respond with numeric status code ok4596 is expected to render template unavailable4597 behaves like doesn't track govern usage event4598 doesn't tracks event4599 when security dashboard feature is disabled4600 is expected to respond with numeric status code ok4601 is expected to render template unavailable4602 behaves like doesn't track govern usage event4603 doesn't tracks event4604API::Files4605 POST /projects/:id/repository/files/:file_path4606 with an exceeded namespace storage limit4607 rejects the request4608 PUT /projects/:id/repository/files/:file_path4609 with an exceeded namespace storage limit4610 rejects the request4611 DELETE /projects/:id/repository/files/:file_path4612 with an exceeded namespace storage limit4613 rejects the request4614Querying a Milestone4615 burnupTimeSeries4616 with insufficient license4617 returns nil4618 when missing dates4619 explains why the report cannot be generated4620 when there are too many events4621 explains why the report cannot be generated4622 when "rollup_timebox_chart" feature flag is enabled4623 explains why the report cannot be generated4624 with correct license4625 returns burnup chart data4626 group milestones4627 behaves like milestones queried by timeframe4628 query for milestones by timeframe4629 without start4630 returns error4631 without end date4632 returns error4633 with start and end date4634 does not have errors4635 project milestones4636 behaves like milestones queried by timeframe4637 query for milestones by timeframe4638 without start4639 returns error4640 without end date4641 returns error4642 with start and end date4643 does not have errors4644Query.project(fullPath).pipeline(iid).securityReportFindings4645 # order random4646 when the required features are disabled4647 returns no vulnerability findings4648 when the required features are enabled4649 when user is member of the project4650 returns all the vulnerability findings4651 returns all the queried fields4652 when user is not a member of the project4653 returns no vulnerability findings4654Groups::ClustersController4655 GET #environments4656 avoids N+1 database queries4657Query.project(fullPath).pipeline(iid).codeQualityReports4658 when pipeline has a code quality report4659 when user is member of the project4660 returns all the code quality degradations4661 returns all the queried fields4662 returns all the queried fields ordered by severity4663 when user is not a member of the project4664 returns no code quality degradations4665 when pipeline does not have a code quality report4666 returns an empty result4667Emails::EnterpriseUsers4668 # order random4669 user_associated_with_enterprise_group_email4670 when there is no user for given user_id4671 behaves like no email is sent4672 does not send an email4673 when user is not an enterprise user4674 behaves like no email is sent4675 does not send an email4676 when user is an enterprise user4677 delivers mail to user email4678 has the correct subject and body4679 behaves like an email sent from GitLab4680 has the characteristics of an email sent from GitLab4681 behaves like it should not have Gmail Actions links4682 is expected not to have body including "ViewAction"4683 behaves like a user cannot unsubscribe through footer link4684 does not have a List-Unsubscribe header or a body link4685 behaves like appearance header and footer enabled4686 contains header and footer4687 behaves like appearance header and footer not enabled4688 does not contain header and footer4689 when enterprise user is unconfirmed4690 delivers mail to user email4691 has the correct subject and body4692Create an issue4693 creates the issue4694 when iterationId is provided4695 creates the issue4696 when iterationId and iterationWildcardId are provided4697 returns a mutually exclusive argument error4698Reposition and move issue within board lists4699 when user can admin issue4700 when user can read epic4701 updates issue position and epic4702 when user sets nil epic4703 updates issue position and epic is unassigned4704 when user can not read epic4705 does not set epic4706getting a list of external audit event destinations for the instance4707 # order random4708 when user is not authenticated4709 when feature is licensed4710 behaves like a request that returns no destinations4711 returns no destinations4712 when feature is not licensed4713 behaves like a request that returns no destinations4714 returns no destinations4715 when user is authenticated4716 when feature is licensed4717 when user is instance admin4718 when feature flag ff_external_audit_events is enabled4719 returns the instance external audit event destinations4720 when streaming headers are also present for the destination4721 returns the instance external audit event destinations with headers4722 when streaming event type filters are present for the destination4723 returns the instance external audit event destinations with event type filters4724 when feature flag ff_external_audit_events is disabled4725 behaves like a request that returns no destinations4726 returns no destinations4727 when user is not instance admin4728 when feature flag ff_external_audit_events is enabled4729 behaves like a request that returns no destinations4730 returns no destinations4731 when feature flag ff_external_audit_events is disabled4732 behaves like a request that returns no destinations4733 returns no destinations4734 when feature is not licensed4735 when user is instance admin4736 behaves like a request that returns no destinations4737 returns no destinations4738 when user is not instance admin4739 behaves like a request that returns no destinations4740 returns no destinations4741Creating a DAST Scanner Profile4742 behaves like an on-demand scan mutation when user cannot run an on-demand scan4743 when a user does not have access to the project4744 behaves like a mutation that returns a top-level access error4745 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"4746 when a user does not have access to run a dast scan on the project4747 behaves like a mutation that returns a top-level access error4748 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"4749 behaves like an on-demand scan mutation when user can run an on-demand scan4750 returns an empty errors array4751 returns the dast_scanner_profile id4752 sets default values of omitted properties4753 when on demand scan licensed feature is not available4754 behaves like a mutation that returns a top-level access error4755 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"4756 when dast_scanner_profile exists4757 returns errors4758Projects::ImportsController4759 GET #show4760 when import type is gitlab_custom_project_template4761 when developer is allowed to create projects4762 returns 200 response4763 when developer is not allowed to create projects4764 returns 404 response4765 POST #create4766 mirror user is not the current user4767 only assigns the current user4768Delete a DAST Scanner Profile4769 behaves like an on-demand scan mutation when user cannot run an on-demand scan4770 when a user does not have access to the project4771 behaves like a mutation that returns a top-level access error4772 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"4773 when a user does not have access to run a dast scan on the project4774 behaves like a mutation that returns a top-level access error4775 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"4776 behaves like an on-demand scan mutation when user can run an on-demand scan4777 returns an empty errors array4778 deletes the dast_scanner_profile4779 when on demand scan licensed feature is not available4780 behaves like a mutation that returns a top-level access error4781 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"4782 when the dast_scanner_profile does not exist4783 behaves like a mutation that returns top-level errors4784 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"4785Query.vulnerabilitiesCountByDay4786 # order random4787 when user does not have permission to access the security dashboard of the project4788 when project has statistics4789 behaves like a working graphql query that returns data4790 contains data4791 returns zero for all counts4792 behaves like a working graphql query4793 returns a successful response4794 when user has permission to access the security dashboard of the project4795 when dashboard does not have statistics4796 behaves like a working graphql query that returns data4797 contains data4798 returns the statistics4799 behaves like a working graphql query4800 returns a successful response4801 when project has statistics4802 behaves like a working graphql query that returns data4803 contains data4804 returns the statistics4805 behaves like a working graphql query4806 returns a successful response4807Create an instance external audit event destination header4808 # order random4809 when feature is unlicensed4810 behaves like a mutation that returns top-level errors4811 is expected to contain exactly "You do not have access to this mutation."4812 behaves like a mutation that does not create a header4813 does not create a header4814 when feature is licensed4815 when feature flag `ff_external_audit_events` is enabled4816 when current user is instance admin4817 creates the header with the correct attributes4818 when the header attributes are invalid4819 returns correct errors4820 behaves like a mutation that does not create a header4821 does not create a header4822 when the destination id is wrong4823 does not create any header4824 behaves like a mutation that returns top-level errors4825 is expected to contain exactly "Please provide valid destination id."4826 when current user is not instance admin4827 behaves like a mutation that does not create a header4828 does not create a header4829 when feature flag `ff_external_audit_events` is disabled4830 when current user is instance admin4831 behaves like a mutation that does not create a header4832 does not create a header4833 when current user is not instance admin4834 behaves like a mutation that does not create a header4835 does not create a header4836Activate a subscription4837 persists license key4838 when there are future subscriptions4839 persists license key and stores future subscriptions4840SecurityTrainingUpdate4841 # order random4842 when the user does not have permission4843 behaves like a mutation that returns a top-level access error4844 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"4845 when the user has permission4846 when is_enabled is true4847 behaves like it creates a training on the project4848 is expected to eq false4849 when is_primary is not provided4850 behaves like it creates a training on the project4851 is expected to eq false4852 when is_primary is null4853 behaves like it creates a training on the project4854 is expected to eq false4855 when is_primary is true4856 behaves like it creates a training on the project4857 is expected to eq true4858 when is_enabled is false4859 removes the training from the project4860Querying an Epic board list4861 does not have an N+1 when querying title4862 when the user has access to the epic list4863 returns list with number of matching epics4864 behaves like a working graphql query4865 returns a successful response4866 when the user does not have access to the list4867 is expected to be nil4868 when ID argument is missing4869 raises an exception4870 when list ID is not found4871 is expected to be nil4872getting a list of external audit event destinations for a group4873 when authenticated as the group owner4874 returns the groups external audit event destinations4875 when authenticated as a group maintainer4876 behaves like a request that returns no destinations4877 returns no destinations4878 when authenticated as a group developer4879 behaves like a request that returns no destinations4880 returns no destinations4881 when authenticated as a group guest4882 behaves like a request that returns no destinations4883 returns no destinations4884 when not authenticated4885 behaves like a request that returns no destinations4886 returns no destinations4887SessionsController4888 # order random4889 #create4890 when identity verification is turned off4891 is expected to redirect to "/"4892 does not set the `verification_user_id` session variable4893 when identity verification is turned on4894 is expected to redirect to "/users/identity_verification"4895 sets the `verification_user_id` session variable4896 when the user is verified4897 is expected to redirect to "/"4898 when the user is locked4899 is expected not to respond with numeric status code redirect4900 when the user is a GitLab QA user4901 is expected not to redirect to "/users/identity_verification"4902Groups::HookLogsController4903 behaves like WebHooks::HookLogActions4904 GET #show4905 renders a 200 if the hook exists4906 renders a 404 if the hook does not exist4907 POST #retry4908 executes the hook and redirects to the service form4909 renders a 404 if the hook does not exist4910Admin::UsersController4911 GET card_match4912 when not SaaS4913 responds with 4044914 when SaaS4915 when user has no credit card validation4916 redirects back to #show4917 when user has credit card validation4918 displays its own and matching card details4919 GET #index4920 eager loads authorized projects association4921 PUT #unlock4922 logs a user_access_unlock audit event with author set to the current user4923Getting ancestors of an epic4924 when epics are enabled4925 finds ancestors from group4926 when user has access to the parent group epics4927 finds ancestors from group and parent group4928 when epics are disabled4929 does not find the epic ancestors4930AiAction for Generate Commit Message4931 # order random4932#<Thread:0x00007afa6591b178 /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:417 run> terminated with exception (report_on_exception is true):4933/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/webmock-3.18.1/lib/webmock/http_lib_adapters/net_http.rb:104:in `request': Real HTTP connections are disabled. Unregistered request: GET https://db-snowplow.trx.gitlab.net/i?cx=eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMC05IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJwbGFuIjpudWxsLCJleHRyYSI6eyJpZCI6MjUsIm1lcmdlX3JlcXVlc3RfaWQiOjI1LCJsYXRlc3RfYnVpbGRfc3RhcnRlZF9hdCI6bnVsbCwibGF0ZXN0X2J1aWxkX2ZpbmlzaGVkX2F0IjpudWxsLCJmaXJzdF9kZXBsb3llZF90b19wcm9kdWN0aW9uX2F0IjpudWxsLCJtZXJnZWRfYXQiOm51bGwsImNyZWF0ZWRfYXQiOiIyMDIzLTA4LTE4IDEzOjIwOjE3IFVUQyIsInVwZGF0ZWRfYXQiOiIyMDIzLTA4LTE4IDEzOjIwOjE3IFVUQyIsInBpcGVsaW5lX2lkIjpudWxsLCJtZXJnZWRfYnlfaWQiOm51bGwsImxhdGVzdF9jbG9zZWRfYnlfaWQiOm51bGwsImxhdGVzdF9jbG9zZWRfYXQiOm51bGwsImZpcnN0X2NvbW1lbnRfYXQiOm51bGwsImZpcnN0X2NvbW1pdF9hdCI6bnVsbCwibGFzdF9jb21taXRfYXQiOm51bGwsImRpZmZfc2l6ZSI6bnVsbCwibW9kaWZpZWRfcGF0aHNfc2l6ZSI6bnVsbCwiY29tbWl0c19jb3VudCI6bnVsbCwiZmlyc3RfYXBwcm92ZWRfYXQiOm51bGwsImZpcnN0X3JlYXNzaWduZWRfYXQiOm51bGwsImFkZGVkX2xpbmVzIjpudWxsLCJyZW1vdmVkX2xpbmVzIjpudWxsfSwidXNlcl9pZCI6bnVsbCwibmFtZXNwYWNlX2lkIjpudWxsLCJwcm9qZWN0X2lkIjpudWxsLCJjb250ZXh0X2dlbmVyYXRlZF9hdCI6IjIwMjMtMDgtMTggMTM6MjA6MTggVVRDIn19XX0=&dtm=1692364818459&e=se&eid=e586cee8-334d-47b6-9689-7c2962279089&p=srv&se_ac=database_event_create&se_ca=MergeRequest::Metrics&se_la=merge_request_metrics&se_pr=create&stm=1692364818461&tna=gl&tv=rb-0.8.0 with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'} (WebMock::NetConnectNotAllowedError)4934You can stub this request with the following snippet:4935stub_request(:get, "https://db-snowplow.trx.gitlab.net/i?cx=eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMC05IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJwbGFuIjpudWxsLCJleHRyYSI6eyJpZCI6MjUsIm1lcmdlX3JlcXVlc3RfaWQiOjI1LCJsYXRlc3RfYnVpbGRfc3RhcnRlZF9hdCI6bnVsbCwibGF0ZXN0X2J1aWxkX2ZpbmlzaGVkX2F0IjpudWxsLCJmaXJzdF9kZXBsb3llZF90b19wcm9kdWN0aW9uX2F0IjpudWxsLCJtZXJnZWRfYXQiOm51bGwsImNyZWF0ZWRfYXQiOiIyMDIzLTA4LTE4IDEzOjIwOjE3IFVUQyIsInVwZGF0ZWRfYXQiOiIyMDIzLTA4LTE4IDEzOjIwOjE3IFVUQyIsInBpcGVsaW5lX2lkIjpudWxsLCJtZXJnZWRfYnlfaWQiOm51bGwsImxhdGVzdF9jbG9zZWRfYnlfaWQiOm51bGwsImxhdGVzdF9jbG9zZWRfYXQiOm51bGwsImZpcnN0X2NvbW1lbnRfYXQiOm51bGwsImZpcnN0X2NvbW1pdF9hdCI6bnVsbCwibGFzdF9jb21taXRfYXQiOm51bGwsImRpZmZfc2l6ZSI6bnVsbCwibW9kaWZpZWRfcGF0aHNfc2l6ZSI6bnVsbCwiY29tbWl0c19jb3VudCI6bnVsbCwiZmlyc3RfYXBwcm92ZWRfYXQiOm51bGwsImZpcnN0X3JlYXNzaWduZWRfYXQiOm51bGwsImFkZGVkX2xpbmVzIjpudWxsLCJyZW1vdmVkX2xpbmVzIjpudWxsfSwidXNlcl9pZCI6bnVsbCwibmFtZXNwYWNlX2lkIjpudWxsLCJwcm9qZWN0X2lkIjpudWxsLCJjb250ZXh0X2dlbmVyYXRlZF9hdCI6IjIwMjMtMDgtMTggMTM6MjA6MTggVVRDIn19XX0=&dtm=1692364818459&e=se&eid=e586cee8-334d-47b6-9689-7c2962279089&p=srv&se_ac=database_event_create&se_ca=MergeRequest::Metrics&se_la=merge_request_metrics&se_pr=create&stm=1692364818461&tna=gl&tv=rb-0.8.0").4936 with(4937 headers: {4938 'Accept'=>'*/*',4939 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',4940 'User-Agent'=>'Ruby'4941 }).4942 to_return(status: 200, body: "", headers: {})4943============================================================4944 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:307:in `http_get'4945 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:290:in `process_get_event'4946 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:272:in `block in send_requests_with_get'4947 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:271:in `each'4948 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:271:in `send_requests_with_get'4949 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:236:in `send_requests'4950 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:427:in `block in consume'4951 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:425:in `loop'4952 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:425:in `consume'4953 from /builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/snowplow-tracker-0.8.0/lib/snowplow-tracker/emitters.rb:417:in `block (2 levels) in initialize'4954 successfully performs an generate commit message request4955 when openai_experimentation feature flag is disabled4956 returns nil4957 when third_party_ai_features_enabled disabled4958 returns nil4959 when experiment_features_enabled disabled4960 returns nil4961Projects::Security::ScannedResourcesController4962 GET index4963 when the "Security and Compliance" feature is disabled4964 is expected to respond with numeric status code not_found4965 when DAST security scan is found4966 returns the CSV data4967 when pipeline_id is from a dangling pipeline4968 returns the CSV data4969 when the pipeline id is missing4970 raises an error when pipeline_id param is missing4971getting list of branch rules for a project4972 # order random4973 when the user does have read_protected_branch abilities4974 queries4975 avoids N+1 queries4976 response4977 includes all fields4978 behaves like a working graphql query4979 returns a successful response4980Projects::InsightsController4981 # order random4982 POST #query4983 succeeds4984 when statement timeout happens4985 returns error response4986 GET #show4987 behaves like contribution analytics charts configuration4988 when user does not have permissions to access all charts4989 removes forbidden charts from configuration4990 when user have permissions to access all charts4991 does not remove charts from configuration4992Query.issue(id)4993 # order random4994 when user has no access to the epic4995 when there is an epic4996 returns null for epic and hasEpic is `true`4997 when there is no epic4998 returns null for epic and hasEpic is `false`4999 when user has access to the epic5000 returns epic and hasEpic is `true`5001creating escalation policy5002 # order random5003 successfully creates the policy and rules5004 when rules are provided out of order5005 successfully creates the policy and reorders the rules5006 errors5007 user does not have permission5008 raises an error5009 no rules given5010 raises an error5011OmniAuth Kerberos SPNEGO5012 asks for an SPNEGO token5013 when an SPNEGO token is provided5014 passes the token to spnego_negotiate!5015 when the final SPNEGO token is provided5016 redirects to the omniauth callback5017 stores the users principal name in the session5018 send the final SPNEGO response5019Create a label or backlog board list5020 behaves like board lists create request5021 the user is not allowed to read board lists5022 behaves like a mutation that returns a top-level access error5023 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"5024 when user has permissions to admin board lists5025 backlog list5026 creates the list5027 label list5028 creates the list5029Getting the current Geo node5030 returns the current GeoNode5031 behaves like a working graphql query5032 returns a successful response5033 connection fields5034 when selectiveSyncNamespaces is queried5035 returns selective sync namespaces5036 supports cursor-based pagination5037Subscriptions::AiCompletionResponse5038 # order random5039 when user is authorized5040 receives data5041 when unauthorized user requests an authorized one5042 does not receive any data5043 when user is unauthorized5044 does not receive any data5045 when user is nil5046 does not receive any data5047UsersController5048 # order random5049 #available_group_templates5050 shows the first page of the pagination5051CustomersDot::ProxyController5052 POST graphql5053 with user signed in5054 behaves like customersdot proxy5055 forwards request body to customers dot5056 responds with customers dot status5057 responds with customers dot response body5058 with no user signed in5059 behaves like customersdot proxy5060 forwards request body to customers dot5061 responds with customers dot status5062 responds with customers dot response body5063MergeRequestReviewer5064 when requesting information about MR interactions5065 when the user does not have any applicable rules5066 returns null data5067 when the user has interacted5068 returns appropriate data5069SubscriptionsController5070 # order random5071 POST /validate_payment_method5072 behaves like requires authentication5073 requires authentication5074 when user is undergoing identity verification5075 skips authentication5076 when user has verified a credit card5077 behaves like requires authentication5078 requires authentication5079 GET /payment_form5080 behaves like requires authentication5081 requires authentication5082 when user is undergoing identity verification5083 skips authentication5084 when user has verified a credit card5085 behaves like requires authentication5086 requires authentication5087Projects::IncidentsController5088 # order random5089 GET #show5090 exposes the escalation_policies licensed feature setting5091Query.project(fullPath).scanResultPolicies5092 returns both user and group approvers5093Projects::DeployTokensController5094 PUT /:project_path_with_namespace/-/deploy_tokens/:id/revoke5095 creates an audit event5096 behaves like sends correct event type in audit event stream5097 sends correct event type in audit event stream5098Projects::RepositoriesController5099 # order random5100 GET /archive5101 when user is banned from the project's top-level group5102 prevents the archive download5103 when user is not banned from the project's top-level group5104 proceeds with the archive download5105getting merge request listings (EE) nested in a project5106 when requesting approval fields5107 exposes approval metadata5108Groups::Settings::AccessTokensController5109 # order random5110 POST /:namespace/-/settings/access_tokens5111 when has trial subscription5112 cannot create token5113 when has non-trial subscription5114 can create token5115Admin::DashboardController5116 #index5117 allows an admin user to access the page5118 does not allow an auditor user to access the page5119 does not allow a regular user to access the page5120UploadsController5121 GET show5122 when viewing issuable metric images5123 responds with status 2005124Ci/Cd settings through GroupQuery5125 when group has no associated ci_cd_settings5126 returns false for allowStaleRunnerPruning5127 when group has associated ci_cd_settings5128 with allow_stale_runner_pruning set to false5129 returns false for allowStaleRunnerPruning5130 with allow_stale_runner_pruning set to true5131 returns true for allowStaleRunnerPruning5132UsersController5133 GET #available_project_templates5134 a user requests templates for themselves5135 responds successfully5136 a user requests templates for another user5137 responds with not found error5138 GET #available_group_templates5139 a user requests templates for themselves5140 responds successfully5141 a user requests templates for another user5142 responds with not found error5143RemoteDevelopment::WorkspacesController5144 # order random5145 with remote development not licensed5146 GET #index5147 responds with the not found status5148 with remote development feature flag5149 behaves like remote development feature flag5150 GET #index5151 responds with the expected status5152 behaves like remote development feature flag5153 GET #index5154 responds with the expected status5155API::ProjectSnapshots5156 GET /projects/:id/snapshot5157 requests project repository raw archive from Geo primary as Geo secondary5158API::API5159 logging5160 when the method is not allowed5161 logs the route and context metadata for the client5162Admin::ImpersonationsController5163 DELETE destroy5164 when signed in5165 when impersonating5166 enqueues a new worker5167Emails::Epics5168 adds email methods to Notify5169Knapsack report was generated. Preview:5170{5171 "ee/spec/requests/api/members_spec.rb": 128.16868701700014,5172 "ee/spec/requests/api/groups_spec.rb": 84.36891680899998,5173 "ee/spec/requests/search_controller_spec.rb": 103.68969322900011,5174 "ee/spec/requests/api/graphql/mutations/geo/registries/update_spec.rb": 68.95431447400006,5175 "ee/spec/controllers/projects/issues_controller_spec.rb": 60.16306301099985,5176 "ee/spec/controllers/groups/wikis_controller_spec.rb": 50.70393862400033,5177 "ee/spec/requests/api/notes_spec.rb": 56.55505375199982,5178 "ee/spec/controllers/projects/push_rules_controller_spec.rb": 41.51187143600009,5179 "ee/spec/requests/api/dependency_proxy/packages/maven_spec.rb": 22.863170931999775,5180 "ee/spec/controllers/groups/analytics/cycle_analytics/stages_controller_spec.rb": 22.377274404000218,5181 "ee/spec/controllers/projects/subscriptions_controller_spec.rb": 33.18949526899996,5182 "ee/spec/controllers/registrations/groups_controller_spec.rb": 20.571533409999574,5183 "ee/spec/requests/api/related_epic_links_spec.rb": 23.007465179000064,5184 "ee/spec/requests/groups_controller_spec.rb": 28.49045507699975,5185 "ee/spec/requests/api/graphql/project/requirements_management/requirements_spec.rb": 23.685193902999345,5186 "ee/spec/requests/lfs_http_spec.rb": 18.852605358999426,5187 "ee/spec/requests/projects/dependencies_controller_spec.rb": 17.587005160000444,5188 "ee/spec/requests/api/admin/search/migrations_spec.rb": 17.374917196999377,5189 "ee/spec/requests/api/admin/search/zoekt_spec.rb": 11.903667101999417,5190 "ee/spec/requests/groups/security/credentials_controller_spec.rb": 16.4780234079999,5191 "ee/spec/requests/api/epic_links_spec.rb": 16.86084973800007,5192 "ee/spec/controllers/ee/projects/jobs_controller_spec.rb": 18.40559725500043,5193 "ee/spec/requests/groups/analytics/cycle_analytics/value_streams_controller_spec.rb": 10.431117480000466,5194 "ee/spec/requests/groups/epics_controller_spec.rb": 11.612248975000512,5195 "ee/spec/requests/api/epic_boards_spec.rb": 11.052863879999677,5196 "ee/spec/requests/api/group_service_accounts_spec.rb": 13.316091880000386,5197 "ee/spec/requests/api/geo_spec.rb": 4.74963038199985,5198 "ee/spec/requests/groups/epics/epic_links_controller_spec.rb": 11.49858726399998,5199 "ee/spec/controllers/projects/protected_environments_controller_spec.rb": 10.687149939999472,5200 "ee/spec/requests/api/invitations_spec.rb": 8.95693819600001,5201 "ee/spec/requests/api/graphql/project/flow_metrics_spec.rb": 9.003512982999382,5202 "ee/spec/requests/api/iterations_spec.rb": 4.969959854000081,5203 "ee/spec/controllers/ee/sessions_controller_spec.rb": 5.420203438000499,5204 "ee/spec/requests/ee/projects/environments_controller_spec.rb": 10.316298009000093,5205 "ee/spec/requests/api/group_repository_storage_moves_spec.rb": 5.315403736999542,5206 "ee/spec/requests/api/graphql/project/incident_management/oncall_shifts_spec.rb": 7.542473880000216,5207 "ee/spec/requests/api/project_clusters_spec.rb": 7.944150027999967,5208 "ee/spec/requests/api/graphql/mutations/requirements_management/create_requirement_spec.rb": 5.228998454000248,5209 "ee/spec/requests/repositories/git_http_controller_spec.rb": 5.8082180979999976,5210 "ee/spec/controllers/groups/issues_controller_spec.rb": 8.048384798999905,5211 "ee/spec/requests/api/graphql/group/epic/epic_aggregate_query_spec.rb": 7.752123412999936,5212 "ee/spec/requests/projects/analytics/code_reviews_controller_spec.rb": 6.109208791999663,5213 "ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb": 4.566421997000361,5214 "ee/spec/controllers/projects/security/vulnerability_report_controller_spec.rb": 5.804551027999878,5215 "ee/spec/requests/api/graphql/group/epic/epic_issues_spec.rb": 4.823499185999935,5216 "ee/spec/controllers/admin/projects_controller_spec.rb": 6.177839539000161,5217 "ee/spec/requests/trial_registrations_controller_spec.rb": 4.191300096000305,5218 "ee/spec/requests/groups/two_factor_auths_controller_spec.rb": 3.9505845060002684,5219 "ee/spec/requests/api/graphql/project/environments_spec.rb": 4.588024454999868,5220 "ee/spec/controllers/projects/deploy_keys_controller_spec.rb": 6.010009341000114,5221 "ee/spec/requests/api/graphql/mutations/audit_events/instance_external_audit_event_destinations/create_spec.rb": 4.075985464999576,5222 "ee/spec/requests/api/ci/runner_spec.rb": 5.495569251999768,5223 "ee/spec/controllers/admin/dev_ops_report_controller_spec.rb": 3.0764853050004604,5224 "ee/spec/requests/api/dependency_list_exports_spec.rb": 4.7096349049998025,5225 "ee/spec/controllers/admin/users_controller_spec.rb": 3.6856409259999054,5226 "ee/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb": 3.901500468999984,5227 "ee/spec/requests/projects/requirements_management/requirements_controller_spec.rb": 4.333958354999595,5228 "ee/spec/requests/rack_attack_spec.rb": 4.842158245000064,5229 "ee/spec/controllers/projects/analytics/merge_request_analytics_controller_spec.rb": 4.56223007600056,5230 "ee/spec/requests/api/graphql/project/branch_rules/approval_project_rules_spec.rb": 3.2712337200000547,5231 "ee/spec/requests/api/graphql/group/dast_profile_schedule_spec.rb": 5.284834488999877,5232 "ee/spec/requests/api/repositories_spec.rb": 2.808944655999767,5233 "ee/spec/controllers/groups/security/vulnerabilities_controller_spec.rb": 3.125653211000099,5234 "ee/spec/requests/api/graphql/mutations/issues/set_weight_spec.rb": 4.068869145999997,5235 "ee/spec/requests/api/analytics/product_analytics_spec.rb": 4.002787610999803,5236 "ee/spec/requests/api/protected_tags_spec.rb": 4.723349134000273,5237 "ee/spec/requests/api/graphql/mutations/dast/profiles/run_spec.rb": 3.8894840409993776,5238 "ee/spec/requests/api/graphql/mutations/projects/lock_path_spec.rb": 1.6830926960001307,5239 "ee/spec/controllers/groups/security/dashboard_controller_spec.rb": 3.636922031000722,5240 "ee/spec/requests/api/files_spec.rb": 5.169188378000399,5241 "ee/spec/requests/api/graphql/milestone_spec.rb": 2.9946614919999774,5242 "ee/spec/requests/api/graphql/project/pipeline/security_report_findings_spec.rb": 3.0097865199995795,5243 "ee/spec/requests/groups/clusters_controller_spec.rb": 3.316810665999583,5244 "ee/spec/requests/api/graphql/project/pipeline/code_quality_reports_spec.rb": 2.7478746510005294,5245 "ee/spec/mailers/emails/enterprise_users_spec.rb": 2.8349623639996935,5246 "ee/spec/requests/api/graphql/mutations/issues/create_spec.rb": 2.9024582190004367,5247 "ee/spec/requests/api/graphql/mutations/boards/issues/issue_move_list_spec.rb": 2.962288253999759,5248 "ee/spec/requests/api/graphql/audit_events/instance_external_audit_event_destination_spec.rb": 2.2308389720001287,5249 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/create_spec.rb": 2.927042497000002,5250 "ee/spec/controllers/projects/imports_controller_spec.rb": 3.1909460460001355,5251 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/delete_spec.rb": 2.5075247200002195,5252 "ee/spec/requests/api/graphql/vulnerabilities/instance_vulnerability_count_by_day_spec.rb": 2.560702855999807,5253 "ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/create_spec.rb": 2.6000889329998245,5254 "ee/spec/requests/api/graphql/mutations/gitlab_subscriptions/activate_spec.rb": 1.4231270569998742,5255 "ee/spec/requests/api/graphql/mutations/security/training_provider_update_spec.rb": 2.3907069299993964,5256 "ee/spec/requests/api/graphql/boards/epic_list_query_spec.rb": 2.650254180000047,5257 "ee/spec/requests/api/graphql/group/external_audit_event_destinations_spec.rb": 2.2742985189997853,5258 "ee/spec/requests/sessions_controller_spec.rb": 2.067550884999946,5259 "ee/spec/requests/groups/hook_logs_controller_spec.rb": 2.4427540259994203,5260 "ee/spec/requests/admin/users_controller_spec.rb": 1.9701503430005687,5261 "ee/spec/requests/api/graphql/group/epic/epic_ancestors_spec.rb": 2.035142407999956,5262 "ee/spec/requests/api/graphql/mutations/projects/generate_commit_message_spec.rb": 2.1221782510001503,5263 "ee/spec/controllers/projects/security/scanned_resources_controller_spec.rb": 2.071895494999808,5264 "ee/spec/requests/api/graphql/project/branch_rules_spec.rb": 1.9982621609997295,5265 "ee/spec/requests/projects/insights_controller_spec.rb": 1.9078230879995317,5266 "ee/spec/requests/api/graphql/issue/issue_spec.rb": 2.357759143000294,5267 "ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/create_spec.rb": 2.0072183490001407,5268 "ee/spec/requests/omniauth_kerberos_spec.rb": 0.932850146000419,5269 "ee/spec/requests/api/graphql/mutations/boards/epic_lists/create_spec.rb": 1.49145216099987,5270 "ee/spec/requests/api/graphql/geo/geo_node_spec.rb": 1.586108764000528,5271 "ee/spec/requests/api/graphql/subscriptions/ai_completion_response_spec.rb": 1.4638956439994217,5272 "ee/spec/requests/users_controller_spec.rb": 1.9560031940000044,5273 "ee/spec/requests/customers_dot/proxy_controller_spec.rb": 1.3717916810001043,5274 "ee/spec/requests/api/graphql/merge_request_reviewer_spec.rb": 1.811777854999491,5275 "ee/spec/requests/subscriptions_controller_spec.rb": 0.9029276780001965,5276 "ee/spec/requests/projects/incidents_controller_spec.rb": 1.5292553989993394,5277 "ee/spec/requests/api/graphql/project/security_orchestration/scan_result_policy_spec.rb": 1.2876892770000268,5278 "ee/spec/requests/ee/projects/deploy_tokens_controller_spec.rb": 1.5637737349998133,5279 "ee/spec/requests/ee/projects/repositories_controller_spec.rb": 1.3356030639997698,5280 "ee/spec/requests/api/graphql/project/merge_requests_spec.rb": 1.320698954999898,5281 "ee/spec/requests/groups/settings/access_tokens_controller_spec.rb": 1.1429885790003027,5282 "ee/spec/controllers/admin/dashboard_controller_spec.rb": 0.761481919000289,5283 "ee/spec/controllers/ee/uploads_controller_spec.rb": 0.9930816209998738,5284 "ee/spec/requests/api/graphql/group/ci_cd_settings_spec.rb": 0.6943928549999328,5285 "ee/spec/controllers/users_controller_spec.rb": 0.6780458359999102,5286 "ee/spec/controllers/remote_development/workspaces_controller_spec.rb": 0.5303873679995377,5287 "ee/spec/requests/api/project_snapshots_spec.rb": 0.8772671309998259,5288 "ee/spec/requests/api/api_spec.rb": 0.45838980299959076,5289 "ee/spec/controllers/admin/impersonations_controller_spec.rb": 0.46912312299991754,5290 "ee/spec/mailers/emails/epics_spec.rb": 0.199068793999686025291}5292Knapsack global time execution for tests: 21m 03s5293Finished in 21 minutes 7 seconds (files took 1 minute 42.68 seconds to load)52941980 examples, 0 failures5295Randomized with seed 167235296[TEST PROF INFO] Time spent in factories: 08:37.419 (39.51% of total time)5297RSpec exited with 0.5298No examples to retry, congrats!5300Running after script...5301$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"5306Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy5308Uploading artifacts...5309WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 5310coverage/: found 5 matching artifact files and directories 5311crystalball/: found 2 matching artifact files and directories 5312deprecations/: found 6 matching artifact files and directories 5313knapsack/: found 4 matching artifact files and directories 5314rspec/: found 16 matching artifact files and directories 5315WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 5316log/*.log: found 18 matching artifact files and directories 5317WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4900739658/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com5318WARNING: Retrying... context=artifacts-uploader error=request redirected5319Uploading artifacts as "archive" to coordinator... 201 Created id=4900739658 responseStatus=201 Created token=64_hBVyQ5320Uploading artifacts...5321rspec/rspec-*.xml: found 1 matching artifact files and directories 5322WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4900739658/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com5323WARNING: Retrying... context=artifacts-uploader error=request redirected5324Uploading artifacts as "junit" to coordinator... 201 Created id=4900739658 responseStatus=201 Created token=64_hBVyQ5326Job succeeded