rspec integration pg14 8/13
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.3.0~beta.108.g2b6048b4 (2b6048b4)2 on blue-2.private.runners-manager.gitlab.com/gitlab.com/gitlab-org QvBVRoXM, system ID: s_49b872f8ccf63 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:6c7370fd46a94d5beaed2a0304c7518e74a5759d4da3322ea9f7052507f51d80 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:1b39aac95406782d786043ec3f1772c0a3a5ce1b9ce28cf001cac9a290f366c8 ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:f4c047edb00d9bbfcc2b002a01548fab14592940f5b3e6b3f227f690e3fa272d for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:9a1b6b68dc464f0baae914703d5b059e7773bf23c9579c44e2a1b1154a83656f ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:9b4dc93acb797b99419bb31d8a452680508f1bf10a8604d721c0474072417a2b for redis:6.2-alpine with digest redis@sha256:452b7655bda0e270a6376b71d22fcb30662e745dcb4728f99fa87f01287b465d ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling 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 ...23Using docker image sha256:d68252162deca904d1a0066983188b98dfe3f6fe8181458b0a55905e79ed85a1 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:2113f34affc7e2ee40bac87419dcd7c65a94d4abfa9edb86192e1aa6a1e46590 ...25Running on runner-qvbvroxm-project-278964-concurrent-0 via runner-qvbvroxm-private-1697702256-173bd1ab...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 175495, done. 31remote: Counting objects: 100% (175495/175495), done. 32remote: Compressing objects: 100% (119238/119238), done. 33remote: Total 175495 (delta 83016), reused 113694 (delta 49335), pack-reused 0 34Receiving objects: 100% (175495/175495), 148.32 MiB | 30.21 MiB/s, done.35Resolving deltas: 100% (83016/83016), done.37 * [new ref] refs/pipelines/1042272888 -> refs/pipelines/104227288838Checking out 3af7b5df as detached HEAD (ref is refs/merge-requests/134621/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43cache.zip is up to date 44Successfully extracted cache46Downloading artifacts for compile-test-assets (5328358048)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358048 responseStatus=200 OK token=64_Fm3NK48Downloading artifacts for detect-tests (5328358058)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358058 responseStatus=200 OK token=64_Fm3NK50Downloading artifacts for retrieve-tests-metadata (5328358066)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358066 responseStatus=200 OK token=64_Fm3NK52Downloading artifacts for setup-test-env (5328358054)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5328358054 responseStatus=200 OK token=64_Fm3NK55Using docker image sha256:d68252162deca904d1a0066983188b98dfe3f6fe8181458b0a55905e79ed85a1 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:2113f34affc7e2ee40bac87419dcd7c65a94d4abfa9edb86192e1aa6a1e46590 ...56$ echo $FOSS_ONLY57$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb58$ export GOPATH=$CI_PROJECT_DIR/.go59$ mkdir -p $GOPATH60$ source scripts/utils.sh61$ source scripts/prepare_build.sh93Using decomposed database config (config/database.yml.decomposed-postgresql)94Geo DB won't be set up.95Embedding DB won't be set up.125$ source ./scripts/rspec_helpers.sh126$ run_timed_command "gem install knapsack --no-document"127$ gem install knapsack --no-document128Successfully installed knapsack-4.0.01291 gem installed130==> 'gem install knapsack --no-document' succeeded in 1 seconds.131$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"136$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"137$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"138$ tooling/bin/create_job_metrics_file || true139[job-metrics] Creating the job metrics file for the CI/CD job.140$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"141RETRY_FAILED_TESTS_IN_NEW_PROCESS: true142KNAPSACK_GENERATE_REPORT: true143FLAKY_RSPEC_GENERATE_REPORT: true144KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb145KNAPSACK_LOG_LEVEL: debug146KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg14_8_13_report.json147FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json148FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg14_8_13_report.json149NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg14_8_13_report.json150RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5328358281.txt151CRYSTALBALL: 152RSPEC_TESTS_MAPPING_ENABLED: 153RSPEC_TESTS_FILTER_FILE: 154Shell set options (set -o) enabled:155braceexpand on156hashall on157interactive-comments on158pipefail on159Knapsack report generator started!160/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!161/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!162/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!163/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!164/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!165/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!166/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!167/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!168/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!169/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:19: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!170/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!171/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!172/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!173/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!174/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!175/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!176/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!177/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!178/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!179/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!180/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!181/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!182/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!183/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!184/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!185/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!186/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!187/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!188/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!189/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!190/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!191/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!192/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!193/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!194/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!195/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!196/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!197/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!198/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_variables_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!199/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!200/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!201/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!202/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!203/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!204/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!205/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!206/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!207/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!208/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!209/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!210/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!211/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!212/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!213Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}214Test environment set up in 0.528033871 seconds215API::Projects216 GET /projects217 when unauthenticated218 behaves like projects response219 returns an array of projects220 returns the proper security headers221 behaves like projects response without N + 1 queries222 avoids N + 1 queries223 when authenticated as regular user224 is expected to eq false225 includes various project feature fields226 includes correct value of container_registry_enabled227 includes project topics228 includes open_issues_count229 does not include projects marked for deletion230 does not include open_issues_count if issues are disabled231 does not include statistics by default232 includes statistics if requested233 does not include license by default234 does not include license if requested235 behaves like projects response236 returns an array of projects237 returns the proper security headers238 behaves like projects response without N + 1 queries239 avoids N + 1 queries240 when some projects are in a group241 behaves like projects response without N + 1 queries242 avoids N + 1 queries243 filter by topic (column topic_list)244 returns no projects245 returns matching project for a single topic246 returns matching project for multiple topics247 returns no projects if project match only some topic248 ignores topic if it is empty249 filter by topic_id250 with id of assigned topic251 behaves like projects response252 returns an array of projects253 returns the proper security headers254 with id of unassigned topic255 behaves like projects response256 returns an array of projects257 returns the proper security headers258 with non-existing topic id259 behaves like projects response260 returns an array of projects261 returns the proper security headers262 with empty topic id263 behaves like projects response264 returns an array of projects265 returns the proper security headers266 and with_issues_enabled=true267 only returns projects with issues enabled268 when external issue tracker is enabled269 includes open_issues_count270 does not include open_issues_count if issues are disabled271 and with simple=true272 returns a simplified version of all the projects273 and using archived274 returns archived projects275 returns non-archived projects276 returns every project277 filter by updated_at278 returns projects sorted by updated_at279 behaves like projects response280 returns an array of projects281 returns the proper security headers282 when filtering by updated_at and sorting by a different column283 returns an error284 and using search285 behaves like projects response286 returns an array of projects287 returns the proper security headers288 and using search and search_namespaces is true289 behaves like projects response290 returns an array of projects291 returns the proper security headers292 and using id_after293 behaves like projects response294 returns an array of projects295 returns the proper security headers296 regression: empty string is ignored297 behaves like projects response298 returns an array of projects299 returns the proper security headers300 and using id_before301 behaves like projects response302 returns an array of projects303 returns the proper security headers304 regression: empty string is ignored305 behaves like projects response306 returns an array of projects307 returns the proper security headers308 and using both id_after and id_before309 behaves like projects response310 returns an array of projects311 returns the proper security headers312 and membership=true313 behaves like projects response314 returns an array of projects315 returns the proper security headers316 and using the visibility filter317 filters based on private visibility param318 filters based on internal visibility param319 filters based on public visibility param320 and using the programming language filter321 filters case-insensitively by programming language322 and using sorting323 returns the correct order when sorted by id324 and with owned=true325 returns an array of projects the user owns326 when admin creates a project327 does not list as owned project for admin328 and with starred=true329 returns the starred projects viewable by the user330 and with all query parameters331 including owned filter332 returns only projects that satisfy all query parameters333 including membership filter334 returns only projects that satisfy all query parameters335 and with min_access_level336 returns an array of projects the user has at least developer access337 and imported=true338 returns only imported projects owned by current user339 does not expose import credentials340 when authenticated as a different user341 behaves like projects response342 returns an array of projects343 returns the proper security headers344 and with_issues_enabled=true345 does not return private issue projects346 when authenticated as admin347 returns a project with user namespace that has a missing owner348 behaves like projects response349 returns an array of projects350 returns the proper security headers351 with default created_at desc order352 orders by id desc instead353 sorting354 by project statistics355 sorting by repository_size356 admin user357 when sorting by repository_size ascendingly358 returns a properly sorted list of projects359 when sorting by repository_size descendingly360 returns a properly sorted list of projects361 non-admin user362 returns projects ordered normally363 sorting by storage_size364 admin user365 when sorting by storage_size ascendingly366 returns a properly sorted list of projects367 when sorting by storage_size descendingly368 returns a properly sorted list of projects369 non-admin user370 returns projects ordered normally371 sorting by wiki_size372 admin user373 when sorting by wiki_size ascendingly374 returns a properly sorted list of projects375 when sorting by wiki_size descendingly376 returns a properly sorted list of projects377 non-admin user378 returns projects ordered normally379 sorting by packages_size380 admin user381 when sorting by packages_size ascendingly382 returns a properly sorted list of projects383 when sorting by packages_size descendingly384 returns a properly sorted list of projects385 non-admin user386 returns projects ordered normally387 by similarity388 returns non-public items based ordered by similarity389 when `search` parameter is not given390 returns items ordered by created_at descending391 when called anonymously392 returns items ordered by created_at descending393 filtering by repository_storage394 admin user395 behaves like projects response396 returns an array of projects397 returns the proper security headers398 non-admin user399 behaves like projects response400 returns an array of projects401 returns the proper security headers402 with keyset pagination403 headers and records404 includes a pagination header with link to the next page405 contains only the first project with per_page = 1406 still includes a link if the end has reached and there is no more data after this page407 does not include a next link when the page does not have any records408 returns an empty array when the page does not have any records409 responds with 501 if order_by is different from id410 with descending sorting411 includes a pagination header with link to the next page412 contains only the last project with per_page = 1413 retrieving the full relation414 returns all projects415 with forked projects416 avoids N+1 queries417 when service desk is enabled418 avoids N+1 queries419 rate limiting420 when the user is signed in421 behaves like does not log request and does not block the request422 is expected not to receive error(*(any args)) 0 times423 when the user is not signed in424 behaves like rate limited endpoint425 when rate limiter enabled426 logs request and declines it when endpoint called more than the threshold427 when rate limiter is disabled428 does not log request and does not block the request429 POST /projects430 creates new project without path but with name and returns 201431 creates new project without name but with path and returns 201432 creates new project with name and path and returns 201433 creates last project before reaching project limit434 does not create new project without name or path and returns 400435 assigns attributes to project436 assigns container_registry_enabled to project437 assigns container_registry_enabled to project438 creates a project using a template439 returns 400 for an invalid template440 disallows creating a project with an import_url and template441 disallows creating a project with an import_url when git import source is disabled442 allows creating a project without an import_url when git import source is disabled443 disallows creating a project with an import_url that is not reachable444 creates a project with an import_url that is valid445 sets a project as public446 sets a project as internal447 sets a project as private448 creates a new project initialized with a README.md449 sets tag list to a project (deprecated)450 sets topics to a project451 uploads avatar for project a project452 sets a project as not allowing outdated diff discussions to automatically resolve453 sets a project as allowing outdated diff discussions to automatically resolve454 sets a project as not removing source branches455 sets a project as removing source branches456 sets a project as allowing merge even if build fails457 sets a project as allowing merge only if merge_when_pipeline_succeeds458 sets a project as not allowing merge when pipeline is skipped459 sets a project as allowing merge when pipeline is skipped460 sets a project as allowing merge even if discussions are unresolved461 sets a project as allowing merge if only_allow_merge_if_all_discussions_are_resolved is nil462 sets a project as allowing merge only if all discussions are resolved463 sets a project as enabling auto close referenced issues464 sets a project as disabling auto close referenced issues465 sets the merge method of a project to rebase merge466 rejects invalid values for merge_method467 ignores import_url when it is nil468 maximum number of projects reached469 does not create new project and respond with 403470 behaves like create project with default branch parameter471 creates project with provided default branch name472 when branch name is empty473 creates project with a default project branch name474 when initialize with readme is not set475 creates project with a default project branch name476 when a visibility level is restricted477 does not allow a non-admin to use a restricted visibility level478 allows an admin to override restricted visibility settings479 GET /users/:user_id/projects/480 returns error when user not found481 returns projects filtered by user id482 includes container_registry_access_level483 returns projects filtered by username484 returns projects filtered by minimal access level485 filter by updated_at486 returns only projects updated on the given timeframe487 and using id_after488 only returns projects with id_after filter given489 returns both projects without a id_after filter490 and using id_before491 only returns projects with id_before filter given492 returns both projects without a id_before filter493 and using both id_before and id_after494 only returns projects with id matching the range495 and using an admin to search496 returns users projects when authenticated as admin497 and using the programming language filter498 filters case-insensitively by programming language499 GET /users/:user_id/starred_projects/500 returns error when user not found501 with a public profile502 returns projects filtered by user503 filter by updated_at504 returns only projects updated on the given timeframe505 with a private profile506 user does not have access to view the private profile507 returns no projects508 user has access to view the private profile509 returns projects filtered by user510 GET /users/:user_id/contributed_projects/511 returns error when user not found512 with a public profile513 returns projects filtered by user514 with a private profile515 user does not have access to view the private profile516 returns no projects (FAILED - 1)517 user has access to view the private profile as an admin518 returns projects filtered by user519 POST /projects/user/:id520 creates new project without path but with name and return 201521 creates new project with name and path and returns 201522 responds with 400 on failure and not project523 sets container_registry_enabled524 assigns attributes to project525 sets a project as public526 sets a project as internal527 sets a project as private528 sets a project as not allowing outdated diff discussions to automatically resolve529 sets a project as allowing outdated diff discussions to automatically resolve530 sets a project as not removing source branches531 sets a project as removing source branches532 sets a project as allowing merge even if build fails533 sets a project as allowing merge only if pipeline succeeds534 sets a project as not allowing merge when pipeline is skipped535 sets a project as allowing merge when pipeline is skipped536 sets a project as allowing merge even if discussions are unresolved537 sets a project as allowing merge only if all discussions are resolved538 behaves like POST request permissions for admin mode539 behaves like when admin540 behaves like makes request541 returns542 behaves like makes request543 returns544 behaves like when user545 returns546 behaves like makes request547 returns548 behaves like create project with default branch parameter549 creates project with provided default branch name550 when branch name is empty551 creates project with a default project branch name552 when initialize with readme is not set553 creates project with a default project branch name554 container_registry_enabled555 container_registry_enabled: true, container_registry_access_level: 20556 setting container_registry_enabled also sets container_registry_access_level557 container_registry_enabled: false, container_registry_access_level: 0558 setting container_registry_enabled also sets container_registry_access_level559 container_registry_access_level560 container_registry_access_level: "enabled", container_registry_enabled: true561 setting container_registry_access_level also sets container_registry_enabled562 container_registry_access_level: "private", container_registry_enabled: true563 setting container_registry_access_level also sets container_registry_enabled564 container_registry_access_level: "disabled", container_registry_enabled: false565 setting container_registry_access_level also sets container_registry_enabled566 POST /projects/:id/uploads/authorize567 with authorized user568 returns 200569 with unauthorized user570 returns 404571 with exempted project572 returns 200573 with no Workhorse headers574 returns 403575 POST /projects/:id/uploads576 uploads the file and returns its info577 does not leave the temporary file in place after uploading, even when the tempfile reaper does not run578 with exempted project579 behaves like capped upload attachments580 limits the upload to 1 GiB581 logs a warning if file exceeds attachment size582 GET /projects/:id/groups583 behaves like GET request permissions for admin mode584 behaves like when admin585 behaves like makes request586 returns587 behaves like makes request588 returns589 behaves like when user590 returns591 behaves like makes request592 returns593 when unauthenticated594 does not return groups for private projects595 for public projects596 behaves like successful groups response597 returns an array of groups598 when authenticated as user599 when user does not have access to the project600 does not return groups601 when user has access to the project602 behaves like successful groups response603 returns an array of groups604 when search by root group name605 behaves like successful groups response606 returns an array of groups607 with_shared option is on608 behaves like successful groups response609 returns an array of groups610 when shared_min_access_level is set611 behaves like successful groups response612 returns an array of groups613 when shared_visible_only is on614 behaves like successful groups response615 returns an array of groups616 when search by shared group name617 behaves like successful groups response618 returns an array of groups619 when skip_groups is set620 behaves like successful groups response621 returns an array of groups622 when authenticated as admin623 behaves like successful groups response624 returns an array of groups625 GET /project/:id/share_locations626 behaves like GET request permissions for admin mode627 behaves like when admin628 behaves like makes request629 returns630 behaves like makes request631 returns632 behaves like when user633 returns634 behaves like makes request635 returns636 when unauthenticated637 does not return the groups for the given project638 when authenticated639 when user is not the owner of the project640 does not return the groups641 when user is the owner of the project642 with default search643 behaves like successful groups response644 returns an array of groups645 when searching by group name646 searching by group name647 behaves like successful groups response648 returns an array of groups649 searching by full group path650 behaves like successful groups response651 returns an array of groups652 when authenticated as admin653 without share_with_group_lock654 behaves like successful groups response655 returns an array of groups656 with share_with_group_lock657 behaves like successful groups response658 returns an array of groups659 GET /projects/:id660 exposes service desk attributes661 behaves like GET request permissions for admin mode662 behaves like when admin663 behaves like makes request664 returns665 behaves like makes request666 returns667 behaves like when user668 returns669 behaves like makes request670 returns671 when unauthenticated672 does not return private projects673 returns public projects674 the project is a public fork675 hides details of a public fork parent676 and the project has a private repository677 hides protected attributes of private repositories if user is not a member678 exposes protected attributes of private repositories if user is a member679 when authenticated as an admin680 returns a project by id681 exposes all necessary attributes682 when authenticated as a regular user683 returns a project by id684 returns a group link with expiration date685 returns a project by path name686 returns a 404 error if not found687 returns a 404 error if user is not a member688 handles users with dots689 exposes namespace fields690 does not include license fields by default691 includes license fields when requested692 does not include statistics by default693 includes statistics if requested694 includes import_error if user can admin project695 does not include import_error if user cannot admin project696 returns 404 when project is marked for deletion697 when a project is moved698 redirects to the new project location699 when a user do not have access700 returns a 404 error701 when api_redirect_moved_projects is disabled702 returns a 404 error703 and the project has a private repository704 does not include statistics if user is not a member705 includes statistics if user is a member706 includes statistics also when repository is disabled707 links exposure708 exposes related resources full URIs709 filters related URIs when their feature is not enabled710 the project is a fork711 shows details of a visible fork parent712 hides details of a hidden fork parent713 permissions714 all projects715 contains permission information716 personal project717 sets project access and returns 200718 group project719 sets the owner and return 200720 nested group project721 sets group access and return 200722 with various access levels across nested groups723 sets the maximum group access and return 200724 when project belongs to a group namespace725 returns group web_url and avatar_url726 when project belongs to a user namespace727 returns user web_url and avatar_url728 when authenticated as a developer729 hides sensitive admin attributes730 behaves like storing arguments in the application context for the API731 places the expected params in the application context732 repository_storage attribute733 when authenticated as an admin734 returns repository_storage attribute735 when authenticated as a regular user736 does not return repository_storage attribute737 when project is shared to multiple groups738 avoids N+1 queries739 GET /projects/:id/users740 behaves like GET request permissions for admin mode741 behaves like when admin742 behaves like makes request743 returns744 behaves like makes request745 returns746 behaves like when user747 returns748 behaves like makes request749 returns750 when unauthenticated751 behaves like project users response752 returns the project users753 when authenticated754 returns a 404 error if not found755 returns a 404 error if user is not a member756 filters out users listed in skip_users757 valid request758 behaves like project users response759 returns the project users760 fork management761 POST /projects/:id/fork/:forked_from_id762 refreshes the forks count cache763 behaves like POST request permissions for admin mode764 behaves like when admin765 behaves like makes request766 returns767 behaves like makes request768 returns769 behaves like when user770 returns771 behaves like makes request772 returns773 user is a developer774 denies project to be forked from an existing project775 user is maintainer776 denies project to be forked from an existing project777 user is owner778 fails without permission from forked_from project779 denies project to be forked from a private project780 and user is a reporter of target group781 fails as target namespace is unauthorized782 and user is a developer of target group783 allows project to be forked from an existing project784 user is admin785 allows project to be forked from an existing project786 allows project to be forked from a private project787 refreshes the forks count cachce788 fails if forked_from project which does not exist789 fails with 409 if already forked790 DELETE /projects/:id/fork791 is not visible to users outside group792 when users belong to project group793 is forbidden to non-owner users794 is idempotent if not forked795 for a forked project796 makes forked project unforked797 behaves like DELETE request permissions for admin mode798 behaves like when admin799 behaves like makes request800 returns801 behaves like makes request802 returns803 behaves like when user804 returns805 behaves like makes request806 returns807 behaves like 412 response808 for a modified resource809 returns 412 with a JSON error810 for an unmodified resource811 returns 204 with an empty body812 GET /projects/:id/forks813 for a forked project814 for a user that can access the forks815 returns the forks816 filter by updated_at817 returns only forks updated on the given timeframe818 for a user that cannot access the forks819 returns an empty array820 for a non-forked project821 returns an empty array822 POST /projects/:id/share823 shares project with group824 updates project authorization825 returns a 400 error when group id is not given826 returns a 400 error when access level is not given827 returns a 400 error when sharing is disabled828 returns a 404 error when user cannot read group829 returns a 404 error when group does not exist830 returns a 400 error when wrong params passed831 returns a 400 error when the project-group share is created with an OWNER access level832 returns a 409 error when link is not saved833 when project is forked834 returns a 404 error when group does not exist835 DELETE /projects/:id/share/:group_id836 returns a 400 when group id is not an integer837 returns a 404 error when group link does not exist838 returns a 404 error when project does not exist839 for a valid group840 returns 204 when deleting a group share841 updates project authorization842 behaves like 412 response843 for a modified resource844 returns 412 with a JSON error845 for an unmodified resource846 returns 204 with an empty body847 POST /projects/:id/import_project_members/:project_id848 records the query849 returns 200 when it successfully imports members from another project850 returns 404 if the source project does not exist851 returns 404 if the target project members cannot be administered by the requester852 returns 404 if the source project members cannot be viewed by the requester853 returns 403 if the source project members cannot be administered by the requester854 returns 422 if the import failed for valid projects855 when importing of members did not work for some or all members856 fails to import some members857 PUT /projects/:id858 sets container_registry_access_level859 sets container_registry_enabled860 sets security_and_compliance_access_level861 sets analytics_access_level862 sets releases_access_level863 sets environments_access_level864 sets feature_flags_access_level865 sets infrastructure_access_level866 sets monitor_access_level867 sets model_experiments_access_level868 returns 400 when nothing sent869 behaves like PUT request permissions for admin mode870 behaves like when admin871 behaves like makes request872 returns873 behaves like makes request874 returns875 behaves like when user876 returns877 behaves like makes request878 returns879 updating packages_enabled attribute880 is enabled by default881 disables project packages feature882 when unauthenticated883 returns authentication error884 when authenticated as project owner885 updates visibility_level886 updates visibility_level from public to private887 does not update visibility_level if it is restricted888 does not update name to existing name889 updates request_access_enabled890 updates path & name to existing path & name in different namespace891 updates default_branch892 updates jobs_enabled893 updates builds_access_level894 updates pages_access_level895 updates emails_disabled896 updates emails_enabled?897 updates build_git_strategy898 rejects to update build_git_strategy when build_git_strategy is invalid899 updates merge_method900 rejects to update merge_method when merge_method is invalid901 updates restrict_user_defined_variables902 updates auto_devops_deploy_strategy903 updates auto_devops_enabled904 updates topics using tag_list (deprecated)905 updates topics906 updates enforce_auth_checks_on_uploads907 updates squash_option908 does not update an invalid squash_option909 with changes to the avatar910 uploads avatar to project without an avatar911 uploads and changes avatar to project with an avatar912 uploads and changes avatar to project among other changes913 removes avatar from project with an avatar914 when authenticated as project maintainer915 updates path916 updates other attributes917 does not update path to existing path918 updates name919 does not update visibility_level920 updates container_expiration_policy921 doesn't update container_expiration_policy with invalid regex922 doesn't update container_expiration_policy with invalid keep_n923 when authenticated as project developer924 does not update other attributes925 when authenticated as the admin926 ignores visibility level restrictions927 when updating repository storage928 as a user929 returns 200 but does not change repository_storage930 as an admin931 returns 400 when repository storage is unknown932 returns 200 when repository storage has changed933 when updating service desk934 returns 200935 enables the service_desk936 when updating keep latest artifact937 returns 200938 enables keep_latest_artifact939 attribute mr_default_target_self940 is by default set to false941 for a non-forked project942 is not exposed943 is not possible to update944 for a forked project945 updates to true946 POST /projects/:id/archive947 on an unarchived project948 archives the project949 on an archived project950 remains archived951 user without archiving rights to the project952 rejects the action953 when a project is moved954 returns 405 error955 when user do not have access to the project956 returns 404 error957 POST /projects/:id/unarchive958 on an unarchived project959 remains unarchived960 on an archived project961 unarchives the project962 user without archiving rights to the project963 rejects the action964 POST /projects/:id/star965 on an unstarred project966 stars the project967 on a starred project968 does not modify the star count969 POST /projects/:id/unstar970 on a starred project971 unstars the project972 on an unstarred project973 does not modify the star count974 GET /projects/:id/starrers975 returns not_found(404) for not existing project976 public project without user977 returns only starrers with a public profile978 behaves like project starrers response979 returns an array of starrers980 returns the proper security headers981 public project with user with private profile982 returns current user with a private profile983 behaves like project starrers response984 returns an array of starrers985 returns the proper security headers986 private project987 with unauthorized user988 returns not_found for existing but unauthorized project989 without user990 returns not_found for existing but unauthorized project991 GET /projects/:id/languages992 with an authorized user993 returns not_found(404) for not existing project994 behaves like languages and percentages JSON response995 when the languages haven't been detected yet996 returns expected language values997 when the languages were detected before998 returns the detection from the database999 with not authorized user1000 returns not_found for existing but unauthorized project1001 without user1002 returns not_found for existing but unauthorized project1003 behaves like languages and percentages JSON response1004 when the languages haven't been detected yet1005 returns expected language values1006 when the languages were detected before1007 returns the detection from the database1008 DELETE /projects/:id1009 behaves like DELETE request permissions for admin mode1010 behaves like when admin1011 behaves like makes request1012 returns1013 behaves like makes request1014 returns1015 behaves like when user1016 returns1017 behaves like makes request1018 returns1019 when authenticated as user1020 removes project1021 does not remove a project if not an owner1022 does not remove a non existing project1023 does not remove a project not attached to user1024 behaves like 412 response1025 for a modified resource1026 returns 412 with a JSON error1027 for an unmodified resource1028 returns 204 with an empty body1029 when authenticated as admin1030 removes any existing project1031 does not remove a non existing project1032 behaves like 412 response1033 for a modified resource1034 returns 412 with a JSON error1035 for an unmodified resource1036 returns 204 with an empty body1037 POST /projects/:id/fork1038 behaves like POST request permissions for admin mode1039 behaves like when admin1040 behaves like makes request1041 returns1042 behaves like makes request1043 returns1044 behaves like when user1045 returns1046 behaves like makes request1047 returns1048 when authenticated1049 forks if user has sufficient access to project1050 forks if user is admin1051 fails on missing project access for the project to fork1052 fails if forked project exists in the user namespace1053 fails if project to fork from does not exist1054 forks with explicit own user namespace id1055 forks with explicit own user name as namespace1056 forks to another user when admin1057 fails if trying to fork to another user when not admin1058 fails if trying to fork to non-existent namespace1059 forks to owned group1060 forks to owned subgroup1061 fails to fork to not owned group1062 forks to not owned group when admin1063 accepts a path for the target project1064 fails to fork if path is already taken1065 accepts custom parameters for the target project1066 fails to fork if name is already taken1067 forks to the same namespace with alternative path and name1068 fails to fork to the same namespace without alternative path and name1069 fails to fork with an unknown visibility level1070 when namespace_id is specified1071 and namespace_id is specified alone1072 behaves like forking to specified namespace_id1073 forks to specified namespace_id1074 and namespace_id and namespace are both specified1075 behaves like forking to specified namespace_id1076 forks to specified namespace_id1077 and namespace_id and namespace_path are both specified1078 behaves like forking to specified namespace_id1079 forks to specified namespace_id1080 when namespace_path is specified1081 and namespace_path is specified alone1082 behaves like forking to specified namespace_path1083 forks to specified namespace_path1084 and namespace_path and namespace are both specified1085 behaves like forking to specified namespace_path1086 forks to specified namespace_path1087 when unauthenticated1088 returns authentication error1089 forking disabled1090 denies project to be forked1091 POST /projects/:id/housekeeping1092 when authenticated as owner1093 starts the housekeeping process1094 logs an audit event1095 when requesting prune1096 triggers a prune1097 when requesting an unsupported task1098 responds with bad_request1099 when housekeeping lease is taken1100 returns conflict1101 when authenticated as developer1102 returns forbidden error1103 when unauthenticated1104 returns authentication error1105 POST /projects/:id/repository_size1106 when authenticated as owner1107 starts the housekeeping process1108 when authenticated as developer1109 returns forbidden error1110 when unauthenticated1111 returns authentication error1112 PUT /projects/:id/transfer1113 when authenticated as owner1114 transfers the project to the new namespace1115 fails when transferring to a non owned namespace1116 fails when transferring to an unknown namespace1117 fails on missing namespace1118 when authenticated as developer1119 target namespace allows developers to create projects1120 fails transferring the project to the target namespace1121 GET /projects/:id/transfer_locations1122 when the user has rights to transfer the project1123 returns 2001124 includes groups where the user has permissions to transfer a project to1125 does not include groups where the user doesn not have permissions to transfer a project1126 does not include the group id of the current project1127 with search1128 includes groups where the user has permissions to transfer a project to1129 group shares1130 only includes groups arising from group shares where the user has permission to transfer a project to1131 when the user does not have permissions to transfer the project1132 returns 4031133 GET /projects/:id/storage1134 returns project storage data when user is admin1135 does not return project storage data when user is not admin1136 responds with a 401 for unauthenticated users trying to access a non-existent project id1137 responds with a 403 for non-admin users trying to access a non-existent project id1138 behaves like GET request permissions for admin mode1139 behaves like when admin1140 behaves like makes request1141 returns1142 behaves like makes request1143 returns1144 behaves like when user1145 returns1146 behaves like makes request1147 returns1148 when unauthenticated1149 does not return project storage data1150 behaves like custom attributes endpoints1151 GET /projects with custom attributes filter1152 with an unauthorized user1153 does not filter by custom attributes1154 with an authorized user1155 filters by custom attributes1156 GET /projects with custom attributes1157 with an unauthorized user1158 does not include custom attributes1159 with an authorized user1160 does not include custom attributes by default1161 includes custom attributes if requested1162 GET /projects/:id with custom attributes1163 with an unauthorized user1164 does not include custom attributes1165 with an authorized user1166 does not include custom attributes by default1167 includes custom attributes if requested1168 GET /projects/:id/custom_attributes1169 with an unauthorized user1170 behaves like an unauthorized API user1171 is expected to eq 4031172 with an authorized user1173 returns all custom attributes1174 GET /projects/:id/custom_attributes/:key1175 with an unauthorized user1176 behaves like an unauthorized API user1177 is expected to eq 4031178 with an authorized user1179 returns a single custom attribute1180 PUT /projects/:id/custom_attributes/:key1181 with an unauthorized user1182 behaves like an unauthorized API user1183 is expected to eq 4031184 with an authorized user1185 creates a new custom attribute1186 updates an existing custom attribute1187 DELETE /projects/:id/custom_attributes/:key1188 with an unauthorized user1189 behaves like an unauthorized API user1190 is expected to eq 4031191 with an authorized user1192 deletes an existing custom attribute1193API::Branches1194 GET /projects/:id/repository/branches1195 when search parameter is passed1196 and branch exists1197 returns correct branches1198 and branch does not exist1199 returns an empty array1200 when sort parameter is passed1201 sorts branches1202 when sort value is not supported1203 behaves like 400 response1204 returns 4001205 when unauthenticated and project is public1206 behaves like repository branches1207 with branch_list_keyset_pagination feature off1208 with offset pagination params1209 returns the repository branches1210 determines only a limited number of merged branch names1211 merge status matches reality on paginated input1212 recovers pagination headers from cache between consecutive requests1213 with gitaly pagination params1214 merge status matches reality on paginated input1215 with branch_list_keyset_pagination feature on1216 with keyset pagination option1217 with gitaly pagination params1218 returns the repository branches1219 determines only a limited number of merged branch names1220 merge status matches reality on paginated input1221 with offset pagination params1222 ignores legacy pagination params1223 when repository is disabled1224 behaves like 404 response1225 returns 4041226 caching1227 caches the query1228 uses the cache up to 60 minutes1229 requests for new value after 60 minutes1230 when unauthenticated and project is private1231 behaves like 404 response1232 returns 4041233 when authenticated as a maintainer1234 does not submit N+1 DB queries1235 behaves like repository branches1236 with branch_list_keyset_pagination feature off1237 with offset pagination params1238 returns the repository branches1239 determines only a limited number of merged branch names1240 merge status matches reality on paginated input1241 recovers pagination headers from cache between consecutive requests1242 with gitaly pagination params1243 merge status matches reality on paginated input1244 with branch_list_keyset_pagination feature on1245 with keyset pagination option1246 with gitaly pagination params1247 returns the repository branches1248 determines only a limited number of merged branch names1249 merge status matches reality on paginated input1250 with offset pagination params1251 ignores legacy pagination params1252 when repository is disabled1253 behaves like 404 response1254 returns 4041255 requesting with the escaped project full path1256 behaves like repository branches1257 with branch_list_keyset_pagination feature off1258 with offset pagination params1259 returns the repository branches1260 determines only a limited number of merged branch names1261 merge status matches reality on paginated input1262 recovers pagination headers from cache between consecutive requests1263 with gitaly pagination params1264 merge status matches reality on paginated input1265 with branch_list_keyset_pagination feature on1266 with keyset pagination option1267 with gitaly pagination params1268 returns the repository branches1269 determines only a limited number of merged branch names1270 merge status matches reality on paginated input1271 with offset pagination params1272 ignores legacy pagination params1273 when repository is disabled1274 behaves like 404 response1275 returns 4041276 when authenticated as a guest1277 behaves like 403 response1278 returns 4031279 GET /projects/:id/repository/branches/:branch1280 when unauthenticated and project is public1281 returns that the current user cannot push1282 behaves like repository branch1283 returns the repository branch1284 HEAD request1285 returns 204 No Content1286 returns 404 Not Found1287 when branch does not exist1288 behaves like 404 response1289 returns 4041290 when the branch refname is invalid1291 behaves like 400 response1292 returns 4001293 when repository is disabled1294 behaves like 404 response1295 returns 4041296 when branch is ambiguous1297 behaves like 404 response1298 returns 4041299 when repository does not exist1300 behaves like 404 response1301 returns 4041302 when unauthenticated and project is private1303 behaves like 404 response1304 returns 4041305 when authenticated as a maintainer1306 returns that the current user can push1307 behaves like repository branch1308 returns the repository branch1309 HEAD request1310 returns 204 No Content1311 returns 404 Not Found1312 when branch does not exist1313 behaves like 404 response1314 returns 4041315 when the branch refname is invalid1316 behaves like 400 response1317 returns 4001318 when repository is disabled1319 behaves like 404 response1320 returns 4041321 when branch is ambiguous1322 behaves like 404 response1323 returns 4041324 when repository does not exist1325 behaves like 404 response1326 returns 4041327 when branch contains a dot1328 behaves like repository branch1329 returns the repository branch1330 HEAD request1331 returns 204 No Content1332 returns 404 Not Found1333 when branch does not exist1334 behaves like 404 response1335 returns 4041336 when the branch refname is invalid1337 behaves like 400 response1338 returns 4001339 when repository is disabled1340 behaves like 404 response1341 returns 4041342 when branch is ambiguous1343 behaves like 404 response1344 returns 4041345 when repository does not exist1346 behaves like 404 response1347 returns 4041348 when branch contains dot txt1349 behaves like repository branch1350 returns the repository branch1351 HEAD request1352 returns 204 No Content1353 returns 404 Not Found1354 when branch does not exist1355 behaves like 404 response1356 returns 4041357 when the branch refname is invalid1358 behaves like 400 response1359 returns 4001360 when repository is disabled1361 behaves like 404 response1362 returns 4041363 when branch is ambiguous1364 behaves like 404 response1365 returns 4041366 when repository does not exist1367 behaves like 404 response1368 returns 4041369 when branch contains a slash1370 behaves like 404 response1371 returns 4041372 when branch contains an escaped slash1373 behaves like repository branch1374 returns the repository branch1375 HEAD request1376 returns 204 No Content1377 returns 404 Not Found1378 when branch does not exist1379 behaves like 404 response1380 returns 4041381 when the branch refname is invalid1382 behaves like 400 response1383 returns 4001384 when repository is disabled1385 behaves like 404 response1386 returns 4041387 when branch is ambiguous1388 behaves like 404 response1389 returns 4041390 when repository does not exist1391 behaves like 404 response1392 returns 4041393 requesting with the escaped project full path1394 behaves like repository branch1395 returns the repository branch1396 HEAD request1397 returns 204 No Content1398 returns 404 Not Found1399 when branch does not exist1400 behaves like 404 response1401 returns 4041402 when the branch refname is invalid1403 behaves like 400 response1404 returns 4001405 when repository is disabled1406 behaves like 404 response1407 returns 4041408 when branch is ambiguous1409 behaves like 404 response1410 returns 4041411 when repository does not exist1412 behaves like 404 response1413 returns 4041414 when branch contains a dot1415 behaves like repository branch1416 returns the repository branch1417 HEAD request1418 returns 204 No Content1419 returns 404 Not Found1420 when branch does not exist1421 behaves like 404 response1422 returns 4041423 when the branch refname is invalid1424 behaves like 400 response1425 returns 4001426 when repository is disabled1427 behaves like 404 response1428 returns 4041429 when branch is ambiguous1430 behaves like 404 response1431 returns 4041432 when repository does not exist1433 behaves like 404 response1434 returns 4041435 when authenticated as a developer and branch is protected1436 returns that the current user cannot push1437 behaves like repository branch1438 returns the repository branch1439 HEAD request1440 returns 204 No Content1441 returns 404 Not Found1442 when branch does not exist1443 behaves like 404 response1444 returns 4041445 when the branch refname is invalid1446 behaves like 400 response1447 returns 4001448 when repository is disabled1449 behaves like 404 response1450 returns 4041451 when branch is ambiguous1452 behaves like 404 response1453 returns 4041454 when repository does not exist1455 behaves like 404 response1456 returns 4041457 when authenticated as a guest1458 behaves like 403 response1459 returns 4031460 PUT /projects/:id/repository/branches/:branch/protect1461 when unauthenticated and project is private1462 behaves like 404 response1463 returns 4041464 when authenticated as a guest1465 behaves like 403 response1466 returns 4031467 when authenticated as a maintainer1468 when a protected branch doesn't already exist1469 behaves like repository new protected branch1470 protects a single branch1471 protects a single branch and developers can push1472 protects a single branch and developers can merge1473 protects a single branch and developers can push and merge1474 when branch does not exist1475 behaves like 404 response1476 returns 4041477 when the branch refname is invalid1478 behaves like 400 response1479 returns 4001480 when repository is disabled1481 behaves like 404 response1482 returns 4041483 when branch contains a dot1484 behaves like repository new protected branch1485 protects a single branch1486 protects a single branch and developers can push1487 protects a single branch and developers can merge1488 protects a single branch and developers can push and merge1489 when branch does not exist1490 behaves like 404 response1491 returns 4041492 when the branch refname is invalid1493 behaves like 400 response1494 returns 4001495 when repository is disabled1496 behaves like 404 response1497 returns 4041498 when branch contains a slash1499 behaves like 404 response1500 returns 4041501 when branch contains an escaped slash1502 behaves like repository new protected branch1503 protects a single branch1504 protects a single branch and developers can push1505 protects a single branch and developers can merge1506 protects a single branch and developers can push and merge1507 when branch does not exist1508 behaves like 404 response1509 returns 4041510 when the branch refname is invalid1511 behaves like 400 response1512 returns 4001513 when repository is disabled1514 behaves like 404 response1515 returns 4041516 requesting with the escaped project full path1517 behaves like repository new protected branch1518 protects a single branch1519 protects a single branch and developers can push1520 protects a single branch and developers can merge1521 protects a single branch and developers can push and merge1522 when branch does not exist1523 behaves like 404 response1524 returns 4041525 when the branch refname is invalid1526 behaves like 400 response1527 returns 4001528 when repository is disabled1529 behaves like 404 response1530 returns 4041531 when branch contains a dot1532 behaves like repository new protected branch1533 protects a single branch1534 protects a single branch and developers can push1535 protects a single branch and developers can merge1536 protects a single branch and developers can push and merge1537 when branch does not exist1538 behaves like 404 response1539 returns 4041540 when the branch refname is invalid1541 behaves like 400 response1542 returns 4001543 when repository is disabled1544 behaves like 404 response1545 returns 4041546 when protected branch already exists1547 when developers can push and merge1548 updates that a developer cannot push or merge1549 when developers cannot push or merge1550 updates that a developer can push and merge1551 PUT /projects/:id/repository/branches/:branch/unprotect1552 when unauthenticated and project is private1553 behaves like 404 response1554 returns 4041555 when authenticated as a guest1556 behaves like 403 response1557 returns 4031558 when authenticated as a maintainer1559 behaves like repository unprotected branch1560 when branch is protected1561 unprotects a single branch1562 when branch is not protected1563 returns a single branch response1564 when branch does not exist1565 behaves like 404 response1566 returns 4041567 when the branch refname is invalid1568 behaves like 400 response1569 returns 4001570 when repository is disabled1571 behaves like 404 response1572 returns 4041573 when branch contains a dot1574 behaves like repository unprotected branch1575 when branch is protected1576 unprotects a single branch1577 when branch is not protected1578 returns a single branch response1579 when branch does not exist1580 behaves like 404 response1581 returns 4041582 when the branch refname is invalid1583 behaves like 400 response1584 returns 4001585 when repository is disabled1586 behaves like 404 response1587 returns 4041588 when branch contains a slash1589 behaves like 404 response1590 returns 4041591 when branch contains an escaped slash1592 behaves like repository unprotected branch1593 when branch is protected1594 unprotects a single branch1595 when branch is not protected1596 returns a single branch response1597 when branch does not exist1598 behaves like 404 response1599 returns 4041600 when the branch refname is invalid1601 behaves like 400 response1602 returns 4001603 when repository is disabled1604 behaves like 404 response1605 returns 4041606 requesting with the escaped project full path1607 behaves like repository unprotected branch1608 when branch is protected1609 unprotects a single branch1610 when branch is not protected1611 returns a single branch response1612 when branch does not exist1613 behaves like 404 response1614 returns 4041615 when the branch refname is invalid1616 behaves like 400 response1617 returns 4001618 when repository is disabled1619 behaves like 404 response1620 returns 4041621 when branch contains a dot1622 behaves like repository unprotected branch1623 when branch is protected1624 unprotects a single branch1625 when branch is not protected1626 returns a single branch response1627 when branch does not exist1628 behaves like 404 response1629 returns 4041630 when the branch refname is invalid1631 behaves like 400 response1632 returns 4001633 when repository is disabled1634 behaves like 404 response1635 returns 4041636 POST /projects/:id/repository/branches1637 returns 400 if branch name is invalid1638 returns 400 if branch already exists1639 returns 400 if ref name is invalid1640 when unauthenticated and project is private1641 behaves like 404 response1642 returns 4041643 when authenticated as a guest1644 behaves like 403 response1645 returns 4031646 when authenticated as a maintainer1647 when a protected branch doesn't already exist1648 behaves like repository new branch1649 creates a new branch1650 when repository is disabled1651 behaves like 404 response1652 returns 4041653 requesting with the escaped project full path1654 behaves like repository new branch1655 creates a new branch1656 when repository is disabled1657 behaves like 404 response1658 returns 4041659 DELETE /projects/:id/repository/branches/:branch1660 removes branch1661 removes a branch with dots in the branch name1662 returns 404 if branch not exists1663 when the branch refname is invalid1664 behaves like 400 response1665 returns 4001666 behaves like 412 response1667 for a modified resource1668 returns 412 with a JSON error1669 for an unmodified resource1670 returns 204 with an empty body1671 DELETE /projects/:id/repository/merged_branches1672 returns 202 with json body1673 returns a 403 error if guest1674Rack Attack global throttles1675 unauthenticated API requests1676 behaves like rate-limited unauthenticated requests1677 when the throttle is enabled1678 rejects requests over the rate limit1679 allows requests after throttling and then waiting for the next period1680 counts requests from different IPs separately1681 logs RackAttack info into structured logs1682 with custom response text1683 rejects requests over the rate limit1684 when the request is not matched by the throttle1685 does not throttle the requests1686 when the request is to the api internal endpoints1687 allows requests over the rate limit1688 when the request is authenticated by a runner token1689 does not count as unauthenticated1690 when the request is to a health endpoint1691 does not throttle the requests1692 when the request is to a container registry notification endpoint1693 does not throttle the requests1694 behaves like tracking when dry-run mode is set1695 does not throttle the requests when `*` is configured1696 logs RackAttack info into structured logs1697 when configured with the the throttled name in a list1698 does not throttle1699 when the throttle is disabled1700 allows requests over the rate limit1701 unauthenticated web requests1702 behaves like rate-limited unauthenticated requests1703 when the throttle is enabled1704 rejects requests over the rate limit1705 allows requests after throttling and then waiting for the next period1706 counts requests from different IPs separately1707 logs RackAttack info into structured logs1708 with custom response text1709 rejects requests over the rate limit1710 when the request is not matched by the throttle1711 does not throttle the requests1712 when the request is to the api internal endpoints1713 allows requests over the rate limit1714 when the request is authenticated by a runner token1715 does not count as unauthenticated1716 when the request is to a health endpoint1717 does not throttle the requests1718 when the request is to a container registry notification endpoint1719 does not throttle the requests1720 behaves like tracking when dry-run mode is set1721 does not throttle the requests when `*` is configured1722 logs RackAttack info into structured logs1723 when configured with the the throttled name in a list1724 does not throttle1725 when the throttle is disabled1726 allows requests over the rate limit1727 API requests from the frontend1728 when unauthenticated1729 behaves like rate-limited frontend API requests1730 with a CSRF token1731 uses the rate limit for web requests1732 without a CSRF session1733 always uses the rate limit for API requests1734 without a CSRF token1735 uses the rate limit for API requests1736 when authenticated1737 behaves like rate-limited frontend API requests1738 with a CSRF token1739 uses the rate limit for web requests1740 without a CSRF session1741 always uses the rate limit for API requests1742 without a CSRF token1743 uses the rate limit for API requests1744 API requests authenticated with personal access token1745 with the token in the query string1746 behaves like rate-limited user based token-authenticated requests1747 when the throttle is enabled1748 does not reject requests if the user is in the allowlist1749 when the throttle is enabled1750 rejects requests over the rate limit1751 allows requests after throttling and then waiting for the next period1752 counts requests from different requesters separately, even from the same IP1753 counts all requests from the same requesters, even via different IPs1754 logs RackAttack info into structured logs1755 behaves like tracking when dry-run mode is set1756 does not throttle the requests when `*` is configured1757 logs RackAttack info into structured logs1758 when configured with the the throttled name in a list1759 does not throttle1760 when the throttle is disabled1761 allows requests over the rate limit1762 with the token in the headers1763 behaves like rate-limited user based token-authenticated requests1764 when the throttle is enabled1765 does not reject requests if the user is in the allowlist1766 when the throttle is enabled1767 rejects requests over the rate limit1768 allows requests after throttling and then waiting for the next period1769 counts requests from different requesters separately, even from the same IP1770 counts all requests from the same requesters, even via different IPs1771 logs RackAttack info into structured logs1772 behaves like tracking when dry-run mode is set1773 does not throttle the requests when `*` is configured1774 logs RackAttack info into structured logs1775 when configured with the the throttled name in a list1776 does not throttle1777 when the throttle is disabled1778 allows requests over the rate limit1779 with the token in the OAuth headers1780 behaves like rate-limited user based token-authenticated requests1781 when the throttle is enabled1782 does not reject requests if the user is in the allowlist1783 when the throttle is enabled1784 rejects requests over the rate limit1785 allows requests after throttling and then waiting for the next period1786 counts requests from different requesters separately, even from the same IP1787 counts all requests from the same requesters, even via different IPs1788 logs RackAttack info into structured logs1789 behaves like tracking when dry-run mode is set1790 does not throttle the requests when `*` is configured1791 logs RackAttack info into structured logs1792 when configured with the the throttled name in a list1793 does not throttle1794 when the throttle is disabled1795 allows requests over the rate limit1796 with the token in basic auth1797 behaves like rate-limited user based token-authenticated requests1798 when the throttle is enabled1799 does not reject requests if the user is in the allowlist1800 when the throttle is enabled1801 rejects requests over the rate limit1802 allows requests after throttling and then waiting for the next period1803 counts requests from different requesters separately, even from the same IP1804 counts all requests from the same requesters, even via different IPs1805 logs RackAttack info into structured logs1806 behaves like tracking when dry-run mode is set1807 does not throttle the requests when `*` is configured1808 logs RackAttack info into structured logs1809 when configured with the the throttled name in a list1810 does not throttle1811 when the throttle is disabled1812 allows requests over the rate limit1813 with a read_api scope1814 with the token in the headers1815 behaves like rate-limited user based token-authenticated requests1816 when the throttle is enabled1817 does not reject requests if the user is in the allowlist1818 when the throttle is enabled1819 rejects requests over the rate limit1820 allows requests after throttling and then waiting for the next period1821 counts requests from different requesters separately, even from the same IP1822 counts all requests from the same requesters, even via different IPs1823 logs RackAttack info into structured logs1824 behaves like tracking when dry-run mode is set1825 does not throttle the requests when `*` is configured1826 logs RackAttack info into structured logs1827 when configured with the the throttled name in a list1828 does not throttle1829 when the throttle is disabled1830 allows requests over the rate limit1831 with the token in the OAuth headers1832 behaves like rate-limited user based token-authenticated requests1833 when the throttle is enabled1834 does not reject requests if the user is in the allowlist1835 when the throttle is enabled1836 rejects requests over the rate limit1837 allows requests after throttling and then waiting for the next period1838 counts requests from different requesters separately, even from the same IP1839 counts all requests from the same requesters, even via different IPs1840 logs RackAttack info into structured logs1841 behaves like tracking when dry-run mode is set1842 does not throttle the requests when `*` is configured1843 logs RackAttack info into structured logs1844 when configured with the the throttled name in a list1845 does not throttle1846 when the throttle is disabled1847 allows requests over the rate limit1848 API requests authenticated with OAuth token1849 with the token in the query string1850 behaves like rate-limited user based token-authenticated requests1851 when the throttle is enabled1852 does not reject requests if the user is in the allowlist1853 when the throttle is enabled1854 rejects requests over the rate limit1855 allows requests after throttling and then waiting for the next period1856 counts requests from different requesters separately, even from the same IP1857 counts all requests from the same requesters, even via different IPs1858 logs RackAttack info into structured logs1859 behaves like tracking when dry-run mode is set1860 does not throttle the requests when `*` is configured1861 logs RackAttack info into structured logs1862 when configured with the the throttled name in a list1863 does not throttle1864 when the throttle is disabled1865 allows requests over the rate limit1866 with the token in the headers1867 behaves like rate-limited user based token-authenticated requests1868 when the throttle is enabled1869 does not reject requests if the user is in the allowlist1870 when the throttle is enabled1871 rejects requests over the rate limit1872 allows requests after throttling and then waiting for the next period1873 counts requests from different requesters separately, even from the same IP1874 counts all requests from the same requesters, even via different IPs1875 logs RackAttack info into structured logs1876 behaves like tracking when dry-run mode is set1877 does not throttle the requests when `*` is configured1878 logs RackAttack info into structured logs1879 when configured with the the throttled name in a list1880 does not throttle1881 when the throttle is disabled1882 allows requests over the rate limit1883 with a read_api scope1884 behaves like rate-limited user based token-authenticated requests1885 when the throttle is enabled1886 does not reject requests if the user is in the allowlist1887 when the throttle is enabled1888 rejects requests over the rate limit1889 allows requests after throttling and then waiting for the next period1890 counts requests from different requesters separately, even from the same IP1891 counts all requests from the same requesters, even via different IPs1892 logs RackAttack info into structured logs1893 behaves like tracking when dry-run mode is set1894 does not throttle the requests when `*` is configured1895 logs RackAttack info into structured logs1896 when configured with the the throttled name in a list1897 does not throttle1898 when the throttle is disabled1899 allows requests over the rate limit1900 "web" (non-API) requests authenticated with RSS token1901 with the token in the query string1902 behaves like rate-limited user based token-authenticated requests1903 when the throttle is enabled1904 does not reject requests if the user is in the allowlist1905 when the throttle is enabled1906 rejects requests over the rate limit1907 allows requests after throttling and then waiting for the next period1908 counts requests from different requesters separately, even from the same IP1909 counts all requests from the same requesters, even via different IPs1910 logs RackAttack info into structured logs1911 behaves like tracking when dry-run mode is set1912 does not throttle the requests when `*` is configured1913 logs RackAttack info into structured logs1914 when configured with the the throttled name in a list1915 does not throttle1916 when the throttle is disabled1917 allows requests over the rate limit1918 web requests authenticated with regular login1919 behaves like rate-limited web authenticated requests1920 when the throttle is enabled1921 rejects requests over the rate limit1922 does not reject requests if the user is in the allowlist1923 allows requests after throttling and then waiting for the next period1924 counts requests from different users separately, even from the same IP1925 counts all requests from the same user, even via different IPs1926 logs RackAttack info into structured logs1927 behaves like tracking when dry-run mode is set1928 does not throttle the requests when `*` is configured1929 logs RackAttack info into structured logs1930 when configured with the the throttled name in a list1931 does not throttle1932 when the throttle is disabled1933 allows requests over the rate limit1934 protected paths1935 unauthenticated requests1936 when protected paths throttle is disabled1937 allows requests over the rate limit1938 when protected paths throttle is enabled1939 rejects requests over the rate limit1940 allows non-POST requests to protected paths over the rate limit1941 allows POST requests to unprotected paths over the rate limit1942 behaves like tracking when dry-run mode is set1943 does not throttle the requests when `*` is configured1944 logs RackAttack info into structured logs1945 when configured with the the throttled name in a list1946 does not throttle1947 API requests authenticated with personal access token1948 with the token in the query string1949 behaves like rate-limited user based token-authenticated requests1950 when the throttle is enabled1951 does not reject requests if the user is in the allowlist1952 when the throttle is enabled1953 rejects requests over the rate limit1954 allows requests after throttling and then waiting for the next period1955 counts requests from different requesters separately, even from the same IP1956 counts all requests from the same requesters, even via different IPs1957 logs RackAttack info into structured logs1958 behaves like tracking when dry-run mode is set1959 does not throttle the requests when `*` is configured1960 logs RackAttack info into structured logs1961 when configured with the the throttled name in a list1962 does not throttle1963 when the throttle is disabled1964 allows requests over the rate limit1965 with the token in the headers1966 behaves like rate-limited user based token-authenticated requests1967 when the throttle is enabled1968 does not reject requests if the user is in the allowlist1969 when the throttle is enabled1970 rejects requests over the rate limit1971 allows requests after throttling and then waiting for the next period1972 counts requests from different requesters separately, even from the same IP1973 counts all requests from the same requesters, even via different IPs1974 logs RackAttack info into structured logs1975 behaves like tracking when dry-run mode is set1976 does not throttle the requests when `*` is configured1977 logs RackAttack info into structured logs1978 when configured with the the throttled name in a list1979 does not throttle1980 when the throttle is disabled1981 allows requests over the rate limit1982 web requests authenticated with regular login1983 behaves like rate-limited web authenticated requests1984 when the throttle is enabled1985 rejects requests over the rate limit1986 does not reject requests if the user is in the allowlist1987 allows requests after throttling and then waiting for the next period1988 counts requests from different users separately, even from the same IP1989 counts all requests from the same user, even via different IPs1990 logs RackAttack info into structured logs1991 behaves like tracking when dry-run mode is set1992 does not throttle the requests when `*` is configured1993 logs RackAttack info into structured logs1994 when configured with the the throttled name in a list1995 does not throttle1996 when the throttle is disabled1997 allows requests over the rate limit1998 protected paths for get1999 unauthenticated requests2000 when protected paths throttle is disabled2001 allows requests over the rate limit2002 when protected paths throttle is enabled2003 rejects requests over the rate limit2004 allows GET requests to unprotected paths over the rate limit2005 behaves like tracking when dry-run mode is set2006 does not throttle the requests when `*` is configured2007 logs RackAttack info into structured logs2008 when configured with the the throttled name in a list2009 does not throttle2010 API requests authenticated with personal access token2011 with the token in the query string2012 behaves like rate-limited user based token-authenticated requests2013 when the throttle is enabled2014 does not reject requests if the user is in the allowlist2015 when the throttle is enabled2016 rejects requests over the rate limit2017 allows requests after throttling and then waiting for the next period2018 counts requests from different requesters separately, even from the same IP2019 counts all requests from the same requesters, even via different IPs2020 logs RackAttack info into structured logs2021 behaves like tracking when dry-run mode is set2022 does not throttle the requests when `*` is configured2023 logs RackAttack info into structured logs2024 when configured with the the throttled name in a list2025 does not throttle2026 when the throttle is disabled2027 allows requests over the rate limit2028 with the token in the headers2029 behaves like rate-limited user based token-authenticated requests2030 when the throttle is enabled2031 does not reject requests if the user is in the allowlist2032 when the throttle is enabled2033 rejects requests over the rate limit2034 allows requests after throttling and then waiting for the next period2035 counts requests from different requesters separately, even from the same IP2036 counts all requests from the same requesters, even via different IPs2037 logs RackAttack info into structured logs2038 behaves like tracking when dry-run mode is set2039 does not throttle the requests when `*` is configured2040 logs RackAttack info into structured logs2041 when configured with the the throttled name in a list2042 does not throttle2043 when the throttle is disabled2044 allows requests over the rate limit2045 web requests authenticated with regular login2046 behaves like rate-limited web authenticated requests2047 when the throttle is enabled2048 rejects requests over the rate limit2049 does not reject requests if the user is in the allowlist2050 allows requests after throttling and then waiting for the next period2051 counts requests from different users separately, even from the same IP2052 counts all requests from the same user, even via different IPs2053 logs RackAttack info into structured logs2054 behaves like tracking when dry-run mode is set2055 does not throttle the requests when `*` is configured2056 logs RackAttack info into structured logs2057 when configured with the the throttled name in a list2058 does not throttle2059 when the throttle is disabled2060 allows requests over the rate limit2061 Packages API2062 unauthenticated2063 when unauthenticated packages api throttle is disabled2064 allows requests over the rate limit2065 when unauthenticated api throttle is enabled2066 rejects requests over the unauthenticated api rate limit2067 when unauthenticated web throttle is enabled2068 ignores unauthenticated web throttle2069 when unauthenticated packages api throttle is enabled2070 rejects requests over the rate limit2071 when unauthenticated api throttle is lower2072 ignores unauthenticated api throttle2073 behaves like tracking when dry-run mode is set2074 does not throttle the requests when `*` is configured2075 logs RackAttack info into structured logs2076 when configured with the the throttled name in a list2077 does not throttle2078 authenticated2079 with the token in the query string2080 behaves like rate-limited user based token-authenticated requests2081 when the throttle is enabled2082 does not reject requests if the user is in the allowlist2083 when the throttle is enabled2084 rejects requests over the rate limit2085 allows requests after throttling and then waiting for the next period2086 counts requests from different requesters separately, even from the same IP2087 counts all requests from the same requesters, even via different IPs2088 logs RackAttack info into structured logs2089 behaves like tracking when dry-run mode is set2090 does not throttle the requests when `*` is configured2091 logs RackAttack info into structured logs2092 when configured with the the throttled name in a list2093 does not throttle2094 when the throttle is disabled2095 allows requests over the rate limit2096 with the token in the headers2097 behaves like rate-limited user based token-authenticated requests2098 when the throttle is enabled2099 does not reject requests if the user is in the allowlist2100 when the throttle is enabled2101 rejects requests over the rate limit2102 allows requests after throttling and then waiting for the next period2103 counts requests from different requesters separately, even from the same IP2104 counts all requests from the same requesters, even via different IPs2105 logs RackAttack info into structured logs2106 behaves like tracking when dry-run mode is set2107 does not throttle the requests when `*` is configured2108 logs RackAttack info into structured logs2109 when configured with the the throttled name in a list2110 does not throttle2111 when the throttle is disabled2112 allows requests over the rate limit2113 precedence over authenticated api throttle2114 when authenticated packages api throttle is enabled2115 when authenticated api throttle is lower2116 ignores authenticated api throttle2117 when authenticated packages api throttle is disabled2118 when authenticated api throttle is enabled2119 rejects requests over the authenticated api rate limit2120 authenticated via deploy token headers2121 behaves like rate-limited deploy-token-authenticated requests2122 when the throttle is enabled2123 rejects requests over the rate limit2124 allows requests after throttling and then waiting for the next period2125 counts requests from different requesters separately, even from the same IP2126 counts all requests from the same requesters, even via different IPs2127 logs RackAttack info into structured logs2128 behaves like tracking when dry-run mode is set2129 does not throttle the requests when `*` is configured2130 logs RackAttack info into structured logs2131 when configured with the the throttled name in a list2132 does not throttle2133 when the throttle is disabled2134 allows requests over the rate limit2135 dependency proxy2136 getting a manifest2137 behaves like rate-limited user based token-authenticated requests2138 when the throttle is enabled2139 does not reject requests if the user is in the allowlist2140 when the throttle is enabled2141 rejects requests over the rate limit2142 allows requests after throttling and then waiting for the next period2143 counts requests from different requesters separately, even from the same IP2144 counts all requests from the same requesters, even via different IPs2145 logs RackAttack info into structured logs2146 behaves like tracking when dry-run mode is set2147 does not throttle the requests when `*` is configured2148 logs RackAttack info into structured logs2149 when configured with the the throttled name in a list2150 does not throttle2151 when the throttle is disabled2152 allows requests over the rate limit2153 getting a blob2154 behaves like rate-limited user based token-authenticated requests2155 when the throttle is enabled2156 does not reject requests if the user is in the allowlist2157 when the throttle is enabled2158 rejects requests over the rate limit2159 allows requests after throttling and then waiting for the next period2160 counts requests from different requesters separately, even from the same IP2161 counts all requests from the same requesters, even via different IPs2162 logs RackAttack info into structured logs2163 behaves like tracking when dry-run mode is set2164 does not throttle the requests when `*` is configured2165 logs RackAttack info into structured logs2166 when configured with the the throttled name in a list2167 does not throttle2168 when the throttle is disabled2169 allows requests over the rate limit2170 authenticated git lfs requests2171 with regular login2172 behaves like rate-limited web authenticated requests2173 when the throttle is enabled2174 rejects requests over the rate limit2175 does not reject requests if the user is in the allowlist2176 allows requests after throttling and then waiting for the next period2177 counts requests from different users separately, even from the same IP2178 counts all requests from the same user, even via different IPs2179 logs RackAttack info into structured logs2180 behaves like tracking when dry-run mode is set2181 does not throttle the requests when `*` is configured2182 logs RackAttack info into structured logs2183 when configured with the the throttled name in a list2184 does not throttle2185 when the throttle is disabled2186 allows requests over the rate limit2187 with the token in the headers2188 behaves like rate-limited user based token-authenticated requests2189 when the throttle is enabled2190 does not reject requests if the user is in the allowlist2191 when the throttle is enabled2192 rejects requests over the rate limit2193 allows requests after throttling and then waiting for the next period2194 counts requests from different requesters separately, even from the same IP2195 counts all requests from the same requesters, even via different IPs2196 logs RackAttack info into structured logs2197 behaves like tracking when dry-run mode is set2198 does not throttle the requests when `*` is configured2199 logs RackAttack info into structured logs2200 when configured with the the throttled name in a list2201 does not throttle2202 when the throttle is disabled2203 allows requests over the rate limit2204 precedence over authenticated web throttle2205 when authenticated git lfs throttle is enabled2206 when authenticated web throttle is lower2207 ignores authenticated web throttle2208 when authenticated git lfs throttle is disabled2209 when authenticated web throttle is enabled2210 rejects requests over the authenticated web rate limit2211 Files API2212 unauthenticated2213 when unauthenticated files api throttle is disabled2214 allows requests over the rate limit2215 when unauthenticated api throttle is enabled2216 rejects requests over the unauthenticated api rate limit2217 when unauthenticated web throttle is enabled2218 ignores unauthenticated web throttle2219 when unauthenticated files api throttle is enabled2220 rejects requests over the rate limit2221 when unauthenticated api throttle is lower2222 ignores unauthenticated api throttle2223 behaves like tracking when dry-run mode is set2224 does not throttle the requests when `*` is configured2225 logs RackAttack info into structured logs2226 when configured with the the throttled name in a list2227 does not throttle2228 authenticated2229 with the token in the query string2230 behaves like rate-limited user based token-authenticated requests2231 when the throttle is enabled2232 does not reject requests if the user is in the allowlist2233 when the throttle is enabled2234 rejects requests over the rate limit2235 allows requests after throttling and then waiting for the next period2236 counts requests from different requesters separately, even from the same IP2237 counts all requests from the same requesters, even via different IPs2238 logs RackAttack info into structured logs2239 behaves like tracking when dry-run mode is set2240 does not throttle the requests when `*` is configured2241 logs RackAttack info into structured logs2242 when configured with the the throttled name in a list2243 does not throttle2244 when the throttle is disabled2245 allows requests over the rate limit2246 with the token in the headers2247 behaves like rate-limited user based token-authenticated requests2248 when the throttle is enabled2249 does not reject requests if the user is in the allowlist2250 when the throttle is enabled2251 rejects requests over the rate limit2252 allows requests after throttling and then waiting for the next period2253 counts requests from different requesters separately, even from the same IP2254 counts all requests from the same requesters, even via different IPs2255 logs RackAttack info into structured logs2256 behaves like tracking when dry-run mode is set2257 does not throttle the requests when `*` is configured2258 logs RackAttack info into structured logs2259 when configured with the the throttled name in a list2260 does not throttle2261 when the throttle is disabled2262 allows requests over the rate limit2263 precedence over authenticated api throttle2264 when authenticated files api throttle is enabled2265 when authenticated api throttle is lower2266 ignores authenticated api throttle2267 when authenticated files api throttle is disabled2268 when authenticated api throttle is enabled2269 rejects requests over the authenticated api rate limit2270 Deprecated API2271 unauthenticated2272 when unauthenticated deprecated api throttle is disabled2273 allows requests over the rate limit2274 when unauthenticated api throttle is enabled2275 rejects requests over the unauthenticated api rate limit2276 when unauthenticated web throttle is enabled2277 ignores unauthenticated web throttle2278 when unauthenticated deprecated api throttle is enabled2279 rejects requests over the rate limit2280 when group endpoint is given with_project=false2281 permits requests over the rate limit2282 when unauthenticated api throttle is lower2283 ignores unauthenticated api throttle2284 behaves like tracking when dry-run mode is set2285 does not throttle the requests when `*` is configured2286 logs RackAttack info into structured logs2287 when configured with the the throttled name in a list2288 does not throttle2289 authenticated2290 with the token in the query string2291 behaves like rate-limited user based token-authenticated requests2292 when the throttle is enabled2293 does not reject requests if the user is in the allowlist2294 when the throttle is enabled2295 rejects requests over the rate limit2296 allows requests after throttling and then waiting for the next period2297 counts requests from different requesters separately, even from the same IP2298 counts all requests from the same requesters, even via different IPs2299 logs RackAttack info into structured logs2300 behaves like tracking when dry-run mode is set2301 does not throttle the requests when `*` is configured2302 logs RackAttack info into structured logs2303 when configured with the the throttled name in a list2304 does not throttle2305 when the throttle is disabled2306 allows requests over the rate limit2307 with the token in the headers2308 behaves like rate-limited user based token-authenticated requests2309 when the throttle is enabled2310 does not reject requests if the user is in the allowlist2311 when the throttle is enabled2312 rejects requests over the rate limit2313 allows requests after throttling and then waiting for the next period2314 counts requests from different requesters separately, even from the same IP2315 counts all requests from the same requesters, even via different IPs2316 logs RackAttack info into structured logs2317 behaves like tracking when dry-run mode is set2318 does not throttle the requests when `*` is configured2319 logs RackAttack info into structured logs2320 when configured with the the throttled name in a list2321 does not throttle2322 when the throttle is disabled2323 allows requests over the rate limit2324 precedence over authenticated api throttle2325 when authenticated deprecated api throttle is enabled2326 when authenticated api throttle is lower2327 ignores authenticated api throttle2328 when authenticated deprecated api throttle is disabled2329 when authenticated api throttle is enabled2330 rejects requests over the authenticated api rate limit2331 throttle bypass header2332 without the bypass header set2333 behaves like reject requests over the rate limit2334 rejects requests over the rate limit2335 with bypass header set to 12336 does not throttle2337 with bypass header set to some other value2338 behaves like reject requests over the rate limit2339 rejects requests over the rate limit2340 Gitlab::RackAttack::Request#unauthenticated?2341 without authentication2342 request is unauthenticated2343 authenticated by a runner token2344 request is authenticated2345 authenticated with personal access token2346 request is authenticated by token in query string2347 request is authenticated by token in the headers2348 request is authenticated by token in the OAuth headers2349 request is authenticated by token in basic auth2350 authenticated with OAuth token2351 request is authenticated by token in query string2352 request is authenticated by token in the headers2353 authenticated with lfs token2354 request is authenticated by token in basic auth2355 request is not authenticated with API URL2356 authenticated with regular login2357 request is authenticated after login2358 request is not authenticated by credentials in basic auth2359 with POST git-upload-pack2360 request is authenticated by credentials in basic auth2361 with GET info/refs2362 request is authenticated by credentials in basic auth2363Projects::NotesController2364 GET index2365 is expected to have request urgency :low2366 sets the correct feature category2367 passes last_fetched_at from headers to NotesFinder and MergeIntoNotesService2368 returns status 400 when last_fetched_at is not present2369 when user notes_filter is present2370 filters system notes by comments2371 returns all notes2372 does not merge label event notes2373 for a discussion note2374 responds with the expected attributes2375 for a diff discussion note2376 responds with the expected attributes2377 for a commit note2378 when displayed on a merge request2379 responds with the expected attributes2380 when displayed on the commit2381 responds with the expected attributes2382 sets the correct feature category2383 when user cannot read commit2384 renders 4042385 for a snippet note2386 responds with the expected attributes2387 sets the correct feature category2388 for a merge request note2389 responds with the expected attributes2390 sets the correct feature category2391 with cross-reference system note2392 filters notes that the user should not see2393 does not result in N+1 queries2394 POST create2395 is expected to have request urgency :low2396 making the creation request2397 sets the correct feature category2398 on an issue2399 sets the correct feature category2400 on a commit2401 sets the correct feature category2402 on a project snippet2403 sets the correct feature category2404 the project is publically available2405 for HTML2406 returns status 3022407 for JSON2408 returns status 200 for json2409 the note does not have commands_only errors2410 for empty note2411 returns status 422 for json2412 the project is a private project2413 format is2414 returns status 4042415 format is json2416 returns status 4042417 the user is a developer on a private project2418 HTML requests2419 returns status 302 (redirect)2420 JSON requests2421 returns status 2002422 the return_discussion param is set2423 returns discussion JSON when the return_discussion param is set2424 when creating a confidential note2425 when parameter is not provided2426 sets `confidential` and `internal` to `false` in JSON response2427 when is not a confidential note2428 when using the `internal` parameter2429 sets `confidential` and `internal` to `false` in JSON response2430 when using deprecated `confidential` parameter2431 sets `confidential` and `internal` to `false` in JSON response2432 when is a confidential note2433 when using the `internal` parameter2434 sets `confidential` and `internal` to `true` in JSON response2435 when using deprecated `confidential` parameter2436 sets `confidential` and `internal` to `true` in JSON response2437 when `internal` parameter is `true` and `confidential` parameter is `false`2438 uses the `internal` param as source of truth2439 when creating a note with quick actions2440 with commands that return changes2441 includes changes in commands_changes2442 includes command_names2443 with commands that do not return changes2444 does not include changes in commands_changes2445 includes command_names2446 with commands that return an error2447 returns status 422 with error message2448 when the internal project prohibits non-members from accessing merge requests2449 prevents a non-member user from creating a note on one of the project's merge requests2450 when the user is a team member2451 can add comments2452 when the request includes a :in_reply_to_discussion_id designed to fool us2453 prevents the request from adding notes to the spoofed discussion2454 returns an error to the user2455 when the public project prohibits non-members from accessing merge requests2456 prevents a non-member user from creating a note on one of the project's merge requests2457 when the user is a team member2458 can add comments2459 when merge_request_diff_head_sha present2460 returns status 302 for html2461 when creating a comment on a commit with SHA1 starting with a large number2462 creates a note successfully2463 when creating a commit comment from an MR fork2464 when the note_project_id is not correct2465 returns a 4042466 when the user has no access to the fork2467 returns a 4042468 when the user has access to the fork2469 is successful2470 creates the note2471 when target_id and noteable_id do not match2472 uses target_id and ignores noteable_id2473 when the merge request discussion is locked2474 when a noteable is not found2475 returns 404 status2476 when a user is a team member2477 returns 302 status for html2478 returns 200 status for json2479 creates a new note2480 when a user is not a team member2481 returns 404 status2482 does not create a new note2483 behaves like create notes request exceeding rate limit2484 allows user in allow-list to create notes, even if the case is different2485 when rate limiter enabled2486 logs request and declines it when endpoint called more than the threshold2487 when rate limiter is disabled2488 does not log request and does not block the request2489 PUT update2490 is expected to have request urgency :low2491 when the note is valid2492 updates the note2493 returns status 2002494 when the issue is confidential and the user has guest permissions2495 disallows edits2496 returns status 4042497 when there are ActiveRecord validation errors2498 does not update the note2499 returns status 4222500 DELETE destroy2501 is expected to have request urgency :low2502 user is the author of a note2503 returns status 200 for html2504 deletes the note2505 user is not the author of a note2506 returns status 4042507 POST toggle_award_emoji2508 is expected to have request urgency :low2509 toggles the award emoji2510 removes the already awarded emoji2511 marks Todos on the Noteable as done2512 resolving and unresolving2513 POST resolve2514 is expected to have request urgency :low2515 when the user is not authorized to resolve the note2516 returns status 4042517 when the user is authorized to resolve the note2518 when the note is not resolvable2519 returns status 4042520 when the note is resolvable2521 resolves the note2522 sends notifications if all discussions are resolved2523 returns the name of the resolving user2524 returns status 2002525 DELETE unresolve2526 is expected to have request urgency :low2527 when the user is not authorized to resolve the note2528 returns status 4042529 when the user is authorized to resolve the note2530 when the note is not resolvable2531 returns status 4042532 when the note is resolvable2533 unresolves the note2534 returns status 2002535 GET outdated_line_change2536 successfully renders expected JSON response2537 is expected to have request urgency :low2538API::Wikis2539 GET /projects/:id/wikis2540 when wiki is disabled2541 when user is guest2542 returns 404 Project Not Found2543 when user is developer2544 returns 403 Forbidden2545 when user is maintainer2546 returns 403 Forbidden2547 when wiki is available only for team members2548 when user is guest2549 returns 404 Project Not Found2550 when user is developer2551 return the empty list of wiki pages2552 when wiki has pages2553 returns the list of wiki pages without content2554 returns the list of wiki pages with content2555 when user is maintainer2556 return the empty list of wiki pages2557 when wiki has pages2558 returns the list of wiki pages without content2559 returns the list of wiki pages with content2560 when wiki is available for everyone with access2561 when user is guest2562 returns 404 Project Not Found2563 when user is developer2564 return the empty list of wiki pages2565 when wiki has pages2566 returns the list of wiki pages without content2567 returns the list of wiki pages with content2568 when user is maintainer2569 return the empty list of wiki pages2570 when wiki has pages2571 returns the list of wiki pages without content2572 returns the list of wiki pages with content2573 GET /projects/:id/wikis/:slug2574 when wiki is disabled2575 when user is guest2576 returns 404 Project Not Found2577 when user is developer2578 returns 403 Forbidden2579 when user is maintainer2580 returns 403 Forbidden2581 when wiki is available only for team members2582 when user is guest2583 returns 404 Project Not Found2584 when user is developer2585 behaves like returns wiki page2586 is expected to eq "Page 5"2587 when render param is false2588 behaves like returns wiki page2589 is expected to eq "Page 6"2590 when render param is true2591 behaves like returns wiki page2592 is expected to eq "Page 7"2593 when wiki page has versions2594 when version param is not present2595 retrieves the last version2596 when version param is set2597 retrieves the specific page version2598 when version param is not valid or inexistent2599 behaves like wiki API 404 Wiki Page Not Found2600 returns 404 Wiki Page Not Found2601 when page is not existing2602 returns 404 Wiki Page Not Found2603 when user is maintainer2604 behaves like returns wiki page2605 is expected to eq "Page 11"2606 when render param is false2607 behaves like returns wiki page2608 is expected to eq "Page 12"2609 when render param is true2610 behaves like returns wiki page2611 is expected to eq "Page 13"2612 when wiki page has versions2613 when version param is not present2614 retrieves the last version2615 when version param is set2616 retrieves the specific page version2617 when version param is not valid or inexistent2618 behaves like wiki API 404 Wiki Page Not Found2619 returns 404 Wiki Page Not Found2620 when page is not existing2621 returns 404 Wiki Page Not Found2622 when wiki is available for everyone with access2623 when user is guest2624 returns 404 Project Not Found2625 when user is developer2626 behaves like returns wiki page2627 is expected to eq "Page 18"2628 when render param is false2629 behaves like returns wiki page2630 is expected to eq "Page 19"2631 when render param is true2632 behaves like returns wiki page2633 is expected to eq "Page 20"2634 when wiki page has versions2635 when version param is not present2636 retrieves the last version2637 when version param is set2638 retrieves the specific page version2639 when version param is not valid or inexistent2640 behaves like wiki API 404 Wiki Page Not Found2641 returns 404 Wiki Page Not Found2642 when page is not existing2643 returns 404 Wiki Page Not Found2644 when user is maintainer2645 behaves like returns wiki page2646 is expected to eq "Page 24"2647 when render param is false2648 behaves like returns wiki page2649 is expected to eq "Page 25"2650 when render param is true2651 behaves like returns wiki page2652 is expected to eq "Page 26"2653 when wiki page has versions2654 when version param is not present2655 retrieves the last version2656 when version param is set2657 retrieves the specific page version2658 when version param is not valid or inexistent2659 behaves like wiki API 404 Wiki Page Not Found2660 returns 404 Wiki Page Not Found2661 when page is not existing2662 returns 404 Wiki Page Not Found2663 when content contains a reference2664 expands the reference in the content2665 POST /projects/:id/wikis2666 when wiki is disabled2667 when user is guest2668 returns 404 Project Not Found2669 when user is developer2670 returns 403 Forbidden2671 when user is maintainer2672 returns 403 Forbidden2673 when wiki is available only for team members2674 when user is guest2675 returns 404 Project Not Found2676 when user is developer2677 creates the wiki page2678 responds with validation error on empty title2679 responds with validation error on empty content2680 when user is maintainer2681 creates the wiki page2682 responds with validation error on empty title2683 responds with validation error on empty content2684 when wiki is available for everyone with access2685 when user is guest2686 returns 404 Project Not Found2687 when user is developer2688 creates the wiki page2689 responds with validation error on empty title2690 responds with validation error on empty content2691 when user is maintainer2692 creates the wiki page2693 responds with validation error on empty title2694 responds with validation error on empty content2695 PUT /projects/:id/wikis/:slug2696 when wiki is disabled2697 when user is guest2698 returns 404 Project Not Found2699 when user is developer2700 returns 403 Forbidden2701 when user is maintainer2702 returns 403 Forbidden2703 when wiki is available only for team members2704 when user is guest2705 returns 404 Project Not Found2706 when user is developer2707 updates the wiki page2708 updates with wiki with missing title2709 updates with wiki with missing content2710 updates with wiki with missing format2711 when page is not existing2712 returns 404 Wiki Page Not Found2713 when user is maintainer2714 updates the wiki page2715 updates with wiki with missing title2716 updates with wiki with missing content2717 updates with wiki with missing format2718 when page is not existing2719 returns 404 Wiki Page Not Found2720 when wiki is available for everyone with access2721 when user is guest2722 returns 404 Project Not Found2723 when user is developer2724 updates the wiki page2725 updates with wiki with missing title2726 updates with wiki with missing content2727 updates with wiki with missing format2728 when page is not existing2729 returns 404 Wiki Page Not Found2730 when user is maintainer2731 updates the wiki page2732 updates with wiki with missing title2733 updates with wiki with missing content2734 updates with wiki with missing format2735 when page is not existing2736 returns 404 Wiki Page Not Found2737 when wiki belongs to a group project2738 updates the wiki page2739 updates with wiki with missing title2740 updates with wiki with missing content2741 updates with wiki with missing format2742 DELETE /projects/:id/wikis/:slug2743 when wiki is disabled2744 when user is guest2745 returns 404 Project Not Found2746 when user is developer2747 returns 403 Forbidden2748 when user is maintainer2749 returns 403 Forbidden2750 when wiki is available only for team members2751 when user is guest2752 returns 404 Project Not Found2753 when user is developer2754 returns 403 Forbidden2755 when user is maintainer2756 returns 204 No Content2757 when wiki is available for everyone with access2758 when user is guest2759 returns 404 Project Not Found2760 when user is developer2761 returns 403 Forbidden2762 when user is maintainer2763 returns 204 No Content2764 when page is not existing2765 returns 404 Wiki Page Not Found2766 when there is an error deleting the page2767 returns 4222768 when wiki belongs to a group project2769 returns 204 No Content2770 POST /projects/:id/wikis/attachments2771 when wiki is disabled2772 when user is guest2773 returns 404 Project Not Found2774 when user is developer2775 returns 403 Forbidden2776 when user is maintainer2777 returns 403 Forbidden2778 when wiki is available only for team members2779 when user is guest2780 returns 404 Project Not Found2781 when user is developer2782 pushes attachment to the wiki repository2783 responds with validation error on empty file2784 responds with validation error on invalid temp file2785 is backward compatible with regular multipart uploads2786 when user is maintainer2787 pushes attachment to the wiki repository2788 responds with validation error on empty file2789 responds with validation error on invalid temp file2790 is backward compatible with regular multipart uploads2791 when wiki is available for everyone with access2792 when user is guest2793 returns 404 Project Not Found2794 when user is developer2795 pushes attachment to the wiki repository2796 responds with validation error on empty file2797 responds with validation error on invalid temp file2798 is backward compatible with regular multipart uploads2799 when user is maintainer2800 pushes attachment to the wiki repository2801 responds with validation error on empty file2802 responds with validation error on invalid temp file2803 is backward compatible with regular multipart uploads2804API::UsageDataQueries2805 GET /usage_data/usage_data_queries2806 with authentication2807 returns queries if user is admin2808 returns forbidden if user is not admin2809 behaves like GET request permissions for admin mode2810 behaves like when admin2811 behaves like makes request2812/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER2813/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here2814/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT2815/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here2816 returns2817 behaves like makes request2818 returns2819 behaves like when user2820 returns2821 behaves like makes request2822 returns2823 without authentication2824 returns unauthorized2825 when feature_flag is disabled2826 returns not_found for admin2827 returns forbidden for non-admin2828 when querying sql metrics2829/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER2830/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here2831/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT2832/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here2833/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER2834/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here2835/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT2836/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here2837 matches the generated query2838getting an issue list for a project2839 behaves like graphql issue list request spec2840 includes a web_url2841 includes discussion locked2842 behaves like a working graphql query2843 returns a successful response2844 filters2845 when filtering by assignees2846 when both assignee_username filters are provided2847 returns a mutually exclusive param error2848 when both assignee_username and assignee_wildcard_id filters are provided2849 returns a mutually exclusive param error2850 when filtering by assignee_wildcard_id2851 when filtering for all issues with assignees2852 returns all issues with assignees2853 when filtering for issues without assignees2854 returns all issues without assignees2855 when filtering by a negated argument2856 returns correctly filtered issues2857 when filtering by unioned arguments2858 when filtering by assignees2859 returns correctly filtered issues2860 when filtering by labels2861 returns correctly filtered issues2862 when argument is blank2863 does not raise an error2864 when feature flag is disabled2865 returns an error2866 when filtering by a blank negated argument2867 does not raise an error2868 when filtering by reaction emoji2869 value: "thumbsup", issue_list: lazy { voted_issues }2870 returns correctly filtered issues2871 value: "ANY", issue_list: lazy { voted_issues }2872 returns correctly filtered issues2873 value: "any", issue_list: lazy { voted_issues }2874 returns correctly filtered issues2875 value: "AnY", issue_list: lazy { voted_issues }2876 returns correctly filtered issues2877 value: "NONE", issue_list: lazy { no_award_issues }2878 returns correctly filtered issues2879 value: "thumbsdown", issue_list: lazy { [] }2880 returns correctly filtered issues2881 when filtering by search2882 behaves like query with a search term2883 returns only matching issuables2884 when filtering by confidentiality2885 when fetching confidential issues2886 returns only confidential issues2887 when user cannot see confidential issues2888 returns an empty list2889 when fetching non-confidential issues2890 returns only non-confidential issues2891 when user cannot see confidential issues2892 returns an empty list2893 sorting and pagination2894 when sorting by severity2895 when ascending2896 behaves like sorted paginated query2897 behaves like requires variables2898 shared example requires variables to be set2900 when sorting2901 sorts correctly2902 when paginating2903 paginates correctly2904 when descending2905 behaves like sorted paginated query2906 behaves like requires variables2907 shared example requires variables to be set2909 when sorting2910 sorts correctly2911 when paginating2912 paginates correctly2913 when sorting by priority2914 when ascending2915 behaves like sorted paginated query2916 behaves like requires variables2917 shared example requires variables to be set2919 when sorting2920 sorts correctly2921 when paginating2922 paginates correctly2923 when descending2924 behaves like sorted paginated query2925 behaves like requires variables2926 shared example requires variables to be set2928 when sorting2929 sorts correctly2930 when paginating2931 paginates correctly2932 when sorting by due date2933 when ascending2934 behaves like sorted paginated query2935 behaves like requires variables2936 shared example requires variables to be set2938 when sorting2939 sorts correctly2940 when paginating2941 paginates correctly2942 when descending2943 behaves like sorted paginated query2944 behaves like requires variables2945 shared example requires variables to be set2947 when sorting2948 sorts correctly2949 when paginating2950 paginates correctly2951 when sorting by relative position2952 when ascending2953 behaves like sorted paginated query2954 behaves like requires variables2955 shared example requires variables to be set2957 when sorting2958 sorts correctly2959 when paginating2960 paginates correctly2961 when last and sort params are present2962 fetches last elements without error2963 when sorting by label priority2964 when ascending2965 behaves like sorted paginated query2966 behaves like requires variables2967 shared example requires variables to be set2969 when sorting2970 sorts correctly2971 when paginating2972 paginates correctly2973 when descending2974 behaves like sorted paginated query2975 behaves like requires variables2976 shared example requires variables to be set2978 when sorting2979 sorts correctly2980 when paginating2981 paginates correctly2982 when sorting by milestone due date2983 when ascending2984 behaves like sorted paginated query2985 behaves like requires variables2986 shared example requires variables to be set2988 when sorting2989 sorts correctly2990 when paginating2991 paginates correctly2992 when descending2993 behaves like sorted paginated query2994 behaves like requires variables2995 shared example requires variables to be set2997 when sorting2998 sorts correctly2999 when paginating3000 paginates correctly3001 N+1 query checks3002 when requesting `user_notes_count` and `user_discussions_count`3003 prevents N+1 queries3004 when requesting `merge_requests_count`3005 prevents N+1 queries3006 when requesting `timelogs`3007 prevents N+1 queries3008 when requesting `closed_as_duplicate_of`3009 prevents N+1 queries3010 when award emoji votes3011 prevents N+1 queries3012 when requesting labels3013 prevents N+1 queries3014 when confidential issues exist3015 when user can see confidential issues3016 includes confidential issues3017 when user cannot see confidential issues3018 does not include confidential issues3019 when limiting the number of results3020 is expected to check permissions on the first issue only3021 behaves like a working graphql query3022 returns a successful response3023 only returns N issues3024 when no limit is provided3025 returns all issues3026 when the user does not have access to the issue3027 returns no issues3028 when fetching external participants3029 returns the email address3030 when user does not have access to view emails3031 obfuscates the email address3032 when fetching escalation status3033 returns the escalation status values3034 avoids N+1 queries3035 when fetching alert management alert3036 avoids N+1 queries3037 returns the alert data3038 returns the alerts data3039 when fetching customer_relations_contacts3040 avoids N+1 queries3041 when fetching labels3042 avoids N+1 queries3043 when fetching assignees3044 avoids N+1 queries3045 when selecting `related_merge_requests`3046 limits the field to 1 execution3047Projects::MergeRequests::DraftsController3048 GET #index3049 list merge request draft notes for current user3050 POST #create3051 creates a draft note3052 creates draft note with position3053 creates a draft note with quick actions3054 without permissions3055 does not allow draft note creation3056 in a thread3057 creates draft note as a reply3058 creates a draft note that will resolve a thread3059 cannot create more than one draft note per thread3060 commit_id is present3061 value is a commit sha3062 creates the draft note with commit ID3063 value is "undefined"3064 creates the draft note with nil commit ID3065 when the draft note is invalid3066 does not allow draft note creation3067 returns status 4223068 PUT #update3069 updates the draft3070 without permissions3071 does not allow editing draft note belonging to someone else3072 when the draft note is invalid3073 does not update the draft3074 returns status 4223075 POST #publish3076 publishes draft notes with position3077 does nothing if there are no draft notes3078 publishes a draft note with quick actions and applies them3079 publishes all draft notes for an MR3080 can publish just a single draft note3081 without permissions3082 when note belongs to someone else3083 behaves like action that does not allow publishing draft note3084 does not allow publishing draft note3085 when merge request discussion is locked3086 behaves like action that does not allow publishing draft note3087 does not allow publishing draft note3088 when PublishService errors3089 returns message and 500 response3090 when publishing drafts in a thread3091 resolves a thread if the draft note resolves it3092 unresolves a thread if the draft note unresolves it3093 publish with note3094 creates note3095 does not create note when note param is empty3096 tracks merge request activity3097 approve merge request3098 approves merge request3099 does not approve merge request3100 tracks merge request activity3101 when merge request is already approved by user3102 does return 2003103 DELETE #destroy3104 destroys the draft note when ID is given3105 without permissions3106 does not allow destroying a draft note belonging to someone else3107 without permissions3108 does not allow editing draft note belonging to someone else3109 DELETE #discard3110 deletes all DraftNotes belonging to a user in a Merge Request3111 without permissions3112 does not destroys a draft note belonging to someone else3113API::HelmPackages3114 GET /api/v4/projects/:id/packages/helm/:channel/index.yaml3115 with a project id3116 behaves like handling helm chart index requests3117 with valid project3118 personal token3119 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success3120 behaves like process helm service index request3121 for user type guest3122 returns a valid YAML response3123 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success3124 behaves like process helm service index request3125 for user type not_a_member3126 returns a valid YAML response3127 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success3128 behaves like process helm service index request3129 for user type anonymous3130 returns a valid YAML response3131 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success3132 behaves like process helm service index request3133 for user type reporter3134 returns a valid YAML response3135 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3136 behaves like rejects helm packages access3137 for user type guest3138 behaves like returning response status3139 returns forbidden3140 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found3141 behaves like rejects helm packages access3142 for user type not_a_member3143 behaves like returning response status3144 returns not_found3145 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3146 behaves like rejects helm packages access3147 for user type anonymous3148 has the correct response header3149 behaves like returning response status3150 returns unauthorized3151 with access to package registry for everyone3152 behaves like process helm service index request3153 for user type anonymous3154 returns a valid YAML response3155 when an invalid token is passed3156 behaves like returning response status3157 returns unauthorized3158 with job token3159 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success3160 behaves like process helm service index request3161 for user type guest3162 returns a valid YAML response3163 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success3164 behaves like process helm service index request3165 for user type not_a_member3166 returns a valid YAML response3167 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success3168 behaves like process helm service index request3169 for user type anonymous3170 returns a valid YAML response3171 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success3172 behaves like process helm service index request3173 for user type reporter3174 returns a valid YAML response3175 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3176 behaves like rejects helm packages access3177 for user type guest3178 behaves like returning response status3179 returns forbidden3180 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found3181 behaves like rejects helm packages access3182 for user type not_a_member3183 behaves like returning response status3184 returns not_found3185 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3186 behaves like rejects helm packages access3187 for user type anonymous3188 has the correct response header3189 behaves like returning response status3190 returns unauthorized3191 behaves like deploy token for package GET requests3192 with deploy token headers3193 valid token3194 behaves like returning response status3195 returns success3196 invalid token3197 behaves like returning response status3198 returns unauthorized3199 behaves like rejects helm access with unknown project id3200 with an unknown project3201 as anonymous3202 behaves like rejects helm packages access3203 for user type anonymous3204 has the correct response header3205 behaves like returning response status3206 returns unauthorized3207 as authenticated user3208 behaves like rejects helm packages access3209 for user type anonymous3210 behaves like returning response status3211 returns not_found3212 with an url encoded project id3213 behaves like handling helm chart index requests3214 with valid project3215 personal token3216 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success3217 behaves like process helm service index request3218 for user type guest3219 returns a valid YAML response3220 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success3221 behaves like process helm service index request3222 for user type not_a_member3223 returns a valid YAML response3224 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success3225 behaves like process helm service index request3226 for user type anonymous3227 returns a valid YAML response3228 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success3229 behaves like process helm service index request3230 for user type reporter3231 returns a valid YAML response3232 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3233 behaves like rejects helm packages access3234 for user type guest3235 behaves like returning response status3236 returns forbidden3237 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found3238 behaves like rejects helm packages access3239 for user type not_a_member3240 behaves like returning response status3241 returns not_found3242 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3243 behaves like rejects helm packages access3244 for user type anonymous3245 has the correct response header3246 behaves like returning response status3247 returns unauthorized3248 with access to package registry for everyone3249 behaves like process helm service index request3250 for user type anonymous3251 returns a valid YAML response3252 when an invalid token is passed3253 behaves like returning response status3254 returns unauthorized3255 with job token3256 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success3257 behaves like process helm service index request3258 for user type guest3259 returns a valid YAML response3260 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success3261 behaves like process helm service index request3262 for user type not_a_member3263 returns a valid YAML response3264 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success3265 behaves like process helm service index request3266 for user type anonymous3267 returns a valid YAML response3268 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success3269 behaves like process helm service index request3270 for user type reporter3271 returns a valid YAML response3272 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3273 behaves like rejects helm packages access3274 for user type guest3275 behaves like returning response status3276 returns forbidden3277 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found3278 behaves like rejects helm packages access3279 for user type not_a_member3280 behaves like returning response status3281 returns not_found3282 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3283 behaves like rejects helm packages access3284 for user type anonymous3285 has the correct response header3286 behaves like returning response status3287 returns unauthorized3288 behaves like deploy token for package GET requests3289 with deploy token headers3290 valid token3291 behaves like returning response status3292 returns success3293 invalid token3294 behaves like returning response status3295 returns unauthorized3296 behaves like rejects helm access with unknown project id3297 with an unknown project3298 as anonymous3299 behaves like rejects helm packages access3300 for user type anonymous3301 has the correct response header3302 behaves like returning response status3303 returns unauthorized3304 as authenticated user3305 behaves like rejects helm packages access3306 for user type anonymous3307 behaves like returning response status3308 returns not_found3309 with dot in channel3310 behaves like returning response status3311 returns success3312 GET /api/v4/projects/:id/packages/helm/:channel/charts/:file_name.tgz3313 with valid project3314 visibility: :public, user_role: :guest, shared_examples_name: "process helm download content request", expected_status: :success3315 behaves like process helm download content request3316 for user type guest3317 returns expected status and a valid package archive3318 behaves like a package tracking event3319 creates a gitlab tracking event pull_package3320 behaves like bumping the package last downloaded at field3321 bumps last_downloaded_at3322 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm download content request", expected_status: :success3323 behaves like process helm download content request3324 for user type not_a_member3325 returns expected status and a valid package archive3326 behaves like a package tracking event3327 creates a gitlab tracking event pull_package3328 behaves like bumping the package last downloaded at field3329 bumps last_downloaded_at3330 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm download content request", expected_status: :success3331 behaves like process helm download content request3332 for user type anonymous3333 returns expected status and a valid package archive3334 behaves like a package tracking event3335 creates a gitlab tracking event pull_package3336 behaves like bumping the package last downloaded at field3337 bumps last_downloaded_at3338 visibility: :private, user_role: :reporter, shared_examples_name: "process helm download content request", expected_status: :success3339 behaves like process helm download content request3340 for user type reporter3341 returns expected status and a valid package archive3342 behaves like a package tracking event3343 creates a gitlab tracking event pull_package3344 behaves like bumping the package last downloaded at field3345 bumps last_downloaded_at3346 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3347 behaves like rejects helm packages access3348 for user type guest3349 behaves like returning response status3350 returns forbidden3351 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found3352 behaves like rejects helm packages access3353 for user type not_a_member3354 behaves like returning response status3355 returns not_found3356 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3357 behaves like rejects helm packages access3358 for user type anonymous3359 has the correct response header3360 behaves like returning response status3361 returns unauthorized3362 with access to package registry for everyone3363 behaves like process helm download content request3364 for user type anonymous3365 returns expected status and a valid package archive3366 behaves like a package tracking event3367 creates a gitlab tracking event pull_package3368 behaves like bumping the package last downloaded at field3369 bumps last_downloaded_at3370 when an invalid token is passed3371 behaves like returning response status3372 returns unauthorized3373 behaves like deploy token for package GET requests3374 with deploy token headers3375 valid token3376 behaves like returning response status3377 returns success3378 invalid token3379 behaves like returning response status3380 returns unauthorized3381 POST /api/v4/projects/:id/packages/helm/api/:channel/charts/authorize3382 with valid project3383 visibility_level: :public, user_role: :developer, shared_examples_name: "process helm workhorse authorization", expected_status: :success3384 behaves like process helm workhorse authorization3385 for user type developer3386 has the proper status and content type3387 with a request that bypassed gitlab-workhorse3388 behaves like returning response status3389 returns forbidden3390 visibility_level: :public, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3391 behaves like rejects helm packages access3392 for user type reporter3393 behaves like returning response status3394 returns forbidden3395 visibility_level: :public, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3396 behaves like rejects helm packages access3397 for user type not_a_member3398 behaves like returning response status3399 returns forbidden3400 visibility_level: :public, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3401 behaves like rejects helm packages access3402 for user type anonymous3403 has the correct response header3404 behaves like returning response status3405 returns unauthorized3406 visibility_level: :private, user_role: :developer, shared_examples_name: "process helm workhorse authorization", expected_status: :success3407 behaves like process helm workhorse authorization3408 for user type developer3409 has the proper status and content type3410 with a request that bypassed gitlab-workhorse3411 behaves like returning response status3412 returns forbidden3413 visibility_level: :private, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3414 behaves like rejects helm packages access3415 for user type reporter3416 behaves like returning response status3417 returns forbidden3418 visibility_level: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found3419 behaves like rejects helm packages access3420 for user type not_a_member3421 behaves like returning response status3422 returns not_found3423 visibility_level: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3424 behaves like rejects helm packages access3425 for user type anonymous3426 has the correct response header3427 behaves like returning response status3428 returns unauthorized3429 when an invalid token is passed3430 behaves like returning response status3431 returns unauthorized3432 behaves like deploy token for package uploads3433 with deploy token headers3434 valid token3435 behaves like returning response status3436 returns success3437 invalid token3438 behaves like returning response status3439 returns unauthorized3440 behaves like job token for package uploads3441 with job token headers3442 valid token3443 behaves like returning response status3444 returns success3445 invalid token3446 behaves like returning response status3447 returns unauthorized3448 invalid user3449 behaves like returning response status3450 returns success3451 behaves like rejects helm access with unknown project id3452 with an unknown project3453 as anonymous3454 behaves like rejects helm packages access3455 for user type anonymous3456 has the correct response header3457 behaves like returning response status3458 returns unauthorized3459 as authenticated user3460 behaves like rejects helm packages access3461 for user type anonymous3462 behaves like returning response status3463 returns not_found3464 POST /api/v4/projects/:id/packages/helm/api/:channel/charts3465 with valid project3466 visibility_level: :public, user_role: :developer, shared_examples_name: "process helm upload", expected_status: :created3467 behaves like process helm upload3468 for user type developer3469 with object storage disabled3470 without a file from workhorse3471 behaves like returning response status3472 returns bad_request3473 with correct params3474 behaves like package workhorse uploads3475 without a workhorse header3476 logs an error3477 behaves like returning response status3478 returns forbidden3479 behaves like creates helm package files3480 creates package files3481 behaves like a package tracking event3482 creates a gitlab tracking event push_package3483 with object storage enabled3484 and direct upload enabled3485 behaves like creates helm package files3486 creates package files3487 with invalid remote_id: 1231233488 behaves like returning response status3489 returns forbidden3490 with invalid remote_id: ../../1231233491 behaves like returning response status3492 returns forbidden3493 and direct upload disabled3494 behaves like creates helm package files3495 creates package files3496 visibility_level: :public, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3497 behaves like rejects helm packages access3498 for user type reporter3499 behaves like returning response status3500 returns forbidden3501 visibility_level: :public, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3502 behaves like rejects helm packages access3503 for user type not_a_member3504 behaves like returning response status3505 returns forbidden3506 visibility_level: :public, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3507 behaves like rejects helm packages access3508 for user type anonymous3509 has the correct response header3510 behaves like returning response status3511 returns unauthorized3512 visibility_level: :private, user_role: :developer, shared_examples_name: "process helm upload", expected_status: :created3513 behaves like process helm upload3514 for user type developer3515 with object storage disabled3516 without a file from workhorse3517 behaves like returning response status3518 returns bad_request3519 with correct params3520 behaves like package workhorse uploads3521 without a workhorse header3522 logs an error3523 behaves like returning response status3524 returns forbidden3525 behaves like creates helm package files3526 creates package files3527 behaves like a package tracking event3528 creates a gitlab tracking event push_package3529 with object storage enabled3530 and direct upload enabled3531 behaves like creates helm package files3532 creates package files3533 with invalid remote_id: 1231233534 behaves like returning response status3535 returns forbidden3536 with invalid remote_id: ../../1231233537 behaves like returning response status3538 returns forbidden3539 and direct upload disabled3540 behaves like creates helm package files3541 creates package files3542 visibility_level: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden3543 behaves like rejects helm packages access3544 for user type guest3545 behaves like returning response status3546 returns forbidden3547 visibility_level: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found3548 behaves like rejects helm packages access3549 for user type not_a_member3550 behaves like returning response status3551 returns not_found3552 visibility_level: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized3553 behaves like rejects helm packages access3554 for user type anonymous3555 has the correct response header3556 behaves like returning response status3557 returns unauthorized3558 when an invalid token is passed3559 behaves like returning response status3560 returns unauthorized3561 behaves like deploy token for package uploads3562 with deploy token headers3563 valid token3564 behaves like returning response status3565 returns success3566 invalid token3567 behaves like returning response status3568 returns unauthorized3569 behaves like job token for package uploads3570 with job token headers3571 valid token3572 creates a package with build info3573 behaves like returning response status3574 returns success3575 invalid token3576 behaves like returning response status3577 returns unauthorized3578 invalid user3579 behaves like returning response status3580 returns success3581 behaves like rejects helm access with unknown project id3582 with an unknown project3583 as anonymous3584 behaves like rejects helm packages access3585 for user type anonymous3586 has the correct response header3587 behaves like returning response status3588 returns unauthorized3589 as authenticated user3590 behaves like rejects helm packages access3591 for user type anonymous3592 behaves like returning response status3593 returns not_found3594 file size above maximum limit3595 behaves like returning response status3596 returns bad_request3597OmniauthCallbacksController3598 omniauth3599 when authentication succeeds3600 without signed-in user3601 increments Prometheus counter3602 with signed-in user3603 increments Prometheus counter3604 for a deactivated user3605 allows sign in3606 activates the user3607 shows reactivation flash message after logging in3608 when sign in is not valid3609 renders omniauth error page3610 when the user is on the last sign in attempt3611 when using a form based provider3612 locks the user when sign in fails3613 when using a button based provider3614 does not lock the user when sign in fails3615 when sign in fails3616 calls through to the failure handler3617 increments Prometheus counter3618 when a redirect fragment is provided3619 when a redirect url is stored3620 redirects with fragment3621 when a redirect url with a fragment is stored3622 redirects with the new fragment3623 when no redirect url is stored3624 does not redirect with the fragment3625 with strategies3626 for github3627 allows sign in3628 creates an authentication event record3629 behaves like known sign in3630 when the remote IP and the last sign in IP match3631 does not notify the user3632 sets/updates the encrypted cookie3633 when the remote IP and the last sign in IP do not match3634 notifies the user when the cookie is expired3635 notifies the user when the cookie is for another user3636 does not notify the user when remote IP matches an active session3637 does not notify the user when the cookie is present and not expired3638 when the cookie is not previously set3639 notifies the user3640 sets the encrypted cookie3641 when notify_on_unknown_sign_in global setting is false3642 does not notify the user3643 does not set a cookie3644 when user has no linked provider3645 links identity3646 and is not allowed to link the provider3647 returns 4033648 when a user has 2FA enabled3649 when a user is unconfirmed3650 redirects to login page3651 when a user is confirmed3652 returns 200 response3653 for sign up3654 is allowed3655 behaves like Onboarding::Redirectable3656 is expected to redirect to "/dashboard/projects"3657 when the new user already has any accepted group membership3658 redirects to activity group path with a flash message3659 when the new user already has more than 1 accepted group membership3660 redirects to the last member activity group path without a flash message3661 when the member has an orphaned source at the time of registering3662 is expected to redirect to "/dashboard/projects"3663 when OAuth is disabled3664 prevents login via POST3665 shows warning when attempting login3666 allows linking the disabled provider3667 for sign up3668 is prevented3669 for auth03670 does not allow sign in without extern_uid3671 for atlassian_oauth23672 when the user and identity already exist3673 allows sign-in3674 sets the username and caller_id in the context3675 for a new user3676 denies sign-in if sign-up is enabled, but block_auto_created_users is set3677 accepts sign-in if sign-up is enabled3678 denies sign-in if sign-up is not enabled3679 for salesforce3680 without verified email3681 does not allow sign in3682 with verified email3683 allows sign in3684 with snowplow tracking3685 when sign_in3686 does not track the event3687 when sign_up3688 tracks the event3689 #openid_connect3690 allows sign in3691 behaves like known sign in3692 when the remote IP and the last sign in IP match3693 does not notify the user3694 sets/updates the encrypted cookie3695 when the remote IP and the last sign in IP do not match3696 notifies the user when the cookie is expired3697 notifies the user when the cookie is for another user3698 does not notify the user when remote IP matches an active session3699 does not notify the user when the cookie is present and not expired3700 when the cookie is not previously set3701 notifies the user3702 sets the encrypted cookie3703 when notify_on_unknown_sign_in global setting is false3704 does not notify the user3705 does not set a cookie3706 #saml3707 behaves like known sign in3708 when the remote IP and the last sign in IP match3709 does not notify the user3710 sets/updates the encrypted cookie3711 when the remote IP and the last sign in IP do not match3712 notifies the user when the cookie is expired3713 notifies the user when the cookie is for another user3714 does not notify the user when remote IP matches an active session3715 does not notify the user when the cookie is present and not expired3716 when the cookie is not previously set3717 notifies the user3718 sets the encrypted cookie3719 when notify_on_unknown_sign_in global setting is false3720 does not notify the user3721 does not set a cookie3722 for sign up3723 denies login if sign up is enabled, but block_auto_created_users is set3724 accepts login if sign up is enabled3725 denies login if sign up is not enabled3726 with GitLab initiated request3727 when worth two factors3728 expects user to be signed_in3729 when not worth two factors3730 expects user to provide second factor3731 with IdP initiated request3732 lets the user know their account isn't linked yet3733 redirects to profile account page3734 doesn't link a new identity to the user3735 sets the username and caller_id in the context3736 with IDP bypass two factor request3737 behaves like store provider2FA value in session3738 sets the session varible for provider 2FA3739 when by_pass_two_factor_for_current_session feature flag is false3740 does not set the session variable for provider 2FA3741 with a blocked user trying to log in when there are hooks set up3742 is expected not to raise Exception3743 with a non default SAML provider3744 authenticate with SAML module3745 with IDP bypass two factor request3746 behaves like store provider2FA value in session3747 sets the session varible for provider 2FA3748 when by_pass_two_factor_for_current_session feature flag is false3749 does not set the session variable for provider 2FA3750 enable admin mode3751 when user and admin mode is requested by the same user3752 with a regular user3753 cannot be enabled3754 with an admin user3755 when requested first3756 can be enabled3757 when not requested first3758 cannot be enabled3759 when user and admin mode is requested by different users3760 with a regular user3761 cannot be enabled3762 with an admin user3763 when requested first3764 cannot be enabled3765 when not requested first3766 cannot be enabled3767Projects::EnvironmentsController3768 GET index3769 when a request for the HTML is made3770 responds with status code 2003771 expires etag cache to force reload environments list3772 behaves like tracking unique visits3773 tracks unique visit if the format is HTML3774 tracks unique visit if DNT is not enabled3775 does not track unique visit if DNT is enabled3776 does not track unique visit if the format is JSON3777 when requesting JSON response for folders3778 with default parameters3779 responds with a flat payload describing available environments3780 handles search option properly3781 ignores search option if is shorter than a minimum3782 supports search within environment folder name3783 sets the polling interval header3784 can access stop stale environments feature3785 maintainers can access the feature3786 when user is a reporter3787 reporters cannot access the feature3788 when enable_environments_search_within_folder FF is disabled3789 ignores name inside folder3790 validates latest deployment3791 responds with the latest deployment for the environment3792 when a folder-based nested structure is requested3793 responds with a payload containing the latest environment for each folder3794 when requesting available environments scope3795 responds with a payload describing available environments3796 contains values describing environment scopes sizes3797 when requesting stopped environments scope3798 responds with a payload describing stopped environments3799 contains values describing environment scopes sizes3800 GET folder3801 when using default format3802 responds with HTML3803 behaves like tracking unique visits3804 tracks unique visit if the format is HTML3805 tracks unique visit if DNT is not enabled3806 does not track unique visit if DNT is enabled3807 does not track unique visit if the format is JSON3808 when using JSON format3809 sorts the subfolders lexicographically3810 handles search option properly3811 GET show3812 with valid id3813 responds with a status code 2003814 behaves like tracking unique visits3815 tracks unique visit if the format is HTML3816 tracks unique visit if DNT is not enabled3817 does not track unique visit if DNT is enabled3818 does not track unique visit if the format is JSON3819 with invalid id3820 responds with a status code 4043821 GET new3822 responds with a status code 2003823 behaves like tracking unique visits3824 tracks unique visit if the format is HTML3825 tracks unique visit if DNT is not enabled3826 does not track unique visit if DNT is enabled3827 does not track unique visit if the format is JSON3828 GET edit3829 responds with a status code 2003830 behaves like tracking unique visits3831 tracks unique visit if the format is HTML3832 tracks unique visit if DNT is not enabled3833 does not track unique visit if DNT is enabled3834 does not track unique visit if the format is JSON3835 PATCH #update3836 when environment params are valid3837 returns ok and the path to the newly created environment3838 behaves like tracking unique visits3839 tracks unique visit if the format is HTML3840 tracks unique visit if DNT is not enabled3841 does not track unique visit if DNT is enabled3842 does not track unique visit if the format is JSON3843 when environment params are invalid3844 returns bad request3845 when name is passed3846 ignores name3847 PATCH #stop3848 when env not available3849 returns 4043850 when stop action3851 returns job url for a stop action when job is build3852 returns pipeline url for a stop action when job is bridge3853 returns environment url for multiple stop actions3854 behaves like tracking unique visits3855 tracks unique visit if the format is HTML3856 tracks unique visit if DNT is not enabled3857 does not track unique visit if DNT is enabled3858 does not track unique visit if the format is JSON3859 when no stop action3860 returns env url3861 POST #cancel_auto_stop3862 when environment is set as auto-stop3863 behaves like successful response for #cancel_auto_stop3864 when request is html3865 redirects to show page3866 expires etag caching3867 when request is js3868 responds as ok3869 expires etag caching3870 behaves like tracking unique visits3871 tracks unique visit if the format is HTML3872 tracks unique visit if DNT is not enabled3873 does not track unique visit if DNT is enabled3874 does not track unique visit if the format is JSON3875 when user is reporter3876 shows NOT Found3877 when environment is not set as auto-stop3878 behaves like failed response for #cancel_auto_stop3879 when request is html3880 redirects to show page3881 when request is js3882 responds as unprocessable entity3883 GET #terminal3884 with valid id3885 responds with a status code 2003886 loads the terminals for the environment3887 behaves like tracking unique visits3888 tracks unique visit if the format is HTML3889 tracks unique visit if DNT is not enabled3890 does not track unique visit if DNT is enabled3891 does not track unique visit if the format is JSON3892 with invalid id3893 responds with a status code 4043894 GET #terminal_websocket_authorize3895 with valid workhorse signature3896 and valid id3897 returns the first terminal for the environment3898 and invalid id3899 returns 4043900 with invalid workhorse signature3901 aborts with an exception3902 GET #search3903 responds with status code 2003904 returns matched results3905 when query is review3906 returns matched results3907 when query is empty3908 returns matched results3909 when query is review/patch-33910 responds with status code 2043911 when query is partially matched in the middle of environment name3912 responds with status code 2043913 when query contains a wildcard character3914 prevents wildcard injection3915 when query matches case insensitively3916 returns matched results3917 POST #create3918 when environment params are valid3919 returns ok and the path to the newly created environment3920 behaves like tracking unique visits3921 tracks unique visit if the format is HTML3922 tracks unique visit if DNT is not enabled3923 does not track unique visit if DNT is enabled3924 does not track unique visit if the format is JSON3925 when environment params are invalid3926 returns bad request3927Projects::MergeRequests::CreationsController3928 GET new3929 merge request that removes a submodule3930 renders new merge request widget template3931 merge request with some commits3932 shows total commits3933 with artificial limits3934 limits total commits3935 GET diffs3936 when merge request cannot be created3937 does not assign diffs var3938 GET pipelines3939 renders JSON including serialized pipelines3940 GET diff_for_path3941 when both branches are in the same project3942 disables diff notes3943 only renders the diffs for the path given3944 when the source branch is in a different project to the target3945 when the path exists in the diff3946 disables diff notes3947 only renders the diffs for the path given3948 when the path does not exist in the diff3949 returns a 4043950 GET #branch_to3951 fetches the commit if a user has access3952 does not load the commit when the user cannot create_merge_request_in3953 does not load the commit when the user cannot read the project3954 no target_project_id provided3955 selects itself as a target project3956 project is a fork3957 calls to project defaults to selects a correct target project3958 POST create3959 creates merge request3960 when the merge request is not created from the web ide3961 counter is not increased3962 when the merge request is created from the web ide3963 counter is increased3964 GET target_projects3965 returns target projects JSON3966API::Ci::PipelineSchedules3967 GET /projects/:id/pipeline_schedules3968 authenticated user with valid permissions3969 returns list of pipeline_schedules3970 avoids N + 1 queries3971 when scope is active3972 returns matched pipeline schedules3973 when scope is inactive3974 returns matched pipeline schedules3975 authenticated user with invalid permissions3976 does not return pipeline_schedules list3977 unauthenticated user3978 does not return pipeline_schedules list3979 GET /projects/:id/pipeline_schedules/:pipeline_schedule_id3980 with private project3981 behaves like request with schedule ownership3982 authenticated user with pipeline schedule ownership3983 returns pipeline_schedule details3984 behaves like request with project permissions3985 authenticated user with project permisions3986 returns pipeline_schedule details3987 behaves like request with unauthenticated user3988 with unauthenticated user3989 does not return pipeline_schedule3990 behaves like request with non-existing pipeline_schedule3991 responds with 404 Not Found if requesting non-existing pipeline_schedule3992 authenticated user with no project permissions3993 does not return pipeline_schedule3994 authenticated user with insufficient project permissions3995 does not return pipeline_schedule3996 with public project3997 behaves like request with schedule ownership3998 authenticated user with pipeline schedule ownership3999 returns pipeline_schedule details4000 behaves like request with project permissions4001 authenticated user with project permisions4002 returns pipeline_schedule details4003 behaves like request with unauthenticated user4004 with unauthenticated user4005 does not return pipeline_schedule4006 behaves like request with non-existing pipeline_schedule4007 responds with 404 Not Found if requesting non-existing pipeline_schedule4008 authenticated user with no project permissions4009 returns pipeline_schedule with no variables4010 authenticated user with insufficient project permissions4011 returns pipeline_schedule with no variables4012 when public pipelines are disabled4013 authenticated user with no project permissions4014 does not return pipeline_schedule4015 authenticated user with insufficient project permissions4016 returns pipeline_schedule with no variables4017 GET /projects/:id/pipeline_schedules/:pipeline_schedule_id/pipelines4018 with private project4019 behaves like request with schedule ownership4020 authenticated user with pipeline schedule ownership4021 returns the details of pipelines triggered from the pipeline schedule4022 behaves like request with project permissions4023 authenticated user with project permissions4024 returns the details of pipelines triggered from the pipeline schedule4025 behaves like request with unauthenticated user4026 with unauthenticated user4027 does not return the details of pipelines triggered from the pipeline schedule4028 behaves like request with non-existing pipeline_schedule4029 responds with 404 Not Found if requesting for a non-existing pipeline schedule's pipelines4030 authenticated user with no project permissions4031 does not return the details of pipelines triggered from the pipeline schedule4032 authenticated user with insufficient project permissions4033 does not return the details of pipelines triggered from the pipeline schedule4034 with public project4035 behaves like request with schedule ownership4036 authenticated user with pipeline schedule ownership4037 returns the details of pipelines triggered from the pipeline schedule4038 behaves like request with project permissions4039 authenticated user with project permissions4040 returns the details of pipelines triggered from the pipeline schedule4041 behaves like request with unauthenticated user4042 with unauthenticated user4043 does not return the details of pipelines triggered from the pipeline schedule4044 behaves like request with non-existing pipeline_schedule4045 responds with 404 Not Found if requesting for a non-existing pipeline schedule's pipelines4046 authenticated user with no project permissions4047 returns the details of pipelines triggered from the pipeline schedule4048 when public pipelines are disabled4049 authenticated user with no project permissions4050 does not return the details of pipelines triggered from the pipeline schedule4051 POST /projects/:id/pipeline_schedules4052 authenticated user with valid permissions4053 with required parameters4054 creates pipeline_schedule4055 without required parameters4056 does not create pipeline_schedule4057 when cron has validation error4058 does not create pipeline_schedule4059 authenticated user with invalid permissions4060 does not create pipeline_schedule4061 unauthenticated user4062 does not create pipeline_schedule4063 PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id4064 authenticated user with valid permissions4065 updates cron4066 when cron has validation error4067 does not update pipeline_schedule4068 authenticated user with invalid permissions4069 as a project maintainer4070 does not update pipeline_schedule4071 as a project owner4072 does not update pipeline_schedule4073 with no special role4074 does not update pipeline_schedule4075 unauthenticated user4076 does not update pipeline_schedule4077 POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/take_ownership4078 as an authenticated user with valid permissions4079 updates owner4080 as an authenticated user with invalid permissions4081 does not update owner4082 as an unauthenticated user4083 does not update owner4084 as the existing owner of the schedule4085 accepts the request and leaves the schedule unchanged4086 DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id4087 authenticated user with valid permissions4088 deletes pipeline_schedule4089 responds with 404 Not Found if requesting non-existing pipeline_schedule4090 behaves like 412 response4091 for a modified resource4092 returns 412 with a JSON error4093 for an unmodified resource4094 returns 204 with an empty body4095 authenticated user with invalid permissions4096 does not delete pipeline_schedule4097 unauthenticated user4098 does not delete pipeline_schedule4099 POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/play4100 authenticated user with `:play_pipeline_schedule` permission4101 schedules a pipeline worker4102 renders an error if scheduling failed4103 authenticated user with insufficient access4104 responds with not found4105 unauthenticated user4106 responds with unauthorized4107 POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables4108 authenticated user with valid permissions4109 with required parameters4110 creates pipeline_schedule_variable4111 without required parameters4112 does not create pipeline_schedule_variable4113 when key has validation error4114 does not create pipeline_schedule_variable4115 authenticated user with invalid permissions4116 does not create pipeline_schedule_variable4117 unauthenticated user4118 does not create pipeline_schedule_variable4119 PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key4120 authenticated user with valid permissions4121 updates pipeline_schedule_variable4122 authenticated user with invalid permissions4123 does not update pipeline_schedule_variable4124 unauthenticated user4125 does not update pipeline_schedule_variable4126 DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key4127 authenticated user with valid permissions4128 deletes pipeline_schedule_variable4129 responds with 404 Not Found if requesting non-existing pipeline_schedule_variable4130 authenticated user with invalid permissions4131 does not delete pipeline_schedule_variable4132 unauthenticated user4133 does not delete pipeline_schedule_variable4134Projects::FeatureFlagsController4135 GET index4136 when there is no feature flags4137 responds with success4138 for a list of feature flags4139 responds with success4140 when the user is a reporter4141 responds with not found4142 GET #index.json4143 returns all feature flags as json response4144 returns CRUD paths4145 returns the summary of feature flags4146 matches json schema4147 returns the feature flag iid4148 when scope is specified4149 when all feature flags are requested4150 returns all feature flags4151 when enabled feature flags are requested4152 returns enabled feature flags4153 when disabled feature flags are requested4154 returns disabled feature flags4155 with version 1 and 2 feature flags4156 returns all feature flags as json response4157 GET new4158 renders the form4159 GET #show.json4160 returns the feature flag as json response4161 matches json schema4162 routes based on iid4163 when feature flag is not found4164 returns 4044165 when user is reporter4166 returns 4044167 with a version 2 feature flag4168 returns the feature flag4169 returns strategies ordered by id4170 GET edit4171 with new version flags4172 returns successfully4173 POST create.json4174 returns 2004175 creates a new feature flag4176 matches json schema4177 when the same named feature flag has already existed4178 returns 4004179 returns an error message4180 without the active parameter4181 creates a flag with active set to true4182 when user is reporter4183 returns 4044184 when creating a version 2 feature flag4185 creates a new feature flag4186 when creating a version 2 feature flag with strategies and scopes4187 creates a new feature flag with the strategies and scopes4188 when creating a version 2 feature flag with a gradualRolloutUserId strategy4189 creates the new strategy4190 when creating a version 2 feature flag with a flexibleRollout strategy4191 creates the new strategy4192 when creating a version 2 feature flag with a gitlabUserList strategy4193 creates the new strategy4194 when version parameter is invalid4195 returns a 4004196 DELETE destroy.json4197 returns 2004198 deletes one feature flag4199 matches json schema4200 when user is reporter4201 returns 4044202 when the feature flag does not exist4203 returns not found4204 with a version 2 flag4205 deletes the flag4206 PUT update.json4207 with a version 2 feature flag4208 creates a new strategy and scope4209 creates a gradualRolloutUserId strategy4210 creates a flexibleRollout strategy4211 creates a gitlabUserList strategy4212 supports switching the associated user list for an existing gitlabUserList strategy4213 automatically dissociates the user list when switching the type of an existing gitlabUserList strategy4214 does not delete a user list when deleting a gitlabUserList strategy4215 returns not found when trying to create a gitlabUserList strategy with an invalid user list id4216 returns not found when trying to update a gitlabUserList strategy with a user list from another project4217 allows setting multiple gitlabUserList strategies to the same user list4218 updates an existing strategy4219 updates an existing scope4220 deletes an existing strategy4221 deletes an existing scope4222Projects::SnippetsController4223 GET #index4224 fetches snippet counts via the snippet count service4225 behaves like paginated collection4226 renders a page number that is not ouf of range4227 redirects to last_page if page number is larger than number of pages4228 does not redirect to external sites when provided a host field4229 behaves like snippets sort order4230 when no sort param is provided4231 calls SnippetsFinder with updated_at sort option4232 when sort param is provided4233 calls SnippetsFinder with the given sort param4234 behaves like snippets views4235 when rendered4236 avoids N+1 database queries4237 when the project snippet is private4238 when anonymous4239 does not include the private snippet4240 when signed in as the author4241 renders the snippet4242 when signed in as a project member4243 renders the snippet4244 POST #mark_as_spam4245 updates the snippet4246 GET #show4247 when the project snippet is private4248 when anonymous4249 responds with status 4044250 when signed in as the author4251 behaves like successful response4252 renders the snippet4253 when signed in as a project member4254 behaves like successful response4255 renders the snippet4256 when the project snippet does not exist4257 when anonymous4258 responds with status 4044259 when signed in4260 responds with status 4044261 when the project snippet is public4262 when attempting to access from a different project route4263 responds with status 4044264 GET #raw4265 when the project snippet is private4266 when anonymous4267 responds with status 4044268 when signed in as the author4269 behaves like successful response4270 renders the snippet4271 when signed in as a project member4272 behaves like successful response4273 renders the snippet4274 when the project snippet does not exist4275 when anonymous4276 responds with status 4044277 when signed in4278 responds with status 4044279 when the project snippet is public4280 when attempting to access from a different project route4281 responds with status 4044282 GET #show for embeddable content4283 when snippet is private4284 responds with status 4044285 when snippet is public4286 renders the blob from the repository4287 does not show the blobs expanded by default4288 when param expanded is set4289 shows all blobs expanded4290 when the project is private4291 when snippet is public4292 responds with status 4044293 GET #raw4294 when repository is empty4295 CRLF line ending4296 returns LF line endings by default4297 when line_ending parameter present4298 does not convert line endings4299 when repository is not empty4300 sends the blob4301 behaves like project cache control headers4302 when project is public4303 returns cache_control public header to true4304 when project is private4305 returns cache_control public header to true4306 when project is internal4307 returns cache_control public header to true4308 behaves like content disposition headers4309 sets content disposition to inline4310 when inline param is false4311 sets content disposition to attachment4312Groups::DependencyProxyForContainersController4313 GET #manifest4314 feature enabled4315 behaves like without a token4316 is expected to respond with numeric status code unauthorized4317 behaves like without permission4318 with invalid user4319 is expected to respond with numeric status code unauthorized4320 with valid user that does not have access4321 is expected to respond with numeric status code not_found4322 with deploy token from a different group,4323 is expected to respond with numeric status code not_found4324 with revoked deploy token4325 is expected to respond with numeric status code unauthorized4326 with expired deploy token4327 is expected to respond with numeric status code unauthorized4328 with deploy token with insufficient scopes4329 is expected to respond with numeric status code not_found4330 when a group is not found4331 is expected to respond with numeric status code not_found4332 when user is not found4333 is expected to respond with numeric status code unauthorized4334 remote token request fails4335 proxies status from the remote token request4336 remote manifest request fails4337 proxies status from the remote manifest request4338 a valid user4339 behaves like a successful manifest pull4340 sends a file4341 returns Content-Disposition: attachment4342 behaves like a package tracking event4343 creates a gitlab tracking event pull_manifest4344 with workhorse response4345 returns Workhorse send-dependency instructions4346 behaves like with invalid path4347 with invalid image4348 raises an error4349 with invalid tag4350 raises an error4351 a valid deploy token4352 behaves like a successful manifest pull4353 sends a file4354 returns Content-Disposition: attachment4355 pulling from a subgroup4356 behaves like a successful manifest pull4357 sends a file4358 returns Content-Disposition: attachment4359 behaves like not found when disabled4360 feature disabled4361 returns 4044362 GET #blob4363 feature enabled4364 behaves like without a token4365 is expected to respond with numeric status code unauthorized4366 behaves like without permission4367 with invalid user4368 is expected to respond with numeric status code unauthorized4369 with valid user that does not have access4370 is expected to respond with numeric status code not_found4371 with deploy token from a different group,4372 is expected to respond with numeric status code not_found4373 with revoked deploy token4374 is expected to respond with numeric status code unauthorized4375 with expired deploy token4376 is expected to respond with numeric status code unauthorized4377 with deploy token with insufficient scopes4378 is expected to respond with numeric status code not_found4379 when a group is not found4380 is expected to respond with numeric status code not_found4381 when user is not found4382 is expected to respond with numeric status code unauthorized4383 a valid user4384 behaves like a successful blob pull4385 sends a file4386 returns Content-Disposition: attachment4387 behaves like a package tracking event4388 creates a gitlab tracking event pull_blob_from_cache4389 when cache entry does not exist4390 returns Workhorse send-dependency instructions4391 a valid deploy token4392 behaves like a successful blob pull4393 sends a file4394 returns Content-Disposition: attachment4395 pulling from a subgroup4396 behaves like a successful blob pull4397 sends a file4398 returns Content-Disposition: attachment4399 behaves like not found when disabled4400 feature disabled4401 returns 4044402 POST #authorize_upload_blob4403 behaves like without permission4404 with invalid user4405 is expected to respond with numeric status code unauthorized4406 with valid user that does not have access4407 is expected to respond with numeric status code not_found4408 with deploy token from a different group,4409 is expected to respond with numeric status code not_found4410 with revoked deploy token4411 is expected to respond with numeric status code unauthorized4412 with expired deploy token4413 is expected to respond with numeric status code unauthorized4414 with deploy token with insufficient scopes4415 is expected to respond with numeric status code not_found4416 when a group is not found4417 is expected to respond with numeric status code not_found4418 when user is not found4419 is expected to respond with numeric status code unauthorized4420 behaves like authorize action with permission4421 with a valid user4422 sends Workhorse local file instructions4423[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4424[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4425[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4426[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4427[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4428[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4429[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4430[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4431[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4432[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4433[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4434[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4435[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4436[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4437[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4438[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4439[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4440[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4441[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4442[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4443[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4444[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4445[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4446[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4447[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4448[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4449[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4450[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4451[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4452[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4453[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4454[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4455[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4456[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4457[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4458[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4459[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4460[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4461[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4462[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4463[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4464[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4465[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4466[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4467[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4468[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4469[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4470[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4471[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4472[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4473[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4474[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4475[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4476[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4477[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4478[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4479[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4480[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4481[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4482[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4483[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4484[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4485[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4486[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4487[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4488[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4489[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4490[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4491[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4492[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4493[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4494[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4495[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4496[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4497[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4498[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4499[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4500[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4501[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4502[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4503[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4504[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4505[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4506[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4507[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4508[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4509[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4510[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4511[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4512[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4513[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4514[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4515[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4516[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4517[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4518[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4519[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4520[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4521[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4522[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4523[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4524[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4525[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4526[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4527[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4528 sends Workhorse remote object instructions4529 POST #upload_blob4530 behaves like without permission4531 with invalid user4532 is expected to respond with numeric status code unauthorized4533 with valid user that does not have access4534 is expected to respond with numeric status code not_found4535 with deploy token from a different group,4536 is expected to respond with numeric status code not_found4537 with revoked deploy token4538 is expected to respond with numeric status code unauthorized4539 with expired deploy token4540 is expected to respond with numeric status code unauthorized4541 with deploy token with insufficient scopes4542 is expected to respond with numeric status code not_found4543 when a group is not found4544 is expected to respond with numeric status code not_found4545 when user is not found4546 is expected to respond with numeric status code unauthorized4547 with a valid user4548 creates a blob4549 behaves like a package tracking event4550 creates a gitlab tracking event pull_blob4551 behaves like namespace statistics refresh4552 updates namespace statistics4553 POST #authorize_upload_manifest4554 behaves like without permission4555 with invalid user4556 is expected to respond with numeric status code unauthorized4557 with valid user that does not have access4558 is expected to respond with numeric status code not_found4559 with deploy token from a different group,4560 is expected to respond with numeric status code not_found4561 with revoked deploy token4562 is expected to respond with numeric status code unauthorized4563 with expired deploy token4564 is expected to respond with numeric status code unauthorized4565 with deploy token with insufficient scopes4566 is expected to respond with numeric status code not_found4567 when a group is not found4568 is expected to respond with numeric status code not_found4569 when user is not found4570 is expected to respond with numeric status code unauthorized4571 behaves like authorize action with permission4572 with a valid user4573 sends Workhorse local file instructions4574[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4575[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4576[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4577[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4578[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4579[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4580[fog][WARNING] fog: the specified s3 bucket name(dependency_proxy) is not a valid dns name, which will negatively impact performance. For details see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html4581 sends Workhorse remote object instructions4582 POST #upload_manifest4583 behaves like without permission4584 with invalid user4585 is expected to respond with numeric status code unauthorized4586 with valid user that does not have access4587 is expected to respond with numeric status code not_found4588 with deploy token from a different group,4589 is expected to respond with numeric status code not_found4590 with revoked deploy token4591 is expected to respond with numeric status code unauthorized4592 with expired deploy token4593 is expected to respond with numeric status code unauthorized4594 with deploy token with insufficient scopes4595 is expected to respond with numeric status code not_found4596 when a group is not found4597 is expected to respond with numeric status code not_found4598 when user is not found4599 is expected to respond with numeric status code unauthorized4600 with a valid user4601 behaves like a package tracking event4602 creates a gitlab tracking event pull_manifest4603 behaves like with invalid path4604 with invalid image4605 raises an error4606 with invalid tag4607 raises an error4608 with no existing manifest4609 creates a manifest4610 behaves like namespace statistics refresh4611 updates namespace statistics4612 with existing stale manifest4613 updates the existing manifest4614 behaves like namespace statistics refresh4615 updates namespace statistics4616Projects::CommitsController4617 signed in4618 GET commits_root4619 no ref is provided4620 redirects to the default branch of the project4621 GET show4622 loads tags for commits4623 with file path4624 valid branch, valid file4625 is expected to respond with 2004626 HEAD, valid file4627 is expected to respond with 2004628 valid branch, invalid file4629 is expected to respond with 4044630 invalid branch, valid file4631 is expected to respond with 4044632 branch with invalid format, valid file4633 is expected to respond with 4044634 with an invalid limit4635 uses the default limit4636 when limit is a hash4637 uses the default limit4638 when tag has a non-ASCII encoding4639 does not raise an exception4640 when the ref name ends in .atom4641 when the ref does not exist with the suffix4642 renders as atom4643 renders summary with type=html4644 when the ref exists with the suffix4645 renders as HTML4646 when the ref does not exist4647 returns 404 page4648 with markdown cache4649 preloads markdown cache for commits4650 GET /commits/:id/signatures4651 valid branch4652 is expected to respond with 2004653 invalid branch format4654 is expected to respond with 4044655getting user information4656 no parameters are provided4657 mentions the missing required parameters4658 looking up a user by username4659 the user is an active user4660 can access user profile fields4661 behaves like a working graphql query4662 returns a successful response4663 assignedMergeRequests4664 can be found4665 behaves like a working graphql query4666 returns a successful response4667 applying filters4668 filtering by IID without specifying a project4669 return an argument error that mentions the missing fields4670 filtering by project path and IID4671 selects the correct MRs4672 filtering by project path4673 selects the correct MRs4674 filtering by author4675 finds the authored mrs4676 filtering by reviewer4677 finds the assigned mrs4678 the current user does not have access4679 cannot be found4680 reviewRequestedMergeRequests4681 can be found4682 behaves like a working graphql query4683 returns a successful response4684 applying filters4685 filtering by IID without specifying a project4686 return an argument error that mentions the missing fields4687 filtering by project path and IID4688 selects the correct MRs4689 filtering by project path4690 selects the correct MRs4691 filtering by author4692 finds the authored mrs4693 filtering by assignee4694 finds the authored mrs4695 the current user does not have access4696 cannot be found4697 authoredMergeRequests4698 can be found4699 behaves like a working graphql query4700 returns a successful response4701 applying filters4702 filtering by IID without specifying a project4703 return an argument error that mentions the missing fields4704 filtering by assignee4705 finds the assigned mrs4706 filtering by reviewer4707 finds the assigned mrs4708 filtering by project path and IID4709 selects the correct MRs4710 filtering by project path4711 selects the correct MRs4712 the current user does not have access4713 cannot be found4714 the user is private4715 we only request basic fields4716 behaves like a working graphql query4717 returns a successful response4718 we request the groupMemberships4719 cannot be found4720 behaves like a working graphql query4721 returns a successful response4722 the current user is the user4723 can be found4724 we request the projectMemberships4725 cannot be found4726 behaves like a working graphql query4727 returns a successful response4728 the current user is the user4729 can be found4730 we request the authoredMergeRequests4731 cannot be found4732 behaves like a working graphql query4733 returns a successful response4734 the current user is the user4735 can be found4736 we request the assignedMergeRequests4737 cannot be found4738 behaves like a working graphql query4739 returns a successful response4740 the current user is the user4741 can be found4742 the user is project bot4743 we only request basic fields4744 behaves like a working graphql query4745 returns a successful response4746 authored merge requests4747 returns merge requests for the current user for the specified group4748Jira referenced paths4749 behaves like redirects to jira path4750 redirects to canonical path with legacy prefix4751 redirects to canonical path4752 contains @ before the first /4753 behaves like redirects to jira path4754 redirects to canonical path with legacy prefix4755 redirects to canonical path4756 including commit path4757 behaves like redirects to jira path4758 redirects to canonical path with legacy prefix4759 redirects to canonical path4760 including tree path4761 behaves like redirects to jira path4762 redirects to canonical path with legacy prefix4763 redirects to canonical path4764 malicious path4765 behaves like redirects to jira path4766 redirects to canonical path with legacy prefix4767 redirects to canonical path4768 regular paths with legacy prefix4769 jira_path: "/-/jira/group/group_project", redirect_path: "/group/group_project"4770 redirects to canonical path4771 jira_path: "/-/jira/group/group_project/commit/1234567", redirect_path: "/group/group_project/commit/1234567"4772 redirects to canonical path4773 jira_path: "/-/jira/group/group_project/tree/1234567", redirect_path: "/group/group_project/-/tree/1234567"4774 redirects to canonical path4775 when tree path has an @4776 does not do a redirect4777JwtController4778 POST /jwt/auth4779 returns 4044780 authenticating against container registry4781 behaves like container registry authenticator4782 existing service4783 is expected to respond with numeric status code ok4784 returning custom http code4785 is expected to respond with numeric status code http_version_not_supported4786 when using authenticated request4787 using CI token4788 project with enabled CI4789 is expected to have received new(#<Project id:819 namespace605/project-577>>, #<User id:1266 @user618>, #<ActionController::Parameters {"service"=>"container_registry", "auth_type"=>:build} permitted: true>) 1 time4790 behaves like user logging4791 logs username and ID4792 project with disabled CI4793 is expected to respond with numeric status code unauthorized4794 using deploy tokens4795 authenticates correctly4796 does not log a user4797 using personal access tokens4798 authenticates correctly4799 behaves like rejecting a blocked user4800 with blocked user4801 behaves like with invalid credentials4802 returns a generic error message4803 behaves like user logging4804 logs username and ID4805 behaves like a token that expires today4806 fails authentication4807 using User login4808 is expected to have received new(nil, #<User id:1280 @user627>, #<ActionController::Parameters {"service"=>"container_registry", "auth_type"=>:gitlab_or_ldap} permitted: true>) 1 time4809 does not cause session based checks to be activated4810 behaves like rejecting a blocked user4811 with blocked user4812 behaves like with invalid credentials4813 returns a generic error message4814 when passing a flat array of scopes4815 is expected to have received new(nil, #<User id:1283 @user630>, #<ActionController::Parameters {"service"=>"container_registry", "scopes"=>["scope1", "scope2"], "auth_type"=>:gitlab_or_ldap} permitted: true>) 1 time4816 behaves like user logging4817 logs username and ID4818 when user has 2FA enabled4819 without personal token4820 behaves like with invalid credentials4821 returns a generic error message4822 with personal token4823 accepts the authorization attempt4824 using invalid login4825 when internal auth is enabled4826 behaves like with invalid credentials4827 returns a generic error message4828 when internal auth is disabled4829 behaves like with invalid credentials4830 returns a generic error message4831 when using unauthenticated request4832 accepts the authorization attempt4833 allows read access4834 unknown service4835 is expected to respond with numeric status code not_found4836 behaves like parses a space-delimited list of scopes4837 is expected to have received new(nil, #<User id:1287 @user634>, #<ActionController::Parameters {"service"=>"container_registry", "scopes"=>["scope1", "scope2"], "auth_type"=>:gitlab_or_ldap} permitted: true>) 1 time4838 when jwt_auth_space_delimited_scopes feature flag is disabled4839 behaves like container registry authenticator4840 existing service4841 is expected to respond with numeric status code ok4842 returning custom http code4843 is expected to respond with numeric status code http_version_not_supported4844 when using authenticated request4845 using CI token4846 project with enabled CI4847 is expected to have received new(#<Project id:824 namespace610/project-582>>, #<User id:1288 @user635>, #<ActionController::Parameters {"service"=>"container_registry", "auth_type"=>:build} permitted: true>) 1 time4848 behaves like user logging4849 logs username and ID4850 project with disabled CI4851 is expected to respond with numeric status code unauthorized4852 using deploy tokens4853 authenticates correctly4854 does not log a user4855 using personal access tokens4856 authenticates correctly4857 behaves like rejecting a blocked user4858 with blocked user4859 behaves like with invalid credentials4860 returns a generic error message4861 behaves like user logging4862 logs username and ID4863 behaves like a token that expires today4864 fails authentication4865 using User login4866 is expected to have received new(nil, #<User id:1302 @user644>, #<ActionController::Parameters {"service"=>"container_registry", "auth_type"=>:gitlab_or_ldap} permitted: true>) 1 time4867 does not cause session based checks to be activated4868 behaves like rejecting a blocked user4869 with blocked user4870 behaves like with invalid credentials4871 returns a generic error message4872 when passing a flat array of scopes4873 is expected to have received new(nil, #<User id:1305 @user647>, #<ActionController::Parameters {"service"=>"container_registry", "scopes"=>["scope1", "scope2"], "auth_type"=>:gitlab_or_ldap} permitted: true>) 1 time4874 behaves like user logging4875 logs username and ID4876 when user has 2FA enabled4877 without personal token4878 behaves like with invalid credentials4879 returns a generic error message4880 with personal token4881 accepts the authorization attempt4882 using invalid login4883 when internal auth is enabled4884 behaves like with invalid credentials4885 returns a generic error message4886 when internal auth is disabled4887 behaves like with invalid credentials4888 returns a generic error message4889 when using unauthenticated request4890 accepts the authorization attempt4891 allows read access4892 unknown service4893 is expected to respond with numeric status code not_found4894 behaves like parses a space-delimited list of scopes4895 is expected to have received new(nil, #<User id:1309 @user651>, #<ActionController::Parameters {"service"=>"container_registry", "scopes"=>["scope1 scope2"], "auth_type"=>:gitlab_or_ldap} permitted: true>) 1 time4896 authenticating against dependency proxy4897 with personal access token4898 behaves like with valid credentials4899 returns token successfully4900 behaves like a token that expires today4901 fails authentication4902 with user credentials token4903 behaves like with valid credentials4904 returns token successfully4905 with group deploy token4906 behaves like with valid credentials4907 returns token successfully4908 with project deploy token4909 behaves like returning response status4910 returns forbidden4911 with revoked group deploy token4912 behaves like returning response status4913 returns unauthorized4914 with group deploy token with insufficient scopes4915 behaves like returning response status4916 returns unauthorized4917 with invalid credentials4918 behaves like returning response status4919 returns unauthorized4920API::Namespaces4921 GET /namespaces4922 when unauthenticated4923 returns authentication error4924 when authenticated as admin4925 returns correct attributes4926 admin: returns an array of all namespaces4927 admin: returns an array of matched namespaces4928 when authenticated as a regular user4929 returns correct attributes when user can admin group4930 returns correct attributes when user cannot admin group4931 user: returns an array of namespaces4932 admin: returns an array of matched namespaces4933 with owned_only param4934 returns only owned groups4935 GET /namespaces/:id4936 behaves like GET request permissions for admin mode4937 behaves like when admin4938 behaves like makes request4939 returns4940 behaves like makes request4941 returns4942 behaves like when user4943 returns4944 behaves like makes request4945 returns4946 behaves like GET request permissions for admin mode4947 behaves like when admin4948 behaves like makes request4949 returns4950 behaves like makes request4951 returns4952 behaves like when user4953 returns4954 behaves like makes request4955 returns4956 when unauthenticated4957 returns authentication error4958 returns authentication error4959 when authenticated as regular user4960 when requested namespace is not owned by user4961 when requesting group4962 returns not-found4963 when requesting personal namespace4964 returns not-found4965 when requested namespace is owned by user4966 behaves like namespace reader4967 when namespace exists4968 when requested by ID4969 when requesting group4970 behaves like can access namespace4971 returns namespace details4972 when requesting personal namespace4973 behaves like can access namespace4974 returns namespace details4975 when requesting project_namespace4976 returns not-found4977 when requested by path4978 when requesting group4979 behaves like can access namespace4980 returns namespace details4981 when requesting personal namespace4982 behaves like can access namespace4983 returns namespace details4984 when requesting project_namespace4985 returns not-found4986 when namespace doesn't exist4987 returns not-found4988 when authenticated as admin4989 when requested namespace is not owned by user4990 when requesting group4991 behaves like can access namespace4992 returns namespace details4993 when requesting personal namespace4994 behaves like can access namespace4995 returns namespace details4996 when requested namespace is owned by user4997 behaves like namespace reader4998 when namespace exists4999 when requested by ID5000 when requesting group5001 behaves like can access namespace5002 returns namespace details5003 when requesting personal namespace5004 behaves like can access namespace5005 returns namespace details5006 when requesting project_namespace5007 returns not-found5008 when requested by path5009 when requesting group5010 behaves like can access namespace5011 returns namespace details5012 when requesting personal namespace5013 behaves like can access namespace5014 returns namespace details5015 when requesting project_namespace5016 returns not-found5017 when namespace doesn't exist5018 returns not-found5019 GET /namespaces/:namespace/exists5020 when unauthenticated5021 returns authentication error5022 when requesting project_namespace5023 returns authentication error5024 when authenticated5025 returns JSON indicating the namespace exists and a suggestion5026 supports dot in namespace path5027 returns JSON indicating the namespace does not exist without a suggestion5028 checks the existence of a namespace in case-insensitive manner5029 checks the existence within the parent namespace only5030 ignores nested namespaces when checking for top-level namespace5031 ignores paths of groups present in other hierarchies when making suggestions5032 ignores top-level namespaces when checking with parent_id5033 ignores namespaces of other parent namespaces when checking with parent_id5034 behaves like rate limited endpoint5035 when rate limiter enabled5036 logs request and declines it when endpoint called more than the threshold5037 when rate limiter is disabled5038 does not log request and does not block the request5039 when requesting project_namespace5040 returns JSON indicating the namespace does not exist without a suggestion5041Groups::UploadsController5042 behaves like handle uploads5043 behaves like handle uploads authorize5044 POST #authorize5045 when a user is not authorized to upload a file5046 returns 404 status5047 when id is not passed as a param5048 returns 404 status5049 when a user can upload a file5050 and the request bypassed workhorse5051 raises an exception5052 and request is sent by gitlab-workhorse to authorize the request5053 when using local storage5054 behaves like a local file5055 behaves like a valid response5056 responds with status 2005057 uses the gitlab-workhorse content type5058 responds with status 200, location of uploads store and object details5059 when using remote storage5060 when direct upload is enabled5061 behaves like a valid response5062 responds with status 2005063 uses the gitlab-workhorse content type5064 responds with status 200, location of uploads remote store and object details5065 when direct upload is disabled5066 behaves like a local file5067 behaves like a valid response5068 responds with status 2005069 uses the gitlab-workhorse content type5070 responds with status 200, location of uploads store and object details5071 POST #create5072 when a user is not authorized to upload a file5073 returns 404 status5074 when a user can upload a file5075 without params['file']5076 returns an error5077 with valid image5078 returns a content with original filename, new link, and correct type.5079 creates a corresponding Upload record5080 with valid non-image file5081 returns a content with original filename, new link, and correct type.5082 GET #show5083 when the secret is invalid5084 responds with status 4045085 when accessing a specific upload via different model5086 responds with status 4045087 when the upload does not have a MIME type that Rails knows5088 falls back to the null type5089 when the model is public5090 when not signed in5091 when the file exists5092 responds with status 2005093 when neither the uploader nor the model exists5094 responds with status 4045095 when the file doesn't exist5096 responds with status 4045097 when signed in5098 when the file exists5099 responds with status 2005100 when the file doesn't exist5101 responds with status 4045102 when the model is private5103 when not signed in5104 when the file exists5105 when the file is an image5106EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5107EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5108 responds with the appropriate status code5109 when the file is not an image5110EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5111EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5112 redirects to the sign in page5113 when the file doesn't exist5114EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5115EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5116 redirects to the sign in page5117 when signed in5118 when the user has access to the project5119 when the file exists5120EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5121EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5122 responds with status 2005123 when the file doesn't exist5124EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5125EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5126 responds with status 4045127 when the user doesn't have access to the model5128 when the file exists5129 when the file is an image5130EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5131EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5132 responds with the appropriate status code5133 when the file is not an image5134EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5135EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5136 responds with status 4045137 when the file doesn't exist5138EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5139EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5140 responds with status 4045141 with a moved group5142 redirects to a file with the proper extension5143 GET #show5144 when the group is public5145 when not signed in5146 responds with appropriate status5147 when uploader class does not match the upload5148 responds with status 4045149 when filename does not match5150 responds with status 4045151 when signed in5152 when the user doesn't have access to the model5153 responds with status 2005154 when the group is private5155 when not signed in5156EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5157EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5158 responds with appropriate status5159 when signed in5160 when the user doesn't have access to the model5161EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5162EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5163 responds with status 2005164task completion status response5165 task list completion status for issues5166 behaves like taskable completion status provider5167 with a description of ""5168 is expected to respond with numeric status code ok5169 returns the expected results5170 with a description of "Lorem ipsum"5171 is expected to respond with numeric status code ok5172 returns the expected results5173 with a description of "- [ ] task 1\n - [x] task 2 "5174 is expected to respond with numeric status code ok5175 returns the expected results5176 with a description of "- [ ] task 1\n - [ ] task 2 "5177 is expected to respond with numeric status code ok5178 returns the expected results5179 with a description of "- [x] task 1\n - [x] task 2 "5180 is expected to respond with numeric status code ok5181 returns the expected results5182 with a description of "- [ ] task 1"5183 is expected to respond with numeric status code ok5184 returns the expected results5185 with a description of "- [x] task 1"5186 is expected to respond with numeric status code ok5187 returns the expected results5188 task list completion status for merge_requests5189 behaves like taskable completion status provider5190 with a description of ""5191 is expected to respond with numeric status code ok5192 returns the expected results5193 with a description of "Lorem ipsum"5194 is expected to respond with numeric status code ok5195 returns the expected results5196 with a description of "- [ ] task 1\n - [x] task 2 "5197 is expected to respond with numeric status code ok5198 returns the expected results5199 with a description of "- [ ] task 1\n - [ ] task 2 "5200 is expected to respond with numeric status code ok5201 returns the expected results5202 with a description of "- [x] task 1\n - [x] task 2 "5203 is expected to respond with numeric status code ok5204 returns the expected results5205 with a description of "- [ ] task 1"5206 is expected to respond with numeric status code ok5207 returns the expected results5208 with a description of "- [x] task 1"5209 is expected to respond with numeric status code ok5210 returns the expected results5211Projects::Clusters::IntegrationsController5212 POST create_or_update5213 behaves like #create_or_update action5214 authorization5215 behaves like a secure endpoint5216 is allowed for admin when admin mode enabled5217 is denied for admin when admin mode disabled5218 it is allowed for project maintainers5219 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3025220 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3025221 is expected to be denied for developer. Expected: 401,404 Got: 4045222 is expected to be denied for reporter. Expected: 401,404 Got: 4045223 is expected to be denied for guest. Expected: 401,404 Got: 4045224 is expected to be denied for user. Expected: 401,404 Got: 4045225 is expected to be denied for external. Expected: 401,404 Got: 4045226 functionality5227 redirects on success5228 redirects on error5229Emails::PagesDomains5230 #pages_domain_enabled_email5231 is expected to have body including "has been enabled"5232 behaves like a pages domain verification email5233 has the expected content5234 behaves like a pages domain email5235 has the expected content5236 behaves like an email sent to a user5237 is sent to user's global notification email address5238 with group notification email5239 is sent to user's group notification email5240 behaves like an email sent from GitLab5241 has the characteristics of an email sent from GitLab5242 behaves like it should not have Gmail Actions links5243 is expected not to have body including "ViewAction"5244 behaves like a user cannot unsubscribe through footer link5245 does not have a List-Unsubscribe header or a body link5246 #pages_domain_disabled_email5247 is expected to have body including "has been disabled"5248 behaves like a pages domain verification email5249 has the expected content5250 behaves like a pages domain email5251 has the expected content5252 behaves like an email sent to a user5253 is sent to user's global notification email address5254 with group notification email5255 is sent to user's group notification email5256 behaves like an email sent from GitLab5257 has the characteristics of an email sent from GitLab5258 behaves like it should not have Gmail Actions links5259 is expected not to have body including "ViewAction"5260 behaves like a user cannot unsubscribe through footer link5261 does not have a List-Unsubscribe header or a body link5262 behaves like notification about upcoming domain removal5263 when domain is not scheduled for removal5264 asks user to remove it5265 when domain is scheduled for removal5266 notifies user that domain will be removed automatically5267 #pages_domain_verification_succeeded_email5268 is expected to have body including "successfully verified"5269 behaves like a pages domain verification email5270 has the expected content5271 behaves like a pages domain email5272 has the expected content5273 behaves like an email sent to a user5274 is sent to user's global notification email address5275 with group notification email5276 is sent to user's group notification email5277 behaves like an email sent from GitLab5278 has the characteristics of an email sent from GitLab5279 behaves like it should not have Gmail Actions links5280 is expected not to have body including "ViewAction"5281 behaves like a user cannot unsubscribe through footer link5282 does not have a List-Unsubscribe header or a body link5283 #pages_domain_verification_failed_email5284 behaves like a pages domain email5285 has the expected content5286 behaves like an email sent to a user5287 is sent to user's global notification email address5288 with group notification email5289 is sent to user's group notification email5290 behaves like an email sent from GitLab5291 has the characteristics of an email sent from GitLab5292 behaves like it should not have Gmail Actions links5293 is expected not to have body including "ViewAction"5294 behaves like a user cannot unsubscribe through footer link5295 does not have a List-Unsubscribe header or a body link5296 behaves like notification about upcoming domain removal5297 when domain is not scheduled for removal5298 asks user to remove it5299 when domain is scheduled for removal5300 notifies user that domain will be removed automatically5301 #pages_domain_auto_ssl_failed_email5302 says that we failed to obtain certificate5303 behaves like a pages domain email5304 has the expected content5305 behaves like an email sent to a user5306 is sent to user's global notification email address5307 with group notification email5308 is sent to user's group notification email5309 behaves like an email sent from GitLab5310 has the characteristics of an email sent from GitLab5311 behaves like it should not have Gmail Actions links5312 is expected not to have body including "ViewAction"5313 behaves like a user cannot unsubscribe through footer link5314 does not have a List-Unsubscribe header or a body link5315Projects::DesignManagement::Designs::RawImagesController5316 GET #show5317 when the design is not an LFS file5318 serves files with `Content-Disposition` header set to attachment plus the filename5319 serves files with Workhorse5320 behaves like project cache control headers5321 when project is public5322 returns cache_control public header to true5323 when project is private5324 returns cache_control public header to true5325 when project is internal5326 returns cache_control public header to true5327 when the user does not have permission5328 is expected to respond with numeric status code not_found5329 when design does not exist5330 is expected to respond with numeric status code not_found5331 sha param5332 is expected not to eq "c12000b1bfbdff192486174a598f95f28976450a"5333 when sha is the newest version sha5334 behaves like a successful request for sha5335 is expected to respond with numeric status code ok5336 when sha is the oldest version sha5337 behaves like a successful request for sha5338 is expected to respond with numeric status code ok5339 when sha is nil5340 behaves like a successful request for sha5341 is expected to respond with numeric status code ok5342 when the design is an LFS file5343 serves files with `Content-Disposition: attachment`5344 sets appropriate caching headers5345 behaves like a controller that can serve LFS files5346 when lfs is enabled5347 when the project is linked to the LfsObject5348 serves the file5349 and lfs uses object storage5350 responds with redirect to file5351 sets content disposition5352 when project is not linked to the LfsObject5353 does not serve the file5354 when the project is part of a fork network5355 when the project is the root of the fork network5356 behaves like a controller that correctly serves lfs files within a fork network5357 is expected not to eq #<Project id:844 namespace628/project-601>>5358 does not serve the file if no members are linked to the LfsObject5359 serves the file when the fork network root is linked to the LfsObject5360 serves the file when the fork network member is linked to the LfsObject5361 when the project is a downstream member of the fork network5362 behaves like a controller that correctly serves lfs files within a fork network5363 is expected not to eq #<Project id:849 namespace633/project-606>>5364 does not serve the file if no members are linked to the LfsObject5365 serves the file when the fork network root is linked to the LfsObject5366 serves the file when the fork network member is linked to the LfsObject5367 when lfs is not enabled5368 delivers ASCII file (PENDING: Calling spec asked to skip testing LFS disabled scenario)5369Query.ciConfig5370 returns the correct structure5371 behaves like a working graphql query5372 returns a successful response5373 when the config file includes other files5374 returns the correct structure with included files5375 behaves like a working graphql query5376 returns a successful response5377 when the config file has multiple includes5378 returns correct includes5379 behaves like a working graphql query5380 returns a successful response5381 skip_verify_project_sha5382 when the sha is from the main project5383 behaves like when the sha exists in the main project5384 when skip_verify_project_sha is not provided5385 behaves like content is valid5386 returns the expected data without validation errors5387 when skip_verify_project_sha is false5388 behaves like content is valid5389 returns the expected data without validation errors5390 when skip_verify_project_sha is true5391 behaves like content is valid5392 returns the expected data without validation errors5393 when the sha is from a fork project5394 when the sha is associated with a main project ref5395 behaves like when the sha exists in the main project5396 when skip_verify_project_sha is not provided5397 behaves like content is valid5398 returns the expected data without validation errors5399 when skip_verify_project_sha is false5400 behaves like content is valid5401 returns the expected data without validation errors5402 when skip_verify_project_sha is true5403 behaves like content is valid5404 returns the expected data without validation errors5405 when the sha is not associated with a main project ref5406 when skip_verify_project_sha is not provided5407 behaves like returning error5408 returns an error5409 when skip_verify_project_sha is false5410 behaves like returning error5411 returns an error5412 when skip_verify_project_sha is true5413 behaves like content is valid5414 returns the expected data without validation errors5415 when the sha is invalid5416 behaves like when the sha exists in the main project5417 when skip_verify_project_sha is not provided5418 behaves like content is valid5419 returns the expected data without validation errors5420 when skip_verify_project_sha is false5421 behaves like content is valid5422 returns the expected data without validation errors5423 when skip_verify_project_sha is true5424 behaves like content is valid5425 returns the expected data without validation errors5426API::ErrorTracking::ProjectSettings5427 # order random5428 GET /projects/:id/error_tracking/settings5429 when authenticated as maintainer5430 behaves like returns project settings5431 returns correct project settings5432 when integrated_error_tracking feature disabled5433 behaves like returns project settings with false for integrated5434 is expected to eq {"active"=>true, "api_url"=>"https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project",...>"Sentry Project", "sentry_external_url"=>"https://sentrytest.gitlab.com/sentry-org/sentry-project"}5435 without a project setting5436 behaves like returns no project settings5437 returns no project settings5438 when authenticated as developer5439 behaves like returns 4035440 rejects request5441 when authenticated as non-member5442 behaves like returns 4045443 rejects request5444 when unauthenticated5445 behaves like returns 4015446 rejects request5447 PUT /projects/:id/error_tracking/settings5448 when authenticated5449 as maintainer5450 when integrated5451 with existing setting5452 updates a setting5453 without setting5454 creates a setting5455 when ::Projects::Operations::UpdateService responds with an error5456 behaves like returns error from UpdateService5457 returns errors5458 when integrated_error_tracking feature disabled5459 behaves like returns 4045460 rejects request5461 when integrated param is invalid5462 behaves like returns 400 with `integrated` param required or invalid5463 returns 4005464 when integrated param is missing5465 behaves like returns 400 with `integrated` param required or invalid5466 returns 4005467 as developer5468 behaves like returns 4035469 rejects request5470 as non-member5471 behaves like returns 4045472 rejects request5473 when unauthorized5474 behaves like returns 4015475 rejects request5476 PATCH /projects/:id/error_tracking/settings5477 when authenticated as maintainer5478 updates enabled flag5479 with integrated_error_tracking feature enabled5480 behaves like returns project settings5481 returns correct project settings5482 with integrated_error_tracking feature disabled5483 behaves like returns project settings with false for integrated5484 is expected to eq {"active"=>false, "api_url"=>"https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project"...>"Sentry Project", "sentry_external_url"=>"https://sentrytest.gitlab.com/sentry-org/sentry-project"}5485 when active is invalid5486 returns active is invalid if non boolean5487 when active is empty5488 returns 4005489 with integrated param5490 when integrated_error_tracking feature enabled5491 updates the integrated flag5492 without a project setting5493 behaves like returns no project settings5494 returns no project settings5495 when ::Projects::Operations::UpdateService responds with an error5496 when integrated5497 behaves like returns error from UpdateService5498 returns errors5499 without integrated5500 behaves like returns error from UpdateService5501 returns errors5502 when authenticated as developer5503 behaves like returns 4035504 rejects request5505 when authenticated as non-member5506 behaves like returns 4045507 rejects request5508 when unauthenticated5509 behaves like returns 4015510 rejects request5511pypi package details5512 has the correct metadata5513 behaves like a package detail5514 behaves like a working graphql query5515 returns a successful response5516 behaves like matching the package details schema5517 matches the JSON schema5518 with pipelines5519 behaves like a working graphql query5520 returns a successful response5521 behaves like matching the package details schema5522 matches the JSON schema5523 behaves like a package with files5524 has the right amount of files5525 has the basic package files data5526 with package files pending destruction5527 does not return them5528Adding an AwardEmoji5529 when the user does not have permission5530 behaves like a mutation that does not create an AwardEmoji5531 is expected not to change `AwardEmoji.count`5532 behaves like a mutation that returns a top-level access error5533 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"5534 when the user has permission5535 when the given awardable is not an Awardable5536 behaves like a mutation that does not create an AwardEmoji5537 is expected not to change `AwardEmoji.count`5538 behaves like a mutation that returns top-level errors5539 is expected to include /was provided invalid value for awardableId/5540 when the given awardable is an Awardable but still cannot be awarded an emoji5541 behaves like a mutation that does not create an AwardEmoji5542 is expected not to change `AwardEmoji.count`5543 behaves like a mutation that returns top-level errors5544 is expected to contain exactly "You cannot add emoji reactions to this resource."5545 when the given awardable is an Awardable5546 creates an emoji5547 returns the emoji5548 marking Todos as done5549 type: :issue, expectation: true5550 is expected to eq true5551 type: :merge_request, expectation: true5552 is expected to eq true5553 type: :project_snippet, expectation: false5554 is expected to eq false5555 for notes5556 regular Notes5557 marks the Todo as done5558 PersonalSnippet Notes5559 does not mark the Todo as done5560 when there were active record validation errors5561 returns an empty awardEmoji5562 behaves like a mutation that does not create an AwardEmoji5563 is expected not to change `AwardEmoji.count`5564 behaves like a mutation that returns errors in the response5565 is expected to contain exactly "Error 1" and "Error 2"5566RunnerCreate5567 # order random5568 when runnerType is GROUP_TYPE5569 behaves like when user does not have permissions5570 returns an error5571 when user has permissions5572 when user is group owner5573 behaves like when runner is created successfully5574 is expected to start with "glrt-"5575 behaves like when model is invalid returns error5576 is expected to contain exactly "Tags list can not be empty when runner is not allowed to pick untagged jobs" and "Maximum timeout needs to be at least 10 minutes"5577 when group_id is missing5578 returns an error5579 when group_id is malformed5580 returns an error5581 when group_id does not exist5582 returns an error5583 when user is admin in admin mode5584 behaves like when runner is created successfully5585 is expected to start with "glrt-"5586 behaves like when model is invalid returns error5587 is expected to contain exactly "Tags list can not be empty when runner is not allowed to pick untagged jobs" and "Maximum timeout needs to be at least 10 minutes"5588 when runnerType is INSTANCE_TYPE5589 behaves like when user does not have permissions5590 returns an error5591 when user has permissions5592 behaves like when runner is created successfully5593 is expected to start with "glrt-"5594 behaves like when model is invalid returns error5595 is expected to contain exactly "Tags list can not be empty when runner is not allowed to pick untagged jobs" and "Maximum timeout needs to be at least 10 minutes"5596 when runnerType is PROJECT_TYPE5597 behaves like when user does not have permissions5598 returns an error5599 when user has permissions5600 when user is group owner5601 behaves like when runner is created successfully5602 is expected to start with "glrt-"5603 behaves like when model is invalid returns error5604 is expected to contain exactly "Tags list can not be empty when runner is not allowed to pick untagged jobs" and "Maximum timeout needs to be at least 10 minutes"5605 when project_id is missing5606 returns an error5607 when project_id is malformed5608 returns an error5609 when project_id does not exist5610 returns an error5611 when user is admin in admin mode5612 behaves like when runner is created successfully5613 is expected to start with "glrt-"5614 behaves like when model is invalid returns error5615 is expected to contain exactly "Tags list can not be empty when runner is not allowed to pick untagged jobs" and "Maximum timeout needs to be at least 10 minutes"5616Import::BulkImportsController5617 when user is signed in5618 when bulk_import feature flag is enabled5619 POST configure5620 sets the session variables5621 strips access token with spaces5622 passes namespace_id to status5623 when no params are passed in5624 clears out existing session5625 when URL is invalid5626 redirects to initial import page5627 when token scope is invalid5628 redirects to initial import page5629 when instance version is incompatible5630 redirects to initial import page5631 GET status5632 serialized group data5633 returns serialized group data5634 forwards pagination headers5635 when filtering5636 returns filtered result5637 when host url is local or not http5638 denies network request5639 denies network request5640 denies network request5641 when local requests are allowed5643 allows network request5644 with http://192.168.0.15645 allows network request5646 when namespace_id is provided5647 renders 404 if user does not have access to namespace5648 passes namespace to template5649 when connection error occurs5650 returns 4225651 clears session5652 GET realtime_changes5653 returns bulk imports created by current user5654 sets a Poll-Interval header5655 POST create5656 executes BulkImports::CreateService5657 when entity destination_name is specified5658 replaces destination_name with destination_slug and executes BulkImports::CreateService5659 when source type is project5660 returns 4225661 when request exceeds rate limits5662 prevents user from starting a new migration5663 when feature is disabled5664 POST configure5665 returns 4045666 GET status5667 returns 4045668 when user is signed out5669 POST configure5670 redirects to sign in page5671 GET status5672 redirects to sign in page5673getting a tree in a project5674 when path does not exist5675 returns empty tree5676 returns null commit5677 when ref does not exist5678 returns empty tree5679 returns null commit5680 when ref and path exist5681 returns tree5682 returns blobs, subtrees and submodules inside tree5683 returns tree latest commit5684 when the ref points to a gpg-signed commit with a user5685 returns the expected signature data5686 when the ref points to a X.509-signed commit5687 returns the expected signature data5688 returns expected certificate data5689 when the ref points to a SSH-signed commit5690 returns the expected signature data5691 when current user is nil5692 returns empty project5693Deleting a release5694 when the current user has access to update releases5695 deletes the release5696 returns the deleted release5697 does not remove the Git tag associated with the deleted release5698 returns no errors5699 validation5700 when the release does not exist5701 returns the release as null5702 returns an errors-at-data message5703 when the project does not exist5704 behaves like unauthorized or not found error5705 returns a top-level error with message5706 when the current user doesn't have access to update releases5707 when the current user is a Reporter5708 behaves like unauthorized or not found error5709 returns a top-level error with message5710 when the current user is a Guest5711 behaves like unauthorized or not found error5712 returns a top-level error with message5713 when the current user is a public user5714 behaves like unauthorized or not found error5715 returns a top-level error with message5716Bulk update issues5717 # order random5718 when user can update all issues5719 updates all issues5720 when current user cannot read the specified project5721 returns a resource not found error5722 when setting arguments to null or none5723 updates all issues5724 when trying to update more than the max allowed5725 restricts updating more than 100 issues at the same time5726 when user can not update all issues5727 updates only issues that the user can update5728 when the `bulk_update_issues_mutation` feature flag is disabled5729 returns a resource not available error5730 when update service returns an error5731 returns an error message5732Setting Draft status of a merge request5733 returns an error if the user is not allowed to update the merge request5734 marks the merge request as Draft5735 does not do anything if the merge request was already marked `Draft`5736 when passing Draft false as input5737 does not do anything if the merge reqeust was not marked draft5738 unmarks the merge request as `Draft`5739Project Environments query5740 # order random5741 returns the specified fields of the environment5742 user permissions5743 returns user permissions of the environment5744 when fetching user permissions for multiple environments5745 limits the result5746 with cluster agent5747 returns the cluster agent of the environment5748 when the cluster is not authorized in the project5749 does not return the cluster agent of the environment5750 nested environments5751 with query5752 can fetch nested environments5753 when user is guest5754 returns nothing5755 when using pagination5756 supports pagination5757 last deployments of environments5758 returns all last deployments of the environment5759 executes the same number of queries in single environment and multiple environments5760Create an issue5761 the user is not allowed to create an issue5762 behaves like a mutation that returns a top-level access error5763 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"5764 when user has permissions to create an issue5765 creates the issue5766 behaves like has spam protection5767 #check_spam_action_response!5768 when the object is spam (DISALLOW)5769 and no CAPTCHA is available5770 behaves like disallow response5771 informs the client that the request was denied as spam5772 and a CAPTCHA is required5773 behaves like disallow response5774 informs the client that the request was denied as spam5775 when the object is not spam (CONDITIONAL ALLOW)5776 and no CAPTCHA is required5777 does not return a top-level error5778 and a CAPTCHA is required5779 informs the client that the request may be retried after solving the CAPTCHA5780 when creating an issue of type TASK5781 creates an issue with TASK type5782 when position params are provided5783 sets the correct position5784API::GroupContainerRepositories5785 GET /groups/:id/registry/repositories5786 behaves like rejected container repository access5787 for guest5788 returns forbidden5789 behaves like rejected container repository access5790 for anonymous5791 returns not_found5792 behaves like returns repositories for allowed users5793 for reporter5794 returns a list of repositories5795 returns a matching schema5796 behaves like a package tracking event5797 creates a gitlab tracking event list_repositories5798 with invalid group id5799 returns not found5800 with URL-encoded path of the group5801 behaves like rejected container repository access5802 for guest5803 returns forbidden5804 behaves like rejected container repository access5805 for anonymous5806 returns not_found5807 behaves like returns repositories for allowed users5808 for reporter5809 returns a list of repositories5810 returns a matching schema5811Admin::SessionsController5812 #new5813 for regular users5814 shows error page5815 for admin users5816 renders a password form5817 already in admin mode5818 redirects to original location5819 #create5820 for regular users5821 shows error page5822 for admin users5823 sets admin mode with a valid password5824 fails with an invalid password5825 fails if not requested first5826 fails if request period expired5827 when using two-factor authentication via OTP5828 requests two factor after a valid password is provided5829 can login with valid otp5830 cannot login with invalid otp5831 with password authentication disabled5832 allows 2FA stage of non-password login5833 on a read-only instance5834 does not attempt to write to the database with valid otp5835 does not attempt to write to the database with invalid otp5836 does not attempt to write to the database with backup code5837 when using two-factor authentication via WebAuthn5838 requests two factor after a valid password is provided5839 can login with valid auth5840 cannot login with invalid auth5841 #destroy5842 for regular users5843 shows error page5844 for admin users5845 disables admin mode and redirects to main page5846API::Admin::PlanLimits PlanLimits5847 GET /application/plan_limits5848 behaves like GET request permissions for admin mode5849 behaves like when admin5850 behaves like makes request5851 returns5852 behaves like makes request5853 returns5854 behaves like when user5855 returns5856 behaves like makes request5857 returns5858 as an admin user5859 no params5860 returns plan limits5861 correct plan name in params5862 returns plan limits5863 invalid plan name in params5864 returns validation error5865 PUT /application/plan_limits5866 behaves like PUT request permissions for admin mode5867 behaves like when admin5868 behaves like makes request5869 returns5870 behaves like makes request5871 returns5872 behaves like when user5873 returns5874 behaves like makes request5875 returns5876 as an admin user5877 correct params5878 updates multiple plan limits5879 updates single plan limits5880 empty params5881 fails to update plan limits5882 params with wrong type5883 fails to update plan limits5884 missing plan_name in params5885 fails to update plan limits5886 additional undeclared params5887 updates only declared plan limits5888API::Pages5889 DELETE /projects/:id/pages5890 behaves like DELETE request permissions for admin mode5891 behaves like when admin5892 behaves like makes request5893 returns5894 behaves like makes request5895 returns5896 behaves like when user5897 returns5898 behaves like makes request5899 returns5900 when Pages is disabled5901 behaves like 404 response5902 returns 4045903 when Pages is enabled5904 when Pages are deployed5905 returns 2045906 removes the pages5907 when pages are not deployed5908 returns 2045909 when there is no project5910 returns 4045911Converts a work item to a new type5912 # order random5913 when user has permissions to convert the work item type5914 converts the work item5915 when work item type does not exist5916 returns an error5917 behaves like has spam protection5918 #check_spam_action_response!5919 when the object is spam (DISALLOW)5920 and no CAPTCHA is available5921 behaves like disallow response5922 informs the client that the request was denied as spam5923 and a CAPTCHA is required5924 behaves like disallow response5925 informs the client that the request was denied as spam5926 when the object is not spam (CONDITIONAL ALLOW)5927 and no CAPTCHA is required5928 does not return a top-level error5929 and a CAPTCHA is required5930 informs the client that the request may be retried after solving the CAPTCHA5931 when user is not allowed to update a work item5932 behaves like a mutation that returns a top-level access error5933 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"5934Query.project(fullPath).pipelines.job(id)5935 scalar fields5936 retrieves scalar fields5937 when fetching by name5938 retrieves scalar fields5939 .detailedStatus5940 retrieves detailed status5941 .stage5942 returns appropriate data5943Admin::ImpersonationsController5944 DELETE destroy5945 when not signed in5946 redirects to the sign in page5947 when signed in5948 when not impersonating5949 responds with status 4045950 doesn't sign us in5951 when impersonating5952 when the impersonator is not admin (anymore)5953 responds with status 4045954 doesn't sign us in as the impersonator5955 when the impersonator is admin5956 when the impersonator is blocked5957 responds with status 4045958 doesn't sign us in as the impersonator5959 when the impersonator is not blocked5960 behaves like successfully stops impersonating5961 redirects to the impersonated user's page5962 signs us in as the impersonator5963 clears token session keys5964 and the user has a temporary oauth e-mail address5965 behaves like successfully stops impersonating5966 redirects to the impersonated user's page5967 signs us in as the impersonator5968 clears token session keys5969getting Alert Management Alert counts by status5970 with alert data5971 without project permissions5972 is expected to equal nil5973 behaves like a working graphql query5974 returns a successful response5975 with project permissions5976 returns the correct counts for each status5977 behaves like a working graphql query5978 returns a successful response5979 with search criteria5980 returns the correct counts for each status5981 behaves like a working graphql query5982 returns a successful response5983Reposition and move issue within board lists5984 when the board_id is not a board5985 behaves like returns an error5986 fails with error5987 when the user cannot read the issue board5988 behaves like returns an error5989 fails with error5990 when user has access to resources5991 when repositioning an issue5992 repositions an issue5993 when moving an issue to a different list5994 moves issue to a different list5995 when moving an issue using position_in_list5996 repositions an issue5997 when user has no access to resources5998 the user is not allowed to update the issue5999 behaves like returns an error6000 fails with error6001 when the user can not read board6002 behaves like returns an error6003 fails with error6004JiraConnect::EventsController6005 #installed6006 saves the jira installation data6007 saves the correct values6008 behaves like verifies asymmetric JWT token6009 when token is valid6010 renders successful6011 when token is invalid6012 renders unauthorized6013 when the shared_secret param is missing6014 returns 4226015 when an installation already exists6016 validates the JWT token in authorization header and returns 200 without creating a new installation6017 uses the JiraConnectInstallations::UpdateService6018 when parameters include a new shared secret and base_url6019 updates the installation6020 when the new base_url is invalid6021 renders 4226022 when enforce_jira_base_url_https6023 behaves like generates JWT validation claims6024 is expected to receive new(anything, {:aud=>"https://test.host/-/jira_connect", :iss=>anything, :qsh=>anything}) 1 time6025 when not enforce_jira_base_url_https6026 behaves like generates JWT validation claims6027 is expected to receive new(anything, {:aud=>"http://test.host/-/jira_connect", :iss=>anything, :qsh=>anything}) 1 time6028 #uninstalled6029 behaves like verifies asymmetric JWT token6030 when token is valid6031 renders successful6032 when token is invalid6033 renders unauthorized6034 when JWT is invalid6035 does not delete the installation6036 when JWT is valid6037 calls the DestroyService and returns ok in case of success6038 calls the DestroyService and returns unprocessable_entity in case of failure6039Emails::Releases6040 #new_release_email6041 contains a message with the new release tag6042 contains the release assets6043 contains the release notes6044 behaves like an email sent from GitLab6045 has the characteristics of an email sent from GitLab6046 behaves like an email with X-GitLab headers containing project details6047 has X-GitLab-Project headers6048 when the release has a name6049 shows the correct subject6050 when the release does not have a name6051 shows the correct subject6052 release notes with attachment6053 renders absolute links6054Getting designs related to an issue6055 is not too deep for anonymous users6056 behaves like a working graphql query6057 returns a successful response6058 behaves like a noteable graphql type we can query6059 .discussions6060 can fetch discussions6061 can fetch discussion noteable6062 .notes6063 can fetch notes6064Clusters::Agents::DashboardController6065 # order random6066 GET show6067 with authorized user6068 sets the kas cookie6069 returns not found6070 with k8s_dashboard feature flag disabled6071 does not set the kas cookie6072 returns not found6073 with unauthorized user6074 does not set the kas cookie6075 returns not found6076Project.user_access_authorized_agents6077 # order random6078 with group authorization6079 returns the authorized agent6080 when user is developer in the agent management project6081 returns the project information as well6082 when user is reporter6083 returns nothing6084 with project authorization6085 returns the authorized agent6086 when user is developer in the agent management project6087 returns the project information as well6088 when user is reporter6089 returns nothing6090 when deployment project is not authorized to user_access to the agent6091 returns empty6092IssuableCollections6093 #page_count_for_relation6094 row count is known6095 returns the number of pages6096 row_count is unknown6097 page_param: nil, expected: 26098 returns current page + 1 if the row count is unknown6099 page_param: 1, expected: 26100 returns current page + 1 if the row count is unknown6101 page_param: "1", expected: 26102 returns current page + 1 if the row count is unknown6103 page_param: 2, expected: 36104 returns current page + 1 if the row count is unknown6105 #finder_options6106 scalar params6107 only allows allowlisted params6108 array params6109 only allows allowlisted params6110 search using an issue iid6111 mutates the search into a filter by iid6112Projects::Analytics::CycleAnalytics::SummaryController6113 GET "show"6114 succeeds6115 when analytics_disabled features are disabled6116 renders 4046117 when user is not part of the project6118 renders 4046119 when filters are applied6120 filters by author username6121 filters by milestone title6122API::Ci::Runner6123 /api/v4/runners6124 POST /api/v4/runners/verify6125 behaves like runner migrations backoff6126 when executing locking database migrations6127 returns 429 error6128 with runner_migrations_backoff disabled6129 does not return 4296130 when no token is provided6131 returns 400 error6132 when invalid token is provided6133 returns 403 error6134 when valid token is provided6135 verifies Runner credentials6136 updates contacted_at6137 with glrt-prefixed token6138 verifies Runner credentials6139 does not update contacted_at6140 with non-expiring runner token6141 verifies Runner credentials6142 behaves like storing arguments in the application context for the API6143 places the expected params in the application context6144 when system_id is provided6145 creates a runner_manager6146 when non-expired token is provided6147 verifies Runner credentials6148 when expired token is provided6149 does not verify Runner credentials6150ChecksCollaboration6151 #can_collaborate_with_project?6152 is true if the user can push to the project6153 is true when the user can push to a branch of the project6154 when the user has forked the project6155 is true6156 is false when the project is archived6157Query.project.job6158 # order random6159 when the user can read jobs on the project6160 returns the job that matches the given ID6161 when no job matches the given ID6162 returns null6163 when the user cannot read jobs on the project6164 returns null6165Subscriptions::Notes::Deleted6166 # order random6167 when user is authorized6168 receives note id that is removed6169 when last discussion note is deleted6170 receives note id that is removed6171 when note is confidential6172 receives note id that is removed6173 when user is unauthorized6174 does not receive any data6175Projects::Aws::ConfigurationController6176 # order random6177 when accessed by authorized members6178 returns successful6179 when feature flag is disabled6180 renders not found6181 when accessed by unauthorized members6182 returns not found on GET request6183groups autocomplete6184 #issues6185 issue_types: nil, expected: :all6186 returns the correct response6187 issue_types: "", expected: :all6188 returns the correct response6189 issue_types: "invalid", expected: :none6190 returns the correct response6191 issue_types: "issue", expected: :issue6192 returns the correct response6193 issue_types: "incident", expected: :incident6194 returns the correct response6195 #milestones6196 returns correct response6197Mutations::Achievements::Delete6198 # order random6199 when the user does not have permission6200 does not revoke any achievements6201 behaves like a mutation that returns a top-level access error6202 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"6203 when the user has permission6204 deletes the achievement6205 when the params are invalid6206 returns the validation error6207 when the achievement_id is invalid6208 returns the validation error6209 when the feature flag is disabled6210 returns the relevant error6211Admin::DashboardController6212 #index6213 retrieves Redis versions6214 with pending_delete projects6215 does not retrieve projects that are pending deletion6216getting branch protection for a branch rule6217 # order random6218 when the user does have read_protected_branch abilities6219 includes allow_force_push6220 behaves like a working graphql query6221 returns a successful response6222 when the user does not have read_protected_branch abilities6223 is expected not to be present6224 behaves like a working graphql query6225 returns a successful response6226Repositioning an ImageDiffNote6227 updates the note6228 when the note is not a DiffNote6229 behaves like a mutation that returns top-level errors6230 is expected to include /does not represent an instance of DiffNote/6231 when a position arg is nil6232 does not set the property to nil6233 when all position args are nil6234 behaves like a mutation that returns top-level errors6235 is expected to include /At least one property of `UpdateDiffImagePositionInput` must be set/6236abuse_report6237 # order random6238 returns abuse report with labels6239 behaves like a working graphql query that returns data6240 contains data6241 behaves like a working graphql query6242 returns a successful response6243 when current user is not an admin6244 does not contain any data6245 behaves like a working graphql query6246 returns a successful response6247AcmeChallengesController6248 #show6249 with right domain and token6250 renders acme challenge file content6251 when domain is invalid6252 renders not found6253 when token is invalid6254 renders not found6255GroupMember6256 behaves like a working graphql query6257 returns a successful response6258 behaves like a working membership object query6259 contains edge to expected project6260 contains correct access level6261PipelineSchedulecreate6262 # order random6263 when authorized6264 when success6265 is expected to eq []6266 when failure6267 when params are invalid6268 is expected to contain exactly "Cron is invalid syntax" and "Cron timezone is invalid syntax"6269 when variables have duplicate name6270 returns error6271 when unauthorized6272 behaves like a mutation on an unauthorized resource6273 behaves like a mutation that returns top-level errors6274 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"6275getting a list of work item types for a project6276 when user has access to the project6277 returns all default work item types6278 behaves like a working graphql query6279 returns a successful response6280 when user doesn't have access to the project6281 does not return the project6282Delete a timelog6283 when the user is not allowed to delete a timelog6284 behaves like a mutation that returns a top-level access error6285 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"6286 when user has permissions to delete a timelog6287 deletes the timelog6288getting a list of work item types for a group6289 when user has access to the group6290 returns all default work item types6291 behaves like a working graphql query6292 returns a successful response6293 when user doesn't have access to the group6294 does not return the group6295Removing an incident timeline event6296 # order random6297 removes incident timeline event6298MetricsController6299 #index6300 accessed from whitelisted ip6301 behaves like providing metrics6302 returns prometheus metrics6303 prometheus metrics are disabled6304 returns proper response6305 accessed from ip in whitelisted range6306 behaves like providing metrics6307 returns prometheus metrics6308 prometheus metrics are disabled6309 returns proper response6310 accessed from not whitelisted ip6311 returns the expected error response6312 #system6313 accessed from whitelisted ip6314 behaves like providing system stats6315 renders system stats JSON6316 accessed from ip in whitelisted range6317 behaves like providing system stats6318 renders system stats JSON6319 accessed from not whitelisted ip6320 returns the expected error response6321SpammableActions::CaptchaCheck::HtmlFormatActionsSupport6322 #convert_html_spam_params_to_headers6323 converts params to headers6324 #with_captcha_check_html_format6325 when spammable.render_recaptcha? is true6326 renders :captcha_check6327 when spammable.render_recaptcha? is false6328 yields to block6329MetricsController6330 # order random6331 behaves like Base action controller6332 security headers6333 Cross-Origin-Opener-Policy6334 sets the header6335 when coop_header feature flag is disabled6336 does not set the header6337PlanningHierarchy6338 GET #planning_hierarchy6339 renders planning hierarchy6340RedirectsForMissingPathOnTree6341 #redirect_to_root_path6342 redirects to the tree path with a notice6343Projects::PipelinesSettingsController6344 GET show6345 redirects with 302 status code6346getting a repository in a project6347 behaves like a working graphql query6348 returns a successful response6349Admin::Topics::AvatarsController6350 removes avatar from DB by calling destroy6351Analytics::CycleAnalytics::ValueStreamActions6352 # order random6353 #namespace6354 raises NotImplementedError6355Knapsack report was generated. Preview:6356{6357 "spec/requests/api/projects_spec.rb": 336.73490678000053,6358 "spec/requests/api/branches_spec.rb": 187.41811543199947,6359 "spec/requests/rack_attack_global_spec.rb": 142.53706979299932,6360 "spec/controllers/projects/notes_controller_spec.rb": 123.7668682500007,6361 "spec/requests/api/wikis_spec.rb": 78.29951204199824,6362 "spec/requests/api/usage_data_queries_spec.rb": 72.03200376099994,6363 "spec/requests/api/graphql/project/issues_spec.rb": 57.07294570100021,6364 "spec/controllers/projects/merge_requests/drafts_controller_spec.rb": 47.18806107000091,6365 "spec/requests/api/helm_packages_spec.rb": 30.93652722600018,6366 "spec/controllers/omniauth_callbacks_controller_spec.rb": 30.274949575999926,6367 "spec/controllers/projects/environments_controller_spec.rb": 22.29731100599929,6368 "spec/controllers/projects/merge_requests/creations_controller_spec.rb": 34.920851090000724,6369 "spec/requests/api/ci/pipeline_schedules_spec.rb": 28.722552847999395,6370 "spec/controllers/projects/feature_flags_controller_spec.rb": 16.60029073899932,6371 "spec/controllers/projects/snippets_controller_spec.rb": 22.309279069000695,6372 "spec/controllers/groups/dependency_proxy_for_containers_controller_spec.rb": 16.98672431399973,6373 "spec/controllers/projects/commits_controller_spec.rb": 23.32130183299887,6374 "spec/requests/api/graphql/user_query_spec.rb": 18.15357050700004,6375 "spec/requests/jira_routing_spec.rb": 17.318071083000177,6376 "spec/requests/jwt_controller_spec.rb": 15.809513611999137,6377 "spec/requests/api/namespaces_spec.rb": 12.761863120000271,6378 "spec/controllers/groups/uploads_controller_spec.rb": 13.30918365999969,6379 "spec/requests/api/task_completion_status_spec.rb": 11.48044827800004,6380 "spec/requests/projects/clusters/integrations_controller_spec.rb": 13.183113562001381,6381 "spec/mailers/emails/pages_domains_spec.rb": 6.434129260998816,6382 "spec/controllers/projects/design_management/designs/raw_images_controller_spec.rb": 10.47752293999838,6383 "spec/requests/api/graphql/ci/config_spec.rb": 8.91969021299883,6384 "spec/requests/api/error_tracking/project_settings_spec.rb": 5.51005721600086,6385 "spec/requests/api/graphql/packages/pypi_spec.rb": 9.837691138000082,6386 "spec/requests/api/graphql/mutations/award_emojis/add_spec.rb": 9.004049974999361,6387 "spec/requests/api/graphql/mutations/ci/runner/create_spec.rb": 8.654733606999798,6388 "spec/controllers/import/bulk_imports_controller_spec.rb": 3.7552654490009445,6389 "spec/requests/api/graphql/project/tree/tree_spec.rb": 6.981818261001536,6390 "spec/requests/api/graphql/mutations/releases/delete_spec.rb": 8.396884600000703,6391 "spec/requests/api/graphql/mutations/issues/bulk_update_spec.rb": 6.77003551999951,6392 "spec/requests/api/graphql/mutations/merge_requests/set_draft_spec.rb": 7.783088346999648,6393 "spec/requests/api/graphql/project/environments_spec.rb": 6.695884415999899,6394 "spec/requests/api/graphql/mutations/issues/create_spec.rb": 6.48225225600072,6395 "spec/requests/api/group_container_repositories_spec.rb": 6.33191898000041,6396 "spec/controllers/admin/sessions_controller_spec.rb": 4.4992215980000765,6397 "spec/requests/api/admin/plan_limits_spec.rb": 2.786761014000149,6398 "spec/requests/api/pages/pages_spec.rb": 3.084547427999496,6399 "spec/requests/api/graphql/mutations/work_items/convert_spec.rb": 4.381084607999583,6400 "spec/requests/api/graphql/ci/job_spec.rb": 4.205953536000379,6401 "spec/controllers/admin/impersonations_controller_spec.rb": 3.9967380950001825,6402 "spec/requests/api/graphql/project/alert_management/alert_status_counts_spec.rb": 2.6993139999995037,6403 "spec/requests/api/graphql/mutations/boards/issues/issue_move_list_spec.rb": 3.5572586380003486,6404 "spec/controllers/jira_connect/events_controller_spec.rb": 1.9702078549998987,6405 "spec/mailers/emails/releases_spec.rb": 3.084685122999872,6406 "spec/requests/api/graphql/project/issue/designs/notes_spec.rb": 2.442312191000383,6407 "spec/requests/clusters/agents/dashboard_controller_spec.rb": 2.572698240999671,6408 "spec/requests/api/graphql/project/user_access_authorized_agents_spec.rb": 2.6307283160003863,6409 "spec/controllers/concerns/issuable_collections_spec.rb": 1.2690529560004506,6410 "spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb": 1.893016499998339,6411 "spec/requests/api/ci/runner/runners_verify_post_spec.rb": 1.561787374999767,6412 "spec/controllers/concerns/checks_collaboration_spec.rb": 2.763781196999844,6413 "spec/requests/api/graphql/project/job_spec.rb": 2.6614371630003006,6414 "spec/requests/api/graphql/subscriptions/notes/deleted_spec.rb": 2.1017890850016556,6415 "spec/requests/projects/aws/configuration_controller_spec.rb": 2.2330359349998616,6416 "spec/requests/groups/autocomplete_sources_spec.rb": 2.1378435019996687,6417 "spec/requests/api/graphql/mutations/achievements/delete_spec.rb": 1.7060197050013812,6418 "spec/controllers/admin/dashboard_controller_spec.rb": 1.5989041530010581,6419 "spec/requests/api/graphql/project/branch_rules/branch_protection_spec.rb": 1.7795620699998835,6420 "spec/requests/api/graphql/mutations/notes/reposition_image_diff_note_spec.rb": 1.6731449060007435,6421 "spec/requests/api/graphql/abuse_report_spec.rb": 1.342453891000332,6422 "spec/controllers/acme_challenges_controller_spec.rb": 2.158353441000145,6423 "spec/requests/api/graphql/user/group_member_query_spec.rb": 0.9009071039999981,6424 "spec/requests/api/graphql/mutations/ci/pipeline_schedule/create_spec.rb": 1.6089146110007277,6425 "spec/requests/api/graphql/project/work_item_types_spec.rb": 1.2207733800005371,6426 "spec/requests/api/graphql/mutations/timelogs/delete_spec.rb": 1.3970146570009092,6427 "spec/requests/api/graphql/group/work_item_types_spec.rb": 1.0150757749997865,6428 "spec/requests/api/graphql/mutations/incident_management/timeline_event/destroy_spec.rb": 1.3794735980009136,6429 "spec/controllers/metrics_controller_spec.rb": 0.680942249000509,6430 "spec/controllers/concerns/spammable_actions/captcha_check/html_format_actions_support_spec.rb": 0.8009664009987318,6431 "spec/requests/metrics_controller_spec.rb": 0.28282195900101215,6432 "spec/requests/concerns/planning_hierarchy_spec.rb": 0.9070481929993548,6433 "spec/controllers/concerns/redirects_for_missing_path_on_tree_spec.rb": 0.738814476000698,6434 "spec/controllers/projects/pipelines_settings_controller_spec.rb": 0.6963117089999287,6435 "spec/requests/api/graphql/project/container_expiration_policy_spec.rb": 0.6696556700007932,6436 "spec/controllers/admin/topics/avatars_controller_spec.rb": 0.3570382840007369,6437 "spec/controllers/concerns/analytics/cycle_analytics/value_stream_actions_spec.rb": 0.18946668600074196438}6439Knapsack global time execution for tests: 26m 07s6440Pending: (Failures listed here are expected and do not affect your suite's status)6441 1) Projects::DesignManagement::Designs::RawImagesController GET #show behaves like a controller that can serve LFS files when lfs is not enabled delivers ASCII file6442 # Calling spec asked to skip testing LFS disabled scenario6443 # ./spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb:1526444Failures:6445 1) API::Projects GET /users/:user_id/contributed_projects/ with a private profile user does not have access to view the private profile returns no projects6446 Failure/Error: expect(json_response).to be_empty6447 expected `[{"_links"=>{"cluster_agents"=>"http://localhost/api/v4/projects/95/cluster_agents", "events"=>"http:..."=>"http://localhost/namespace27/my-project", "wiki_access_level"=>"enabled", "wiki_enabled"=>true}].empty?` to be truthy, got false6448 # ./spec/requests/api/projects_spec.rb:1905:in `block (5 levels) in <top (required)>'6449 # ./spec/spec_helper.rb:440:in `block (3 levels) in <top (required)>'6450 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'6451 # ./spec/spec_helper.rb:431:in `block (2 levels) in <top (required)>'6452 # ./spec/spec_helper.rb:427:in `block (3 levels) in <top (required)>'6453 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'6454 # ./spec/spec_helper.rb:427:in `block (2 levels) in <top (required)>'6455 # ./spec/spec_helper.rb:267:in `block (2 levels) in <top (required)>'6456 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'6457 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'6458 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'6459 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'6460 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'6461Finished in 26 minutes 9 seconds (files took 44.34 seconds to load)64622779 examples, 1 failure, 1 pending6463Failed examples:6464rspec ./spec/requests/api/projects_spec.rb:1899 # API::Projects GET /users/:user_id/contributed_projects/ with a private profile user does not have access to view the private profile returns no projects6465Randomized with seed 16666466[TEST PROF INFO] Time spent in factories: 09:22.112 (35.7% of total time)6467Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected6468RSpec exited with 1.6469[job-metrics] Updating job metrics tag for the CI/CD job.6470RSPEC_RETRIED_TESTS_REPORT_PATH: rspec/retried_tests-5328358281.txt6471Retrying the failing examples in a new RSpec process...6472$ gem install junit_merge --no-document --version 0.1.26473Successfully installed nokogiri-1.15.4-x86_64-linux6474Successfully installed junit_merge-0.1.264752 gems installed6476==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.6477Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-5328358281.json --format RspecJunitFormatter --out rspec/rspec-retry-5328358281.xml --only-failures --pattern "spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb"6478/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!6479/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!6480/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!6481/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!6482/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!6483/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!6484/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!6485/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!6486/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6487/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:19: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6488/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!6489/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!6490/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!6491/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!6492/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!6493/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!6494/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6495/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6496/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!6497/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!6498/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!6499/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!6500/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!6501/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!6502/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!6503/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!6504/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!6505/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!6506/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!6507/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!6508/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!6509/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!6510/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!6511/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!6512/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6513/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6514/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6515/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6516/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_variables_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6517/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!6518/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!6519/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!6520/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!6521/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!6522/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!6523/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!6524/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!6525/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!6526/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!6527/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!6528/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!6529/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!6530/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!6531Run options: include {:last_run_status=>"failed"}6532Test environment set up in 0.365757193 seconds6533API::Projects6534 GET /users/:user_id/contributed_projects/6535 with a private profile6536 user does not have access to view the private profile6537 returns no projects6538Finished in 8.94 seconds (files took 37.17 seconds to load)65391 example, 0 failures6540[TEST PROF INFO] Time spent in factories: 00:03.609 (32.96% of total time)6541Loading rspec/rspec-5328358281.json...6542Merged rspec/rspec-retry-5328358281.json adding 4 results.6543Saved rspec/rspec-5328358281.json.6544A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...6545Flaky test was not part of this MR.6547Running after script...6548$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"6555$ tooling/bin/push_job_metrics || true6556[job-metrics] Pushing job metrics file for the CI/CD job.6557[job-metrics] Pushed 4 CI job metric entries to InfluxDB.6559Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy6561Uploading artifacts...6562WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6563coverage/: found 4 matching artifact files and directories 6564crystalball/: found 2 matching artifact files and directories 6565WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6566knapsack/: found 4 matching artifact files and directories 6567rspec/: found 19 matching artifact files and directories 6568WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6569log/*.log: found 17 matching artifact files and directories 6570WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5328358281/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com6571WARNING: Retrying... context=artifacts-uploader error=request redirected6572Uploading artifacts as "archive" to coordinator... 201 Created id=5328358281 responseStatus=201 Created token=64_Fm3NK6573Uploading artifacts...6574rspec/rspec-*.xml: found 2 matching artifact files and directories 6575WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5328358281/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com6576WARNING: Retrying... context=artifacts-uploader error=request redirected6577Uploading artifacts as "junit" to coordinator... 201 Created id=5328358281 responseStatus=201 Created token=64_Fm3NK6579Job succeeded