rspec integration pg14-as-if-foss single-db 5/12
Passed Started
by
@vshushlin

Vladimir Shushlin
1remote: Total 148580 (delta 64637), reused 94927 (delta 38178), pack-reused 0 2Receiving objects: 100% (148580/148580), 135.67 MiB | 31.86 MiB/s, done.3Resolving deltas: 100% (64637/64637), done.5 * [new ref] refs/pipelines/1043537122 -> refs/pipelines/10435371226Checking out 537c07c6 as detached HEAD (ref is refs/merge-requests/118829/merge)...7Skipping Git submodules setup8$ git remote set-url origin "${CI_REPOSITORY_URL}"10Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...11Downloading cache from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 12Successfully extracted cache14Downloading artifacts for compile-test-assets as-if-foss (5336650415)...15Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650415 responseStatus=200 OK token=64_nzhLi16Downloading artifacts for detect-tests (5336650454)...17Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650454 responseStatus=200 OK token=64_nzhLi18Downloading artifacts for retrieve-tests-metadata (5336650473)...19Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650473 responseStatus=200 OK token=64_nzhLi20Downloading artifacts for setup-test-env (5336650424)...21Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650424 responseStatus=200 OK token=64_nzhLi23Using 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 ...24$ echo $FOSS_ONLY25126$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb27$ export GOPATH=$CI_PROJECT_DIR/.go28$ mkdir -p $GOPATH29$ source scripts/utils.sh30$ source scripts/prepare_build.sh62Using two connections, single database config (config/database.yml.postgresql)63Disabling ci connection in config/database.yml64Geo DB won't be set up.65Embedding DB won't be set up.97$ source ./scripts/rspec_helpers.sh98$ run_timed_command "gem install knapsack --no-document"99$ gem install knapsack --no-document100Successfully installed knapsack-4.0.01011 gem installed102==> 'gem install knapsack --no-document' succeeded in 1 seconds.103$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"108$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"109$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"110$ tooling/bin/create_job_metrics_file || true111[job-metrics] Creating the job metrics file for the CI/CD job.112$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"113RETRY_FAILED_TESTS_IN_NEW_PROCESS: true114KNAPSACK_GENERATE_REPORT: 115FLAKY_RSPEC_GENERATE_REPORT: 116KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb117KNAPSACK_LOG_LEVEL: debug118KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg14-as-if-foss_single-db_5_12_report.json119FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json120FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg14-as-if-foss_single-db_5_12_report.json121NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg14-as-if-foss_single-db_5_12_report.json122RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5336651569.txt123CRYSTALBALL: 124RSPEC_TESTS_MAPPING_ENABLED: 125RSPEC_TESTS_FILTER_FILE: 126Shell set options (set -o) enabled:127braceexpand on128hashall on129interactive-comments on130pipefail on131 ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ 132 ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ 133 ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ 134 ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ 135 ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ 136******************************************************************************137 Your database has a single connection, and single connections were138 deprecated in GitLab 15.9 https://docs.gitlab.com/ee/update/deprecations.html#single-database-connection-is-deprecated.139 Please add a :ci section to your database, following these instructions:141******************************************************************************142 ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ 143 ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ 144 ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ 145 ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ 146 ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ 147******************************************************************************148 Your database has a single connection, and single connections were149 deprecated in GitLab 15.9 https://docs.gitlab.com/ee/update/deprecations.html#single-database-connection-is-deprecated.150 Please add a :ci section to your database, following these instructions:152******************************************************************************153INFO: analyzing "public.p_ci_runner_machine_builds" inheritance tree154INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_100"155INFO: "ci_runner_machine_builds_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows156INFO: analyzing "public.p_ci_job_annotations" inheritance tree157INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_100"158INFO: "ci_job_annotations_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows159INFO: analyzing "public.p_ci_builds_metadata" inheritance tree160INFO: analyzing "public.ci_builds_metadata"161INFO: "ci_builds_metadata": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows162Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}163Test environment set up in 0.41344471 seconds164API::MavenPackages165 GET /api/v4/packages/maven/*path/:file_name166 a public project167 behaves like handling groups, subgroups and user namespaces for168 behaves like handling groups and subgroups for169 within a group170 that is public171 behaves like getting a file172 returns sha1 of the file173 returns not found when a package is not found174 behaves like tracking the file download event175 with jar file176 behaves like a package tracking event177 creates a gitlab tracking event pull_package178 behaves like bumping the package last downloaded at field179 bumps last_downloaded_at180 behaves like successfully returning the file181 returns the file182 behaves like file download in FIPS mode183 in FIPS mode184 rejects the request for an md5 file185 behaves like successfully returning the file186 returns the file187 with a non existing maven path188 behaves like returning response status189 returns forbidden190 behaves like rejecting request with invalid params191 with invalid maven path192 behaves like returning response status with error193 returns bad_request and error message194 with invalid file name195 behaves like returning response status with error196 returns bad_request and error message197 within a subgroup198 that is public199 behaves like getting a file200 returns sha1 of the file201 returns not found when a package is not found202 behaves like tracking the file download event203 with jar file204 behaves like a package tracking event205 creates a gitlab tracking event pull_package206 behaves like bumping the package last downloaded at field207 bumps last_downloaded_at208 behaves like successfully returning the file209 returns the file210 behaves like file download in FIPS mode211 in FIPS mode212 rejects the request for an md5 file213 behaves like successfully returning the file214 returns the file215 with a non existing maven path216 behaves like returning response status217 returns forbidden218 behaves like rejecting request with invalid params219 with invalid maven path220 behaves like returning response status with error221 returns bad_request and error message222 with invalid file name223 behaves like returning response status with error224 returns bad_request and error message225 within a user namespace226 that is [:public, :redirect]227 behaves like getting a file228 returns sha1 of the file229 returns not found when a package is not found230 behaves like tracking the file download event231 with jar file232 behaves like a package tracking event233 creates a gitlab tracking event pull_package234 behaves like bumping the package last downloaded at field235 bumps last_downloaded_at236 behaves like successfully returning the file237 returns the file238 behaves like file download in FIPS mode239 in FIPS mode240 rejects the request for an md5 file241 behaves like successfully returning the file242 returns the file243 with a non existing maven path244 behaves like returning response status245 returns forbidden246 behaves like rejecting request with invalid params247 with invalid maven path248 behaves like returning response status with error249 returns bad_request and error message250 with invalid file name251 behaves like returning response status with error252 returns bad_request and error message253 internal project254 behaves like rejecting request with invalid params255 with invalid maven path256 behaves like returning response status with error257 returns bad_request and error message258 with invalid file name259 behaves like returning response status with error260 returns bad_request and error message261 behaves like handling groups, subgroups and user namespaces for262 behaves like handling groups and subgroups for263 within a group264 that is public265 behaves like getting a file266 denies download when no private token267 behaves like tracking the file download event268 with jar file269 behaves like a package tracking event270 creates a gitlab tracking event pull_package271 behaves like bumping the package last downloaded at field272 bumps last_downloaded_at273 behaves like successfully returning the file274 returns the file275 behaves like downloads with different tokens276 behaves like downloads with a personal access token277 valid: true, sent_using: :custom_header278 behaves like allowing the download279 allows download280 valid: false, sent_using: :custom_header281 behaves like not allowing the download with282 does not allow the download283 valid: true, sent_using: :basic_auth284 behaves like allowing the download285 allows download286 valid: false, sent_using: :basic_auth287 behaves like not allowing the download with288 does not allow the download289 behaves like downloads with a deploy token290 valid: true, sent_using: :custom_header291 behaves like allowing the download292 allows download293 with only write_package_registry scope294 behaves like allowing the download295 allows download296 valid: false, sent_using: :custom_header297 behaves like not allowing the download with298 does not allow the download299 valid: true, sent_using: :basic_auth300 behaves like allowing the download301 allows download302 with only write_package_registry scope303 behaves like allowing the download304 allows download305 valid: false, sent_using: :basic_auth306 behaves like not allowing the download with307 does not allow the download308 behaves like downloads with a job token309 valid: true, sent_using: :custom_params310 with a running job311 behaves like allowing the download312 allows download313 with a finished job314 behaves like not allowing the download with315 does not allow the download316 valid: false, sent_using: :custom_params317 with a running job318 behaves like not allowing the download with319 does not allow the download320 with a finished job321 behaves like not allowing the download with322 does not allow the download323 valid: true, sent_using: :basic_auth324 with a running job325 behaves like allowing the download326 allows download327 with a finished job328 behaves like not allowing the download with329 does not allow the download330 valid: false, sent_using: :basic_auth331 with a running job332 behaves like not allowing the download with333 does not allow the download334 with a finished job335 behaves like not allowing the download with336 does not allow the download337 with a non existing maven path338 behaves like returning response status339 returns forbidden340 that is internal341 behaves like getting a file342 denies download when no private token343 behaves like tracking the file download event344 with jar file345 behaves like a package tracking event346 creates a gitlab tracking event pull_package347 behaves like bumping the package last downloaded at field348 bumps last_downloaded_at349 behaves like successfully returning the file350 returns the file351 behaves like downloads with different tokens352 behaves like downloads with a personal access token353 valid: true, sent_using: :custom_header354 behaves like allowing the download355 allows download356 valid: false, sent_using: :custom_header357 behaves like not allowing the download with358 does not allow the download359 valid: true, sent_using: :basic_auth360 behaves like allowing the download361 allows download362 valid: false, sent_using: :basic_auth363 behaves like not allowing the download with364 does not allow the download365 behaves like downloads with a deploy token366 valid: true, sent_using: :custom_header367 behaves like allowing the download368 allows download369 with only write_package_registry scope370 behaves like allowing the download371 allows download372 valid: false, sent_using: :custom_header373 behaves like not allowing the download with374 does not allow the download375 valid: true, sent_using: :basic_auth376 behaves like allowing the download377 allows download378 with only write_package_registry scope379 behaves like allowing the download380 allows download381 valid: false, sent_using: :basic_auth382 behaves like not allowing the download with383 does not allow the download384 behaves like downloads with a job token385 valid: true, sent_using: :custom_params386 with a running job387 behaves like allowing the download388 allows download389 with a finished job390 behaves like not allowing the download with391 does not allow the download392 valid: false, sent_using: :custom_params393 with a running job394 behaves like not allowing the download with395 does not allow the download396 with a finished job397 behaves like not allowing the download with398 does not allow the download399 valid: true, sent_using: :basic_auth400 with a running job401 behaves like allowing the download402 allows download403 with a finished job404 behaves like not allowing the download with405 does not allow the download406 valid: false, sent_using: :basic_auth407 with a running job408 behaves like not allowing the download with409 does not allow the download410 with a finished job411 behaves like not allowing the download with412 does not allow the download413 with a non existing maven path414 behaves like returning response status415 returns forbidden416 within a subgroup417 that is public418 behaves like getting a file419 denies download when no private token420 behaves like tracking the file download event421 with jar file422 behaves like a package tracking event423 creates a gitlab tracking event pull_package424 behaves like bumping the package last downloaded at field425 bumps last_downloaded_at426 behaves like successfully returning the file427 returns the file428 behaves like downloads with different tokens429 behaves like downloads with a personal access token430 valid: true, sent_using: :custom_header431 behaves like allowing the download432 allows download433 valid: false, sent_using: :custom_header434 behaves like not allowing the download with435 does not allow the download436 valid: true, sent_using: :basic_auth437 behaves like allowing the download438 allows download439 valid: false, sent_using: :basic_auth440 behaves like not allowing the download with441 does not allow the download442 behaves like downloads with a deploy token443 valid: true, sent_using: :custom_header444 behaves like allowing the download445 allows download446 with only write_package_registry scope447 behaves like allowing the download448 allows download449 valid: false, sent_using: :custom_header450 behaves like not allowing the download with451 does not allow the download452 valid: true, sent_using: :basic_auth453 behaves like allowing the download454 allows download455 with only write_package_registry scope456 behaves like allowing the download457 allows download458 valid: false, sent_using: :basic_auth459 behaves like not allowing the download with460 does not allow the download461 behaves like downloads with a job token462 valid: true, sent_using: :custom_params463 with a running job464 behaves like allowing the download465 allows download466 with a finished job467 behaves like not allowing the download with468 does not allow the download469 valid: false, sent_using: :custom_params470 with a running job471 behaves like not allowing the download with472 does not allow the download473 with a finished job474 behaves like not allowing the download with475 does not allow the download476 valid: true, sent_using: :basic_auth477 with a running job478 behaves like allowing the download479 allows download480 with a finished job481 behaves like not allowing the download with482 does not allow the download483 valid: false, sent_using: :basic_auth484 with a running job485 behaves like not allowing the download with486 does not allow the download487 with a finished job488 behaves like not allowing the download with489 does not allow the download490 with a non existing maven path491 behaves like returning response status492 returns forbidden493 that is internal494 behaves like getting a file495 denies download when no private token496 behaves like tracking the file download event497 with jar file498 behaves like a package tracking event499 creates a gitlab tracking event pull_package500 behaves like bumping the package last downloaded at field501 bumps last_downloaded_at502 behaves like successfully returning the file503 returns the file504 behaves like downloads with different tokens505 behaves like downloads with a personal access token506 valid: true, sent_using: :custom_header507 behaves like allowing the download508 allows download509 valid: false, sent_using: :custom_header510 behaves like not allowing the download with511 does not allow the download512 valid: true, sent_using: :basic_auth513 behaves like allowing the download514 allows download515 valid: false, sent_using: :basic_auth516 behaves like not allowing the download with517 does not allow the download518 behaves like downloads with a deploy token519 valid: true, sent_using: :custom_header520 behaves like allowing the download521 allows download522 with only write_package_registry scope523 behaves like allowing the download524 allows download525 valid: false, sent_using: :custom_header526 behaves like not allowing the download with527 does not allow the download528 valid: true, sent_using: :basic_auth529 behaves like allowing the download530 allows download531 with only write_package_registry scope532 behaves like allowing the download533 allows download534 valid: false, sent_using: :basic_auth535 behaves like not allowing the download with536 does not allow the download537 behaves like downloads with a job token538 valid: true, sent_using: :custom_params539 with a running job540 behaves like allowing the download541 allows download542 with a finished job543 behaves like not allowing the download with544 does not allow the download545 valid: false, sent_using: :custom_params546 with a running job547 behaves like not allowing the download with548 does not allow the download549 with a finished job550 behaves like not allowing the download with551 does not allow the download552 valid: true, sent_using: :basic_auth553 with a running job554 behaves like allowing the download555 allows download556 with a finished job557 behaves like not allowing the download with558 does not allow the download559 valid: false, sent_using: :basic_auth560 with a running job561 behaves like not allowing the download with562 does not allow the download563 with a finished job564 behaves like not allowing the download with565 does not allow the download566 with a non existing maven path567 behaves like returning response status568 returns forbidden569 within a user namespace570 that is [:public, :redirect]571 behaves like getting a file572 denies download when no private token573 behaves like tracking the file download event574 with jar file575 behaves like a package tracking event576 creates a gitlab tracking event pull_package577 behaves like bumping the package last downloaded at field578 bumps last_downloaded_at579 behaves like successfully returning the file580 returns the file581 behaves like downloads with different tokens582 behaves like downloads with a personal access token583 valid: true, sent_using: :custom_header584 behaves like allowing the download585 allows download586 valid: false, sent_using: :custom_header587 behaves like not allowing the download with588 does not allow the download589 valid: true, sent_using: :basic_auth590 behaves like allowing the download591 allows download592 valid: false, sent_using: :basic_auth593 behaves like not allowing the download with594 does not allow the download595 behaves like downloads with a deploy token596 valid: true, sent_using: :custom_header597 behaves like allowing the download598 allows download599 with only write_package_registry scope600 behaves like allowing the download601 allows download602 valid: false, sent_using: :custom_header603 behaves like not allowing the download with604 does not allow the download605 valid: true, sent_using: :basic_auth606 behaves like allowing the download607 allows download608 with only write_package_registry scope609 behaves like allowing the download610 allows download611 valid: false, sent_using: :basic_auth612 behaves like not allowing the download with613 does not allow the download614 behaves like downloads with a job token615 valid: true, sent_using: :custom_params616 with a running job617 behaves like allowing the download618 allows download619 with a finished job620 behaves like not allowing the download with621 does not allow the download622 valid: false, sent_using: :custom_params623 with a running job624 behaves like not allowing the download with625 does not allow the download626 with a finished job627 behaves like not allowing the download with628 does not allow the download629 valid: true, sent_using: :basic_auth630 with a running job631 behaves like allowing the download632 allows download633 with a finished job634 behaves like not allowing the download with635 does not allow the download636 valid: false, sent_using: :basic_auth637 with a running job638 behaves like not allowing the download with639 does not allow the download640 with a finished job641 behaves like not allowing the download with642 does not allow the download643 with a non existing maven path644 behaves like returning response status645 returns forbidden646 that is [:internal, :not_found]647 behaves like getting a file648 denies download when no private token649 behaves like tracking the file download event650 with jar file651 behaves like a package tracking event652 creates a gitlab tracking event pull_package653 behaves like bumping the package last downloaded at field654 bumps last_downloaded_at655 behaves like successfully returning the file656 returns the file657 behaves like downloads with different tokens658 behaves like downloads with a personal access token659 valid: true, sent_using: :custom_header660 behaves like allowing the download661 allows download662 valid: false, sent_using: :custom_header663 behaves like not allowing the download with664 does not allow the download665 valid: true, sent_using: :basic_auth666 behaves like allowing the download667 allows download668 valid: false, sent_using: :basic_auth669 behaves like not allowing the download with670 does not allow the download671 behaves like downloads with a deploy token672 valid: true, sent_using: :custom_header673 behaves like allowing the download674 allows download675 with only write_package_registry scope676 behaves like allowing the download677 allows download678 valid: false, sent_using: :custom_header679 behaves like not allowing the download with680 does not allow the download681 valid: true, sent_using: :basic_auth682 behaves like allowing the download683 allows download684 with only write_package_registry scope685 behaves like allowing the download686 allows download687 valid: false, sent_using: :basic_auth688 behaves like not allowing the download with689 does not allow the download690 behaves like downloads with a job token691 valid: true, sent_using: :custom_params692 with a running job693 behaves like allowing the download694 allows download695 with a finished job696 behaves like not allowing the download with697 does not allow the download698 valid: false, sent_using: :custom_params699 with a running job700 behaves like not allowing the download with701 does not allow the download702 with a finished job703 behaves like not allowing the download with704 does not allow the download705 valid: true, sent_using: :basic_auth706 with a running job707 behaves like allowing the download708 allows download709 with a finished job710 behaves like not allowing the download with711 does not allow the download712 valid: false, sent_using: :basic_auth713 with a running job714 behaves like not allowing the download with715 does not allow the download716 with a finished job717 behaves like not allowing the download with718 does not allow the download719 with a non existing maven path720 behaves like returning response status721 returns forbidden722 private project723 behaves like rejecting request with invalid params724 with invalid maven path725 behaves like returning response status with error726 returns bad_request and error message727 with invalid file name728 behaves like returning response status with error729 returns bad_request and error message730 behaves like handling groups, subgroups and user namespaces for731 behaves like handling groups and subgroups for732 within a group733 that is public734 behaves like getting a file735 denies download when not enough permissions736 denies download when no private token737 does not allow download by a unauthorized deploy token with same id as a user with access738 behaves like tracking the file download event739 with jar file740 behaves like a package tracking event741 creates a gitlab tracking event pull_package742 behaves like bumping the package last downloaded at field743 bumps last_downloaded_at744 behaves like successfully returning the file745 returns the file746 behaves like downloads with different tokens747 behaves like downloads with a personal access token748 valid: true, sent_using: :custom_header749 behaves like allowing the download750 allows download751 valid: false, sent_using: :custom_header752 behaves like not allowing the download with753 does not allow the download754 valid: true, sent_using: :basic_auth755 behaves like allowing the download756 allows download757 valid: false, sent_using: :basic_auth758 behaves like not allowing the download with759 does not allow the download760 behaves like downloads with a deploy token761 valid: true, sent_using: :custom_header762 behaves like allowing the download763 allows download764 with only write_package_registry scope765 behaves like allowing the download766 allows download767 valid: false, sent_using: :custom_header768 behaves like not allowing the download with769 does not allow the download770 valid: true, sent_using: :basic_auth771 behaves like allowing the download772 allows download773 with only write_package_registry scope774 behaves like allowing the download775 allows download776 valid: false, sent_using: :basic_auth777 behaves like not allowing the download with778 does not allow the download779 behaves like downloads with a job token780 valid: true, sent_using: :custom_params781 with a running job782 behaves like allowing the download783 allows download784 with a finished job785 behaves like not allowing the download with786 does not allow the download787 valid: false, sent_using: :custom_params788 with a running job789 behaves like not allowing the download with790 does not allow the download791 with a finished job792 behaves like not allowing the download with793 does not allow the download794 valid: true, sent_using: :basic_auth795 with a running job796 behaves like allowing the download797 allows download798 with a finished job799 behaves like not allowing the download with800 does not allow the download801 valid: false, sent_using: :basic_auth802 with a running job803 behaves like not allowing the download with804 does not allow the download805 with a finished job806 behaves like not allowing the download with807 does not allow the download808 with a non existing maven path809 behaves like returning response status810 returns forbidden811 that is internal812 behaves like getting a file813 denies download when not enough permissions814 denies download when no private token815 does not allow download by a unauthorized deploy token with same id as a user with access816 behaves like tracking the file download event817 with jar file818 behaves like a package tracking event819 creates a gitlab tracking event pull_package820 behaves like bumping the package last downloaded at field821 bumps last_downloaded_at822 behaves like successfully returning the file823 returns the file824 behaves like downloads with different tokens825 behaves like downloads with a personal access token826 valid: true, sent_using: :custom_header827 behaves like allowing the download828 allows download829 valid: false, sent_using: :custom_header830 behaves like not allowing the download with831 does not allow the download832 valid: true, sent_using: :basic_auth833 behaves like allowing the download834 allows download835 valid: false, sent_using: :basic_auth836 behaves like not allowing the download with837 does not allow the download838 behaves like downloads with a deploy token839 valid: true, sent_using: :custom_header840 behaves like allowing the download841 allows download842 with only write_package_registry scope843 behaves like allowing the download844 allows download845 valid: false, sent_using: :custom_header846 behaves like not allowing the download with847 does not allow the download848 valid: true, sent_using: :basic_auth849 behaves like allowing the download850 allows download851 with only write_package_registry scope852 behaves like allowing the download853 allows download854 valid: false, sent_using: :basic_auth855 behaves like not allowing the download with856 does not allow the download857 behaves like downloads with a job token858 valid: true, sent_using: :custom_params859 with a running job860 behaves like allowing the download861 allows download862 with a finished job863 behaves like not allowing the download with864 does not allow the download865 valid: false, sent_using: :custom_params866 with a running job867 behaves like not allowing the download with868 does not allow the download869 with a finished job870 behaves like not allowing the download with871 does not allow the download872 valid: true, sent_using: :basic_auth873 with a running job874 behaves like allowing the download875 allows download876 with a finished job877 behaves like not allowing the download with878 does not allow the download879 valid: false, sent_using: :basic_auth880 with a running job881 behaves like not allowing the download with882 does not allow the download883 with a finished job884 behaves like not allowing the download with885 does not allow the download886 with a non existing maven path887 behaves like returning response status888 returns forbidden889 that is private890 behaves like getting a file891 denies download when not enough permissions892 denies download when no private token893 does not allow download by a unauthorized deploy token with same id as a user with access894 behaves like tracking the file download event895 with jar file896 behaves like a package tracking event897 creates a gitlab tracking event pull_package898 behaves like bumping the package last downloaded at field899 bumps last_downloaded_at900 behaves like successfully returning the file901 returns the file902 behaves like downloads with different tokens903 behaves like downloads with a personal access token904 valid: true, sent_using: :custom_header905 behaves like allowing the download906 allows download907 valid: false, sent_using: :custom_header908 behaves like not allowing the download with909 does not allow the download910 valid: true, sent_using: :basic_auth911 behaves like allowing the download912 allows download913 valid: false, sent_using: :basic_auth914 behaves like not allowing the download with915 does not allow the download916 behaves like downloads with a deploy token917 valid: true, sent_using: :custom_header918 behaves like allowing the download919 allows download920 with only write_package_registry scope921 behaves like allowing the download922 allows download923 valid: false, sent_using: :custom_header924 behaves like not allowing the download with925 does not allow the download926 valid: true, sent_using: :basic_auth927 behaves like allowing the download928 allows download929 with only write_package_registry scope930 behaves like allowing the download931 allows download932 valid: false, sent_using: :basic_auth933 behaves like not allowing the download with934 does not allow the download935 behaves like downloads with a job token936 valid: true, sent_using: :custom_params937 with a running job938 behaves like allowing the download939 allows download940 with a finished job941 behaves like not allowing the download with942 does not allow the download943 valid: false, sent_using: :custom_params944 with a running job945 behaves like not allowing the download with946 does not allow the download947 with a finished job948 behaves like not allowing the download with949 does not allow the download950 valid: true, sent_using: :basic_auth951 with a running job952 behaves like allowing the download953 allows download954 with a finished job955 behaves like not allowing the download with956 does not allow the download957 valid: false, sent_using: :basic_auth958 with a running job959 behaves like not allowing the download with960 does not allow the download961 with a finished job962 behaves like not allowing the download with963 does not allow the download964 with a non existing maven path965 behaves like returning response status966 returns forbidden967 within a subgroup968 that is public969 behaves like getting a file970 denies download when not enough permissions971 denies download when no private token972 does not allow download by a unauthorized deploy token with same id as a user with access973 behaves like tracking the file download event974 with jar file975 behaves like a package tracking event976 creates a gitlab tracking event pull_package977 behaves like bumping the package last downloaded at field978 bumps last_downloaded_at979 behaves like successfully returning the file980 returns the file981 behaves like downloads with different tokens982 behaves like downloads with a personal access token983 valid: true, sent_using: :custom_header984 behaves like allowing the download985 allows download986 valid: false, sent_using: :custom_header987 behaves like not allowing the download with988 does not allow the download989 valid: true, sent_using: :basic_auth990 behaves like allowing the download991 allows download992 valid: false, sent_using: :basic_auth993 behaves like not allowing the download with994 does not allow the download995 behaves like downloads with a deploy token996 valid: true, sent_using: :custom_header997 behaves like allowing the download998 allows download999 with only write_package_registry scope1000 behaves like allowing the download1001 allows download1002 valid: false, sent_using: :custom_header1003 behaves like not allowing the download with1004 does not allow the download1005 valid: true, sent_using: :basic_auth1006 behaves like allowing the download1007 allows download1008 with only write_package_registry scope1009 behaves like allowing the download1010 allows download1011 valid: false, sent_using: :basic_auth1012 behaves like not allowing the download with1013 does not allow the download1014 behaves like downloads with a job token1015 valid: true, sent_using: :custom_params1016 with a running job1017 behaves like allowing the download1018 allows download1019 with a finished job1020 behaves like not allowing the download with1021 does not allow the download1022 valid: false, sent_using: :custom_params1023 with a running job1024 behaves like not allowing the download with1025 does not allow the download1026 with a finished job1027 behaves like not allowing the download with1028 does not allow the download1029 valid: true, sent_using: :basic_auth1030 with a running job1031 behaves like allowing the download1032 allows download1033 with a finished job1034 behaves like not allowing the download with1035 does not allow the download1036 valid: false, sent_using: :basic_auth1037 with a running job1038 behaves like not allowing the download with1039 does not allow the download1040 with a finished job1041 behaves like not allowing the download with1042 does not allow the download1043 with a non existing maven path1044 behaves like returning response status1045 returns forbidden1046 that is internal1047 behaves like getting a file1048 denies download when not enough permissions1049 denies download when no private token1050 does not allow download by a unauthorized deploy token with same id as a user with access1051 behaves like tracking the file download event1052 with jar file1053 behaves like a package tracking event1054 creates a gitlab tracking event pull_package1055 behaves like bumping the package last downloaded at field1056 bumps last_downloaded_at1057 behaves like successfully returning the file1058 returns the file1059 behaves like downloads with different tokens1060 behaves like downloads with a personal access token1061 valid: true, sent_using: :custom_header1062 behaves like allowing the download1063 allows download1064 valid: false, sent_using: :custom_header1065 behaves like not allowing the download with1066 does not allow the download1067 valid: true, sent_using: :basic_auth1068 behaves like allowing the download1069 allows download1070 valid: false, sent_using: :basic_auth1071 behaves like not allowing the download with1072 does not allow the download1073 behaves like downloads with a deploy token1074 valid: true, sent_using: :custom_header1075 behaves like allowing the download1076 allows download1077 with only write_package_registry scope1078 behaves like allowing the download1079 allows download1080 valid: false, sent_using: :custom_header1081 behaves like not allowing the download with1082 does not allow the download1083 valid: true, sent_using: :basic_auth1084 behaves like allowing the download1085 allows download1086 with only write_package_registry scope1087 behaves like allowing the download1088 allows download1089 valid: false, sent_using: :basic_auth1090 behaves like not allowing the download with1091 does not allow the download1092 behaves like downloads with a job token1093 valid: true, sent_using: :custom_params1094 with a running job1095 behaves like allowing the download1096 allows download1097 with a finished job1098 behaves like not allowing the download with1099 does not allow the download1100 valid: false, sent_using: :custom_params1101 with a running job1102 behaves like not allowing the download with1103 does not allow the download1104 with a finished job1105 behaves like not allowing the download with1106 does not allow the download1107 valid: true, sent_using: :basic_auth1108 with a running job1109 behaves like allowing the download1110 allows download1111 with a finished job1112 behaves like not allowing the download with1113 does not allow the download1114 valid: false, sent_using: :basic_auth1115 with a running job1116 behaves like not allowing the download with1117 does not allow the download1118 with a finished job1119 behaves like not allowing the download with1120 does not allow the download1121 with a non existing maven path1122 behaves like returning response status1123 returns forbidden1124 that is private1125 behaves like getting a file1126 denies download when not enough permissions1127 denies download when no private token1128 does not allow download by a unauthorized deploy token with same id as a user with access1129 behaves like tracking the file download event1130 with jar file1131 behaves like a package tracking event1132 creates a gitlab tracking event pull_package1133 behaves like bumping the package last downloaded at field1134 bumps last_downloaded_at1135 behaves like successfully returning the file1136 returns the file1137 behaves like downloads with different tokens1138 behaves like downloads with a personal access token1139 valid: true, sent_using: :custom_header1140 behaves like allowing the download1141 allows download1142 valid: false, sent_using: :custom_header1143 behaves like not allowing the download with1144 does not allow the download1145 valid: true, sent_using: :basic_auth1146 behaves like allowing the download1147 allows download1148 valid: false, sent_using: :basic_auth1149 behaves like not allowing the download with1150 does not allow the download1151 behaves like downloads with a deploy token1152 valid: true, sent_using: :custom_header1153 behaves like allowing the download1154 allows download1155 with only write_package_registry scope1156 behaves like allowing the download1157 allows download1158 valid: false, sent_using: :custom_header1159 behaves like not allowing the download with1160 does not allow the download1161 valid: true, sent_using: :basic_auth1162 behaves like allowing the download1163 allows download1164 with only write_package_registry scope1165 behaves like allowing the download1166 allows download1167 valid: false, sent_using: :basic_auth1168 behaves like not allowing the download with1169 does not allow the download1170 behaves like downloads with a job token1171 valid: true, sent_using: :custom_params1172 with a running job1173 behaves like allowing the download1174 allows download1175 with a finished job1176 behaves like not allowing the download with1177 does not allow the download1178 valid: false, sent_using: :custom_params1179 with a running job1180 behaves like not allowing the download with1181 does not allow the download1182 with a finished job1183 behaves like not allowing the download with1184 does not allow the download1185 valid: true, sent_using: :basic_auth1186 with a running job1187 behaves like allowing the download1188 allows download1189 with a finished job1190 behaves like not allowing the download with1191 does not allow the download1192 valid: false, sent_using: :basic_auth1193 with a running job1194 behaves like not allowing the download with1195 does not allow the download1196 with a finished job1197 behaves like not allowing the download with1198 does not allow the download1199 with a non existing maven path1200 behaves like returning response status1201 returns forbidden1202 within a user namespace1203 that is [:public, :redirect]1204 behaves like getting a file1205 denies download when not enough permissions1206 denies download when no private token1207 does not allow download by a unauthorized deploy token with same id as a user with access1208 behaves like tracking the file download event1209 with jar file1210 behaves like a package tracking event1211 creates a gitlab tracking event pull_package1212 behaves like bumping the package last downloaded at field1213 bumps last_downloaded_at1214 behaves like successfully returning the file1215 returns the file1216 behaves like downloads with different tokens1217 behaves like downloads with a personal access token1218 valid: true, sent_using: :custom_header1219 behaves like allowing the download1220 allows download1221 valid: false, sent_using: :custom_header1222 behaves like not allowing the download with1223 does not allow the download1224 valid: true, sent_using: :basic_auth1225 behaves like allowing the download1226 allows download1227 valid: false, sent_using: :basic_auth1228 behaves like not allowing the download with1229 does not allow the download1230 behaves like downloads with a deploy token1231 valid: true, sent_using: :custom_header1232 behaves like allowing the download1233 allows download1234 with only write_package_registry scope1235 behaves like allowing the download1236 allows download1237 valid: false, sent_using: :custom_header1238 behaves like not allowing the download with1239 does not allow the download1240 valid: true, sent_using: :basic_auth1241 behaves like allowing the download1242 allows download1243 with only write_package_registry scope1244 behaves like allowing the download1245 allows download1246 valid: false, sent_using: :basic_auth1247 behaves like not allowing the download with1248 does not allow the download1249 behaves like downloads with a job token1250 valid: true, sent_using: :custom_params1251 with a running job1252 behaves like allowing the download1253 allows download1254 with a finished job1255 behaves like not allowing the download with1256 does not allow the download1257 valid: false, sent_using: :custom_params1258 with a running job1259 behaves like not allowing the download with1260 does not allow the download1261 with a finished job1262 behaves like not allowing the download with1263 does not allow the download1264 valid: true, sent_using: :basic_auth1265 with a running job1266 behaves like allowing the download1267 allows download1268 with a finished job1269 behaves like not allowing the download with1270 does not allow the download1271 valid: false, sent_using: :basic_auth1272 with a running job1273 behaves like not allowing the download with1274 does not allow the download1275 with a finished job1276 behaves like not allowing the download with1277 does not allow the download1278 with a non existing maven path1279 behaves like returning response status1280 returns forbidden1281 that is [:internal, :not_found]1282 behaves like getting a file1283 denies download when not enough permissions1284 denies download when no private token1285 does not allow download by a unauthorized deploy token with same id as a user with access1286 behaves like tracking the file download event1287 with jar file1288 behaves like a package tracking event1289 creates a gitlab tracking event pull_package1290 behaves like bumping the package last downloaded at field1291 bumps last_downloaded_at1292 behaves like successfully returning the file1293 returns the file1294 behaves like downloads with different tokens1295 behaves like downloads with a personal access token1296 valid: true, sent_using: :custom_header1297 behaves like allowing the download1298 allows download1299 valid: false, sent_using: :custom_header1300 behaves like not allowing the download with1301 does not allow the download1302 valid: true, sent_using: :basic_auth1303 behaves like allowing the download1304 allows download1305 valid: false, sent_using: :basic_auth1306 behaves like not allowing the download with1307 does not allow the download1308 behaves like downloads with a deploy token1309 valid: true, sent_using: :custom_header1310 behaves like allowing the download1311 allows download1312 with only write_package_registry scope1313 behaves like allowing the download1314 allows download1315 valid: false, sent_using: :custom_header1316 behaves like not allowing the download with1317 does not allow the download1318 valid: true, sent_using: :basic_auth1319 behaves like allowing the download1320 allows download1321 with only write_package_registry scope1322 behaves like allowing the download1323 allows download1324 valid: false, sent_using: :basic_auth1325 behaves like not allowing the download with1326 does not allow the download1327 behaves like downloads with a job token1328 valid: true, sent_using: :custom_params1329 with a running job1330 behaves like allowing the download1331 allows download1332 with a finished job1333 behaves like not allowing the download with1334 does not allow the download1335 valid: false, sent_using: :custom_params1336 with a running job1337 behaves like not allowing the download with1338 does not allow the download1339 with a finished job1340 behaves like not allowing the download with1341 does not allow the download1342 valid: true, sent_using: :basic_auth1343 with a running job1344 behaves like allowing the download1345 allows download1346 with a finished job1347 behaves like not allowing the download with1348 does not allow the download1349 valid: false, sent_using: :basic_auth1350 with a running job1351 behaves like not allowing the download with1352 does not allow the download1353 with a finished job1354 behaves like not allowing the download with1355 does not allow the download1356 with a non existing maven path1357 behaves like returning response status1358 returns forbidden1359 that is [:private, :not_found]1360 behaves like getting a file1361 denies download when not enough permissions1362 denies download when no private token1363 does not allow download by a unauthorized deploy token with same id as a user with access1364 behaves like tracking the file download event1365 with jar file1366 behaves like a package tracking event1367 creates a gitlab tracking event pull_package1368 behaves like bumping the package last downloaded at field1369 bumps last_downloaded_at1370 behaves like successfully returning the file1371 returns the file1372 behaves like downloads with different tokens1373 behaves like downloads with a personal access token1374 valid: true, sent_using: :custom_header1375 behaves like allowing the download1376 allows download1377 valid: false, sent_using: :custom_header1378 behaves like not allowing the download with1379 does not allow the download1380 valid: true, sent_using: :basic_auth1381 behaves like allowing the download1382 allows download1383 valid: false, sent_using: :basic_auth1384 behaves like not allowing the download with1385 does not allow the download1386 behaves like downloads with a deploy token1387 valid: true, sent_using: :custom_header1388 behaves like allowing the download1389 allows download1390 with only write_package_registry scope1391 behaves like allowing the download1392 allows download1393 valid: false, sent_using: :custom_header1394 behaves like not allowing the download with1395 does not allow the download1396 valid: true, sent_using: :basic_auth1397 behaves like allowing the download1398 allows download1399 with only write_package_registry scope1400 behaves like allowing the download1401 allows download1402 valid: false, sent_using: :basic_auth1403 behaves like not allowing the download with1404 does not allow the download1405 behaves like downloads with a job token1406 valid: true, sent_using: :custom_params1407 with a running job1408 behaves like allowing the download1409 allows download1410 with a finished job1411 behaves like not allowing the download with1412 does not allow the download1413 valid: false, sent_using: :custom_params1414 with a running job1415 behaves like not allowing the download with1416 does not allow the download1417 with a finished job1418 behaves like not allowing the download with1419 does not allow the download1420 valid: true, sent_using: :basic_auth1421 with a running job1422 behaves like allowing the download1423 allows download1424 with a finished job1425 behaves like not allowing the download with1426 does not allow the download1427 valid: false, sent_using: :basic_auth1428 with a running job1429 behaves like not allowing the download with1430 does not allow the download1431 with a finished job1432 behaves like not allowing the download with1433 does not allow the download1434 with a non existing maven path1435 behaves like returning response status1436 returns forbidden1437 project name is different from a package name1438 rejects request1439 HEAD /api/v4/packages/maven/*path/:file_name1440 behaves like handling groups, subgroups and user namespaces for1441 behaves like handling groups and subgroups for1442 within a group1443 that is public1444 behaves like heading a file1445 behaves like processing HEAD requests1446 with object storage enabled1447 non AWS provider1448 does not generated a signed url for head1449 with AWS provider1450 generates a signed url for head1451 with object storage disabled1452 does not generate a signed url for head1453 with a non existing maven path1454 behaves like returning response status1455 returns forbidden1456 within a subgroup1457 that is public1458 behaves like heading a file1459 behaves like processing HEAD requests1460 with object storage enabled1461 non AWS provider1462 does not generated a signed url for head1463 with AWS provider1464 generates a signed url for head1465 with object storage disabled1466 does not generate a signed url for head1467 with a non existing maven path1468 behaves like returning response status1469 returns forbidden1470 within a user namespace1471 that is [:public, :redirect]1472 behaves like heading a file1473 behaves like processing HEAD requests1474 with object storage enabled1475 non AWS provider1476 does not generated a signed url for head1477 with AWS provider1478 generates a signed url for head1479 with object storage disabled1480 does not generate a signed url for head1481 with a non existing maven path1482 behaves like returning response status1483 returns forbidden1484 GET /api/v4/groups/:id/-/packages/maven/*path/:file_name1485 behaves like forwarding package requests1486 request forwarding1487 forward: true, package_in_project: true, shared_examples_name: "successfully returning the file"1488 behaves like successfully returning the file1489 returns the file1490 forward: true, package_in_project: false, shared_examples_name: "redirecting the request"1491 behaves like redirecting the request1492 behaves like returning response status1493 returns redirect1494 forward: false, package_in_project: true, shared_examples_name: "successfully returning the file"1495 behaves like successfully returning the file1496 returns the file1497 forward: false, package_in_project: false, shared_examples_name: "package not found"1498 behaves like package not found1499 behaves like returning response status1500 returns not_found1501 with maven_central_request_forwarding disabled1502 forward: true, package_in_project: true, shared_examples_name: "successfully returning the file"1503 behaves like successfully returning the file1504 returns the file1505 forward: true, package_in_project: false, shared_examples_name: "package not found"1506 behaves like package not found1507 behaves like returning response status1508 returns not_found1509 forward: false, package_in_project: true, shared_examples_name: "successfully returning the file"1510 behaves like successfully returning the file1511 returns the file1512 forward: false, package_in_project: false, shared_examples_name: "package not found"1513 behaves like package not found1514 behaves like returning response status1515 returns not_found1516 a public project1517 behaves like rejecting request with invalid params1518 with invalid maven path1519 behaves like returning response status with error1520 returns bad_request and error message1521 with invalid file name1522 behaves like returning response status with error1523 returns bad_request and error message1524 behaves like handling groups and subgroups for1525 within a group1526 that is public1527 behaves like getting a file for a group1528 returns sha1 of the file1529 behaves like tracking the file download event1530 with jar file1531 behaves like a package tracking event1532 creates a gitlab tracking event pull_package1533 behaves like bumping the package last downloaded at field1534 bumps last_downloaded_at1535 behaves like successfully returning the file1536 returns the file1537 behaves like file download in FIPS mode1538 in FIPS mode1539 rejects the request for an md5 file1540 behaves like successfully returning the file1541 returns the file1542 with a non existing maven path1543 behaves like returning response status1544 returns redirect1545 within a subgroup1546 that is public1547 behaves like getting a file for a group1548 returns sha1 of the file1549 behaves like tracking the file download event1550 with jar file1551 behaves like a package tracking event1552 creates a gitlab tracking event pull_package1553 behaves like bumping the package last downloaded at field1554 bumps last_downloaded_at1555 behaves like successfully returning the file1556 returns the file1557 behaves like file download in FIPS mode1558 in FIPS mode1559 rejects the request for an md5 file1560 behaves like successfully returning the file1561 returns the file1562 with a non existing maven path1563 behaves like returning response status1564 returns redirect1565 internal project1566 behaves like rejecting request with invalid params1567 with invalid maven path1568 behaves like returning response status with error1569 returns bad_request and error message1570 with invalid file name1571 behaves like returning response status with error1572 returns bad_request and error message1573 behaves like handling groups and subgroups for1574 within a group1575 that is internal1576 behaves like getting a file for a group1577 forwards download when no private token1578 behaves like tracking the file download event1579 with jar file1580 behaves like a package tracking event1581 creates a gitlab tracking event pull_package1582 behaves like bumping the package last downloaded at field1583 bumps last_downloaded_at1584 behaves like successfully returning the file1585 returns the file1586 behaves like downloads with different tokens1587 behaves like downloads with a personal access token1588 valid: true, sent_using: :custom_header1589 behaves like allowing the download1590 allows download1591 valid: false, sent_using: :custom_header1592 behaves like not allowing the download with1593 does not allow the download1594 valid: true, sent_using: :basic_auth1595 behaves like allowing the download1596 allows download1597 valid: false, sent_using: :basic_auth1598 behaves like not allowing the download with1599 does not allow the download1600 behaves like downloads with a deploy token1601 valid: true, sent_using: :custom_header1602 behaves like allowing the download1603 allows download1604 with only write_package_registry scope1605 behaves like allowing the download1606 allows download1607 valid: false, sent_using: :custom_header1608 behaves like not allowing the download with1609 does not allow the download1610 valid: true, sent_using: :basic_auth1611 behaves like allowing the download1612 allows download1613 with only write_package_registry scope1614 behaves like allowing the download1615 allows download1616 valid: false, sent_using: :basic_auth1617 behaves like not allowing the download with1618 does not allow the download1619 behaves like downloads with a job token1620 valid: true, sent_using: :custom_params1621 with a running job1622 behaves like allowing the download1623 allows download1624 with a finished job1625 behaves like not allowing the download with1626 does not allow the download1627 valid: false, sent_using: :custom_params1628 with a running job1629 behaves like not allowing the download with1630 does not allow the download1631 with a finished job1632 behaves like not allowing the download with1633 does not allow the download1634 valid: true, sent_using: :basic_auth1635 with a running job1636 behaves like allowing the download1637 allows download1638 with a finished job1639 behaves like not allowing the download with1640 does not allow the download1641 valid: false, sent_using: :basic_auth1642 with a running job1643 behaves like not allowing the download with1644 does not allow the download1645 with a finished job1646 behaves like not allowing the download with1647 does not allow the download1648 with a non existing maven path1649 behaves like returning response status1650 returns redirect1651 that is public1652 behaves like getting a file for a group1653 forwards download when no private token1654 behaves like tracking the file download event1655 with jar file1656 behaves like a package tracking event1657 creates a gitlab tracking event pull_package1658 behaves like bumping the package last downloaded at field1659 bumps last_downloaded_at1660 behaves like successfully returning the file1661 returns the file1662 behaves like downloads with different tokens1663 behaves like downloads with a personal access token1664 valid: true, sent_using: :custom_header1665 behaves like allowing the download1666 allows download1667 valid: false, sent_using: :custom_header1668 behaves like not allowing the download with1669 does not allow the download1670 valid: true, sent_using: :basic_auth1671 behaves like allowing the download1672 allows download1673 valid: false, sent_using: :basic_auth1674 behaves like not allowing the download with1675 does not allow the download1676 behaves like downloads with a deploy token1677 valid: true, sent_using: :custom_header1678 behaves like allowing the download1679 allows download1680 with only write_package_registry scope1681 behaves like allowing the download1682 allows download1683 valid: false, sent_using: :custom_header1684 behaves like not allowing the download with1685 does not allow the download1686 valid: true, sent_using: :basic_auth1687 behaves like allowing the download1688 allows download1689 with only write_package_registry scope1690 behaves like allowing the download1691 allows download1692 valid: false, sent_using: :basic_auth1693 behaves like not allowing the download with1694 does not allow the download1695 behaves like downloads with a job token1696 valid: true, sent_using: :custom_params1697 with a running job1698 behaves like allowing the download1699 allows download1700 with a finished job1701 behaves like not allowing the download with1702 does not allow the download1703 valid: false, sent_using: :custom_params1704 with a running job1705 behaves like not allowing the download with1706 does not allow the download1707 with a finished job1708 behaves like not allowing the download with1709 does not allow the download1710 valid: true, sent_using: :basic_auth1711 with a running job1712 behaves like allowing the download1713 allows download1714 with a finished job1715 behaves like not allowing the download with1716 does not allow the download1717 valid: false, sent_using: :basic_auth1718 with a running job1719 behaves like not allowing the download with1720 does not allow the download1721 with a finished job1722 behaves like not allowing the download with1723 does not allow the download1724 with a non existing maven path1725 behaves like returning response status1726 returns redirect1727 within a subgroup1728 that is internal1729 behaves like getting a file for a group1730 forwards download when no private token1731 behaves like tracking the file download event1732 with jar file1733 behaves like a package tracking event1734 creates a gitlab tracking event pull_package1735 behaves like bumping the package last downloaded at field1736 bumps last_downloaded_at1737 behaves like successfully returning the file1738 returns the file1739 behaves like downloads with different tokens1740 behaves like downloads with a personal access token1741 valid: true, sent_using: :custom_header1742 behaves like allowing the download1743 allows download1744 valid: false, sent_using: :custom_header1745 behaves like not allowing the download with1746 does not allow the download1747 valid: true, sent_using: :basic_auth1748 behaves like allowing the download1749 allows download1750 valid: false, sent_using: :basic_auth1751 behaves like not allowing the download with1752 does not allow the download1753 behaves like downloads with a deploy token1754 valid: true, sent_using: :custom_header1755 behaves like allowing the download1756 allows download1757 with only write_package_registry scope1758 behaves like allowing the download1759 allows download1760 valid: false, sent_using: :custom_header1761 behaves like not allowing the download with1762 does not allow the download1763 valid: true, sent_using: :basic_auth1764 behaves like allowing the download1765 allows download1766 with only write_package_registry scope1767 behaves like allowing the download1768 allows download1769 valid: false, sent_using: :basic_auth1770 behaves like not allowing the download with1771 does not allow the download1772 behaves like downloads with a job token1773 valid: true, sent_using: :custom_params1774 with a running job1775 behaves like allowing the download1776 allows download1777 with a finished job1778 behaves like not allowing the download with1779 does not allow the download1780 valid: false, sent_using: :custom_params1781 with a running job1782 behaves like not allowing the download with1783 does not allow the download1784 with a finished job1785 behaves like not allowing the download with1786 does not allow the download1787 valid: true, sent_using: :basic_auth1788 with a running job1789 behaves like allowing the download1790 allows download1791 with a finished job1792 behaves like not allowing the download with1793 does not allow the download1794 valid: false, sent_using: :basic_auth1795 with a running job1796 behaves like not allowing the download with1797 does not allow the download1798 with a finished job1799 behaves like not allowing the download with1800 does not allow the download1801 with a non existing maven path1802 behaves like returning response status1803 returns redirect1804 that is public1805 behaves like getting a file for a group1806 forwards download when no private token1807 behaves like tracking the file download event1808 with jar file1809 behaves like a package tracking event1810 creates a gitlab tracking event pull_package1811 behaves like bumping the package last downloaded at field1812 bumps last_downloaded_at1813 behaves like successfully returning the file1814 returns the file1815 behaves like downloads with different tokens1816 behaves like downloads with a personal access token1817 valid: true, sent_using: :custom_header1818 behaves like allowing the download1819 allows download1820 valid: false, sent_using: :custom_header1821 behaves like not allowing the download with1822 does not allow the download1823 valid: true, sent_using: :basic_auth1824 behaves like allowing the download1825 allows download1826 valid: false, sent_using: :basic_auth1827 behaves like not allowing the download with1828 does not allow the download1829 behaves like downloads with a deploy token1830 valid: true, sent_using: :custom_header1831 behaves like allowing the download1832 allows download1833 with only write_package_registry scope1834 behaves like allowing the download1835 allows download1836 valid: false, sent_using: :custom_header1837 behaves like not allowing the download with1838 does not allow the download1839 valid: true, sent_using: :basic_auth1840 behaves like allowing the download1841 allows download1842 with only write_package_registry scope1843 behaves like allowing the download1844 allows download1845 valid: false, sent_using: :basic_auth1846 behaves like not allowing the download with1847 does not allow the download1848 behaves like downloads with a job token1849 valid: true, sent_using: :custom_params1850 with a running job1851 behaves like allowing the download1852 allows download1853 with a finished job1854 behaves like not allowing the download with1855 does not allow the download1856 valid: false, sent_using: :custom_params1857 with a running job1858 behaves like not allowing the download with1859 does not allow the download1860 with a finished job1861 behaves like not allowing the download with1862 does not allow the download1863 valid: true, sent_using: :basic_auth1864 with a running job1865 behaves like allowing the download1866 allows download1867 with a finished job1868 behaves like not allowing the download with1869 does not allow the download1870 valid: false, sent_using: :basic_auth1871 with a running job1872 behaves like not allowing the download with1873 does not allow the download1874 with a finished job1875 behaves like not allowing the download with1876 does not allow the download1877 with a non existing maven path1878 behaves like returning response status1879 returns redirect1880 private project1881 behaves like handling groups and subgroups for1882 within a group1883 that is private1884 behaves like getting a file for a group1885 denies download when not enough permissions1886 denies download when no private token1887 behaves like tracking the file download event1888 with jar file1889 behaves like a package tracking event1890 creates a gitlab tracking event pull_package1891 behaves like bumping the package last downloaded at field1892 bumps last_downloaded_at1893 behaves like successfully returning the file1894 returns the file1895 behaves like downloads with different tokens1896 behaves like downloads with a personal access token1897 valid: true, sent_using: :custom_header1898 behaves like allowing the download1899 allows download1900 valid: false, sent_using: :custom_header1901 behaves like not allowing the download with1902 does not allow the download1903 valid: true, sent_using: :basic_auth1904 behaves like allowing the download1905 allows download1906 valid: false, sent_using: :basic_auth1907 behaves like not allowing the download with1908 does not allow the download1909 behaves like downloads with a deploy token1910 valid: true, sent_using: :custom_header1911 behaves like allowing the download1912 allows download1913 with only write_package_registry scope1914 behaves like allowing the download1915 allows download1916 valid: false, sent_using: :custom_header1917 behaves like not allowing the download with1918 does not allow the download1919 valid: true, sent_using: :basic_auth1920 behaves like allowing the download1921 allows download1922 with only write_package_registry scope1923 behaves like allowing the download1924 allows download1925 valid: false, sent_using: :basic_auth1926 behaves like not allowing the download with1927 does not allow the download1928 behaves like downloads with a job token1929 valid: true, sent_using: :custom_params1930 with a running job1931 behaves like allowing the download1932 allows download1933 with a finished job1934 behaves like not allowing the download with1935 does not allow the download1936 valid: false, sent_using: :custom_params1937 with a running job1938 behaves like not allowing the download with1939 does not allow the download1940 with a finished job1941 behaves like not allowing the download with1942 does not allow the download1943 valid: true, sent_using: :basic_auth1944 with a running job1945 behaves like allowing the download1946 allows download1947 with a finished job1948 behaves like not allowing the download with1949 does not allow the download1950 valid: false, sent_using: :basic_auth1951 with a running job1952 behaves like not allowing the download with1953 does not allow the download1954 with a finished job1955 behaves like not allowing the download with1956 does not allow the download1957 with a non existing maven path1958 behaves like returning response status1959 returns redirect1960 behaves like rejecting request with invalid params1961 with invalid maven path1962 behaves like returning response status with error1963 returns bad_request and error message1964 with invalid file name1965 behaves like returning response status with error1966 returns bad_request and error message1967 with group deploy token1968 returns the file with only write_package_registry scope1969 behaves like successfully returning the file1970 returns the file1971 with a non existing maven path1972 behaves like returning response status1973 returns redirect1974 that is internal1975 behaves like getting a file for a group1976 denies download when not enough permissions1977 denies download when no private token1978 behaves like tracking the file download event1979 with jar file1980 behaves like a package tracking event1981 creates a gitlab tracking event pull_package1982 behaves like bumping the package last downloaded at field1983 bumps last_downloaded_at1984 behaves like successfully returning the file1985 returns the file1986 behaves like downloads with different tokens1987 behaves like downloads with a personal access token1988 valid: true, sent_using: :custom_header1989 behaves like allowing the download1990 allows download1991 valid: false, sent_using: :custom_header1992 behaves like not allowing the download with1993 does not allow the download1994 valid: true, sent_using: :basic_auth1995 behaves like allowing the download1996 allows download1997 valid: false, sent_using: :basic_auth1998 behaves like not allowing the download with1999 does not allow the download2000 behaves like downloads with a deploy token2001 valid: true, sent_using: :custom_header2002 behaves like allowing the download2003 allows download2004 with only write_package_registry scope2005 behaves like allowing the download2006 allows download2007 valid: false, sent_using: :custom_header2008 behaves like not allowing the download with2009 does not allow the download2010 valid: true, sent_using: :basic_auth2011 behaves like allowing the download2012 allows download2013 with only write_package_registry scope2014 behaves like allowing the download2015 allows download2016 valid: false, sent_using: :basic_auth2017 behaves like not allowing the download with2018 does not allow the download2019 behaves like downloads with a job token2020 valid: true, sent_using: :custom_params2021 with a running job2022 behaves like allowing the download2023 allows download2024 with a finished job2025 behaves like not allowing the download with2026 does not allow the download2027 valid: false, sent_using: :custom_params2028 with a running job2029 behaves like not allowing the download with2030 does not allow the download2031 with a finished job2032 behaves like not allowing the download with2033 does not allow the download2034 valid: true, sent_using: :basic_auth2035 with a running job2036 behaves like allowing the download2037 allows download2038 with a finished job2039 behaves like not allowing the download with2040 does not allow the download2041 valid: false, sent_using: :basic_auth2042 with a running job2043 behaves like not allowing the download with2044 does not allow the download2045 with a finished job2046 behaves like not allowing the download with2047 does not allow the download2048 with a non existing maven path2049 behaves like returning response status2050 returns redirect2051 behaves like rejecting request with invalid params2052 with invalid maven path2053 behaves like returning response status with error2054 returns bad_request and error message2055 with invalid file name2056 behaves like returning response status with error2057 returns bad_request and error message2058 with group deploy token2059 returns the file with only write_package_registry scope2060 behaves like successfully returning the file2061 returns the file2062 with a non existing maven path2063 behaves like returning response status2064 returns redirect2065 that is public2066 behaves like getting a file for a group2067 denies download when not enough permissions2068 denies download when no private token2069 behaves like tracking the file download event2070 with jar file2071 behaves like a package tracking event2072 creates a gitlab tracking event pull_package2073 behaves like bumping the package last downloaded at field2074 bumps last_downloaded_at2075 behaves like successfully returning the file2076 returns the file2077 behaves like downloads with different tokens2078 behaves like downloads with a personal access token2079 valid: true, sent_using: :custom_header2080 behaves like allowing the download2081 allows download2082 valid: false, sent_using: :custom_header2083 behaves like not allowing the download with2084 does not allow the download2085 valid: true, sent_using: :basic_auth2086 behaves like allowing the download2087 allows download2088 valid: false, sent_using: :basic_auth2089 behaves like not allowing the download with2090 does not allow the download2091 behaves like downloads with a deploy token2092 valid: true, sent_using: :custom_header2093 behaves like allowing the download2094 allows download2095 with only write_package_registry scope2096 behaves like allowing the download2097 allows download2098 valid: false, sent_using: :custom_header2099 behaves like not allowing the download with2100 does not allow the download2101 valid: true, sent_using: :basic_auth2102 behaves like allowing the download2103 allows download2104 with only write_package_registry scope2105 behaves like allowing the download2106 allows download2107 valid: false, sent_using: :basic_auth2108 behaves like not allowing the download with2109 does not allow the download2110 behaves like downloads with a job token2111 valid: true, sent_using: :custom_params2112 with a running job2113 behaves like allowing the download2114 allows download2115 with a finished job2116 behaves like not allowing the download with2117 does not allow the download2118 valid: false, sent_using: :custom_params2119 with a running job2120 behaves like not allowing the download with2121 does not allow the download2122 with a finished job2123 behaves like not allowing the download with2124 does not allow the download2125 valid: true, sent_using: :basic_auth2126 with a running job2127 behaves like allowing the download2128 allows download2129 with a finished job2130 behaves like not allowing the download with2131 does not allow the download2132 valid: false, sent_using: :basic_auth2133 with a running job2134 behaves like not allowing the download with2135 does not allow the download2136 with a finished job2137 behaves like not allowing the download with2138 does not allow the download2139 with a non existing maven path2140 behaves like returning response status2141 returns redirect2142 behaves like rejecting request with invalid params2143 with invalid maven path2144 behaves like returning response status with error2145 returns bad_request and error message2146 with invalid file name2147 behaves like returning response status with error2148 returns bad_request and error message2149 with group deploy token2150 returns the file with only write_package_registry scope2151 behaves like successfully returning the file2152 returns the file2153 with a non existing maven path2154 behaves like returning response status2155 returns redirect2156 within a subgroup2157 that is private2158 behaves like getting a file for a group2159 denies download when not enough permissions2160 denies download when no private token2161 behaves like tracking the file download event2162 with jar file2163 behaves like a package tracking event2164 creates a gitlab tracking event pull_package2165 behaves like bumping the package last downloaded at field2166 bumps last_downloaded_at2167 behaves like successfully returning the file2168 returns the file2169 behaves like downloads with different tokens2170 behaves like downloads with a personal access token2171 valid: true, sent_using: :custom_header2172 behaves like allowing the download2173 allows download2174 valid: false, sent_using: :custom_header2175 behaves like not allowing the download with2176 does not allow the download2177 valid: true, sent_using: :basic_auth2178 behaves like allowing the download2179 allows download2180 valid: false, sent_using: :basic_auth2181 behaves like not allowing the download with2182 does not allow the download2183 behaves like downloads with a deploy token2184 valid: true, sent_using: :custom_header2185 behaves like allowing the download2186 allows download2187 with only write_package_registry scope2188 behaves like allowing the download2189 allows download2190 valid: false, sent_using: :custom_header2191 behaves like not allowing the download with2192 does not allow the download2193 valid: true, sent_using: :basic_auth2194 behaves like allowing the download2195 allows download2196 with only write_package_registry scope2197 behaves like allowing the download2198 allows download2199 valid: false, sent_using: :basic_auth2200 behaves like not allowing the download with2201 does not allow the download2202 behaves like downloads with a job token2203 valid: true, sent_using: :custom_params2204 with a running job2205 behaves like allowing the download2206 allows download2207 with a finished job2208 behaves like not allowing the download with2209 does not allow the download2210 valid: false, sent_using: :custom_params2211 with a running job2212 behaves like not allowing the download with2213 does not allow the download2214 with a finished job2215 behaves like not allowing the download with2216 does not allow the download2217 valid: true, sent_using: :basic_auth2218 with a running job2219 behaves like allowing the download2220 allows download2221 with a finished job2222 behaves like not allowing the download with2223 does not allow the download2224 valid: false, sent_using: :basic_auth2225 with a running job2226 behaves like not allowing the download with2227 does not allow the download2228 with a finished job2229 behaves like not allowing the download with2230 does not allow the download2231 with a non existing maven path2232 behaves like returning response status2233 returns redirect2234 behaves like rejecting request with invalid params2235 with invalid maven path2236 behaves like returning response status with error2237 returns bad_request and error message2238 with invalid file name2239 behaves like returning response status with error2240 returns bad_request and error message2241 with group deploy token2242 returns the file with only write_package_registry scope2243 behaves like successfully returning the file2244 returns the file2245 with a non existing maven path2246 behaves like returning response status2247 returns redirect2248 that is internal2249 behaves like getting a file for a group2250 denies download when not enough permissions2251 denies download when no private token2252 behaves like tracking the file download event2253 with jar file2254 behaves like a package tracking event2255 creates a gitlab tracking event pull_package2256 behaves like bumping the package last downloaded at field2257 bumps last_downloaded_at2258 behaves like successfully returning the file2259 returns the file2260 behaves like downloads with different tokens2261 behaves like downloads with a personal access token2262 valid: true, sent_using: :custom_header2263 behaves like allowing the download2264 allows download2265 valid: false, sent_using: :custom_header2266 behaves like not allowing the download with2267 does not allow the download2268 valid: true, sent_using: :basic_auth2269 behaves like allowing the download2270 allows download2271 valid: false, sent_using: :basic_auth2272 behaves like not allowing the download with2273 does not allow the download2274 behaves like downloads with a deploy token2275 valid: true, sent_using: :custom_header2276 behaves like allowing the download2277 allows download2278 with only write_package_registry scope2279 behaves like allowing the download2280 allows download2281 valid: false, sent_using: :custom_header2282 behaves like not allowing the download with2283 does not allow the download2284 valid: true, sent_using: :basic_auth2285 behaves like allowing the download2286 allows download2287 with only write_package_registry scope2288 behaves like allowing the download2289 allows download2290 valid: false, sent_using: :basic_auth2291 behaves like not allowing the download with2292 does not allow the download2293 behaves like downloads with a job token2294 valid: true, sent_using: :custom_params2295 with a running job2296 behaves like allowing the download2297 allows download2298 with a finished job2299 behaves like not allowing the download with2300 does not allow the download2301 valid: false, sent_using: :custom_params2302 with a running job2303 behaves like not allowing the download with2304 does not allow the download2305 with a finished job2306 behaves like not allowing the download with2307 does not allow the download2308 valid: true, sent_using: :basic_auth2309 with a running job2310 behaves like allowing the download2311 allows download2312 with a finished job2313 behaves like not allowing the download with2314 does not allow the download2315 valid: false, sent_using: :basic_auth2316 with a running job2317 behaves like not allowing the download with2318 does not allow the download2319 with a finished job2320 behaves like not allowing the download with2321 does not allow the download2322 with a non existing maven path2323 behaves like returning response status2324 returns redirect2325 behaves like rejecting request with invalid params2326 with invalid maven path2327 behaves like returning response status with error2328 returns bad_request and error message2329 with invalid file name2330 behaves like returning response status with error2331 returns bad_request and error message2332 with group deploy token2333 returns the file with only write_package_registry scope2334 behaves like successfully returning the file2335 returns the file2336 with a non existing maven path2337 behaves like returning response status2338 returns redirect2339 that is public2340 behaves like getting a file for a group2341 denies download when not enough permissions2342 denies download when no private token2343 behaves like tracking the file download event2344 with jar file2345 behaves like a package tracking event2346 creates a gitlab tracking event pull_package2347 behaves like bumping the package last downloaded at field2348 bumps last_downloaded_at2349 behaves like successfully returning the file2350 returns the file2351 behaves like downloads with different tokens2352 behaves like downloads with a personal access token2353 valid: true, sent_using: :custom_header2354 behaves like allowing the download2355 allows download2356 valid: false, sent_using: :custom_header2357 behaves like not allowing the download with2358 does not allow the download2359 valid: true, sent_using: :basic_auth2360 behaves like allowing the download2361 allows download2362 valid: false, sent_using: :basic_auth2363 behaves like not allowing the download with2364 does not allow the download2365 behaves like downloads with a deploy token2366 valid: true, sent_using: :custom_header2367 behaves like allowing the download2368 allows download2369 with only write_package_registry scope2370 behaves like allowing the download2371 allows download2372 valid: false, sent_using: :custom_header2373 behaves like not allowing the download with2374 does not allow the download2375 valid: true, sent_using: :basic_auth2376 behaves like allowing the download2377 allows download2378 with only write_package_registry scope2379 behaves like allowing the download2380 allows download2381 valid: false, sent_using: :basic_auth2382 behaves like not allowing the download with2383 does not allow the download2384 behaves like downloads with a job token2385 valid: true, sent_using: :custom_params2386 with a running job2387 behaves like allowing the download2388 allows download2389 with a finished job2390 behaves like not allowing the download with2391 does not allow the download2392 valid: false, sent_using: :custom_params2393 with a running job2394 behaves like not allowing the download with2395 does not allow the download2396 with a finished job2397 behaves like not allowing the download with2398 does not allow the download2399 valid: true, sent_using: :basic_auth2400 with a running job2401 behaves like allowing the download2402 allows download2403 with a finished job2404 behaves like not allowing the download with2405 does not allow the download2406 valid: false, sent_using: :basic_auth2407 with a running job2408 behaves like not allowing the download with2409 does not allow the download2410 with a finished job2411 behaves like not allowing the download with2412 does not allow the download2413 with a non existing maven path2414 behaves like returning response status2415 returns redirect2416 behaves like rejecting request with invalid params2417 with invalid maven path2418 behaves like returning response status with error2419 returns bad_request and error message2420 with invalid file name2421 behaves like returning response status with error2422 returns bad_request and error message2423 with group deploy token2424 returns the file with only write_package_registry scope2425 behaves like successfully returning the file2426 returns the file2427 with a non existing maven path2428 behaves like returning response status2429 returns redirect2430 with a reporter from a subgroup accessing the root group2431 behaves like successfully returning the file2432 returns the file2433 with a non existing maven path2434 behaves like returning response status2435 returns redirect2436 maven metadata file2437 in multiple versionless packages2438 downloads the file2439 in multiple snapshot packages2440 downloads the file2441 HEAD /api/v4/groups/:id/-/packages/maven/*path/:file_name2442 behaves like handling groups and subgroups for2443 within a group2444 that is public2445 behaves like processing HEAD requests2446 with object storage enabled2447 non AWS provider2448 does not generated a signed url for head2449 with AWS provider2450 generates a signed url for head2451 with object storage disabled2452 does not generate a signed url for head2453 with a non existing maven path2454 behaves like returning response status2455 returns redirect2456 within a subgroup2457 that is public2458 behaves like processing HEAD requests2459 with object storage enabled2460 non AWS provider2461 does not generated a signed url for head2462 with AWS provider2463 generates a signed url for head2464 with object storage disabled2465 does not generate a signed url for head2466 with a non existing maven path2467 behaves like returning response status2468 returns redirect2469 GET /api/v4/projects/:id/packages/maven/*path/:file_name2470 a public project2471 returns sha1 of the file2472 returns md5 of the file2473 behaves like tracking the file download event2474 with jar file2475 behaves like a package tracking event2476 creates a gitlab tracking event pull_package2477 behaves like successfully returning the file2478 returns the file2479 behaves like file download in FIPS mode2480 in FIPS mode2481 rejects the request for an md5 file2482 behaves like successfully returning the file2483 returns the file2484 when the repository is disabled2485 behaves like successfully returning the file2486 returns the file2487 with a non existing maven path2488 behaves like returning response status2489 returns redirect2490 behaves like rejecting request with invalid params2491 with invalid maven path2492 behaves like returning response status with error2493 returns bad_request and error message2494 with invalid file name2495 behaves like returning response status with error2496 returns bad_request and error message2497 private project2498 denies download when not enough permissions2499 denies download when no private token2500 behaves like tracking the file download event2501 with jar file2502 behaves like a package tracking event2503 creates a gitlab tracking event pull_package2504 behaves like bumping the package last downloaded at field2505 bumps last_downloaded_at2506 behaves like successfully returning the file2507 returns the file2508 with access to package registry for everyone2509 behaves like successfully returning the file2510 returns the file2511 behaves like downloads with different tokens2512 behaves like downloads with a personal access token2513 valid: true, sent_using: :custom_header2514 behaves like allowing the download2515 allows download2516 valid: false, sent_using: :custom_header2517 behaves like not allowing the download with2518 does not allow the download2519 valid: true, sent_using: :basic_auth2520 behaves like allowing the download2521 allows download2522 valid: false, sent_using: :basic_auth2523 behaves like not allowing the download with2524 does not allow the download2525 behaves like downloads with a deploy token2526 valid: true, sent_using: :custom_header2527 behaves like allowing the download2528 allows download2529 with only write_package_registry scope2530 behaves like allowing the download2531 allows download2532 valid: false, sent_using: :custom_header2533 behaves like not allowing the download with2534 does not allow the download2535 valid: true, sent_using: :basic_auth2536 behaves like allowing the download2537 allows download2538 with only write_package_registry scope2539 behaves like allowing the download2540 allows download2541 valid: false, sent_using: :basic_auth2542 behaves like not allowing the download with2543 does not allow the download2544 behaves like downloads with a job token2545 valid: true, sent_using: :custom_params2546 with a running job2547 behaves like allowing the download2548 allows download2549 with a finished job2550 behaves like not allowing the download with2551 does not allow the download2552 valid: false, sent_using: :custom_params2553 with a running job2554 behaves like not allowing the download with2555 does not allow the download2556 with a finished job2557 behaves like not allowing the download with2558 does not allow the download2559 valid: true, sent_using: :basic_auth2560 with a running job2561 behaves like allowing the download2562 allows download2563 with a finished job2564 behaves like not allowing the download with2565 does not allow the download2566 valid: false, sent_using: :basic_auth2567 with a running job2568 behaves like not allowing the download with2569 does not allow the download2570 with a finished job2571 behaves like not allowing the download with2572 does not allow the download2573 with a non existing maven path2574 behaves like returning response status2575 returns redirect2576 behaves like rejecting request with invalid params2577 with invalid maven path2578 behaves like returning response status with error2579 returns bad_request and error message2580 with invalid file name2581 behaves like returning response status with error2582 returns bad_request and error message2583 behaves like forwarding package requests2584 request forwarding2585 forward: true, package_in_project: true, shared_examples_name: "successfully returning the file"2586 behaves like successfully returning the file2587 returns the file2588 forward: true, package_in_project: false, shared_examples_name: "redirecting the request"2589 behaves like redirecting the request2590 behaves like returning response status2591 returns redirect2592 forward: false, package_in_project: true, shared_examples_name: "successfully returning the file"2593 behaves like successfully returning the file2594 returns the file2595 forward: false, package_in_project: false, shared_examples_name: "package not found"2596 behaves like package not found2597 behaves like returning response status2598 returns not_found2599 with maven_central_request_forwarding disabled2600 forward: true, package_in_project: true, shared_examples_name: "successfully returning the file"2601 behaves like successfully returning the file2602 returns the file2603 forward: true, package_in_project: false, shared_examples_name: "package not found"2604 behaves like package not found2605 behaves like returning response status2606 returns not_found2607 forward: false, package_in_project: true, shared_examples_name: "successfully returning the file"2608 behaves like successfully returning the file2609 returns the file2610 forward: false, package_in_project: false, shared_examples_name: "package not found"2611 behaves like package not found2612 behaves like returning response status2613 returns not_found2614 HEAD /api/v4/projects/:id/packages/maven/*path/:file_name2615 behaves like processing HEAD requests2616 with object storage enabled2617 non AWS provider2618 does not generated a signed url for head2619 with AWS provider2620 generates a signed url for head2621 with object storage disabled2622 does not generate a signed url for head2623 with a non existing maven path2624 behaves like returning response status2625 returns redirect2626 PUT /api/v4/projects/:id/packages/maven/*path/:file_name/authorize2627 rejects a malicious request2628 authorizes posting package with a valid token2629 rejects request without a valid token2630 rejects request without a valid permission2631 rejects requests that did not go through gitlab-workhorse2632 authorizes upload with job token2633 authorizes upload with deploy token2634 rejects requests by a unauthorized deploy token with same id as a user with access2635 PUT /api/v4/projects/:id/packages/maven/*path/:file_name2636 rejects requests without a file from workhorse2637 rejects request without a token2638 without workhorse rewritten field2639 rejects the request2640 when params from workhorse are correct2641 rejects a malicious request2642 creates package and stores package file2643 allows upload with running job token2644 rejects upload without running job token2645 allows upload with deploy token2646 rejects uploads by a unauthorized deploy token with same id as a user with access2647 FIPS mode2648 rejects the request for md5 file2649 behaves like package workhorse uploads2650 without a workhorse header2651 logs an error2652 behaves like returning response status2653 returns forbidden2654 file size is too large2655 rejects the request2656 behaves like package workhorse uploads2657 without a workhorse header2658 logs an error2659 behaves like returning response status2660 returns forbidden2661 event tracking2662 behaves like a package tracking event2663 creates a gitlab tracking event push_package2664 when the package file fails to be created2665 behaves like not a package tracking event2666 does not create a gitlab tracking event2667 file name is too long2668 rejects request2669 version is not correct2670 rejects request2671 when package duplicates are not allowed2672 rejects the request2673 when uploading to the versionless package which contains metadata about all versions2674 behaves like storing the package file2675 stores the file2676 when uploading different non-duplicate files to the same package2677 behaves like storing the package file2678 stores the file2679 when the package name matches the exception regex2680 behaves like storing the package file2681 stores the file2682 when uploading a similar package file name with a classifier2683 behaves like storing the package file2684 stores the file2685 for sha1 file2686 returns no content2687 for md5 file2688 returns an empty body2689 with FIPS mode enabled2690 rejects the request2691 reading fingerprints from UploadedFile instance2692 reads size, sha1 and md5 fingerprints from uploaded_file instance2693API::Branches2694 GET /projects/:id/repository/branches2695 when search parameter is passed2696 and branch exists2697 returns correct branches2698 and branch does not exist2699 returns an empty array2700 when sort parameter is passed2701 sorts branches2702 when sort value is not supported2703 behaves like 400 response2704 returns 4002705 when unauthenticated and project is public2706 behaves like repository branches2707 with branch_list_keyset_pagination feature off2708 with offset pagination params2709 returns the repository branches2710 determines only a limited number of merged branch names2711 merge status matches reality on paginated input2712 recovers pagination headers from cache between consecutive requests2713 with gitaly pagination params2714 merge status matches reality on paginated input2715 with branch_list_keyset_pagination feature on2716 with keyset pagination option2717 with gitaly pagination params2718 returns the repository branches2719 determines only a limited number of merged branch names2720 merge status matches reality on paginated input2721 with offset pagination params2722 ignores legacy pagination params2723 when repository is disabled2724 behaves like 404 response2725 returns 4042726 caching2727 caches the query2728 uses the cache up to 60 minutes2729 requests for new value after 60 minutes2730 when unauthenticated and project is private2731 behaves like 404 response2732 returns 4042733 when authenticated as a maintainer2734 does not submit N+1 DB queries2735 behaves like repository branches2736 with branch_list_keyset_pagination feature off2737 with offset pagination params2738 returns the repository branches2739 determines only a limited number of merged branch names2740 merge status matches reality on paginated input2741 recovers pagination headers from cache between consecutive requests2742 with gitaly pagination params2743 merge status matches reality on paginated input2744 with branch_list_keyset_pagination feature on2745 with keyset pagination option2746 with gitaly pagination params2747 returns the repository branches2748 determines only a limited number of merged branch names2749 merge status matches reality on paginated input2750 with offset pagination params2751 ignores legacy pagination params2752 when repository is disabled2753 behaves like 404 response2754 returns 4042755 requesting with the escaped project full path2756 behaves like repository branches2757 with branch_list_keyset_pagination feature off2758 with offset pagination params2759 returns the repository branches2760 determines only a limited number of merged branch names2761 merge status matches reality on paginated input2762 recovers pagination headers from cache between consecutive requests2763 with gitaly pagination params2764 merge status matches reality on paginated input2765 with branch_list_keyset_pagination feature on2766 with keyset pagination option2767 with gitaly pagination params2768 returns the repository branches2769 determines only a limited number of merged branch names2770 merge status matches reality on paginated input2771 with offset pagination params2772 ignores legacy pagination params2773 when repository is disabled2774 behaves like 404 response2775 returns 4042776 when authenticated as a guest2777 behaves like 403 response2778 returns 4032779 GET /projects/:id/repository/branches/:branch2780 when unauthenticated and project is public2781 returns that the current user cannot push2782 behaves like repository branch2783 returns the repository branch2784 HEAD request2785 returns 204 No Content2786 returns 404 Not Found2787 when branch does not exist2788 behaves like 404 response2789 returns 4042790 when the branch refname is invalid2791 behaves like 400 response2792 returns 4002793 when repository is disabled2794 behaves like 404 response2795 returns 4042796 when branch is ambiguous2797 behaves like 404 response2798 returns 4042799 when repository does not exist2800 behaves like 404 response2801 returns 4042802 when unauthenticated and project is private2803 behaves like 404 response2804 returns 4042805 when authenticated as a maintainer2806 returns that the current user can push2807 behaves like repository branch2808 returns the repository branch2809 HEAD request2810 returns 204 No Content2811 returns 404 Not Found2812 when branch does not exist2813 behaves like 404 response2814 returns 4042815 when the branch refname is invalid2816 behaves like 400 response2817 returns 4002818 when repository is disabled2819 behaves like 404 response2820 returns 4042821 when branch is ambiguous2822 behaves like 404 response2823 returns 4042824 when repository does not exist2825 behaves like 404 response2826 returns 4042827 when branch contains a dot2828 behaves like repository branch2829 returns the repository branch2830 HEAD request2831 returns 204 No Content2832 returns 404 Not Found2833 when branch does not exist2834 behaves like 404 response2835 returns 4042836 when the branch refname is invalid2837 behaves like 400 response2838 returns 4002839 when repository is disabled2840 behaves like 404 response2841 returns 4042842 when branch is ambiguous2843 behaves like 404 response2844 returns 4042845 when repository does not exist2846 behaves like 404 response2847 returns 4042848 when branch contains dot txt2849 behaves like repository branch2850 returns the repository branch2851 HEAD request2852 returns 204 No Content2853 returns 404 Not Found2854 when branch does not exist2855 behaves like 404 response2856 returns 4042857 when the branch refname is invalid2858 behaves like 400 response2859 returns 4002860 when repository is disabled2861 behaves like 404 response2862 returns 4042863 when branch is ambiguous2864 behaves like 404 response2865 returns 4042866 when repository does not exist2867 behaves like 404 response2868 returns 4042869 when branch contains a slash2870 behaves like 404 response2871 returns 4042872 when branch contains an escaped slash2873 behaves like repository branch2874 returns the repository branch2875 HEAD request2876 returns 204 No Content2877 returns 404 Not Found2878 when branch does not exist2879 behaves like 404 response2880 returns 4042881 when the branch refname is invalid2882 behaves like 400 response2883 returns 4002884 when repository is disabled2885 behaves like 404 response2886 returns 4042887 when branch is ambiguous2888 behaves like 404 response2889 returns 4042890 when repository does not exist2891 behaves like 404 response2892 returns 4042893 requesting with the escaped project full path2894 behaves like repository branch2895 returns the repository branch2896 HEAD request2897 returns 204 No Content2898 returns 404 Not Found2899 when branch does not exist2900 behaves like 404 response2901 returns 4042902 when the branch refname is invalid2903 behaves like 400 response2904 returns 4002905 when repository is disabled2906 behaves like 404 response2907 returns 4042908 when branch is ambiguous2909 behaves like 404 response2910 returns 4042911 when repository does not exist2912 behaves like 404 response2913 returns 4042914 when branch contains a dot2915 behaves like repository branch2916 returns the repository branch2917 HEAD request2918 returns 204 No Content2919 returns 404 Not Found2920 when branch does not exist2921 behaves like 404 response2922 returns 4042923 when the branch refname is invalid2924 behaves like 400 response2925 returns 4002926 when repository is disabled2927 behaves like 404 response2928 returns 4042929 when branch is ambiguous2930 behaves like 404 response2931 returns 4042932 when repository does not exist2933 behaves like 404 response2934 returns 4042935 when authenticated as a developer and branch is protected2936 returns that the current user cannot push2937 behaves like repository branch2938 returns the repository branch2939 HEAD request2940 returns 204 No Content2941 returns 404 Not Found2942 when branch does not exist2943 behaves like 404 response2944 returns 4042945 when the branch refname is invalid2946 behaves like 400 response2947 returns 4002948 when repository is disabled2949 behaves like 404 response2950 returns 4042951 when branch is ambiguous2952 behaves like 404 response2953 returns 4042954 when repository does not exist2955 behaves like 404 response2956 returns 4042957 when authenticated as a guest2958 behaves like 403 response2959 returns 4032960 PUT /projects/:id/repository/branches/:branch/protect2961 when unauthenticated and project is private2962 behaves like 404 response2963 returns 4042964 when authenticated as a guest2965 behaves like 403 response2966 returns 4032967 when authenticated as a maintainer2968 when a protected branch doesn't already exist2969 behaves like repository new protected branch2970 protects a single branch2971 protects a single branch and developers can push2972 protects a single branch and developers can merge2973 protects a single branch and developers can push and merge2974 when branch does not exist2975 behaves like 404 response2976 returns 4042977 when the branch refname is invalid2978 behaves like 400 response2979 returns 4002980 when repository is disabled2981 behaves like 404 response2982 returns 4042983 when branch contains a dot2984 behaves like repository new protected branch2985 protects a single branch2986 protects a single branch and developers can push2987 protects a single branch and developers can merge2988 protects a single branch and developers can push and merge2989 when branch does not exist2990 behaves like 404 response2991 returns 4042992 when the branch refname is invalid2993 behaves like 400 response2994 returns 4002995 when repository is disabled2996 behaves like 404 response2997 returns 4042998 when branch contains a slash2999 behaves like 404 response3000 returns 4043001 when branch contains an escaped slash3002 behaves like repository new protected branch3003 protects a single branch3004 protects a single branch and developers can push3005 protects a single branch and developers can merge3006 protects a single branch and developers can push and merge3007 when branch does not exist3008 behaves like 404 response3009 returns 4043010 when the branch refname is invalid3011 behaves like 400 response3012 returns 4003013 when repository is disabled3014 behaves like 404 response3015 returns 4043016 requesting with the escaped project full path3017 behaves like repository new protected branch3018 protects a single branch3019 protects a single branch and developers can push3020 protects a single branch and developers can merge3021 protects a single branch and developers can push and merge3022 when branch does not exist3023 behaves like 404 response3024 returns 4043025 when the branch refname is invalid3026 behaves like 400 response3027 returns 4003028 when repository is disabled3029 behaves like 404 response3030 returns 4043031 when branch contains a dot3032 behaves like repository new protected branch3033 protects a single branch3034 protects a single branch and developers can push3035 protects a single branch and developers can merge3036 protects a single branch and developers can push and merge3037 when branch does not exist3038 behaves like 404 response3039 returns 4043040 when the branch refname is invalid3041 behaves like 400 response3042 returns 4003043 when repository is disabled3044 behaves like 404 response3045 returns 4043046 when protected branch already exists3047 when developers can push and merge3048 updates that a developer cannot push or merge3049 when developers cannot push or merge3050 updates that a developer can push and merge3051 PUT /projects/:id/repository/branches/:branch/unprotect3052 when unauthenticated and project is private3053 behaves like 404 response3054 returns 4043055 when authenticated as a guest3056 behaves like 403 response3057 returns 4033058 when authenticated as a maintainer3059 behaves like repository unprotected branch3060 when branch is protected3061 unprotects a single branch3062 when branch is not protected3063 returns a single branch response3064 when branch does not exist3065 behaves like 404 response3066 returns 4043067 when the branch refname is invalid3068 behaves like 400 response3069 returns 4003070 when repository is disabled3071 behaves like 404 response3072 returns 4043073 when branch contains a dot3074 behaves like repository unprotected branch3075 when branch is protected3076 unprotects a single branch3077 when branch is not protected3078 returns a single branch response3079 when branch does not exist3080 behaves like 404 response3081 returns 4043082 when the branch refname is invalid3083 behaves like 400 response3084 returns 4003085 when repository is disabled3086 behaves like 404 response3087 returns 4043088 when branch contains a slash3089 behaves like 404 response3090 returns 4043091 when branch contains an escaped slash3092 behaves like repository unprotected branch3093 when branch is protected3094 unprotects a single branch3095 when branch is not protected3096 returns a single branch response3097 when branch does not exist3098 behaves like 404 response3099 returns 4043100 when the branch refname is invalid3101 behaves like 400 response3102 returns 4003103 when repository is disabled3104 behaves like 404 response3105 returns 4043106 requesting with the escaped project full path3107 behaves like repository unprotected branch3108 when branch is protected3109 unprotects a single branch3110 when branch is not protected3111 returns a single branch response3112 when branch does not exist3113 behaves like 404 response3114 returns 4043115 when the branch refname is invalid3116 behaves like 400 response3117 returns 4003118 when repository is disabled3119 behaves like 404 response3120 returns 4043121 when branch contains a dot3122 behaves like repository unprotected branch3123 when branch is protected3124 unprotects a single branch3125 when branch is not protected3126 returns a single branch response3127 when branch does not exist3128 behaves like 404 response3129 returns 4043130 when the branch refname is invalid3131 behaves like 400 response3132 returns 4003133 when repository is disabled3134 behaves like 404 response3135 returns 4043136 POST /projects/:id/repository/branches3137 returns 400 if branch name is invalid3138 returns 400 if branch already exists3139 returns 400 if ref name is invalid3140 when unauthenticated and project is private3141 behaves like 404 response3142 returns 4043143 when authenticated as a guest3144 behaves like 403 response3145 returns 4033146 when authenticated as a maintainer3147 when a protected branch doesn't already exist3148 behaves like repository new branch3149 creates a new branch3150 when repository is disabled3151 behaves like 404 response3152 returns 4043153 requesting with the escaped project full path3154 behaves like repository new branch3155 creates a new branch3156 when repository is disabled3157 behaves like 404 response3158 returns 4043159 DELETE /projects/:id/repository/branches/:branch3160 removes branch3161 removes a branch with dots in the branch name3162 returns 404 if branch not exists3163 when the branch refname is invalid3164 behaves like 400 response3165 returns 4003166 behaves like 412 response3167 for a modified resource3168 returns 412 with a JSON error3169 for an unmodified resource3170 returns 204 with an empty body3171 DELETE /projects/:id/repository/merged_branches3172 returns 202 with json body3173 returns a 403 error if guest3174API::ProjectPackages3175 GET /projects/:id/packages3176 without the need for a license3177 project is public3178 behaves like returns packages3179 for no_type3180 returns success response3181 returns a valid response schema3182 returns two packages3183 with conan package3184 uses the conan recipe as the package name3185 with terraform module package3186 when no package_type filter is set3187 filters out terraform module packages3188 returns packages with the package registry web_path3189 when package_type filter is set to terraform_module3190 returns the terraform module package3191 returns the terraform module package with the infrastructure registry web_path3192 in nested group3193 returns the nested terraform module package with the correct web_path3194 with JOB-TOKEN auth3195 behaves like returns packages3196 for maintainer3197 returns success response3198 returns a valid response schema3199 returns two packages3200 behaves like returns packages3201 for developer3202 returns success response3203 returns a valid response schema3204 returns two packages3205 behaves like returns packages3206 for reporter3207 returns success response3208 returns a valid response schema3209 returns two packages3210 behaves like returns packages3211 for no_type3212 returns success response3213 returns a valid response schema3214 returns two packages3215 behaves like returns packages3216 for guest3217 returns success response3218 returns a valid response schema3219 returns two packages3220 project is private3221 for unauthenticated user3222 behaves like rejects packages access3223 for no_type3224 behaves like returning response status3225 returns not_found3226 for authenticated user3227 behaves like returns packages3228 for maintainer3229 returns success response3230 returns a valid response schema3231 returns two packages3232 behaves like returns packages3233 for developer3234 returns success response3235 returns a valid response schema3236 returns two packages3237 behaves like returns packages3238 for reporter3239 returns success response3240 returns a valid response schema3241 returns two packages3242 behaves like rejects packages access3243 for no_type3244 behaves like returning response status3245 returns not_found3246 behaves like rejects packages access3247 for guest3248 behaves like returning response status3249 returns forbidden3250 user is a maintainer3251 returns the destroy url3252 with JOB-TOKEN auth3253 behaves like returns packages3254 for maintainer3255 returns success response3256 returns a valid response schema3257 returns two packages3258 behaves like returns packages3259 for developer3260 returns success response3261 returns a valid response schema3262 returns two packages3263 behaves like returns packages3264 for reporter3265 returns success response3266 returns a valid response schema3267 returns two packages3268 behaves like rejects packages access3269 for no_type3270 behaves like returning response status3271 returns not_found3272 with pagination params3273 with pagination params3274 behaves like returns paginated packages3275 when viewing the first page3276 returns first 2 packages3277 when viewing the second page3278 returns first 2 packages3279 with sorting3280 behaves like package sorting3281 sorting by name3282 ascending order3283 returns the sorted packages3284 descending order3285 returns the sorted packages3286 behaves like package sorting3287 sorting by created_at3288 ascending order3289 returns the sorted packages3290 descending order3291 returns the sorted packages3292 behaves like package sorting3293 sorting by version3294 ascending order3295 returns the sorted packages3296 descending order3297 returns the sorted packages3298 behaves like package sorting3299 sorting by type3300 ascending order3301 returns the sorted packages3302 descending order3303 returns the sorted packages3304 behaves like filters on each package_type3305 for package type maven3306 returns maven packages3307 for package type npm3308 returns npm packages3309 for package type conan3310 returns conan packages3311 for package type nuget3312 returns nuget packages3313 for package type pypi3314 returns pypi packages3315 for package type composer3316 returns composer packages3317 for package type generic3318 returns generic packages3319 for package type golang3320 returns golang packages3321 for package type debian3322 returns debian packages3323 for package type rubygems3324 returns rubygems packages3325 for package type helm3326 returns helm packages3327 for package type terraform_module3328 returns terraform_module packages3329 for package type rpm3330 returns rpm packages3331 for package type ml_model3332 returns ml_model packages3333 filtering on package_name3334 returns the named package3335 behaves like with versionless packages3336 with versionless package3337 behaves like not including the package3338 does not return the package3339 with include_versionless param3340 with true include_versionless param3341 for param true3342 returns the package3343 for param true3344 returns the package3345 for param 13346 returns the package3347 for param 13348 returns the package3349 with falsy include_versionless param3350 for param false3351 behaves like not including the package3352 does not return the package3353 for param3354 behaves like not including the package3355 does not return the package3356 for param3357 behaves like not including the package3358 does not return the package3359 for param false3360 behaves like not including the package3361 does not return the package3362 for param 03363 behaves like not including the package3364 does not return the package3365 for param 03366 behaves like not including the package3367 does not return the package3368 behaves like with status param3369 hidden packages3370 no status param3371 behaves like not including the hidden package3372 does not return the package3373 with hidden status param3374 returns the package3375 bad status param3376 returns the package3377 behaves like does not cause n^2 queries3378 avoids N^2 database queries3379 GET /projects/:id/packages/:package_id3380 without the need for a license3381 with build info3382 does not result in additional queries3383 project is public3384 returns 200 and the package information3385 returns 404 when the package does not exist3386 returns 404 for the package from a different project3387 behaves like no destroy url3388 returns no destroy url3389 with JOB-TOKEN auth3390 behaves like returns package3391 for maintainer3392 returns success response3393 returns a valid response schema3394 behaves like returns package3395 for developer3396 returns success response3397 returns a valid response schema3398 behaves like returns package3399 for reporter3400 returns success response3401 returns a valid response schema3402 behaves like returns package3403 for no_type3404 returns success response3405 returns a valid response schema3406 behaves like returns package3407 for guest3408 returns success response3409 returns a valid response schema3410 with a package without last_downloaded_at3411 returns 200 and the package information3412 project is private3413 returns 404 for non authenticated user3414 returns 404 for a user without access to the project3415 user is a developer3416 returns 200 and the package information3417 behaves like no destroy url3418 returns no destroy url3419 user is a maintainer3420 behaves like destroy url3421 returns destroy url3422 with JOB-TOKEN auth3423 behaves like returns package3424 for maintainer3425 returns success response3426 returns a valid response schema3427 behaves like returns package3428 for developer3429 returns success response3430 returns a valid response schema3431 behaves like returns package3432 for reporter3433 returns success response3434 returns a valid response schema3435 behaves like rejects packages access3436 for no_type3437 behaves like returning response status3438 returns not_found3439 with pipeline3440 returns the pipeline info3441 when package has no default status3442 returns 4043443 GET /projects/:id/packages/:package_id/pipelines3444 without the need for a license3445 when the package does not exist3446 behaves like returning response status3447 returns not_found3448 when there are no pipelines for the package3449 returns an empty response3450 with valid package and pipelines3451 visibility: :public, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3452 behaves like returns package pipelines3453 returns the first page of package pipelines3454 visibility: :public, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3455 behaves like returns package pipelines3456 returns the first page of package pipelines3457 visibility: :public, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3458 behaves like returning response status3459 returns unauthorized3460 visibility: :public, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3461 behaves like returning response status3462 returns unauthorized3463 visibility: :public, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3464 behaves like returns package pipelines3465 returns the first page of package pipelines3466 visibility: :public, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3467 behaves like returns package pipelines3468 returns the first page of package pipelines3469 visibility: :public, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3470 behaves like returning response status3471 returns unauthorized3472 visibility: :public, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3473 behaves like returning response status3474 returns unauthorized3475 visibility: :public, user_role: :anonymous, member: false, token_type: nil, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3476 behaves like returns package pipelines3477 returns the first page of package pipelines3478 visibility: :private, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3479 behaves like returns package pipelines3480 returns the first page of package pipelines3481 visibility: :private, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: true, shared_examples_name: "returning response status", expected_status: :forbidden3482 behaves like returning response status3483 returns forbidden3484 visibility: :private, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3485 behaves like returning response status3486 returns unauthorized3487 visibility: :private, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3488 behaves like returning response status3489 returns unauthorized3490 visibility: :private, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: true, shared_examples_name: "returning response status", expected_status: :not_found3491 behaves like returning response status3492 returns not_found3493 visibility: :private, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: true, shared_examples_name: "returning response status", expected_status: :not_found3494 behaves like returning response status3495 returns not_found3496 visibility: :private, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3497 behaves like returning response status3498 returns unauthorized3499 visibility: :private, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3500 behaves like returning response status3501 returns unauthorized3502 visibility: :private, user_role: :anonymous, member: false, token_type: nil, valid_token: true, shared_examples_name: "returning response status", expected_status: :not_found3503 behaves like returning response status3504 returns not_found3505 visibility: :public, user_role: :developer, member: true, token_type: :job_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3506 behaves like returns package pipelines3507 returns the first page of package pipelines3508 visibility: :public, user_role: :guest, member: true, token_type: :job_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3509 behaves like returns package pipelines3510 returns the first page of package pipelines3511 visibility: :public, user_role: :developer, member: true, token_type: :job_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3512 behaves like returning response status3513 returns unauthorized3514 visibility: :public, user_role: :guest, member: true, token_type: :job_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3515 behaves like returning response status3516 returns unauthorized3517 visibility: :public, user_role: :developer, member: false, token_type: :job_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3518 behaves like returns package pipelines3519 returns the first page of package pipelines3520 visibility: :public, user_role: :guest, member: false, token_type: :job_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3521 behaves like returns package pipelines3522 returns the first page of package pipelines3523 visibility: :public, user_role: :developer, member: false, token_type: :job_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3524 behaves like returning response status3525 returns unauthorized3526 visibility: :public, user_role: :guest, member: false, token_type: :job_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3527 behaves like returning response status3528 returns unauthorized3529 visibility: :private, user_role: :developer, member: true, token_type: :job_token, valid_token: true, shared_examples_name: "returns package pipelines", expected_status: :success3530 behaves like returns package pipelines3531 returns the first page of package pipelines3532 visibility: :private, user_role: :developer, member: true, token_type: :job_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3533 behaves like returning response status3534 returns unauthorized3535 visibility: :private, user_role: :guest, member: true, token_type: :job_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3536 behaves like returning response status3537 returns unauthorized3538 visibility: :private, user_role: :developer, member: false, token_type: :job_token, valid_token: true, shared_examples_name: "returning response status", expected_status: :not_found3539 behaves like returning response status3540 returns not_found3541 visibility: :private, user_role: :guest, member: false, token_type: :job_token, valid_token: true, shared_examples_name: "returning response status", expected_status: :not_found3542 behaves like returning response status3543 returns not_found3544 visibility: :private, user_role: :developer, member: false, token_type: :job_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3545 behaves like returning response status3546 returns unauthorized3547 visibility: :private, user_role: :guest, member: false, token_type: :job_token, valid_token: false, shared_examples_name: "returning response status", expected_status: :unauthorized3548 behaves like returning response status3549 returns unauthorized3550 pagination3551 without pagination params3552 behaves like returns the default number of pipelines3553 is expected to eq 203554 with valid per_page value3555 returns the correct number of pipelines3556 with invalid pagination params3557 with non-positive per_page3558 behaves like returns an error about the invalid per_page value3559 is expected to match /per_page does not have a valid value/3560 with a too high value for per_page3561 behaves like returns an error about the invalid per_page value3562 is expected to match /per_page does not have a valid value/3563 with valid pagination params3564 behaves like an endpoint with keyset pagination3565 on making requests with supported ordering structure3566 includes keyset url params in the url response3567 does not include pagination headers3568 paginates the records correctly3569 on making requests with unsupported ordering structure3570 returns error3571 with no cursor supplied3572 returns first 2 pipelines3573 with a cursor parameter3574 with a cursor for the next page3575 returns the next page of records3576 with a cursor for the previous page3577 returns the previous page of records3578 DELETE /projects/:id/packages/:package_id3579 without the need for a license3580 project is public3581 returns 403 for non authenticated user3582 returns 403 for a user without access to the project3583 project is private3584 returns 404 for non authenticated user3585 returns 404 for a user without access to the project3586 returns 404 when the package does not exist3587 returns 404 for the package from a different project3588 returns 403 for a user without enough permissions3589 returns 2043590 behaves like enqueue a worker to sync a metadata cache3591 enqueues a worker to create a metadata cache3592 with npm_metadata_cache disabled3593 behaves like does not enqueue a worker to sync a metadata cache3594 does not enqueue a worker to sync a metadata cache3595 with JOB-TOKEN auth3596 returns 403 for a user without enough permissions3597 returns 2043598 with a maven package3599 enqueues a sync worker job3600 behaves like does not enqueue a worker to sync a metadata cache3601 does not enqueue a worker to sync a metadata cache3602API::DebianProjectPackages3603 with invalid parameter3604 behaves like Debian packages GET request3605 returns bad_request and expected body3606 GET projects/:id/packages/debian/dists/*distribution/Release.gpg3607 behaves like Debian packages read endpoint3608 with valid container3609 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^-----BEGIN PGP SIGNATURE-----/3610 behaves like Debian packages GET request3611 returns success and expected body3612 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^-----BEGIN PGP SIGNATURE-----/3613 behaves like Debian packages GET request3614 returns success and expected body3615 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^-----BEGIN PGP SIGNATURE-----/3616 behaves like Debian packages GET request3617 returns success and expected body3618 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3619 behaves like Debian packages GET request3620 returns unauthorized3621 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^-----BEGIN PGP SIGNATURE-----/3622 behaves like Debian packages GET request3623 returns success and expected body3624 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3625 behaves like Debian packages GET request3626 returns unauthorized3627 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3628 behaves like Debian packages GET request3629 returns forbidden3630 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3631 behaves like Debian packages GET request3632 returns not_found3633 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3634 behaves like Debian packages GET request3635 returns unauthorized3636 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3637 behaves like Debian packages GET request3638 returns unauthorized3639 behaves like rejects Debian access with unknown container id3640 with an unknown container3641 as anonymous3642 behaves like Debian packages GET request3643 returns unauthorized3644 as authenticated user3645 behaves like Debian packages GET request3646 returns not_found3647 behaves like accept GET request on private project with access to package registry for everyone3648 behaves like Debian packages GET request3649 returns success3650 GET projects/:id/packages/debian/dists/*distribution/Release3651 behaves like Debian packages read endpoint3652 with valid container3653 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^Codename: fixture-distribution\n$/3654 behaves like Debian packages GET request3655 returns success and expected body3656 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^Codename: fixture-distribution\n$/3657 behaves like Debian packages GET request3658 returns success and expected body3659 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^Codename: fixture-distribution\n$/3660 behaves like Debian packages GET request3661 returns success and expected body3662 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3663 behaves like Debian packages GET request3664 returns unauthorized3665 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^Codename: fixture-distribution\n$/3666 behaves like Debian packages GET request3667 returns success and expected body3668 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3669 behaves like Debian packages GET request3670 returns unauthorized3671 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3672 behaves like Debian packages GET request3673 returns forbidden3674 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3675 behaves like Debian packages GET request3676 returns not_found3677 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3678 behaves like Debian packages GET request3679 returns unauthorized3680 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3681 behaves like Debian packages GET request3682 returns unauthorized3683 behaves like rejects Debian access with unknown container id3684 with an unknown container3685 as anonymous3686 behaves like Debian packages GET request3687 returns unauthorized3688 as authenticated user3689 behaves like Debian packages GET request3690 returns not_found3691 behaves like accept GET request on private project with access to package registry for everyone3692 behaves like Debian packages GET request3693 returns success3694 GET projects/:id/packages/debian/dists/*distribution/InRelease3695 behaves like Debian packages read endpoint3696 with valid container3697 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^-----BEGIN PGP SIGNED MESSAGE-----/3698 behaves like Debian packages GET request3699 returns success and expected body3700 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^-----BEGIN PGP SIGNED MESSAGE-----/3701 behaves like Debian packages GET request3702 returns success and expected body3703 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^-----BEGIN PGP SIGNED MESSAGE-----/3704 behaves like Debian packages GET request3705 returns success and expected body3706 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3707 behaves like Debian packages GET request3708 returns unauthorized3709 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^-----BEGIN PGP SIGNED MESSAGE-----/3710 behaves like Debian packages GET request3711 returns success and expected body3712 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3713 behaves like Debian packages GET request3714 returns unauthorized3715 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3716 behaves like Debian packages GET request3717 returns forbidden3718 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3719 behaves like Debian packages GET request3720 returns not_found3721 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3722 behaves like Debian packages GET request3723 returns unauthorized3724 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3725 behaves like Debian packages GET request3726 returns unauthorized3727 behaves like rejects Debian access with unknown container id3728 with an unknown container3729 as anonymous3730 behaves like Debian packages GET request3731 returns unauthorized3732 as authenticated user3733 behaves like Debian packages GET request3734 returns not_found3735 behaves like accept GET request on private project with access to package registry for everyone3736 behaves like Debian packages GET request3737 returns success3738 GET projects/:id/packages/debian/dists/*distribution/:component/binary-:architecture/Packages3739 behaves like Debian packages index endpoint3740 behaves like Debian packages read endpoint3741 with valid container3742 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /Description: This is an incomplete Packages file/3743 behaves like Debian packages GET request3744 returns success and expected body3745 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /Description: This is an incomplete Packages file/3746 behaves like Debian packages GET request3747 returns success and expected body3748 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /Description: This is an incomplete Packages file/3749 behaves like Debian packages GET request3750 returns success and expected body3751 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3752 behaves like Debian packages GET request3753 returns unauthorized3754 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /Description: This is an incomplete Packages file/3755 behaves like Debian packages GET request3756 returns success and expected body3757 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3758 behaves like Debian packages GET request3759 returns unauthorized3760 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3761 behaves like Debian packages GET request3762 returns forbidden3763 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3764 behaves like Debian packages GET request3765 returns not_found3766 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3767 behaves like Debian packages GET request3768 returns unauthorized3769 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3770 behaves like Debian packages GET request3771 returns unauthorized3772 behaves like rejects Debian access with unknown container id3773 with an unknown container3774 as anonymous3775 behaves like Debian packages GET request3776 returns unauthorized3777 as authenticated user3778 behaves like Debian packages GET request3779 returns not_found3780 when no ComponentFile is found3781 behaves like Debian packages read endpoint3782 with valid container3783 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :no_content, expected_body: /^$/3784 behaves like Debian packages GET request3785 returns no_content and expected body3786 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :no_content, expected_body: /^$/3787 behaves like Debian packages GET request3788 returns no_content and expected body3789 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :no_content, expected_body: /^$/3790 behaves like Debian packages GET request3791 returns no_content and expected body3792 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3793 behaves like Debian packages GET request3794 returns unauthorized3795 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :no_content, expected_body: /^$/3796 behaves like Debian packages GET request3797 returns no_content and expected body3798 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3799 behaves like Debian packages GET request3800 returns unauthorized3801 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3802 behaves like Debian packages GET request3803 returns forbidden3804 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3805 behaves like Debian packages GET request3806 returns not_found3807 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3808 behaves like Debian packages GET request3809 returns unauthorized3810 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3811 behaves like Debian packages GET request3812 returns unauthorized3813 behaves like rejects Debian access with unknown container id3814 with an unknown container3815 as anonymous3816 behaves like Debian packages GET request3817 returns unauthorized3818 as authenticated user3819 behaves like Debian packages GET request3820 returns not_found3821 behaves like accept GET request on private project with access to package registry for everyone3822 behaves like Debian packages GET request3823 returns success3824 GET projects/:id/packages/debian/dists/*distribution/:component/binary-:architecture/Packages.gz3825 behaves like Debian packages read endpoint3826 with valid container3827 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :not_found, expected_body: /Format gz is not supported/3828 behaves like Debian packages GET request3829 returns not_found and expected body3830 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: /Format gz is not supported/3831 behaves like Debian packages GET request3832 returns not_found and expected body3833 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :not_found, expected_body: /Format gz is not supported/3834 behaves like Debian packages GET request3835 returns not_found and expected body3836 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3837 behaves like Debian packages GET request3838 returns unauthorized3839 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: /Format gz is not supported/3840 behaves like Debian packages GET request3841 returns not_found and expected body3842 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3843 behaves like Debian packages GET request3844 returns unauthorized3845 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3846 behaves like Debian packages GET request3847 returns forbidden3848 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3849 behaves like Debian packages GET request3850 returns not_found3851 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3852 behaves like Debian packages GET request3853 returns unauthorized3854 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3855 behaves like Debian packages GET request3856 returns unauthorized3857 behaves like rejects Debian access with unknown container id3858 with an unknown container3859 as anonymous3860 behaves like Debian packages GET request3861 returns unauthorized3862 as authenticated user3863 behaves like Debian packages GET request3864 returns not_found3865 GET projects/:id/packages/debian/dists/*distribution/:component/binary-:architecture/by-hash/SHA256/:file_sha2563866 behaves like Debian packages index sha256 endpoint3867 behaves like Debian packages read endpoint3868 with valid container3869 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/3870 behaves like Debian packages GET request3871 returns success and expected body3872 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/3873 behaves like Debian packages GET request3874 returns success and expected body3875 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/3876 behaves like Debian packages GET request3877 returns success and expected body3878 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3879 behaves like Debian packages GET request3880 returns unauthorized3881 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/3882 behaves like Debian packages GET request3883 returns success and expected body3884 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3885 behaves like Debian packages GET request3886 returns unauthorized3887 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3888 behaves like Debian packages GET request3889 returns forbidden3890 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3891 behaves like Debian packages GET request3892 returns not_found3893 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3894 behaves like Debian packages GET request3895 returns unauthorized3896 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3897 behaves like Debian packages GET request3898 returns unauthorized3899 behaves like rejects Debian access with unknown container id3900 with an unknown container3901 as anonymous3902 behaves like Debian packages GET request3903 returns unauthorized3904 as authenticated user3905 behaves like Debian packages GET request3906 returns not_found3907 with empty checksum3908 behaves like Debian packages read endpoint3909 with valid container3910 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :no_content, expected_body: /^$/3911 behaves like Debian packages GET request3912 returns no_content and expected body3913 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :no_content, expected_body: /^$/3914 behaves like Debian packages GET request3915 returns no_content and expected body3916 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :no_content, expected_body: /^$/3917 behaves like Debian packages GET request3918 returns no_content and expected body3919 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3920 behaves like Debian packages GET request3921 returns unauthorized3922 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :no_content, expected_body: /^$/3923 behaves like Debian packages GET request3924 returns no_content and expected body3925 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3926 behaves like Debian packages GET request3927 returns unauthorized3928 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3929 behaves like Debian packages GET request3930 returns forbidden3931 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3932 behaves like Debian packages GET request3933 returns not_found3934 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3935 behaves like Debian packages GET request3936 returns unauthorized3937 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3938 behaves like Debian packages GET request3939 returns unauthorized3940 behaves like rejects Debian access with unknown container id3941 with an unknown container3942 as anonymous3943 behaves like Debian packages GET request3944 returns unauthorized3945 as authenticated user3946 behaves like Debian packages GET request3947 returns not_found3948 when ComponentFile is not found3949 behaves like Debian packages read endpoint3950 with valid container3951 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/3952 behaves like Debian packages GET request3953 returns not_found and expected body3954 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/3955 behaves like Debian packages GET request3956 returns not_found and expected body3957 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/3958 behaves like Debian packages GET request3959 returns not_found and expected body3960 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3961 behaves like Debian packages GET request3962 returns unauthorized3963 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/3964 behaves like Debian packages GET request3965 returns not_found and expected body3966 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil3967 behaves like Debian packages GET request3968 returns unauthorized3969 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil3970 behaves like Debian packages GET request3971 returns forbidden3972 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil3973 behaves like Debian packages GET request3974 returns not_found3975 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3976 behaves like Debian packages GET request3977 returns unauthorized3978 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil3979 behaves like Debian packages GET request3980 returns unauthorized3981 behaves like rejects Debian access with unknown container id3982 with an unknown container3983 as anonymous3984 behaves like Debian packages GET request3985 returns unauthorized3986 as authenticated user3987 behaves like Debian packages GET request3988 returns not_found3989 behaves like accept GET request on private project with access to package registry for everyone3990 behaves like Debian packages GET request3991 returns success3992 GET projects/:id/packages/debian/dists/*distribution/:component/source/Sources3993 behaves like Debian packages index endpoint3994 behaves like Debian packages read endpoint3995 with valid container3996 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^Description: This is an incomplete Sources file$/3997 behaves like Debian packages GET request3998 returns success and expected body3999 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^Description: This is an incomplete Sources file$/4000 behaves like Debian packages GET request4001 returns success and expected body4002 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^Description: This is an incomplete Sources file$/4003 behaves like Debian packages GET request4004 returns success and expected body4005 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4006 behaves like Debian packages GET request4007 returns unauthorized4008 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^Description: This is an incomplete Sources file$/4009 behaves like Debian packages GET request4010 returns success and expected body4011 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4012 behaves like Debian packages GET request4013 returns unauthorized4014 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4015 behaves like Debian packages GET request4016 returns forbidden4017 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4018 behaves like Debian packages GET request4019 returns not_found4020 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4021 behaves like Debian packages GET request4022 returns unauthorized4023 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4024 behaves like Debian packages GET request4025 returns unauthorized4026 behaves like rejects Debian access with unknown container id4027 with an unknown container4028 as anonymous4029 behaves like Debian packages GET request4030 returns unauthorized4031 as authenticated user4032 behaves like Debian packages GET request4033 returns not_found4034 when no ComponentFile is found4035 behaves like Debian packages read endpoint4036 with valid container4037 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4038 behaves like Debian packages GET request4039 returns no_content and expected body4040 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4041 behaves like Debian packages GET request4042 returns no_content and expected body4043 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4044 behaves like Debian packages GET request4045 returns no_content and expected body4046 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4047 behaves like Debian packages GET request4048 returns unauthorized4049 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4050 behaves like Debian packages GET request4051 returns no_content and expected body4052 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4053 behaves like Debian packages GET request4054 returns unauthorized4055 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4056 behaves like Debian packages GET request4057 returns forbidden4058 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4059 behaves like Debian packages GET request4060 returns not_found4061 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4062 behaves like Debian packages GET request4063 returns unauthorized4064 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4065 behaves like Debian packages GET request4066 returns unauthorized4067 behaves like rejects Debian access with unknown container id4068 with an unknown container4069 as anonymous4070 behaves like Debian packages GET request4071 returns unauthorized4072 as authenticated user4073 behaves like Debian packages GET request4074 returns not_found4075 behaves like accept GET request on private project with access to package registry for everyone4076 behaves like Debian packages GET request4077 returns success4078 GET projects/:id/packages/debian/dists/*distribution/:component/source/by-hash/SHA256/:file_sha2564079 behaves like Debian packages index sha256 endpoint4080 behaves like Debian packages read endpoint4081 with valid container4082 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/4083 behaves like Debian packages GET request4084 returns success and expected body4085 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/4086 behaves like Debian packages GET request4087 returns success and expected body4088 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/4089 behaves like Debian packages GET request4090 returns success and expected body4091 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4092 behaves like Debian packages GET request4093 returns unauthorized4094 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/4095 behaves like Debian packages GET request4096 returns success and expected body4097 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4098 behaves like Debian packages GET request4099 returns unauthorized4100 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4101 behaves like Debian packages GET request4102 returns forbidden4103 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4104 behaves like Debian packages GET request4105 returns not_found4106 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4107 behaves like Debian packages GET request4108 returns unauthorized4109 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4110 behaves like Debian packages GET request4111 returns unauthorized4112 behaves like rejects Debian access with unknown container id4113 with an unknown container4114 as anonymous4115 behaves like Debian packages GET request4116 returns unauthorized4117 as authenticated user4118 behaves like Debian packages GET request4119 returns not_found4120 with empty checksum4121 behaves like Debian packages read endpoint4122 with valid container4123 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4124 behaves like Debian packages GET request4125 returns no_content and expected body4126 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4127 behaves like Debian packages GET request4128 returns no_content and expected body4129 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4130 behaves like Debian packages GET request4131 returns no_content and expected body4132 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4133 behaves like Debian packages GET request4134 returns unauthorized4135 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4136 behaves like Debian packages GET request4137 returns no_content and expected body4138 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4139 behaves like Debian packages GET request4140 returns unauthorized4141 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4142 behaves like Debian packages GET request4143 returns forbidden4144 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4145 behaves like Debian packages GET request4146 returns not_found4147 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4148 behaves like Debian packages GET request4149 returns unauthorized4150 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4151 behaves like Debian packages GET request4152 returns unauthorized4153 behaves like rejects Debian access with unknown container id4154 with an unknown container4155 as anonymous4156 behaves like Debian packages GET request4157 returns unauthorized4158 as authenticated user4159 behaves like Debian packages GET request4160 returns not_found4161 when ComponentFile is not found4162 behaves like Debian packages read endpoint4163 with valid container4164 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/4165 behaves like Debian packages GET request4166 returns not_found and expected body4167 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/4168 behaves like Debian packages GET request4169 returns not_found and expected body4170 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/4171 behaves like Debian packages GET request4172 returns not_found and expected body4173 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4174 behaves like Debian packages GET request4175 returns unauthorized4176 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/4177 behaves like Debian packages GET request4178 returns not_found and expected body4179 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4180 behaves like Debian packages GET request4181 returns unauthorized4182 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4183 behaves like Debian packages GET request4184 returns forbidden4185 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4186 behaves like Debian packages GET request4187 returns not_found4188 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4189 behaves like Debian packages GET request4190 returns unauthorized4191 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4192 behaves like Debian packages GET request4193 returns unauthorized4194 behaves like rejects Debian access with unknown container id4195 with an unknown container4196 as anonymous4197 behaves like Debian packages GET request4198 returns unauthorized4199 as authenticated user4200 behaves like Debian packages GET request4201 returns not_found4202 behaves like accept GET request on private project with access to package registry for everyone4203 behaves like Debian packages GET request4204 returns success4205 GET projects/:id/packages/debian/dists/*distribution/:component/debian-installer/binary-:architecture/Packages4206 behaves like Debian packages index endpoint4207 behaves like Debian packages read endpoint4208 with valid container4209 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /Description: This is an incomplete D-I Packages file/4210 behaves like Debian packages GET request4211 returns success and expected body4212 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /Description: This is an incomplete D-I Packages file/4213 behaves like Debian packages GET request4214 returns success and expected body4215 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /Description: This is an incomplete D-I Packages file/4216 behaves like Debian packages GET request4217 returns success and expected body4218 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4219 behaves like Debian packages GET request4220 returns unauthorized4221 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /Description: This is an incomplete D-I Packages file/4222 behaves like Debian packages GET request4223 returns success and expected body4224 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4225 behaves like Debian packages GET request4226 returns unauthorized4227 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4228 behaves like Debian packages GET request4229 returns forbidden4230 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4231 behaves like Debian packages GET request4232 returns not_found4233 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4234 behaves like Debian packages GET request4235 returns unauthorized4236 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4237 behaves like Debian packages GET request4238 returns unauthorized4239 behaves like rejects Debian access with unknown container id4240 with an unknown container4241 as anonymous4242 behaves like Debian packages GET request4243 returns unauthorized4244 as authenticated user4245 behaves like Debian packages GET request4246 returns not_found4247 when no ComponentFile is found4248 behaves like Debian packages read endpoint4249 with valid container4250 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4251 behaves like Debian packages GET request4252 returns no_content and expected body4253 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4254 behaves like Debian packages GET request4255 returns no_content and expected body4256 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4257 behaves like Debian packages GET request4258 returns no_content and expected body4259 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4260 behaves like Debian packages GET request4261 returns unauthorized4262 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4263 behaves like Debian packages GET request4264 returns no_content and expected body4265 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4266 behaves like Debian packages GET request4267 returns unauthorized4268 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4269 behaves like Debian packages GET request4270 returns forbidden4271 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4272 behaves like Debian packages GET request4273 returns not_found4274 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4275 behaves like Debian packages GET request4276 returns unauthorized4277 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4278 behaves like Debian packages GET request4279 returns unauthorized4280 behaves like rejects Debian access with unknown container id4281 with an unknown container4282 as anonymous4283 behaves like Debian packages GET request4284 returns unauthorized4285 as authenticated user4286 behaves like Debian packages GET request4287 returns not_found4288 behaves like accept GET request on private project with access to package registry for everyone4289 behaves like Debian packages GET request4290 returns success4291 GET projects/:id/packages/debian/dists/*distribution/:component/debian-installer/binary-:architecture/Packages.gz4292 behaves like Debian packages read endpoint4293 with valid container4294 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :not_found, expected_body: /Format gz is not supported/4295 behaves like Debian packages GET request4296 returns not_found and expected body4297 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: /Format gz is not supported/4298 behaves like Debian packages GET request4299 returns not_found and expected body4300 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :not_found, expected_body: /Format gz is not supported/4301 behaves like Debian packages GET request4302 returns not_found and expected body4303 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4304 behaves like Debian packages GET request4305 returns unauthorized4306 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: /Format gz is not supported/4307 behaves like Debian packages GET request4308 returns not_found and expected body4309 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4310 behaves like Debian packages GET request4311 returns unauthorized4312 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4313 behaves like Debian packages GET request4314 returns forbidden4315 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4316 behaves like Debian packages GET request4317 returns not_found4318 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4319 behaves like Debian packages GET request4320 returns unauthorized4321 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4322 behaves like Debian packages GET request4323 returns unauthorized4324 behaves like rejects Debian access with unknown container id4325 with an unknown container4326 as anonymous4327 behaves like Debian packages GET request4328 returns unauthorized4329 as authenticated user4330 behaves like Debian packages GET request4331 returns not_found4332 GET projects/:id/packages/debian/dists/*distribution/:component/debian-installer/binary-:architecture/by-hash/SHA256/:file_sha2564333 behaves like Debian packages index sha256 endpoint4334 behaves like Debian packages read endpoint4335 with valid container4336 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/4337 behaves like Debian packages GET request4338 returns success and expected body4339 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/4340 behaves like Debian packages GET request4341 returns success and expected body4342 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/4343 behaves like Debian packages GET request4344 returns success and expected body4345 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4346 behaves like Debian packages GET request4347 returns unauthorized4348 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^Other SHA256$/4349 behaves like Debian packages GET request4350 returns success and expected body4351 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4352 behaves like Debian packages GET request4353 returns unauthorized4354 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4355 behaves like Debian packages GET request4356 returns forbidden4357 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4358 behaves like Debian packages GET request4359 returns not_found4360 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4361 behaves like Debian packages GET request4362 returns unauthorized4363 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4364 behaves like Debian packages GET request4365 returns unauthorized4366 behaves like rejects Debian access with unknown container id4367 with an unknown container4368 as anonymous4369 behaves like Debian packages GET request4370 returns unauthorized4371 as authenticated user4372 behaves like Debian packages GET request4373 returns not_found4374 with empty checksum4375 behaves like Debian packages read endpoint4376 with valid container4377 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4378 behaves like Debian packages GET request4379 returns no_content and expected body4380 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4381 behaves like Debian packages GET request4382 returns no_content and expected body4383 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4384 behaves like Debian packages GET request4385 returns no_content and expected body4386 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4387 behaves like Debian packages GET request4388 returns unauthorized4389 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :no_content, expected_body: /^$/4390 behaves like Debian packages GET request4391 returns no_content and expected body4392 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4393 behaves like Debian packages GET request4394 returns unauthorized4395 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4396 behaves like Debian packages GET request4397 returns forbidden4398 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4399 behaves like Debian packages GET request4400 returns not_found4401 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4402 behaves like Debian packages GET request4403 returns unauthorized4404 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4405 behaves like Debian packages GET request4406 returns unauthorized4407 behaves like rejects Debian access with unknown container id4408 with an unknown container4409 as anonymous4410 behaves like Debian packages GET request4411 returns unauthorized4412 as authenticated user4413 behaves like Debian packages GET request4414 returns not_found4415 when ComponentFile is not found4416 behaves like Debian packages read endpoint4417 with valid container4418 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/4419 behaves like Debian packages GET request4420 returns not_found and expected body4421 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/4422 behaves like Debian packages GET request4423 returns not_found and expected body4424 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/4425 behaves like Debian packages GET request4426 returns not_found and expected body4427 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4428 behaves like Debian packages GET request4429 returns unauthorized4430 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: /^{"message":"404 Not Found"}$/4431 behaves like Debian packages GET request4432 returns not_found and expected body4433 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4434 behaves like Debian packages GET request4435 returns unauthorized4436 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4437 behaves like Debian packages GET request4438 returns forbidden4439 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4440 behaves like Debian packages GET request4441 returns not_found4442 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4443 behaves like Debian packages GET request4444 returns unauthorized4445 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4446 behaves like Debian packages GET request4447 returns unauthorized4448 behaves like rejects Debian access with unknown container id4449 with an unknown container4450 as anonymous4451 behaves like Debian packages GET request4452 returns unauthorized4453 as authenticated user4454 behaves like Debian packages GET request4455 returns not_found4456 behaves like accept GET request on private project with access to package registry for everyone4457 behaves like Debian packages GET request4458 returns success4459 GET projects/:id/packages/debian/pool/:codename/:letter/:package_name/:package_version/:file_name4460 file_name: "sample_1.2.3~alpha2.tar.xz", success_body: /^.7zXZ/4461 behaves like Debian packages read endpoint4462 with valid container4463 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^.7zXZ/4464 behaves like Debian packages GET request4465 returns success and expected body4466 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^.7zXZ/4467 behaves like Debian packages GET request4468 returns success and expected body4469 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^.7zXZ/4470 behaves like Debian packages GET request4471 returns success and expected body4472 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4473 behaves like Debian packages GET request4474 returns unauthorized4475 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^.7zXZ/4476 behaves like Debian packages GET request4477 returns success and expected body4478 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4479 behaves like Debian packages GET request4480 returns unauthorized4481 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4482 behaves like Debian packages GET request4483 returns forbidden4484 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4485 behaves like Debian packages GET request4486 returns not_found4487 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4488 behaves like Debian packages GET request4489 returns unauthorized4490 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4491 behaves like Debian packages GET request4492 returns unauthorized4493 behaves like rejects Debian access with unknown container id4494 with an unknown container4495 as anonymous4496 behaves like Debian packages GET request4497 returns unauthorized4498 as authenticated user4499 behaves like Debian packages GET request4500 returns not_found4501 for bumping last downloaded at4502 behaves like bumping the package last downloaded at field4503 bumps last_downloaded_at4504 file_name: "sample_1.2.3~alpha2.dsc", success_body: /^Format: 3.0 \(native\)/4505 behaves like Debian packages read endpoint4506 with valid container4507 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^Format: 3.0 \(native\)/4508 behaves like Debian packages GET request4509 returns success and expected body4510 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^Format: 3.0 \(native\)/4511 behaves like Debian packages GET request4512 returns success and expected body4513 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^Format: 3.0 \(native\)/4514 behaves like Debian packages GET request4515 returns success and expected body4516 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4517 behaves like Debian packages GET request4518 returns unauthorized4519 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^Format: 3.0 \(native\)/4520 behaves like Debian packages GET request4521 returns success and expected body4522 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4523 behaves like Debian packages GET request4524 returns unauthorized4525 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4526 behaves like Debian packages GET request4527 returns forbidden4528 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4529 behaves like Debian packages GET request4530 returns not_found4531 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4532 behaves like Debian packages GET request4533 returns unauthorized4534 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4535 behaves like Debian packages GET request4536 returns unauthorized4537 behaves like rejects Debian access with unknown container id4538 with an unknown container4539 as anonymous4540 behaves like Debian packages GET request4541 returns unauthorized4542 as authenticated user4543 behaves like Debian packages GET request4544 returns not_found4545 for bumping last downloaded at4546 behaves like bumping the package last downloaded at field4547 bumps last_downloaded_at4548 file_name: "libsample0_1.2.3~alpha2_amd64.deb", success_body: /^!<arch>/4549 behaves like Debian packages read endpoint4550 with valid container4551 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4552 behaves like Debian packages GET request4553 returns success and expected body4554 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4555 behaves like Debian packages GET request4556 returns success and expected body4557 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4558 behaves like Debian packages GET request4559 returns success and expected body4560 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4561 behaves like Debian packages GET request4562 returns unauthorized4563 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4564 behaves like Debian packages GET request4565 returns success and expected body4566 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4567 behaves like Debian packages GET request4568 returns unauthorized4569 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4570 behaves like Debian packages GET request4571 returns forbidden4572 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4573 behaves like Debian packages GET request4574 returns not_found4575 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4576 behaves like Debian packages GET request4577 returns unauthorized4578 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4579 behaves like Debian packages GET request4580 returns unauthorized4581 behaves like rejects Debian access with unknown container id4582 with an unknown container4583 as anonymous4584 behaves like Debian packages GET request4585 returns unauthorized4586 as authenticated user4587 behaves like Debian packages GET request4588 returns not_found4589 for bumping last downloaded at4590 behaves like bumping the package last downloaded at field4591 bumps last_downloaded_at4592 file_name: "sample-udeb_1.2.3~alpha2_amd64.udeb", success_body: /^!<arch>/4593 behaves like Debian packages read endpoint4594 with valid container4595 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4596 behaves like Debian packages GET request4597 returns success and expected body4598 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4599 behaves like Debian packages GET request4600 returns success and expected body4601 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4602 behaves like Debian packages GET request4603 returns success and expected body4604 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4605 behaves like Debian packages GET request4606 returns unauthorized4607 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4608 behaves like Debian packages GET request4609 returns success and expected body4610 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4611 behaves like Debian packages GET request4612 returns unauthorized4613 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4614 behaves like Debian packages GET request4615 returns forbidden4616 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4617 behaves like Debian packages GET request4618 returns not_found4619 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4620 behaves like Debian packages GET request4621 returns unauthorized4622 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4623 behaves like Debian packages GET request4624 returns unauthorized4625 behaves like rejects Debian access with unknown container id4626 with an unknown container4627 as anonymous4628 behaves like Debian packages GET request4629 returns unauthorized4630 as authenticated user4631 behaves like Debian packages GET request4632 returns not_found4633 for bumping last downloaded at4634 behaves like bumping the package last downloaded at field4635 bumps last_downloaded_at4636 file_name: "sample-ddeb_1.2.3~alpha2_amd64.ddeb", success_body: /^!<arch>/4637 behaves like Debian packages read endpoint4638 with valid container4639 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4640 behaves like Debian packages GET request4641 returns success and expected body4642 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4643 behaves like Debian packages GET request4644 returns success and expected body4645 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4646 behaves like Debian packages GET request4647 returns success and expected body4648 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4649 behaves like Debian packages GET request4650 returns unauthorized4651 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /^!<arch>/4652 behaves like Debian packages GET request4653 returns success and expected body4654 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4655 behaves like Debian packages GET request4656 returns unauthorized4657 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4658 behaves like Debian packages GET request4659 returns forbidden4660 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4661 behaves like Debian packages GET request4662 returns not_found4663 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4664 behaves like Debian packages GET request4665 returns unauthorized4666 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4667 behaves like Debian packages GET request4668 returns unauthorized4669 behaves like rejects Debian access with unknown container id4670 with an unknown container4671 as anonymous4672 behaves like Debian packages GET request4673 returns unauthorized4674 as authenticated user4675 behaves like Debian packages GET request4676 returns not_found4677 for bumping last downloaded at4678 behaves like bumping the package last downloaded at field4679 bumps last_downloaded_at4680 file_name: "sample_1.2.3~alpha2_amd64.buildinfo", success_body: /Build-Tainted-By/4681 behaves like Debian packages read endpoint4682 with valid container4683 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /Build-Tainted-By/4684 behaves like Debian packages GET request4685 returns success and expected body4686 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /Build-Tainted-By/4687 behaves like Debian packages GET request4688 returns success and expected body4689 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /Build-Tainted-By/4690 behaves like Debian packages GET request4691 returns success and expected body4692 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4693 behaves like Debian packages GET request4694 returns unauthorized4695 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /Build-Tainted-By/4696 behaves like Debian packages GET request4697 returns success and expected body4698 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4699 behaves like Debian packages GET request4700 returns unauthorized4701 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4702 behaves like Debian packages GET request4703 returns forbidden4704 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4705 behaves like Debian packages GET request4706 returns not_found4707 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4708 behaves like Debian packages GET request4709 returns unauthorized4710 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4711 behaves like Debian packages GET request4712 returns unauthorized4713 behaves like rejects Debian access with unknown container id4714 with an unknown container4715 as anonymous4716 behaves like Debian packages GET request4717 returns unauthorized4718 as authenticated user4719 behaves like Debian packages GET request4720 returns not_found4721 for bumping last downloaded at4722 behaves like bumping the package last downloaded at field4723 bumps last_downloaded_at4724 file_name: "sample_1.2.3~alpha2_amd64.changes", success_body: /urgency=medium/4725 behaves like Debian packages read endpoint4726 with valid container4727 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :success, expected_body: /urgency=medium/4728 behaves like Debian packages GET request4729 returns success and expected body4730 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :success, expected_body: /urgency=medium/4731 behaves like Debian packages GET request4732 returns success and expected body4733 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :success, expected_body: /urgency=medium/4734 behaves like Debian packages GET request4735 returns success and expected body4736 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4737 behaves like Debian packages GET request4738 returns unauthorized4739 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :success, expected_body: /urgency=medium/4740 behaves like Debian packages GET request4741 returns success and expected body4742 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4743 behaves like Debian packages GET request4744 returns unauthorized4745 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4746 behaves like Debian packages GET request4747 returns forbidden4748 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4749 behaves like Debian packages GET request4750 returns not_found4751 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4752 behaves like Debian packages GET request4753 returns unauthorized4754 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4755 behaves like Debian packages GET request4756 returns unauthorized4757 behaves like rejects Debian access with unknown container id4758 with an unknown container4759 as anonymous4760 behaves like Debian packages GET request4761 returns unauthorized4762 as authenticated user4763 behaves like Debian packages GET request4764 returns not_found4765 for bumping last downloaded at4766 behaves like bumping the package last downloaded at field4767 bumps last_downloaded_at4768 behaves like accept GET request on private project with access to package registry for everyone4769 behaves like Debian packages GET request4770 returns success4771 PUT projects/:id/packages/debian/:file_name4772 with a deb4773 behaves like Debian packages write endpoint4774 with valid container4775 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :created, expected_body: nil4776 behaves like Debian packages upload request4777 creates package files4778 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4779 behaves like Debian packages upload request4780 returns unauthorized4781 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4782 behaves like Debian packages upload request4783 returns forbidden4784 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :forbidden, expected_body: nil4785 behaves like Debian packages upload request4786 returns forbidden4787 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4788 behaves like Debian packages upload request4789 returns unauthorized4790 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4791 behaves like Debian packages upload request4792 returns unauthorized4793 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :created, expected_body: nil4794 behaves like Debian packages upload request4795 creates package files4796 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4797 behaves like Debian packages upload request4798 returns forbidden4799 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4800 behaves like Debian packages upload request4801 returns not_found4802 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4803 behaves like Debian packages upload request4804 returns unauthorized4805 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4806 behaves like Debian packages upload request4807 returns unauthorized4808 behaves like rejects Debian access with unknown container id4809 with an unknown container4810 as anonymous4811 behaves like Debian packages GET request4812 returns unauthorized4813 as authenticated user4814 behaves like Debian packages GET request4815 returns not_found4816 behaves like Debian packages endpoint catching ObjectStorage::RemoteStoreError4817 returns forbidden4818 with codename and component4819 behaves like Debian packages write endpoint4820 with valid container4821 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :created, expected_body: nil4822 behaves like Debian packages upload request4823 creates package files4824 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4825 behaves like Debian packages upload request4826 returns unauthorized4827 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4828 behaves like Debian packages upload request4829 returns forbidden4830 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :forbidden, expected_body: nil4831 behaves like Debian packages upload request4832 returns forbidden4833 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4834 behaves like Debian packages upload request4835 returns unauthorized4836 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4837 behaves like Debian packages upload request4838 returns unauthorized4839 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :created, expected_body: nil4840 behaves like Debian packages upload request4841 creates package files4842 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4843 behaves like Debian packages upload request4844 returns forbidden4845 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4846 behaves like Debian packages upload request4847 returns not_found4848 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4849 behaves like Debian packages upload request4850 returns unauthorized4851 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4852 behaves like Debian packages upload request4853 returns unauthorized4854 behaves like rejects Debian access with unknown container id4855 with an unknown container4856 as anonymous4857 behaves like Debian packages GET request4858 returns unauthorized4859 as authenticated user4860 behaves like Debian packages GET request4861 returns not_found4862 with codename and without component4863 behaves like Debian packages GET request4864 returns bad_request and expected body4865 with a buildinfo4866 behaves like Debian packages upload request4867 creates package files4868 with codename and component4869 behaves like Debian packages upload request4870 returns bad_request and expected body4871 with a changes file4872 behaves like Debian packages write endpoint4873 with valid container4874 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :created, expected_body: nil4875 behaves like Debian packages upload request4876 creates package files4877 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4878 behaves like Debian packages upload request4879 returns unauthorized4880 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4881 behaves like Debian packages upload request4882 returns forbidden4883 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :forbidden, expected_body: nil4884 behaves like Debian packages upload request4885 returns forbidden4886 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4887 behaves like Debian packages upload request4888 returns unauthorized4889 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4890 behaves like Debian packages upload request4891 returns unauthorized4892 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :created, expected_body: nil4893 behaves like Debian packages upload request4894 creates package files4895 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4896 behaves like Debian packages upload request4897 returns forbidden4898 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4899 behaves like Debian packages upload request4900 returns not_found4901 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4902 behaves like Debian packages upload request4903 returns unauthorized4904 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4905 behaves like Debian packages upload request4906 returns unauthorized4907 behaves like rejects Debian access with unknown container id4908 with an unknown container4909 as anonymous4910 behaves like Debian packages GET request4911 returns unauthorized4912 as authenticated user4913 behaves like Debian packages GET request4914 returns not_found4915 PUT projects/:id/packages/debian/:file_name/authorize4916 behaves like Debian packages write endpoint4917 with valid container4918 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :created, expected_body: nil4919 behaves like Debian packages upload authorize request4920 authorizes package file upload4921 without a valid token4922 rejects request4923 bypassing gitlab-workhorse4924 rejects request4925 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4926 behaves like Debian packages upload authorize request4927 returns unauthorized4928 visibility_level: :public, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4929 behaves like Debian packages upload authorize request4930 returns forbidden4931 visibility_level: :public, user_type: :not_a_member, auth_method: :basic, expected_status: :forbidden, expected_body: nil4932 behaves like Debian packages upload authorize request4933 returns forbidden4934 visibility_level: :public, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4935 behaves like Debian packages upload authorize request4936 returns unauthorized4937 visibility_level: :public, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4938 behaves like Debian packages upload authorize request4939 returns unauthorized4940 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :created, expected_body: nil4941 behaves like Debian packages upload authorize request4942 authorizes package file upload4943 without a valid token4944 rejects request4945 bypassing gitlab-workhorse4946 rejects request4947 visibility_level: :private, user_type: :guest, auth_method: :basic, expected_status: :forbidden, expected_body: nil4948 behaves like Debian packages upload authorize request4949 returns forbidden4950 visibility_level: :private, user_type: :not_a_member, auth_method: :basic, expected_status: :not_found, expected_body: nil4951 behaves like Debian packages upload authorize request4952 returns not_found4953 visibility_level: :private, user_type: :anonymous, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4954 behaves like Debian packages upload authorize request4955 returns unauthorized4956 visibility_level: :private, user_type: :invalid_token, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4957 behaves like Debian packages upload authorize request4958 returns unauthorized4959 behaves like rejects Debian access with unknown container id4960 with an unknown container4961 as anonymous4962 behaves like Debian packages GET request4963 returns unauthorized4964 as authenticated user4965 behaves like Debian packages GET request4966 returns not_found4967API::Invitations4968 POST /projects/:id/invitations4969 does not exceed expected queries count for emails4970 does not exceed expected queries count for user_ids4971 does not exceed expected queries count with secondary emails4972 with admin_group_member FF disabled4973 behaves like POST /:source_type/:id/invitations4974 with :source_type == projects4975 updates an already existing active member4976 returns 400 when the invite params of email and user_id are not sent4977 returns 400 when the email is blank4978 returns 400 when the user_id is blank4979 returns 400 when the email list is not a valid format4980 returns 400 when the comma-separated email list is not a valid format4981 returns 400 when access_level is not given4982 returns 400 when access_level is not valid4983 behaves like a 404 response when source is private4984 returns 4044985 when authenticated as a non-member or member with insufficient membership management rights4986 when the user does not have rights to manage members4987 as a access_requester4988 behaves like a 403 response when user does not have rights to manage members of a specific access level4989 returns 4034990 as a stranger4991 behaves like a 403 response when user does not have rights to manage members of a specific access level4992 returns 4034993 as a developer4994 behaves like a 403 response when user does not have rights to manage members of a specific access level4995 returns 4034996 when the user has the rights to manage members but tries to manage members with a higher access level4997 when an invitee is added as OWNER4998 behaves like a 403 response when user does not have rights to manage members of a specific access level4999 returns 4035000 when an access_requester is added as OWNER5001 behaves like a 403 response when user does not have rights to manage members of a specific access level5002 returns 4035003 when authenticated as a maintainer/owner5004 adds a new member by email5005 adds a new member by confirmed primary email5006 adds a new member by confirmed secondary email5007 adds a new member as an invite for unconfirmed primary email5008 adds a new member as an invite for unconfirmed secondary email5009 adds a new member by user_id5010 adds new members with email and user_id5011 invites a list of new email addresses5012 invites a list of new email addresses and user ids5013 and new member is already a requester5014 transforms the requester into a proper member5015 when invitee is already an invited member5016 updates the member for that email5017 access levels5018 does not create the member if group level is higher5019 creates the member if group level is lower5020 access expiry date5021 when set to a date in the past5022 does not create a member5023 when set to a date in the future5024 invites a member5025 with invite_source considerations5026 tracks the invite source as api5027 tracks the invite source from params5028 when adding project bot5029 returns error5030 with admin_group_member FF enabled5031 behaves like POST /:source_type/:id/invitations5032 with :source_type == projects5033 updates an already existing active member5034 returns 400 when the invite params of email and user_id are not sent5035 returns 400 when the email is blank5036 returns 400 when the user_id is blank5037 returns 400 when the email list is not a valid format5038 returns 400 when the comma-separated email list is not a valid format5039 returns 400 when access_level is not given5040 returns 400 when access_level is not valid5041 behaves like a 404 response when source is private5042 returns 4045043 when authenticated as a non-member or member with insufficient membership management rights5044 when the user does not have rights to manage members5045 as a access_requester5046 behaves like a 403 response when user does not have rights to manage members of a specific access level5047 returns 4035048 as a stranger5049 behaves like a 403 response when user does not have rights to manage members of a specific access level5050 returns 4035051 as a developer5052 behaves like a 403 response when user does not have rights to manage members of a specific access level5053 returns 4035054 when the user has the rights to manage members but tries to manage members with a higher access level5055 when an invitee is added as OWNER5056 behaves like a 403 response when user does not have rights to manage members of a specific access level5057 returns 4035058 when an access_requester is added as OWNER5059 behaves like a 403 response when user does not have rights to manage members of a specific access level5060 returns 4035061 when authenticated as a maintainer/owner5062 adds a new member by email5063 adds a new member by confirmed primary email5064 adds a new member by confirmed secondary email5065 adds a new member as an invite for unconfirmed primary email5066 adds a new member as an invite for unconfirmed secondary email5067 adds a new member by user_id5068 adds new members with email and user_id5069 invites a list of new email addresses5070 invites a list of new email addresses and user ids5071 and new member is already a requester5072 transforms the requester into a proper member5073 when invitee is already an invited member5074 updates the member for that email5075 access levels5076 does not create the member if group level is higher5077 creates the member if group level is lower5078 access expiry date5079 when set to a date in the past5080 does not create a member5081 when set to a date in the future5082 invites a member5083 with invite_source considerations5084 tracks the invite source as api5085 tracks the invite source from params5086 when adding project bot5087 returns error5088 POST /groups/:id/invitations5089 does not exceed expected queries count for emails5090 does not exceed expected queries count for secondary emails5091 with admin_group_member FF disabled5092 behaves like POST /:source_type/:id/invitations5093 with :source_type == groups5094 updates an already existing active member5095 returns 400 when the invite params of email and user_id are not sent5096 returns 400 when the email is blank5097 returns 400 when the user_id is blank5098 returns 400 when the email list is not a valid format5099 returns 400 when the comma-separated email list is not a valid format5100 returns 400 when access_level is not given5101 returns 400 when access_level is not valid5102 behaves like a 404 response when source is private5103 returns 4045104 when authenticated as a non-member or member with insufficient membership management rights5105 when the user does not have rights to manage members5106 as a access_requester5107 behaves like a 403 response when user does not have rights to manage members of a specific access level5108 returns 4035109 as a stranger5110 behaves like a 403 response when user does not have rights to manage members of a specific access level5111 returns 4035112 as a developer5113 behaves like a 403 response when user does not have rights to manage members of a specific access level5114 returns 4035115 when the user has the rights to manage members but tries to manage members with a higher access level5116 when an invitee is added as OWNER5117 behaves like a 403 response when user does not have rights to manage members of a specific access level5118 returns 4035119 when an access_requester is added as OWNER5120 behaves like a 403 response when user does not have rights to manage members of a specific access level5121 returns 4035122 when authenticated as a maintainer/owner5123 adds a new member by email5124 adds a new member by confirmed primary email5125 adds a new member by confirmed secondary email5126 adds a new member as an invite for unconfirmed primary email5127 adds a new member as an invite for unconfirmed secondary email5128 adds a new member by user_id5129 adds new members with email and user_id5130 invites a list of new email addresses5131 invites a list of new email addresses and user ids5132 and new member is already a requester5133 transforms the requester into a proper member5134 when invitee is already an invited member5135 updates the member for that email5136 access levels5137 does not create the member if group level is higher5138 creates the member if group level is lower5139 access expiry date5140 when set to a date in the past5141 does not create a member5142 when set to a date in the future5143 invites a member5144 with invite_source considerations5145 tracks the invite source as api5146 tracks the invite source from params5147 when adding project bot5148 returns error5149 with admin_group_member FF enabled5150 behaves like POST /:source_type/:id/invitations5151 with :source_type == groups5152 updates an already existing active member5153 returns 400 when the invite params of email and user_id are not sent5154 returns 400 when the email is blank5155 returns 400 when the user_id is blank5156 returns 400 when the email list is not a valid format5157 returns 400 when the comma-separated email list is not a valid format5158 returns 400 when access_level is not given5159 returns 400 when access_level is not valid5160 behaves like a 404 response when source is private5161 returns 4045162 when authenticated as a non-member or member with insufficient membership management rights5163 when the user does not have rights to manage members5164 as a access_requester5165 behaves like a 403 response when user does not have rights to manage members of a specific access level5166 returns 4035167 as a stranger5168 behaves like a 403 response when user does not have rights to manage members of a specific access level5169 returns 4035170 as a developer5171 behaves like a 403 response when user does not have rights to manage members of a specific access level5172 returns 4035173 when the user has the rights to manage members but tries to manage members with a higher access level5174 when an invitee is added as OWNER5175 behaves like a 403 response when user does not have rights to manage members of a specific access level5176 returns 4035177 when an access_requester is added as OWNER5178 behaves like a 403 response when user does not have rights to manage members of a specific access level5179 returns 4035180 when authenticated as a maintainer/owner5181 adds a new member by email5182 adds a new member by confirmed primary email5183 adds a new member by confirmed secondary email5184 adds a new member as an invite for unconfirmed primary email5185 adds a new member as an invite for unconfirmed secondary email5186 adds a new member by user_id5187 adds new members with email and user_id5188 invites a list of new email addresses5189 invites a list of new email addresses and user ids5190 and new member is already a requester5191 transforms the requester into a proper member5192 when invitee is already an invited member5193 updates the member for that email5194 access levels5195 does not create the member if group level is higher5196 creates the member if group level is lower5197 access expiry date5198 when set to a date in the past5199 does not create a member5200 when set to a date in the future5201 invites a member5202 with invite_source considerations5203 tracks the invite source as api5204 tracks the invite source from params5205 when adding project bot5206 returns error5207 GET /projects/:id/invitations5208 with admin_group_member FF disabled5209 behaves like GET /:source_type/:id/invitations5210 with :source_type == projects5211 does not find confirmed members5212 finds all members with no query string specified5213 finds the invitation by invite_email with query string5214 behaves like a 404 response when source is private5215 returns 4045216 when authenticated as a maintainer5217 returns 2005218 as a access_requester5219 behaves like a 403 response when user does not have rights to manage members of a specific access level5220 returns 4035221 as a stranger5222 behaves like a 403 response when user does not have rights to manage members of a specific access level5223 returns 4035224 as a developer5225 behaves like a 403 response when user does not have rights to manage members of a specific access level5226 returns 4035227 with admin_group_member FF enabled5228 behaves like GET /:source_type/:id/invitations5229 with :source_type == projects5230 does not find confirmed members5231 finds all members with no query string specified5232 finds the invitation by invite_email with query string5233 behaves like a 404 response when source is private5234 returns 4045235 when authenticated as a maintainer5236 returns 2005237 as a access_requester5238 behaves like a 403 response when user does not have rights to manage members of a specific access level5239 returns 4035240 as a stranger5241 behaves like a 403 response when user does not have rights to manage members of a specific access level5242 returns 4035243 as a developer5244 behaves like a 403 response when user does not have rights to manage members of a specific access level5245 returns 4035246 GET /groups/:id/invitations5247 with admin_group_member FF disabled5248 behaves like GET /:source_type/:id/invitations5249 with :source_type == groups5250 does not find confirmed members5251 finds all members with no query string specified5252 finds the invitation by invite_email with query string5253 behaves like a 404 response when source is private5254 returns 4045255 when authenticated as a maintainer5256 returns 2005257 as a access_requester5258 behaves like a 403 response when user does not have rights to manage members of a specific access level5259 returns 4035260 as a stranger5261 behaves like a 403 response when user does not have rights to manage members of a specific access level5262 returns 4035263 as a developer5264 behaves like a 403 response when user does not have rights to manage members of a specific access level5265 returns 4035266 with admin_group_member FF enabled5267 behaves like GET /:source_type/:id/invitations5268 with :source_type == groups5269 does not find confirmed members5270 finds all members with no query string specified5271 finds the invitation by invite_email with query string5272 behaves like a 404 response when source is private5273 returns 4045274 when authenticated as a maintainer5275 returns 2005276 as a access_requester5277 behaves like a 403 response when user does not have rights to manage members of a specific access level5278 returns 4035279 as a stranger5280 behaves like a 403 response when user does not have rights to manage members of a specific access level5281 returns 4035282 as a developer5283 behaves like a 403 response when user does not have rights to manage members of a specific access level5284 returns 4035285 DELETE /projects/:id/inviations/:email5286 with admin_group_member FF disabled5287 behaves like DELETE /:source_type/:id/invitations/:email5288 with :source_type == projects5289 returns 404 if member does not exist5290 returns 422 for a valid request if the resource was not destroyed5291 behaves like a 404 response when source is private5292 returns 4045293 when authenticated as a non-member or member with insufficient rights5294 when the user does not have rights to manage members5295 as a access_requester5296 behaves like a 403 response when user does not have rights to manage members of a specific access level5297 returns 4035298 as a stranger5299 behaves like a 403 response when user does not have rights to manage members of a specific access level5300 returns 4035301 when authenticated as a member and deleting themself5302 does not delete the member5303 when authenticated as a maintainer/owner5304 deletes the member and returns 204 with no content5305 when MAINTAINER tries to remove invitation of an OWNER5306 behaves like a 403 response when user does not have rights to manage members of a specific access level5307 returns 4035308 with admin_group_member FF enabled5309 behaves like DELETE /:source_type/:id/invitations/:email5310 with :source_type == projects5311 returns 404 if member does not exist5312 returns 422 for a valid request if the resource was not destroyed5313 behaves like a 404 response when source is private5314 returns 4045315 when authenticated as a non-member or member with insufficient rights5316 when the user does not have rights to manage members5317 as a access_requester5318 behaves like a 403 response when user does not have rights to manage members of a specific access level5319 returns 4035320 as a stranger5321 behaves like a 403 response when user does not have rights to manage members of a specific access level5322 returns 4035323 when authenticated as a member and deleting themself5324 does not delete the member5325 when authenticated as a maintainer/owner5326 deletes the member and returns 204 with no content5327 when MAINTAINER tries to remove invitation of an OWNER5328 behaves like a 403 response when user does not have rights to manage members of a specific access level5329 returns 4035330 DELETE /groups/:id/inviations/:email5331 with admin_group_member FF disabled5332 behaves like DELETE /:source_type/:id/invitations/:email5333 with :source_type == groups5334 returns 404 if member does not exist5335 returns 422 for a valid request if the resource was not destroyed5336 behaves like a 404 response when source is private5337 returns 4045338 when authenticated as a non-member or member with insufficient rights5339 when the user does not have rights to manage members5340 as a access_requester5341 behaves like a 403 response when user does not have rights to manage members of a specific access level5342 returns 4035343 as a stranger5344 behaves like a 403 response when user does not have rights to manage members of a specific access level5345 returns 4035346 when authenticated as a member and deleting themself5347 does not delete the member5348 when authenticated as a maintainer/owner5349 deletes the member and returns 204 with no content5350 when MAINTAINER tries to remove invitation of an OWNER5351 behaves like a 403 response when user does not have rights to manage members of a specific access level5352 returns 4035353 with admin_group_member FF enabled5354 behaves like DELETE /:source_type/:id/invitations/:email5355 with :source_type == groups5356 returns 404 if member does not exist5357 returns 422 for a valid request if the resource was not destroyed5358 behaves like a 404 response when source is private5359 returns 4045360 when authenticated as a non-member or member with insufficient rights5361 when the user does not have rights to manage members5362 as a access_requester5363 behaves like a 403 response when user does not have rights to manage members of a specific access level5364 returns 4035365 as a stranger5366 behaves like a 403 response when user does not have rights to manage members of a specific access level5367 returns 4035368 when authenticated as a member and deleting themself5369 does not delete the member5370 when authenticated as a maintainer/owner5371 deletes the member and returns 204 with no content5372 when MAINTAINER tries to remove invitation of an OWNER5373 behaves like a 403 response when user does not have rights to manage members of a specific access level5374 returns 4035375 PUT /projects/:id/invitations5376 with admin_group_member FF disabled5377 behaves like PUT /:source_type/:id/invitations/:email5378 with :source_type == projects5379 behaves like a 404 response when source is private5380 returns 4045381 when authenticated as a non-member or member with insufficient rights5382 when the user does not have rights to manage members5383 as a access_requester5384 behaves like a 403 response when user does not have rights to manage members of a specific access level5385 returns 4035386 as a stranger5387 behaves like a 403 response when user does not have rights to manage members of a specific access level5388 returns 4035389 when authenticated as a maintainer/owner5390 returns 409 if member does not exist5391 returns 400 when access_level is not given and there are no other params5392 returns 400 when access level is not valid5393 updating access level5394 updates the invitation5395 MAINTAINER tries to update access level to OWNER5396 behaves like a 403 response when user does not have rights to manage members of a specific access level5397 returns 4035398 updating access expiry date5399 when set to a date in the past5400 does not update the member5401 when set to a date in the future5402 updates the member5403 PUT /groups/:id/invitations5404 with admin_group_member FF enabled5405 behaves like PUT /:source_type/:id/invitations/:email5406 with :source_type == groups5407 behaves like a 404 response when source is private5408 returns 4045409 when authenticated as a non-member or member with insufficient rights5410 when the user does not have rights to manage members5411 as a access_requester5412 behaves like a 403 response when user does not have rights to manage members of a specific access level5413 returns 4035414 as a stranger5415 behaves like a 403 response when user does not have rights to manage members of a specific access level5416 returns 4035417 when authenticated as a maintainer/owner5418 returns 409 if member does not exist5419 returns 400 when access_level is not given and there are no other params5420 returns 400 when access level is not valid5421 updating access level5422 updates the invitation5423 MAINTAINER tries to update access level to OWNER5424 behaves like a 403 response when user does not have rights to manage members of a specific access level5425 returns 4035426 updating access expiry date5427 when set to a date in the past5428 does not update the member5429 when set to a date in the future5430 updates the member5431GroupsController5432 GET #show5433 when the group is not importing5434 is expected to render template groups/show5435 tracks page views5436 behaves like details view as atom5437 is expected to render template groups/show5438 assigns events for all the projects in the group5439 when the group is importing5440 redirects to the import status page5441 does not track page views5442 GET #details5443 is expected to redirect to "/group25"5444 behaves like details view as atom5445 is expected to render template groups/show5446 assigns events for all the projects in the group5447 GET edit5448 sets the badge API endpoint5449 GET #new5450 when creating subgroups5451 and can_create_group is true5452 and logged in as Admin_with_admin_mode5453 behaves like member with ability to create subgroups5454 renders the new page5455 and logged in as Owner5456 behaves like member with ability to create subgroups5457 renders the new page5458 and logged in as Maintainer5459 behaves like member with ability to create subgroups5460 renders the new page5461 and logged in as Guest5462 behaves like member without ability to create subgroups5463 renders the 404 page5464 and logged in as Developer5465 behaves like member without ability to create subgroups5466 renders the 404 page5467 and logged in as Admin_without_admin_mode5468 behaves like member without ability to create subgroups5469 renders the 404 page5470 and can_create_group is false5471 and logged in as Admin_with_admin_mode5472 behaves like member with ability to create subgroups5473 renders the new page5474 and logged in as Owner5475 behaves like member with ability to create subgroups5476 renders the new page5477 and logged in as Maintainer5478 behaves like member with ability to create subgroups5479 renders the new page5480 and logged in as Guest5481 behaves like member without ability to create subgroups5482 renders the 404 page5483 and logged in as Developer5484 behaves like member without ability to create subgroups5485 renders the 404 page5486 and logged in as Admin_without_admin_mode5487 behaves like member without ability to create subgroups5488 renders the 404 page5489 GET #activity5490 as json5491 includes events from all projects in group and subgroups5492 when user has no permission to see the event5493 filters out invisible event5494 POST #create5495 allows creating a group5496 authorization5497 allows an admin to create a group5498 when creating chat team5499 triggers Mattermost::CreateTeamService5500 when creating subgroups5501 and can_create_group is true5502 and logged in as Owner5503 creates the subgroup5504 and logged in as Developer5505 renders the new template5506 and can_create_group is false5507 and logged in as Owner5508 creates the subgroup5509 and logged in as Developer5510 renders the new template5511 when creating a top level group5512 and can_create_group is enabled5513 creates the Group5514 and can_create_group is disabled5515 does not create the Group5516 malicious group name5517 is expected not to change `Group.count`5518 is expected to render template new5519 when creating a group with `default_branch_protection` attribute5520 for users who have the ability to create a group with `default_branch_protection`5521 creates group with the specified branch protection level5522 for users who do not have the ability to create a group with `default_branch_protection`5523 does not create the group with the specified branch protection level5524 when creating a group with `default_branch_protection_defaults` attribute5525 when user has ability to write update_default_branch_protection5526 for users who have the ability to create a group with `default_branch_protection_defaults`5527 creates group with the specified default branch protection level5528 for users who do not have the ability to create a group with `default_branch_protection`5529 does not create the group with the specified branch protection level5530 when creating a group with captcha protection5531 allows creating a group when the reCAPTCHA is solved5532 allows creating a sub-group without checking the captcha5533 when the reCAPTCHA is not solved5534 displays an error5535 sets gon variables5536 with feature flag switched off5537 allows creating a group without the reCAPTCHA5538 when creating a group with the `role` attribute present5539 changes the users role5540 when creating a group with the `setup_for_company` attribute present5541 sets the groups `setup_for_company` value5542 when the user already has a value for `setup_for_company`5543 does not change the users `setup_for_company` value5544 when the user has no value for `setup_for_company`5545 changes the users `setup_for_company` value5546 when creating a group with the `jobs_to_be_done` attribute present5547 sets the groups `jobs_to_be_done` value5548 GET #index5549 as a user5550 redirects to Groups Dashboard5551 as a guest5552 redirects to Explore Groups5553 GET #issues5554 saves the sort order to user preferences5555 GET #merge_requests5556 sorting by votes5557 sorts most popular merge requests5558 sorts least popular merge requests5559 rendering views5560 displays MR counts in nav5561 when MergeRequestsFinder raises an exception5562 does not display MR counts in nav5563 when an ActiveRecord::QueryCanceled is raised5564 sets :search_timeout_occurred5565 logs the exception5566 rendering views5567 shows error message5568 does not display MR counts in nav5569 DELETE #destroy5570 as another user5571 returns 4045572 as the group owner5573 schedules a group destroy5574 redirects to the root path5575 PUT update5576 updates the path successfully5577 updates the project_creation_level successfully5578 updating default_branch_protection5579 for users who have the ability to update default_branch_protection5580 updates the attribute5581 for users who do not have the ability to update default_branch_protection5582 does not update the attribute5583 updating default_branch_name5584 updates the attribute5585 to empty string5586 does not update the attribute5587 when there is a conflicting group path5588 does not render references to the conflicting group5589 when a project inside the group has container repositories5590 does allow the group to be renamed5591 does not allow to path of the group to be changed5592 updating :resource_access_token_creation_allowed5593 when user is a group owner5594 updates the attribute5595 when not a group owner5596 does not update the attribute5597 updating :prevent_sharing_groups_outside_hierarchy5598 when user is a group owner5599 updates the attribute5600 when not a group owner5601 does not update the attribute5602 #ensure_canonical_path5603 for a GET request5604 when requesting groups at the root path5605 when requesting the canonical path with different casing5606 redirects to the correct casing5607 when requesting a redirected path5608 redirects to the canonical path5609 when the old group path is a substring of the scheme or host5610 does not modify the requested host5611 when the old group path is substring of groups5612 does not modify the /groups part of the path5613 when requesting groups under the /groups path5614 when requesting the canonical path5615 non-show path5616 with exactly matching casing5617 does not redirect5618 with different casing5619 redirects to the correct casing5620 show path5621 with exactly matching casing5622 does not redirect5623 with different casing5624 redirects to the correct casing at the root path5625 when requesting a redirected path5626 redirects to the canonical path5627 when the old group path is a substring of the scheme or host5628 does not modify the requested host5629 when the old group path is substring of groups5630 does not modify the /groups part of the path5631 when the old group path is substring of groups plus the new path5632 does not modify the /groups part of the path5633 for a POST request5634 when requesting the canonical path with different casing5635 does not 4045636 does not redirect to the correct casing5637 when requesting a redirected path5638 returns not found5639 for a DELETE request5640 when requesting the canonical path with different casing5641 does not 4045642 does not redirect to the correct casing5643 when requesting a redirected path5644 returns not found5645 PUT transfer5646 when transferring to a subgroup goes right5647 returns a notice and redirects to the new path5648 when converting to a root group goes right5649 returns a notice and redirects to the new path5650 When the transfer goes wrong5651 returns an alert and redirects to the current path5652 when the user is not allowed to transfer the group5653 is denied5654 transferring when a project has container images5655 does not allow the group to be transferred5656 POST #export5657 when the user does not have permission to export the group5658 returns an error5659 when supplied valid params5660 triggers the export job5661 redirects to the edit page5662 when the endpoint receives requests above the rate limit5663 throttles the endpoint5664 GET #download_export5665 when there is a file available to download5666 sends the file5667 when the file is no longer present on disk5668 returns not found5669 when there is no file available to download5670 returns not found5671 when the user does not have the required permissions5672 returns not_found5673 when the endpoint receives requests above the rate limit5674 throttles the endpoint5675 external authorization5676 with external authorization service enabled5677 GET #show5678 is successful5679 does not allow other formats5680 GET #edit5681 is successful5682 GET #new5683 is successful5684 GET #index5685 is successful5686 POST #create5687 creates a group5688 PUT #update5689 updates a group5690 malicious group name5691 is expected to render template edit5692 does not update name5693 DELETE #destroy5694 deletes the group5695 GET #activity5696 behaves like disabled when using an external authorization service5697 works when the feature is not enabled5698 renders a 404 with a message when the feature is enabled5699 GET #activity as JSON5700 returns count5701 GET #issues5702 behaves like disabled when using an external authorization service5703 works when the feature is not enabled5704 renders a 404 with a message when the feature is enabled5705 GET #merge_requests5706 behaves like disabled when using an external authorization service5707 works when the feature is not enabled5708 renders a 404 with a message when the feature is enabled5709 GET #unfoldered_environment_names5710 shows the environment names of a public project to an anonymous user5711 does not show environment names of private projects to anonymous users5712 shows environment names of a private project to a group member5713 does not show environment names of private projects to a logged-in non-member5714API::Tags5715 GET /projects/:id/repository/tags5716 sorting5717 sorts by descending order by default5718 sorts by ascending order if specified5719 sorts by name in descending order when requested5720 sorts by name in ascending order when requested5721 sorts by version in ascending order when requested5722 searching5723 only returns searched tags5724 when unauthenticated and project is public5725 behaves like repository tags5726 returns the repository tags5727 when repository is disabled5728 behaves like 403 response5729 returns 4035730 when repository does not exist5731 behaves like 404 response5732 returns 4045733 and releases are private5734 returns the repository tags without release information5735 when unauthenticated and project is private5736 behaves like 404 response5737 returns 4045738 when authenticated as a maintainer5739 behaves like repository tags5740 returns the repository tags5741 when repository is disabled5742 behaves like 403 response5743 returns 4035744 when repository does not exist5745 behaves like 404 response5746 returns 4045747 requesting with the escaped project full path5748 behaves like repository tags5749 returns the repository tags5750 when repository is disabled5751 behaves like 403 response5752 returns 4035753 when repository does not exist5754 behaves like 404 response5755 returns 4045756 when authenticated as a guest5757 behaves like 403 response5758 returns 4035759 with releases5760 returns an array of project tags with release info5761 with keyset pagination option5762 with gitaly pagination params5763 with high limit5764 returns all repository tags5765 with low limit5766 returns limited repository tags5767 with missing page token5768 behaves like 422 response5769 returns 4225770 cache expiry5771 is cached5772 when protected tag is changed5773 behaves like cache expired5774 isn't cached5775 when release is changed5776 behaves like cache expired5777 isn't cached5778 when project is changed5779 behaves like cache expired5780 isn't cached5781 when user is not allowed to :read_release5782 isn't cached5783 when gitaly is unavailable5784 behaves like 503 response5785 returns 5035786 GET /projects/:id/repository/tags/:tag_name5787 when unauthenticated and project is public5788 behaves like repository tag5789 returns the repository branch5790 when tag does not exist5791 behaves like 404 response5792 returns 4045793 when repository is disabled5794 behaves like 403 response5795 returns 4035796 and releases are private5797 returns the repository tags without release information5798 when unauthenticated and project is private5799 behaves like 404 response5800 returns 4045801 when authenticated as a maintainer5802 behaves like repository tag5803 returns the repository branch5804 when tag does not exist5805 behaves like 404 response5806 returns 4045807 when repository is disabled5808 behaves like 403 response5809 returns 4035810 requesting with the escaped project full path5811 behaves like repository tag5812 returns the repository branch5813 when tag does not exist5814 behaves like 404 response5815 returns 4045816 when repository is disabled5817 behaves like 403 response5818 returns 4035819 when authenticated as a guest5820 behaves like 403 response5821 returns 4035822 with releases5823 returns release information5824 POST /projects/:id/repository/tags5825 when unauthenticated and project is private5826 behaves like 404 response5827 returns 4045828 when authenticated as a guest5829 behaves like 403 response5830 returns 4035831 when authenticated as a maintainer5832 returns 400 if tag name is invalid5833 returns 400 if tag already exists5834 returns 400 if ref name is invalid5835 when a protected branch doesn't already exist5836 behaves like repository new tag5837 creates a new tag5838 when repository is disabled5839 behaves like 403 response5840 returns 4035841 when tag contains a dot5842 behaves like repository new tag5843 creates a new tag5844 when repository is disabled5845 behaves like 403 response5846 returns 4035847 requesting with the escaped project full path5848 behaves like repository new tag5849 creates a new tag5850 when repository is disabled5851 behaves like 403 response5852 returns 4035853 when tag contains a dot5854 behaves like repository new tag5855 creates a new tag5856 when repository is disabled5857 behaves like 403 response5858 returns 4035859 annotated tag5860 creates a new annotated tag5861 DELETE /projects/:id/repository/tags/:tag_name5862 when authenticated as a maintainer5863 behaves like repository delete tag5864 deletes a tag5865 behaves like 412 response5866 for a modified resource5867 returns 412 with a JSON error5868 for an unmodified resource5869 returns 204 with an empty body5870 when tag does not exist5871 behaves like 404 response5872 returns 4045873 when repository is disabled5874 behaves like 403 response5875 returns 4035876 requesting with the escaped project full path5877 behaves like repository delete tag5878 deletes a tag5879 behaves like 412 response5880 for a modified resource5881 returns 412 with a JSON error5882 for an unmodified resource5883 returns 204 with an empty body5884 when tag does not exist5885 behaves like 404 response5886 returns 4045887 when repository is disabled5888 behaves like 403 response5889 returns 4035890 GET /projects/:id/repository/tags/:tag_name/signature5891 when tag does not exist5892 behaves like 404 response5893 returns 4045894 unsigned tag5895 behaves like 404 response5896 returns 4045897 x509 signed tag5898 returns correct JSON5899OmniauthCallbacksController5900 omniauth5901 when authentication succeeds5902 without signed-in user5903 increments Prometheus counter5904 with signed-in user5905 increments Prometheus counter5906 for a deactivated user5907 allows sign in5908 activates the user5909 shows reactivation flash message after logging in5910 when sign in is not valid5911 renders omniauth error page5912 when the user is on the last sign in attempt5913 when using a form based provider5914 locks the user when sign in fails5915 when using a button based provider5916 does not lock the user when sign in fails5917 when sign in fails5918 calls through to the failure handler5919 increments Prometheus counter5920 when a redirect fragment is provided5921 when a redirect url is stored5922 redirects with fragment5923 when a redirect url with a fragment is stored5924 redirects with the new fragment5925 when no redirect url is stored5926 does not redirect with the fragment5927 with strategies5928 for github5929 allows sign in5930 creates an authentication event record5931 behaves like known sign in5932 when the remote IP and the last sign in IP match5933 does not notify the user5934 sets/updates the encrypted cookie5935 when the remote IP and the last sign in IP do not match5936 notifies the user when the cookie is expired5937 notifies the user when the cookie is for another user5938 does not notify the user when remote IP matches an active session5939 does not notify the user when the cookie is present and not expired5940 when the cookie is not previously set5941 notifies the user5942 sets the encrypted cookie5943 when notify_on_unknown_sign_in global setting is false5944 does not notify the user5945 does not set a cookie5946 when user has no linked provider5947 links identity5948 and is not allowed to link the provider5949 returns 4035950 when a user has 2FA enabled5951 when a user is unconfirmed5952 redirects to login page5953 when a user is confirmed5954 returns 200 response5955 for sign up5956 is allowed5957 behaves like Onboarding::Redirectable5958 is expected to redirect to "/dashboard/projects"5959 when the new user already has any accepted group membership5960 redirects to activity group path with a flash message5961 when the new user already has more than 1 accepted group membership5962 redirects to the last member activity group path without a flash message5963 when the member has an orphaned source at the time of registering5964 is expected to redirect to "/dashboard/projects"5965 when OAuth is disabled5966 prevents login via POST5967 shows warning when attempting login5968 allows linking the disabled provider5969 for sign up5970 is prevented5971 for auth05972 does not allow sign in without extern_uid5973 for atlassian_oauth25974 when the user and identity already exist5975 allows sign-in5976 sets the username and caller_id in the context5977 for a new user5978 denies sign-in if sign-up is enabled, but block_auto_created_users is set5979 accepts sign-in if sign-up is enabled5980 denies sign-in if sign-up is not enabled5981 for salesforce5982 without verified email5983 does not allow sign in5984 with verified email5985 allows sign in5986 with snowplow tracking5987 when sign_in5988 does not track the event5989 when sign_up5990 tracks the event5991 #openid_connect5992 allows sign in5993 behaves like known sign in5994 when the remote IP and the last sign in IP match5995 does not notify the user5996 sets/updates the encrypted cookie5997 when the remote IP and the last sign in IP do not match5998 notifies the user when the cookie is expired5999 notifies the user when the cookie is for another user6000 does not notify the user when remote IP matches an active session6001 does not notify the user when the cookie is present and not expired6002 when the cookie is not previously set6003 notifies the user6004 sets the encrypted cookie6005 when notify_on_unknown_sign_in global setting is false6006 does not notify the user6007 does not set a cookie6008 #saml6009 behaves like known sign in6010 when the remote IP and the last sign in IP match6011 does not notify the user6012 sets/updates the encrypted cookie6013 when the remote IP and the last sign in IP do not match6014 notifies the user when the cookie is expired6015 notifies the user when the cookie is for another user6016 does not notify the user when remote IP matches an active session6017 does not notify the user when the cookie is present and not expired6018 when the cookie is not previously set6019 notifies the user6020 sets the encrypted cookie6021 when notify_on_unknown_sign_in global setting is false6022 does not notify the user6023 does not set a cookie6024 for sign up6025 denies login if sign up is enabled, but block_auto_created_users is set6026 accepts login if sign up is enabled6027 denies login if sign up is not enabled6028 with GitLab initiated request6029 when worth two factors6030 expects user to be signed_in6031 when not worth two factors6032 expects user to provide second factor6033 with IdP initiated request6034 lets the user know their account isn't linked yet6035 redirects to profile account page6036 doesn't link a new identity to the user6037 sets the username and caller_id in the context6038 with IDP bypass two factor request6039 behaves like store provider2FA value in session6040 sets the session varible for provider 2FA6041 when by_pass_two_factor_for_current_session feature flag is false6042 does not set the session variable for provider 2FA6043 with a blocked user trying to log in when there are hooks set up6044 is expected not to raise Exception6045 with a non default SAML provider6046 authenticate with SAML module6047 with IDP bypass two factor request6048 behaves like store provider2FA value in session6049 sets the session varible for provider 2FA6050 when by_pass_two_factor_for_current_session feature flag is false6051 does not set the session variable for provider 2FA6052 enable admin mode6053 when user and admin mode is requested by the same user6054 with a regular user6055 cannot be enabled6056 with an admin user6057 when requested first6058 can be enabled6059 when not requested first6060 cannot be enabled6061 when user and admin mode is requested by different users6062 with a regular user6063 cannot be enabled6064 with an admin user6065 when requested first6066 cannot be enabled6067 when not requested first6068 cannot be enabled6069Projects::CompareController6070 GET index6071 returns successfully6072 with incorrect parameters6073 returns successfully6074 with missing parameters6075 returns successfully6076 GET show6077 when the refs exist in the same project6078 when we set the white space param6079 shows some diffs with ignore whitespace change option6080 when we do not set the white space param6081 sets the diffs and commits ivars6082 when refs have CI::Pipeline6083 avoids N+1 queries6084 when the refs exist in different projects that the user can see6085 shows the diff6086 when comparing missing commits between source and target6087 when comparing them in the other direction6088 the commits are there6089 with straight mode true6090 the commits are empty, but the removed lines are visible as diffs6091 with straight mode false6092 the additional commits are not visible in diffs and commits6093 when the refs exist in different projects but the user cannot see6094 does not show the diff6095 when the target project is the default source but hidden to the user6096 does not show the diff6097 when the source ref does not exist6098 sets empty diff and commit ivars6099 when the target ref does not exist6100 sets empty diff and commit ivars6101 when the target ref is invalid6102 shows a flash message and redirects6103 when the from_ref and to_ref are the same6104 shows a message that refs are identical6105 when the source ref is invalid6106 shows a flash message and redirects6107 when the both refs are invalid6108 shows a flash message and redirects6109 when page is valid6110 only loads blobs in the current page6111 behaves like valid compare page6112 shows the diff6113 when from_ref is HEAD ref6114 behaves like valid compare page6115 shows the diff6116 when to_ref is HEAD ref6117 behaves like valid compare page6118 shows the diff6119 when page is not valid6120 does not return an error6121 GET diff_for_path6122 when the source and target refs exist in the same project6123 when the user has access target the project6124 when the path exists in the diff6125 disables diff notes6126 only renders the diffs for the path given6127 when the path does not exist in the diff6128 returns a 4046129 when the user does not have access target the project6130 returns a 4046131 when the source and target refs exist in different projects and the user can see6132 shows the diff for that path6133 when the source and target refs exist in different projects and the user cannot see6134 does not show the diff for that path6135 when the source ref does not exist6136 returns a 4046137 when the target ref does not exist6138 returns a 4046139 POST create6140 when sending valid params6141 without a from_project_id6142 redirects to the show page6143 with a from_project_id6144 redirects to the show page without interpreting from_project_id6145 when sending invalid params6146 from_ref: "", to_ref: "", from_project_id: "", expected_redirect_params: {}6147 redirects back to the index6148 from_ref: "main", to_ref: "", from_project_id: "", expected_redirect_params: {:from=>"main"}6149 redirects back to the index6150 from_ref: "", to_ref: "main", from_project_id: "", expected_redirect_params: {:to=>"main"}6151 redirects back to the index6152 from_ref: "", to_ref: "", from_project_id: "1", expected_redirect_params: {:from_project_id=>1}6153 redirects back to the index6154 from_ref: "main", to_ref: "", from_project_id: "1", expected_redirect_params: {:from=>"main", :from_project_id=>1}6155 redirects back to the index6156 from_ref: "", to_ref: "main", from_project_id: "1", expected_redirect_params: {:to=>"main", :from_project_id=>1}6157 redirects back to the index6158 from_ref: ["a"], to_ref: ["b"], from_project_id: ["c"], expected_redirect_params: {}6159 redirects back to the index6160 GET signatures6161 when the source and target refs exist6162 when the user has access to the project6163 returns only the commit with a signature6164 when the user has access to the project with straight compare6165 returns only the commit with a signature6166 when the user does not have access to the project6167 returns a 4046168 when the source ref does not exist6169 returns no signatures6170 when the target ref does not exist6171 returns no signatures6172API::HelmPackages6173 GET /api/v4/projects/:id/packages/helm/:channel/index.yaml6174 with a project id6175 behaves like handling helm chart index requests6176 with valid project6177 personal token6178 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success6179 behaves like process helm service index request6180 for user type guest6181 returns a valid YAML response6182 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success6183 behaves like process helm service index request6184 for user type not_a_member6185 returns a valid YAML response6186 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success6187 behaves like process helm service index request6188 for user type anonymous6189 returns a valid YAML response6190 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success6191 behaves like process helm service index request6192 for user type reporter6193 returns a valid YAML response6194 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6195 behaves like rejects helm packages access6196 for user type guest6197 behaves like returning response status6198 returns forbidden6199 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found6200 behaves like rejects helm packages access6201 for user type not_a_member6202 behaves like returning response status6203 returns not_found6204 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6205 behaves like rejects helm packages access6206 for user type anonymous6207 has the correct response header6208 behaves like returning response status6209 returns unauthorized6210 with access to package registry for everyone6211 behaves like process helm service index request6212 for user type anonymous6213 returns a valid YAML response6214 when an invalid token is passed6215 behaves like returning response status6216 returns unauthorized6217 with job token6218 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success6219 behaves like process helm service index request6220 for user type guest6221 returns a valid YAML response6222 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success6223 behaves like process helm service index request6224 for user type not_a_member6225 returns a valid YAML response6226 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success6227 behaves like process helm service index request6228 for user type anonymous6229 returns a valid YAML response6230 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success6231 behaves like process helm service index request6232 for user type reporter6233 returns a valid YAML response6234 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6235 behaves like rejects helm packages access6236 for user type guest6237 behaves like returning response status6238 returns forbidden6239 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found6240 behaves like rejects helm packages access6241 for user type not_a_member6242 behaves like returning response status6243 returns not_found6244 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6245 behaves like rejects helm packages access6246 for user type anonymous6247 has the correct response header6248 behaves like returning response status6249 returns unauthorized6250 behaves like deploy token for package GET requests6251 with deploy token headers6252 valid token6253 behaves like returning response status6254 returns success6255 invalid token6256 behaves like returning response status6257 returns unauthorized6258 behaves like rejects helm access with unknown project id6259 with an unknown project6260 as anonymous6261 behaves like rejects helm packages access6262 for user type anonymous6263 has the correct response header6264 behaves like returning response status6265 returns unauthorized6266 as authenticated user6267 behaves like rejects helm packages access6268 for user type anonymous6269 behaves like returning response status6270 returns not_found6271 with an url encoded project id6272 behaves like handling helm chart index requests6273 with valid project6274 personal token6275 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success6276 behaves like process helm service index request6277 for user type guest6278 returns a valid YAML response6279 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success6280 behaves like process helm service index request6281 for user type not_a_member6282 returns a valid YAML response6283 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success6284 behaves like process helm service index request6285 for user type anonymous6286 returns a valid YAML response6287 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success6288 behaves like process helm service index request6289 for user type reporter6290 returns a valid YAML response6291 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6292 behaves like rejects helm packages access6293 for user type guest6294 behaves like returning response status6295 returns forbidden6296 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found6297 behaves like rejects helm packages access6298 for user type not_a_member6299 behaves like returning response status6300 returns not_found6301 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6302 behaves like rejects helm packages access6303 for user type anonymous6304 has the correct response header6305 behaves like returning response status6306 returns unauthorized6307 with access to package registry for everyone6308 behaves like process helm service index request6309 for user type anonymous6310 returns a valid YAML response6311 when an invalid token is passed6312 behaves like returning response status6313 returns unauthorized6314 with job token6315 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success6316 behaves like process helm service index request6317 for user type guest6318 returns a valid YAML response6319 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success6320 behaves like process helm service index request6321 for user type not_a_member6322 returns a valid YAML response6323 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success6324 behaves like process helm service index request6325 for user type anonymous6326 returns a valid YAML response6327 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success6328 behaves like process helm service index request6329 for user type reporter6330 returns a valid YAML response6331 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6332 behaves like rejects helm packages access6333 for user type guest6334 behaves like returning response status6335 returns forbidden6336 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found6337 behaves like rejects helm packages access6338 for user type not_a_member6339 behaves like returning response status6340 returns not_found6341 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6342 behaves like rejects helm packages access6343 for user type anonymous6344 has the correct response header6345 behaves like returning response status6346 returns unauthorized6347 behaves like deploy token for package GET requests6348 with deploy token headers6349 valid token6350 behaves like returning response status6351 returns success6352 invalid token6353 behaves like returning response status6354 returns unauthorized6355 behaves like rejects helm access with unknown project id6356 with an unknown project6357 as anonymous6358 behaves like rejects helm packages access6359 for user type anonymous6360 has the correct response header6361 behaves like returning response status6362 returns unauthorized6363 as authenticated user6364 behaves like rejects helm packages access6365 for user type anonymous6366 behaves like returning response status6367 returns not_found6368 with dot in channel6369 behaves like returning response status6370 returns success6371 GET /api/v4/projects/:id/packages/helm/:channel/charts/:file_name.tgz6372 with valid project6373 visibility: :public, user_role: :guest, shared_examples_name: "process helm download content request", expected_status: :success6374 behaves like process helm download content request6375 for user type guest6376 returns expected status and a valid package archive6377 behaves like a package tracking event6378 creates a gitlab tracking event pull_package6379 behaves like bumping the package last downloaded at field6380 bumps last_downloaded_at6381 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm download content request", expected_status: :success6382 behaves like process helm download content request6383 for user type not_a_member6384 returns expected status and a valid package archive6385 behaves like a package tracking event6386 creates a gitlab tracking event pull_package6387 behaves like bumping the package last downloaded at field6388 bumps last_downloaded_at6389 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm download content request", expected_status: :success6390 behaves like process helm download content request6391 for user type anonymous6392 returns expected status and a valid package archive6393 behaves like a package tracking event6394 creates a gitlab tracking event pull_package6395 behaves like bumping the package last downloaded at field6396 bumps last_downloaded_at6397 visibility: :private, user_role: :reporter, shared_examples_name: "process helm download content request", expected_status: :success6398 behaves like process helm download content request6399 for user type reporter6400 returns expected status and a valid package archive6401 behaves like a package tracking event6402 creates a gitlab tracking event pull_package6403 behaves like bumping the package last downloaded at field6404 bumps last_downloaded_at6405 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6406 behaves like rejects helm packages access6407 for user type guest6408 behaves like returning response status6409 returns forbidden6410 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found6411 behaves like rejects helm packages access6412 for user type not_a_member6413 behaves like returning response status6414 returns not_found6415 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6416 behaves like rejects helm packages access6417 for user type anonymous6418 has the correct response header6419 behaves like returning response status6420 returns unauthorized6421 with access to package registry for everyone6422 behaves like process helm download content request6423 for user type anonymous6424 returns expected status and a valid package archive6425 behaves like a package tracking event6426 creates a gitlab tracking event pull_package6427 behaves like bumping the package last downloaded at field6428 bumps last_downloaded_at6429 when an invalid token is passed6430 behaves like returning response status6431 returns unauthorized6432 behaves like deploy token for package GET requests6433 with deploy token headers6434 valid token6435 behaves like returning response status6436 returns success6437 invalid token6438 behaves like returning response status6439 returns unauthorized6440 POST /api/v4/projects/:id/packages/helm/api/:channel/charts/authorize6441 with valid project6442 visibility_level: :public, user_role: :developer, shared_examples_name: "process helm workhorse authorization", expected_status: :success6443 behaves like process helm workhorse authorization6444 for user type developer6445 has the proper status and content type6446 with a request that bypassed gitlab-workhorse6447 behaves like returning response status6448 returns forbidden6449 visibility_level: :public, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6450 behaves like rejects helm packages access6451 for user type reporter6452 behaves like returning response status6453 returns forbidden6454 visibility_level: :public, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6455 behaves like rejects helm packages access6456 for user type not_a_member6457 behaves like returning response status6458 returns forbidden6459 visibility_level: :public, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6460 behaves like rejects helm packages access6461 for user type anonymous6462 has the correct response header6463 behaves like returning response status6464 returns unauthorized6465 visibility_level: :private, user_role: :developer, shared_examples_name: "process helm workhorse authorization", expected_status: :success6466 behaves like process helm workhorse authorization6467 for user type developer6468 has the proper status and content type6469 with a request that bypassed gitlab-workhorse6470 behaves like returning response status6471 returns forbidden6472 visibility_level: :private, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6473 behaves like rejects helm packages access6474 for user type reporter6475 behaves like returning response status6476 returns forbidden6477 visibility_level: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found6478 behaves like rejects helm packages access6479 for user type not_a_member6480 behaves like returning response status6481 returns not_found6482 visibility_level: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6483 behaves like rejects helm packages access6484 for user type anonymous6485 has the correct response header6486 behaves like returning response status6487 returns unauthorized6488 when an invalid token is passed6489 behaves like returning response status6490 returns unauthorized6491 behaves like deploy token for package uploads6492 with deploy token headers6493 valid token6494 behaves like returning response status6495 returns success6496 invalid token6497 behaves like returning response status6498 returns unauthorized6499 behaves like job token for package uploads6500 with job token headers6501 valid token6502 behaves like returning response status6503 returns success6504 invalid token6505 behaves like returning response status6506 returns unauthorized6507 invalid user6508 behaves like returning response status6509 returns success6510 behaves like rejects helm access with unknown project id6511 with an unknown project6512 as anonymous6513 behaves like rejects helm packages access6514 for user type anonymous6515 has the correct response header6516 behaves like returning response status6517 returns unauthorized6518 as authenticated user6519 behaves like rejects helm packages access6520 for user type anonymous6521 behaves like returning response status6522 returns not_found6523 POST /api/v4/projects/:id/packages/helm/api/:channel/charts6524 with valid project6525 visibility_level: :public, user_role: :developer, shared_examples_name: "process helm upload", expected_status: :created6526 behaves like process helm upload6527 for user type developer6528 with object storage disabled6529 without a file from workhorse6530 behaves like returning response status6531 returns bad_request6532 with correct params6533 behaves like package workhorse uploads6534 without a workhorse header6535 logs an error6536 behaves like returning response status6537 returns forbidden6538 behaves like creates helm package files6539 creates package files6540 behaves like a package tracking event6541 creates a gitlab tracking event push_package6542 with object storage enabled6543 and direct upload enabled6544 behaves like creates helm package files6545 creates package files6546 with invalid remote_id: 1231236547 behaves like returning response status6548 returns forbidden6549 with invalid remote_id: ../../1231236550 behaves like returning response status6551 returns forbidden6552 and direct upload disabled6553 behaves like creates helm package files6554 creates package files6555 visibility_level: :public, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6556 behaves like rejects helm packages access6557 for user type reporter6558 behaves like returning response status6559 returns forbidden6560 visibility_level: :public, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6561 behaves like rejects helm packages access6562 for user type not_a_member6563 behaves like returning response status6564 returns forbidden6565 visibility_level: :public, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6566 behaves like rejects helm packages access6567 for user type anonymous6568 has the correct response header6569 behaves like returning response status6570 returns unauthorized6571 visibility_level: :private, user_role: :developer, shared_examples_name: "process helm upload", expected_status: :created6572 behaves like process helm upload6573 for user type developer6574 with object storage disabled6575 without a file from workhorse6576 behaves like returning response status6577 returns bad_request6578 with correct params6579 behaves like package workhorse uploads6580 without a workhorse header6581 logs an error6582 behaves like returning response status6583 returns forbidden6584 behaves like creates helm package files6585 creates package files6586 behaves like a package tracking event6587 creates a gitlab tracking event push_package6588 with object storage enabled6589 and direct upload enabled6590 behaves like creates helm package files6591 creates package files6592 with invalid remote_id: 1231236593 behaves like returning response status6594 returns forbidden6595 with invalid remote_id: ../../1231236596 behaves like returning response status6597 returns forbidden6598 and direct upload disabled6599 behaves like creates helm package files6600 creates package files6601 visibility_level: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden6602 behaves like rejects helm packages access6603 for user type guest6604 behaves like returning response status6605 returns forbidden6606 visibility_level: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found6607 behaves like rejects helm packages access6608 for user type not_a_member6609 behaves like returning response status6610 returns not_found6611 visibility_level: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized6612 behaves like rejects helm packages access6613 for user type anonymous6614 has the correct response header6615 behaves like returning response status6616 returns unauthorized6617 when an invalid token is passed6618 behaves like returning response status6619 returns unauthorized6620 behaves like deploy token for package uploads6621 with deploy token headers6622 valid token6623 behaves like returning response status6624 returns success6625 invalid token6626 behaves like returning response status6627 returns unauthorized6628 behaves like job token for package uploads6629 with job token headers6630 valid token6631 creates a package with build info6632 behaves like returning response status6633 returns success6634 invalid token6635 behaves like returning response status6636 returns unauthorized6637 invalid user6638 behaves like returning response status6639 returns success6640 behaves like rejects helm access with unknown project id6641 with an unknown project6642 as anonymous6643 behaves like rejects helm packages access6644 for user type anonymous6645 has the correct response header6646 behaves like returning response status6647 returns unauthorized6648 as authenticated user6649 behaves like rejects helm packages access6650 for user type anonymous6651 behaves like returning response status6652 returns not_found6653 file size above maximum limit6654 behaves like returning response status6655 returns bad_request6656UploadsController6657 POST #authorize6658 behaves like handle uploads authorize6659 POST #authorize6660 when a user is not authorized to upload a file6661 returns 404 status6662 when id is not passed as a param6663 returns 404 status6664 when a user can upload a file6665 and the request bypassed workhorse6666 raises an exception6667 and request is sent by gitlab-workhorse to authorize the request6668 when using local storage6669 behaves like a local file6670 behaves like a valid response6671 responds with status 2006672 uses the gitlab-workhorse content type6673 responds with status 200, location of uploads store and object details6674 when using remote storage6675 when direct upload is enabled6676 behaves like a valid response6677 responds with status 2006678 uses the gitlab-workhorse content type6679 responds with status 200, location of uploads remote store and object details6680 when direct upload is disabled6681 behaves like a local file6682 behaves like a valid response6683 responds with status 2006684 uses the gitlab-workhorse content type6685 responds with status 200, location of uploads store and object details6686 POST create6687 snippet uploads6688 when a user does not have permissions to upload a file6689 returns 401 when the user is not logged in6690 returns 404 when user can't comment on a snippet6691 when a user is logged in6692 returns an error without file6693 returns an error with invalid model6694 returns 404 status when object not found6695 with valid image6696 returns a content with original filename, new link, and correct type.6697 creates a corresponding Upload record6698 with valid non-image file6699 returns a content with original filename, new link, and correct type.6700 creates a corresponding Upload record6701 user uploads6702 returns 401 when the user has no access6703 when user is logged in6704 returns a content with original filename, new link, and correct type.6705 creates a corresponding Upload record6706 returns 404 when given user is not the logged in one6707 with valid non-image file6708 returns a content with original filename, new link, and correct type.6709 creates a corresponding Upload record6710 GET show6711 Content-Disposition security measures6712 for PNG files6713 behaves like uploaded file with disposition6714 returns correct Content-Disposition6715 for PDF files6716 behaves like uploaded file with disposition6717 returns correct Content-Disposition6718 for SVG files6719 behaves like uploaded file with disposition6720 returns correct Content-Disposition6721 when viewing a user avatar6722 when signed in6723 when the user is blocked6724 responds with status 4016725 when the user isn't blocked6726 responds with status 2006727 behaves like content publicly cached6728 ensures content is publicly cached6729 when not signed in6730 when restricted visibility level is not set to public6731 responds with status 2006732 behaves like content publicly cached6733 ensures content is publicly cached6734 when restricted visibility level is set to public6735 responds with status 4016736 when viewing a project avatar6737 when the project is public6738 when not signed in6739 responds with status 2006740 behaves like content 5 min private cached with revalidation6741 ensures content will not be cached without revalidation6742 when signed in6743 responds with status 2006744 behaves like content 5 min private cached with revalidation6745 ensures content will not be cached without revalidation6746 when the project is private6747 when not signed in6748 responds with status 4016749 when signed in6750 when the user has access to the project6751 when the user is blocked6752 responds with status 4016753 when the user isn't blocked6754 responds with status 2006755 behaves like content 5 min private cached with revalidation6756 ensures content will not be cached without revalidation6757 when the user doesn't have access to the project6758 responds with status 4046759 when viewing a group avatar6760 when the group is public6761 when not signed in6762 responds with status 2006763 behaves like content 5 min private cached with revalidation6764 ensures content will not be cached without revalidation6765 when signed in6766 responds with status 2006767 behaves like content 5 min private cached with revalidation6768 ensures content will not be cached without revalidation6769 when the group is private6770 when signed in6771 when the user has access to the project6772 when the user is blocked6773 responds with status 4016774 when the user isn't blocked6775 responds with status 2006776 behaves like content 5 min private cached with revalidation6777 ensures content will not be cached without revalidation6778 when the user doesn't have access to the project6779 responds with status 4046780 when viewing a note attachment6781 when the project is public6782 when not signed in6783 responds with status 2006784 behaves like content not cached6785 ensures content will not be cached without revalidation6786 when signed in6787 responds with status 2006788 behaves like content not cached6789 ensures content will not be cached without revalidation6790 when the project is private6791 when not signed in6792 responds with status 4016793 when signed in6794 when the user has access to the project6795 when the user is blocked6796 responds with status 4016797 when the user isn't blocked6798 responds with status 2006799 behaves like content not cached6800 ensures content will not be cached without revalidation6801 when the user doesn't have access to the project6802 responds with status 4046803 when viewing a topic avatar6804 when signed in6805 responds with status 2006806 behaves like content publicly cached6807 ensures content is publicly cached6808 when not signed in6809 responds with status 2006810 behaves like content publicly cached6811 ensures content is publicly cached6812 Appearance6813 when viewing a custom pwa icon6814 behaves like view custom logo6815 when not signed in6816 responds with status 2006817 behaves like content publicly cached6818 ensures content is publicly cached6819 when viewing a custom header logo6820 behaves like view custom logo6821 when not signed in6822 responds with status 2006823 behaves like content publicly cached6824 ensures content is publicly cached6825 when viewing a custom logo6826 behaves like view custom logo6827 when not signed in6828 responds with status 2006829 behaves like content publicly cached6830 ensures content is publicly cached6831 original filename or a version filename must match6832 has a valid filename on the original file6833 successfully returns the file6834 has an invalid filename on the original file6835 returns a 4046836 when viewing alert metric images6837 responds with status 2006838 when viewing an achievement6839 when signed in6840 responds with status 2006841 behaves like content publicly cached6842 ensures content is publicly cached6843 when not signed in6844 responds with status 2006845 behaves like content publicly cached6846 ensures content is publicly cached6847API::Internal::Kubernetes6848 POST /internal/kubernetes/usage_metrics6849 returns correct error for the endpoint6850 not authenticated6851 returns 4016852 kubernetes_agent_internal_api feature flag disabled6853 returns 4046854 is authenticated for an agent6855 returns no_content for valid events6856 returns no_content for counts of zero6857 returns 400 for non counter number6858 returns 400 for non unique_counter set6859 tracks events and unique events6860 POST /internal/kubernetes/agent_configuration6861 returns correct error for the endpoint6862 not authenticated6863 returns 4016864 kubernetes_agent_internal_api feature flag disabled6865 returns 4046866 agent exists6867 configures the agent and returns a 2046868 agent does not exist6869 returns a 4046870 GET /internal/kubernetes/agent_info6871 returns 401 if Authorization header not sent6872 returns 401 if Authorization is for non-existent agent6873 returns correct error for the endpoint6874 not authenticated6875 returns 4016876 kubernetes_agent_internal_api feature flag disabled6877 returns 4046878 an agent is found6879 tracks token usage6880 returns expected data6881 GET /internal/kubernetes/project_info6882 returns 401 if Authorization header not sent6883 returns 401 if Authorization is for non-existent agent6884 returns correct error for the endpoint6885 not authenticated6886 returns 4016887 kubernetes_agent_internal_api feature flag disabled6888 returns 4046889 an agent is found6890 tracks token usage6891 project is public6892 returns expected data6893 repository is for project members only6894 returns 4046895 project is private6896 returns 4046897 and agent belongs to project6898 returns 2006899 project is internal6900 returns 4046901 project does not exist6902 returns 4046903 GET /internal/kubernetes/verify_project_access6904 returns 401 if Authorization header not sent6905 returns 401 if Authorization is for non-existent agent6906 returns correct error for the endpoint6907 not authenticated6908 returns 4016909 kubernetes_agent_internal_api feature flag disabled6910 returns 4046911 an agent is found6912 tracks token usage6913 project is public6914 behaves like access is granted6915 returns success response6916 repository is for project members only6917 behaves like access is denied6918 returns 4046919 project is private6920 behaves like access is denied6921 returns 4046922 and agent belongs to project6923 behaves like access is granted6924 returns success response6925 project is internal6926 behaves like access is denied6927 returns 4046928 and agent belongs to project6929 behaves like access is granted6930 returns success response6931 project does not exist6932 behaves like access is denied6933 returns 4046934 POST /internal/kubernetes/authorize_proxy_user6935 when the access type is access_token6936 returns 200 when the user has access6937 returns 403 when user has no access6938 returns 403 when user has incorrect token scope6939 returns 403 when user has no access to requested agent6940 returns 404 for non-existent agent6941 when the access type is session_cookie6942 returns 400 when cookie is invalid6943 returns 401 when session is not found6944 returns 401 when CSRF token does not match6945 returns 404 for non-existent agent6946 returns 403 when user has no access6947 returns 200 when user has access6948 returns 401 when user has valid KAS cookie and CSRF token but has no access to requested agent6949 returns 401 when user id is not found in session6950API::ProjectDebianDistributions6951 POST projects/:id/debian_distributions6952 behaves like Debian distributions write endpoint6953 with valid container6954 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/6955 behaves like Debian distributions POST request6956 creates distribution6957 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6958 behaves like Debian distributions POST request6959 returns unauthorized6960 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6961 behaves like Debian distributions POST request6962 returns forbidden6963 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6964 behaves like Debian distributions POST request6965 returns forbidden6966 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6967 behaves like Debian distributions POST request6968 returns unauthorized6969 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6970 behaves like Debian distributions POST request6971 returns unauthorized6972 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/6973 behaves like Debian distributions POST request6974 creates distribution6975 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6976 behaves like Debian distributions POST request6977 returns forbidden6978 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6979 behaves like Debian distributions POST request6980 returns not_found6981 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6982 behaves like Debian distributions POST request6983 returns not_found6984 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6985 behaves like Debian distributions POST request6986 returns unauthorized6987 behaves like rejects Debian access with unknown container id6988 with an unknown container6989 as anonymous6990 behaves like Debian packages GET request6991 returns not_found6992 as authenticated user6993 behaves like Debian packages GET request6994 returns not_found6995 with invalid parameters6996 behaves like Debian distributions write endpoint6997 with valid container6998 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"codename":\["has already been taken"\]}}$/6999 behaves like Debian distributions GET request7000 returns bad_request and expected body7001 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil7002 behaves like Debian distributions GET request7003 returns unauthorized7004 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7005 behaves like Debian distributions GET request7006 returns forbidden7007 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7008 behaves like Debian distributions GET request7009 returns forbidden7010 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7011 behaves like Debian distributions GET request7012 returns unauthorized7013 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7014 behaves like Debian distributions GET request7015 returns unauthorized7016 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"codename":\["has already been taken"\]}}$/7017 behaves like Debian distributions GET request7018 returns bad_request and expected body7019 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7020 behaves like Debian distributions GET request7021 returns forbidden7022 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil7023 behaves like Debian distributions GET request7024 returns not_found7025 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil7026 behaves like Debian distributions GET request7027 returns not_found7028 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7029 behaves like Debian distributions GET request7030 returns unauthorized7031 behaves like rejects Debian access with unknown container id7032 with an unknown container7033 as anonymous7034 behaves like Debian packages GET request7035 returns not_found7036 as authenticated user7037 behaves like Debian packages GET request7038 returns not_found7039 with access to package registry for everyone7040 behaves like Debian distributions POST request7041 returns not_found7042 GET projects/:id/debian_distributions7043 behaves like Debian distributions read endpoint7044 with valid container7045 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/7046 behaves like Debian distributions GET request7047 returns success and expected body7048 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/7049 behaves like Debian distributions GET request7050 returns success and expected body7051 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/7052 behaves like Debian distributions GET request7053 returns success and expected body7054 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7055 behaves like Debian distributions GET request7056 returns unauthorized7057 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/7058 behaves like Debian distributions GET request7059 returns success and expected body7060 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil7061 behaves like Debian distributions GET request7062 returns not_found7063 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7064 behaves like Debian distributions GET request7065 returns forbidden7066 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil7067 behaves like Debian distributions GET request7068 returns not_found7069 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil7070 behaves like Debian distributions GET request7071 returns not_found7072 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7073 behaves like Debian distributions GET request7074 returns unauthorized7075 behaves like rejects Debian access with unknown container id7076 with an unknown container7077 as anonymous7078 behaves like Debian packages GET request7079 returns not_found7080 as authenticated user7081 behaves like Debian packages GET request7082 returns not_found7083 behaves like accept GET request on private project with access to package registry for everyone7084 behaves like Debian distributions GET request7085 returns success7086 GET projects/:id/debian_distributions/:codename7087 behaves like Debian distributions read endpoint7088 with valid container7089 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/7090 behaves like Debian distributions GET request7091 returns success and expected body7092 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/7093 behaves like Debian distributions GET request7094 returns success and expected body7095 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/7096 behaves like Debian distributions GET request7097 returns success and expected body7098 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7099 behaves like Debian distributions GET request7100 returns unauthorized7101 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/7102 behaves like Debian distributions GET request7103 returns success and expected body7104 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil7105 behaves like Debian distributions GET request7106 returns not_found7107 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7108 behaves like Debian distributions GET request7109 returns forbidden7110 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil7111 behaves like Debian distributions GET request7112 returns not_found7113 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil7114 behaves like Debian distributions GET request7115 returns not_found7116 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7117 behaves like Debian distributions GET request7118 returns unauthorized7119 behaves like rejects Debian access with unknown container id7120 with an unknown container7121 as anonymous7122 behaves like Debian packages GET request7123 returns not_found7124 as authenticated user7125 behaves like Debian packages GET request7126 returns not_found7127 behaves like accept GET request on private project with access to package registry for everyone7128 behaves like Debian distributions GET request7129 returns success7130 GET projects/:id/debian_distributions/:codename/key.asc7131 behaves like Debian distributions read endpoint7132 with valid container7133 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/7134 behaves like Debian distributions GET request7135 returns success and expected body7136 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/7137 behaves like Debian distributions GET request7138 returns success and expected body7139 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/7140 behaves like Debian distributions GET request7141 returns success and expected body7142 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7143 behaves like Debian distributions GET request7144 returns unauthorized7145 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/7146 behaves like Debian distributions GET request7147 returns success and expected body7148 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil7149 behaves like Debian distributions GET request7150 returns not_found7151 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7152 behaves like Debian distributions GET request7153 returns forbidden7154 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil7155 behaves like Debian distributions GET request7156 returns not_found7157 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil7158 behaves like Debian distributions GET request7159 returns not_found7160 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7161 behaves like Debian distributions GET request7162 returns unauthorized7163 behaves like rejects Debian access with unknown container id7164 with an unknown container7165 as anonymous7166 behaves like Debian packages GET request7167 returns not_found7168 as authenticated user7169 behaves like Debian packages GET request7170 returns not_found7171 behaves like accept GET request on private project with access to package registry for everyone7172 behaves like Debian distributions GET request7173 returns success7174 PUT projects/:id/debian_distributions/:codename7175 behaves like Debian distributions write endpoint7176 with valid container7177 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/7178 behaves like Debian distributions PUT request7179 updates distribution7180 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil7181 behaves like Debian distributions PUT request7182 returns unauthorized7183 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7184 behaves like Debian distributions PUT request7185 returns forbidden7186 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7187 behaves like Debian distributions PUT request7188 returns forbidden7189 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7190 behaves like Debian distributions PUT request7191 returns unauthorized7192 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7193 behaves like Debian distributions PUT request7194 returns unauthorized7195 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/7196 behaves like Debian distributions PUT request7197 updates distribution7198 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7199 behaves like Debian distributions PUT request7200 returns forbidden7201 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil7202 behaves like Debian distributions PUT request7203 returns not_found7204 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil7205 behaves like Debian distributions PUT request7206 returns not_found7207 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7208 behaves like Debian distributions PUT request7209 returns unauthorized7210 behaves like rejects Debian access with unknown container id7211 with an unknown container7212 as anonymous7213 behaves like Debian packages GET request7214 returns not_found7215 as authenticated user7216 behaves like Debian packages GET request7217 returns not_found7218 with invalid parameters7219 behaves like Debian distributions write endpoint7220 with valid container7221 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"suite":\["has already been taken as Codename"\]}}$/7222 behaves like Debian distributions GET request7223 returns bad_request and expected body7224 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil7225 behaves like Debian distributions GET request7226 returns unauthorized7227 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7228 behaves like Debian distributions GET request7229 returns forbidden7230 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7231 behaves like Debian distributions GET request7232 returns forbidden7233 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7234 behaves like Debian distributions GET request7235 returns unauthorized7236 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7237 behaves like Debian distributions GET request7238 returns unauthorized7239 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"suite":\["has already been taken as Codename"\]}}$/7240 behaves like Debian distributions GET request7241 returns bad_request and expected body7242 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7243 behaves like Debian distributions GET request7244 returns forbidden7245 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil7246 behaves like Debian distributions GET request7247 returns not_found7248 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil7249 behaves like Debian distributions GET request7250 returns not_found7251 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7252 behaves like Debian distributions GET request7253 returns unauthorized7254 behaves like rejects Debian access with unknown container id7255 with an unknown container7256 as anonymous7257 behaves like Debian packages GET request7258 returns not_found7259 as authenticated user7260 behaves like Debian packages GET request7261 returns not_found7262 DELETE projects/:id/debian_distributions/:codename7263 behaves like Debian distributions maintainer write endpoint7264 with valid container7265 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/7266 behaves like Debian distributions DELETE request7267 updates distribution7268 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil7269 behaves like Debian distributions DELETE request7270 returns unauthorized7271 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7272 behaves like Debian distributions DELETE request7273 returns forbidden7274 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7275 behaves like Debian distributions DELETE request7276 returns forbidden7277 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7278 behaves like Debian distributions DELETE request7279 returns unauthorized7280 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7281 behaves like Debian distributions DELETE request7282 returns unauthorized7283 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/7284 behaves like Debian distributions DELETE request7285 updates distribution7286 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7287 behaves like Debian distributions DELETE request7288 returns forbidden7289 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil7290 behaves like Debian distributions DELETE request7291 returns not_found7292 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil7293 behaves like Debian distributions DELETE request7294 returns not_found7295 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7296 behaves like Debian distributions DELETE request7297 returns unauthorized7298 behaves like rejects Debian access with unknown container id7299 with an unknown container7300 as anonymous7301 behaves like Debian packages GET request7302 returns not_found7303 as authenticated user7304 behaves like Debian packages GET request7305 returns not_found7306 when destroy fails7307 behaves like Debian distributions maintainer write endpoint7308 with valid container7309 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":"Failed to delete distribution"}$/7310 behaves like Debian distributions GET request7311 returns bad_request and expected body7312 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil7313 behaves like Debian distributions GET request7314 returns unauthorized7315 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7316 behaves like Debian distributions GET request7317 returns forbidden7318 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7319 behaves like Debian distributions GET request7320 returns forbidden7321 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7322 behaves like Debian distributions GET request7323 returns unauthorized7324 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7325 behaves like Debian distributions GET request7326 returns unauthorized7327 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":"Failed to delete distribution"}$/7328 behaves like Debian distributions GET request7329 returns bad_request and expected body7330 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil7331 behaves like Debian distributions GET request7332 returns forbidden7333 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil7334 behaves like Debian distributions GET request7335 returns not_found7336 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil7337 behaves like Debian distributions GET request7338 returns not_found7339 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil7340 behaves like Debian distributions GET request7341 returns unauthorized7342 behaves like rejects Debian access with unknown container id7343 with an unknown container7344 as anonymous7345 behaves like Debian packages GET request7346 returns not_found7347 as authenticated user7348 behaves like Debian packages GET request7349 returns not_found7350API::CommitStatuses7351 GET /projects/:id/repository/commits/:sha/statuses7352 ci commit exists7353 reporter user7354 latest commit statuses7355 returns latest commit statuses7356 all commit statuses7357 returns all commit statuses7358 latest commit statuses for specific ref7359 returns latest commit statuses for specific ref7360 latest commit statues for specific name7361 return latest commit statuses for specific name7362 ci commit does not exist7363 returns empty array7364 guest user7365 does not return project commits7366 unauthorized user7367 does not return project commits7368 POST /projects/:id/statuses/:sha7369 developer user7370 uses only required parameters7371 for pending7372 when pipeline for sha does not exists7373 creates commit status and sets pipeline iid7374 for running7375 when pipeline for sha does not exists7376 creates commit status and sets pipeline iid7377 for success7378 when pipeline for sha does not exists7379 creates commit status and sets pipeline iid7380 for failed7381 when pipeline for sha does not exists7382 creates commit status and sets pipeline iid7383 for canceled7384 when pipeline for sha does not exists7385 creates commit status and sets pipeline iid7386 when pipeline already exists for the specified sha7387 with pipeline for merge request7388 behaves like creates a commit status for the existing pipeline with an external stage7389 is expected to eq 10000007390 when an external stage does not exist7391 when the commit status does not exist7392 behaves like creates a commit status for the existing pipeline with an external stage7393 is expected to eq 10000007394 when the commit status exists7395 behaves like updates the commit status with an external stage7396 updates the commit status with the external stage7397 when an external stage already exists7398 when the commit status exists7399 behaves like updates the commit status with an external stage7400 updates the commit status with the external stage7401 when the commit status does not exist7402 behaves like creates a commit status for the existing pipeline with an external stage7403 is expected to eq 10000007404 when the pipeline does not exist7405 creates a commit status and a stage7406 when status transitions from pending7407 to running7408 to success7409 to failed7410 to canceled7411 with all optional parameters7412 when creating a commit status7413 creates commit status7414 when merge request exists for given branch7415 sets head pipeline7416 when updating a commit status7417 updates a commit status7418 does not create a new commit status7419 when the `state` parameter is sent the same7420 does not update the commit status7421 when a pipeline id is specified7422 update the correct pipeline7423 when retrying a commit status7424 correctly posts a new commit status7425 retries the commit status7426 when status is invalid7427 does not create commit status7428 when request without a state made7429 does not create commit status7430 when updating a protected ref7431 with user as developer7432 does not create commit status7433 with user as maintainer7434 creates commit status7435 when commit SHA is invalid7436 returns not found error7437 when target URL is an invalid address7438 responds with bad request status and validation errors7439 when target URL is an unsupported scheme7440 responds with bad request status and validation errors7441 when trying to update a status of a different type7442 responds with bad request status and validation errors7443 with partitions7444 creates records in the current partition7445 reporter user7446 does not create commit status7447 guest user7448 does not create commit status7449 unauthorized user7450 does not create commit status7451API::Ml::Mlflow::Runs7452 # order random7453 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-batch7454 logs parameters and metrics7455 when parameter was already logged7456 does not log7457 when tag was already logged7458 logs only 17459 Error Cases7460 when required metric key is missing7461 behaves like MLflow|Bad Request7462 is Bad Request7463 when required param key is missing7464 behaves like MLflow|Bad Request7465 is Bad Request7466 behaves like MLflow|shared error cases7467 when not authenticated7468 is Unauthorized7469 when user does not have access7470 is Not Found7471 when model experiments is unavailable7472 is Not Found7473 behaves like MLflow|Requires api scope and write permission7474 when user has access but token has wrong scope7475 is expected to respond with numeric status code forbidden7476 when user has access but is not allowed to write7477 is Unauthorized7478 behaves like MLflow|run_id param error cases7479 when run id is not passed7480 is Bad Request7481 when run_id is invalid7482 is Resource Does Not Exist7483 when run_id is not in in the project7484 is Resource Does Not Exist7485 GET /projects/:id/ml/mlflow/api/2.0/mlflow/runs/get7486 gets the run7487 with a relative root URL7488 gets a run including a valid artifact_uri7489 Error States7490 behaves like MLflow|run_id param error cases7491 when run id is not passed7492 is Bad Request7493 when run_id is invalid7494 is Resource Does Not Exist7495 when run_id is not in in the project7496 is Resource Does Not Exist7497 behaves like MLflow|shared error cases7498 when not authenticated7499 is Unauthorized7500 when user does not have access7501 is Not Found7502 when model experiments is unavailable7503 is Not Found7504 behaves like MLflow|Requires read_api scope7505 when user has access but token has wrong scope7506 is expected to respond with numeric status code forbidden7507 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/set-tag7508 logs the tag7509 Error Cases7510 when tag was already logged7511 behaves like MLflow|Bad Request7512 is Bad Request7513 behaves like MLflow|shared error cases7514 when not authenticated7515 is Unauthorized7516 when user does not have access7517 is Not Found7518 when model experiments is unavailable7519 is Not Found7520 behaves like MLflow|Requires api scope and write permission7521 when user has access but token has wrong scope7522 is expected to respond with numeric status code forbidden7523 when user has access but is not allowed to write7524 is Unauthorized7525 behaves like MLflow|run_id param error cases7526 when run id is not passed7527 is Bad Request7528 when run_id is invalid7529 is Resource Does Not Exist7530 when run_id is not in in the project7531 is Resource Does Not Exist7532 behaves like MLflow|Bad Request on missing required7533 when "key" is missing7534 is Bad Request7535 when "value" is missing7536 is Bad Request7537 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-parameter7538 logs the parameter7539 Error Cases7540 when parameter was already logged7541 behaves like MLflow|Bad Request7542 is Bad Request7543 behaves like MLflow|shared error cases7544 when not authenticated7545 is Unauthorized7546 when user does not have access7547 is Not Found7548 when model experiments is unavailable7549 is Not Found7550 behaves like MLflow|Requires api scope and write permission7551 when user has access but token has wrong scope7552 is expected to respond with numeric status code forbidden7553 when user has access but is not allowed to write7554 is Unauthorized7555 behaves like MLflow|run_id param error cases7556 when run id is not passed7557 is Bad Request7558 when run_id is invalid7559 is Resource Does Not Exist7560 when run_id is not in in the project7561 is Resource Does Not Exist7562 behaves like MLflow|Bad Request on missing required7563 when "key" is missing7564 is Bad Request7565 when "value" is missing7566 is Bad Request7567 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/search7568 searches runs for a project7569 pagination and ordering7570 when ordering is not provided7571 behaves like a paginated search runs request with order7572 paginates respecting the provided order by7573 when order by column is provided and column exists7574 behaves like a paginated search runs request with order7575 paginates respecting the provided order by7576 when order by column is provided and column does not exist7577 behaves like a paginated search runs request with order7578 paginates respecting the provided order by7579 when order by metric is provided and metric exists7580 behaves like a paginated search runs request with order7581 paginates respecting the provided order by7582 when order by metric is provided and metric does not exist7583 returns no results7584 when order by params is provided7585 behaves like a paginated search runs request with order7586 paginates respecting the provided order by7587 Error States7588 when experiment_ids is not passed7589 behaves like MLflow|Bad Request7590 is Bad Request7591 when experiment_ids is empty7592 behaves like MLflow|Not Found - Resource Does Not Exist7593 is Resource Does Not Exist7594 when experiment_ids is invalid7595 behaves like MLflow|Not Found - Resource Does Not Exist7596 is Resource Does Not Exist7597 behaves like MLflow|shared error cases7598 when not authenticated7599 is Unauthorized7600 when user does not have access7601 is Not Found7602 when model experiments is unavailable7603 is Not Found7604 behaves like MLflow|Requires read_api scope7605 when user has access but token has wrong scope7606 is expected to respond with numeric status code forbidden7607 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-metric7608 logs the metric7609 Error Cases7610 behaves like MLflow|shared error cases7611 when not authenticated7612 is Unauthorized7613 when user does not have access7614 is Not Found7615 when model experiments is unavailable7616 is Not Found7617 behaves like MLflow|Requires api scope and write permission7618 when user has access but token has wrong scope7619 is expected to respond with numeric status code forbidden7620 when user has access but is not allowed to write7621 is Unauthorized7622 behaves like MLflow|run_id param error cases7623 when run id is not passed7624 is Bad Request7625 when run_id is invalid7626 is Resource Does Not Exist7627 when run_id is not in in the project7628 is Resource Does Not Exist7629 behaves like MLflow|Bad Request on missing required7630 when "key" is missing7631 is Bad Request7632 when "value" is missing7633 is Bad Request7634 when "timestamp" is missing7635 is Bad Request7636 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/update7637 updates the run7638 Error States7639 when status in invalid7640 behaves like MLflow|Bad Request7641 is Bad Request7642 when end_time is invalid7643 behaves like MLflow|Bad Request7644 is Bad Request7645 behaves like MLflow|shared error cases7646 when not authenticated7647 is Unauthorized7648 when user does not have access7649 is Not Found7650 when model experiments is unavailable7651 is Not Found7652 behaves like MLflow|Requires api scope and write permission7653 when user has access but token has wrong scope7654 is expected to respond with numeric status code forbidden7655 when user has access but is not allowed to write7656 is Unauthorized7657 behaves like MLflow|run_id param error cases7658 when run id is not passed7659 is Bad Request7660 when run_id is invalid7661 is Resource Does Not Exist7662 when run_id is not in in the project7663 is Resource Does Not Exist7664 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/create7665 creates the run7666 Error States7667 when experiment id is not passed7668 behaves like MLflow|Bad Request7669 is Bad Request7670 when experiment id does not exist7671 behaves like MLflow|Not Found - Resource Does Not Exist7672 is Resource Does Not Exist7673 when experiment exists but is not part of the project7674 behaves like MLflow|Not Found - Resource Does Not Exist7675 is Resource Does Not Exist7676 behaves like MLflow|shared error cases7677 when not authenticated7678 is Unauthorized7679 when user does not have access7680 is Not Found7681 when model experiments is unavailable7682 is Not Found7683 behaves like MLflow|Requires api scope and write permission7684 when user has access but token has wrong scope7685 is expected to respond with numeric status code forbidden7686 when user has access but is not allowed to write7687 is Unauthorized7688VerifiesWithEmail7689 verify_with_email7690 when user is locked and a verification_user_id session variable exists7691 when rate limited and a verification_token param exists7692 adds a verification error message7693 when an invalid verification_token param exists7694 adds a verification error message7695 when an expired verification_token param exists7696 adds a verification error message7697 when a valid verification_token param exists7698 unlocks the user, create logs and records the activity7699 returns the success status and a redirect path7700 when an unconfirmed verification email exists7701 confirms the email7702 when email reset has already been offered7703 does not change the email_reset_offered_at field7704 does not confirm the email7705 when not completing identity verification and logging in with another account7706 redirects to the root path7707 when signing in with a valid password7708 behaves like not verifying with email7709 when rate limited7710 behaves like two factor prompt or successful login7711 shows the 2FA prompt when enabled or redirects to the root path7712 when the user already has an unlock_token set7713 behaves like two factor prompt or successful login7714 shows the 2FA prompt when enabled or redirects to the root path7715 when the user is signing in from an unknown ip address7716 behaves like two factor prompt or successful login7717 shows the 2FA prompt when enabled or redirects to the root path7718 when the feature flag is toggled on7719 behaves like verifying with email7720 when rate limited7721 behaves like rate limited7722 redirects to the login form and shows an alert message7723 when the user already has an unlock_token set7724 behaves like prompt for email verification7725 sets the verification_user_id session variable and renders the email verification template7726 when the user is already locked7727 behaves like send verification instructions7728 locks the user7729 sends an email7730 when an unconfirmed verification email exists7731 sends a verification instructions email to the unconfirmed email address7732 behaves like prompt for email verification7733 sets the verification_user_id session variable and renders the email verification template7734 when the user is signing in from an unknown ip address7735 behaves like send verification instructions7736 locks the user7737 sends an email7738 when an unconfirmed verification email exists7739 sends a verification instructions email to the unconfirmed email address7740 behaves like prompt for email verification7741 sets the verification_user_id session variable and renders the email verification template7742 when the check_ip_address_for_email_verification feature flag is disabled7743 behaves like not verifying with email7744 when rate limited7745 behaves like two factor prompt or successful login7746 shows the 2FA prompt when enabled or redirects to the root path7747 when the user already has an unlock_token set7748 behaves like two factor prompt or successful login7749 shows the 2FA prompt when enabled or redirects to the root path7750 when the user is signing in from an unknown ip address7751 behaves like two factor prompt or successful login7752 shows the 2FA prompt when enabled or redirects to the root path7753 when 2FA is enabled7754 behaves like not verifying with email7755 when rate limited7756 behaves like two factor prompt or successful login7757 shows the 2FA prompt when enabled or redirects to the root path7758 when the user already has an unlock_token set7759 behaves like two factor prompt or successful login7760 shows the 2FA prompt when enabled or redirects to the root path7761 when the user is signing in from an unknown ip address7762 behaves like two factor prompt or successful login7763 shows the 2FA prompt when enabled or redirects to the root path7764 when request is not from a QA user7765 behaves like verifying with email7766 when rate limited7767 behaves like rate limited7768 redirects to the login form and shows an alert message7769 when the user already has an unlock_token set7770 behaves like prompt for email verification7771 sets the verification_user_id session variable and renders the email verification template7772 when the user is already locked7773 behaves like send verification instructions7774 locks the user7775 sends an email7776 when an unconfirmed verification email exists7777 sends a verification instructions email to the unconfirmed email address7778 behaves like prompt for email verification7779 sets the verification_user_id session variable and renders the email verification template7780 when the user is signing in from an unknown ip address7781 behaves like send verification instructions7782 locks the user7783 sends an email7784 when an unconfirmed verification email exists7785 sends a verification instructions email to the unconfirmed email address7786 behaves like prompt for email verification7787 sets the verification_user_id session variable and renders the email verification template7788 when the check_ip_address_for_email_verification feature flag is disabled7789 behaves like not verifying with email7790 when rate limited7791 behaves like two factor prompt or successful login7792 shows the 2FA prompt when enabled or redirects to the root path7793 when the user already has an unlock_token set7794 behaves like two factor prompt or successful login7795 shows the 2FA prompt when enabled or redirects to the root path7796 when the user is signing in from an unknown ip address7797 behaves like two factor prompt or successful login7798 shows the 2FA prompt when enabled or redirects to the root path7799 when the skip_require_email_verification feature flag is turned on7800 behaves like not verifying with email7801 when rate limited7802 behaves like two factor prompt or successful login7803 shows the 2FA prompt when enabled or redirects to the root path7804 when the user already has an unlock_token set7805 behaves like two factor prompt or successful login7806 shows the 2FA prompt when enabled or redirects to the root path7807 when the user is signing in from an unknown ip address7808 behaves like two factor prompt or successful login7809 shows the 2FA prompt when enabled or redirects to the root path7810 resend_verification_code7811 when no verification_user_id session variable exists7812 returns 204 No Content7813 when a verification_user_id session variable exists7814 behaves like send verification instructions7815 locks the user7816 sends an email7817 when an unconfirmed verification email exists7818 sends a verification instructions email to the unconfirmed email address7819 when exceeding the rate limit7820 does not lock the user7821 does not send an email7822 update_email7823 when no verification_user_id session variable exists7824 returns 204 No Content7825 when a verification_user_id session variable exists7826 locks the user7827 sends a changed notification to the primary email and verification instructions to the unconfirmed email7828 calls the UpdateEmailService and returns a success response7829 when failing to update the email address7830 calls the UpdateEmailService and returns an error response7831 successful_verification7832 renders the template and removes the verification_user_id session variable7833Projects::WebIdeTerminalsController7834 GET show7835 behaves like terminal access rights7836 with admin7837 when admin mode is enabled7838 returns 2007839 when admin mode is disabled7840 returns 4047841 with owner7842 returns 2007843 with maintainer7844 returns 2007845 with developer7846 returns 4047847 with reporter7848 returns 4047849 with guest7850 returns 4047851 with non member7852 returns 4047853 behaves like when pipeline is not from a webide source7854 with admin7855 returns 4047856 POST check_config7857 behaves like terminal access rights7858 with admin7859 when admin mode is enabled7860 returns 2007861 when admin mode is disabled7862 returns 4047863 with owner7864 returns 2007865 with maintainer7866 returns 2007867 with developer7868 returns 4047869 with reporter7870 returns 4047871 with guest7872 returns 4047873 with non member7874 returns 4047875 when invalid config file7876 returns 4227877 POST create7878 when terminal job is created successfully7879 increases the web ide terminal counter7880 access rights7881 behaves like terminal access rights7882 with admin7883 when admin mode is enabled7884 returns 2007885 when admin mode is disabled7886 returns 4047887 with owner7888 returns 2007889 with maintainer7890 returns 2007891 with developer7892 returns 4047893 with reporter7894 returns 4047895 with guest7896 returns 4047897 with non member7898 returns 4047899 when branch does not exist7900 returns 4007901 behaves like web ide terminal usage counter7902 does not increase7903 when there is an error creating the job7904 returns 4007905 behaves like web ide terminal usage counter7906 does not increase7907 when the current build is nil7908 returns 4007909 behaves like web ide terminal usage counter7910 does not increase7911 POST cancel7912 behaves like terminal access rights7913 with admin7914 when admin mode is enabled7915 returns 2007916 when admin mode is disabled7917 returns 4047918 with owner7919 returns 2007920 with maintainer7921 returns 2007922 with developer7923 returns 4047924 with reporter7925 returns 4047926 with guest7927 returns 4047928 with non member7929 returns 4047930 behaves like when pipeline is not from a webide source7931 with admin7932 returns 4047933 when job is not cancelable7934 returns 4227935 POST retry7936 behaves like terminal access rights7937 with admin7938 when admin mode is enabled7939 returns 2007940 when admin mode is disabled7941 returns 4047942 with owner7943 returns 2007944 with maintainer7945 returns 2007946 with developer7947 returns 4047948 with reporter7949 returns 4047950 with guest7951 returns 4047952 with non member7953 returns 4047954 behaves like when pipeline is not from a webide source7955 with admin7956 returns 4047957 when job is not retryable7958 returns 4227959 when job is cancelled7960 returns 2007961 when job fails7962 returns 2007963 when job is successful7964 returns 2007965Updating the container expiration policy7966 post graphql mutation7967 with existing container expiration policy7968 user_role: :maintainer, shared_examples_name: "accepting the mutation request updating the container expiration policy"7969 behaves like accepting the mutation request updating the container expiration policy7970 behaves like updating the container expiration policy attributes7971 updates the container expiration policy7972 behaves like not creating the container expiration policy7973 doesn't create the container expiration policy7974 behaves like returning a success7975 returns the updated container expiration policy7976 behaves like returning response status7977 returns success7978 behaves like rejecting invalid regex for7979 for field name_regex7980 returns an error7981 behaves like returning response status7982 returns success7983 behaves like not creating the container expiration policy7984 doesn't create the container expiration policy7985 behaves like rejecting invalid regex for7986 for field name_regex_keep7987 returns an error7988 behaves like returning response status7989 returns success7990 behaves like not creating the container expiration policy7991 doesn't create the container expiration policy7992 behaves like rejecting blank name_regex when enabled7993 for blank name_regex7994 returns an error7995 behaves like returning response status7996 returns success7997 behaves like not creating the container expiration policy7998 doesn't create the container expiration policy7999 user_role: :developer, shared_examples_name: "denying the mutation request"8000 behaves like denying the mutation request8001 returns no response8002 behaves like not creating the container expiration policy8003 doesn't create the container expiration policy8004 behaves like returning response status8005 returns success8006 user_role: :reporter, shared_examples_name: "denying the mutation request"8007 behaves like denying the mutation request8008 returns no response8009 behaves like not creating the container expiration policy8010 doesn't create the container expiration policy8011 behaves like returning response status8012 returns success8013 user_role: :guest, shared_examples_name: "denying the mutation request"8014 behaves like denying the mutation request8015 returns no response8016 behaves like not creating the container expiration policy8017 doesn't create the container expiration policy8018 behaves like returning response status8019 returns success8020 user_role: :anonymous, shared_examples_name: "denying the mutation request"8021 behaves like denying the mutation request8022 returns no response8023 behaves like not creating the container expiration policy8024 doesn't create the container expiration policy8025 behaves like returning response status8026 returns success8027 without existing container expiration policy8028 user_role: :maintainer, shared_examples_name: "accepting the mutation request creating the container expiration policy"8029 behaves like accepting the mutation request creating the container expiration policy8030 behaves like creating the container expiration policy8031 behaves like updating the container expiration policy attributes8032 creates a new container expiration policy8033 updates the container expiration policy8034 behaves like returning a success8035 returns the updated container expiration policy8036 behaves like returning response status8037 returns success8038 behaves like returning a success8039 returns the updated container expiration policy8040 behaves like returning response status8041 returns success8042 behaves like rejecting invalid regex for8043 for field name_regex8044 returns an error8045 behaves like returning response status8046 returns success8047 behaves like not creating the container expiration policy8048 doesn't create the container expiration policy8049 behaves like rejecting invalid regex for8050 for field name_regex_keep8051 returns an error8052 behaves like returning response status8053 returns success8054 behaves like not creating the container expiration policy8055 doesn't create the container expiration policy8056 behaves like rejecting blank name_regex when enabled8057 for blank name_regex8058 returns an error8059 behaves like returning response status8060 returns success8061 behaves like not creating the container expiration policy8062 doesn't create the container expiration policy8063 user_role: :developer, shared_examples_name: "denying the mutation request"8064 behaves like denying the mutation request8065 returns no response8066 behaves like not creating the container expiration policy8067 doesn't create the container expiration policy8068 behaves like returning response status8069 returns success8070 user_role: :reporter, shared_examples_name: "denying the mutation request"8071 behaves like denying the mutation request8072 returns no response8073 behaves like not creating the container expiration policy8074 doesn't create the container expiration policy8075 behaves like returning response status8076 returns success8077 user_role: :guest, shared_examples_name: "denying the mutation request"8078 behaves like denying the mutation request8079 returns no response8080 behaves like not creating the container expiration policy8081 doesn't create the container expiration policy8082 behaves like returning response status8083 returns success8084 user_role: :anonymous, shared_examples_name: "denying the mutation request"8085 behaves like denying the mutation request8086 returns no response8087 behaves like not creating the container expiration policy8088 doesn't create the container expiration policy8089 behaves like returning response status8090 returns success8091API::Namespaces8092 GET /namespaces8093 when unauthenticated8094 returns authentication error8095 when authenticated as admin8096 returns correct attributes8097 admin: returns an array of all namespaces8098 admin: returns an array of matched namespaces8099 when authenticated as a regular user8100 returns correct attributes when user can admin group8101 returns correct attributes when user cannot admin group8102 user: returns an array of namespaces8103 admin: returns an array of matched namespaces8104 with owned_only param8105 returns only owned groups8106 GET /namespaces/:id8107 behaves like GET request permissions for admin mode8108 behaves like when admin8109 behaves like makes request8110 returns8111 behaves like makes request8112 returns8113 behaves like when user8114 returns8115 behaves like makes request8116 returns8117 behaves like GET request permissions for admin mode8118 behaves like when admin8119 behaves like makes request8120 returns8121 behaves like makes request8122 returns8123 behaves like when user8124 returns8125 behaves like makes request8126 returns8127 when unauthenticated8128 returns authentication error8129 returns authentication error8130 when authenticated as regular user8131 when requested namespace is not owned by user8132 when requesting group8133 returns not-found8134 when requesting personal namespace8135 returns not-found8136 when requested namespace is owned by user8137 behaves like namespace reader8138 when namespace exists8139 when requested by ID8140 when requesting group8141 behaves like can access namespace8142 returns namespace details8143 when requesting personal namespace8144 behaves like can access namespace8145 returns namespace details8146 when requesting project_namespace8147 returns not-found8148 when requested by path8149 when requesting group8150 behaves like can access namespace8151 returns namespace details8152 when requesting personal namespace8153 behaves like can access namespace8154 returns namespace details8155 when requesting project_namespace8156 returns not-found8157 when namespace doesn't exist8158 returns not-found8159 when authenticated as admin8160 when requested namespace is not owned by user8161 when requesting group8162 behaves like can access namespace8163 returns namespace details8164 when requesting personal namespace8165 behaves like can access namespace8166 returns namespace details8167 when requested namespace is owned by user8168 behaves like namespace reader8169 when namespace exists8170 when requested by ID8171 when requesting group8172 behaves like can access namespace8173 returns namespace details8174 when requesting personal namespace8175 behaves like can access namespace8176 returns namespace details8177 when requesting project_namespace8178 returns not-found8179 when requested by path8180 when requesting group8181 behaves like can access namespace8182 returns namespace details8183 when requesting personal namespace8184 behaves like can access namespace8185 returns namespace details8186 when requesting project_namespace8187 returns not-found8188 when namespace doesn't exist8189 returns not-found8190 GET /namespaces/:namespace/exists8191 when unauthenticated8192 returns authentication error8193 when requesting project_namespace8194 returns authentication error8195 when authenticated8196 returns JSON indicating the namespace exists and a suggestion8197 supports dot in namespace path8198 returns JSON indicating the namespace does not exist without a suggestion8199 checks the existence of a namespace in case-insensitive manner8200 checks the existence within the parent namespace only8201 ignores nested namespaces when checking for top-level namespace8202 ignores paths of groups present in other hierarchies when making suggestions8203 ignores top-level namespaces when checking with parent_id8204 ignores namespaces of other parent namespaces when checking with parent_id8205 behaves like rate limited endpoint8206 when rate limiter enabled8207 logs request and declines it when endpoint called more than the threshold8208 when rate limiter is disabled8209 does not log request and does not block the request8210 when requesting project_namespace8211 returns JSON indicating the namespace does not exist without a suggestion8212getting a package list for a project8213 behaves like group and project packages query8214 when user has access to the resource8215 returns packages successfully8216 deals with metadata8217 returns the count of the packages8218 behaves like a working graphql query that returns data8219 contains data8220 behaves like a working graphql query8221 returns a successful response8222 _links8223 does not contain the web path of errored package8224 when the user does not have access to the resource8225 behaves like a working graphql query that returns no data8226 contains no data8227 behaves like a working graphql query8228 returns a successful response8229 when the user is not authenticated8230 behaves like a working graphql query that returns no data8231 contains no data8232 behaves like a working graphql query8233 returns a successful response8234 sorting and pagination8235 CREATED_ASC8236 behaves like sorted paginated query8237 behaves like requires variables8238 shared example requires variables to be set8240 when sorting8241 sorts correctly8242 when paginating8243 paginates correctly8244 NAME_ASC8245 behaves like sorted paginated query8246 behaves like requires variables8247 shared example requires variables to be set8249 when sorting8250 sorts correctly8251 when paginating8252 paginates correctly8253 VERSION_ASC8254 behaves like sorted paginated query8255 behaves like requires variables8256 shared example requires variables to be set8258 when sorting8259 sorts correctly8260 when paginating8261 paginates correctly8262 TYPE_ASC8263 behaves like sorted paginated query8264 behaves like requires variables8265 shared example requires variables to be set8267 when sorting8268 sorts correctly8269 when paginating8270 paginates correctly8271 CREATED_DESC8272 behaves like sorted paginated query8273 behaves like requires variables8274 shared example requires variables to be set8276 when sorting8277 sorts correctly8278 when paginating8279 paginates correctly8280 NAME_DESC8281 behaves like sorted paginated query8282 behaves like requires variables8283 shared example requires variables to be set8285 when sorting8286 sorts correctly8287 when paginating8288 paginates correctly8289 VERSION_DESC8290 behaves like sorted paginated query8291 behaves like requires variables8292 shared example requires variables to be set8294 when sorting8295 sorts correctly8296 when paginating8297 paginates correctly8298 TYPE_DESC8299 behaves like sorted paginated query8300 behaves like requires variables8301 shared example requires variables to be set8303 when sorting8304 sorts correctly8305 when paginating8306 paginates correctly8307 with an invalid sort8308 throws an error8309 filtering8310 package_name8311 is expected to contain exactly {"name"=>"bab"}8312 package_type8313 is expected to contain exactly {"name"=>"dab"}8314 status8315 is expected to contain exactly {"name"=>"my/company/app/my-app"}8316 include_versionless8317 is expected to include {"name" => "my/company/app/my-app"}8318 when reading pipelines8319 loads the second page with pagination first correctly8320 loads the second page with pagination last correctly8321Query.work_item(id)8322 when project is archived8323 returns the correct value in the archived field8324 when the user can read the work item8325 returns all fields8326 behaves like a working graphql query8327 returns a successful response8328 when work item is created at the group level8329 always returns false in the archived field8330 when querying widgets8331 description widget8332 returns widget information8333 hierarchy widget8334 returns widget information8335 avoids N+1 queries8336 when user is guest8337 filters out not accessible children or parent8338 when requesting child item8339 returns parent information8340 when ordered by default by created_at8341 places the oldest child item to the beginning of the children list8342 places the newest child item to the end of the children list8343 when relative position is set8344 places children according to relative_position at the beginning of the children list8345 assignees widget8346 returns widget information8347 labels widget8348 returns widget information8349 start and due date widget8350 returns widget information8351 milestone widget8352 returns widget information8353 notifications widget8354 returns widget information8355 currentUserTodos widget8356 with access8357 returns widget information8358 with filter8359 returns widget information8360 award emoji widget8361 returns widget information8362 linked items widget8363 returns widget information8364 when filtering by link type8365 returns items with specified type8366 when `linked_work_items` feature flag is disabled8367 returns empty result8368 notes widget8369 when fetching award emoji from notes8370 returns award emoji data8371 returns author contributor status and max access level8372 avoids N+1 queries8373 when an Issue Global ID is provided8374 allows an Issue GID as input8375 when the user can not read the work item8376 returns an access error8377 when the user cannot set work item metadata8378 returns correct user permission8379get board lists8380 for a project8381 behaves like group and project board list issues query8382 when the user does not have access to the board8383 returns nil8384 when user can read the board8385 can access the issues8386 does not set the relative positions of the issues not being returned8387 when filtering by confidential8388 returns matching issue8389 when filtering by a unioned argument8390 returns correctly filtered issues8391 when feature flag is disabled8392 returns an error8393 for a group8394 behaves like group and project board list issues query8395 when the user does not have access to the board8396 returns nil8397 when user can read the board8398 can access the issues8399 does not set the relative positions of the issues not being returned8400 when filtering by confidential8401 returns matching issue8402 when filtering by a unioned argument8403 returns correctly filtered issues8404 when feature flag is disabled8405 returns an error8406Projects::ArtifactsController8407 GET index8408 renders the page with data for the artifacts app8409 DELETE destroy8410 deletes the artifact8411 redirects to artifacts index page8412 sets the notice8413 when artifact deletion fails8414 redirects to artifacts index page8415 sets the notice8416 when user is not authorized8417 does not delete the artifact8418 GET download8419 when no file type is supplied8420 sends the artifacts file8421 when artifact is set as private8422 and user is not authoirized8423 returns forbidden8424 and user has access to project8425 downloads8426 when a file type is supplied8427 when an invalid file type is supplied8428 returns 4048429 when codequality file type is supplied8430 when file is stored locally8431 sends the codequality report8432 when file is stored remotely8433 sends the codequality report8434 when proxied8435 sends the codequality report8436 when Google CDN is configured8437 redirects to a Google CDN request8438 when downloading a debug trace8439 when the user does not have update_build permissions8440 denies the user access8441 when the user has update_build permissions8442 sends the trace8443 GET browse8444 when the directory exists8445 renders the browse view8446 when the directory does not exist8447 responds Not Found8448 GET external_file8449 when the file exists8450 renders the file view8451 when the file does not exist8452 responds Not Found8453 GET file8454 when the file is served by GitLab Pages8455 when the file exists8456 renders the file view8457 when the file is served through Rails8458 when the file exists8459 renders the file view8460 when the file does not exist8461 responds Not Found8462 when the project is private8463 does not redirect the request8464 when the project is private and pages access control is enabled8465 renders the file view8466 GET raw8467 when the file exists8468 when using local file storage8469 behaves like a valid file8470 serves the file using workhorse8471 when using remote file storage8472 behaves like a valid file8473 serves the file using workhorse8474 when artifacts archive is missing8475 returns 4048476 fetching an artifact of different type8477 when the artifact is zip8478 behaves like a valid file8479 serves the file using workhorse8480 when the artifact is not zip8481 responds with not found8482 GET latest_succeeded8483 cannot find the job8484 has no such ref8485 behaves like not found8486 is expected to respond with numeric status code not_found8487 has no such job8488 behaves like not found8489 is expected to respond with numeric status code not_found8490 has no path8491 behaves like not found8492 is expected to respond with numeric status code not_found8493 found the job and redirect8494 with regular branch8495 behaves like redirect to the job8496 redirects8497 with branch name containing slash8498 behaves like redirect to the job8499 redirects8500 with branch name and path containing slashes8501 redirects8502 with a failed pipeline on an updated master8503 behaves like redirect to the job8504 redirects8505getting Alert Management Alerts8506 with alert data8507 without project permissions8508 is expected to equal nil8509 behaves like a working graphql query8510 returns a successful response8511 with project permissions8512 is expected to eq 28513 returns the correct properties of the alerts8514 behaves like a working graphql query8515 returns a successful response8516 with iid given8517 is expected to eq 18518 is expected to eq "1"8519 behaves like a working graphql query8520 returns a successful response8521 with statuses given8522 is expected to eq 18523 is expected to eq "2"8524 behaves like a working graphql query8525 returns a successful response8526 sorting data given8527 sorts in the correct order8528 behaves like a working graphql query8529 returns a successful response8530 ascending order8531 sorts in the correct order8532 searching8533 is expected to eq 18534 is expected to eq "1"8535 behaves like a working graphql query8536 returns a successful response8537 unknown criteria8538 is expected to eq 08539 assignee_username8540 is expected to eq "2"8541 behaves like a working graphql query8542 returns a successful response8543Dashboard::MilestonesController8544 #index8545 returns group and project milestones to which the user belongs8546 returns closed group and project milestones to which the user belongs8547 searches legacy project milestones by title when search_title is given8548 searches group milestones by title when search_title is given8549 shows counts of open/closed/all group and project milestones to which the user belongs to8550 external authorization8551 behaves like disabled when using an external authorization service8552 works when the feature is not enabled8553 renders a 404 with a message when the feature is enabled8554Projects::DesignManagement::Designs::RawImagesController8555 GET #show8556 when the design is not an LFS file8557 serves files with `Content-Disposition` header set to attachment plus the filename8558 serves files with Workhorse8559 behaves like project cache control headers8560 when project is public8561 returns cache_control public header to true8562 when project is private8563 returns cache_control public header to true8564 when project is internal8565 returns cache_control public header to true8566 when the user does not have permission8567 is expected to respond with numeric status code not_found8568 when design does not exist8569 is expected to respond with numeric status code not_found8570 sha param8571 is expected not to eq "3eeb641067032a6844dff3e805c8e3e23dd7e526"8572 when sha is the newest version sha8573 behaves like a successful request for sha8574 is expected to respond with numeric status code ok8575 when sha is the oldest version sha8576 behaves like a successful request for sha8577 is expected to respond with numeric status code ok8578 when sha is nil8579 behaves like a successful request for sha8580 is expected to respond with numeric status code ok8581 when the design is an LFS file8582 serves files with `Content-Disposition: attachment`8583 sets appropriate caching headers8584 behaves like a controller that can serve LFS files8585 when lfs is enabled8586 when the project is linked to the LfsObject8587 serves the file8588 and lfs uses object storage8589 responds with redirect to file8590 sets content disposition8591 when project is not linked to the LfsObject8592 does not serve the file8593 when the project is part of a fork network8594 when the project is the root of the fork network8595 behaves like a controller that correctly serves lfs files within a fork network8596 is expected not to eq #<Project id:734 namespace725/project-493>>8597 does not serve the file if no members are linked to the LfsObject8598 serves the file when the fork network root is linked to the LfsObject8599 serves the file when the fork network member is linked to the LfsObject8600 when the project is a downstream member of the fork network8601 behaves like a controller that correctly serves lfs files within a fork network8602 is expected not to eq #<Project id:739 namespace730/project-498>>8603 does not serve the file if no members are linked to the LfsObject8604 serves the file when the fork network root is linked to the LfsObject8605 serves the file when the fork network member is linked to the LfsObject8606 when lfs is not enabled8607 delivers ASCII file (PENDING: Calling spec asked to skip testing LFS disabled scenario)8608API::Ci::SecureFiles8609 GET /projects/:id/secure_files8610 ci_secure_files_read_only feature flag8611 when the flag is enabled8612 returns a 503 when attempting to upload a file8613 returns a 200 when downloading a file8614 when the feature is disabled at the instance level8615 returns a 403 when attempting to upload a file8616 returns a 403 when downloading a file8617 when the flag is disabled8618 returns a 201 when uploading a file when the ci_secure_files_read_only feature flag is disabled8619 authenticated user with admin permissions8620 returns project secure files8621 authenticated user with read permissions8622 returns project secure files8623 authenticated user with guest permissions8624 does not return project secure files8625 authenticated user with no permissions8626 does not return project secure files8627 unconfirmed user8628 does not return project secure files8629 unauthenticated user8630 does not return project secure files8631 GET /projects/:id/secure_files/:secure_file_id8632 authenticated user with admin permissions8633 returns project secure file details8634 returns project secure file details with metadata when supported8635 responds with 404 Not Found if requesting non-existing secure file8636 authenticated user with read permissions8637 returns project secure file details8638 authenticated user with no permissions8639 does not return project secure file details8640 unconfirmed user8641 does not return project secure file details8642 unauthenticated user8643 does not return project secure file details8644 GET /projects/:id/secure_files/:secure_file_id/download8645 authenticated user with admin permissions8646 returns a secure file8647 responds with 404 Not Found if requesting non-existing secure file8648 authenticated user with read permissions8649 returns a secure file8650 authenticated user with no permissions8651 does not return project secure file details8652 unconfirmed user8653 does not return project secure file details8654 unauthenticated user8655 does not return project secure file details8656 POST /projects/:id/secure_files8657 authenticated user with admin permissions8658 creates a secure file8659 uploads and downloads a secure file8660 returns an error when the file checksum fails to validate8661 returns an error when no file is uploaded8662 returns an error when the file name is missing8663 returns an error when the file name has already been used8664 returns an error when an unexpected validation failure happens8665 returns a 413 error when the file size is too large8666 returns an error when and invalid file name is supplied8667 authenticated user with read permissions8668 does not create a secure file8669 authenticated user with no permissions8670 does not create a secure file8671 unconfirmed user8672 does not create a secure file8673 unauthenticated user8674 does not create a secure file8675 DELETE /projects/:id/secure_files/:secure_file_id8676 authenticated user with admin permissions8677 deletes the secure file8678 responds with 404 Not Found if requesting non-existing secure_file8679 authenticated user with read permissions8680 does not delete the secure_file8681 authenticated user with no permissions8682 does not delete the secure_file8683 unconfirmed user8684 does not delete the secure_file8685 unauthenticated user8686 does not delete the secure_file8687Updating an image DiffNote8688 when the user does not have permission8689 does not update the DiffNote8690 behaves like a mutation that returns a top-level access error8691 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"8692 when the user has permission8693 updates the DiffNote8694 returns the updated DiffNote8695 updating single properties at a time8696 property: :body, new_value: "foo"8697 updates the DiffNote correctly8698 property: :width, new_value: 198699 updates the DiffNote correctly8700 property: :height, new_value: 188701 updates the DiffNote correctly8702 property: :x, new_value: 178703 updates the DiffNote correctly8704 property: :y, new_value: 168705 updates the DiffNote correctly8706 when position is nil8707 updates the DiffNote correctly8708 when both body and position args are blank8709 behaves like a mutation that returns top-level errors8710 is expected to contain exactly "body or position arguments are required"8711 when the resource is not a Note8712 behaves like a Note mutation when the given resource id is not for a Note8713 behaves like a mutation that returns top-level errors8714 is expected to include /does not represent an instance of Note/8715 when resource is not a DiffNote on an image8716 behaves like a mutation that returns top-level errors8717 is expected to contain exactly "Resource is not an ImageDiffNote"8718 when there are ActiveRecord validation errors8719 does not update the DiffNote8720 returns the DiffNote with its original body8721 behaves like a mutation that returns errors in the response8722 is expected to contain exactly "Error 1" and "Error 2"8723 when body only contains quick actions8724 returns a nil note and empty errors8725IdeController8726 # order random8727 #index8728 with /-/ide8729 returns 4048730 with /-/ide/project8731 returns 4048732 with /-/ide/project/:project8733 instantiates project instance var and returns 2008734 behaves like user access rights check8735 when user can read project8736 increases the views counter8737 when user can read project but cannot push code8738 when user does not have fork8739 instantiates fork_info instance var with fork_path and returns 2008740 has nil fork_info if user cannot fork8741 when user has fork8742 instantiates fork_info instance var with ide_path and returns 2008743 when user cannot read project8744 returns 4048745 with /-/ide/project/:project/edit8746 instantiates project instance var and returns 2008747 behaves like user access rights check8748 when user can read project8749 increases the views counter8750 when user can read project but cannot push code8751 when user does not have fork8752 instantiates fork_info instance var with fork_path and returns 2008753 has nil fork_info if user cannot fork8754 when user has fork8755 instantiates fork_info instance var with ide_path and returns 2008756 when user cannot read project8757 returns 4048758 with /-/ide/project/:project/blob8759 instantiates project instance var and returns 2008760 behaves like user access rights check8761 when user can read project8762 increases the views counter8763 when user can read project but cannot push code8764 when user does not have fork8765 instantiates fork_info instance var with fork_path and returns 2008766 has nil fork_info if user cannot fork8767 when user has fork8768 instantiates fork_info instance var with ide_path and returns 2008769 when user cannot read project8770 returns 4048771 with /-/ide/project/:project/tree8772 instantiates project instance var and returns 2008773 behaves like user access rights check8774 when user can read project8775 increases the views counter8776 when user can read project but cannot push code8777 when user does not have fork8778 instantiates fork_info instance var with fork_path and returns 2008779 has nil fork_info if user cannot fork8780 when user has fork8781 instantiates fork_info instance var with ide_path and returns 2008782 when user cannot read project8783 returns 4048784 Snowplow view event8785 is tracked8786 layout8787 ff_state: false, expect_top_nav: true8788 handles rendering top nav8789 ff_state: true, expect_top_nav: false8790 handles rendering top nav8791 content security policy8792 updates the content security policy with the correct frame sources8793 with relative_url_root, updates the content security policy with the correct frame sources8794DeviseMailer8795 #confirmation_instructions8796 when confirming a new account8797 shows the expected text8798 when confirming the unconfirmed_email8799 shows the expected text8800 when re-confirming the primary email after a security issue8801 shows the expected text8802 #password_change_by_admin8803 is sent to the user8804 has the correct subject8805 includes the correct content8806 includes a link to GitLab8807 behaves like an email sent from GitLab8808 has the characteristics of an email sent from GitLab8809 behaves like it should not have Gmail Actions links8810 is expected not to have body including "ViewAction"8811 behaves like a user cannot unsubscribe through footer link8812 does not have a List-Unsubscribe header or a body link8813 #user_admin_approval8814 is sent to the user8815 has the correct subject8816 greets the user8817 includes the correct content8818 includes a link to GitLab8819 behaves like an email sent from GitLab8820 has the characteristics of an email sent from GitLab8821 behaves like it should not have Gmail Actions links8822 is expected not to have body including "ViewAction"8823 behaves like a user cannot unsubscribe through footer link8824 does not have a List-Unsubscribe header or a body link8825 #reset_password_instructions8826 is sent to the user8827 has the correct subject8828 greets the user8829 includes the correct content8830 includes a link to reset the password8831 has the mailgun suppression bypass header8832 behaves like an email sent from GitLab8833 has the characteristics of an email sent from GitLab8834 behaves like it should not have Gmail Actions links8835 is expected not to have body including "ViewAction"8836 behaves like a user cannot unsubscribe through footer link8837 does not have a List-Unsubscribe header or a body link8838 with email in params8839 is sent to the specified email8840 #email_changed8841 is sent to the user8842 has the correct subject8843 greets the user8844 behaves like an email sent from GitLab8845 has the characteristics of an email sent from GitLab8846 when self-managed8847 has the expected content of self managed instance8848 when saas8849 has the expected content of saas instance8850 email contains updated id8851 includes changed email id8852Import::FogbugzController8853 POST #callback8854 attempts to contact Fogbugz server8855 preserves namespace_id query param on success8856 redirects to new page maintaining namespace_id when client raises standard error8857 redirects to new page form when client raises authentication exception8858 verify url8859 when host is localhost8860 does not allow requests8861 when host is on local network8862 does not allow requests8863 when host is ftp protocol8864 does not allow requests8865 POST #create_user_map8866 stores the user map in the session8867 preserves namespace_id query param8868 GET status8869 redirects to new page form when client is invalid8870 behaves like import controller status8871 returns variables for json request8872 when format is html8873 when namespace_id is present8874 when user cannot import projects8875 returns 4048876 when user can import projects8877 returns 2008878 POST create8879 returns the new project8880 returns an error when service reports an error8881 behaves like project import rate limiter8882 when limit exceeds8883 notifies and redirects user8884RoutableActions8885 #find_routable!8886 when signed in8887 with a project8888 prevents access when not authorized8889 when authorized8890 returns the project8891 allows access8892 with a group8893 prevents access when not authorized8894 when authorized8895 returns the group8896 allows access8897 with a user8898 allows access when authorized8899 prevents access when unauthorized8900 when not signed in8901 redirects to sign in for private resouces8902 #perform_not_found_actions8903 performs multiple checks8904 performs checks in the context of the controller8905 skips checks once one has resulted in a render/redirect8906Projects::GoogleCloud::ServiceAccountsController8907 GET index8908 when a public request is made8909 returns not found on GET request8910 returns not found on POST request8911 when unauthorized members make requests8912 returns not found on GET request8913 returns not found on POST request8914 when authorized members make requests8915 redirects on GET request8916 redirects on POST request8917 and user has successfully completed the google oauth2 flow8918 but the user does not have gcp projects8919 flashes error and redirects to google cloud configurations8920 user has three gcp_projects8921 returns success on GET8922 returns success on POST8923 but google returns client error8924 GET flashes error and redirects to -/google_cloud/configurations8925 POST flashes error and redirects to -/google_cloud/configurations8926 but gitlab instance is not configured for google oauth28927 returns forbidden8928 but feature flag is disabled8929 returns not found8930Destroying a container repository8931 post graphql mutation8932 with valid id8933 user_role: :maintainer, shared_examples_name: "destroying the container repository"8934 behaves like destroying the container repository8935 marks the container repository as delete_scheduled8936 behaves like returning response status8937 returns success8938 user_role: :developer, shared_examples_name: "destroying the container repository"8939 behaves like destroying the container repository8940 marks the container repository as delete_scheduled8941 behaves like returning response status8942 returns success8943 user_role: :reporter, shared_examples_name: "denying the mutation request"8944 behaves like denying the mutation request8945 does not destroy the container repository8946 behaves like returning response status8947 returns success8948 user_role: :guest, shared_examples_name: "denying the mutation request"8949 behaves like denying the mutation request8950 does not destroy the container repository8951 behaves like returning response status8952 returns success8953 user_role: :anonymous, shared_examples_name: "denying the mutation request"8954 behaves like denying the mutation request8955 does not destroy the container repository8956 behaves like returning response status8957 returns success8958 with invalid id8959 behaves like denying the mutation request8960 does not destroy the container repository8961 behaves like returning response status8962 returns success8963Groups::Crm::OrganizationsController8964 GET #index8965 behaves like ok response with index template if authorized8966 private group8967 with authorized user8968 when crm_enabled is true8969 behaves like ok response with index template8970 renders the index template8971 when crm_enabled is false8972 behaves like response with 404 status8973 returns 4048974 when subgroup8975 behaves like response with 404 status8976 returns 4048977 with unauthorized user8978 behaves like response with 404 status8979 returns 4048980 with anonymous user8981 blah8982 public group8983 with anonymous user8984 behaves like response with 404 status8985 returns 4048986 GET #new8987 behaves like ok response with index template if authorized8988 private group8989 with authorized user8990 when crm_enabled is true8991 behaves like ok response with index template8992 renders the index template8993 when crm_enabled is false8994 behaves like response with 404 status8995 returns 4048996 when subgroup8997 behaves like response with 404 status8998 returns 4048999 with unauthorized user9000 behaves like response with 404 status9001 returns 4049002 with anonymous user9003 blah9004 public group9005 with anonymous user9006 behaves like response with 404 status9007 returns 4049008 GET #edit9009 behaves like ok response with index template if authorized9010 private group9011 with authorized user9012 when crm_enabled is true9013 behaves like ok response with index template9014 renders the index template9015 when crm_enabled is false9016 behaves like response with 404 status9017 returns 4049018 when subgroup9019 behaves like response with 404 status9020 returns 4049021 with unauthorized user9022 behaves like response with 404 status9023 returns 4049024 with anonymous user9025 blah9026 public group9027 with anonymous user9028 behaves like response with 404 status9029 returns 4049030API::Markdown9031 POST /markdown9032 when not logged in9033 and authenticate_markdown_api turned on9034 responds with 401 Unathorized9035 and authenticate_markdown_api turned off9036 behaves like 400 Bad Request9037 responds with 400 Bad Request9038 when arguments are invalid9039 when text is missing9040 behaves like 400 Bad Request9041 responds with 400 Bad Request9042 when project is not found9043 behaves like 404 Project Not Found9044 responds with 404 Not Found9045 when arguments are valid9046 when personal access token has only read_api scope9047 behaves like rendered markdown text without GFM9048 renders markdown text9049 when not using gfm9050 without project9051 behaves like rendered markdown text without GFM9052 renders markdown text9053 with project9054 when not authorized9055 behaves like 404 Project Not Found9056 responds with 404 Not Found9057 when authorized9058 behaves like rendered markdown text without GFM9059 renders markdown text9060 when using gfm9061 without project9062 renders markdown text9063 with project9064 renders markdown text9065 with a public project and confidential issue9066 when not logged in9067 behaves like user without proper access9068 does not render the title or link9069 when logged in as user without access9070 behaves like user without proper access9071 does not render the title or link9072 when logged in as author9073 renders the title or link9074 with a public project and issues only for team members9075 when not logged in and authenticate_markdown_api turned off9076 behaves like user without proper access9077 does not render the title9078 when logged in as user without access9079 behaves like user without proper access9080 does not render the title9081 when logged in as author9082 renders the title or link9083JiraConnect::InstallationsController9084 GET /-/jira_connect/installations9085 without JWT9086 returns 4039087 with valid JWT9088 returns status ok9089 returns the installation as json9090 with instance_url9091 returns the installation as json9092 PUT /-/jira_connect/installations9093 without JWT9094 returns 4039095 with valid JWT9096 returns 2009097 with instance_url param9098 instance response with success9099 updates the instance_url9100 sends an installed event to the self-managed instance9101 instance response with error9102 returns 422 and errors9103 invalid URL9104 returns 422 and errors9105Projects::GoogleCloud::GcpRegionsController9106 GET #index9107 behaves like public request should 4049108 behaves like should be not found9109 returns not found9110 behaves like should track not_found event9111 tracks event9112 behaves like unauthorized access should 4049113 behaves like should be not found9114 returns not found9115 behaves like should track access_denied event9116 tracks event9117 when authorized members make requests9118 renders gcp_regions9119 but gitlab instance is not configured for google oauth29120 behaves like should be forbidden9121 returns forbidden9122 behaves like should track gcp_error event9123 tracks event9124 but feature flag is disabled9125 behaves like should be not found9126 returns not found9127 behaves like should track feature_flag_disabled event9128 tracks event9129 POST #index9130 behaves like public request should 4049131 behaves like should be not found9132 returns not found9133 behaves like should track not_found event9134 tracks event9135 behaves like unauthorized access should 4049136 behaves like should be not found9137 returns not found9138 behaves like should track access_denied event9139 tracks event9140 when authorized members make requests9141 redirects to google cloud configurations9142InvitesController9143 GET #show9144 when logged in9145 behaves like invite email match enforcement9146 accepts user if invite email matches signed in user9147 accepts invite if invite email matches confirmed secondary email9148 does not accept if invite email matches unconfirmed secondary email9149 does not accept if invite email does not match signed in user9150 behaves like invalid token9151 when invite token is not valid9152 redirects to root9153 when it is an initial invite email9154 tracks the initial join click from email9155 when member does not exist9156 does not track join click9157 when it is not an initial email9158 does not track the join click9159 when not logged in9160 when invite token belongs to a valid member9161 when instance allows sign up9162 indicates an account can be created in notice9163 when user exists with the invited email9164 is redirected to a new session with invite email param9165 when user exists with the invited email as secondary email9166 when secondary email is confirmed9167 is redirected to a new session with invite email param9168 when secondary email is unconfirmed9169 is redirected to a new registration with invite email param and flash message9170 when user does not exist with the invited email9171 indicates an account can be created in notice9172 is redirected to a new registration with invite email param and flash message9173 sets session keys for auto email confirmation on sign up9174 when it is part of our invite email experiment9175 sets session key for invite acceptance tracking on sign-up9176 when it is not part of our invite email experiment9177 does not set the session key for invite acceptance tracking on sign-up9178 when instance does not allow sign up9179 does not indicate an account can be created in notice9180 when user exists with the invited email9181 is redirected to a new session with invite email param9182 when user does not exist with the invited email9183 is redirected to a new session with invite email param9184 when invite token does not belong to a valid member9185 is redirected to a new session9186 POST #accept9187 behaves like invite email match enforcement9188 accepts user if invite email matches signed in user9189 accepts invite if invite email matches confirmed secondary email9190 does not accept if invite email matches unconfirmed secondary email9191 does not accept if invite email does not match signed in user9192 behaves like invalid token9193 when invite token is not valid9194 redirects to root9195 POST #decline for link in UI9196 behaves like invalid token9197 when invite token is not valid9198 redirects to root9199 GET #decline for link in email9200 behaves like invalid token9201 when invite token is not valid9202 redirects to root9203Projects::TodosController9204 Issues9205 POST create9206 behaves like issuable todo actions9207 behaves like todos actions9208 when authorized9209 creates todo9210 returns todo path and pending count9211 when not authorized for project/group9212 does not create todo for resource that user has no access to9213 does not create todo when user is not logged in9214 when not authorized for resource9215 doesn't create todo9216 Merge Requests9217 POST create9218 behaves like issuable todo actions9219 behaves like todos actions9220 when authorized9221 creates todo9222 returns todo path and pending count9223 when not authorized for project/group9224 does not create todo for resource that user has no access to9225 does not create todo when user is not logged in9226 when not authorized for resource9227 doesn't create todo9228 Designs9229 POST create9230 behaves like todos actions9231 when authorized9232 creates todo9233 returns todo path and pending count9234 when not authorized for project/group9235 does not create todo for resource that user has no access to9236 does not create todo when user is not logged in9237Subscriptions::Notes::Created9238 # order random9239 when user is unauthorized9240 does not receive any data9241 when user is authorized9242 receives created note9243 when a new note is created as a reply9244 receives created note9245 when note is confidential9246 and user has permission to read confidential notes9247 receives created note9248 and replying9249 receives created note9250 and user does not have permission to read confidential notes9251 does not receive note data9252 when resource events are triggering note subscription9253 when user is unauthorized9254 does not receive discussion data9255 when user is authorized9256 receives created synthetic note as a discussion9257 when several label events are created9258 receives created synthetic note as a discussion9259Groups::SharedProjectsController9260 GET #index9261 returns only projects shared with the group9262 allows filtering shared projects9263 allows sorting projects9264 does not include archived projects9265API::ImportGithub9266 POST /import/github9267 rejects requests when Github Importer is disabled9268 returns 201 response when the project is imported successfully9269 returns 201 response when the project is imported successfully from GHE9270 returns 422 response when user can not create projects in the chosen namespace9271 when target_namespace is blank9272 returns 400 response9273 when unauthenticated user9274 returns 403 response9275 with invalid timeout stategy9276 returns 400 response9277 when additional access tokens are provided9278 returns 2019279 POST /import/github/cancel9280 when project import was canceled9281 returns success9282 when project import was not canceled9283 returns error9284 when unauthenticated user9285 returns 403 response9286 POST /import/github/gists9287 when gists import was started9288 returns 2029289 when gists import is in progress9290 returns 422 error9291 when unauthenticated user9292 returns 403 error9293 when rate limit reached9294 returns 429 error9295Profiles::PersonalAccessTokensController9296 #create9297 allows creation of a token with scopes9298 allows creation of a token with an expiry date9299 does not allow creation when personal access tokens are disabled9300 behaves like #create access token9301 when POST is successful9302 renders JSON with a new token9303 when POST is unsuccessful9304 renders JSON with an error9305 GET /-/profile/personal_access_tokens9306 behaves like GET access tokens are paginated and ordered9307 when multiple access tokens are returned9308 returns paginated response9309 when access_token_pagination feature flag is disabled9310 returns all tokens in system9311 when tokens returned are ordered9312 orders token list ascending on expires_at9313 orders tokens on id in case token has same expires_at9314 #index9315 only includes details of active personal access tokens9316 builds a PAT with name and scopes from params9317 returns 404 when personal access tokens are disabled9318 returns tokens for json format9319 sets available scopes9320bin/diagnostic-reports-uploader9321 # order random9322 starts successfully9323getting job information9324 # order random9325 when user is admin9326 has full access to all jobs9327 when filtered by status9328 gets pending jobs9329 gets pending and failed jobs9330 when N+1 queries9331 avoids N+1 queries successfully9332 if the user is not an admin9333 has no access to the jobs9334Projects::GoogleCloud::ConfigurationController9335 when accessed by unauthorized members9336 returns not found on GET request9337 when accessed by authorized members9338 returns successful9339 but gitlab instance is not configured for google oauth29340 returns forbidden9341 but feature flag is disabled9342 returns not found9343 but google oauth2 token is not valid9344 does not return revoke oauth url9345OAuth Tokens requests9346 when there is already a token for the application9347 and the request is done by the resource owner9348 with authorization code grant type9349 issues a new token9350 does not revoke previous token9351 with refresh token grant type9352 issues a new token9353 revokes previous token9354 expired refresh token9355 issues a new token9356 revokes previous token9357 revoked refresh token9358 does not issue a new token9359 when there is no token stored for the application9360 generates and returns a new token9361PreferredLanguageSwitcher9362 # order random9363 when first visit9364 sets preferred_language to default9365 when language param is valid9366 sets preferred_language accordingly9367 when language param is invalid9368 sets preferred_language to default9369 when browser preferred language is not english9370 with selectable language9371 sets preferred_language accordingly9372 with unselectable language9373 sets preferred_language to default9374 with empty string in language header9375 sets preferred_language to default9376 with language header without dashes9377 sets preferred_language accordingly9378 when language params and language header are both valid9379 sets preferred_language according to language params9380 when preferred language in cookies has been modified9381 with a valid value9382 keeps preferred language unchanged9383 with an invalid value9384 sets preferred_language to default9385ControllerWithCrossProjectAccessCheck9386 When reading cross project is not allowed9387 #requires_cross_project_access9388 renders a 403 with trying to access a cross project page9389 is skipped when the `if` condition returns false9390 is skipped when the `unless` condition returns true9391 correctly renders an action that does not require cross project access9392 #skip_cross_project_access_check9393 renders a success when the check is skipped9394 is executed when the `if` condition returns false9395 is executed when the `unless` condition returns true9396 does not skip the check on an action that is not skipped9397 does not skip the check on an action that was not defined to skip9398Group Level Work Items9399 # order random9400 GET /groups/:group/-/work_items9401 when the user can read the group9402 renders index9403 when the namespace_level_work_items feature flag is disabled9404 returns not found9405 when the user cannot read the group9406 returns not found9407 GET /groups/:group/-/work_items/:iid9408 when the user can read the group9409 renders index9410 when the namespace_level_work_items feature flag is disabled9411 returns not found9412 when the user cannot read the group9413 returns not found9414Timelogs through GroupQuery9415 Get list of timelogs from a group issues9416 when the project is private9417 when the user is not a member of the project9418 returns no timelogs9419 when the user is a member of the project9420 returns timelogs9421 when the request is correct9422 returns timelogs successfully9423 contains correct data9424 behaves like a working graphql query9425 returns a successful response9426 when arguments with no time are present9427 sets times as start of day and end of day9428 when requests has errors9429 when there are no timelogs present9430 returns empty result9431Sessions9432 behaves like Base action controller9433 security headers9434 Cross-Origin-Opener-Policy9435 sets the header9436 when coop_header feature flag is disabled9437 does not set the header9438 for authentication9439 logout does not require a csrf token9440 gitlab_user cookie9441 when user signs in9442 sets marketing cookie9443 when user uses remember_me9444 sets marketing cookie9445 when user has pending invitations9446 accepts the invitations and stores a user location9447 when using two-factor authentication via OTP9448 with an invalid user9449 raises StandardError when ActiveRecord::RecordInvalid is raised to return 500 instead of 4229450 with an invalid record other than user9451 raises ActiveRecord::RecordInvalid for invalid record to return 422f9452 when user is not using GitLab SaaS9453 does not set marketing cookie9454autocomplete users for a project9455 # order random9456 returns members of the project9457 with search param9458 only returns users matching the search query9459 with merge request interaction9460 returns MR state related to the users9461Jira authorization requests9462 POST access_token9463 returns values similar to a POST to /oauth/token9464 behaves like a GitHub Enterprise Jira DVCS reversible end of life endpoint9465 is a reachable endpoint9466 when the flag is disabled9467 presents as an endpoint that does not exist9468 when authorization fails9469 when client_id is invalid9470 behaves like an unauthorized request9471 returns 4019472 when client_secret is invalid9473 behaves like an unauthorized request9474 returns 4019475 when code is invalid9476 returns bad request9477Dashboard::GroupsController9478 renders group trees9479 #index9480 only includes projects the user is a member of9481 works when the external authorization service is enabled9482 when rendering an expanded hierarchy with public groups you are not a member of9483 renders only groups the user is a member of when searching hierarchy correctly9484Delete a cluster agent9485 without project permissions9486 does not delete cluster agent9487 behaves like a mutation that returns top-level errors9488 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"9489 with project permissions9490 deletes a cluster agent9491Admin::BatchedJobsController9492 GET #show9493 fetches the job9494 uses the default connection9495 returns a default database record9496 when the job does not exist9497 returns not found9498 when multiple database is enabled9499 when CI database is provided9500 uses CI database connection9501 returns a CI database record9502Groups::DependencyProxyAuthController9503 GET #authenticate9504 without JWT9505 returns unauthorized with oauth realm9506 with JWT9507 with valid JWT9508 user9509 is expected to respond with numeric status code success9510 group bot user9511 is expected to respond with numeric status code success9512 deploy token9513 is expected to respond with numeric status code success9514 with invalid JWT9515 bad user9516 is expected to respond with numeric status code unauthorized9517 token with no user id9518 is expected to respond with numeric status code unauthorized9519 expired token9520 is expected to respond with numeric status code unauthorized9521 group bot user from an expired token9522 is expected to respond with numeric status code unauthorized9523 expired deploy token9524 is expected to respond with numeric status code unauthorized9525 revoked deploy token9526 is expected to respond with numeric status code unauthorized9527Setting subscribed status of an issue9528 behaves like a subscribable resource api9529 when the user is not authorized9530 behaves like a mutation that returns top-level errors9531 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"9532 when user is authorized9533 marks the resource as subscribed9534 when passing subscribe false as input9535 unmarks the resource as subscribed9536Explore::GroupsController9537 behaves like explore groups9538 renders group trees9539 includes public projects9540 restricted visibility level is public9541 redirects to login page9542 gitlab.com9543 behaves like explore groups9544 renders group trees9545 includes public projects9546 restricted visibility level is public9547 redirects to login page9548WebIde::RemoteIdeController9549 # order random9550 #index9551 when feature flag is on *and* user is not using legacy Web IDE9552 renders the correct layout9553 renders with minimal: true9554 renders root element with data9555 updates the content security policy with the correct connect sources9556 updates the content security policy with the correct frame sources9557 when remote_host does not have port9558 updates the content security policy with the correct remote_host9559 renders remote_host in root element data9560 when feature flag is off9561 behaves like 404 response9562 has not_found status9563 when the remote host is invalid9564 behaves like 404 response9565 has not_found status9566AcmeChallengesController9567 #show9568 with right domain and token9569 renders acme challenge file content9570 when domain is invalid9571 renders not found9572 when token is invalid9573 renders not found9574query a single terraform state9575 returns terraform state data9576 behaves like a working graphql query9577 returns a successful response9578 unauthorized users9579 is expected to be nil9580Setting severity level of an incident9581 when the user is not allowed to update the incident9582 returns an error9583 when the user is allowed to update the incident9584 updates the issue9585CatalogResourcesCreate9586 # order random9587 when unauthorized9588 behaves like a mutation that returns a top-level access error9589 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"9590 when authorized9591 with a valid project9592 creates a catalog resource9593 with an invalid project9594 returns an error9595Delete a timelog9596 when the user is not allowed to delete a timelog9597 behaves like a mutation that returns a top-level access error9598 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"9599 when user has permissions to delete a timelog9600 deletes the timelog9601Setting subscribed status of a merge request9602 behaves like a subscribable resource api9603 when the user is not authorized9604 behaves like a mutation that returns top-level errors9605 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"9606 when user is authorized9607 marks the resource as subscribed9608 when passing subscribe false as input9609 unmarks the resource as subscribed9610Query.group(fullPath).environmentScopes9611 # order random9612 when the user cannot administer the group9613 returns nothing9614 when the user can administer the group9615 when query has no parameters9616 returns all avaiable environment scopes9617 when query has search parameters9618 returns only environment scopes with group1 prefix9619ContentSecurityPolicyPatch9620 # order random9621 calls helper method9622 does not emit any warnings9623 with Rails version 7.29624 emits a deprecation warning9625Profiles::SlacksController9626 # order random9627 GET slack_link9628 when user is not a maintainer of the project9629 renders 4049630 when user is a maintainer of the project9631 renders slack link9632 GET edit9633 renders9634 assigns projects9635 assigns disabled_projects9636autocomplete users for a group9637 # order random9638 returns members of the group and its ancestors9639 with search param9640 only returns users matching the search query9641Group callouts9642 POST /-/users/group_callouts9643 with valid feature name and group9644 when callout entry does not exist9645 creates a callout entry with dismissed state9646 returns success9647 when callout entry already exists9648 returns success9649 with invalid feature name9650 returns bad request9651Projects::FeatureFlagsClientsController9652 POST reset_token.json9653 when user is a project maintainer9654 and feature flags client exist9655 regenerates feature flags client token9656 but feature flags client does not exist9657 returns 4049658 when user is not a project maintainer9659 returns 4049660getting namespace package settings in a namespace9661 behaves like a working graphql query9662 returns a successful response9663 matches the JSON schema9664Projects::Packages::PackagesController9665 GET #index9666 behaves like returning response status9667 returns ok9668 GET #show9669 behaves like returning response status9670 returns ok9671Projects::ServicePingController9672 POST #web_ide_pipelines_count9673 behaves like counter is not increased9674 when the user is not authenticated9675 returns 3029676 when the user does not have access to the project9677 returns 4049678 behaves like counter is increased9679 when the authenticated user has access to the project9680 increments the usage counter9681Users::CalloutsController9682 POST #create9683 with valid feature name9684 when callout entry does not exist9685 creates a callout entry with dismissed state9686 returns success9687 when callout entry already exists9688 returns success9689 with invalid feature name9690 returns bad request9691PlanningHierarchy9692 GET #planning_hierarchy9693 renders planning hierarchy9694Admin::InstanceReviewController9695 GET #index9696 with usage ping enabled9697 redirects to the customers app with correct params9698 with usage ping disabled9699 redirects to the customers app with correct params9700Admin::GitalyServersController9701 #index9702 shows the gitaly servers page9703IssuableActions9704 #discussions9705 instantiates and calls NotesFinder as expected9706auto_explain log contains 1526 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-as-if-foss-single-db-5-12.327.main.ndjson.gz9707took 33.5876458859708Pending: (Failures listed here are expected and do not affect your suite's status)9709 1) Projects::DesignManagement::Designs::RawImagesController GET #show behaves like a controller that can serve LFS files when lfs is not enabled delivers ASCII file9710 # Calling spec asked to skip testing LFS disabled scenario9711 # ./spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb:1529712Finished in 28 minutes 48 seconds (files took 56.04 seconds to load)97133509 examples, 0 failures, 1 pending9714Randomized with seed 545779715[TEST PROF INFO] Time spent in factories: 08:57.150 (30.62% of total time)9716RSpec exited with 0.9717No examples to retry, congrats!9719Running after script...9720$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"9724$ tooling/bin/push_job_metrics || true9725[job-metrics] Pushing job metrics file for the CI/CD job.9726[job-metrics] Pushed 4 CI job metric entries to InfluxDB.9728Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9730Uploading artifacts...9731auto_explain/: found 2 matching artifact files and directories 9732coverage/: found 5 matching artifact files and directories 9733crystalball/: found 2 matching artifact files and directories 9734deprecations/: found 4 matching artifact files and directories 9735knapsack/: found 4 matching artifact files and directories 9736rspec/: found 14 matching artifact files and directories 9737WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9738log/*.log: found 19 matching artifact files and directories 9739WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651569/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9740WARNING: Retrying... context=artifacts-uploader error=request redirected9741Uploading artifacts as "archive" to coordinator... 201 Created id=5336651569 responseStatus=201 Created token=64_nzhLi9742Uploading artifacts...9743rspec/rspec-*.xml: found 1 matching artifact files and directories 9744WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651569/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9745WARNING: Retrying... context=artifacts-uploader error=request redirected9746Uploading artifacts as "junit" to coordinator... 201 Created id=5336651569 responseStatus=201 Created token=64_nzhLi9748Job succeeded