rspec integration pg14 12/12
Passed Started
by
@leipert
Lukas Eipert
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-3.private.runners-manager.gitlab.com/gitlab.com/gitlab-org QuQPoFsC, system ID: s_fc023362bf2f3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:2e09e9db92541ed81b1c00f1d5186f8c262d8b84e8d1755676ea4b25614f30c4 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:afc7bd7a60824044709543a6a700385e412d750d9ab4fc72b427e335e1d0f3ec ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:b9cad9a5aff99063a48d14d26e9f31dcf1768b8e65c4687a8e3bc995c02749f3 for redis:6.2-alpine with digest redis@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:f47b23bf3b9e02a2837ddb6fe9a0b728c270e7a7d815dc582fd17281be34f20d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-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.16-postgresql-14@sha256:4db9bc427d7eb1bd075d76b4e5e3e59eb0d96c2e788e6275e628f0026dd30039 ...25Running on runner-quqpofsc-project-278964-concurrent-0 via runner-quqpofsc-private-1687782158-e9a16fa0...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 126566, done. 31remote: Counting objects: 100% (126566/126566), done. 32remote: Compressing objects: 100% (87596/87596), done. 33remote: Total 126566 (delta 50477), reused 83712 (delta 34367), pack-reused 0 34Receiving objects: 100% (126566/126566), 114.65 MiB | 30.72 MiB/s, done.35Resolving deltas: 100% (50477/50477), done.37 * [new ref] refs/pipelines/912039887 -> refs/pipelines/91203988738 * [new branch] master -> origin/master39Checking out 04f47f21 as detached HEAD (ref is master)...40Skipping Git submodules setup41$ git remote set-url origin "${CI_REPOSITORY_URL}"43Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...44Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 45Successfully extracted cache47Downloading artifacts for compile-test-assets (4541357536)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357536 responseStatus=200 OK token=64_s1x6Q49Downloading artifacts for retrieve-tests-metadata (4541357542)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357542 responseStatus=200 OK token=64_s1x6Q51Downloading artifacts for setup-test-env (4541357540)...52Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357540 responseStatus=200 OK token=64_s1x6Q54Using docker image sha256:f47b23bf3b9e02a2837ddb6fe9a0b728c270e7a7d815dc582fd17281be34f20d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-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.16-postgresql-14@sha256:4db9bc427d7eb1bd075d76b4e5e3e59eb0d96c2e788e6275e628f0026dd30039 ...55$ echo $FOSS_ONLY56$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb57$ export GOPATH=$CI_PROJECT_DIR/.go58$ mkdir -p $GOPATH59$ source scripts/utils.sh60$ source scripts/prepare_build.sh719Using decomposed database config (config/database.yml.decomposed-postgresql)720Geo DB won't be set up.721Embedding DB won't be set up.733$ source ./scripts/rspec_helpers.sh734$ run_timed_command "gem install knapsack --no-document"735$ gem install knapsack --no-document736Successfully installed knapsack-4.0.07371 gem installed738==> 'gem install knapsack --no-document' succeeded in 1 seconds.739$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"741$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"746$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"747$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration"748SKIP_FLAKY_TESTS_AUTOMATICALLY: 749RETRY_FAILED_TESTS_IN_NEW_PROCESS: true750KNAPSACK_GENERATE_REPORT: true751FLAKY_RSPEC_GENERATE_REPORT: true752KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb753KNAPSACK_LOG_LEVEL: debug754KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg14_12_12_report.json755FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json756FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg14_12_12_report.json757NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg14_12_12_report.json758SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_integration_pg14_12_12.txt759CRYSTALBALL: 760RSPEC_TESTS_MAPPING_ENABLED: 761RSPEC_TESTS_FILTER_FILE: 762Knapsack report generator started!763WARNING: Shared example group 'returns a valid json search response' has been previously defined at:764 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327765...and you are now defining it at:766 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327767The new definition will overwrite the original one.768WARNING: Shared example group 'returns a valid json search response' has been previously defined at:769 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327770...and you are now defining it at:771 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327772The new definition will overwrite the original one.773WARNING: Shared example group 'returns a valid json search response' has been previously defined at:774 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327775...and you are now defining it at:776 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327777The new definition will overwrite the original one.778WARNING: Shared example group 'returns a valid json search response' has been previously defined at:779 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327780...and you are now defining it at:781 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327782The new definition will overwrite the original one.783WARNING: Shared example group 'returns a valid json search response' has been previously defined at:784 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327785...and you are now defining it at:786 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327787The new definition will overwrite the original one.788WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:789 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238790...and you are now defining it at:791 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238792The new definition will overwrite the original one.793WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:794 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238795...and you are now defining it at:796 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238797The new definition will overwrite the original one.798WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:799 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238800...and you are now defining it at:801 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238802The new definition will overwrite the original one.803WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:804 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238805...and you are now defining it at:806 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238807The new definition will overwrite the original one.808WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:809 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238810...and you are now defining it at:811 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238812The new definition will overwrite the original one.813WARNING: Shared example group 'creating pypi package files' has been previously defined at:814 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4815...and you are now defining it at:816 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4817The new definition will overwrite the original one.818WARNING: Shared example group 'creating pypi package files' has been previously defined at:819 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4820...and you are now defining it at:821 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4822The new definition will overwrite the original one.823WARNING: Shared example group 'creating pypi package files' has been previously defined at:824 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4825...and you are now defining it at:826 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4827The new definition will overwrite the original one.828Run options: exclude {:quarantine=>true, :level=>"background_migration"}829Test environment set up in 0.513469503 seconds830API::NugetProjectPackages831 GET /api/v4/projects/:id/packages/nuget832 behaves like handling nuget service requests833 with valid target834 visibility_level: "PUBLIC", user_role: :developer, member: true, shared_examples_name: "process nuget service index request", expected_status: :success835 behaves like process nuget service index request836 for user type developer837 returns a valid json response838 behaves like returning response status839 returns success840 behaves like a package tracking event841 creates a gitlab tracking event cli_metadata842 with invalid format843 behaves like rejects nuget packages access844 for user type anonymous845 behaves like returning response status846 returns not_found847 visibility_level: "PUBLIC", user_role: :guest, member: true, shared_examples_name: "process nuget service index request", expected_status: :success848 behaves like process nuget service index request849 for user type guest850 returns a valid json response851 behaves like returning response status852 returns success853 behaves like a package tracking event854 creates a gitlab tracking event cli_metadata855 with invalid format856 behaves like rejects nuget packages access857 for user type anonymous858 behaves like returning response status859 returns not_found860 visibility_level: "PUBLIC", user_role: :developer, member: false, shared_examples_name: "process nuget service index request", expected_status: :success861 behaves like process nuget service index request862 for user type developer863 returns a valid json response864 behaves like returning response status865 returns success866 behaves like a package tracking event867 creates a gitlab tracking event cli_metadata868 with invalid format869 behaves like rejects nuget packages access870 for user type anonymous871 behaves like returning response status872 returns not_found873 visibility_level: "PUBLIC", user_role: :guest, member: false, shared_examples_name: "process nuget service index request", expected_status: :success874 behaves like process nuget service index request875 for user type guest876 returns a valid json response877 behaves like returning response status878 returns success879 behaves like a package tracking event880 creates a gitlab tracking event cli_metadata881 with invalid format882 behaves like rejects nuget packages access883 for user type anonymous884 behaves like returning response status885 returns not_found886 visibility_level: "PUBLIC", user_role: :anonymous, member: false, shared_examples_name: "process nuget service index request", expected_status: :success887 behaves like process nuget service index request888 for user type anonymous889 returns a valid json response890 behaves like returning response status891 returns success892 behaves like a package tracking event893 creates a gitlab tracking event cli_metadata894 with invalid format895 behaves like rejects nuget packages access896 for user type anonymous897 behaves like returning response status898 returns not_found899 visibility_level: "PRIVATE", user_role: :developer, member: true, shared_examples_name: "process nuget service index request", expected_status: :success900 behaves like process nuget service index request901 for user type developer902 returns a valid json response903 behaves like returning response status904 returns success905 behaves like a package tracking event906 creates a gitlab tracking event cli_metadata907 with invalid format908 behaves like rejects nuget packages access909 for user type anonymous910 behaves like returning response status911 returns not_found912 visibility_level: "PRIVATE", user_role: :guest, member: true, shared_examples_name: "process nuget service index request", expected_status: :success913 behaves like process nuget service index request914 for user type guest915 returns a valid json response916 behaves like returning response status917 returns success918 behaves like a package tracking event919 creates a gitlab tracking event cli_metadata920 with invalid format921 behaves like rejects nuget packages access922 for user type anonymous923 behaves like returning response status924 returns not_found925 visibility_level: "PRIVATE", user_role: :developer, member: false, shared_examples_name: "process nuget service index request", expected_status: :success926 behaves like process nuget service index request927 for user type developer928 returns a valid json response929 behaves like returning response status930 returns success931 behaves like a package tracking event932 creates a gitlab tracking event cli_metadata933 with invalid format934 behaves like rejects nuget packages access935 for user type anonymous936 behaves like returning response status937 returns not_found938 visibility_level: "PRIVATE", user_role: :guest, member: false, shared_examples_name: "process nuget service index request", expected_status: :success939 behaves like process nuget service index request940 for user type guest941 returns a valid json response942 behaves like returning response status943 returns success944 behaves like a package tracking event945 creates a gitlab tracking event cli_metadata946 with invalid format947 behaves like rejects nuget packages access948 for user type anonymous949 behaves like returning response status950 returns not_found951 visibility_level: "PRIVATE", user_role: :anonymous, member: false, shared_examples_name: "process nuget service index request", expected_status: :success952 behaves like process nuget service index request953 for user type anonymous954 returns a valid json response955 behaves like returning response status956 returns success957 behaves like a package tracking event958 creates a gitlab tracking event cli_metadata959 with invalid format960 behaves like rejects nuget packages access961 for user type anonymous962 behaves like returning response status963 returns not_found964 behaves like rejects nuget access with unknown target id965 with an unknown target966 as anonymous967 behaves like rejects nuget packages access968 for user type anonymous969 behaves like returning response status970 returns not_found971 as authenticated user972 behaves like rejects nuget packages access973 for user type anonymous974 behaves like returning response status975 returns not_found976 behaves like rejects nuget access with invalid target id977 with a target id with invalid integers978 id: "/../", status: :bad_request979 behaves like rejects nuget packages access980 for user type anonymous981 behaves like returning response status982 returns bad_request983 id: "", status: :not_found984 behaves like rejects nuget packages access985 for user type anonymous986 behaves like returning response status987 returns not_found988 id: "%20", status: :bad_request989 behaves like rejects nuget packages access990 for user type anonymous991 behaves like returning response status992 returns bad_request993 id: "%2e%2e%2f", status: :bad_request994 behaves like rejects nuget packages access995 for user type anonymous996 behaves like returning response status997 returns bad_request998 id: "NaN", status: :bad_request999 behaves like rejects nuget packages access1000 for user type anonymous1001 behaves like returning response status1002 returns bad_request1003 id: 1253, status: :not_found1004 behaves like rejects nuget packages access1005 for user type anonymous1006 behaves like returning response status1007 returns not_found1008 id: "anything25", status: :bad_request1009 behaves like rejects nuget packages access1010 for user type anonymous1011 behaves like returning response status1012 returns bad_request1013 behaves like accept get request on private project with access to package registry for everyone1014 behaves like returning response status1015 returns ok1016 GET /api/v4/projects/:id/packages/nuget/metadata/*package_name/index1017 behaves like handling nuget metadata requests with package name1018 with valid target1019 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1020 behaves like process nuget metadata request at package name level1021 for user type developer1022 behaves like returning response status1023 returns success1024 behaves like returning nuget metadata json response with json schema1025 returns a valid json response1026 with invalid format1027 behaves like rejects nuget packages access1028 for user type anonymous1029 behaves like returning response status1030 returns not_found1031 with lower case package name1032 behaves like returning response status1033 returns success1034 behaves like returning nuget metadata json response with json schema1035 returns a valid json response1036 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1037 behaves like process nuget metadata request at package name level1038 for user type guest1039 behaves like returning response status1040 returns success1041 behaves like returning nuget metadata json response with json schema1042 returns a valid json response1043 with invalid format1044 behaves like rejects nuget packages access1045 for user type anonymous1046 behaves like returning response status1047 returns not_found1048 with lower case package name1049 behaves like returning response status1050 returns success1051 behaves like returning nuget metadata json response with json schema1052 returns a valid json response1053 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1054 behaves like rejects nuget packages access1055 for user type developer1056 has the correct response header1057 behaves like returning response status1058 returns unauthorized1059 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1060 behaves like rejects nuget packages access1061 for user type guest1062 has the correct response header1063 behaves like returning response status1064 returns unauthorized1065 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1066 behaves like process nuget metadata request at package name level1067 for user type developer1068 behaves like returning response status1069 returns success1070 behaves like returning nuget metadata json response with json schema1071 returns a valid json response1072 with invalid format1073 behaves like rejects nuget packages access1074 for user type anonymous1075 behaves like returning response status1076 returns not_found1077 with lower case package name1078 behaves like returning response status1079 returns success1080 behaves like returning nuget metadata json response with json schema1081 returns a valid json response1082 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1083 behaves like process nuget metadata request at package name level1084 for user type guest1085 behaves like returning response status1086 returns success1087 behaves like returning nuget metadata json response with json schema1088 returns a valid json response1089 with invalid format1090 behaves like rejects nuget packages access1091 for user type anonymous1092 behaves like returning response status1093 returns not_found1094 with lower case package name1095 behaves like returning response status1096 returns success1097 behaves like returning nuget metadata json response with json schema1098 returns a valid json response1099 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1100 behaves like rejects nuget packages access1101 for user type developer1102 has the correct response header1103 behaves like returning response status1104 returns unauthorized1105 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1106 behaves like rejects nuget packages access1107 for user type guest1108 has the correct response header1109 behaves like returning response status1110 returns unauthorized1111 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1112 behaves like process nuget metadata request at package name level1113 for user type anonymous1114 behaves like returning response status1115 returns success1116 behaves like returning nuget metadata json response with json schema1117 returns a valid json response1118 with invalid format1119 behaves like rejects nuget packages access1120 for user type anonymous1121 behaves like returning response status1122 returns not_found1123 with lower case package name1124 behaves like returning response status1125 returns success1126 behaves like returning nuget metadata json response with json schema1127 returns a valid json response1128 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1129 behaves like process nuget metadata request at package name level1130 for user type developer1131 behaves like returning response status1132 returns success1133 behaves like returning nuget metadata json response with json schema1134 returns a valid json response1135 with invalid format1136 behaves like rejects nuget packages access1137 for user type anonymous1138 behaves like returning response status1139 returns not_found1140 with lower case package name1141 behaves like returning response status1142 returns success1143 behaves like returning nuget metadata json response with json schema1144 returns a valid json response1145 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1146 behaves like rejects nuget packages access1147 for user type guest1148 behaves like returning response status1149 returns forbidden1150 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1151 behaves like rejects nuget packages access1152 for user type developer1153 has the correct response header1154 behaves like returning response status1155 returns unauthorized1156 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1157 behaves like rejects nuget packages access1158 for user type guest1159 has the correct response header1160 behaves like returning response status1161 returns unauthorized1162 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1163 behaves like rejects nuget packages access1164 for user type developer1165 behaves like returning response status1166 returns not_found1167 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1168 behaves like rejects nuget packages access1169 for user type guest1170 behaves like returning response status1171 returns not_found1172 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1173 behaves like rejects nuget packages access1174 for user type developer1175 has the correct response header1176 behaves like returning response status1177 returns unauthorized1178 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1179 behaves like rejects nuget packages access1180 for user type guest1181 has the correct response header1182 behaves like returning response status1183 returns unauthorized1184 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1185 behaves like rejects nuget packages access1186 for user type anonymous1187 has the correct response header1188 behaves like returning response status1189 returns unauthorized1190 behaves like deploy token for package GET requests1191 with deploy token headers1192 valid token1193 behaves like returning response status1194 returns success1195 invalid token1196 behaves like returning response status1197 returns unauthorized1198 behaves like rejects nuget access with unknown target id1199 with an unknown target1200 as anonymous1201 behaves like rejects nuget packages access1202 for user type anonymous1203 has the correct response header1204 behaves like returning response status1205 returns unauthorized1206 as authenticated user1207 behaves like rejects nuget packages access1208 for user type anonymous1209 behaves like returning response status1210 returns not_found1211 behaves like rejects nuget access with invalid target id1212 with a target id with invalid integers1213 id: "/../", status: :bad_request1214 behaves like rejects nuget packages access1215 for user type anonymous1216 behaves like returning response status1217 returns bad_request1218 id: "", status: :not_found1219 behaves like rejects nuget packages access1220 for user type anonymous1221 behaves like returning response status1222 returns not_found1223 id: "%20", status: :bad_request1224 behaves like rejects nuget packages access1225 for user type anonymous1226 behaves like returning response status1227 returns bad_request1228 id: "%2e%2e%2f", status: :bad_request1229 behaves like rejects nuget packages access1230 for user type anonymous1231 behaves like returning response status1232 returns bad_request1233 id: "NaN", status: :bad_request1234 behaves like rejects nuget packages access1235 for user type anonymous1236 behaves like returning response status1237 returns bad_request1238 id: 1253, status: :unauthorized1239 behaves like rejects nuget packages access1240 for user type anonymous1241 has the correct response header1242 behaves like returning response status1243 returns unauthorized1244 id: "anything25", status: :bad_request1245 behaves like rejects nuget packages access1246 for user type anonymous1247 behaves like returning response status1248 returns bad_request1249 behaves like accept get request on private project with access to package registry for everyone1250 behaves like returning response status1251 returns ok1252 GET /api/v4/projects/:id/packages/nuget/metadata/*package_name/*package_version1253 behaves like handling nuget metadata requests with package name and package version1254 with valid target1255 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1256 behaves like process nuget metadata request at package name and package version level1257 for user type developer1258 behaves like returning response status1259 returns success1260 behaves like returning nuget metadata json response with json schema1261 returns a valid json response1262 with invalid format1263 behaves like rejects nuget packages access1264 for user type anonymous1265 behaves like returning response status1266 returns not_found1267 with lower case package name1268 behaves like returning response status1269 returns success1270 behaves like returning nuget metadata json response with json schema1271 returns a valid json response1272 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1273 behaves like process nuget metadata request at package name and package version level1274 for user type guest1275 behaves like returning response status1276 returns success1277 behaves like returning nuget metadata json response with json schema1278 returns a valid json response1279 with invalid format1280 behaves like rejects nuget packages access1281 for user type anonymous1282 behaves like returning response status1283 returns not_found1284 with lower case package name1285 behaves like returning response status1286 returns success1287 behaves like returning nuget metadata json response with json schema1288 returns a valid json response1289 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1290 behaves like rejects nuget packages access1291 for user type developer1292 has the correct response header1293 behaves like returning response status1294 returns unauthorized1295 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1296 behaves like rejects nuget packages access1297 for user type guest1298 has the correct response header1299 behaves like returning response status1300 returns unauthorized1301 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1302 behaves like process nuget metadata request at package name and package version level1303 for user type developer1304 behaves like returning response status1305 returns success1306 behaves like returning nuget metadata json response with json schema1307 returns a valid json response1308 with invalid format1309 behaves like rejects nuget packages access1310 for user type anonymous1311 behaves like returning response status1312 returns not_found1313 with lower case package name1314 behaves like returning response status1315 returns success1316 behaves like returning nuget metadata json response with json schema1317 returns a valid json response1318 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1319 behaves like process nuget metadata request at package name and package version level1320 for user type guest1321 behaves like returning response status1322 returns success1323 behaves like returning nuget metadata json response with json schema1324 returns a valid json response1325 with invalid format1326 behaves like rejects nuget packages access1327 for user type anonymous1328 behaves like returning response status1329 returns not_found1330 with lower case package name1331 behaves like returning response status1332 returns success1333 behaves like returning nuget metadata json response with json schema1334 returns a valid json response1335 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1336 behaves like rejects nuget packages access1337 for user type developer1338 has the correct response header1339 behaves like returning response status1340 returns unauthorized1341 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1342 behaves like rejects nuget packages access1343 for user type guest1344 has the correct response header1345 behaves like returning response status1346 returns unauthorized1347 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1348 behaves like process nuget metadata request at package name and package version level1349 for user type anonymous1350 behaves like returning response status1351 returns success1352 behaves like returning nuget metadata json response with json schema1353 returns a valid json response1354 with invalid format1355 behaves like rejects nuget packages access1356 for user type anonymous1357 behaves like returning response status1358 returns not_found1359 with lower case package name1360 behaves like returning response status1361 returns success1362 behaves like returning nuget metadata json response with json schema1363 returns a valid json response1364 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1365 behaves like process nuget metadata request at package name and package version level1366 for user type developer1367 behaves like returning response status1368 returns success1369 behaves like returning nuget metadata json response with json schema1370 returns a valid json response1371 with invalid format1372 behaves like rejects nuget packages access1373 for user type anonymous1374 behaves like returning response status1375 returns not_found1376 with lower case package name1377 behaves like returning response status1378 returns success1379 behaves like returning nuget metadata json response with json schema1380 returns a valid json response1381 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1382 behaves like rejects nuget packages access1383 for user type guest1384 behaves like returning response status1385 returns forbidden1386 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1387 behaves like rejects nuget packages access1388 for user type developer1389 has the correct response header1390 behaves like returning response status1391 returns unauthorized1392 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1393 behaves like rejects nuget packages access1394 for user type guest1395 has the correct response header1396 behaves like returning response status1397 returns unauthorized1398 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1399 behaves like rejects nuget packages access1400 for user type developer1401 behaves like returning response status1402 returns not_found1403 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1404 behaves like rejects nuget packages access1405 for user type guest1406 behaves like returning response status1407 returns not_found1408 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1409 behaves like rejects nuget packages access1410 for user type developer1411 has the correct response header1412 behaves like returning response status1413 returns unauthorized1414 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1415 behaves like rejects nuget packages access1416 for user type guest1417 has the correct response header1418 behaves like returning response status1419 returns unauthorized1420 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1421 behaves like rejects nuget packages access1422 for user type anonymous1423 has the correct response header1424 behaves like returning response status1425 returns unauthorized1426 behaves like deploy token for package GET requests1427 with deploy token headers1428 valid token1429 behaves like returning response status1430 returns success1431 invalid token1432 behaves like returning response status1433 returns unauthorized1434 behaves like rejects nuget access with unknown target id1435 with an unknown target1436 as anonymous1437 behaves like rejects nuget packages access1438 for user type anonymous1439 has the correct response header1440 behaves like returning response status1441 returns unauthorized1442 as authenticated user1443 behaves like rejects nuget packages access1444 for user type anonymous1445 behaves like returning response status1446 returns not_found1447 behaves like rejects nuget access with invalid target id1448 with a target id with invalid integers1449 id: "/../", status: :bad_request1450 behaves like rejects nuget packages access1451 for user type anonymous1452 behaves like returning response status1453 returns bad_request1454 id: "", status: :not_found1455 behaves like rejects nuget packages access1456 for user type anonymous1457 behaves like returning response status1458 returns not_found1459 id: "%20", status: :bad_request1460 behaves like rejects nuget packages access1461 for user type anonymous1462 behaves like returning response status1463 returns bad_request1464 id: "%2e%2e%2f", status: :bad_request1465 behaves like rejects nuget packages access1466 for user type anonymous1467 behaves like returning response status1468 returns bad_request1469 id: "NaN", status: :bad_request1470 behaves like rejects nuget packages access1471 for user type anonymous1472 behaves like returning response status1473 returns bad_request1474 id: 1253, status: :unauthorized1475 behaves like rejects nuget packages access1476 for user type anonymous1477 has the correct response header1478 behaves like returning response status1479 returns unauthorized1480 id: "anything25", status: :bad_request1481 behaves like rejects nuget packages access1482 for user type anonymous1483 behaves like returning response status1484 returns bad_request1485 behaves like accept get request on private project with access to package registry for everyone1486 behaves like returning response status1487 returns ok1488 GET /api/v4/projects/:id/packages/nuget/query1489 behaves like handling nuget search requests1490 with valid target1491 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1492 behaves like process nuget search request1493 for user type developer1494 behaves like returns a valid json search response1495 returns a valid json response1496 behaves like returning response status1497 returns success1498 behaves like a package tracking event1499 creates a gitlab tracking event search_package1500 with skip set to 21501 behaves like returns a valid json search response1502 returns a valid json response1503 behaves like returning response status1504 returns success1505 with take set to 21506 behaves like returns a valid json search response1507 returns a valid json response1508 behaves like returning response status1509 returns success1510 without prereleases1511 behaves like returns a valid json search response1512 returns a valid json response1513 behaves like returning response status1514 returns success1515 with empty search term1516 behaves like returns a valid json search response1517 returns a valid json response1518 behaves like returning response status1519 returns success1520 with nil search term1521 behaves like returns a valid json search response1522 returns a valid json response1523 behaves like returning response status1524 returns success1525 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1526 behaves like process nuget search request1527 for user type guest1528 behaves like returns a valid json search response1529 returns a valid json response1530 behaves like returning response status1531 returns success1532 behaves like a package tracking event1533 creates a gitlab tracking event search_package1534 with skip set to 21535 behaves like returns a valid json search response1536 returns a valid json response1537 behaves like returning response status1538 returns success1539 with take set to 21540 behaves like returns a valid json search response1541 returns a valid json response1542 behaves like returning response status1543 returns success1544 without prereleases1545 behaves like returns a valid json search response1546 returns a valid json response1547 behaves like returning response status1548 returns success1549 with empty search term1550 behaves like returns a valid json search response1551 returns a valid json response1552 behaves like returning response status1553 returns success1554 with nil search term1555 behaves like returns a valid json search response1556 returns a valid json response1557 behaves like returning response status1558 returns success1559 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1560 behaves like rejects nuget packages access1561 for user type developer1562 has the correct response header1563 behaves like returning response status1564 returns unauthorized1565 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1566 behaves like rejects nuget packages access1567 for user type guest1568 has the correct response header1569 behaves like returning response status1570 returns unauthorized1571 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1572 behaves like process nuget search request1573 for user type developer1574 behaves like returns a valid json search response1575 returns a valid json response1576 behaves like returning response status1577 returns success1578 behaves like a package tracking event1579 creates a gitlab tracking event search_package1580 with skip set to 21581 behaves like returns a valid json search response1582 returns a valid json response1583 behaves like returning response status1584 returns success1585 with take set to 21586 behaves like returns a valid json search response1587 returns a valid json response1588 behaves like returning response status1589 returns success1590 without prereleases1591 behaves like returns a valid json search response1592 returns a valid json response1593 behaves like returning response status1594 returns success1595 with empty search term1596 behaves like returns a valid json search response1597 returns a valid json response1598 behaves like returning response status1599 returns success1600 with nil search term1601 behaves like returns a valid json search response1602 returns a valid json response1603 behaves like returning response status1604 returns success1605 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1606 behaves like process nuget search request1607 for user type guest1608 behaves like returns a valid json search response1609 returns a valid json response1610 behaves like returning response status1611 returns success1612 behaves like a package tracking event1613 creates a gitlab tracking event search_package1614 with skip set to 21615 behaves like returns a valid json search response1616 returns a valid json response1617 behaves like returning response status1618 returns success1619 with take set to 21620 behaves like returns a valid json search response1621 returns a valid json response1622 behaves like returning response status1623 returns success1624 without prereleases1625 behaves like returns a valid json search response1626 returns a valid json response1627 behaves like returning response status1628 returns success1629 with empty search term1630 behaves like returns a valid json search response1631 returns a valid json response1632 behaves like returning response status1633 returns success1634 with nil search term1635 behaves like returns a valid json search response1636 returns a valid json response1637 behaves like returning response status1638 returns success1639 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1640 behaves like rejects nuget packages access1641 for user type developer1642 has the correct response header1643 behaves like returning response status1644 returns unauthorized1645 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1646 behaves like rejects nuget packages access1647 for user type guest1648 has the correct response header1649 behaves like returning response status1650 returns unauthorized1651 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1652 behaves like process nuget search request1653 for user type anonymous1654 behaves like returns a valid json search response1655 returns a valid json response1656 behaves like returning response status1657 returns success1658 behaves like a package tracking event1659 creates a gitlab tracking event search_package1660 with skip set to 21661 behaves like returns a valid json search response1662 returns a valid json response1663 behaves like returning response status1664 returns success1665 with take set to 21666 behaves like returns a valid json search response1667 returns a valid json response1668 behaves like returning response status1669 returns success1670 without prereleases1671 behaves like returns a valid json search response1672 returns a valid json response1673 behaves like returning response status1674 returns success1675 with empty search term1676 behaves like returns a valid json search response1677 returns a valid json response1678 behaves like returning response status1679 returns success1680 with nil search term1681 behaves like returns a valid json search response1682 returns a valid json response1683 behaves like returning response status1684 returns success1685 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1686 behaves like process nuget search request1687 for user type developer1688 behaves like returns a valid json search response1689 returns a valid json response1690 behaves like returning response status1691 returns success1692 behaves like a package tracking event1693 creates a gitlab tracking event search_package1694 with skip set to 21695 behaves like returns a valid json search response1696 returns a valid json response1697 behaves like returning response status1698 returns success1699 with take set to 21700 behaves like returns a valid json search response1701 returns a valid json response1702 behaves like returning response status1703 returns success1704 without prereleases1705 behaves like returns a valid json search response1706 returns a valid json response1707 behaves like returning response status1708 returns success1709 with empty search term1710 behaves like returns a valid json search response1711 returns a valid json response1712 behaves like returning response status1713 returns success1714 with nil search term1715 behaves like returns a valid json search response1716 returns a valid json response1717 behaves like returning response status1718 returns success1719 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1720 behaves like rejects nuget packages access1721 for user type guest1722 behaves like returning response status1723 returns forbidden1724 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1725 behaves like rejects nuget packages access1726 for user type developer1727 has the correct response header1728 behaves like returning response status1729 returns unauthorized1730 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1731 behaves like rejects nuget packages access1732 for user type guest1733 has the correct response header1734 behaves like returning response status1735 returns unauthorized1736 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1737 behaves like rejects nuget packages access1738 for user type developer1739 behaves like returning response status1740 returns not_found1741 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1742 behaves like rejects nuget packages access1743 for user type guest1744 behaves like returning response status1745 returns not_found1746 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1747 behaves like rejects nuget packages access1748 for user type developer1749 has the correct response header1750 behaves like returning response status1751 returns unauthorized1752 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1753 behaves like rejects nuget packages access1754 for user type guest1755 has the correct response header1756 behaves like returning response status1757 returns unauthorized1758 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1759 behaves like rejects nuget packages access1760 for user type anonymous1761 has the correct response header1762 behaves like returning response status1763 returns unauthorized1764 behaves like deploy token for package GET requests1765 with deploy token headers1766 valid token1767 behaves like returning response status1768 returns success1769 invalid token1770 behaves like returning response status1771 returns unauthorized1772 behaves like rejects nuget access with unknown target id1773 with an unknown target1774 as anonymous1775 behaves like rejects nuget packages access1776 for user type anonymous1777 has the correct response header1778 behaves like returning response status1779 returns unauthorized1780 as authenticated user1781 behaves like rejects nuget packages access1782 for user type anonymous1783 behaves like returning response status1784 returns not_found1785 behaves like rejects nuget access with invalid target id1786 with a target id with invalid integers1787 id: "/../", status: :bad_request1788 behaves like rejects nuget packages access1789 for user type anonymous1790 behaves like returning response status1791 returns bad_request1792 id: "", status: :not_found1793 behaves like rejects nuget packages access1794 for user type anonymous1795 behaves like returning response status1796 returns not_found1797 id: "%20", status: :bad_request1798 behaves like rejects nuget packages access1799 for user type anonymous1800 behaves like returning response status1801 returns bad_request1802 id: "%2e%2e%2f", status: :bad_request1803 behaves like rejects nuget packages access1804 for user type anonymous1805 behaves like returning response status1806 returns bad_request1807 id: "NaN", status: :bad_request1808 behaves like rejects nuget packages access1809 for user type anonymous1810 behaves like returning response status1811 returns bad_request1812 id: 1253, status: :unauthorized1813 behaves like rejects nuget packages access1814 for user type anonymous1815 has the correct response header1816 behaves like returning response status1817 returns unauthorized1818 id: "anything25", status: :bad_request1819 behaves like rejects nuget packages access1820 for user type anonymous1821 behaves like returning response status1822 returns bad_request1823 behaves like accept get request on private project with access to package registry for everyone1824 behaves like returning response status1825 returns ok1826 GET /api/v4/projects/:id/packages/nuget/download/*package_name/index1827 with valid target1828 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1829 behaves like process nuget download versions request1830 for user type developer1831 behaves like returning response status1832 returns success1833 behaves like returns a valid nuget download versions json response1834 returns a valid json response1835 with invalid format1836 behaves like rejects nuget packages access1837 for user type anonymous1838 behaves like returning response status1839 returns not_found1840 with lower case package name1841 behaves like returning response status1842 returns success1843 behaves like returns a valid nuget download versions json response1844 returns a valid json response1845 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1846 behaves like process nuget download versions request1847 for user type guest1848 behaves like returning response status1849 returns success1850 behaves like returns a valid nuget download versions json response1851 returns a valid json response1852 with invalid format1853 behaves like rejects nuget packages access1854 for user type anonymous1855 behaves like returning response status1856 returns not_found1857 with lower case package name1858 behaves like returning response status1859 returns success1860 behaves like returns a valid nuget download versions json response1861 returns a valid json response1862 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1863 behaves like rejects nuget packages access1864 for user type developer1865 has the correct response header1866 behaves like returning response status1867 returns unauthorized1868 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1869 behaves like rejects nuget packages access1870 for user type guest1871 has the correct response header1872 behaves like returning response status1873 returns unauthorized1874 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1875 behaves like process nuget download versions request1876 for user type developer1877 behaves like returning response status1878 returns success1879 behaves like returns a valid nuget download versions json response1880 returns a valid json response1881 with invalid format1882 behaves like rejects nuget packages access1883 for user type anonymous1884 behaves like returning response status1885 returns not_found1886 with lower case package name1887 behaves like returning response status1888 returns success1889 behaves like returns a valid nuget download versions json response1890 returns a valid json response1891 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1892 behaves like process nuget download versions request1893 for user type guest1894 behaves like returning response status1895 returns success1896 behaves like returns a valid nuget download versions json response1897 returns a valid json response1898 with invalid format1899 behaves like rejects nuget packages access1900 for user type anonymous1901 behaves like returning response status1902 returns not_found1903 with lower case package name1904 behaves like returning response status1905 returns success1906 behaves like returns a valid nuget download versions json response1907 returns a valid json response1908 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1909 behaves like rejects nuget packages access1910 for user type developer1911 has the correct response header1912 behaves like returning response status1913 returns unauthorized1914 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1915 behaves like rejects nuget packages access1916 for user type guest1917 has the correct response header1918 behaves like returning response status1919 returns unauthorized1920 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1921 behaves like process nuget download versions request1922 for user type anonymous1923 behaves like returning response status1924 returns success1925 behaves like returns a valid nuget download versions json response1926 returns a valid json response1927 with invalid format1928 behaves like rejects nuget packages access1929 for user type anonymous1930 behaves like returning response status1931 returns not_found1932 with lower case package name1933 behaves like returning response status1934 returns success1935 behaves like returns a valid nuget download versions json response1936 returns a valid json response1937 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1938 behaves like process nuget download versions request1939 for user type developer1940 behaves like returning response status1941 returns success1942 behaves like returns a valid nuget download versions json response1943 returns a valid json response1944 with invalid format1945 behaves like rejects nuget packages access1946 for user type anonymous1947 behaves like returning response status1948 returns not_found1949 with lower case package name1950 behaves like returning response status1951 returns success1952 behaves like returns a valid nuget download versions json response1953 returns a valid json response1954 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1955 behaves like rejects nuget packages access1956 for user type guest1957 behaves like returning response status1958 returns forbidden1959 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1960 behaves like rejects nuget packages access1961 for user type developer1962 has the correct response header1963 behaves like returning response status1964 returns unauthorized1965 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1966 behaves like rejects nuget packages access1967 for user type guest1968 has the correct response header1969 behaves like returning response status1970 returns unauthorized1971 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1972 behaves like rejects nuget packages access1973 for user type developer1974 behaves like returning response status1975 returns not_found1976 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1977 behaves like rejects nuget packages access1978 for user type guest1979 behaves like returning response status1980 returns not_found1981 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1982 behaves like rejects nuget packages access1983 for user type developer1984 has the correct response header1985 behaves like returning response status1986 returns unauthorized1987 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1988 behaves like rejects nuget packages access1989 for user type guest1990 has the correct response header1991 behaves like returning response status1992 returns unauthorized1993 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1994 behaves like rejects nuget packages access1995 for user type anonymous1996 has the correct response header1997 behaves like returning response status1998 returns unauthorized1999 behaves like deploy token for package GET requests2000 with deploy token headers2001 valid token2002 behaves like returning response status2003 returns success2004 invalid token2005 behaves like returning response status2006 returns unauthorized2007 behaves like rejects nuget access with unknown target id2008 with an unknown target2009 as anonymous2010 behaves like rejects nuget packages access2011 for user type anonymous2012 has the correct response header2013 behaves like returning response status2014 returns unauthorized2015 as authenticated user2016 behaves like rejects nuget packages access2017 for user type anonymous2018 behaves like returning response status2019 returns not_found2020 behaves like rejects nuget access with invalid target id2021 with a target id with invalid integers2022 id: "/../", status: :bad_request2023 behaves like rejects nuget packages access2024 for user type anonymous2025 behaves like returning response status2026 returns bad_request2027 id: "", status: :not_found2028 behaves like rejects nuget packages access2029 for user type anonymous2030 behaves like returning response status2031 returns not_found2032 id: "%20", status: :bad_request2033 behaves like rejects nuget packages access2034 for user type anonymous2035 behaves like returning response status2036 returns bad_request2037 id: "%2e%2e%2f", status: :bad_request2038 behaves like rejects nuget packages access2039 for user type anonymous2040 behaves like returning response status2041 returns bad_request2042 id: "NaN", status: :bad_request2043 behaves like rejects nuget packages access2044 for user type anonymous2045 behaves like returning response status2046 returns bad_request2047 id: 1253, status: :unauthorized2048 behaves like rejects nuget packages access2049 for user type anonymous2050 has the correct response header2051 behaves like returning response status2052 returns unauthorized2053 id: "anything25", status: :bad_request2054 behaves like rejects nuget packages access2055 for user type anonymous2056 behaves like returning response status2057 returns bad_request2058 behaves like accept get request on private project with access to package registry for everyone2059 behaves like returning response status2060 returns ok2061 GET /api/v4/projects/:id/packages/nuget/download/*package_name/*package_version/*package_filename2062 with valid target2063 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2064 behaves like process nuget download content request2065 for user type developer2066 returns a valid package archive2067 behaves like returning response status2068 returns success2069 behaves like a package tracking event2070 creates a gitlab tracking event pull_package2071 behaves like bumping the package last downloaded at field2072DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2073from Rails 7.1 will use the default Ruby implementation.2074You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2075to enable the new behavior now.2076 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2077 bumps last_downloaded_at2078 with invalid format2079 behaves like rejects nuget packages access2080 for user type anonymous2081 behaves like returning response status2082 returns not_found2083 with symbol package2084 returns a valid package archive2085 behaves like a package tracking event2086 creates a gitlab tracking event pull_symbol_package2087 behaves like bumping the package last downloaded at field2088DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2089from Rails 7.1 will use the default Ruby implementation.2090You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2091to enable the new behavior now.2092 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2093 bumps last_downloaded_at2094 with lower case package name2095 returns a valid package archive2096 behaves like returning response status2097 returns success2098 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2099 behaves like process nuget download content request2100 for user type guest2101 returns a valid package archive2102 behaves like returning response status2103 returns success2104 behaves like a package tracking event2105 creates a gitlab tracking event pull_package2106 behaves like bumping the package last downloaded at field2107DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2108from Rails 7.1 will use the default Ruby implementation.2109You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2110to enable the new behavior now.2111 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2112 bumps last_downloaded_at2113 with invalid format2114 behaves like rejects nuget packages access2115 for user type anonymous2116 behaves like returning response status2117 returns not_found2118 with symbol package2119 returns a valid package archive2120 behaves like a package tracking event2121 creates a gitlab tracking event pull_symbol_package2122 behaves like bumping the package last downloaded at field2123DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2124from Rails 7.1 will use the default Ruby implementation.2125You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2126to enable the new behavior now.2127 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2128 bumps last_downloaded_at2129 with lower case package name2130 returns a valid package archive2131 behaves like returning response status2132 returns success2133 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2134 behaves like rejects nuget packages access2135 for user type developer2136 has the correct response header2137 behaves like returning response status2138 returns unauthorized2139 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2140 behaves like rejects nuget packages access2141 for user type guest2142 has the correct response header2143 behaves like returning response status2144 returns unauthorized2145 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2146 behaves like process nuget download content request2147 for user type developer2148 returns a valid package archive2149 behaves like returning response status2150 returns success2151 behaves like a package tracking event2152 creates a gitlab tracking event pull_package2153 behaves like bumping the package last downloaded at field2154DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2155from Rails 7.1 will use the default Ruby implementation.2156You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2157to enable the new behavior now.2158 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2159 bumps last_downloaded_at2160 with invalid format2161 behaves like rejects nuget packages access2162 for user type anonymous2163 behaves like returning response status2164 returns not_found2165 with symbol package2166 returns a valid package archive2167 behaves like a package tracking event2168 creates a gitlab tracking event pull_symbol_package2169 behaves like bumping the package last downloaded at field2170DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2171from Rails 7.1 will use the default Ruby implementation.2172You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2173to enable the new behavior now.2174 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2175 bumps last_downloaded_at2176 with lower case package name2177 returns a valid package archive2178 behaves like returning response status2179 returns success2180 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2181 behaves like process nuget download content request2182 for user type guest2183 returns a valid package archive2184 behaves like returning response status2185 returns success2186 behaves like a package tracking event2187 creates a gitlab tracking event pull_package2188 behaves like bumping the package last downloaded at field2189DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2190from Rails 7.1 will use the default Ruby implementation.2191You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2192to enable the new behavior now.2193 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2194 bumps last_downloaded_at2195 with invalid format2196 behaves like rejects nuget packages access2197 for user type anonymous2198 behaves like returning response status2199 returns not_found2200 with symbol package2201 returns a valid package archive2202 behaves like a package tracking event2203 creates a gitlab tracking event pull_symbol_package2204 behaves like bumping the package last downloaded at field2205DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2206from Rails 7.1 will use the default Ruby implementation.2207You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2208to enable the new behavior now.2209 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2210 bumps last_downloaded_at2211 with lower case package name2212 returns a valid package archive2213 behaves like returning response status2214 returns success2215 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2216 behaves like rejects nuget packages access2217 for user type developer2218 has the correct response header2219 behaves like returning response status2220 returns unauthorized2221 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2222 behaves like rejects nuget packages access2223 for user type guest2224 has the correct response header2225 behaves like returning response status2226 returns unauthorized2227 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2228 behaves like process nuget download content request2229 for user type anonymous2230 returns a valid package archive2231 behaves like returning response status2232 returns success2233 behaves like a package tracking event2234 creates a gitlab tracking event pull_package2235 behaves like bumping the package last downloaded at field2236DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2237from Rails 7.1 will use the default Ruby implementation.2238You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2239to enable the new behavior now.2240 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2241 bumps last_downloaded_at2242 with invalid format2243 behaves like rejects nuget packages access2244 for user type anonymous2245 behaves like returning response status2246 returns not_found2247 with symbol package2248 returns a valid package archive2249 behaves like a package tracking event2250 creates a gitlab tracking event pull_symbol_package2251 behaves like bumping the package last downloaded at field2252DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2253from Rails 7.1 will use the default Ruby implementation.2254You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2255to enable the new behavior now.2256 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2257 bumps last_downloaded_at2258 with lower case package name2259 returns a valid package archive2260 behaves like returning response status2261 returns success2262 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2263 behaves like process nuget download content request2264 for user type developer2265 returns a valid package archive2266 behaves like returning response status2267 returns success2268 behaves like a package tracking event2269 creates a gitlab tracking event pull_package2270 behaves like bumping the package last downloaded at field2271DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2272from Rails 7.1 will use the default Ruby implementation.2273You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2274to enable the new behavior now.2275 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2276 bumps last_downloaded_at2277 with invalid format2278 behaves like rejects nuget packages access2279 for user type anonymous2280 behaves like returning response status2281 returns not_found2282 with symbol package2283 returns a valid package archive2284 behaves like a package tracking event2285 creates a gitlab tracking event pull_symbol_package2286 behaves like bumping the package last downloaded at field2287DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and2288from Rails 7.1 will use the default Ruby implementation.2289You can set `config.active_support.remove_deprecated_time_with_zone_name = true`2290to enable the new behavior now.2291 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)2292 bumps last_downloaded_at2293 with lower case package name2294 returns a valid package archive2295 behaves like returning response status2296 returns success2297 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2298 behaves like rejects nuget packages access2299 for user type guest2300 behaves like returning response status2301 returns forbidden2302 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2303 behaves like rejects nuget packages access2304 for user type developer2305 has the correct response header2306 behaves like returning response status2307 returns unauthorized2308 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2309 behaves like rejects nuget packages access2310 for user type guest2311 has the correct response header2312 behaves like returning response status2313 returns unauthorized2314 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2315 behaves like rejects nuget packages access2316 for user type developer2317 behaves like returning response status2318 returns not_found2319 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2320 behaves like rejects nuget packages access2321 for user type guest2322 behaves like returning response status2323 returns not_found2324 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2325 behaves like rejects nuget packages access2326 for user type developer2327 has the correct response header2328 behaves like returning response status2329 returns unauthorized2330 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2331 behaves like rejects nuget packages access2332 for user type guest2333 has the correct response header2334 behaves like returning response status2335 returns unauthorized2336 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2337 behaves like rejects nuget packages access2338 for user type anonymous2339 has the correct response header2340 behaves like returning response status2341 returns unauthorized2342 behaves like accept get request on private project with access to package registry for everyone2343 behaves like returning response status2344 returns ok2345 behaves like deploy token for package GET requests2346 with deploy token headers2347 valid token2348 behaves like returning response status2349 returns success2350 invalid token2351 behaves like returning response status2352 returns unauthorized2353 behaves like rejects nuget access with unknown target id2354 with an unknown target2355 as anonymous2356 behaves like rejects nuget packages access2357 for user type anonymous2358 has the correct response header2359 behaves like returning response status2360 returns unauthorized2361 as authenticated user2362 behaves like rejects nuget packages access2363 for user type anonymous2364 behaves like returning response status2365 returns not_found2366 behaves like rejects nuget access with invalid target id2367 with a target id with invalid integers2368 id: "/../", status: :bad_request2369 behaves like rejects nuget packages access2370 for user type anonymous2371 behaves like returning response status2372 returns bad_request2373 id: "", status: :not_found2374 behaves like rejects nuget packages access2375 for user type anonymous2376 behaves like returning response status2377 returns not_found2378 id: "%20", status: :bad_request2379 behaves like rejects nuget packages access2380 for user type anonymous2381 behaves like returning response status2382 returns bad_request2383 id: "%2e%2e%2f", status: :bad_request2384 behaves like rejects nuget packages access2385 for user type anonymous2386 behaves like returning response status2387 returns bad_request2388 id: "NaN", status: :bad_request2389 behaves like rejects nuget packages access2390 for user type anonymous2391 behaves like returning response status2392 returns bad_request2393 id: 1253, status: :unauthorized2394 behaves like rejects nuget packages access2395 for user type anonymous2396 has the correct response header2397 behaves like returning response status2398 returns unauthorized2399 id: "anything25", status: :bad_request2400 behaves like rejects nuget packages access2401 for user type anonymous2402 behaves like returning response status2403 returns bad_request2404 PUT /api/v4/projects/:id/packages/nuget/authorize2405 behaves like nuget authorize upload endpoint2406 with valid project2407 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2408 behaves like process nuget workhorse authorization2409 for user type developer2410 has the proper content type2411 behaves like returning response status2412 returns success2413 with a request that bypassed gitlab-workhorse2414 behaves like returning response status2415 returns forbidden2416 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2417 behaves like rejects nuget packages access2418 for user type guest2419 behaves like returning response status2420 returns forbidden2421 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2422 behaves like rejects nuget packages access2423 for user type developer2424 has the correct response header2425 behaves like returning response status2426 returns unauthorized2427 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2428 behaves like rejects nuget packages access2429 for user type guest2430 has the correct response header2431 behaves like returning response status2432 returns unauthorized2433 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2434 behaves like rejects nuget packages access2435 for user type developer2436 behaves like returning response status2437 returns forbidden2438 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2439 behaves like rejects nuget packages access2440 for user type guest2441 behaves like returning response status2442 returns forbidden2443 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2444 behaves like rejects nuget packages access2445 for user type developer2446 has the correct response header2447 behaves like returning response status2448 returns unauthorized2449 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2450 behaves like rejects nuget packages access2451 for user type guest2452 has the correct response header2453 behaves like returning response status2454 returns unauthorized2455 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2456 behaves like process nuget workhorse authorization2457 for user type developer2458 has the proper content type2459 behaves like returning response status2460 returns success2461 with a request that bypassed gitlab-workhorse2462 behaves like returning response status2463 returns forbidden2464 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2465 behaves like rejects nuget packages access2466 for user type guest2467 behaves like returning response status2468 returns forbidden2469 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2470 behaves like rejects nuget packages access2471 for user type developer2472 has the correct response header2473 behaves like returning response status2474 returns unauthorized2475 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2476 behaves like rejects nuget packages access2477 for user type guest2478 has the correct response header2479 behaves like returning response status2480 returns unauthorized2481 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2482 behaves like rejects nuget packages access2483 for user type developer2484 behaves like returning response status2485 returns not_found2486 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2487 behaves like rejects nuget packages access2488 for user type guest2489 behaves like returning response status2490 returns not_found2491 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2492 behaves like rejects nuget packages access2493 for user type developer2494 has the correct response header2495 behaves like returning response status2496 returns unauthorized2497 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2498 behaves like rejects nuget packages access2499 for user type guest2500 has the correct response header2501 behaves like returning response status2502 returns unauthorized2503 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2504 behaves like process nuget workhorse authorization2505 for user type developer2506 has the proper content type2507 behaves like returning response status2508 returns success2509 with a request that bypassed gitlab-workhorse2510 behaves like returning response status2511 returns forbidden2512 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2513 behaves like rejects nuget packages access2514 for user type guest2515 behaves like returning response status2516 returns forbidden2517 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2518 behaves like rejects nuget packages access2519 for user type developer2520 has the correct response header2521 behaves like returning response status2522 returns unauthorized2523 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2524 behaves like rejects nuget packages access2525 for user type guest2526 has the correct response header2527 behaves like returning response status2528 returns unauthorized2529 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2530 behaves like rejects nuget packages access2531 for user type developer2532 behaves like returning response status2533 returns forbidden2534 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2535 behaves like rejects nuget packages access2536 for user type guest2537 behaves like returning response status2538 returns forbidden2539 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2540 behaves like rejects nuget packages access2541 for user type developer2542 has the correct response header2543 behaves like returning response status2544 returns unauthorized2545 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2546 behaves like rejects nuget packages access2547 for user type guest2548 has the correct response header2549 behaves like returning response status2550 returns unauthorized2551 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2552 behaves like process nuget workhorse authorization2553 for user type developer2554 has the proper content type2555 behaves like returning response status2556 returns success2557 with a request that bypassed gitlab-workhorse2558 behaves like returning response status2559 returns forbidden2560 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2561 behaves like rejects nuget packages access2562 for user type guest2563 behaves like returning response status2564 returns forbidden2565 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2566 behaves like rejects nuget packages access2567 for user type developer2568 has the correct response header2569 behaves like returning response status2570 returns unauthorized2571 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2572 behaves like rejects nuget packages access2573 for user type guest2574 has the correct response header2575 behaves like returning response status2576 returns unauthorized2577 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2578 behaves like rejects nuget packages access2579 for user type developer2580 behaves like returning response status2581 returns not_found2582 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2583 behaves like rejects nuget packages access2584 for user type guest2585 behaves like returning response status2586 returns not_found2587 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2588 behaves like rejects nuget packages access2589 for user type developer2590 has the correct response header2591 behaves like returning response status2592 returns unauthorized2593 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2594 behaves like rejects nuget packages access2595 for user type guest2596 has the correct response header2597 behaves like returning response status2598 returns unauthorized2599 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, sent_through: nil, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2600 behaves like rejects nuget packages access2601 for user type anonymous2602 has the correct response header2603 behaves like returning response status2604 returns unauthorized2605 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, sent_through: nil, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2606 behaves like rejects nuget packages access2607 for user type anonymous2608 has the correct response header2609 behaves like returning response status2610 returns unauthorized2611 behaves like deploy token for package uploads2612 with deploy token headers2613 valid token2614 behaves like returning response status2615 returns success2616 invalid token2617 behaves like returning response status2618 returns unauthorized2619 behaves like job token for package uploads2620 with job token headers2621 valid token2622 behaves like returning response status2623 returns success2624 invalid token2625 behaves like returning response status2626 returns unauthorized2627 invalid user2628 behaves like returning response status2629 returns unauthorized2630 behaves like rejects nuget access with unknown target id2631 with an unknown target2632 as anonymous2633 behaves like rejects nuget packages access2634 for user type anonymous2635 has the correct response header2636 behaves like returning response status2637 returns unauthorized2638 as authenticated user2639 behaves like rejects nuget packages access2640 for user type anonymous2641 behaves like returning response status2642 returns not_found2643 behaves like rejects nuget access with invalid target id2644 with a target id with invalid integers2645 id: "/../", status: :bad_request2646 behaves like rejects nuget packages access2647 for user type anonymous2648 behaves like returning response status2649 returns bad_request2650 id: "", status: :not_found2651 behaves like rejects nuget packages access2652 for user type anonymous2653 behaves like returning response status2654 returns not_found2655 id: "%20", status: :bad_request2656 behaves like rejects nuget packages access2657 for user type anonymous2658 behaves like returning response status2659 returns bad_request2660 id: "%2e%2e%2f", status: :bad_request2661 behaves like rejects nuget packages access2662 for user type anonymous2663 behaves like returning response status2664 returns bad_request2665 id: "NaN", status: :bad_request2666 behaves like rejects nuget packages access2667 for user type anonymous2668 behaves like returning response status2669 returns bad_request2670 id: 1253, status: :unauthorized2671 behaves like rejects nuget packages access2672 for user type anonymous2673 has the correct response header2674 behaves like returning response status2675 returns unauthorized2676 id: "anything25", status: :bad_request2677 behaves like rejects nuget packages access2678 for user type anonymous2679 behaves like returning response status2680 returns bad_request2681 PUT /api/v4/projects/:id/packages/nuget2682 behaves like nuget upload endpoint2683 with valid project2684 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "process nuget upload", expected_status: :created2685 behaves like process nuget upload2686 for user type developer2687 with object storage disabled2688 without a file from workhorse2689 behaves like returning response status2690 returns bad_request2691 with correct params2692 behaves like package workhorse uploads2693 without a workhorse header2694 logs an error2695 behaves like returning response status2696 returns forbidden2697 behaves like creates nuget package files2698 creates package files2699 behaves like a package tracking event2700 creates a gitlab tracking event push_package2701 with object storage enabled2702 and direct upload enabled2703 behaves like creates nuget package files2704 creates package files2705 with invalid remote_id: 1231232706 behaves like returning response status2707 returns forbidden2708 with invalid remote_id: ../../1231232709 behaves like returning response status2710 returns forbidden2711 with crafted package.path param2712 does not create a package file2713 behaves like returning response status2714 returns bad_request2715 and direct upload disabled2716 behaves like creates nuget package files2717 creates package files2718 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2719 behaves like rejects nuget packages access2720 for user type guest2721 behaves like returning response status2722 returns forbidden2723 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2724 behaves like rejects nuget packages access2725 for user type developer2726 has the correct response header2727 behaves like returning response status2728 returns unauthorized2729 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2730 behaves like rejects nuget packages access2731 for user type guest2732 has the correct response header2733 behaves like returning response status2734 returns unauthorized2735 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2736 behaves like rejects nuget packages access2737 for user type developer2738 behaves like returning response status2739 returns forbidden2740 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2741 behaves like rejects nuget packages access2742 for user type guest2743 behaves like returning response status2744 returns forbidden2745 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2746 behaves like rejects nuget packages access2747 for user type developer2748 has the correct response header2749 behaves like returning response status2750 returns unauthorized2751 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2752 behaves like rejects nuget packages access2753 for user type guest2754 has the correct response header2755 behaves like returning response status2756 returns unauthorized2757 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "process nuget upload", expected_status: :created2758 behaves like process nuget upload2759 for user type developer2760 with object storage disabled2761 without a file from workhorse2762 behaves like returning response status2763 returns bad_request2764 with correct params2765 behaves like package workhorse uploads2766 without a workhorse header2767 logs an error2768 behaves like returning response status2769 returns forbidden2770 behaves like creates nuget package files2771 creates package files2772 behaves like a package tracking event2773 creates a gitlab tracking event push_package2774 with object storage enabled2775 and direct upload enabled2776 behaves like creates nuget package files2777 creates package files2778 with invalid remote_id: 1231232779 behaves like returning response status2780 returns forbidden2781 with invalid remote_id: ../../1231232782 behaves like returning response status2783 returns forbidden2784 with crafted package.path param2785 does not create a package file2786 behaves like returning response status2787 returns bad_request2788 and direct upload disabled2789 behaves like creates nuget package files2790 creates package files2791 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2792 behaves like rejects nuget packages access2793 for user type guest2794 behaves like returning response status2795 returns forbidden2796 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2797 behaves like rejects nuget packages access2798 for user type developer2799 has the correct response header2800 behaves like returning response status2801 returns unauthorized2802 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2803 behaves like rejects nuget packages access2804 for user type guest2805 has the correct response header2806 behaves like returning response status2807 returns unauthorized2808 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2809 behaves like rejects nuget packages access2810 for user type developer2811 behaves like returning response status2812 returns not_found2813 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2814 behaves like rejects nuget packages access2815 for user type guest2816 behaves like returning response status2817 returns not_found2818 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2819 behaves like rejects nuget packages access2820 for user type developer2821 has the correct response header2822 behaves like returning response status2823 returns unauthorized2824 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2825 behaves like rejects nuget packages access2826 for user type guest2827 has the correct response header2828 behaves like returning response status2829 returns unauthorized2830 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "process nuget upload", expected_status: :created2831 behaves like process nuget upload2832 for user type developer2833 with object storage disabled2834 without a file from workhorse2835 behaves like returning response status2836 returns bad_request2837 with correct params2838 behaves like package workhorse uploads2839 without a workhorse header2840 logs an error2841 behaves like returning response status2842 returns forbidden2843 behaves like creates nuget package files2844 creates package files2845 behaves like a package tracking event2846 creates a gitlab tracking event push_package2847 with object storage enabled2848 and direct upload enabled2849 behaves like creates nuget package files2850 creates package files2851 with invalid remote_id: 1231232852 behaves like returning response status2853 returns forbidden2854 with invalid remote_id: ../../1231232855 behaves like returning response status2856 returns forbidden2857 with crafted package.path param2858 does not create a package file2859 behaves like returning response status2860 returns bad_request2861 and direct upload disabled2862 behaves like creates nuget package files2863 creates package files2864 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2865 behaves like rejects nuget packages access2866 for user type guest2867 behaves like returning response status2868 returns forbidden2869 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2870 behaves like rejects nuget packages access2871 for user type developer2872 has the correct response header2873 behaves like returning response status2874 returns unauthorized2875 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2876 behaves like rejects nuget packages access2877 for user type guest2878 has the correct response header2879 behaves like returning response status2880 returns unauthorized2881 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2882 behaves like rejects nuget packages access2883 for user type developer2884 behaves like returning response status2885 returns forbidden2886 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2887 behaves like rejects nuget packages access2888 for user type guest2889 behaves like returning response status2890 returns forbidden2891 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2892 behaves like rejects nuget packages access2893 for user type developer2894 has the correct response header2895 behaves like returning response status2896 returns unauthorized2897 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2898 behaves like rejects nuget packages access2899 for user type guest2900 has the correct response header2901 behaves like returning response status2902 returns unauthorized2903 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "process nuget upload", expected_status: :created2904 behaves like process nuget upload2905 for user type developer2906 with object storage disabled2907 without a file from workhorse2908 behaves like returning response status2909 returns bad_request2910 with correct params2911 behaves like package workhorse uploads2912 without a workhorse header2913 logs an error2914 behaves like returning response status2915 returns forbidden2916 behaves like creates nuget package files2917 creates package files2918 behaves like a package tracking event2919 creates a gitlab tracking event push_package2920 with object storage enabled2921 and direct upload enabled2922 behaves like creates nuget package files2923 creates package files2924 with invalid remote_id: 1231232925 behaves like returning response status2926 returns forbidden2927 with invalid remote_id: ../../1231232928 behaves like returning response status2929 returns forbidden2930 with crafted package.path param2931 does not create a package file2932 behaves like returning response status2933 returns bad_request2934 and direct upload disabled2935 behaves like creates nuget package files2936 creates package files2937 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2938 behaves like rejects nuget packages access2939 for user type guest2940 behaves like returning response status2941 returns forbidden2942 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2943 behaves like rejects nuget packages access2944 for user type developer2945 has the correct response header2946 behaves like returning response status2947 returns unauthorized2948 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2949 behaves like rejects nuget packages access2950 for user type guest2951 has the correct response header2952 behaves like returning response status2953 returns unauthorized2954 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2955 behaves like rejects nuget packages access2956 for user type developer2957 behaves like returning response status2958 returns not_found2959 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2960 behaves like rejects nuget packages access2961 for user type guest2962 behaves like returning response status2963 returns not_found2964 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2965 behaves like rejects nuget packages access2966 for user type developer2967 has the correct response header2968 behaves like returning response status2969 returns unauthorized2970 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2971 behaves like rejects nuget packages access2972 for user type guest2973 has the correct response header2974 behaves like returning response status2975 returns unauthorized2976 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, sent_through: nil, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2977 behaves like rejects nuget packages access2978 for user type anonymous2979 has the correct response header2980 behaves like returning response status2981 returns unauthorized2982 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, sent_through: nil, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2983 behaves like rejects nuget packages access2984 for user type anonymous2985 has the correct response header2986 behaves like returning response status2987 returns unauthorized2988 behaves like deploy token for package uploads2989 with deploy token headers2990 valid token2991 behaves like returning response status2992 returns success2993 invalid token2994 behaves like returning response status2995 returns unauthorized2996 behaves like job token for package uploads2997 with job token headers2998 valid token2999 creates a package with build info3000 behaves like returning response status3001 returns success3002 invalid token3003 behaves like returning response status3004 returns unauthorized3005 invalid user3006 behaves like returning response status3007 returns unauthorized3008 behaves like rejects nuget access with unknown target id3009 with an unknown target3010 as anonymous3011 behaves like rejects nuget packages access3012 for user type anonymous3013 has the correct response header3014 behaves like returning response status3015 returns unauthorized3016 as authenticated user3017 behaves like rejects nuget packages access3018 for user type anonymous3019 behaves like returning response status3020 returns not_found3021 behaves like rejects nuget access with invalid target id3022 with a target id with invalid integers3023 id: "/../", status: :bad_request3024 behaves like rejects nuget packages access3025 for user type anonymous3026 behaves like returning response status3027 returns bad_request3028 id: "", status: :not_found3029 behaves like rejects nuget packages access3030 for user type anonymous3031 behaves like returning response status3032 returns not_found3033 id: "%20", status: :bad_request3034 behaves like rejects nuget packages access3035 for user type anonymous3036 behaves like returning response status3037 returns bad_request3038 id: "%2e%2e%2f", status: :bad_request3039 behaves like rejects nuget packages access3040 for user type anonymous3041 behaves like returning response status3042 returns bad_request3043 id: "NaN", status: :bad_request3044 behaves like rejects nuget packages access3045 for user type anonymous3046 behaves like returning response status3047 returns bad_request3048 id: 1253, status: :unauthorized3049 behaves like rejects nuget packages access3050 for user type anonymous3051 has the correct response header3052 behaves like returning response status3053 returns unauthorized3054 id: "anything25", status: :bad_request3055 behaves like rejects nuget packages access3056 for user type anonymous3057 behaves like returning response status3058 returns bad_request3059 file size above maximum limit3060 behaves like returning response status3061 returns bad_request3062 PUT /api/v4/projects/:id/packages/nuget/symbolpackage/authorize3063 behaves like nuget authorize upload endpoint3064 with valid project3065 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "process nuget workhorse authorization", expected_status: :success3066 behaves like process nuget workhorse authorization3067 for user type developer3068 has the proper content type3069 behaves like returning response status3070 returns success3071 with a request that bypassed gitlab-workhorse3072 behaves like returning response status3073 returns forbidden3074 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3075 behaves like rejects nuget packages access3076 for user type guest3077 behaves like returning response status3078 returns forbidden3079 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3080 behaves like rejects nuget packages access3081 for user type developer3082 has the correct response header3083 behaves like returning response status3084 returns unauthorized3085 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3086 behaves like rejects nuget packages access3087 for user type guest3088 has the correct response header3089 behaves like returning response status3090 returns unauthorized3091 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3092 behaves like rejects nuget packages access3093 for user type developer3094 behaves like returning response status3095 returns forbidden3096 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3097 behaves like rejects nuget packages access3098 for user type guest3099 behaves like returning response status3100 returns forbidden3101 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3102 behaves like rejects nuget packages access3103 for user type developer3104 has the correct response header3105 behaves like returning response status3106 returns unauthorized3107 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3108 behaves like rejects nuget packages access3109 for user type guest3110 has the correct response header3111 behaves like returning response status3112 returns unauthorized3113 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "process nuget workhorse authorization", expected_status: :success3114 behaves like process nuget workhorse authorization3115 for user type developer3116 has the proper content type3117 behaves like returning response status3118 returns success3119 with a request that bypassed gitlab-workhorse3120 behaves like returning response status3121 returns forbidden3122 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3123 behaves like rejects nuget packages access3124 for user type guest3125 behaves like returning response status3126 returns forbidden3127 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3128 behaves like rejects nuget packages access3129 for user type developer3130 has the correct response header3131 behaves like returning response status3132 returns unauthorized3133 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3134 behaves like rejects nuget packages access3135 for user type guest3136 has the correct response header3137 behaves like returning response status3138 returns unauthorized3139 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3140 behaves like rejects nuget packages access3141 for user type developer3142 behaves like returning response status3143 returns not_found3144 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3145 behaves like rejects nuget packages access3146 for user type guest3147 behaves like returning response status3148 returns not_found3149 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3150 behaves like rejects nuget packages access3151 for user type developer3152 has the correct response header3153 behaves like returning response status3154 returns unauthorized3155 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3156 behaves like rejects nuget packages access3157 for user type guest3158 has the correct response header3159 behaves like returning response status3160 returns unauthorized3161 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "process nuget workhorse authorization", expected_status: :success3162 behaves like process nuget workhorse authorization3163 for user type developer3164 has the proper content type3165 behaves like returning response status3166 returns success3167 with a request that bypassed gitlab-workhorse3168 behaves like returning response status3169 returns forbidden3170 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3171 behaves like rejects nuget packages access3172 for user type guest3173 behaves like returning response status3174 returns forbidden3175 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3176 behaves like rejects nuget packages access3177 for user type developer3178 has the correct response header3179 behaves like returning response status3180 returns unauthorized3181 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3182 behaves like rejects nuget packages access3183 for user type guest3184 has the correct response header3185 behaves like returning response status3186 returns unauthorized3187 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3188 behaves like rejects nuget packages access3189 for user type developer3190 behaves like returning response status3191 returns forbidden3192 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3193 behaves like rejects nuget packages access3194 for user type guest3195 behaves like returning response status3196 returns forbidden3197 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3198 behaves like rejects nuget packages access3199 for user type developer3200 has the correct response header3201 behaves like returning response status3202 returns unauthorized3203 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3204 behaves like rejects nuget packages access3205 for user type guest3206 has the correct response header3207 behaves like returning response status3208 returns unauthorized3209 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "process nuget workhorse authorization", expected_status: :success3210 behaves like process nuget workhorse authorization3211 for user type developer3212 has the proper content type3213 behaves like returning response status3214 returns success3215 with a request that bypassed gitlab-workhorse3216 behaves like returning response status3217 returns forbidden3218 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3219 behaves like rejects nuget packages access3220 for user type guest3221 behaves like returning response status3222 returns forbidden3223 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3224 behaves like rejects nuget packages access3225 for user type developer3226 has the correct response header3227 behaves like returning response status3228 returns unauthorized3229 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3230 behaves like rejects nuget packages access3231 for user type guest3232 has the correct response header3233 behaves like returning response status3234 returns unauthorized3235 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3236 behaves like rejects nuget packages access3237 for user type developer3238 behaves like returning response status3239 returns not_found3240 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3241 behaves like rejects nuget packages access3242 for user type guest3243 behaves like returning response status3244 returns not_found3245 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3246 behaves like rejects nuget packages access3247 for user type developer3248 has the correct response header3249 behaves like returning response status3250 returns unauthorized3251 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3252 behaves like rejects nuget packages access3253 for user type guest3254 has the correct response header3255 behaves like returning response status3256 returns unauthorized3257 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, sent_through: nil, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3258 behaves like rejects nuget packages access3259 for user type anonymous3260 has the correct response header3261 behaves like returning response status3262 returns unauthorized3263 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, sent_through: nil, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3264 behaves like rejects nuget packages access3265 for user type anonymous3266 has the correct response header3267 behaves like returning response status3268 returns unauthorized3269 behaves like deploy token for package uploads3270 with deploy token headers3271 valid token3272 behaves like returning response status3273 returns success3274 invalid token3275 behaves like returning response status3276 returns unauthorized3277 behaves like job token for package uploads3278 with job token headers3279 valid token3280 behaves like returning response status3281 returns success3282 invalid token3283 behaves like returning response status3284 returns unauthorized3285 invalid user3286 behaves like returning response status3287 returns unauthorized3288 behaves like rejects nuget access with unknown target id3289 with an unknown target3290 as anonymous3291 behaves like rejects nuget packages access3292 for user type anonymous3293 has the correct response header3294 behaves like returning response status3295 returns unauthorized3296 as authenticated user3297 behaves like rejects nuget packages access3298 for user type anonymous3299 behaves like returning response status3300 returns not_found3301 behaves like rejects nuget access with invalid target id3302 with a target id with invalid integers3303 id: "/../", status: :bad_request3304 behaves like rejects nuget packages access3305 for user type anonymous3306 behaves like returning response status3307 returns bad_request3308 id: "", status: :not_found3309 behaves like rejects nuget packages access3310 for user type anonymous3311 behaves like returning response status3312 returns not_found3313 id: "%20", status: :bad_request3314 behaves like rejects nuget packages access3315 for user type anonymous3316 behaves like returning response status3317 returns bad_request3318 id: "%2e%2e%2f", status: :bad_request3319 behaves like rejects nuget packages access3320 for user type anonymous3321 behaves like returning response status3322 returns bad_request3323 id: "NaN", status: :bad_request3324 behaves like rejects nuget packages access3325 for user type anonymous3326 behaves like returning response status3327 returns bad_request3328 id: 1253, status: :unauthorized3329 behaves like rejects nuget packages access3330 for user type anonymous3331 has the correct response header3332 behaves like returning response status3333 returns unauthorized3334 id: "anything25", status: :bad_request3335 behaves like rejects nuget packages access3336 for user type anonymous3337 behaves like returning response status3338 returns bad_request3339 PUT /api/v4/projects/:id/packages/nuget/symbolpackage3340 behaves like nuget upload endpoint3341 with valid project3342 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "process nuget upload", expected_status: :created3343 behaves like process nuget upload3344 for user type developer3345 with object storage disabled3346 without a file from workhorse3347 behaves like returning response status3348 returns bad_request3349 with correct params3350 behaves like package workhorse uploads3351 without a workhorse header3352 logs an error3353 behaves like returning response status3354 returns forbidden3355 behaves like creates nuget package files3356 creates package files3357 behaves like a package tracking event3358 creates a gitlab tracking event push_symbol_package3359 with object storage enabled3360 and direct upload enabled3361 behaves like creates nuget package files3362 creates package files3363 with invalid remote_id: 1231233364 behaves like returning response status3365 returns forbidden3366 with invalid remote_id: ../../1231233367 behaves like returning response status3368 returns forbidden3369 with crafted package.path param3370 does not create a package file3371 behaves like returning response status3372 returns bad_request3373 and direct upload disabled3374 behaves like creates nuget package files3375 creates package files3376 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3377 behaves like rejects nuget packages access3378 for user type guest3379 behaves like returning response status3380 returns forbidden3381 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3382 behaves like rejects nuget packages access3383 for user type developer3384 has the correct response header3385 behaves like returning response status3386 returns unauthorized3387 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3388 behaves like rejects nuget packages access3389 for user type guest3390 has the correct response header3391 behaves like returning response status3392 returns unauthorized3393 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3394 behaves like rejects nuget packages access3395 for user type developer3396 behaves like returning response status3397 returns forbidden3398 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3399 behaves like rejects nuget packages access3400 for user type guest3401 behaves like returning response status3402 returns forbidden3403 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3404 behaves like rejects nuget packages access3405 for user type developer3406 has the correct response header3407 behaves like returning response status3408 returns unauthorized3409 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3410 behaves like rejects nuget packages access3411 for user type guest3412 has the correct response header3413 behaves like returning response status3414 returns unauthorized3415 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "process nuget upload", expected_status: :created3416 behaves like process nuget upload3417 for user type developer3418 with object storage disabled3419 without a file from workhorse3420 behaves like returning response status3421 returns bad_request3422 with correct params3423 behaves like package workhorse uploads3424 without a workhorse header3425 logs an error3426 behaves like returning response status3427 returns forbidden3428 behaves like creates nuget package files3429 creates package files3430 behaves like a package tracking event3431 creates a gitlab tracking event push_symbol_package3432 with object storage enabled3433 and direct upload enabled3434 behaves like creates nuget package files3435 creates package files3436 with invalid remote_id: 1231233437 behaves like returning response status3438 returns forbidden3439 with invalid remote_id: ../../1231233440 behaves like returning response status3441 returns forbidden3442 with crafted package.path param3443 does not create a package file3444 behaves like returning response status3445 returns bad_request3446 and direct upload disabled3447 behaves like creates nuget package files3448 creates package files3449 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3450 behaves like rejects nuget packages access3451 for user type guest3452 behaves like returning response status3453 returns forbidden3454 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3455 behaves like rejects nuget packages access3456 for user type developer3457 has the correct response header3458 behaves like returning response status3459 returns unauthorized3460 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3461 behaves like rejects nuget packages access3462 for user type guest3463 has the correct response header3464 behaves like returning response status3465 returns unauthorized3466 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3467 behaves like rejects nuget packages access3468 for user type developer3469 behaves like returning response status3470 returns not_found3471 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3472 behaves like rejects nuget packages access3473 for user type guest3474 behaves like returning response status3475 returns not_found3476 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3477 behaves like rejects nuget packages access3478 for user type developer3479 has the correct response header3480 behaves like returning response status3481 returns unauthorized3482 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, sent_through: :basic_auth, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3483 behaves like rejects nuget packages access3484 for user type guest3485 has the correct response header3486 behaves like returning response status3487 returns unauthorized3488 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "process nuget upload", expected_status: :created3489 behaves like process nuget upload3490 for user type developer3491 with object storage disabled3492 without a file from workhorse3493 behaves like returning response status3494 returns bad_request3495 with correct params3496 behaves like package workhorse uploads3497 without a workhorse header3498 logs an error3499 behaves like returning response status3500 returns forbidden3501 behaves like creates nuget package files3502 creates package files3503 behaves like a package tracking event3504 creates a gitlab tracking event push_symbol_package3505 with object storage enabled3506 and direct upload enabled3507 behaves like creates nuget package files3508 creates package files3509 with invalid remote_id: 1231233510 behaves like returning response status3511 returns forbidden3512 with invalid remote_id: ../../1231233513 behaves like returning response status3514 returns forbidden3515 with crafted package.path param3516 does not create a package file3517 behaves like returning response status3518 returns bad_request3519 and direct upload disabled3520 behaves like creates nuget package files3521 creates package files3522 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3523 behaves like rejects nuget packages access3524 for user type guest3525 behaves like returning response status3526 returns forbidden3527 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3528 behaves like rejects nuget packages access3529 for user type developer3530 has the correct response header3531 behaves like returning response status3532 returns unauthorized3533 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3534 behaves like rejects nuget packages access3535 for user type guest3536 has the correct response header3537 behaves like returning response status3538 returns unauthorized3539 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3540 behaves like rejects nuget packages access3541 for user type developer3542 behaves like returning response status3543 returns forbidden3544 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3545 behaves like rejects nuget packages access3546 for user type guest3547 behaves like returning response status3548 returns forbidden3549 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3550 behaves like rejects nuget packages access3551 for user type developer3552 has the correct response header3553 behaves like returning response status3554 returns unauthorized3555 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3556 behaves like rejects nuget packages access3557 for user type guest3558 has the correct response header3559 behaves like returning response status3560 returns unauthorized3561 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "process nuget upload", expected_status: :created3562 behaves like process nuget upload3563 for user type developer3564 with object storage disabled3565 without a file from workhorse3566 behaves like returning response status3567 returns bad_request3568 with correct params3569 behaves like package workhorse uploads3570 without a workhorse header3571 logs an error3572 behaves like returning response status3573 returns forbidden3574 behaves like creates nuget package files3575 creates package files3576 behaves like a package tracking event3577 creates a gitlab tracking event push_symbol_package3578 with object storage enabled3579 and direct upload enabled3580 behaves like creates nuget package files3581 creates package files3582 with invalid remote_id: 1231233583 behaves like returning response status3584 returns forbidden3585 with invalid remote_id: ../../1231233586 behaves like returning response status3587 returns forbidden3588 with crafted package.path param3589 does not create a package file3590 behaves like returning response status3591 returns bad_request3592 and direct upload disabled3593 behaves like creates nuget package files3594 creates package files3595 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3596 behaves like rejects nuget packages access3597 for user type guest3598 behaves like returning response status3599 returns forbidden3600 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3601 behaves like rejects nuget packages access3602 for user type developer3603 has the correct response header3604 behaves like returning response status3605 returns unauthorized3606 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3607 behaves like rejects nuget packages access3608 for user type guest3609 has the correct response header3610 behaves like returning response status3611 returns unauthorized3612 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3613 behaves like rejects nuget packages access3614 for user type developer3615 behaves like returning response status3616 returns not_found3617 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3618 behaves like rejects nuget packages access3619 for user type guest3620 behaves like returning response status3621 returns not_found3622 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3623 behaves like rejects nuget packages access3624 for user type developer3625 has the correct response header3626 behaves like returning response status3627 returns unauthorized3628 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, sent_through: :api_key, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3629 behaves like rejects nuget packages access3630 for user type guest3631 has the correct response header3632 behaves like returning response status3633 returns unauthorized3634 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, sent_through: nil, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3635 behaves like rejects nuget packages access3636 for user type anonymous3637 has the correct response header3638 behaves like returning response status3639 returns unauthorized3640 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, sent_through: nil, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3641 behaves like rejects nuget packages access3642 for user type anonymous3643 has the correct response header3644 behaves like returning response status3645 returns unauthorized3646 behaves like deploy token for package uploads3647 with deploy token headers3648 valid token3649 behaves like returning response status3650 returns success3651 invalid token3652 behaves like returning response status3653 returns unauthorized3654 behaves like job token for package uploads3655 with job token headers3656 valid token3657 creates a package with build info3658 behaves like returning response status3659 returns success3660 invalid token3661 behaves like returning response status3662 returns unauthorized3663 invalid user3664 behaves like returning response status3665 returns unauthorized3666 behaves like rejects nuget access with unknown target id3667 with an unknown target3668 as anonymous3669 behaves like rejects nuget packages access3670 for user type anonymous3671 has the correct response header3672 behaves like returning response status3673 returns unauthorized3674 as authenticated user3675 behaves like rejects nuget packages access3676 for user type anonymous3677 behaves like returning response status3678 returns not_found3679 behaves like rejects nuget access with invalid target id3680 with a target id with invalid integers3681 id: "/../", status: :bad_request3682 behaves like rejects nuget packages access3683 for user type anonymous3684 behaves like returning response status3685 returns bad_request3686 id: "", status: :not_found3687 behaves like rejects nuget packages access3688 for user type anonymous3689 behaves like returning response status3690 returns not_found3691 id: "%20", status: :bad_request3692 behaves like rejects nuget packages access3693 for user type anonymous3694 behaves like returning response status3695 returns bad_request3696 id: "%2e%2e%2f", status: :bad_request3697 behaves like rejects nuget packages access3698 for user type anonymous3699 behaves like returning response status3700 returns bad_request3701 id: "NaN", status: :bad_request3702 behaves like rejects nuget packages access3703 for user type anonymous3704 behaves like returning response status3705 returns bad_request3706 id: 1253, status: :unauthorized3707 behaves like rejects nuget packages access3708 for user type anonymous3709 has the correct response header3710 behaves like returning response status3711 returns unauthorized3712 id: "anything25", status: :bad_request3713 behaves like rejects nuget packages access3714 for user type anonymous3715 behaves like returning response status3716 returns bad_request3717 file size above maximum limit3718 behaves like returning response status3719 returns bad_request3720API::Repositories3721 GET /projects/:id/repository/tree3722 when unauthenticated and project is public3723 behaves like repository tree3724 returns the repository tree3725 when ref does not exist3726 behaves like 404 response3727 returns 4043728 when repository is disabled3729 behaves like 403 response3730 returns 4033731 with recursive=13732 returns recursive project paths tree3733 when repository is disabled3734 behaves like 403 response3735 returns 4033736 when ref does not exist3737 behaves like 404 response3738 returns 4043739 keyset pagination mode3740 paginates using keysets3741 with pagination=none3742 with recursive=13743 returns unpaginated recursive project paths tree3744 with recursive=03745 returns 4003746 when unauthenticated and project is private3747 behaves like 404 response3748 returns 4043749 when authenticated as a developer3750 behaves like repository tree3751 returns the repository tree3752 when ref does not exist3753 behaves like 404 response3754 returns 4043755 when repository is disabled3756 behaves like 403 response3757 returns 4033758 with recursive=13759 returns recursive project paths tree3760 when repository is disabled3761 behaves like 403 response3762 returns 4033763 when ref does not exist3764 behaves like 404 response3765 returns 4043766 keyset pagination mode3767 paginates using keysets3768 with pagination=none3769 with recursive=13770 returns unpaginated recursive project paths tree3771 with recursive=03772 returns 4003773 when authenticated as a guest3774 behaves like 403 response3775 returns 4033776 GET /projects/:id/repository/blobs/:sha3777 when unauthenticated and project is public3778 behaves like repository blob3779 returns blob attributes as json3780 when sha does not exist3781 behaves like 404 response3782 returns 4043783 when repository is disabled3784 behaves like 403 response3785 returns 4033786 when unauthenticated and project is private3787 behaves like 404 response3788 returns 4043789 when authenticated as a developer3790 behaves like repository blob3791 returns blob attributes as json3792 when sha does not exist3793 behaves like 404 response3794 returns 4043795 when repository is disabled3796 behaves like 403 response3797 returns 4033798 when authenticated as a guest3799 behaves like 403 response3800 returns 4033801 GET /projects/:id/repository/blobs/:sha/raw3802 when unauthenticated and project is public3803 behaves like repository raw blob3804 returns the repository raw blob3805 sets inline content disposition by default3806 defines an uncached header response3807 when sha does not exist3808 behaves like 404 response3809 returns 4043810 when repository is disabled3811 behaves like 403 response3812 returns 4033813 when unauthenticated and project is private3814 behaves like 404 response3815 returns 4043816 when authenticated as a developer3817 behaves like repository raw blob3818 returns the repository raw blob3819 sets inline content disposition by default3820 defines an uncached header response3821 when sha does not exist3822 behaves like 404 response3823 returns 4043824 when repository is disabled3825 behaves like 403 response3826 returns 4033827 when authenticated as a guest3828 behaves like 403 response3829 returns 4033830 GET /projects/:id/repository/archive(.:format)?:sha3831 when unauthenticated and project is public3832 behaves like repository archive3833 returns the repository archive3834 returns the repository archive archive.zip3835 returns the repository archive archive.tar.bz23836 returns only a part of the repository with path set3837 rate limits user when thresholds hit3838 when sha does not exist3839 behaves like 404 response3840 returns 4043841 behaves like hotlink interceptor3842 DDOS prevention3843 hotlinked as media3844 response_status: :ok, accept_header: "*/*"3845 renders the response3846 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3847 renders the response3848 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"3849 renders the response3850 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3851 renders the response3852 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"3853 renders the response3854 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"3855 renders the response3856 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"3857 renders the response3858 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"3859 renders the response3860 response_status: :not_acceptable, accept_header: "image/webp,*/*"3861 renders the response3862 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"3863 renders the response3864 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"3865 renders the response3866 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"3867 renders the response3868 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"3869 renders the response3870 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"3871 renders the response3872 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"3873 renders the response3874 response_status: :not_acceptable, accept_header: "text/css"3875 renders the response3876 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"3877 renders the response3878 response_status: :not_acceptable, accept_header: "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"3879 renders the response3880 hotlinked as a script3881 response_status: :ok, fetch_mode: "navigate"3882 renders the response3883 response_status: :ok, fetch_mode: "nested-navigate"3884 renders the response3885 response_status: :ok, fetch_mode: "same-origin"3886 renders the response3887 response_status: :not_acceptable, fetch_mode: "cors"3888 renders the response3889 response_status: :not_acceptable, fetch_mode: "no-cors"3890 renders the response3891 response_status: :not_acceptable, fetch_mode: "websocket"3892 renders the response3893 when unauthenticated and project path has dots3894 behaves like repository archive3895 returns the repository archive3896 returns the repository archive archive.zip3897 returns the repository archive archive.tar.bz23898 returns only a part of the repository with path set3899 rate limits user when thresholds hit3900 when sha does not exist3901 behaves like 404 response3902 returns 4043903 behaves like hotlink interceptor3904 DDOS prevention3905 hotlinked as media3906 response_status: :ok, accept_header: "*/*"3907 renders the response3908 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3909 renders the response3910 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"3911 renders the response3912 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3913 renders the response3914 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"3915 renders the response3916 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"3917 renders the response3918 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"3919 renders the response3920 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"3921 renders the response3922 response_status: :not_acceptable, accept_header: "image/webp,*/*"3923 renders the response3924 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"3925 renders the response3926 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"3927 renders the response3928 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"3929 renders the response3930 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"3931 renders the response3932 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"3933 renders the response3934 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"3935 renders the response3936 response_status: :not_acceptable, accept_header: "text/css"3937 renders the response3938 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"3939 renders the response3940 response_status: :not_acceptable, accept_header: "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"3941 renders the response3942 hotlinked as a script3943 response_status: :ok, fetch_mode: "navigate"3944 renders the response3945 response_status: :ok, fetch_mode: "nested-navigate"3946 renders the response3947 response_status: :ok, fetch_mode: "same-origin"3948 renders the response3949 response_status: :not_acceptable, fetch_mode: "cors"3950 renders the response3951 response_status: :not_acceptable, fetch_mode: "no-cors"3952 renders the response3953 response_status: :not_acceptable, fetch_mode: "websocket"3954 renders the response3955 when unauthenticated and project is private3956 behaves like 404 response3957 returns 4043958 when authenticated as a developer3959 behaves like repository archive3960 returns the repository archive3961 returns the repository archive archive.zip3962 returns the repository archive archive.tar.bz23963 returns only a part of the repository with path set3964 rate limits user when thresholds hit3965 when sha does not exist3966 behaves like 404 response3967 returns 4043968 behaves like hotlink interceptor3969 DDOS prevention3970 hotlinked as media3971 response_status: :ok, accept_header: "*/*"3972 renders the response3973 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3974 renders the response3975 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"3976 renders the response3977 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3978 renders the response3979 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"3980 renders the response3981 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"3982 renders the response3983 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"3984 renders the response3985 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"3986 renders the response3987 response_status: :not_acceptable, accept_header: "image/webp,*/*"3988 renders the response3989 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"3990 renders the response3991 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"3992 renders the response3993 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"3994 renders the response3995 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"3996 renders the response3997 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"3998 renders the response3999 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"4000 renders the response4001 response_status: :not_acceptable, accept_header: "text/css"4002 renders the response4003 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"4004 renders the response4005 response_status: :not_acceptable, accept_header: "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"4006 renders the response4007 hotlinked as a script4008 response_status: :ok, fetch_mode: "navigate"4009 renders the response4010 response_status: :ok, fetch_mode: "nested-navigate"4011 renders the response4012 response_status: :ok, fetch_mode: "same-origin"4013 renders the response4014 response_status: :not_acceptable, fetch_mode: "cors"4015 renders the response4016 response_status: :not_acceptable, fetch_mode: "no-cors"4017 renders the response4018 response_status: :not_acceptable, fetch_mode: "websocket"4019 renders the response4020 when authenticated as a guest4021 behaves like 403 response4022 returns 4034023 GET /projects/:id/repository/compare4024 when unauthenticated and project is public4025 behaves like repository compare4026 compares branches4027 compares branches with explicit merge-base mode4028 compares branches with explicit straight mode4029 compares tags4030 compares commits4031 compares commits in reverse order4032 compare commits between different projects with non-forked relation4033 compare commits between different projects4034 compares same refs4035 returns an empty string when the diff overflows4036 returns a 404 when from ref is unknown4037 returns a 404 when to ref is unknown4038 returns a newly created commit4039 when unauthenticated and project is private4040 behaves like 404 response4041 returns 4044042 when authenticated as a developer4043 behaves like repository compare4044 compares branches4045 compares branches with explicit merge-base mode4046 compares branches with explicit straight mode4047 compares tags4048 compares commits4049 compares commits in reverse order4050 compare commits between different projects with non-forked relation4051 compare commits between different projects4052 compares same refs4053 returns an empty string when the diff overflows4054 returns a 404 when from ref is unknown4055 returns a 404 when to ref is unknown4056 returns a newly created commit4057 when user does not have read access to the parent project4058 returns 403 error4059 when authenticated as a guest4060 behaves like 403 response4061 returns 4034062 GET /projects/:id/repository/contributors4063 when unauthenticated and project is public4064 behaves like repository contributors4065 returns valid data4066 using sorting4067 by commits desc4068 returns the repository contribuors sorted by commits desc4069 by name desc4070 returns the repository contribuors sorted by name asc case insensitive4071 when unauthenticated and project is private4072 behaves like 404 response4073 returns 4044074 when authenticated as a developer4075 behaves like repository contributors4076 returns valid data4077 using sorting4078 by commits desc4079 returns the repository contribuors sorted by commits desc4080 by name desc4081 returns the repository contribuors sorted by name asc case insensitive4082 when authenticated as a guest4083 behaves like 403 response4084 returns 4034085 Links header contains working URLs when no `order_by` nor `sort` is given4086 returns `Link` header that includes URLs with default value for `order_by` & `sort`4087 GET :id/repository/merge_base4088 when unauthenticated and project is public4089 behaves like merge base4090 returns the common ancestor4091 when unauthenticated and project is private4092 behaves like 404 response4093 returns 4044094 when authenticated as a developer4095 behaves like merge base4096 returns the common ancestor4097 when authenticated as a guest4098 behaves like 403 response4099 returns 4034100 when passing refs that do not exist4101 behaves like 400 response4102 returns 4004103 when passing refs that do not have a merge base4104 behaves like 404 response4105 returns 4044106 when not enough refs are passed4107 renders a bad request error4108 GET /projects/:id/repository/changelog4109 generates the changelog for a version4110 supports leaving out the from and to attribute4111 supports specified config file path4112 when previous tag version does not exist4113 behaves like 422 response4114 returns 4224115 POST /projects/:id/repository/changelog4116 generates the changelog for a version4117 supports leaving out the from and to attribute4118 produces an error when generating the changelog fails4119 support specified config file path4120API::PypiPackages4121 simple index API endpoint4122 GET /api/v4/groups/:id/-/packages/pypi/simple4123 behaves like pypi simple index API endpoint4124 with valid project4125 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4126 behaves like PyPI package index4127 for user type developer4128 returns the package index4129 behaves like returning response status4130 returns success4131 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4132 behaves like PyPI package index4133 for user type guest4134 returns the package index4135 behaves like returning response status4136 returns success4137 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4138 behaves like PyPI package index4139 for user type developer4140 returns the package index4141 behaves like returning response status4142 returns success4143 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4144 behaves like PyPI package index4145 for user type guest4146 returns the package index4147 behaves like returning response status4148 returns success4149 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4150 behaves like PyPI package index4151 for user type developer4152 returns the package index4153 behaves like returning response status4154 returns success4155 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4156 behaves like PyPI package index4157 for user type guest4158 returns the package index4159 behaves like returning response status4160 returns success4161 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4162 behaves like PyPI package index4163 for user type developer4164 returns the package index4165 behaves like returning response status4166 returns success4167 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4168 behaves like PyPI package index4169 for user type guest4170 returns the package index4171 behaves like returning response status4172 returns success4173 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4174 behaves like PyPI package index4175 for user type anonymous4176 returns the package index4177 behaves like returning response status4178 returns success4179 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4180 behaves like PyPI package index4181 for user type developer4182 returns the package index4183 behaves like returning response status4184 returns success4185 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4186 behaves like process PyPI api request4187 for user type guest4188 behaves like returning response status4189 returns forbidden4190 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4191 behaves like process PyPI api request4192 for user type developer4193 behaves like returning response status4194 returns unauthorized4195 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4196 behaves like process PyPI api request4197 for user type guest4198 behaves like returning response status4199 returns unauthorized4200 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4201 behaves like process PyPI api request4202 for user type developer4203 behaves like returning response status4204 returns not_found4205 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4206 behaves like process PyPI api request4207 for user type guest4208 behaves like returning response status4209 returns not_found4210 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4211 behaves like process PyPI api request4212 for user type developer4213 behaves like returning response status4214 returns unauthorized4215 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4216 behaves like process PyPI api request4217 for user type guest4218 behaves like returning response status4219 returns unauthorized4220 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4221 behaves like process PyPI api request4222 for user type anonymous4223 behaves like returning response status4224 returns unauthorized4225 behaves like rejects PyPI access with unknown group id4226 with an unknown project4227 behaves like unknown PyPI scope id4228 as anonymous4229 behaves like process PyPI api request4230 for user type anonymous4231 behaves like returning response status4232 returns not_found4233 as authenticated user4234 behaves like process PyPI api request4235 for user type anonymous4236 behaves like returning response status4237 returns not_found4238 deploy tokens4239 behaves like deploy token for package GET requests4240 with deploy token headers4241 valid token4242 behaves like returning response status4243 returns success4244 invalid token4245 behaves like returning response status4246 returns unauthorized4247 with group path as id4248 behaves like deploy token for package GET requests4249 with deploy token headers4250 valid token4251 behaves like returning response status4252 returns success4253 invalid token4254 behaves like returning response status4255 returns unauthorized4256 job token4257 behaves like job token for package GET requests4258 with job token headers4259 valid token4260 behaves like returning response status4261 returns success4262 invalid token4263 behaves like returning response status4264 returns unauthorized4265 invalid user4266 behaves like returning response status4267 returns unauthorized4268 behaves like a pypi user namespace endpoint4269 visibility_level: :public, user_role: :owner, expected_status: :not_found4270 behaves like returning response status4271 returns not_found4272 visibility_level: :private, user_role: :owner, expected_status: :not_found4273 behaves like returning response status4274 returns not_found4275 visibility_level: :public, user_role: :external, expected_status: :not_found4276 behaves like returning response status4277 returns not_found4278 visibility_level: :private, user_role: :external, expected_status: :not_found4279 behaves like returning response status4280 returns not_found4281 visibility_level: :public, user_role: :anonymous, expected_status: :not_found4282 behaves like returning response status4283 returns not_found4284 visibility_level: :private, user_role: :anonymous, expected_status: :not_found4285 behaves like returning response status4286 returns not_found4287 GET /api/v4/projects/:id/packages/pypi/simple4288 behaves like pypi simple index API endpoint4289 with valid project4290 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4291 behaves like PyPI package index4292 for user type developer4293 returns the package index4294 behaves like returning response status4295 returns success4296 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4297 behaves like PyPI package index4298 for user type guest4299 returns the package index4300 behaves like returning response status4301 returns success4302 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4303 behaves like PyPI package index4304 for user type developer4305 returns the package index4306 behaves like returning response status4307 returns success4308 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4309 behaves like PyPI package index4310 for user type guest4311 returns the package index4312 behaves like returning response status4313 returns success4314 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4315 behaves like PyPI package index4316 for user type developer4317 returns the package index4318 behaves like returning response status4319 returns success4320 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4321 behaves like PyPI package index4322 for user type guest4323 returns the package index4324 behaves like returning response status4325 returns success4326 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4327 behaves like PyPI package index4328 for user type developer4329 returns the package index4330 behaves like returning response status4331 returns success4332 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4333 behaves like PyPI package index4334 for user type guest4335 returns the package index4336 behaves like returning response status4337 returns success4338 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4339 behaves like PyPI package index4340 for user type anonymous4341 returns the package index4342 behaves like returning response status4343 returns success4344 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4345 behaves like PyPI package index4346 for user type developer4347 returns the package index4348 behaves like returning response status4349 returns success4350 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4351 behaves like process PyPI api request4352 for user type guest4353 behaves like returning response status4354 returns forbidden4355 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4356 behaves like process PyPI api request4357 for user type developer4358 behaves like returning response status4359 returns unauthorized4360 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4361 behaves like process PyPI api request4362 for user type guest4363 behaves like returning response status4364 returns unauthorized4365 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4366 behaves like process PyPI api request4367 for user type developer4368 behaves like returning response status4369 returns not_found4370 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4371 behaves like process PyPI api request4372 for user type guest4373 behaves like returning response status4374 returns not_found4375 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4376 behaves like process PyPI api request4377 for user type developer4378 behaves like returning response status4379 returns unauthorized4380 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4381 behaves like process PyPI api request4382 for user type guest4383 behaves like returning response status4384 returns unauthorized4385 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4386 behaves like process PyPI api request4387 for user type anonymous4388 behaves like returning response status4389 returns unauthorized4390 behaves like rejects PyPI access with unknown project id4391 with an unknown project4392 behaves like unknown PyPI scope id4393 as anonymous4394 behaves like process PyPI api request4395 for user type anonymous4396 behaves like returning response status4397 returns not_found4398 as authenticated user4399 behaves like process PyPI api request4400 for user type anonymous4401 behaves like returning response status4402 returns not_found4403 behaves like deploy token for package GET requests4404 with deploy token headers4405 valid token4406 behaves like returning response status4407 returns success4408 invalid token4409 behaves like returning response status4410 returns unauthorized4411 behaves like job token for package GET requests4412 with job token headers4413 valid token4414 behaves like returning response status4415 returns success4416 invalid token4417 behaves like returning response status4418 returns unauthorized4419 invalid user4420 behaves like returning response status4421 returns unauthorized4422 behaves like allow access for everyone with public package_registry_access_level4423 with private project but public access to package registry4424 as non-member user4425 behaves like returning response status4426 returns success4427 as anonymous4428 behaves like returning response status4429 returns success4430 with project path as id4431 behaves like deploy token for package GET requests4432 with deploy token headers4433 valid token4434 behaves like returning response status4435 returns success4436 invalid token4437 behaves like returning response status4438 returns unauthorized4439 simple package API endpoint4440 GET /api/v4/groups/:id/-/packages/pypi/simple/:package_name4441 behaves like pypi simple API endpoint4442 with valid project4443 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4444 behaves like PyPI package versions4445 for user type developer4446 returns the package listing4447 behaves like returning response status4448 returns success4449 behaves like a package tracking event4450 creates a gitlab tracking event list_package4451 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4452 behaves like PyPI package versions4453 for user type guest4454 returns the package listing4455 behaves like returning response status4456 returns success4457 behaves like a package tracking event4458 creates a gitlab tracking event list_package4459 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4460 behaves like PyPI package versions4461 for user type developer4462 returns the package listing4463 behaves like returning response status4464 returns success4465 behaves like a package tracking event4466 creates a gitlab tracking event list_package4467 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4468 behaves like PyPI package versions4469 for user type guest4470 returns the package listing4471 behaves like returning response status4472 returns success4473 behaves like a package tracking event4474 creates a gitlab tracking event list_package4475 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4476 behaves like PyPI package versions4477 for user type developer4478 returns the package listing4479 behaves like returning response status4480 returns success4481 behaves like a package tracking event4482 creates a gitlab tracking event list_package4483 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4484 behaves like PyPI package versions4485 for user type guest4486 returns the package listing4487 behaves like returning response status4488 returns success4489 behaves like a package tracking event4490 creates a gitlab tracking event list_package4491 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4492 behaves like PyPI package versions4493 for user type developer4494 returns the package listing4495 behaves like returning response status4496 returns success4497 behaves like a package tracking event4498 creates a gitlab tracking event list_package4499 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4500 behaves like PyPI package versions4501 for user type guest4502 returns the package listing4503 behaves like returning response status4504 returns success4505 behaves like a package tracking event4506 creates a gitlab tracking event list_package4507 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4508 behaves like PyPI package versions4509 for user type anonymous4510 returns the package listing4511 behaves like returning response status4512 returns success4513 behaves like a package tracking event4514 creates a gitlab tracking event list_package4515 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4516 behaves like PyPI package versions4517 for user type developer4518 returns the package listing4519 behaves like returning response status4520 returns success4521 behaves like a package tracking event4522 creates a gitlab tracking event list_package4523 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4524 behaves like process PyPI api request4525 for user type guest4526 behaves like returning response status4527 returns forbidden4528 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4529 behaves like process PyPI api request4530 for user type developer4531 behaves like returning response status4532 returns unauthorized4533 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4534 behaves like process PyPI api request4535 for user type guest4536 behaves like returning response status4537 returns unauthorized4538 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4539 behaves like process PyPI api request4540 for user type developer4541 behaves like returning response status4542 returns not_found4543 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4544 behaves like process PyPI api request4545 for user type guest4546 behaves like returning response status4547 returns not_found4548 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4549 behaves like process PyPI api request4550 for user type developer4551 behaves like returning response status4552 returns unauthorized4553 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4554 behaves like process PyPI api request4555 for user type guest4556 behaves like returning response status4557 returns unauthorized4558 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4559 behaves like process PyPI api request4560 for user type anonymous4561 behaves like returning response status4562 returns unauthorized4563 with a normalized package name4564 behaves like PyPI package versions4565 for user type developer4566 returns the package listing4567 behaves like returning response status4568 returns success4569 behaves like a package tracking event4570 creates a gitlab tracking event list_package4571 package request forward4572 forward: true, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success4573 behaves like PyPI package versions4574 for user type reporter4575 returns the package listing4576 behaves like returning response status4577 returns success4578 behaves like a package tracking event4579 creates a gitlab tracking event list_package4580 forward: true, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :redirect4581 behaves like process PyPI api request4582 for user type reporter4583 behaves like returning response status4584 returns redirect4585 forward: false, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success4586 behaves like PyPI package versions4587 for user type reporter4588 returns the package listing4589 behaves like returning response status4590 returns success4591 behaves like a package tracking event4592 creates a gitlab tracking event list_package4593 forward: false, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :not_found4594 behaves like process PyPI api request4595 for user type reporter4596 behaves like returning response status4597 returns not_found4598 behaves like rejects PyPI access with unknown group id4599 with an unknown project4600 behaves like unknown PyPI scope id4601 as anonymous4602 behaves like process PyPI api request4603 for user type anonymous4604 behaves like returning response status4605 returns not_found4606 as authenticated user4607 behaves like process PyPI api request4608 for user type anonymous4609 behaves like returning response status4610 returns not_found4611 deploy tokens4612 behaves like deploy token for package GET requests4613 with deploy token headers4614 valid token4615 behaves like returning response status4616 returns success4617 invalid token4618 behaves like returning response status4619 returns unauthorized4620 with group path as id4621 behaves like deploy token for package GET requests4622 with deploy token headers4623 valid token4624 behaves like returning response status4625 returns success4626 invalid token4627 behaves like returning response status4628 returns unauthorized4629 job token4630 behaves like job token for package GET requests4631 with job token headers4632 valid token4633 behaves like returning response status4634 returns success4635 invalid token4636 behaves like returning response status4637 returns unauthorized4638 invalid user4639 behaves like returning response status4640 returns unauthorized4641 behaves like a pypi user namespace endpoint4642 visibility_level: :public, user_role: :owner, expected_status: :not_found4643 behaves like returning response status4644 returns not_found4645 visibility_level: :private, user_role: :owner, expected_status: :not_found4646 behaves like returning response status4647 returns not_found4648 visibility_level: :public, user_role: :external, expected_status: :not_found4649 behaves like returning response status4650 returns not_found4651 visibility_level: :private, user_role: :external, expected_status: :not_found4652 behaves like returning response status4653 returns not_found4654 visibility_level: :public, user_role: :anonymous, expected_status: :not_found4655 behaves like returning response status4656 returns not_found4657 visibility_level: :private, user_role: :anonymous, expected_status: :not_found4658 behaves like returning response status4659 returns not_found4660 GET /api/v4/projects/:id/packages/pypi/simple/:package_name4661 behaves like pypi simple API endpoint4662 with valid project4663 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4664 behaves like PyPI package versions4665 for user type developer4666 returns the package listing4667 behaves like returning response status4668 returns success4669 behaves like a package tracking event4670 creates a gitlab tracking event list_package4671 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4672 behaves like PyPI package versions4673 for user type guest4674 returns the package listing4675 behaves like returning response status4676 returns success4677 behaves like a package tracking event4678 creates a gitlab tracking event list_package4679 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4680 behaves like PyPI package versions4681 for user type developer4682 returns the package listing4683 behaves like returning response status4684 returns success4685 behaves like a package tracking event4686 creates a gitlab tracking event list_package4687 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4688 behaves like PyPI package versions4689 for user type guest4690 returns the package listing4691 behaves like returning response status4692 returns success4693 behaves like a package tracking event4694 creates a gitlab tracking event list_package4695 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4696 behaves like PyPI package versions4697 for user type developer4698 returns the package listing4699 behaves like returning response status4700 returns success4701 behaves like a package tracking event4702 creates a gitlab tracking event list_package4703 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4704 behaves like PyPI package versions4705 for user type guest4706 returns the package listing4707 behaves like returning response status4708 returns success4709 behaves like a package tracking event4710 creates a gitlab tracking event list_package4711 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4712 behaves like PyPI package versions4713 for user type developer4714 returns the package listing4715 behaves like returning response status4716 returns success4717 behaves like a package tracking event4718 creates a gitlab tracking event list_package4719 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4720 behaves like PyPI package versions4721 for user type guest4722 returns the package listing4723 behaves like returning response status4724 returns success4725 behaves like a package tracking event4726 creates a gitlab tracking event list_package4727 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4728 behaves like PyPI package versions4729 for user type anonymous4730 returns the package listing4731 behaves like returning response status4732 returns success4733 behaves like a package tracking event4734 creates a gitlab tracking event list_package4735 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4736 behaves like PyPI package versions4737 for user type developer4738 returns the package listing4739 behaves like returning response status4740 returns success4741 behaves like a package tracking event4742 creates a gitlab tracking event list_package4743 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4744 behaves like process PyPI api request4745 for user type guest4746 behaves like returning response status4747 returns forbidden4748 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4749 behaves like process PyPI api request4750 for user type developer4751 behaves like returning response status4752 returns unauthorized4753 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4754 behaves like process PyPI api request4755 for user type guest4756 behaves like returning response status4757 returns unauthorized4758 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4759 behaves like process PyPI api request4760 for user type developer4761 behaves like returning response status4762 returns not_found4763 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4764 behaves like process PyPI api request4765 for user type guest4766 behaves like returning response status4767 returns not_found4768 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4769 behaves like process PyPI api request4770 for user type developer4771 behaves like returning response status4772 returns unauthorized4773 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4774 behaves like process PyPI api request4775 for user type guest4776 behaves like returning response status4777 returns unauthorized4778 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4779 behaves like process PyPI api request4780 for user type anonymous4781 behaves like returning response status4782 returns unauthorized4783 with a normalized package name4784 behaves like PyPI package versions4785 for user type developer4786 returns the package listing4787 behaves like returning response status4788 returns success4789 behaves like a package tracking event4790 creates a gitlab tracking event list_package4791 package request forward4792 forward: true, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success4793 behaves like PyPI package versions4794 for user type reporter4795 returns the package listing4796 behaves like returning response status4797 returns success4798 behaves like a package tracking event4799 creates a gitlab tracking event list_package4800 forward: true, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :redirect4801 behaves like process PyPI api request4802 for user type reporter4803 behaves like returning response status4804 returns redirect4805 forward: false, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success4806 behaves like PyPI package versions4807 for user type reporter4808 returns the package listing4809 behaves like returning response status4810 returns success4811 behaves like a package tracking event4812 creates a gitlab tracking event list_package4813 forward: false, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :not_found4814 behaves like process PyPI api request4815 for user type reporter4816 behaves like returning response status4817 returns not_found4818 behaves like rejects PyPI access with unknown project id4819 with an unknown project4820 behaves like unknown PyPI scope id4821 as anonymous4822 behaves like process PyPI api request4823 for user type anonymous4824 behaves like returning response status4825 returns not_found4826 as authenticated user4827 behaves like process PyPI api request4828 for user type anonymous4829 behaves like returning response status4830 returns not_found4831 behaves like deploy token for package GET requests4832 with deploy token headers4833 valid token4834 behaves like returning response status4835 returns success4836 invalid token4837 behaves like returning response status4838 returns unauthorized4839 behaves like job token for package GET requests4840 with job token headers4841 valid token4842 behaves like returning response status4843 returns success4844 invalid token4845 behaves like returning response status4846 returns unauthorized4847 invalid user4848 behaves like returning response status4849 returns unauthorized4850 behaves like allow access for everyone with public package_registry_access_level4851 with private project but public access to package registry4852 as non-member user4853 behaves like returning response status4854 returns success4855 as anonymous4856 behaves like returning response status4857 returns success4858 with project path as id4859 behaves like deploy token for package GET requests4860 with deploy token headers4861 valid token4862 behaves like returning response status4863 returns success4864 invalid token4865 behaves like returning response status4866 returns unauthorized4867 POST /api/v4/projects/:id/packages/pypi/authorize4868 with valid project4869 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :success4870 behaves like process PyPI api request4871 for user type developer4872 behaves like returning response status4873 returns success4874 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4875 behaves like process PyPI api request4876 for user type guest4877 behaves like returning response status4878 returns forbidden4879 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4880 behaves like process PyPI api request4881 for user type developer4882 behaves like returning response status4883 returns unauthorized4884 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4885 behaves like process PyPI api request4886 for user type guest4887 behaves like returning response status4888 returns unauthorized4889 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4890 behaves like process PyPI api request4891 for user type developer4892 behaves like returning response status4893 returns forbidden4894 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4895 behaves like process PyPI api request4896 for user type guest4897 behaves like returning response status4898 returns forbidden4899 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4900 behaves like process PyPI api request4901 for user type developer4902 behaves like returning response status4903 returns unauthorized4904 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4905 behaves like process PyPI api request4906 for user type guest4907 behaves like returning response status4908 returns unauthorized4909 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4910 behaves like process PyPI api request4911 for user type anonymous4912 behaves like returning response status4913 returns unauthorized4914 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :success4915 behaves like process PyPI api request4916 for user type developer4917 behaves like returning response status4918 returns success4919 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4920 behaves like process PyPI api request4921 for user type guest4922 behaves like returning response status4923 returns forbidden4924 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4925 behaves like process PyPI api request4926 for user type developer4927 behaves like returning response status4928 returns unauthorized4929 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4930 behaves like process PyPI api request4931 for user type guest4932 behaves like returning response status4933 returns unauthorized4934 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4935 behaves like process PyPI api request4936 for user type developer4937 behaves like returning response status4938 returns not_found4939 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4940 behaves like process PyPI api request4941 for user type guest4942 behaves like returning response status4943 returns not_found4944 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4945 behaves like process PyPI api request4946 for user type developer4947 behaves like returning response status4948 returns unauthorized4949 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4950 behaves like process PyPI api request4951 for user type guest4952 behaves like returning response status4953 returns unauthorized4954 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4955 behaves like process PyPI api request4956 for user type anonymous4957 behaves like returning response status4958 returns unauthorized4959 behaves like deploy token for package uploads4960 with deploy token headers4961 valid token4962 behaves like returning response status4963 returns success4964 invalid token4965 behaves like returning response status4966 returns unauthorized4967 behaves like job token for package uploads4968 with job token headers4969 valid token4970 behaves like returning response status4971 returns success4972 invalid token4973 behaves like returning response status4974 returns unauthorized4975 invalid user4976 behaves like returning response status4977 returns unauthorized4978 behaves like rejects PyPI access with unknown project id4979 with an unknown project4980 behaves like unknown PyPI scope id4981 as anonymous4982 behaves like process PyPI api request4983 for user type anonymous4984 behaves like returning response status4985 returns not_found4986 as authenticated user4987 behaves like process PyPI api request4988 for user type anonymous4989 behaves like returning response status4990 returns not_found4991 POST /api/v4/projects/:id/packages/pypi4992 with valid project4993 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package creation", expected_status: :created4994 behaves like PyPI package creation4995 for user type developer4996 behaves like creating pypi package files4997 creates package files4998 with a pre-existing file4999 rejects the duplicated file5000 with object storage disabled5001 without a file from workhorse5002 behaves like returning response status5003 returns bad_request5004 with correct params5005 behaves like package workhorse uploads5006 without a workhorse header5007 logs an error5008 behaves like returning response status5009 returns forbidden5010 behaves like creating pypi package files5011 creates package files5012 behaves like a package tracking event5013 creates a gitlab tracking event push_package5014 with object storage enabled5015 and direct upload enabled5016 behaves like creating pypi package files5017 creates package files5018 with invalid remote_id: 1231235019 behaves like returning response status5020 returns forbidden5021 with invalid remote_id: ../../1231235022 behaves like returning response status5023 returns forbidden5024 and direct upload disabled5025 behaves like creating pypi package files5026 creates package files5027 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5028 behaves like process PyPI api request5029 for user type guest5030 behaves like returning response status5031 returns forbidden5032 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5033 behaves like process PyPI api request5034 for user type developer5035 behaves like returning response status5036 returns unauthorized5037 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5038 behaves like process PyPI api request5039 for user type guest5040 behaves like returning response status5041 returns unauthorized5042 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5043 behaves like process PyPI api request5044 for user type developer5045 behaves like returning response status5046 returns forbidden5047 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5048 behaves like process PyPI api request5049 for user type guest5050 behaves like returning response status5051 returns forbidden5052 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5053 behaves like process PyPI api request5054 for user type developer5055 behaves like returning response status5056 returns unauthorized5057 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5058 behaves like process PyPI api request5059 for user type guest5060 behaves like returning response status5061 returns unauthorized5062 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5063 behaves like process PyPI api request5064 for user type anonymous5065 behaves like returning response status5066 returns unauthorized5067 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :created5068 behaves like process PyPI api request5069 for user type developer5070 behaves like returning response status5071 returns created5072 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5073 behaves like process PyPI api request5074 for user type guest5075 behaves like returning response status5076 returns forbidden5077 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5078 behaves like process PyPI api request5079 for user type developer5080 behaves like returning response status5081 returns unauthorized5082 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5083 behaves like process PyPI api request5084 for user type guest5085 behaves like returning response status5086 returns unauthorized5087 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found5088 behaves like process PyPI api request5089 for user type developer5090 behaves like returning response status5091 returns not_found5092 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found5093 behaves like process PyPI api request5094 for user type guest5095 behaves like returning response status5096 returns not_found5097 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5098 behaves like process PyPI api request5099 for user type developer5100 behaves like returning response status5101 returns unauthorized5102 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5103 behaves like process PyPI api request5104 for user type guest5105 behaves like returning response status5106 returns unauthorized5107 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5108 behaves like process PyPI api request5109 for user type anonymous5110 behaves like returning response status5111 returns unauthorized5112 without requires_python5113 behaves like PyPI package creation5114 for user type developer5115 behaves like creating pypi package files5116 creates package files5117 with a pre-existing file5118 rejects the duplicated file5119 with object storage disabled5120 without a file from workhorse5121 behaves like returning response status5122 returns bad_request5123 with correct params5124 behaves like package workhorse uploads5125 without a workhorse header5126 logs an error5127 behaves like returning response status5128 returns forbidden5129 behaves like creating pypi package files5130 creates package files5131 behaves like a package tracking event5132 creates a gitlab tracking event push_package5133 with object storage enabled5134 and direct upload enabled5135 behaves like creating pypi package files5136 creates package files5137 with invalid remote_id: 1231235138 behaves like returning response status5139 returns forbidden5140 with invalid remote_id: ../../1231235141 behaves like returning response status5142 returns forbidden5143 and direct upload disabled5144 behaves like creating pypi package files5145 creates package files5146 with FIPS mode5147 behaves like PyPI package creation5148 for user type developer5149 behaves like creating pypi package files5150 creates package files5151 with a pre-existing file5152 rejects the duplicated file5153 with object storage disabled5154 without a file from workhorse5155 behaves like returning response status5156 returns bad_request5157 with correct params5158 behaves like package workhorse uploads5159 without a workhorse header5160 logs an error5161 behaves like returning response status5162 returns forbidden5163 behaves like creating pypi package files5164 creates package files5165 behaves like a package tracking event5166 creates a gitlab tracking event push_package5167 with object storage enabled5168 and direct upload enabled5169 behaves like creating pypi package files5170 creates package files5171 with invalid remote_id: 1231235172 behaves like returning response status5173 returns forbidden5174 with invalid remote_id: ../../1231235175 behaves like returning response status5176 returns forbidden5177 and direct upload disabled5178 behaves like creating pypi package files5179 creates package files5180 without sha256_digest5181 behaves like PyPI package creation5182 for user type developer5183 behaves like creating pypi package files5184 creates package files5185 with a pre-existing file5186 rejects the duplicated file5187 with object storage disabled5188 without a file from workhorse5189 behaves like returning response status5190 returns bad_request5191 with correct params5192 behaves like package workhorse uploads5193 without a workhorse header5194 logs an error5195 behaves like returning response status5196 returns forbidden5197 behaves like creating pypi package files5198 creates package files5199 behaves like a package tracking event5200 creates a gitlab tracking event push_package5201 with object storage enabled5202 and direct upload enabled5203 behaves like creating pypi package files5204 creates package files5205 with invalid remote_id: 1231235206 behaves like returning response status5207 returns forbidden5208 with invalid remote_id: ../../1231235209 behaves like returning response status5210 returns forbidden5211 and direct upload disabled5212 behaves like creating pypi package files5213 creates package files5214 with FIPS mode5215 returns 422 and does not create a package5216 with required_python too big5217 behaves like process PyPI api request5218 for user type developer5219 behaves like returning response status5220 returns bad_request5221 with an invalid package5222 behaves like returning response status5223 returns bad_request5224 with an invalid sha2565225 behaves like returning response status5226 returns bad_request5227 behaves like deploy token for package uploads5228 with deploy token headers5229 valid token5230 behaves like returning response status5231 returns success5232 invalid token5233 behaves like returning response status5234 returns unauthorized5235 behaves like job token for package uploads5236 with job token headers5237 valid token5238 creates a package with build info5239 behaves like returning response status5240 returns success5241 invalid token5242 behaves like returning response status5243 returns unauthorized5244 invalid user5245 behaves like returning response status5246 returns unauthorized5247 behaves like rejects PyPI access with unknown project id5248 with an unknown project5249 behaves like unknown PyPI scope id5250 as anonymous5251 behaves like process PyPI api request5252 for user type anonymous5253 behaves like returning response status5254 returns not_found5255 as authenticated user5256 behaves like process PyPI api request5257 for user type anonymous5258 behaves like returning response status5259 returns not_found5260 file size above maximum limit5261 behaves like returning response status5262 returns bad_request5263 with existing package5264 does not create a new package5265 marked as pending_destruction5266 does create a new package5267 file download endpoint5268 GET /api/v4/groups/:id/-/packages/pypi/files/:sha256/*file_identifier5269 behaves like pypi file download endpoint5270 with valid project5271 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5272 behaves like PyPI package download5273 for user type developer5274 returns the package listing5275 behaves like returning response status5276 returns success5277 behaves like a package tracking event5278 creates a gitlab tracking event pull_package5279 behaves like bumping the package last downloaded at field5280DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5281from Rails 7.1 will use the default Ruby implementation.5282You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5283to enable the new behavior now.5284 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5285 bumps last_downloaded_at5286 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5287 behaves like PyPI package download5288 for user type guest5289 returns the package listing5290 behaves like returning response status5291 returns success5292 behaves like a package tracking event5293 creates a gitlab tracking event pull_package5294 behaves like bumping the package last downloaded at field5295DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5296from Rails 7.1 will use the default Ruby implementation.5297You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5298to enable the new behavior now.5299 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5300 bumps last_downloaded_at5301 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5302 behaves like PyPI package download5303 for user type developer5304 returns the package listing5305 behaves like returning response status5306 returns success5307 behaves like a package tracking event5308 creates a gitlab tracking event pull_package5309 behaves like bumping the package last downloaded at field5310DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5311from Rails 7.1 will use the default Ruby implementation.5312You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5313to enable the new behavior now.5314 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5315 bumps last_downloaded_at5316 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5317 behaves like PyPI package download5318 for user type guest5319 returns the package listing5320 behaves like returning response status5321 returns success5322 behaves like a package tracking event5323 creates a gitlab tracking event pull_package5324 behaves like bumping the package last downloaded at field5325DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5326from Rails 7.1 will use the default Ruby implementation.5327You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5328to enable the new behavior now.5329 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5330 bumps last_downloaded_at5331 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5332 behaves like PyPI package download5333 for user type developer5334 returns the package listing5335 behaves like returning response status5336 returns success5337 behaves like a package tracking event5338 creates a gitlab tracking event pull_package5339 behaves like bumping the package last downloaded at field5340DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5341from Rails 7.1 will use the default Ruby implementation.5342You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5343to enable the new behavior now.5344 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5345 bumps last_downloaded_at5346 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5347 behaves like PyPI package download5348 for user type guest5349 returns the package listing5350 behaves like returning response status5351 returns success5352 behaves like a package tracking event5353 creates a gitlab tracking event pull_package5354 behaves like bumping the package last downloaded at field5355DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5356from Rails 7.1 will use the default Ruby implementation.5357You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5358to enable the new behavior now.5359 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5360 bumps last_downloaded_at5361 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5362 behaves like PyPI package download5363 for user type developer5364 returns the package listing5365 behaves like returning response status5366 returns success5367 behaves like a package tracking event5368 creates a gitlab tracking event pull_package5369 behaves like bumping the package last downloaded at field5370DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5371from Rails 7.1 will use the default Ruby implementation.5372You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5373to enable the new behavior now.5374 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5375 bumps last_downloaded_at5376 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5377 behaves like PyPI package download5378 for user type guest5379 returns the package listing5380 behaves like returning response status5381 returns success5382 behaves like a package tracking event5383 creates a gitlab tracking event pull_package5384 behaves like bumping the package last downloaded at field5385DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5386from Rails 7.1 will use the default Ruby implementation.5387You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5388to enable the new behavior now.5389 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5390 bumps last_downloaded_at5391 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5392 behaves like PyPI package download5393 for user type anonymous5394 returns the package listing5395 behaves like returning response status5396 returns success5397 behaves like a package tracking event5398 creates a gitlab tracking event pull_package5399 behaves like bumping the package last downloaded at field5400DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5401from Rails 7.1 will use the default Ruby implementation.5402You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5403to enable the new behavior now.5404 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5405 bumps last_downloaded_at5406 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5407 behaves like PyPI package download5408 for user type developer5409 returns the package listing5410 behaves like returning response status5411 returns success5412 behaves like a package tracking event5413 creates a gitlab tracking event pull_package5414 behaves like bumping the package last downloaded at field5415DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5416from Rails 7.1 will use the default Ruby implementation.5417You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5418to enable the new behavior now.5419 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5420 bumps last_downloaded_at5421 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "rejected package download", expected_status: :forbidden5422 behaves like rejected package download5423 for user type guest5424 behaves like returning response status5425 returns forbidden5426 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5427 behaves like rejected package download5428 for user type developer5429 behaves like returning response status5430 returns unauthorized5431 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5432 behaves like rejected package download5433 for user type guest5434 behaves like returning response status5435 returns unauthorized5436 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :not_found5437 behaves like rejected package download5438 for user type developer5439 behaves like returning response status5440 returns not_found5441 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :not_found5442 behaves like rejected package download5443 for user type guest5444 behaves like returning response status5445 returns not_found5446 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5447 behaves like rejected package download5448 for user type developer5449 behaves like returning response status5450 returns unauthorized5451 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5452 behaves like rejected package download5453 for user type guest5454 behaves like returning response status5455 returns unauthorized5456 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :unauthorized5457 behaves like rejected package download5458 for user type anonymous5459 behaves like returning response status5460 returns unauthorized5461 with deploy token headers5462 valid token5463 behaves like returning response status5464 returns success5465 invalid token5466 behaves like returning response status5467 returns success5468 with job token headers5469 valid token5470 behaves like returning response status5471 returns success5472 invalid token5473 behaves like returning response status5474 returns unauthorized5475 invalid user5476 behaves like returning response status5477 returns success5478 behaves like rejects PyPI access with unknown group id5479 with an unknown project5480 behaves like unknown PyPI scope id5481 as anonymous5482 behaves like process PyPI api request5483 for user type anonymous5484 behaves like returning response status5485 returns not_found5486 as authenticated user5487 behaves like process PyPI api request5488 for user type anonymous5489 behaves like returning response status5490 returns not_found5491 behaves like a pypi user namespace endpoint5492 visibility_level: :public, user_role: :owner, expected_status: :not_found5493 behaves like returning response status5494 returns not_found5495 visibility_level: :private, user_role: :owner, expected_status: :not_found5496 behaves like returning response status5497 returns not_found5498 visibility_level: :public, user_role: :external, expected_status: :not_found5499 behaves like returning response status5500 returns not_found5501 visibility_level: :private, user_role: :external, expected_status: :not_found5502 behaves like returning response status5503 returns not_found5504 visibility_level: :public, user_role: :anonymous, expected_status: :not_found5505 behaves like returning response status5506 returns not_found5507 visibility_level: :private, user_role: :anonymous, expected_status: :not_found5508 behaves like returning response status5509 returns not_found5510 GET /api/v4/projects/:id/packages/pypi/files/:sha256/*file_identifier5511 behaves like pypi file download endpoint5512 with valid project5513 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5514 behaves like PyPI package download5515 for user type developer5516 returns the package listing5517 behaves like returning response status5518 returns success5519 behaves like a package tracking event5520 creates a gitlab tracking event pull_package5521 behaves like bumping the package last downloaded at field5522DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5523from Rails 7.1 will use the default Ruby implementation.5524You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5525to enable the new behavior now.5526 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5527 bumps last_downloaded_at5528 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5529 behaves like PyPI package download5530 for user type guest5531 returns the package listing5532 behaves like returning response status5533 returns success5534 behaves like a package tracking event5535 creates a gitlab tracking event pull_package5536 behaves like bumping the package last downloaded at field5537DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5538from Rails 7.1 will use the default Ruby implementation.5539You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5540to enable the new behavior now.5541 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5542 bumps last_downloaded_at5543 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5544 behaves like PyPI package download5545 for user type developer5546 returns the package listing5547 behaves like returning response status5548 returns success5549 behaves like a package tracking event5550 creates a gitlab tracking event pull_package5551 behaves like bumping the package last downloaded at field5552DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5553from Rails 7.1 will use the default Ruby implementation.5554You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5555to enable the new behavior now.5556 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5557 bumps last_downloaded_at5558 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5559 behaves like PyPI package download5560 for user type guest5561 returns the package listing5562 behaves like returning response status5563 returns success5564 behaves like a package tracking event5565 creates a gitlab tracking event pull_package5566 behaves like bumping the package last downloaded at field5567DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5568from Rails 7.1 will use the default Ruby implementation.5569You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5570to enable the new behavior now.5571 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5572 bumps last_downloaded_at5573 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5574 behaves like PyPI package download5575 for user type developer5576 returns the package listing5577 behaves like returning response status5578 returns success5579 behaves like a package tracking event5580 creates a gitlab tracking event pull_package5581 behaves like bumping the package last downloaded at field5582DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5583from Rails 7.1 will use the default Ruby implementation.5584You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5585to enable the new behavior now.5586 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5587 bumps last_downloaded_at5588 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5589 behaves like PyPI package download5590 for user type guest5591 returns the package listing5592 behaves like returning response status5593 returns success5594 behaves like a package tracking event5595 creates a gitlab tracking event pull_package5596 behaves like bumping the package last downloaded at field5597DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5598from Rails 7.1 will use the default Ruby implementation.5599You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5600to enable the new behavior now.5601 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5602 bumps last_downloaded_at5603 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5604 behaves like PyPI package download5605 for user type developer5606 returns the package listing5607 behaves like returning response status5608 returns success5609 behaves like a package tracking event5610 creates a gitlab tracking event pull_package5611 behaves like bumping the package last downloaded at field5612DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5613from Rails 7.1 will use the default Ruby implementation.5614You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5615to enable the new behavior now.5616 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5617 bumps last_downloaded_at5618 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5619 behaves like PyPI package download5620 for user type guest5621 returns the package listing5622 behaves like returning response status5623 returns success5624 behaves like a package tracking event5625 creates a gitlab tracking event pull_package5626 behaves like bumping the package last downloaded at field5627DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5628from Rails 7.1 will use the default Ruby implementation.5629You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5630to enable the new behavior now.5631 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5632 bumps last_downloaded_at5633 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5634 behaves like PyPI package download5635 for user type anonymous5636 returns the package listing5637 behaves like returning response status5638 returns success5639 behaves like a package tracking event5640 creates a gitlab tracking event pull_package5641 behaves like bumping the package last downloaded at field5642DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5643from Rails 7.1 will use the default Ruby implementation.5644You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5645to enable the new behavior now.5646 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5647 bumps last_downloaded_at5648 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5649 behaves like PyPI package download5650 for user type developer5651 returns the package listing5652 behaves like returning response status5653 returns success5654 behaves like a package tracking event5655 creates a gitlab tracking event pull_package5656 behaves like bumping the package last downloaded at field5657DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5658from Rails 7.1 will use the default Ruby implementation.5659You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5660to enable the new behavior now.5661 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5662 bumps last_downloaded_at5663 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "rejected package download", expected_status: :forbidden5664 behaves like rejected package download5665 for user type guest5666 behaves like returning response status5667 returns forbidden5668 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5669 behaves like rejected package download5670 for user type developer5671 behaves like returning response status5672 returns unauthorized5673 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5674 behaves like rejected package download5675 for user type guest5676 behaves like returning response status5677 returns unauthorized5678 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :not_found5679 behaves like rejected package download5680 for user type developer5681 behaves like returning response status5682 returns not_found5683 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :not_found5684 behaves like rejected package download5685 for user type guest5686 behaves like returning response status5687 returns not_found5688 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5689 behaves like rejected package download5690 for user type developer5691 behaves like returning response status5692 returns unauthorized5693 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5694 behaves like rejected package download5695 for user type guest5696 behaves like returning response status5697 returns unauthorized5698 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :unauthorized5699 behaves like rejected package download5700 for user type anonymous5701 behaves like returning response status5702 returns unauthorized5703 with deploy token headers5704 valid token5705 behaves like returning response status5706 returns success5707 invalid token5708 behaves like returning response status5709 returns success5710 with job token headers5711 valid token5712 behaves like returning response status5713 returns success5714 invalid token5715 behaves like returning response status5716 returns unauthorized5717 invalid user5718 behaves like returning response status5719 returns success5720 behaves like rejects PyPI access with unknown project id5721 with an unknown project5722 behaves like unknown PyPI scope id5723 as anonymous5724 behaves like process PyPI api request5725 for user type anonymous5726 behaves like returning response status5727 returns not_found5728 as authenticated user5729 behaves like process PyPI api request5730 for user type anonymous5731 behaves like returning response status5732 returns not_found5733 behaves like allow access for everyone with public package_registry_access_level5734 with private project but public access to package registry5735 as non-member user5736 behaves like returning response status5737 returns success5738 as anonymous5739 behaves like returning response status5740 returns success5741API::Search5742 GET /search5743 when user is not authenticated5744 returns 401 error5745 when DB timeouts occur from global searches5746 returns a 408 error if search with scope: issues times out5747 returns a 408 error if search with scope: merge_requests times out5748 returns a 408 error if search with scope: milestones times out5749 returns a 408 error if search with scope: projects times out5750 returns a 408 error if search with scope: snippet_titles times out5751 returns a 408 error if search with scope: users times out5752 when scope is not supported5753 returns 400 error5754 when scope is missing5755 returns 400 error5756 when there is a search error5757 returns 400 error5758 with correct params5759 increments the custom search sli error rate with error false if no error occurred5760 increments the custom search sli error rate with error true if an error occurred5761 sets global search information for logging5762 for projects scope5763 behaves like response is correct5764 is expected to respond with numeric status code ok5765 is expected to match response schema "public_api/v4/projects"5766 is expected to include limited pagination headers5767 is expected to eq 15768 behaves like pagination5769 returns a different result for each page5770 returns 1 result when per_page is 15771 returns 2 results when per_page is 25772 behaves like ping counters5773 increases usage ping searches counter5774 behaves like apdex recorded5775 increments the custom search sli apdex5776 for issues scope5777 without filtering by state5778 behaves like response is correct5779 is expected to respond with numeric status code ok5780 is expected to match response schema "public_api/v4/issues"5781 is expected to include limited pagination headers5782 is expected to eq 15783 behaves like ping counters5784 increases usage ping searches counter5785 behaves like apdex recorded5786 increments the custom search sli apdex5787 behaves like issues orderable by created_at5788 behaves like orderable by created_at5789 allows ordering results by created_at asc5790 allows ordering results by created_at desc5791 pagination5792 returns a different result for each page5793 returns 1 result when per_page is 15794 returns 2 results when per_page is 25795 filter by state5796 state: opened5797 respects scope filtering5798 state: closed5799 respects scope filtering5800 filter by confidentiality5801 confidential: true5802 respects confidentiality filtering5803 confidential: false5804 respects confidentiality filtering5805 for merge_requests scope5806 without filtering by state5807 behaves like response is correct5808 is expected to respond with numeric status code ok5809 is expected to match response schema "public_api/v4/merge_requests"5810 is expected to include limited pagination headers5811 is expected to eq 15812 behaves like ping counters5813 increases usage ping searches counter5814 behaves like apdex recorded5815 increments the custom search sli apdex5816 behaves like merge_requests orderable by created_at5817 behaves like orderable by created_at5818 allows ordering results by created_at asc5819 allows ordering results by created_at desc5820 pagination5821 returns a different result for each page5822 returns 1 result when per_page is 15823 returns 2 results when per_page is 25824 filter by state5825 state: opened5826 respects scope filtering5827 state: closed5828 respects scope filtering5829 for milestones scope5830 when user can read project milestones5831 behaves like response is correct5832 is expected to respond with numeric status code ok5833 is expected to match response schema "public_api/v4/milestones"5834 is expected to include limited pagination headers5835 is expected to eq 15836 behaves like ping counters5837 increases usage ping searches counter5838 behaves like apdex recorded5839 increments the custom search sli apdex5840 pagination5841 returns a different result for each page5842 returns 1 result when per_page is 15843 returns 2 results when per_page is 25844 when user cannot read project milestones5845 returns empty array5846 for users scope5847 behaves like response is correct5848 is expected to respond with numeric status code ok5849 is expected to match response schema "public_api/v4/user/basics"5850 is expected to include limited pagination headers5851 is expected to eq 15852 behaves like pagination5853 returns a different result for each page5854 returns 1 result when per_page is 15855 returns 2 results when per_page is 25856 behaves like ping counters5857 increases usage ping searches counter5858 behaves like apdex recorded5859 increments the custom search sli apdex5860 for snippet_titles scope5861 behaves like response is correct5862 is expected to respond with numeric status code ok5863 is expected to match response schema "public_api/v4/snippets"5864 is expected to include limited pagination headers5865 is expected to eq 15866 behaves like ping counters5867 increases usage ping searches counter5868 behaves like apdex recorded5869 increments the custom search sli apdex5870 pagination5871 returns a different result for each page5872 returns 1 result when per_page is 15873 returns 2 results when per_page is 25874 global search is disabled for the given scope5875 returns forbidden response5876 global search is enabled for the given scope5877 returns forbidden response5878 global snippet search is disabled5879 returns forbidden response5880 global snippet search is enabled5881 returns ok response5882 behaves like rate limited endpoint5883 when rate limiter enabled5884 logs request and declines it when endpoint called more than the threshold5885 when rate limiter is disabled5886 does not log request and does not block the request5887 GET /groups/:id/search5888 when user is not authenticated5889 returns 401 error5890 when scope is not supported5891 returns 400 error5892 when scope is missing5893 returns 400 error5894 when group does not exist5895 returns 404 error5896 when user does can not see the group5897 returns 404 error5898 with correct params5899 for projects scope5900 behaves like response is correct5901 is expected to respond with numeric status code ok5902 is expected to match response schema "public_api/v4/projects"5903 is expected to include limited pagination headers5904 is expected to eq 15905 behaves like pagination5906 returns a different result for each page5907 returns 1 result when per_page is 15908 returns 2 results when per_page is 25909 behaves like ping counters5910 increases usage ping searches counter5911 behaves like apdex recorded5912 increments the custom search sli apdex5913 for issues scope5914 behaves like response is correct5915 is expected to respond with numeric status code ok5916 is expected to match response schema "public_api/v4/issues"5917 is expected to include limited pagination headers5918 is expected to eq 15919 behaves like ping counters5920 increases usage ping searches counter5921 behaves like apdex recorded5922 increments the custom search sli apdex5923 behaves like issues orderable by created_at5924 behaves like orderable by created_at5925 allows ordering results by created_at asc5926 allows ordering results by created_at desc5927 pagination5928 returns a different result for each page5929 returns 1 result when per_page is 15930 returns 2 results when per_page is 25931 for merge_requests scope5932 behaves like response is correct5933 is expected to respond with numeric status code ok5934 is expected to match response schema "public_api/v4/merge_requests"5935 is expected to include limited pagination headers5936 is expected to eq 15937 behaves like ping counters5938 increases usage ping searches counter5939 behaves like apdex recorded5940 increments the custom search sli apdex5941 behaves like merge_requests orderable by created_at5942 behaves like orderable by created_at5943 allows ordering results by created_at asc5944 allows ordering results by created_at desc5945 pagination5946 returns a different result for each page5947 returns 1 result when per_page is 15948 returns 2 results when per_page is 25949 for milestones scope5950 behaves like response is correct5951 is expected to respond with numeric status code ok5952 is expected to match response schema "public_api/v4/milestones"5953 is expected to include limited pagination headers5954 is expected to eq 15955 behaves like ping counters5956 increases usage ping searches counter5957 behaves like apdex recorded5958 increments the custom search sli apdex5959 pagination5960 returns a different result for each page5961 returns 1 result when per_page is 15962 returns 2 results when per_page is 25963 for milestones scope with group path as id5964 behaves like response is correct5965 is expected to respond with numeric status code ok5966 is expected to match response schema "public_api/v4/milestones"5967 is expected to include limited pagination headers5968 is expected to eq 15969 for users scope5970 behaves like response is correct5971 is expected to respond with numeric status code ok5972 is expected to match response schema "public_api/v4/user/basics"5973 is expected to include limited pagination headers5974 is expected to eq 15975 behaves like ping counters5976 increases usage ping searches counter5977 behaves like apdex recorded5978 increments the custom search sli apdex5979 pagination5980 returns a different result for each page5981 returns 1 result when per_page is 15982 returns 2 results when per_page is 25983 for users scope with group path as id5984 behaves like response is correct5985 is expected to respond with numeric status code ok5986 is expected to match response schema "public_api/v4/user/basics"5987 is expected to include limited pagination headers5988 is expected to eq 15989 behaves like rate limited endpoint5990 when rate limiter enabled5991 logs request and declines it when endpoint called more than the threshold5992 when rate limiter is disabled5993 does not log request and does not block the request5994 GET /projects/:id/search5995 when user is not authenticated5996 returns 401 error5997 when scope is not supported5998 returns 400 error5999 when scope is missing6000 returns 400 error6001 when project does not exist6002 returns 404 error6003 when user can not see the project6004 returns 404 error6005 with correct params6006 for issues scope6007 behaves like response is correct6008 is expected to respond with numeric status code ok6009 is expected to match response schema "public_api/v4/issues"6010 is expected to include limited pagination headers6011 is expected to eq 16012 behaves like ping counters6013 increases usage ping searches counter6014 behaves like issues orderable by created_at6015 behaves like orderable by created_at6016 allows ordering results by created_at asc6017 allows ordering results by created_at desc6018 behaves like apdex recorded6019 increments the custom search sli apdex6020 pagination6021 returns a different result for each page6022 returns 1 result when per_page is 16023 returns 2 results when per_page is 26024 when requesting basic search6025 passes the parameter to search service6026 for merge_requests scope6027 behaves like response is correct6028 is expected to respond with numeric status code ok6029 is expected to match response schema "public_api/v4/merge_requests"6030 is expected to include limited pagination headers6031 is expected to eq 16032 behaves like ping counters6033 increases usage ping searches counter6034 behaves like merge_requests orderable by created_at6035 behaves like orderable by created_at6036 allows ordering results by created_at asc6037 allows ordering results by created_at desc6038 behaves like apdex recorded6039 increments the custom search sli apdex6040 pagination6041 returns a different result for each page6042 returns 1 result when per_page is 16043 returns 2 results when per_page is 26044 for milestones scope6045 when user can read milestones6046 behaves like response is correct6047 is expected to respond with numeric status code ok6048 is expected to match response schema "public_api/v4/milestones"6049 is expected to include limited pagination headers6050 is expected to eq 16051 behaves like ping counters6052 increases usage ping searches counter6053 behaves like apdex recorded6054 increments the custom search sli apdex6055 pagination6056 returns a different result for each page6057 returns 1 result when per_page is 16058 returns 2 results when per_page is 26059 when user cannot read project milestones6060 returns empty array6061 for users scope6062 behaves like response is correct6063 is expected to respond with numeric status code ok6064 is expected to match response schema "public_api/v4/user/basics"6065 is expected to include limited pagination headers6066 is expected to eq 16067 behaves like ping counters6068 increases usage ping searches counter6069 behaves like apdex recorded6070 increments the custom search sli apdex6071 pagination6072 returns a different result for each page6073 returns 1 result when per_page is 16074 returns 2 results when per_page is 26075 for notes scope6076 behaves like response is correct6077 is expected to respond with numeric status code ok6078 is expected to match response schema "public_api/v4/notes"6079 is expected to include limited pagination headers6080 is expected to eq 16081 behaves like ping counters6082 increases usage ping searches counter6083 behaves like apdex recorded6084 increments the custom search sli apdex6085 pagination6086 returns a different result for each page6087 returns 1 result when per_page is 16088 returns 2 results when per_page is 26089 for wiki_blobs scope6090 behaves like response is correct6091 is expected to respond with numeric status code ok6092 is expected to match response schema "public_api/v4/blobs"6093 is expected to include limited pagination headers6094 is expected to eq 16095 behaves like ping counters6096 increases usage ping searches counter6097 behaves like apdex recorded6098 increments the custom search sli apdex6099 pagination6100 returns a different result for each page6101 returns 1 result when per_page is 16102 returns 2 results when per_page is 26103 for commits scope6104 behaves like response is correct6105 is expected to respond with numeric status code ok6106 is expected to match response schema "public_api/v4/commits_details"6107 is expected to include limited pagination headers6108 is expected to eq 16109 behaves like pagination6110 returns a different result for each page6111 returns 1 result when per_page is 16112 returns 2 results when per_page is 26113 behaves like ping counters6114 increases usage ping searches counter6115 behaves like apdex recorded6116 increments the custom search sli apdex6117 pipeline visibility6118 with non public pipeline6119 user is project member with reporter role or above6120 behaves like pipeline information visible6121 contains status and last_pipeline6122 user is project member with guest role6123 behaves like pipeline information not visible6124 does not contain status and last_pipeline6125 user is not project member6126 behaves like pipeline information not visible6127 does not contain status and last_pipeline6128 with public pipeline6129 user is project member with reporter role or above6130 behaves like pipeline information visible6131 contains status and last_pipeline6132 user is project member with guest role6133 behaves like pipeline information visible6134 contains status and last_pipeline6135 user is not project member6136 behaves like pipeline information visible6137 contains status and last_pipeline6138 when CI/CD is set to only project members6139 behaves like pipeline information not visible6140 does not contain status and last_pipeline6141 for commits scope with project path as id6142 behaves like response is correct6143 is expected to respond with numeric status code ok6144 is expected to match response schema "public_api/v4/commits_details"6145 is expected to include limited pagination headers6146 is expected to eq 16147 behaves like apdex recorded6148 increments the custom search sli apdex6149 for blobs scope6150 behaves like response is correct6151 is expected to respond with numeric status code ok6152 is expected to match response schema "public_api/v4/blobs"6153 is expected to include limited pagination headers6154 is expected to eq 26155 behaves like pagination6156 returns a different result for each page6157 returns 1 result when per_page is 16158 returns 2 results when per_page is 26159 behaves like ping counters6160 increases usage ping searches counter6161 behaves like apdex recorded6162 increments the custom search sli apdex6163 filters6164 by filename6165 by path6166 by extension6167 by ref6168 behaves like rate limited endpoint6169 when rate limiter enabled6170 logs request and declines it when endpoint called more than the threshold6171 when rate limiter is disabled6172 does not log request and does not block the request6173API::GroupClusters6174 GET /groups/:id/clusters6175 feature flag is disabled6176 responds with :not_found6177 non-authorized user6178 responds with 4036179 authorized user6180 responds with 2006181 includes pagination headers6182 only include authorized clusters6183 GET /groups/:id/clusters/:cluster_id6184 feature flag is disabled6185 responds with :not_found6186 non-authorized user6187 responds with 4036188 authorized user6189 returns specific cluster6190 returns cluster information6191 returns group information6192 returns kubernetes platform information6193 returns user information6194 returns GCP provider information6195 when cluster has no provider6196 does not include GCP provider info6197 with non-existing cluster6198 returns 4046199 POST /groups/:id/clusters/user6200 feature flag is disabled6201 responds with :not_found6202 non-authorized user6203 responds with 4036204 authorized user6205 with valid params6206 responds with 2016207 creates a new Cluster::Cluster6208 when user does not indicate authorization type6209 defaults to RBAC6210 when user sets authorization type as ABAC6211 creates an ABAC cluster6212 when namespace_per_environment is not set6213 defaults to true6214 current user does not have access to management_project_id6215 responds with 4006216 returns validation errors6217 with invalid params6218 responds with 4006219 does not create a new Clusters::Cluster6220 returns validation errors6221 non-authorized user6222 responds with 4036223 PUT /groups/:id/clusters/:cluster_id6224 when another cluster exists6225 responds with 2016226 allows multiple clusters to be associated to group6227 PUT /groups/:id/clusters/:cluster_id6228 feature flag is disabled6229 responds with :not_found6230 non-authorized user6231 responds with 4036232 authorized user6233 with valid params6234 responds with 2006235 updates cluster attributes6236 with invalid params6237 responds with 4006238 does not update cluster attributes6239 returns validation errors6240 current user does not have access to management_project_id6241 responds with 4006242 returns validation errors6243 with a GCP cluster6244 when user tries to change GCP specific fields6245 responds with 4006246 returns validation error6247 when user tries to change domain6248 responds with 2006249 with an user cluster6250 responds with 2006251 updates platform kubernetes attributes6252 with a cluster that does not belong to user6253 responds with 4046254 DELETE /groups/:id/clusters/:cluster_id6255 feature flag is disabled6256 responds with :not_found6257 non-authorized user6258 responds with 4036259 authorized user6260 responds with 2046261 deletes the cluster6262 with a cluster that does not belong to user6263 responds with 4046264API::Wikis6265 GET /projects/:id/wikis6266 when wiki is disabled6267 when user is guest6268 returns 404 Project Not Found6269 when user is developer6270 returns 403 Forbidden6271 when user is maintainer6272 returns 403 Forbidden6273 when wiki is available only for team members6274 when user is guest6275 returns 404 Project Not Found6276 when user is developer6277 return the empty list of wiki pages6278 when wiki has pages6279 returns the list of wiki pages without content6280 returns the list of wiki pages with content6281 when user is maintainer6282 return the empty list of wiki pages6283 when wiki has pages6284 returns the list of wiki pages without content6285 returns the list of wiki pages with content6286 when wiki is available for everyone with access6287 when user is guest6288 returns 404 Project Not Found6289 when user is developer6290 return the empty list of wiki pages6291 when wiki has pages6292 returns the list of wiki pages without content6293 returns the list of wiki pages with content6294 when user is maintainer6295 return the empty list of wiki pages6296 when wiki has pages6297 returns the list of wiki pages without content6298 returns the list of wiki pages with content6299 GET /projects/:id/wikis/:slug6300 when wiki is disabled6301 when user is guest6302 returns 404 Project Not Found6303 when user is developer6304 returns 403 Forbidden6305 when user is maintainer6306 returns 403 Forbidden6307 when wiki is available only for team members6308 when user is guest6309 returns 404 Project Not Found6310 when user is developer6311 behaves like returns wiki page6312 is expected to eq "Page 5"6313 when render param is false6314 behaves like returns wiki page6315 is expected to eq "Page 6"6316 when render param is true6317 behaves like returns wiki page6318 is expected to eq "Page 7"6319 when wiki page has versions6320 when version param is not present6321 retrieves the last version6322 when version param is set6323 retrieves the specific page version6324 when version param is not valid or inexistent6325 behaves like wiki API 404 Wiki Page Not Found6326 returns 404 Wiki Page Not Found6327 when page is not existing6328 returns 404 Wiki Page Not Found6329 when user is maintainer6330 behaves like returns wiki page6331 is expected to eq "Page 11"6332 when render param is false6333 behaves like returns wiki page6334 is expected to eq "Page 12"6335 when render param is true6336 behaves like returns wiki page6337 is expected to eq "Page 13"6338 when wiki page has versions6339 when version param is not present6340 retrieves the last version6341 when version param is set6342 retrieves the specific page version6343 when version param is not valid or inexistent6344 behaves like wiki API 404 Wiki Page Not Found6345 returns 404 Wiki Page Not Found6346 when page is not existing6347 returns 404 Wiki Page Not Found6348 when wiki is available for everyone with access6349 when user is guest6350 returns 404 Project Not Found6351 when user is developer6352 behaves like returns wiki page6353 is expected to eq "Page 18"6354 when render param is false6355 behaves like returns wiki page6356 is expected to eq "Page 19"6357 when render param is true6358 behaves like returns wiki page6359 is expected to eq "Page 20"6360 when wiki page has versions6361 when version param is not present6362 retrieves the last version6363 when version param is set6364 retrieves the specific page version6365 when version param is not valid or inexistent6366 behaves like wiki API 404 Wiki Page Not Found6367 returns 404 Wiki Page Not Found6368 when page is not existing6369 returns 404 Wiki Page Not Found6370 when user is maintainer6371 behaves like returns wiki page6372 is expected to eq "Page 24"6373 when render param is false6374 behaves like returns wiki page6375 is expected to eq "Page 25"6376 when render param is true6377 behaves like returns wiki page6378 is expected to eq "Page 26"6379 when wiki page has versions6380 when version param is not present6381 retrieves the last version6382 when version param is set6383 retrieves the specific page version6384 when version param is not valid or inexistent6385 behaves like wiki API 404 Wiki Page Not Found6386 returns 404 Wiki Page Not Found6387 when page is not existing6388 returns 404 Wiki Page Not Found6389 when content contains a reference6390 expands the reference in the content6391 POST /projects/:id/wikis6392 when wiki is disabled6393 when user is guest6394 returns 404 Project Not Found6395 when user is developer6396 returns 403 Forbidden6397 when user is maintainer6398 returns 403 Forbidden6399 when wiki is available only for team members6400 when user is guest6401 returns 404 Project Not Found6402 when user is developer6403 creates the wiki page6404 responds with validation error on empty title6405 responds with validation error on empty content6406 when user is maintainer6407 creates the wiki page6408 responds with validation error on empty title6409 responds with validation error on empty content6410 when wiki is available for everyone with access6411 when user is guest6412 returns 404 Project Not Found6413 when user is developer6414 creates the wiki page6415 responds with validation error on empty title6416 responds with validation error on empty content6417 when user is maintainer6418 creates the wiki page6419 responds with validation error on empty title6420 responds with validation error on empty content6421 PUT /projects/:id/wikis/:slug6422 when wiki is disabled6423 when user is guest6424 returns 404 Project Not Found6425 when user is developer6426 returns 403 Forbidden6427 when user is maintainer6428 returns 403 Forbidden6429 when wiki is available only for team members6430 when user is guest6431 returns 404 Project Not Found6432 when user is developer6433 updates the wiki page6434 updates with wiki with missing title6435 updates with wiki with missing content6436 updates with wiki with missing format6437 when page is not existing6438 returns 404 Wiki Page Not Found6439 when user is maintainer6440 updates the wiki page6441 updates with wiki with missing title6442 updates with wiki with missing content6443 updates with wiki with missing format6444 when page is not existing6445 returns 404 Wiki Page Not Found6446 when wiki is available for everyone with access6447 when user is guest6448 returns 404 Project Not Found6449 when user is developer6450 updates the wiki page6451 updates with wiki with missing title6452 updates with wiki with missing content6453 updates with wiki with missing format6454 when page is not existing6455 returns 404 Wiki Page Not Found6456 when user is maintainer6457 updates the wiki page6458 updates with wiki with missing title6459 updates with wiki with missing content6460 updates with wiki with missing format6461 when page is not existing6462 returns 404 Wiki Page Not Found6463 when wiki belongs to a group project6464 updates the wiki page6465 updates with wiki with missing title6466 updates with wiki with missing content6467 updates with wiki with missing format6468 DELETE /projects/:id/wikis/:slug6469 when wiki is disabled6470 when user is guest6471 returns 404 Project Not Found6472 when user is developer6473 returns 403 Forbidden6474 when user is maintainer6475 returns 403 Forbidden6476 when wiki is available only for team members6477 when user is guest6478 returns 404 Project Not Found6479 when user is developer6480 returns 403 Forbidden6481 when user is maintainer6482 returns 204 No Content6483 when wiki is available for everyone with access6484 when user is guest6485 returns 404 Project Not Found6486 when user is developer6487 returns 403 Forbidden6488 when user is maintainer6489 returns 204 No Content6490 when page is not existing6491 returns 404 Wiki Page Not Found6492 when there is an error deleting the page6493 returns 4226494 when wiki belongs to a group project6495 returns 204 No Content6496 POST /projects/:id/wikis/attachments6497 when wiki is disabled6498 when user is guest6499 returns 404 Project Not Found6500 when user is developer6501 returns 403 Forbidden6502 when user is maintainer6503 returns 403 Forbidden6504 when wiki is available only for team members6505 when user is guest6506 returns 404 Project Not Found6507 when user is developer6508 pushes attachment to the wiki repository6509 responds with validation error on empty file6510 responds with validation error on invalid temp file6511 is backward compatible with regular multipart uploads6512 when user is maintainer6513 pushes attachment to the wiki repository6514 responds with validation error on empty file6515 responds with validation error on invalid temp file6516 is backward compatible with regular multipart uploads6517 when wiki is available for everyone with access6518 when user is guest6519 returns 404 Project Not Found6520 when user is developer6521 pushes attachment to the wiki repository6522 responds with validation error on empty file6523 responds with validation error on invalid temp file6524 is backward compatible with regular multipart uploads6525 when user is maintainer6526 pushes attachment to the wiki repository6527 responds with validation error on empty file6528 responds with validation error on invalid temp file6529 is backward compatible with regular multipart uploads6530Groups::MilestonesController6531 behaves like milestone tabs6532 #issues6533 as html6534 redirects to milestone#show6535 as json6536 renders the issues tab template to a string6537 #merge_requests6538 as html6539 redirects to milestone#show6540 as json6541 renders the merge requests tab template to a string6542 #participants6543 as html6544 redirects to milestone#show6545 as json6546 renders the participants tab template to a string6547 #labels6548 as html6549 redirects to milestone#show6550 as json6551 renders the labels tab template to a string6552 #index6553 as HTML6554 shows group milestones page6555 searches legacy milestones by title when search_title is given6556 searches group milestones by title when search_title is given6557 when anonymous user6558 shows group milestones page6559 when issues and merge requests are disabled in public project6560 when anonymous user6561 behaves like milestone not accessible6562 does not return milestone6563 when non project or group member user6564 behaves like milestone not accessible6565 does not return milestone6566 when group member user6567 returns the milestone6568 when subgroup milestones are present6569 shows subgroup milestones that user has access to6570 when user has no access to subgroups6571 does not show subgroup milestones6572 as JSON6573 lists project and group milestones6574 with subgroup milestones6575 lists descendants group milestones6576 for a subgroup6577 includes ancestor group milestones6578 external authorization6579 behaves like disabled when using an external authorization service6580 works when the feature is not enabled6581 renders a 404 with a message when the feature is enabled6582 #show6583 renders for a group milestone6584 #create6585 creates group milestone with Chinese title6586 #update6587 updates group milestone6588 handles ActiveRecord::StaleObjectError6589 with format :json6590 responds :no_content (204) without content body and updates milestone sucessfully6591 responds unprocessable_entity (422) with error data6592 handles ActiveRecord::StaleObjectError6593 #destroy6594 removes milestone6595 #ensure_canonical_path6596 for a GET request6597 when requesting the canonical path6598 non-show path6599 with exactly matching casing6600 does not redirect6601 with different casing6602 redirects to the correct casing6603 show path6604 with exactly matching casing6605 does not redirect6606 with different casing6607 redirects to the correct casing6608 when requesting a redirected path6609 redirects to the canonical path6610 with an AJAX request6611 redirects to the canonical path but does not set flash message6612 with JSON format6613 redirects to the canonical path but does not set flash message6614 when the old group path is a substring of the scheme or host6615 does not modify the requested host6616 when the old group path is substring of groups6617 does not modify the /groups part of the path6618 when the old group path is substring of groups plus the new path6619 does not modify the /groups part of the path6620 for a non-GET request6621 when requesting the canonical path with different casing6622 does not 4046623 does not redirect to the correct casing6624 when requesting a redirected path6625 returns not found6626Admin::ClustersController6627 GET #index6628 functionality6629 when instance has one or more clusters6630 lists available clusters and displays html6631 lists available clusters and renders json serializer6632 sets the polling interval header for json requests6633 feature flag is disabled6634 responds with :not_found6635 when page is specified6636 redirects to the page6637 displays cluster list for associated page6638 when instance does not have a cluster6639 returns an empty state page6640 security6641 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2006642 is expected to be denied for user. Expected: 401,404 Got: 4046643 is expected to be denied for external. Expected: 401,404 Got: 4046644 POST #create_user6645 feature flag is disabled6646 responds with :not_found6647 functionality6648 when creates a cluster6649 creates a new cluster6650 when creates a RBAC-enabled cluster6651 creates a new cluster6652 security6653 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3026654 is expected to be denied for user. Expected: 401,404 Got: 4046655 is expected to be denied for external. Expected: 401,404 Got: 4046656 DELETE clear cluster cache6657 deletes the namespaces associated with the cluster6658 feature flag is disabled6659 responds with :not_found6660 security6661 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3026662 is expected to be denied for user. Expected: 401,404 Got: 4046663 is expected to be denied for external. Expected: 401,404 Got: 4046664 GET #cluster_status6665 feature flag is disabled6666 responds with :not_found6667 functionality6668 responds with matching schema6669 security6670 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2006671 is expected to be denied for user. Expected: 401,404 Got: 4046672 is expected to be denied for external. Expected: 401,404 Got: 4046673 GET #show6674 feature flag is disabled6675 responds with :not_found6676 security6677 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2006678 is expected to be denied for user. Expected: 401,404 Got: 4046679 is expected to be denied for external. Expected: 401,404 Got: 4046680 PUT #update6681 updates and redirects back to show page6682 feature flag is disabled6683 responds with :not_found6684 when domain is invalid6685 does not update cluster attributes6686 when format is json6687 when changing parameters6688 when valid parameters are used6689 updates and redirects back to show page6690 when invalid parameters are used6691 rejects changes6692 security6693 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3026694 is expected to be denied for user. Expected: 401,404 Got: 4046695 is expected to be denied for external. Expected: 401,404 Got: 4046696 DELETE #destroy6697 feature flag is disabled6698 responds with :not_found6699 functionality6700 when cluster is provided by GCP6701 when cluster is created6702 destroys and redirects back to clusters list6703 when cluster is being created6704 destroys and redirects back to clusters list6705 when cluster is provided by user6706 destroys and redirects back to clusters list6707 security6708 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3026709 is expected to be denied for user. Expected: 401,404 Got: 4046710 is expected to be denied for external. Expected: 401,404 Got: 4046711API::Helpers6712 .current_user6713 Warden authentication6714 with invalid credentials6715 GET request6716 is expected to be nil6717 with valid credentials6718 GET request6719 is expected to eq #<User id:1717 @user1034>6720 sets the environment with data of the current user6721 HEAD request6722 is expected to eq #<User id:1717 @user1034>6723 when user should have 2fa enabled6724 when 2fa is not enabled6725 is expected to be nil6726 when 2fa is enabled6727 is expected to eq #<User id:1717 @user1034>6728 PUT request6729 without CSRF token6730 is expected to be nil6731 with CSRF token6732 is expected to eq #<User id:1717 @user1034>6733 POST request6734 without CSRF token6735 is expected to be nil6736 with CSRF token6737 is expected to eq #<User id:1717 @user1034>6738 DELETE request6739 without CSRF token6740 is expected to be nil6741 with CSRF token6742 is expected to eq #<User id:1717 @user1034>6743 when authenticating using a user's personal access tokens6744 returns a 401 response for an invalid token6745 returns a 403 response for a user without access6746 returns a 403 response for a user who is blocked6747 sets current_user6748 does not allow tokens without the appropriate scope6749 does not allow revoked tokens6750 does not allow expired tokens6751 when terms are enforced6752 returns a 403 when a user has not accepted the terms6753 sets the current user when the user accepted the terms6754 when impersonation is disabled6755 does not allow impersonation tokens6756 when authenticating using a job token6757 when route is allowed to be authenticated6758 returns a 401 response for an invalid token6759 returns a 401 response for a job that's not running6760 returns a 403 response for a user without access6761 returns a 403 response for a user who is blocked6762 sets current_user6763 when route is not allowed to be authenticated6764 sets current_user to nil6765 .handle_api_exception6766 does not report a MethodNotAllowed exception to Sentry6767 does report RuntimeError to Sentry6768 with a personal access token given6769 does not raise an additional exception because of missing `request`6770 .authenticate_non_get!6771 method is HEAD6772 does not raise an error6773 method is GET6774 does not raise an error6775 method is POST6776 calls authenticate!6777 method is PUT6778 calls authenticate!6779 method is PATCH6780 calls authenticate!6781 method is DELETE6782 calls authenticate!6783 .authenticate!6784 current_user is nil6785 returns a 401 response6786 current_user is present6787 does not raise an error6788 sudo6789 using an OAuth token6790 behaves like sudo6791 when admin6792 when token has sudo scope6793 when user exists6794 when using header6795 when providing username6796 behaves like successful sudo6797 sets current_user6798 sets sudo?6799 when providing username (case insensitive)6800 behaves like successful sudo6801 sets current_user6802 sets sudo?6803 when providing user ID6804 behaves like successful sudo6805 sets current_user6806 sets sudo?6807 when using param6808 when providing username6809 behaves like successful sudo6810 sets current_user6811 sets sudo?6812 when providing username (case insensitive)6813 behaves like successful sudo6814 sets current_user6815 sets sudo?6816 when providing user ID6817 behaves like successful sudo6818 sets current_user6819 sets sudo?6820 when user does not exist6821 raises an error6822 when token does not have sudo scope6823 raises an error6824 when not admin6825 raises an error6826 using a personal access token6827 passed as param6828 behaves like sudo6829 when admin6830 when token has sudo scope6831 when user exists6832 when using header6833 when providing username6834 behaves like successful sudo6835 sets current_user6836 sets sudo?6837 when providing username (case insensitive)6838 behaves like successful sudo6839 sets current_user6840 sets sudo?6841 when providing user ID6842 behaves like successful sudo6843 sets current_user6844 sets sudo?6845 when using param6846 when providing username6847 behaves like successful sudo6848 sets current_user6849 sets sudo?6850 when providing username (case insensitive)6851 behaves like successful sudo6852 sets current_user6853 sets sudo?6854 when providing user ID6855 behaves like successful sudo6856 sets current_user6857 sets sudo?6858 when user does not exist6859 raises an error6860 when token does not have sudo scope6861 raises an error6862 when not admin6863 raises an error6864 passed as header6865 behaves like sudo6866 when admin6867 when token has sudo scope6868 when user exists6869 when using header6870 when providing username6871 behaves like successful sudo6872 sets current_user6873 sets sudo?6874 when providing username (case insensitive)6875 behaves like successful sudo6876 sets current_user6877 sets sudo?6878 when providing user ID6879 behaves like successful sudo6880 sets current_user6881 sets sudo?6882 when using param6883 when providing username6884 behaves like successful sudo6885 sets current_user6886 sets sudo?6887 when providing username (case insensitive)6888 behaves like successful sudo6889 sets current_user6890 sets sudo?6891 when providing user ID6892 behaves like successful sudo6893 sets current_user6894 sets sudo?6895 when user does not exist6896 raises an error6897 when token does not have sudo scope6898 raises an error6899 when not admin6900 raises an error6901 using warden authentication6902 raises an error6903Projects::ReleasesController6904 GET #index6905 as html6906 returns a text/html content_type6907 behaves like common access controls6908 renders a 2006909 when the project is private6910 when user is a developer6911 renders a 200 for a logged in developer6912 when user is an external user6913 renders a 404 when logged in but not in the project6914 when the project is private and the user is not logged in6915 returns a redirect6916 as json6917 returns an application/json content_type6918 returns the project's releases as JSON, ordered by released_at6919 behaves like common access controls6920 renders a 2006921 when the project is private6922 when user is a developer6923 renders a 200 for a logged in developer6924 when user is an external user6925 renders a 404 when logged in but not in the project6926 when the project is private and the user is not logged in6927 returns a redirect6928 GET #new6929 is expected to be denied for reporter. Expected: 401,404 Got: 4046930 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2006931 GET #edit6932 behaves like successful request6933 renders a 2006934 when tag name contains slash6935 is accessible at a URL encoded path6936 behaves like successful request6937 renders a 2006938 when release does not exist6939 behaves like not found6940 renders 4046941 when user is a reporter6942 behaves like not found6943 renders 4046944 GET #show6945 behaves like successful request6946 renders a 2006947 when tag name contains slash6948 is accesible at a URL encoded path6949 behaves like successful request6950 renders a 2006951 when release does not exist6952 behaves like not found6953 renders 4046954 when user is a guest6955 behaves like successful request6956 renders a 2006957 when user is an external user for the project6958 behaves like not found6959 GET #latest_permalink6960 when user is a guest6961 proceeds with the redirect6962 when user is an external user for the project6963 behaves like not found6964 when there are no releases for the project6965 behaves like not found6966 multiple releases6967 redirects to the latest release6968 suffix path redirection6969 redirects to the latest release with suffix path and format6970 suffix path abuse6971 raises attack error6972 url parameters6973 carries over query parameters without order_by parameter in the redirect6974 order_by parameter6975 invalid parameter6976 behaves like redirects to latest release ordered by using released_at6977 is expected to redirect to "/namespace1042/project-1017/-/releases/latest"6978 valid parameter6979 behaves like redirects to latest release ordered by using released_at6980 is expected to redirect to "/namespace1043/project-1018/-/releases/latest"6981GitLab metrics server6982 behaves like spawns a server6983 targeting puma when using Golang server is true6984 behaves like serves metrics endpoint6985 serves /metrics endpoint6986 when using Pathname instance as target directory6987 behaves like serves metrics endpoint6988 serves /metrics endpoint6989 behaves like spawns a server6990 targeting puma when using Golang server is false6991 behaves like serves metrics endpoint6992 serves /metrics endpoint6993 when using Pathname instance as target directory6994 behaves like serves metrics endpoint6995 serves /metrics endpoint6996 behaves like spawns a server6997 targeting sidekiq when using Golang server is true6998 behaves like serves metrics endpoint6999 serves /metrics endpoint7000 when using Pathname instance as target directory7001 behaves like serves metrics endpoint7002 serves /metrics endpoint7003 behaves like spawns a server7004 targeting sidekiq when using Golang server is false7005 behaves like serves metrics endpoint7006 serves /metrics endpoint7007 when using Pathname instance as target directory7008 behaves like serves metrics endpoint7009 serves /metrics endpoint7010Projects::MergeRequests::CreationsController7011 GET new7012 merge request that removes a submodule7013 renders new merge request widget template7014 merge request with some commits7015 shows total commits7016 with artificial limits7017 limits total commits7018 GET diffs7019 when merge request cannot be created7020 does not assign diffs var7021 GET pipelines7022 renders JSON including serialized pipelines7023 GET diff_for_path7024 when both branches are in the same project7025 disables diff notes7026 only renders the diffs for the path given7027 when the source branch is in a different project to the target7028 when the path exists in the diff7029 disables diff notes7030 only renders the diffs for the path given7031 when the path does not exist in the diff7032 returns a 4047033 GET #branch_to7034 fetches the commit if a user has access7035 does not load the commit when the user cannot create_merge_request_in7036 does not load the commit when the user cannot read the project7037 no target_project_id provided7038 selects itself as a target project7039 project is a fork7040 calls to project defaults to selects a correct target project7041 POST create7042 creates merge request7043 when the merge request is not created from the web ide7044 counter is not increased7045 when the merge request is created from the web ide7046 counter is increased7047 GET target_projects7048 returns target projects JSON7049API::Settings Settings7050 GET /application/settings7051 returns application settings7052 PUT /application/settings7053 updates default_branch_protection_defaults from the default_branch_protection param7054 supports legacy performance_bar_allowed_group_id7055 supports legacy performance_bar_enabled7056 supports legacy allow_local_requests_from_hooks_and_services7057 supports legacy asset_proxy_whitelist7058 supports the deprecated `throttle_unauthenticated_*` attributes7059 prefers the new `throttle_unauthenticated_web_*` attributes7060 disables ability to switch to legacy storage7061 supports legacy admin_notification_email7062 supports setting require_admin_approval_after_user_signup7063 custom repository storage type set in the config7064 coerces repository_storages_weighted to an int7065 updates application settings7066 repository_storages_weighted value is outside a 0-100 range7067 returns a :bad_request for -17068 returns a :bad_request for 1017069 SSH key restriction settings7070 allows updating the settings7071 does not allow DSA keys7072 does not allow short RSA key values7073 does not allow unrestricted key lengths7074 external policy classification settings7075 includes the attributes in the API7076 allows updating the settings7077 snowplow tracking settings7078 includes the attributes in the API7079 allows updating the settings7080 missing snowplow_collector_hostname value when snowplow_enabled is true7081 returns a blank parameter error message7082 handles validation errors7083 EKS integration settings7084 includes attributes in the API7085 does not include sensitive attributes in the API7086 allows updating the settings7087 EKS integration is enabled but params are blank7088 does not update the settings7089 GitLab for Slack app settings7090 when GitLab for Slack app is enabled7091 when other params are blank7092 does not update the settings7093 when other params are present7094 updates the settings7095 when GitLab for Slack app is not enabled7096 allows blank attributes7097 missing plantuml_url value when plantuml_enabled is true7098 returns a blank parameter error message7099 missing diagramsnet_url value when diagramsnet_enabled is true7100 returns a blank parameter error message7101 asset_proxy settings7102 updates application settings7103 allows a string for asset_proxy_allowlist7104 domain_denylist settings7105 rejects domain_denylist_enabled when domain_denylist is empty7106 allows array for domain_denylist7107 allows a string for domain_denylist7108 missing sourcegraph_url value when sourcegraph_enabled is true7109 returns a blank parameter error message7110 missing spam_check_endpoint_url value when spam_check_endpoint_enabled is true7111 returns a blank parameter error message7112 overly long spam_check_api_key7113 fails to update the settings with too long spam_check_api_key7114 missing mailgun_signing_key value when mailgun_events_enabled is true7115 returns a blank parameter error message7116 personal access token prefix settings7117 handles validation errors7118 fails to update the settings with too long prefix7119 fails to update the settings with invalid characters in the prefix7120 whats_new_variant setting7121 updates setting7122 fails to update setting with invalid value7123 sidekiq job limit settings7124 updates the settings7125 Sentry settings7126 includes the attributes in the API7127 allows updating the settings7128 missing sentry_dsn value when sentry_enabled is true7129 returns a blank parameter error message7130 runner token expiration_intervals7131 updates the settings7132 updates the settings with empty values7133 with pipeline_limit_per_project_user_sha7134 updates the settings7135 updates the settings with zero value7136 does not allow null values7137 with ci_max_includes7138 updates the settings7139 allows a zero value7140 does not allow a nil value7141 with housekeeping enabled7142 at least one of housekeeping_incremental_repack_period or housekeeping_optimize_repository_period is required7143 when housekeeping_incremental_repack_period is specified7144 requires all three housekeeping settings7145 returns housekeeping_optimize_repository_period value for all housekeeping settings attributes7146 when housekeeping_optimize_repository_period is specified7147 returns housekeeping_optimize_repository_period value for all housekeeping settings attributes7148Internal Project Pages Access7149 Project should be internal7150 #internal?7151 is expected to be truthy7152 GET /projects/:id/pages_access7153 access depends on the level7154 pages_access_level: 0, with_user: "admin", admin_mode: true, expected_result: 4037155 correct return value7156 pages_access_level: 0, with_user: "owner", admin_mode: false, expected_result: 4037157 correct return value7158 pages_access_level: 0, with_user: "master", admin_mode: false, expected_result: 4037159 correct return value7160 pages_access_level: 0, with_user: "developer", admin_mode: false, expected_result: 4037161 correct return value7162 pages_access_level: 0, with_user: "reporter", admin_mode: false, expected_result: 4037163 correct return value7164 pages_access_level: 0, with_user: "guest", admin_mode: false, expected_result: 4037165 correct return value7166 pages_access_level: 0, with_user: "user", admin_mode: false, expected_result: 4037167 correct return value7168 pages_access_level: 0, with_user: nil, admin_mode: false, expected_result: 4047169 correct return value7170 pages_access_level: 30, with_user: "admin", admin_mode: false, expected_result: 2007171 correct return value7172 pages_access_level: 30, with_user: "owner", admin_mode: false, expected_result: 2007173 correct return value7174 pages_access_level: 30, with_user: "master", admin_mode: false, expected_result: 2007175 correct return value7176 pages_access_level: 30, with_user: "developer", admin_mode: false, expected_result: 2007177 correct return value7178 pages_access_level: 30, with_user: "reporter", admin_mode: false, expected_result: 2007179 correct return value7180 pages_access_level: 30, with_user: "guest", admin_mode: false, expected_result: 2007181 correct return value7182 pages_access_level: 30, with_user: "user", admin_mode: false, expected_result: 2007183 correct return value7184 pages_access_level: 30, with_user: nil, admin_mode: false, expected_result: 4047185 correct return value7186 pages_access_level: 20, with_user: "admin", admin_mode: false, expected_result: 2007187 correct return value7188 pages_access_level: 20, with_user: "owner", admin_mode: false, expected_result: 2007189 correct return value7190 pages_access_level: 20, with_user: "master", admin_mode: false, expected_result: 2007191 correct return value7192 pages_access_level: 20, with_user: "developer", admin_mode: false, expected_result: 2007193 correct return value7194 pages_access_level: 20, with_user: "reporter", admin_mode: false, expected_result: 2007195 correct return value7196 pages_access_level: 20, with_user: "guest", admin_mode: false, expected_result: 2007197 correct return value7198 pages_access_level: 20, with_user: "user", admin_mode: false, expected_result: 2007199 correct return value7200 pages_access_level: 20, with_user: nil, admin_mode: false, expected_result: 4047201 correct return value7202 pages_access_level: 10, with_user: "admin", admin_mode: true, expected_result: 2007203 correct return value7204 pages_access_level: 10, with_user: "owner", admin_mode: false, expected_result: 2007205 correct return value7206 pages_access_level: 10, with_user: "master", admin_mode: false, expected_result: 2007207 correct return value7208 pages_access_level: 10, with_user: "developer", admin_mode: false, expected_result: 2007209 correct return value7210 pages_access_level: 10, with_user: "reporter", admin_mode: false, expected_result: 2007211 correct return value7212 pages_access_level: 10, with_user: "guest", admin_mode: false, expected_result: 2007213 correct return value7214 pages_access_level: 10, with_user: "user", admin_mode: false, expected_result: 4037215 correct return value7216 pages_access_level: 10, with_user: nil, admin_mode: false, expected_result: 4047217 correct return value7218Projects::GoogleCloud::DatabasesController7219 -/google_cloud/databases7220 when requested by users with different roles7221 for unauthorized users7222 returns not found7223 returns not found7224 for authorized users7225 redirects to authorize url7226 redirects to authorize url7227 when feature flag is disabled7228 renders not found7229 when GitLab instance does not have valid Google OAuth2 configuration7230 renders forbidden7231 when a valid Google OAuth2 token does not exist7232 triggers Google OAuth2 flow on request7233 and a valid Google OAuth2 token gets created7234 renders template as expected7235 redirects as expected7236 -/google_cloud/databases/new/postgres7237 when requested by users with different roles7238 for unauthorized users7239 returns not found7240 returns not found7241 for authorized users7242 redirects to authorize url7243 redirects to authorize url7244 when feature flag is disabled7245 renders not found7246 when GitLab instance does not have valid Google OAuth2 configuration7247 renders forbidden7248 when a valid Google OAuth2 token does not exist7249 triggers Google OAuth2 flow on request7250 and a valid Google OAuth2 token gets created7251 renders template as expected7252 redirects as expected7253 -/google_cloud/databases/new/mysql7254 when requested by users with different roles7255 for unauthorized users7256 returns not found7257 returns not found7258 for authorized users7259 redirects to authorize url7260 redirects to authorize url7261 when feature flag is disabled7262 renders not found7263 when GitLab instance does not have valid Google OAuth2 configuration7264 renders forbidden7265 when a valid Google OAuth2 token does not exist7266 triggers Google OAuth2 flow on request7267 and a valid Google OAuth2 token gets created7268 renders template as expected7269 redirects as expected7270 -/google_cloud/databases/new/sqlserver7271 when requested by users with different roles7272 for unauthorized users7273 returns not found7274 returns not found7275 for authorized users7276 redirects to authorize url7277 redirects to authorize url7278 when feature flag is disabled7279 renders not found7280 when GitLab instance does not have valid Google OAuth2 configuration7281 renders forbidden7282 when a valid Google OAuth2 token does not exist7283 triggers Google OAuth2 flow on request7284 and a valid Google OAuth2 token gets created7285 renders template as expected7286 redirects as expected7287 -/google_cloud/databases/create7288 when requested by users with different roles7289 for unauthorized users7290 returns not found7291 returns not found7292 for authorized users7293 redirects to authorize url7294 redirects to authorize url7295 when feature flag is disabled7296 renders not found7297 when GitLab instance does not have valid Google OAuth2 configuration7298 renders forbidden7299 when a valid Google OAuth2 token does not exist7300 triggers Google OAuth2 flow on request7301 and a valid Google OAuth2 token gets created7302 renders template as expected7303 redirects as expected7304 when the request is valid7305 when EnableCloudsqlService fails7306 redirects and track event on error7307 shows a flash alert7308 when EnableCloudsqlService is successful7309 when CreateCloudsqlInstanceService fails7310 redirects and track event on error7311 shows a flash warning7312 when CreateCloudsqlInstanceService is successful7313 redirects as expected7314 shows a flash notice7315Projects::DiscussionsController7316 GET show7317 when user is not authorized to read the MR7318 returns 4047319 when user is authorized to read the MR7320 returns status 2007321 returns status 404 if MR does not exists7322 when user is authorized but note is LegacyDiffNote7323 returns status 2007324 POST resolve7325 when the user is not authorized to resolve the discussion7326 returns status 4047327 when the user is authorized to resolve the discussion7328 when the discussion is not resolvable7329 returns status 4047330 when the discussion is resolvable7331 resolves the discussion7332 sends notifications if all discussions are resolved7333 returns the name of the resolving user7334 returns status 2007335 renders discussion with serializer7336 diff discussion7337 returns truncated diff lines7338 DELETE unresolve7339 when the user is not authorized to resolve the discussion7340 returns status 4047341 when the user is authorized to resolve the discussion7342 when the discussion is not resolvable7343 returns status 4047344 when the discussion is resolvable7345 unresolves the discussion7346 tracks thread unresolve usage data7347 returns status 2007348 when vue_mr_discussions cookie is present7349 renders discussion with serializer7350API::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 transitions status 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 partition (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)7445 reporter user7446 does not create commit status7447 guest user7448 does not create commit status7449 unauthorized user7450 does not create commit status7451Ldap::OmniauthCallbacksController7452 allows sign in7453 creates an authentication event record7454 respects remember me checkbox7455 with sign in prevented7456 does not allow sign in7457 with 2FA7458 passes remember_me to the Devise view7459 access denied7460 warns the user7461 doesn't authenticate user7462 sign up7463 is allowed7464 enable admin mode7465 with a regular user7466 cannot be enabled7467 with an admin user7468 when requested first7469 can be enabled7470 when not requested first7471 cannot be enabled7472Snippets::NotesController7473 GET index7474 when a snippet is public7475 returns status 2007476 returns not empty array of notes7477 when a snippet is internal7478 when user not logged in7479 returns status 4047480 when user logged in7481 returns status 2007482 when a snippet is private7483 when user not logged in7484 returns status 4047485 when user other than author logged in7486 returns status 4047487 when author logged in7488 returns status 2007489 returns 1 note7490 dont show non visible notes7491 does not return any note7492 POST create7493 when a snippet is public7494 returns status 3027495 creates the note7496 behaves like create notes request exceeding rate limit7497 allows user in allow-list to create notes, even if the case is different7498 when rate limiter enabled7499 logs request and declines it when endpoint called more than the threshold7500 when rate limiter is disabled7501 does not log request and does not block the request7502 when a snippet is internal7503 returns status 3027504 creates the note7505 behaves like create notes request exceeding rate limit7506 allows user in allow-list to create notes, even if the case is different7507 when rate limiter enabled7508 logs request and declines it when endpoint called more than the threshold7509 when rate limiter is disabled7510 does not log request and does not block the request7511 when a snippet is private7512 when user is not the author7513 returns status 4047514 does not create the note7515 when user sends a snippet_id for a public snippet7516 returns status 3027517 creates the note on the public snippet7518 when user is the author7519 returns status 3027520 creates the note7521 behaves like create notes request exceeding rate limit7522 allows user in allow-list to create notes, even if the case is different7523 when rate limiter enabled7524 logs request and declines it when endpoint called more than the threshold7525 when rate limiter is disabled7526 does not log request and does not block the request7527 PUT update7528 when the note is valid7529 updates the note7530 returns status 2007531 when there are ActiveRecord validation errors7532 does not update the note7533 returns status 4227534 DELETE destroy7535 when user is the author of a note7536 returns status 2007537 deletes the note7538 system note7539 does not delete the note7540 when user is not the author of a note7541 returns status 4047542 does not update the note7543 POST toggle_award_emoji7544 toggles the award emoji7545 removes the already awarded emoji when it exists7546Projects::LabelsController7547 GET #index7548 @prioritized_labels7549 does not include labels without priority7550 is sorted by priority, then label title7551 @labels7552 is sorted by label title7553 does not include labels with priority7554 does not include group labels when project does not belong to a group7555 with subgroups7556 returns ancestor group labels7557 with views rendered7558 avoids N+1 queries7559 POST #generate7560 personal project7561 creates labels7562 project belonging to a group7563 creates labels7564 POST #toggle_subscription7565 allows user to toggle subscription on project labels7566 allows user to toggle subscription on group labels7567 POST #promote7568 not group reporters7569 denies access7570 group reporter7571 gives access7572 promotes the label7573 renders label name without parsing it as HTML7574 service raising InvalidRecord7575 returns to label list7576 #ensure_canonical_path7577 for a GET request7578 when requesting the canonical path7579 non-show path7580 with exactly matching casing7581 does not redirect7582 with different casing7583 redirects to the correct casing7584 when requesting a redirected path7585 redirects to the canonical path7586 with an AJAX request7587 redirects to the canonical path but does not set flash message7588 with JSON format7589 redirects to the canonical path but does not set flash message7590 for a non-GET request7591 when requesting the canonical path with different casing7592 does not 4047593 does not redirect to the correct casing7594 when requesting a redirected path7595 returns not found7596Repositories::GitHttpController7597 when repository container is a project7598 behaves like Repositories::GitHttpController7599 HEAD #info_refs7600 returns 4037601 GET #info_refs7602 returns 401 for unauthenticated requests to public repositories when http protocol is disabled7603 calls the right access checker class with the right object7604 with authorized user7605 returns 2007606 adds user info to the logs7607 POST #git_upload_pack7608 returns 2007609 when JWT token is not provided7610 returns 4037611 behaves like handles unavailable Gitaly7612 when Gitaly is unavailable7613 responds with a 503 message7614 behaves like handles logging git upload pack operation7615 with git pull/fetch/clone action7616 behaves like handles user activity7617 updates the user activity7618 behaves like handles logging git receive pack operation7619 with git push action when log_user_git_push_activity is enabled7620 behaves like handles user activity7621 updates the user activity7622 when log_user_git_push_activity is disabled7623 does not log user activity7624 POST #git_upload_pack7625 updates project statistics sync for projects7626 recording the onboarding progress7627 is expected to equal true7628 when disable_git_http_fetch_writes is enabled7629 does not increment statistics7630 when the user is a deploy token7631 behaves like Repositories::GitHttpController7632 HEAD #info_refs7633 returns 4037634 GET #info_refs7635 returns 401 for unauthenticated requests to public repositories when http protocol is disabled7636 calls the right access checker class with the right object7637 with authorized user7638 returns 2007639 adds user info to the logs7640 POST #git_upload_pack7641 returns 2007642 when JWT token is not provided7643 returns 4037644 behaves like handles logging git upload pack operation7645 with git pull/fetch/clone action7646 behaves like handles user activity7647 updates the user activity7648 when repository container is a project wiki7649 behaves like Repositories::GitHttpController7650 HEAD #info_refs7651 returns 4037652 GET #info_refs7653 returns 401 for unauthenticated requests to public repositories when http protocol is disabled7654 calls the right access checker class with the right object7655 with authorized user7656 returns 2007657 adds user info to the logs7658 POST #git_upload_pack7659 returns 2007660 when JWT token is not provided7661 returns 4037662 behaves like handles logging git upload pack operation7663 with git pull/fetch/clone action7664 behaves like handles user activity7665 updates the user activity7666 behaves like handles logging git receive pack operation7667 with git push action when log_user_git_push_activity is enabled7668 behaves like handles user activity7669 updates the user activity7670 when log_user_git_push_activity is disabled7671 does not log user activity7672 when repository container is a personal snippet7673 behaves like Repositories::GitHttpController7674 HEAD #info_refs7675 returns 4037676 GET #info_refs7677 returns 401 for unauthenticated requests to public repositories when http protocol is disabled7678 calls the right access checker class with the right object7679 with authorized user7680 returns 2007681 adds user info to the logs7682 POST #git_upload_pack7683 returns 2007684 when JWT token is not provided7685 returns 4037686 behaves like handles unavailable Gitaly7687 when Gitaly is unavailable7688 responds with a 503 message7689 behaves like handles logging git upload pack operation7690 with git pull/fetch/clone action7691 behaves like handles user activity7692 updates the user activity7693 behaves like handles logging git receive pack operation7694 with git push action when log_user_git_push_activity is enabled7695 behaves like handles user activity7696 updates the user activity7697 when log_user_git_push_activity is disabled7698 does not log user activity7699 when repository container is a project snippet7700 behaves like Repositories::GitHttpController7701 HEAD #info_refs7702 returns 4037703 GET #info_refs7704 returns 401 for unauthenticated requests to public repositories when http protocol is disabled7705 calls the right access checker class with the right object7706 with authorized user7707 returns 2007708 adds user info to the logs7709 POST #git_upload_pack7710 returns 2007711 when JWT token is not provided7712 returns 4037713 behaves like handles unavailable Gitaly7714 when Gitaly is unavailable7715 responds with a 503 message7716 behaves like handles logging git upload pack operation7717 with git pull/fetch/clone action7718 behaves like handles user activity7719 updates the user activity7720 behaves like handles logging git receive pack operation7721 with git push action when log_user_git_push_activity is enabled7722 behaves like handles user activity7723 updates the user activity7724 when log_user_git_push_activity is disabled7725 does not log user activity7726Projects::ArtifactsController7727 GET index7728 renders the page with data for the artifacts app7729 DELETE destroy7730 deletes the artifact7731 redirects to artifacts index page7732 sets the notice7733 when artifact deletion fails7734 redirects to artifacts index page7735 sets the notice7736 when user is not authorized7737 does not delete the artifact7738 GET download7739 when no file type is supplied7740 sends the artifacts file7741 when artifact is set as private7742 and user is not authoirized7743 returns forbidden7744 and user has access to project7745 downloads7746 when a file type is supplied7747 when an invalid file type is supplied7748 returns 4047749 when codequality file type is supplied7750 when file is stored locally7751 sends the codequality report7752 when file is stored remotely7753 sends the codequality report7754 when proxied7755 sends the codequality report7756 when Google CDN is configured7757 redirects to a Google CDN request7758 when downloading a debug trace7759 when the user does not have update_build permissions7760 denies the user access7761 when the user has update_build permissions7762 sends the trace7763 GET browse7764 when the directory exists7765 renders the browse view7766 when the directory does not exist7767 responds Not Found7768 GET external_file7769 when the file exists7770 renders the file view7771 when the file does not exist7772 responds Not Found7773 GET file7774 when the file is served by GitLab Pages7775 when the file exists7776 renders the file view7777 when the file is served through Rails7778 when the file exists7779 renders the file view7780 when the file does not exist7781 responds Not Found7782 when the project is private7783 does not redirect the request7784 when the project is private and pages access control is enabled7785 renders the file view7786 GET raw7787 when the file exists7788 when using local file storage7789 behaves like a valid file7790 serves the file using workhorse7791 when using remote file storage7792 behaves like a valid file7793 serves the file using workhorse7794 when artifacts archive is missing7795 returns 4047796 fetching an artifact of different type7797 when the artifact is zip7798 behaves like a valid file7799 serves the file using workhorse7800 when the artifact is not zip7801 responds with not found7802 GET latest_succeeded7803 cannot find the job7804 has no such ref7805 behaves like not found7806 is expected to respond with numeric status code not_found7807 has no such job7808 behaves like not found7809 is expected to respond with numeric status code not_found7810 has no path7811 behaves like not found7812 is expected to respond with numeric status code not_found7813 found the job and redirect7814 with regular branch7815 behaves like redirect to the job7816 redirects7817 with branch name containing slash7818 behaves like redirect to the job7819 redirects7820 with branch name and path containing slashes7821 redirects7822 with a failed pipeline on an updated master7823 behaves like redirect to the job7824 redirects7825Query.work_item(id)7826 when the user can read the work item7827 returns all fields7828 behaves like a working graphql query7829 returns a successful response7830 when querying widgets7831 description widget7832 returns widget information7833 hierarchy widget7834 returns widget information7835 avoids N+1 queries7836 when user is guest7837 filters out not accessible children or parent7838 when requesting child item7839 returns parent information7840 when ordered by default by created_at7841 places the oldest child item to the beginning of the children list7842 places the newest child item to the end of the children list7843 when relative position is set7844 places children according to relative_position at the beginning of the children list7845 assignees widget7846 returns widget information7847 labels widget7848 returns widget information7849 start and due date widget7850 returns widget information7851 milestone widget7852 returns widget information7853 notifications widget7854 returns widget information7855 currentUserTodos widget7856 with access7857 returns widget information7858 with filter7859 returns widget information7860 award emoji widget7861 returns widget information7862 notes widget7863 when fetching award emoji from notes7864 returns award emoji data7865 returns author contributor status and max access level7866 avoids N+1 queries7867 when an Issue Global ID is provided7868 allows an Issue GID as input7869 when the user can not read the work item7870 returns an access error7871 when the user cannot set work item metadata7872 returns correct user permission7873API::BulkImports7874 GET /bulk_imports7875 returns a list of bulk imports authored by the user7876 returns 4047877 sort parameter7878 sorts by created_at descending by default7879 when explicitly specified7880 when descending7881 sorts by created_at descending7882 when ascending7883 sorts by created_at ascending when explicitly specified7884 POST /bulk_imports7885 starts a new migration7886 starts a new migration7887 returns 4047888 migrate projects flag7889 when true7890 sets true7891 when false7892 sets false7893 when unspecified7894 sets true7895 migrate projects flag7896 when true7897 sets true7898 when false7899 sets false7900 when unspecified7901 sets true7902 when both destination_name & destination_slug are provided7903 returns a mutually exclusive error7904 when neither destination_name nor destination_slug is provided7905 returns at_least_one_of error7906 when the source_full_path is invalid7907 returns invalid error7908 when the destination_namespace does not exist7909 returns invalid error7910 when the destination_namespace is an empty string7911 accepts the param and starts a new migration7912 when the destination_slug is invalid7913 returns invalid error when restricting special characters is disabled7914 returns invalid error when restricting special characters is enabled7915 when provided url is blocked7916 returns blocked url message in the error7917 when source instance setting is disabled7918 returns blocked url error7919 when request exceeds rate limits7920 prevents user from starting a new migration7921 GET /bulk_imports/entities7922 returns a list of all import entities authored by the user7923 returns 4047924 GET /bulk_imports/:id7925 returns specified bulk import7926 returns 4047927 GET /bulk_imports/:id/entities7928 returns specified bulk import entities with failures7929 returns 4047930 GET /bulk_imports/:id/entities/:entity_id7931 returns specified bulk import entity7932 returns 4047933 when user is unauthenticated7934 returns 4017935API::ProjectTemplates7936 GET /projects/:id/templates/:type7937 returns dockerfiles7938 returns gitignores7939 returns gitlab_ci_ymls7940 returns licenses7941 returns issue templates7942 returns merge request templates7943 returns 400 for an unknown template type7944 denies access to an anonymous user on a private project7945 permits access to a developer on a private project7946 behaves like accepts project paths with dots7947 is expected to respond with numeric status code ok7948 GET /projects/:id/templates/licenses7949 returns key and name for the listed licenses7950 behaves like accepts project paths with dots7951 is expected to respond with numeric status code ok7952 GET /projects/:id/templates/:type/:name7953 returns a specific dockerfile7954 returns a specific gitignore7955 returns C++ gitignore7956 returns C++ gitignore for URL-encoded names7957 returns a specific gitlab_ci_yml7958 returns a specific license7959 returns a specific issue template7960 returns a specific merge request template7961 returns 404 for an unknown specific template7962 returns 404 for an unknown issue template7963 returns 404 for an unknown merge request template7964 denies access to an anonymous user on a private project7965 permits access to a developer on a private project7966 behaves like accepts project paths with dots7967 is expected to respond with numeric status code ok7968 behaves like path traversal attempt7969 rejects invalid filenames7970 behaves like path traversal attempt7971 rejects invalid filenames7972 behaves like path traversal attempt7973 rejects invalid filenames7974 behaves like path traversal attempt7975 rejects invalid filenames7976 behaves like path traversal attempt7977 rejects invalid filenames7978 GET /projects/:id/templates/licenses/:key7979 fills placeholders in the license7980 behaves like accepts project paths with dots7981 is expected to respond with numeric status code ok7982Projects::DesignManagement::Designs::ResizedImageController7983 GET #show7984 when the user does not have permission7985 is expected to respond with numeric status code not_found7986 Response headers7987 completes the request successfully7988 sets Content-Disposition as attachment7989 serves files with Workhorse7990 sets appropriate caching headers7991 when design does not exist7992 is expected to respond with numeric status code not_found7993 when size is invalid7994 returns a 4047995 sha param7996 is expected not to eq "ceb0767ba38dd9283e569758ca471ff3bbade92c"7997 when sha is the newest version sha7998 serves the newest image7999 when sha is the oldest version sha8000 serves the oldest image8001 when sha is nil8002 serves the newest image8003 when sha is not a valid version sha8004 returns a 4048005 when multiple design versions have the same sha hash8006 serves the newest image8007 when design does not have a smaller image size available8008 returns a 4048009Projects::Clusters::IntegrationsController8010 POST create_or_update8011 behaves like #create_or_update action8012 authorization8013 behaves like a secure endpoint8014 is allowed for admin when admin mode enabled8015 is denied for admin when admin mode disabled8016 it is allowed for project maintainers8017 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3028018 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3028019 is expected to be denied for developer. Expected: 401,404 Got: 4048020 is expected to be denied for reporter. Expected: 401,404 Got: 4048021 is expected to be denied for guest. Expected: 401,404 Got: 4048022 is expected to be denied for user. Expected: 401,404 Got: 4048023 is expected to be denied for external. Expected: 401,404 Got: 4048024 functionality8025 redirects on success8026 redirects on error8027API::FeatureFlagsUserLists8028 GET /projects/:id/feature_flags_user_lists8029 forbids the request for a reporter8030 returns forbidden if the feature is unavailable8031 returns all the user lists8032 returns all the data for a user list8033 paginates user lists8034 returns the user lists for only the specified project8035 returns an empty list8036 when filtering8037 returns lists matching the search term8038 returns lists matching multiple search terms8039 returns all lists with no query8040 GET /projects/:id/feature_flags_user_lists/:iid8041 forbids the request for a reporter8042 returns forbidden if the feature is unavailable8043 returns the user list8044 returns the correct user list identified by the iid8045 scopes the iid search to the project8046 returns not found when the list does not exist8047 POST /projects/:id/feature_flags_user_lists8048 forbids the request for a reporter8049 returns forbidden if the feature is unavailable8050 creates the flag8051 requires name8052 requires user_xids8053 returns an error when name is already taken8054 does not create a flag for a project of which the developer is not a member8055 PUT /projects/:id/feature_flags_user_lists/:iid8056 forbids the request for a reporter8057 returns forbidden if the feature is unavailable8058 updates the list8059 preserves attributes not listed in the request8060 returns an error when the update is invalid8061 returns not found when the list does not exist8062 DELETE /projects/:id/feature_flags_user_lists/:iid8063 forbids the request for a reporter8064 returns forbidden if the feature is unavailable8065 returns not found when the list does not exist8066 deletes the list8067 does not delete the list if it is associated with a strategy8068Getting Metrics Dashboard8069 for anonymous user8070 requested dashboard is available8071 returns nil8072 behaves like a working graphql query8073 returns a successful response8074 for user with developer access8075 requested dashboard is available8076 returns metrics dashboard8077 behaves like a working graphql query8078 returns a successful response8079 invalid dashboard8080 returns metrics dashboard8081 empty dashboard8082 returns metrics dashboard8083 metrics dashboard feature is unavailable8084 returns nil8085 behaves like a working graphql query8086 returns a successful response8087 requested dashboard can not be found8088 returns nil8089 behaves like a working graphql query8090 returns a successful response8091Setting labels of a merge request8092 returns an error if the user is not allowed to update the merge request8093 sets the merge request labels, removing existing ones8094 when passing label_ids empty array as input8095 removes the merge request labels8096 when passing operation_mode as APPEND8097 sets the labels and resets labels to keep the title ordering, without removing others8098 when passing operation_mode as REMOVE8099 removes the labels, without removing others8100uploading designs8101 returns an error if the user is not allowed to upload designs8102 succeeds, and responds with the created designs8103 can respond with skipped designs8104 when the input does not include a null value for each mapped file8105 returns an error8106 when the issue does not exist8107 returns an error8108 when saving the designs raises an error8109 responds with errors8110getting dependency proxy blobs in a group8111 returns the total count of blobs8112 returns the total size8113 returns the total size in bytes8114 behaves like a working graphql query8115 returns a successful response8116 with different permissions8117 group_visibility: :private, role: :maintainer, access_granted: true8118 return the proper response8119 group_visibility: :private, role: :developer, access_granted: true8120 return the proper response8121 group_visibility: :private, role: :reporter, access_granted: true8122 return the proper response8123 group_visibility: :private, role: :guest, access_granted: true8124 return the proper response8125 group_visibility: :private, role: :anonymous, access_granted: false8126 return the proper response8127 group_visibility: :public, role: :maintainer, access_granted: true8128 return the proper response8129 group_visibility: :public, role: :developer, access_granted: true8130 return the proper response8131 group_visibility: :public, role: :reporter, access_granted: true8132 return the proper response8133 group_visibility: :public, role: :guest, access_granted: true8134 return the proper response8135 group_visibility: :public, role: :anonymous, access_granted: false8136 return the proper response8137 limiting the number of blobs8138 only returns N blobs8139 with a giant size blob8140 using dependencyProxyTotalSizeInBytes8141 returns an error8142 using dependencyProxyTotalSizeBytes8143 returns the total size in bytes as a string8144Adding an AwardEmoji8145 when the user does not have permission8146 behaves like a mutation that does not create an AwardEmoji8147 is expected not to change `AwardEmoji.count`8148 behaves like a mutation that returns a top-level access error8149 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"8150 when the user has permission8151 when the given awardable is not an Awardable8152 behaves like a mutation that does not create an AwardEmoji8153 is expected not to change `AwardEmoji.count`8154 behaves like a mutation that returns top-level errors8155 is expected to include /was provided invalid value for awardableId/8156 when the given awardable is an Awardable but still cannot be awarded an emoji8157 behaves like a mutation that does not create an AwardEmoji8158 is expected not to change `AwardEmoji.count`8159 behaves like a mutation that returns top-level errors8160 is expected to contain exactly "You cannot award emoji to this resource."8161 when the given awardable is an Awardable8162 creates an emoji8163 returns the emoji8164 marking Todos as done8165 type: :issue, expectation: true8166 is expected to eq true8167 type: :merge_request, expectation: true8168 is expected to eq true8169 type: :project_snippet, expectation: false8170 is expected to eq false8171 for notes8172 regular Notes8173 marks the Todo as done8174 PersonalSnippet Notes8175 does not mark the Todo as done8176 when there were active record validation errors8177 returns an empty awardEmoji8178 behaves like a mutation that does not create an AwardEmoji8179 is expected not to change `AwardEmoji.count`8180 behaves like a mutation that returns errors in the response8181 is expected to contain exactly "Error 1" and "Error 2"8182Groups::Harbor::RepositoriesController8183 behaves like a harbor repositories controller8184 GET #index.html8185 with harbor registry feature flag enabled8186 behaves like responds with 200 status with html8187 renders the index template8188 with harbor registry feature flag disabled8189 behaves like responds with 404 status8190 returns 4048191 with anonymous user8192 behaves like responds with 404 status8193 returns 4048194 with unauthorized user8195 behaves like responds with 404 status8196 returns 4048197 GET #index.json8198 with harbor registry feature flag enabled8199 behaves like responds with 200 status with json8200 renders the index template8201 with harbor registry feature flag disabled8202 behaves like responds with 404 status8203 returns 4048204 with valid params8205 with valid page params8206 behaves like responds with 200 status with json8207 renders the index template8208 with valid limit params8209 behaves like responds with 200 status with json8210 renders the index template8211 with invalid params8212 with invalid page params8213 behaves like responds with 422 status with json8214 returns 4228215 with invalid limit params8216 behaves like responds with 422 status with json8217 returns 4228218JiraConnect::SubscriptionsController8219 #index8220 without JWT8221 returns 4038222 with valid JWT8223 returns 2008224 removes X-Frame-Options to allow rendering in iframe8225 with JSON format8226 renders the relevant data as JSON8227 with context qsh8228 is expected to respond with numeric status code ok8229 #create8230 without JWT8231 returns 4038232 with valid JWT8233 signed in to GitLab8234 dev panel integration is available8235 creates a subscription8236 returns 2008237 when the Jira user is not a site-admin8238 returns forbidden8239 not signed in to GitLab8240 returns 4018241 #destroy8242 without JWT8243 returns 4038244 with valid JWT8245 deletes the subscription8246 when the Jira user is not a site admin8247 does not delete the subscription8248Removing an AwardEmoji8249 when the current_user does not own the award emoji8250 behaves like a mutation that does not authorize the user8251 behaves like a mutation that does not destroy an AwardEmoji8252 is expected not to change `AwardEmoji.count`8253 behaves like a mutation that returns a top-level access error8254 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"8255 when the current_user owns the award emoji8256 when the given awardable is not an Awardable8257 behaves like a mutation that does not destroy an AwardEmoji8258 is expected not to change `AwardEmoji.count`8259 behaves like a mutation that returns top-level errors8260 is expected to include /was provided invalid value for awardableId/8261 when the given awardable is an Awardable8262 removes the emoji8263 returns no errors8264 returns an empty awardEmoji8265Groups::Crm::ContactsController8266 GET #index8267 behaves like ok response with index template if authorized8268 private group8269 with authorized user8270 when crm_enabled is true8271 behaves like ok response with index template8272 renders the index template8273 when crm_enabled is false8274 behaves like response with 404 status8275 returns 4048276 when subgroup8277 behaves like response with 404 status8278 returns 4048279 with unauthorized user8280 behaves like response with 404 status8281 returns 4048282 with anonymous user8283 blah8284 public group8285 with anonymous user8286 behaves like response with 404 status8287 returns 4048288 GET #new8289 behaves like ok response with index template if authorized8290 private group8291 with authorized user8292 when crm_enabled is true8293 behaves like ok response with index template8294 renders the index template8295 when crm_enabled is false8296 behaves like response with 404 status8297 returns 4048298 when subgroup8299 behaves like response with 404 status8300 returns 4048301 with unauthorized user8302 behaves like response with 404 status8303 returns 4048304 with anonymous user8305 blah8306 public group8307 with anonymous user8308 behaves like response with 404 status8309 returns 4048310 GET #edit8311 behaves like ok response with index template if authorized8312 private group8313 with authorized user8314 when crm_enabled is true8315 behaves like ok response with index template8316 renders the index template8317 when crm_enabled is false8318 behaves like response with 404 status8319 returns 4048320 when subgroup8321 behaves like response with 404 status8322 returns 4048323 with unauthorized user8324 behaves like response with 404 status8325 returns 4048326 with anonymous user8327 blah8328 public group8329 with anonymous user8330 behaves like response with 404 status8331 returns 4048332getting the packages cleanup policy linked to a project8333 behaves like a working graphql query8334 returns a successful response8335 with an existing policy8336 behaves like a working graphql query8337 returns a successful response8338 with different permissions8339 visibility: :private, role: :maintainer, policy_visible: true8340 return the proper response8341 visibility: :private, role: :developer, policy_visible: false8342 return the proper response8343 visibility: :private, role: :reporter, policy_visible: false8344 return the proper response8345 visibility: :private, role: :guest, policy_visible: false8346 return the proper response8347 visibility: :private, role: :anonymous, policy_visible: false8348 return the proper response8349 visibility: :public, role: :maintainer, policy_visible: true8350 return the proper response8351 visibility: :public, role: :developer, policy_visible: false8352 return the proper response8353 visibility: :public, role: :reporter, policy_visible: false8354 return the proper response8355 visibility: :public, role: :guest, policy_visible: false8356 return the proper response8357 visibility: :public, role: :anonymous, policy_visible: false8358 return the proper response8359Query.group.mergeRequests8360 not passing any arguments8361 can find all merge requests in the group, excluding sub-groups8362 restricting by author8363 can find all merge requests with user as author8364 restricting by assignee8365 can find all merge requests assigned to user8366 passing include_subgroups: true8367 can find all merge requests in the group, including sub-groups8368 passing include_archived: true8369 can find all merge requests in the group, including from archived projects8370Explore::SnippetsController8371 GET #index8372 renders8373 renders pagination8374 behaves like snippets views8375 when rendered8376 avoids N+1 database queries8377Project.ci_access_authorized_agents8378 # order random8379 when deployment project is not authorized to ci_access to the agent8380 returns empty8381 with group authorization8382 returns the authorized agent8383 when user is developer in the agent management project8384 returns the project information as well8385 when user is reporter8386 returns nothing8387 with project authorization8388 returns the authorized agent8389 when user is developer in the agent management project8390 returns the project information as well8391 when user is reporter8392 returns nothing8393Users::TermsController8394 GET #index8395 when a user is signed in8396 redirects when no terms exist8397 when terms exist8398 shows terms when they exist8399 shows a message when the user already accepted the terms8400 when a user is not signed in8401 when terms exist8402 returns success response8403 when no terms exist8404 redirects8405 POST #accept8406 when a user is signed in8407 saves that the user accepted the terms8408 redirects to a path when specified8409 redirects to the referer when no redirect specified8410 redirecting to another domain8411 is prevented when passing a redirect param8412 is prevented when redirecting to the referer8413 when a user is not signed in8414 redirects to login page8415 POST #decline8416 when a user is signed in8417 stores that the user declined the terms8418 signs out the user8419 when a user is not signed in8420 redirects to login page8421API::Metrics::UserStarredDashboards8422 POST /projects/:id/metrics/user_starred_dashboards8423 with correct permissions8424 with valid parameters8425 dashboard_path as url param url escaped8426 creates a new user starred metrics dashboard8427 dashboard_path in request body unescaped8428 creates a new user starred metrics dashboard8429 with invalid parameters8430 returns error message8431 user is missing8432 returns 404 not found8433 project is missing8434 returns 404 not found8435 without correct permissions8436 returns 404 not found8437 when metrics dashboard feature is unavailable8438 returns 404 not found8439 DELETE /projects/:id/metrics/user_starred_dashboards8440 with correct permissions8441 with valid parameters8442 dashboard_path as url param url escaped8443 deletes given user starred metrics dashboard8444 dashboard_path in request body unescaped8445 deletes given user starred metrics dashboard8446 dashboard_path has not been specified8447 deletes all starred dashboards for that user within given project8448 with invalid parameters8449 user is missing8450 returns 404 not found8451 project is missing8452 returns 404 not found8453 without correct permissions8454 returns 404 not found8455 when metrics dashboard feature is unavailable8456 returns 404 not found8457ConfirmEmailWarning8458 confirm email flash warning8459 when not signed in8460 is expected not to set confirm warning for "user2765@example.org"8461 when signed in8462 with a confirmed user8463 is expected not to set confirm warning for "user2766@example.org"8464 with an unconfirmed user8465 when executing a json request8466 is expected not to set confirm warning for "user2767@example.org"8467 when executing a post request8468 is expected not to set confirm warning for "user2768@example.org"8469 when executing a get request8470 with an unconfirmed email address present8471 is expected to set confirm warning for "unconfirmed@gitlab.com"8472 without an unconfirmed email address present8473 is expected to set confirm warning for "user2770@example.org"8474 when user is being impersonated8475 is expected to set confirm warning for "user2771@example.org"8476 when impersonated user email has html in their email8477 is expected to set confirm warning for "malicious@test.com<form><input/title='<script>alert(document.domain)</script>'>"8478 when user is not being impersonated8479 is expected to set confirm warning for "user2775@example.org"8480 when user email has html in their email8481 is expected to set confirm warning for "malicious@test.com<form><input/title='<script>alert(document.domain)</script>'>"8482Query.project(fullPath).pipelines.job(id)8483 scalar fields8484 retrieves scalar fields8485 when fetching by name8486 retrieves scalar fields8487 .detailedStatus8488 retrieves detailed status8489 .stage8490 returns appropriate data8491rendering project storage type routes8492 # order random8493 behaves like a working graphql query8494 returns a successful response8495 when project is public8496 behaves like valid routes for storage type8497 contains all keys8498 contains valid paths8499 when user is nil8500 behaves like valid routes for storage type8501 contains all keys8502 contains valid paths8503 when project is private8504 behaves like valid routes for storage type8505 contains all keys8506 contains valid paths8507 when user is nil8508 hides statisticsDetailsPaths for nil users8509Groups::ImportsController8510 GET #show8511 when the user has permission to view the group8512 when the import is in progress8513 renders the show template8514 sets the flash notice8515 when the import has failed8516 redirects to the new group path8517 sets a flash error8518 when the import has finished8519 redirects to the group page8520 when there is no import state8521 redirects to the group page8522 when the user does not have permission to view the group8523 returns a 4048524Query.project(fullPath).ciConfigVariables(ref)8525 # order random8526 when the user is not authorized8527 returns nothing8528 when the user has the correct permissions8529 when the cache is not empty8530 returns the CI variables for the config8531 when the cache is empty8532 returns nothing8533Projects::ProtectedBranchesController8534 GET #index8535 redirects to repository settings8536 POST #create8537 created successfully8538 format: :html, ref_project: project, response_status: :found8539 creates a protected branch8540 format: :html, ref_project: empty_project, response_status: :found8541 creates a protected branch8542 format: :json, ref_project: project, response_status: :ok8543 creates a protected branch8544 format: :json, ref_project: empty_project, response_status: :ok8545 creates a protected branch8546 when a policy restricts rule creation8547 prevents creation of the protected branch rule8548 PUT #update8549 updates the protected branch rule8550 when repository is empty8551 updates the protected branch rule8552 when a policy restricts rule update8553 prevents update of the protected branch rule8554 DELETE #destroy8555 deletes the protected branch rule8556 when repository is empty8557 deletes the protected branch rule8558 when a policy restricts rule deletion8559 prevents deletion of the protected branch rule8560SortingPreference8561 #set_sort_order8562 when user preference contains allowed sorting8563 sets sort order from user_preference8564 when user preference contains weight sorting8565 when user can sort by issue weight8566 sets sort order from user_preference8567 when user cannot sort by issue weight8568 sets default sort order8569 when user preference contains merged date sorting8570 sets default sort order8571 when controller_name is merge_requests8572 behaves like user can sort by merged date8573 sets sort order from user_preference8574 when action_name is merge_requests8575 behaves like user can sort by merged date8576 sets sort order from user_preference8577 #set_sort_order_from_user_preference8578 when sort param given8579 when sorting_field is defined8580 sets user_preference with the right value8581 when no sorting_field is defined on the controller8582 does not touch user_preference8583 when a user sorting preference exists8584 returns the set preference8585 #set_set_order_from_cookie8586 when sort param given8587 sets the cookie with the right values and flags8588 when cookie exists8589 sets the cookie with the right values and flags8590Projects::PipelinesController8591 GET index.json8592 does not execute N+1 queries8593 GET stages.json8594 does not execute N+1 queries8595 with retried builds8596 does not execute N+1 queries8597Emails::WorkItems8598 # order random8599 #export_work_items_csv_email8600 behaves like export csv email8601 attachment has csv mime type8602 generates a useful filename8603 mentions number of objects and project name8604 doesn't need to mention truncation by default8605 when truncated8606 mentions that the csv has been truncated8607 mentions the number of objects written and expected8608Projects::Analytics::CycleAnalytics::ValueStreamsController8609 GET index8610 when user is member of the project8611 succeeds8612 exposes the default value stream8613 when issues and merge requests are disabled8614 renders 4048615 when user is not member of the project8616 renders 4048617Getting Metrics Dashboard Annotations8618 returns annotations8619 behaves like a working graphql query8620 returns a successful response8621 arguments8622 from is missing8623 returns error8624 to is missing8625 behaves like a working graphql query8626 returns a successful response8627 when metrics dashboard feature is unavailable8628 returns nil8629 behaves like a working graphql query8630 returns a successful response8631Projects::FeatureFlagsClientsController8632 POST reset_token.json8633 when user is a project maintainer8634 and feature flags client exist8635 regenerates feature flags client token8636 but feature flags client does not exist8637 returns 4048638 when user is not a project maintainer8639 returns 4048640JobPlay8641 # order random8642 plays a job8643 returns an error if the user is not allowed to play the job8644 when given variables8645 provides those variables to the job8646JiraConnect::InstallationsController8647 GET /-/jira_connect/installations8648 without JWT8649 returns 4038650 with valid JWT8651 returns status ok8652 returns the installation as json8653 with instance_url8654 returns the installation as json8655 PUT /-/jira_connect/installations8656 without JWT8657 returns 4038658 with valid JWT8659 returns 2008660 with instance_url param8661 instance response with success8662DEPRECATION WARNING: Providing a namespace ID that is not one of the constants defined on Digest::UUID generates an incorrect UUID value according to RFC 4122. To enable the correct behavior, set the Rails.application.config.active_support.use_rfc4122_namespaced_uuids configuration option to true. (called from v5 at /builds/gitlab-org/gitlab/lib/gitlab/uuid.rb:18)8663 updates the instance_url8664DEPRECATION WARNING: Providing a namespace ID that is not one of the constants defined on Digest::UUID generates an incorrect UUID value according to RFC 4122. To enable the correct behavior, set the Rails.application.config.active_support.use_rfc4122_namespaced_uuids configuration option to true. (called from v5 at /builds/gitlab-org/gitlab/lib/gitlab/uuid.rb:18)8665 sends an installed event to the self-managed instance8666 instance response with error8667DEPRECATION WARNING: Providing a namespace ID that is not one of the constants defined on Digest::UUID generates an incorrect UUID value according to RFC 4122. To enable the correct behavior, set the Rails.application.config.active_support.use_rfc4122_namespaced_uuids configuration option to true. (called from v5 at /builds/gitlab-org/gitlab/lib/gitlab/uuid.rb:18)8668 returns 422 and errors8669 invalid URL8670 returns 422 and errors8671PwaController8672 GET #manifest8673 with default appearance8674 behaves like text values8675 uses custom values8676 with customized appearance8677 with custom text values8678 behaves like text values8679 uses custom values8680 behaves like text values8681 uses custom values8682 behaves like text values8683 uses custom values8684 with custom icon8685 behaves like icon paths8686 returns expected icon paths8687 with no custom icon8688 behaves like icon paths8689 returns expected icon paths8690 GET #offline8691 responds with static HTML page8692 when user is signed in8693 skips the required signup info storing of user location8694RendersCommits8695 sets instance variables for counts8696 rendering commits8697 avoids N + 18698 .prepare_commits_for_rendering8699 avoids N+18700moving designs8701 the user is not allowed to move designs8702 returns an error8703 the neighbors do not have positions8704 maintains the correct order in the presence of other unpositioned designs8705 behaves like a successful move8706 does not error, and reports the current order8707 moving a design between two others8708 behaves like a successful move8709 does not error, and reports the current order8710 moving a design to the start8711 behaves like a successful move8712 does not error, and reports the current order8713 moving a design to the end8714 behaves like a successful move8715 does not error, and reports the current order8716Projects::NetworkController8717 # order random8718 GET #show8719 when user is unauthorized8720 shows 4048721 when user is authorized8722 renders content8723 assigns url8724 when ref_type is provided8725 assigns url with ref_type8726KasCookie8727 # order random8728 #set_kas_cookie8729 when user is signed out8730 is expected to be blank8731 when user is signed in8732 sets the KAS cookie8733 when feature flag is disabled8734 is expected to be blank8735 #content_security_policy8736 when feature flag is disabled8737 does not add KAS url to connect-src directives8738 when feature flag is enabled8739 when KAS is on same domain as rails8740 does not add KAS url to CSP connect-src directive8741 when KAS is on subdomain8742 adds KAS url to CSP connect-src directive8743 when KAS tunnel url is configured without trailing slash8744 adds KAS url to CSP connect-src directive with trailing slash8745API::Users8746 PUT /user/preferences/8747 with correct attributes and a logged in user8748 returns a success status and the value has been changed8749 missing a preference8750 returns a bad request status8751 without a logged in user8752 returns an unauthorized status8753 with an unsupported preference8754 returns a bad parameter8755 with an unsupported value8756 returns a bad parameter8757 with an update service failure8758 returns a bad request8759CiJobTokenScopeRemoveProject8760 when unauthorized8761 when not a maintainer8762 has graphql errors8763 when authorized8764 removes the target project from the job token outbound scope8765 responds successfully8766 when invalid target project is provided8767 has mutation errors8768Projects::ServicePingController8769 POST #web_ide_pipelines_count8770 behaves like counter is not increased8771 when the user is not authenticated8772 returns 3028773 when the user does not have access to the project8774 returns 4048775 behaves like counter is increased8776 when the authenticated user has access to the project8777 increments the usage counter8778Groups::AchievementsController8779 # order random8780 GET #index8781 behaves like ok response with index template if authorized8782 with a private group8783 with authorized user8784 behaves like ok response with index template8785 renders the index template8786 when achievements ff is disabled8787 behaves like response with 404 status8788 returns 4048789 with unauthorized user8790 behaves like response with 404 status8791 returns 4048792 with anonymous user8793 redirects to sign_in page8794 with a public group8795 with anonymous user8796 behaves like ok response with index template8797 renders the index template8798Getting versions related to an issue8799 returns the design filename8800 with all fields requested8801 returns correct data8802 filter by sha8803 finds only those versions at or before the given cut-off8804 filter by id8805 finds only those versions at or before the given cut-off8806 pagination8807 sorts designs for reliable pagination8808Projects::Settings::PackagesAndRegistriesController8809 GET #cleanup_tags8810 when user is unauthorized8811 shows 4048812 when user is authorized8813 renders content8814 when registry is disabled8815 shows 4048816 when container registry is disabled on project8817 shows 4048818Updating the dependency proxy group settings8819 post graphql mutation8820 without permission8821 returns no response8822 with permission8823 for owner8824 returns the updated dependency proxy settings8825 for maintainer8826 returns the updated dependency proxy settings8827Update Environment Canary Ingress8828 when kubernetes accepted the patch request8829 updates successfully8830Warden8831 # order random8832 rate limit8833 limits the number of requests that can be made from a single IP address per user8834getting project information8835 logged in8836 kas is enabled8837 returns version, revision, kas_enabled, kas_version, kas_external_url8838 kas is disabled8839 returns version and revision8840 anonymous user8841 returns nothing8842Updating an existing release asset link8843 updates and existing release asset link and returns the updated link8844Users::UnsubscribesController8845 show8846 responds with success8847 behaves the same if email address isn't known in the system8848 create8849 unsubscribes the connected user8850 behaves the same if email address isn't known in the system8851Profiles::KeysController8852 POST #create8853 creates a new key8854 with FIPS mode8855 creates a new key without MD5 fingerprint8856JwksController8857 Endpoints from the parent Doorkeeper::OpenidConnect::DiscoveryController8858 respond successfully8859 GET /-/jwks8860 returns signing keys used to sign CI_JOB_JWT8861 includes the OIDC signing key ID8862 does not leak private key data8863Performance Bar for API requests8864 with user that has access to the performance bar8865 when cookie is set to true8866 stores performance data8867 when cookie is missing8868 does not store performance data8869 with user that does not have access to the performance bar8870 does not store performance data8871Removing an HTTP Integration8872 removes the integration8873EmailRejectionMailer8874 #rejection8875 behaves like appearance header and footer enabled8876 contains header and footer8877 behaves like appearance header and footer not enabled8878 does not contain header and footer8879SpammableActions::CaptchaCheck::RestApiActionsSupport8880 #with_captcha_check_json_format8881 when spammable.render_recaptcha? is true8882 renders json containing spam_action_response_fields8883 when spammable.render_recaptcha? is false8884 yields to block8885Oauth::TokensController8886 includes Two-factor enforcement concern8887Knapsack report was generated. Preview:8888{8889 "spec/requests/api/nuget_project_packages_spec.rb": 204.50525227700018,8890 "spec/requests/api/repositories_spec.rb": 266.4642974109993,8891 "spec/requests/api/pypi_packages_spec.rb": 108.61505492499964,8892 "spec/requests/api/search_spec.rb": 120.05230828599997,8893 "spec/requests/api/group_clusters_spec.rb": 85.29416567299995,8894 "spec/requests/api/wikis_spec.rb": 80.20645216100093,8895 "spec/controllers/groups/milestones_controller_spec.rb": 70.89423975200043,8896 "spec/controllers/admin/clusters_controller_spec.rb": 57.00598561100014,8897 "spec/requests/api/helpers_spec.rb": 46.87034517900065,8898 "spec/controllers/projects/releases_controller_spec.rb": 45.2937779570002,8899 "spec/commands/metrics_server/metrics_server_spec.rb": 46.129029608000565,8900 "spec/controllers/projects/merge_requests/creations_controller_spec.rb": 38.0136176699998,8901 "spec/requests/api/settings_spec.rb": 36.88680401700003,8902 "spec/requests/api/pages/internal_access_spec.rb": 27.686112271998354,8903 "spec/requests/projects/google_cloud/databases_controller_spec.rb": 23.016158000998985,8904 "spec/controllers/projects/discussions_controller_spec.rb": 29.34380904400132,8905 "spec/requests/api/commit_statuses_spec.rb": 18.641940344999966,8906 "spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 24.78800579200106,8907 "spec/controllers/snippets/notes_controller_spec.rb": 18.539791201999833,8908 "spec/controllers/projects/labels_controller_spec.rb": 16.243417300000146,8909 "spec/controllers/repositories/git_http_controller_spec.rb": 7.767858664999949,8910 "spec/controllers/projects/artifacts_controller_spec.rb": 11.878035870999156,8911 "spec/requests/api/graphql/work_item_spec.rb": 17.085273692000555,8912 "spec/requests/api/bulk_imports_spec.rb": 8.37706374300069,8913 "spec/requests/api/project_templates_spec.rb": 8.106681600998854,8914 "spec/controllers/projects/design_management/designs/resized_image_controller_spec.rb": 9.829620632001024,8915 "spec/requests/projects/clusters/integrations_controller_spec.rb": 13.6050145420013,8916 "spec/requests/api/feature_flags_user_lists_spec.rb": 6.578930677000244,8917 "spec/requests/api/graphql/metrics/dashboard_query_spec.rb": 6.942200831001173,8918 "spec/requests/api/graphql/mutations/merge_requests/set_labels_spec.rb": 8.66520372299965,8919 "spec/requests/api/graphql/mutations/design_management/upload_spec.rb": 6.748500175001027,8920 "spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb": 9.330041516001074,8921 "spec/requests/api/graphql/mutations/award_emojis/add_spec.rb": 8.164916847999848,8922 "spec/requests/groups/harbor/repositories_controller_spec.rb": 3.9606406860002608,8923 "spec/controllers/jira_connect/subscriptions_controller_spec.rb": 3.5125856080012454,8924 "spec/requests/api/graphql/mutations/award_emojis/remove_spec.rb": 6.998927787999492,8925 "spec/requests/groups/crm/contacts_controller_spec.rb": 6.741154085000744,8926 "spec/requests/api/graphql/project/packages_cleanup_policy_spec.rb": 5.4347800350005855,8927 "spec/requests/api/graphql/group/merge_requests_spec.rb": 7.40496241999972,8928 "spec/controllers/explore/snippets_controller_spec.rb": 6.146633936999933,8929 "spec/requests/api/graphql/project/ci_access_authorized_agents_spec.rb": 2.5588950530000147,8930 "spec/controllers/users/terms_controller_spec.rb": 2.969886984999903,8931 "spec/requests/api/metrics/user_starred_dashboards_spec.rb": 5.086219709000943,8932 "spec/controllers/concerns/confirm_email_warning_spec.rb": 3.7656106499998714,8933 "spec/requests/api/graphql/ci/job_spec.rb": 4.3571529389992065,8934 "spec/requests/api/graphql/project/project_statistics_redirect_spec.rb": 2.4368246520007233,8935 "spec/controllers/groups/imports_controller_spec.rb": 2.6213006190009764,8936 "spec/requests/api/graphql/ci/config_variables_spec.rb": 1.7564007689998107,8937 "spec/controllers/projects/protected_branches_controller_spec.rb": 3.4398186929993244,8938 "spec/controllers/concerns/sorting_preference_spec.rb": 2.0030430120004894,8939 "spec/requests/projects/pipelines_controller_spec.rb": 3.931967018999785,8940 "spec/mailers/emails/work_items_spec.rb": 1.9784886830002506,8941 "spec/controllers/projects/analytics/cycle_analytics/value_streams_controller_spec.rb": 2.4168035839993536,8942 "spec/requests/api/graphql/metrics/dashboard/annotations_spec.rb": 3.619194079999943,8943 "spec/controllers/projects/feature_flags_clients_controller_spec.rb": 1.2548167040004046,8944 "spec/requests/api/graphql/mutations/ci/job/play_spec.rb": 1.682846244000757,8945 "spec/requests/jira_connect/installations_controller_spec.rb": 2.0377403490001598,8946 "spec/requests/pwa_controller_spec.rb": 1.2636197730007552,8947 "spec/controllers/concerns/renders_commits_spec.rb": 4.5426966969989735,8948 "spec/requests/api/graphql/mutations/design_management/move_spec.rb": 2.6333333479997236,8949 "spec/requests/projects/network_controller_spec.rb": 2.625060308999309,8950 "spec/controllers/concerns/kas_cookie_spec.rb": 2.1412649729991244,8951 "spec/requests/api/users_preferences_spec.rb": 0.9636419430007663,8952 "spec/requests/api/graphql/mutations/ci/job_token_scope/remove_project_spec.rb": 2.155109931998595,8953 "spec/controllers/projects/service_ping_controller_spec.rb": 0.8877120580000337,8954 "spec/requests/groups/achievements_controller_spec.rb": 2.233673426000678,8955 "spec/requests/api/graphql/project/issue/design_collection/versions_spec.rb": 2.1507240119990456,8956 "spec/requests/projects/settings/packages_and_registries_controller_spec.rb": 1.8704456010000285,8957 "spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb": 1.300710280000203,8958 "spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb": 1.8141103840007418,8959 "spec/requests/warden_spec.rb": 1.4405235310005082,8960 "spec/requests/api/graphql/metadata_query_spec.rb": 0.9139331569986098,8961 "spec/requests/api/graphql/mutations/release_asset_links/update_spec.rb": 1.508879106000677,8962 "spec/controllers/users/unsubscribes_controller_spec.rb": 1.0191811499989853,8963 "spec/controllers/profiles/keys_controller_spec.rb": 1.9106177880003088,8964 "spec/requests/jwks_controller_spec.rb": 0.6468700660007016,8965 "spec/requests/api/performance_bar_spec.rb": 0.9413382250004361,8966 "spec/requests/api/graphql/mutations/alert_management/http_integration/destroy_spec.rb": 0.9711050830010208,8967 "spec/mailers/email_rejection_mailer_spec.rb": 0.48751646599885134,8968 "spec/controllers/concerns/spammable_actions/captcha_check/rest_api_actions_support_spec.rb": 0.36463571499916725,8969 "spec/controllers/oauth/tokens_controller_spec.rb": 0.309796798999741448970}8971Knapsack global time execution for tests: 26m 52s8972Pending: (Failures listed here are expected and do not affect your suite's status)8973 1) API::CommitStatuses POST /projects/:id/statuses/:sha developer user with partitions creates records in the current partition8974 # Skipping partitioning tests until `ci_builds` is partitioned8975 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8976 RSpec::Core::Pending::SkipDeclaredInExample8977 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8978 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8979 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8980 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8981 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8982Finished in 26 minutes 57 seconds (files took 1 minute 9.01 seconds to load)89832949 examples, 0 failures, 1 pending8984Randomized with seed 131918985[TEST PROF INFO] Time spent in factories: 12:01.234 (43.71% of total time)8986RSpec exited with 0.8987No examples to retry, congrats!8989Running after script...8990$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"8997Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8999Uploading artifacts...9000coverage/: found 5 matching artifact files and directories 9001WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9002deprecations/: found 10 matching artifact files and directories 9003knapsack/: found 4 matching artifact files and directories 9004query_recorder/: found 2 matching artifact files and directories 9005rspec/: found 10 matching artifact files and directories 9006WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9007log/*.log: found 18 matching artifact files and directories 9008WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4541357840/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9009WARNING: Retrying... context=artifacts-uploader error=request redirected9010Uploading artifacts as "archive" to coordinator... 201 Created id=4541357840 responseStatus=201 Created token=64_s1x6Q9011Uploading artifacts...9012rspec/rspec-*.xml: found 1 matching artifact files and directories 9013WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4541357840/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9014WARNING: Retrying... context=artifacts-uploader error=request redirected9015Uploading artifacts as "junit" to coordinator... 201 Created id=4541357840 responseStatus=201 Created token=64_s1x6Q9017Job succeeded