rspec integration pg13-as-if-foss single-db-ci-connection 10/12
Passed Started
by
@fabiopitino
Fabio Pitino
1Running with gitlab-runner 16.1.0~beta.5.gf131a6a2 (f131a6a2)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv, system ID: s_e6befde69e263 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.19-rust-1.65-node-18.16-postgresql-13: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-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:73740c557807c4bc5d692f263c0e35454270600da4b22bbe952331411426c8b5 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:3174001f839c42e299ac06a42f8ded446edfcb33b0eb820874749a3f53eb799c ...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:85fd7bd884b6493c8eb6f4dffbe5406d97cce56aff84f1580a5eb5b9d841f158 for redis:6.2-alpine with digest redis@sha256:87c44d5d9f472e767c8737f4130c765d77bdc95c7472d6427cfc9d4632f12da6 ...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.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:61b59025d0d646cd177f654d8f81df859675be528f37dcc2ce6f39a49c7a5dd9 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13: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.19-rust-1.65-node-18.16-postgresql-13@sha256:25367d41b1034f1ecacfc9cb8eebc70cb30c6fdade3781cf295488255bf61614 ...25Running on runner-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1685669121-6825635d...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 139970, done. 31remote: Counting objects: 100% (139970/139970), done. 32remote: Compressing objects: 100% (94736/94736), done. 33remote: Total 139970 (delta 61223), reused 92025 (delta 39894), pack-reused 0 34Receiving objects: 100% (139970/139970), 123.36 MiB | 29.29 MiB/s, done.35Resolving deltas: 100% (61223/61223), done.37 * [new ref] refs/pipelines/887306308 -> refs/pipelines/88730630838Checking out 95754c79 as detached HEAD (ref is refs/merge-requests/122015/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43cache.zip is up to date 44Successfully extracted cache46Downloading artifacts for compile-test-assets as-if-foss (4400964017)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964017 responseStatus=200 OK token=64_onfyT48Downloading artifacts for detect-tests (4400964025)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964025 responseStatus=200 OK token=64_onfyT50Downloading artifacts for retrieve-tests-metadata (4400964028)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964028 responseStatus=200 OK token=64_onfyT52Downloading artifacts for setup-test-env (4400964019)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964019 responseStatus=200 OK token=64_onfyT55Using docker image sha256:61b59025d0d646cd177f654d8f81df859675be528f37dcc2ce6f39a49c7a5dd9 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13: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.19-rust-1.65-node-18.16-postgresql-13@sha256:25367d41b1034f1ecacfc9cb8eebc70cb30c6fdade3781cf295488255bf61614 ...56$ echo $FOSS_ONLY57158$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb59$ export GOPATH=$CI_PROJECT_DIR/.go60$ mkdir -p $GOPATH61$ source scripts/utils.sh62$ source scripts/prepare_build.sh720Using decomposed database config (config/database.yml.postgresql)721Geo DB won't be set up.722Embedding DB won't be set up.734$ source ./scripts/rspec_helpers.sh735$ run_timed_command "gem install knapsack --no-document"736$ gem install knapsack --no-document737Successfully installed knapsack-4.0.07381 gem installed739==> 'gem install knapsack --no-document' succeeded in 1 seconds.740$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"742$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"747$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"748$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"749SKIP_FLAKY_TESTS_AUTOMATICALLY: 750RETRY_FAILED_TESTS_IN_NEW_PROCESS: true751KNAPSACK_GENERATE_REPORT: 752FLAKY_RSPEC_GENERATE_REPORT: 753KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb754KNAPSACK_LOG_LEVEL: debug755KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg13-as-if-foss_single-db-ci-connection_10_12_report.json756FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json757FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg13-as-if-foss_single-db-ci-connection_10_12_report.json758NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg13-as-if-foss_single-db-ci-connection_10_12_report.json759SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_integration_pg13-as-if-foss_single-db-ci-connection_10_12.txt760CRYSTALBALL: 761RSPEC_TESTS_MAPPING_ENABLED: 762RSPEC_TESTS_FILTER_FILE: 763warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.765WARNING: Shared example group 'returns a valid json search response' has been previously defined at:766 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327767...and you are now defining it at:768 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327769The new definition will overwrite the original one.770WARNING: Shared example group 'returns a valid json search response' has been previously defined at:771 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327772...and you are now defining it at:773 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327774The new definition will overwrite the original one.775WARNING: Shared example group 'returns a valid json search response' has been previously defined at:776 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327777...and you are now defining it at:778 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327779The new definition will overwrite the original one.780WARNING: Shared example group 'returns a valid json search response' has been previously defined at:781 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327782...and you are now defining it at:783 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327784The new definition will overwrite the original one.785WARNING: Shared example group 'returns a valid json search response' has been previously defined at:786 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327787...and you are now defining it at:788 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327789The new definition will overwrite the original one.790WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:791 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238792...and you are now defining it at:793 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238794The new definition will overwrite the original one.795WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:796 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238797...and you are now defining it at:798 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238799The new definition will overwrite the original one.800WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:801 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238802...and you are now defining it at:803 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238804The new definition will overwrite the original one.805WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:806 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238807...and you are now defining it at:808 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238809The new definition will overwrite the original one.810WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:811 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238812...and you are now defining it at:813 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238814The new definition will overwrite the original one.815Run options: exclude {:quarantine=>true, :level=>"background_migration"}816Test environment set up in 0.423464271 seconds817API::Releases818 GET /projects/:id/releases819 returns an upcoming_release status for a future release820 returns an upcoming_release status for a past release821 avoids N+1 queries822 serializes releases for the first time and read cached data from the second time823 increments the cache key when link is updated824 increments the cache key when evidence is updated825 when there are two releases826 returns 200 HTTP status827 returns 200 HTTP status when using JOB-TOKEN auth828 returns releases ordered by released_at829 does not include description_html830 matches response schema831 returns rendered helper paths832 return releases in sorted order833 behaves like release sorting834 sorting by released_at835 ascending order836 returns the sorted releases837 descending order838 returns the sorted releases839 behaves like release sorting840 sorting by created_at841 ascending order842 returns the sorted releases843 descending order844 returns the sorted releases845 when include_html_description option is true846 includes description_html field847 when tag does not exist in git repository848 returns the tag849 when tag contains a slash850 returns 200 HTTP status851 when user is a guest852 responds 200 OK853 does not expose tag, commit, source code or helper paths854 when project is public855 responds 200 OK856 exposes tag, commit, source code and helper paths857 when user is not a project member858 cannot find the project859 when project is public860 allows the request861 when releases are public and request user is absent862 returns the releases863 GET /projects/:id/releases/:tag_name864 when there is a release865 returns 200 HTTP status866 returns 200 HTTP status when using JOB-TOKEN auth867 returns a release entry868 matches response schema869 contains source information as assets870 does not include description_html871 with evidence872 returns the evidence873 #collected_at874 when release is associated to mutiple milestones875 milestones order876 behaves like correct release milestone order877 due_date878 when both milestones have a due_date879 behaves like correct sort order880 sorts milestonee_1 before milestone_2881 when one milestone does not have a due_date882 behaves like correct sort order883 sorts milestonee_1 before milestone_2884 start_date885 when both milestones have a start_date886 behaves like correct sort order887 sorts milestonee_1 before milestone_2888 when one milestone does not have a start_date889 behaves like correct sort order890 sorts milestonee_1 before milestone_2891 title892 behaves like correct sort order893 sorts milestonee_1 before milestone_2894 when release has link asset895 contains link information as assets896 when include_html_description option is true897 includes description_html field898 when user is a guest899 responds 403 Forbidden900 when project is public901 responds 200 OK902 exposes tag and commit903 when specified tag is not found in the project904 returns 404 for maintainer905 returns project not found for no user906 returns forbidden for guest907 when user is not a project member908 cannot find the project909 when project is public910 allows the request911 when release is associated to a milestone912 matches schema913 exposes milestones914 returns issue stats for milestone915 when project restricts visibility of issues and merge requests916 does not expose milestones917 when project restricts visibility of issues918 exposes milestones919 GET /projects/:id/releases/:tag_name/downloads/*direct_asset_path920 with an invalid release tag921 returns 404 for maintater922 returns project not found for no user923 returns forbidden for guest924 with a valid release tag925 when filepath is provided926 when filepath exists927 redirects to the file download URL928 redirects to the file download URL when using JOB-TOKEN auth929 when user is a guest930 responds 403 Forbidden931 when project is public932 responds 200 OK933 when direct_asset_path is used934 redirects to the file download URL successfully935 when filepath does not exists936 returns 404 for maintater937 returns project not found for no user938 returns forbidden for guest939 when filepath is not provided940 returns 404 for maintater941 returns project not found for no user942 returns forbidden for guest943 GET /projects/:id/releases/permalink/latest944 when there is no release945 returns not found946 returns not found when using JOB-TOKEN auth947 when there are more than one release948 redirects to the latest release tag949 redirects to the latest release tag when using JOB-TOKEN auth950 when there are query parameters present951 includes the query params on the redirection952 discards the `order_by` query param953 when downloading a release asset954 redirects to the right endpoint keeping the suffix_path955 returns error when there is path traversal in suffix path956 POST /projects/:id/releases957 accepts the request958 creates a new release959 creates a new release without description960 sets the released_at to the current time if the released_at parameter is not provided961 sets the released_at to the value in the parameters if specified962 assumes the utc timezone for released_at if the timezone is not provided963 allows specifying a released_at with a local time zone964 matches response schema965 does not create a new tag966 when using `direct_asset_path` for the asset link967 creates a new release successfully968 with protected tag969 when user has access to the protected tag970 accepts the request971 when user does not have access to the protected tag972 forbids the request973 when user is a reporter974 forbids the request975 when user is not a project member976 forbids the request977 when project is public978 forbids the request979 when create assets altogether980 when create one asset981 accepts the request982 creates an asset with specified parameters983 matches response schema984 when creating two assets985 creates two assets with specified parameters986 when link names are duplicates987 recognizes as a bad request988 when using JOB-TOKEN auth989 when no token is provided990 returns a :not_found error991 when an invalid token is provided992 returns an :unauthorized error993 when a valid token is provided994 creates the release for a running job995 returns an :unauthorized error for a completed job996 when tag does not exist in git repository997 creates a new tag998 creates a new release999 when tag name is HEAD1000 returns a 400 error as failure on tag creation1001 when tag name is empty1002 returns a 400 error as failure on tag creation1003 when tag_message is provided1004 creates an annotated tag with the tag message1005 when release already exists1006 returns an error as conflicted request1007 with milestones1008 with a project milestone1009 by title1010 behaves like adds milestone1011 adds the milestone1012 by id1013 behaves like adds milestone1014 adds the milestone1015 with multiple milestones1016 adds all milestones1017 with an empty milestone1018 removes all milestones1019 with a non-existant milestone1020 returns a 400 error as milestone not found1021 with a milestone from a different project1022 returns a 400 error as milestone not found1023 PUT /projects/:id/releases/:tag_name1024 accepts the request1025 accepts the request when using JOB-TOKEN auth1026 updates the description1027 does not change other attributes1028 matches response schema1029 updates released_at1030 with protected tag1031 when user has access to the protected tag1032 accepts the request1033 when user does not have access to the protected tag1034 forbids the request1035 when user tries to update sha1036 does not allow the request1037 when params is empty1038 does not allow the request1039 when there are no corresponding releases1040 forbids the request1041 when user is a reporter1042 forbids the request1043 when user is not a project member1044 forbids the request1045 when project is public1046 forbids the request1047 with milestones1048 when a milestone is passed in1049 by title1050 behaves like updates milestone1051 updates the milestone1052 by id1053 behaves like updates milestone1054 updates the milestone1055 an identical milestone1056 does not change the milestone1057 an empty milestone1058 removes the milestone1059 without milestones parameter1060 does not change the milestone1061 multiple milestones1062 with one new1063 adds the new milestone1064 with all new1065 by title1066 behaves like update milestones1067 replaces the milestones1068 by id1069 behaves like update milestones1070 replaces the milestones1071 DELETE /projects/:id/releases/:tag_name1072 accepts the request1073 accepts the request when using JOB-TOKEN auth1074 destroys the release1075 does not remove a tag in repository1076 matches response schema1077 with protected tag1078 when user has access to the protected tag1079 accepts the request1080 when user does not have access to the protected tag1081 forbids the request1082 when there are no corresponding releases1083 forbids the request1084 when user is a reporter1085 forbids the request1086 when user is not a project member1087 forbids the request1088 when project is public1089 forbids the request1090 Track API events1091 when tracking event with labels from User-Agent1092 adds the tracked User-Agent to the label of the tracked event1093 skips label when User-Agent is invalid1094 GET /groups/:id/releases1095 behaves like GET request permissions for admin mode1096 behaves like when admin1097 behaves like makes request1098 returns1099 behaves like makes request1100 returns1101 behaves like when user1102 returns1103 behaves like makes request1104 returns1105 when authenticated as owner1106 gets releases from all projects in the group1107 respects order by parameters1108 respects the simple parameter1109 denies access to private groups1110 when authenticated as guest1111 does not expose tag, commit, source code or helper paths1112 performance testing1113 behaves like avoids N+1 queries1114 with subgroups1115 include_subgroups avoids N+1 queries1116 behaves like avoids N+1 queries1117 with subgroups1118 include_subgroups avoids N+1 queries1119API::NugetProjectPackages1120 GET /api/v4/projects/:id/packages/nuget1121 behaves like handling nuget service requests1122 with valid target1123 personal token1124 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1125 behaves like process nuget service index request1126 for user type developer1127 returns a valid json response1128 behaves like returning response status1129 returns success1130 behaves like a package tracking event1131 creates a gitlab tracking event cli_metadata1132 with invalid format1133 behaves like rejects nuget packages access1134 for user type anonymous1135 behaves like returning response status1136 returns not_found1137 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1138 behaves like process nuget service index request1139 for user type guest1140 returns a valid json response1141 behaves like returning response status1142 returns success1143 behaves like a package tracking event1144 creates a gitlab tracking event cli_metadata1145 with invalid format1146 behaves like rejects nuget packages access1147 for user type anonymous1148 behaves like returning response status1149 returns not_found1150 visibility_level: "PUBLIC", 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: "PUBLIC", 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: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1163 behaves like process nuget service index request1164 for user type developer1165 returns a valid json response1166 behaves like returning response status1167 returns success1168 behaves like a package tracking event1169 creates a gitlab tracking event cli_metadata1170 with invalid format1171 behaves like rejects nuget packages access1172 for user type anonymous1173 behaves like returning response status1174 returns not_found1175 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1176 behaves like process nuget service index request1177 for user type guest1178 returns a valid json response1179 behaves like returning response status1180 returns success1181 behaves like a package tracking event1182 creates a gitlab tracking event cli_metadata1183 with invalid format1184 behaves like rejects nuget packages access1185 for user type anonymous1186 behaves like returning response status1187 returns not_found1188 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1189 behaves like rejects nuget packages access1190 for user type developer1191 has the correct response header1192 behaves like returning response status1193 returns unauthorized1194 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1195 behaves like rejects nuget packages access1196 for user type guest1197 has the correct response header1198 behaves like returning response status1199 returns unauthorized1200 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1201 behaves like process nuget service index request1202 for user type anonymous1203 returns a valid json response1204 behaves like returning response status1205 returns success1206 behaves like a package tracking event1207 creates a gitlab tracking event cli_metadata1208 with invalid format1209 behaves like rejects nuget packages access1210 for user type anonymous1211 behaves like returning response status1212 returns not_found1213 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1214 behaves like process nuget service index request1215 for user type developer1216 returns a valid json response1217 behaves like returning response status1218 returns success1219 behaves like a package tracking event1220 creates a gitlab tracking event cli_metadata1221 with invalid format1222 behaves like rejects nuget packages access1223 for user type anonymous1224 behaves like returning response status1225 returns not_found1226 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1227 behaves like rejects nuget packages access1228 for user type guest1229 behaves like returning response status1230 returns forbidden1231 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1232 behaves like rejects nuget packages access1233 for user type developer1234 has the correct response header1235 behaves like returning response status1236 returns unauthorized1237 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1238 behaves like rejects nuget packages access1239 for user type guest1240 has the correct response header1241 behaves like returning response status1242 returns unauthorized1243 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1244 behaves like rejects nuget packages access1245 for user type developer1246 behaves like returning response status1247 returns not_found1248 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1249 behaves like rejects nuget packages access1250 for user type guest1251 behaves like returning response status1252 returns not_found1253 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1254 behaves like rejects nuget packages access1255 for user type developer1256 has the correct response header1257 behaves like returning response status1258 returns unauthorized1259 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1260 behaves like rejects nuget packages access1261 for user type guest1262 has the correct response header1263 behaves like returning response status1264 returns unauthorized1265 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1266 behaves like rejects nuget packages access1267 for user type anonymous1268 has the correct response header1269 behaves like returning response status1270 returns unauthorized1271 with job token1272 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1273 behaves like process nuget service index request1274 for user type developer1275 returns a valid json response1276 behaves like returning response status1277 returns success1278 behaves like a package tracking event1279 creates a gitlab tracking event cli_metadata1280 with invalid format1281 behaves like rejects nuget packages access1282 for user type anonymous1283 behaves like returning response status1284 returns not_found1285 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1286 behaves like process nuget service index request1287 for user type guest1288 returns a valid json response1289 behaves like returning response status1290 returns success1291 behaves like a package tracking event1292 creates a gitlab tracking event cli_metadata1293 with invalid format1294 behaves like rejects nuget packages access1295 for user type anonymous1296 behaves like returning response status1297 returns not_found1298 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1299 behaves like rejects nuget packages access1300 for user type developer1301 has the correct response header1302 behaves like returning response status1303 returns unauthorized1304 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1305 behaves like rejects nuget packages access1306 for user type guest1307 has the correct response header1308 behaves like returning response status1309 returns unauthorized1310 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1311 behaves like process nuget service index request1312 for user type developer1313 returns a valid json response1314 behaves like returning response status1315 returns success1316 behaves like a package tracking event1317 creates a gitlab tracking event cli_metadata1318 with invalid format1319 behaves like rejects nuget packages access1320 for user type anonymous1321 behaves like returning response status1322 returns not_found1323 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1324 behaves like process nuget service index request1325 for user type guest1326 returns a valid json response1327 behaves like returning response status1328 returns success1329 behaves like a package tracking event1330 creates a gitlab tracking event cli_metadata1331 with invalid format1332 behaves like rejects nuget packages access1333 for user type anonymous1334 behaves like returning response status1335 returns not_found1336 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1337 behaves like rejects nuget packages access1338 for user type developer1339 has the correct response header1340 behaves like returning response status1341 returns unauthorized1342 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1343 behaves like rejects nuget packages access1344 for user type guest1345 has the correct response header1346 behaves like returning response status1347 returns unauthorized1348 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1349 behaves like process nuget service index request1350 for user type anonymous1351 returns a valid json response1352 behaves like returning response status1353 returns success1354 behaves like a package tracking event1355 creates a gitlab tracking event cli_metadata1356 with invalid format1357 behaves like rejects nuget packages access1358 for user type anonymous1359 behaves like returning response status1360 returns not_found1361 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1362 behaves like process nuget service index request1363 for user type developer1364 returns a valid json response1365 behaves like returning response status1366 returns success1367 behaves like a package tracking event1368 creates a gitlab tracking event cli_metadata1369 with invalid format1370 behaves like rejects nuget packages access1371 for user type anonymous1372 behaves like returning response status1373 returns not_found1374 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1375 behaves like rejects nuget packages access1376 for user type guest1377 behaves like returning response status1378 returns forbidden1379 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1380 behaves like rejects nuget packages access1381 for user type developer1382 has the correct response header1383 behaves like returning response status1384 returns unauthorized1385 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1386 behaves like rejects nuget packages access1387 for user type guest1388 has the correct response header1389 behaves like returning response status1390 returns unauthorized1391 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1392 behaves like rejects nuget packages access1393 for user type developer1394 behaves like returning response status1395 returns not_found1396 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1397 behaves like rejects nuget packages access1398 for user type guest1399 behaves like returning response status1400 returns not_found1401 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1402 behaves like rejects nuget packages access1403 for user type developer1404 has the correct response header1405 behaves like returning response status1406 returns unauthorized1407 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1408 behaves like rejects nuget packages access1409 for user type guest1410 has the correct response header1411 behaves like returning response status1412 returns unauthorized1413 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1414 behaves like rejects nuget packages access1415 for user type anonymous1416 has the correct response header1417 behaves like returning response status1418 returns unauthorized1419 behaves like deploy token for package GET requests1420 with deploy token headers1421 valid token1422 behaves like returning response status1423 returns success1424 invalid token1425 behaves like returning response status1426 returns unauthorized1427 behaves like rejects nuget access with unknown target id1428 with an unknown target1429 as anonymous1430 behaves like rejects nuget packages access1431 for user type anonymous1432 has the correct response header1433 behaves like returning response status1434 returns unauthorized1435 as authenticated user1436 behaves like rejects nuget packages access1437 for user type anonymous1438 behaves like returning response status1439 returns not_found1440 behaves like rejects nuget access with invalid target id1441 with a target id with invalid integers1442 id: "/../", status: :bad_request1443 behaves like rejects nuget packages access1444 for user type anonymous1445 behaves like returning response status1446 returns bad_request1447 id: "", status: :not_found1448 behaves like rejects nuget packages access1449 for user type anonymous1450 behaves like returning response status1451 returns not_found1452 id: "%20", status: :bad_request1453 behaves like rejects nuget packages access1454 for user type anonymous1455 behaves like returning response status1456 returns bad_request1457 id: "%2e%2e%2f", status: :bad_request1458 behaves like rejects nuget packages access1459 for user type anonymous1460 behaves like returning response status1461 returns bad_request1462 id: "NaN", status: :bad_request1463 behaves like rejects nuget packages access1464 for user type anonymous1465 behaves like returning response status1466 returns bad_request1467 id: 1253, status: :unauthorized1468 behaves like rejects nuget packages access1469 for user type anonymous1470 has the correct response header1471 behaves like returning response status1472 returns unauthorized1473 id: "anything25", status: :bad_request1474 behaves like rejects nuget packages access1475 for user type anonymous1476 behaves like returning response status1477 returns bad_request1478 behaves like accept get request on private project with access to package registry for everyone1479 behaves like returning response status1480 returns ok1481 GET /api/v4/projects/:id/packages/nuget/metadata/*package_name/index1482 behaves like handling nuget metadata requests with package name1483 with valid target1484 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1485 behaves like process nuget metadata request at package name level1486 for user type developer1487 behaves like returning response status1488 returns success1489 behaves like returning nuget metadata json response with json schema1490 returns a valid json response1491 with invalid format1492 behaves like rejects nuget packages access1493 for user type anonymous1494 behaves like returning response status1495 returns not_found1496 with lower case package name1497 behaves like returning response status1498 returns success1499 behaves like returning nuget metadata json response with json schema1500 returns a valid json response1501 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1502 behaves like process nuget metadata request at package name level1503 for user type guest1504 behaves like returning response status1505 returns success1506 behaves like returning nuget metadata json response with json schema1507 returns a valid json response1508 with invalid format1509 behaves like rejects nuget packages access1510 for user type anonymous1511 behaves like returning response status1512 returns not_found1513 with lower case package name1514 behaves like returning response status1515 returns success1516 behaves like returning nuget metadata json response with json schema1517 returns a valid json response1518 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1519 behaves like rejects nuget packages access1520 for user type developer1521 has the correct response header1522 behaves like returning response status1523 returns unauthorized1524 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1525 behaves like rejects nuget packages access1526 for user type guest1527 has the correct response header1528 behaves like returning response status1529 returns unauthorized1530 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1531 behaves like process nuget metadata request at package name level1532 for user type developer1533 behaves like returning response status1534 returns success1535 behaves like returning nuget metadata json response with json schema1536 returns a valid json response1537 with invalid format1538 behaves like rejects nuget packages access1539 for user type anonymous1540 behaves like returning response status1541 returns not_found1542 with lower case package name1543 behaves like returning response status1544 returns success1545 behaves like returning nuget metadata json response with json schema1546 returns a valid json response1547 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1548 behaves like process nuget metadata request at package name level1549 for user type guest1550 behaves like returning response status1551 returns success1552 behaves like returning nuget metadata json response with json schema1553 returns a valid json response1554 with invalid format1555 behaves like rejects nuget packages access1556 for user type anonymous1557 behaves like returning response status1558 returns not_found1559 with lower case package name1560 behaves like returning response status1561 returns success1562 behaves like returning nuget metadata json response with json schema1563 returns a valid json response1564 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1565 behaves like rejects nuget packages access1566 for user type developer1567 has the correct response header1568 behaves like returning response status1569 returns unauthorized1570 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1571 behaves like rejects nuget packages access1572 for user type guest1573 has the correct response header1574 behaves like returning response status1575 returns unauthorized1576 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1577 behaves like process nuget metadata request at package name level1578 for user type anonymous1579 behaves like returning response status1580 returns success1581 behaves like returning nuget metadata json response with json schema1582 returns a valid json response1583 with invalid format1584 behaves like rejects nuget packages access1585 for user type anonymous1586 behaves like returning response status1587 returns not_found1588 with lower case package name1589 behaves like returning response status1590 returns success1591 behaves like returning nuget metadata json response with json schema1592 returns a valid json response1593 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1594 behaves like process nuget metadata request at package name level1595 for user type developer1596 behaves like returning response status1597 returns success1598 behaves like returning nuget metadata json response with json schema1599 returns a valid json response1600 with invalid format1601 behaves like rejects nuget packages access1602 for user type anonymous1603 behaves like returning response status1604 returns not_found1605 with lower case package name1606 behaves like returning response status1607 returns success1608 behaves like returning nuget metadata json response with json schema1609 returns a valid json response1610 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1611 behaves like rejects nuget packages access1612 for user type guest1613 behaves like returning response status1614 returns forbidden1615 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1616 behaves like rejects nuget packages access1617 for user type developer1618 has the correct response header1619 behaves like returning response status1620 returns unauthorized1621 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1622 behaves like rejects nuget packages access1623 for user type guest1624 has the correct response header1625 behaves like returning response status1626 returns unauthorized1627 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1628 behaves like rejects nuget packages access1629 for user type developer1630 behaves like returning response status1631 returns not_found1632 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1633 behaves like rejects nuget packages access1634 for user type guest1635 behaves like returning response status1636 returns not_found1637 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1638 behaves like rejects nuget packages access1639 for user type developer1640 has the correct response header1641 behaves like returning response status1642 returns unauthorized1643 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1644 behaves like rejects nuget packages access1645 for user type guest1646 has the correct response header1647 behaves like returning response status1648 returns unauthorized1649 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1650 behaves like rejects nuget packages access1651 for user type anonymous1652 has the correct response header1653 behaves like returning response status1654 returns unauthorized1655 behaves like deploy token for package GET requests1656 with deploy token headers1657 valid token1658 behaves like returning response status1659 returns success1660 invalid token1661 behaves like returning response status1662 returns unauthorized1663 behaves like rejects nuget access with unknown target id1664 with an unknown target1665 as anonymous1666 behaves like rejects nuget packages access1667 for user type anonymous1668 has the correct response header1669 behaves like returning response status1670 returns unauthorized1671 as authenticated user1672 behaves like rejects nuget packages access1673 for user type anonymous1674 behaves like returning response status1675 returns not_found1676 behaves like rejects nuget access with invalid target id1677 with a target id with invalid integers1678 id: "/../", status: :bad_request1679 behaves like rejects nuget packages access1680 for user type anonymous1681 behaves like returning response status1682 returns bad_request1683 id: "", status: :not_found1684 behaves like rejects nuget packages access1685 for user type anonymous1686 behaves like returning response status1687 returns not_found1688 id: "%20", status: :bad_request1689 behaves like rejects nuget packages access1690 for user type anonymous1691 behaves like returning response status1692 returns bad_request1693 id: "%2e%2e%2f", status: :bad_request1694 behaves like rejects nuget packages access1695 for user type anonymous1696 behaves like returning response status1697 returns bad_request1698 id: "NaN", status: :bad_request1699 behaves like rejects nuget packages access1700 for user type anonymous1701 behaves like returning response status1702 returns bad_request1703 id: 1253, status: :unauthorized1704 behaves like rejects nuget packages access1705 for user type anonymous1706 has the correct response header1707 behaves like returning response status1708 returns unauthorized1709 id: "anything25", status: :bad_request1710 behaves like rejects nuget packages access1711 for user type anonymous1712 behaves like returning response status1713 returns bad_request1714 behaves like accept get request on private project with access to package registry for everyone1715 behaves like returning response status1716 returns ok1717 GET /api/v4/projects/:id/packages/nuget/metadata/*package_name/*package_version1718 behaves like handling nuget metadata requests with package name and package version1719 with valid target1720 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: :success1721 behaves like process nuget metadata request at package name and package version level1722 for user type developer1723 behaves like returning response status1724 returns success1725 behaves like returning nuget metadata json response with json schema1726 returns a valid json response1727 with invalid format1728 behaves like rejects nuget packages access1729 for user type anonymous1730 behaves like returning response status1731 returns not_found1732 with lower case package name1733 behaves like returning response status1734 returns success1735 behaves like returning nuget metadata json response with json schema1736 returns a valid json response1737 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: :success1738 behaves like process nuget metadata request at package name and package version level1739 for user type guest1740 behaves like returning response status1741 returns success1742 behaves like returning nuget metadata json response with json schema1743 returns a valid json response1744 with invalid format1745 behaves like rejects nuget packages access1746 for user type anonymous1747 behaves like returning response status1748 returns not_found1749 with lower case package name1750 behaves like returning response status1751 returns success1752 behaves like returning nuget metadata json response with json schema1753 returns a valid json response1754 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1755 behaves like rejects nuget packages access1756 for user type developer1757 has the correct response header1758 behaves like returning response status1759 returns unauthorized1760 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1761 behaves like rejects nuget packages access1762 for user type guest1763 has the correct response header1764 behaves like returning response status1765 returns unauthorized1766 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: :success1767 behaves like process nuget metadata request at package name and package version level1768 for user type developer1769 behaves like returning response status1770 returns success1771 behaves like returning nuget metadata json response with json schema1772 returns a valid json response1773 with invalid format1774 behaves like rejects nuget packages access1775 for user type anonymous1776 behaves like returning response status1777 returns not_found1778 with lower case package name1779 behaves like returning response status1780 returns success1781 behaves like returning nuget metadata json response with json schema1782 returns a valid json response1783 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: :success1784 behaves like process nuget metadata request at package name and package version level1785 for user type guest1786 behaves like returning response status1787 returns success1788 behaves like returning nuget metadata json response with json schema1789 returns a valid json response1790 with invalid format1791 behaves like rejects nuget packages access1792 for user type anonymous1793 behaves like returning response status1794 returns not_found1795 with lower case package name1796 behaves like returning response status1797 returns success1798 behaves like returning nuget metadata json response with json schema1799 returns a valid json response1800 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1801 behaves like rejects nuget packages access1802 for user type developer1803 has the correct response header1804 behaves like returning response status1805 returns unauthorized1806 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1807 behaves like rejects nuget packages access1808 for user type guest1809 has the correct response header1810 behaves like returning response status1811 returns unauthorized1812 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: :success1813 behaves like process nuget metadata request at package name and package version level1814 for user type anonymous1815 behaves like returning response status1816 returns success1817 behaves like returning nuget metadata json response with json schema1818 returns a valid json response1819 with invalid format1820 behaves like rejects nuget packages access1821 for user type anonymous1822 behaves like returning response status1823 returns not_found1824 with lower case package name1825 behaves like returning response status1826 returns success1827 behaves like returning nuget metadata json response with json schema1828 returns a valid json response1829 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: :success1830 behaves like process nuget metadata request at package name and package version level1831 for user type developer1832 behaves like returning response status1833 returns success1834 behaves like returning nuget metadata json response with json schema1835 returns a valid json response1836 with invalid format1837 behaves like rejects nuget packages access1838 for user type anonymous1839 behaves like returning response status1840 returns not_found1841 with lower case package name1842 behaves like returning response status1843 returns success1844 behaves like returning nuget metadata json response with json schema1845 returns a valid json response1846 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1847 behaves like rejects nuget packages access1848 for user type guest1849 behaves like returning response status1850 returns forbidden1851 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1852 behaves like rejects nuget packages access1853 for user type developer1854 has the correct response header1855 behaves like returning response status1856 returns unauthorized1857 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1858 behaves like rejects nuget packages access1859 for user type guest1860 has the correct response header1861 behaves like returning response status1862 returns unauthorized1863 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1864 behaves like rejects nuget packages access1865 for user type developer1866 behaves like returning response status1867 returns not_found1868 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1869 behaves like rejects nuget packages access1870 for user type guest1871 behaves like returning response status1872 returns not_found1873 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1874 behaves like rejects nuget packages access1875 for user type developer1876 has the correct response header1877 behaves like returning response status1878 returns unauthorized1879 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1880 behaves like rejects nuget packages access1881 for user type guest1882 has the correct response header1883 behaves like returning response status1884 returns unauthorized1885 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1886 behaves like rejects nuget packages access1887 for user type anonymous1888 has the correct response header1889 behaves like returning response status1890 returns unauthorized1891 behaves like deploy token for package GET requests1892 with deploy token headers1893 valid token1894 behaves like returning response status1895 returns success1896 invalid token1897 behaves like returning response status1898 returns unauthorized1899 behaves like rejects nuget access with unknown target id1900 with an unknown target1901 as anonymous1902 behaves like rejects nuget packages access1903 for user type anonymous1904 has the correct response header1905 behaves like returning response status1906 returns unauthorized1907 as authenticated user1908 behaves like rejects nuget packages access1909 for user type anonymous1910 behaves like returning response status1911 returns not_found1912 behaves like rejects nuget access with invalid target id1913 with a target id with invalid integers1914 id: "/../", status: :bad_request1915 behaves like rejects nuget packages access1916 for user type anonymous1917 behaves like returning response status1918 returns bad_request1919 id: "", status: :not_found1920 behaves like rejects nuget packages access1921 for user type anonymous1922 behaves like returning response status1923 returns not_found1924 id: "%20", status: :bad_request1925 behaves like rejects nuget packages access1926 for user type anonymous1927 behaves like returning response status1928 returns bad_request1929 id: "%2e%2e%2f", status: :bad_request1930 behaves like rejects nuget packages access1931 for user type anonymous1932 behaves like returning response status1933 returns bad_request1934 id: "NaN", status: :bad_request1935 behaves like rejects nuget packages access1936 for user type anonymous1937 behaves like returning response status1938 returns bad_request1939 id: 1253, status: :unauthorized1940 behaves like rejects nuget packages access1941 for user type anonymous1942 has the correct response header1943 behaves like returning response status1944 returns unauthorized1945 id: "anything25", status: :bad_request1946 behaves like rejects nuget packages access1947 for user type anonymous1948 behaves like returning response status1949 returns bad_request1950 behaves like accept get request on private project with access to package registry for everyone1951 behaves like returning response status1952 returns ok1953 GET /api/v4/projects/:id/packages/nuget/query1954 behaves like handling nuget search requests1955 with valid target1956 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1957 behaves like process nuget search request1958 for user type developer1959 behaves like returns a valid json search response1960 returns a valid json response1961 behaves like returning response status1962 returns success1963 behaves like a package tracking event1964 creates a gitlab tracking event search_package1965 with skip set to 21966 behaves like returns a valid json search response1967 returns a valid json response1968 behaves like returning response status1969 returns success1970 with take set to 21971 behaves like returns a valid json search response1972 returns a valid json response1973 behaves like returning response status1974 returns success1975 without prereleases1976 behaves like returns a valid json search response1977 returns a valid json response1978 behaves like returning response status1979 returns success1980 with empty search term1981 behaves like returns a valid json search response1982 returns a valid json response1983 behaves like returning response status1984 returns success1985 with nil search term1986 behaves like returns a valid json search response1987 returns a valid json response1988 behaves like returning response status1989 returns success1990 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1991 behaves like process nuget search request1992 for user type guest1993 behaves like returns a valid json search response1994 returns a valid json response1995 behaves like returning response status1996 returns success1997 behaves like a package tracking event1998 creates a gitlab tracking event search_package1999 with skip set to 22000 behaves like returns a valid json search response2001 returns a valid json response2002 behaves like returning response status2003 returns success2004 with take set to 22005 behaves like returns a valid json search response2006 returns a valid json response2007 behaves like returning response status2008 returns success2009 without prereleases2010 behaves like returns a valid json search response2011 returns a valid json response2012 behaves like returning response status2013 returns success2014 with empty search term2015 behaves like returns a valid json search response2016 returns a valid json response2017 behaves like returning response status2018 returns success2019 with nil search term2020 behaves like returns a valid json search response2021 returns a valid json response2022 behaves like returning response status2023 returns success2024 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2025 behaves like rejects nuget packages access2026 for user type developer2027 has the correct response header2028 behaves like returning response status2029 returns unauthorized2030 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2031 behaves like rejects nuget packages access2032 for user type guest2033 has the correct response header2034 behaves like returning response status2035 returns unauthorized2036 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2037 behaves like process nuget search request2038 for user type developer2039 behaves like returns a valid json search response2040 returns a valid json response2041 behaves like returning response status2042 returns success2043 behaves like a package tracking event2044 creates a gitlab tracking event search_package2045 with skip set to 22046 behaves like returns a valid json search response2047 returns a valid json response2048 behaves like returning response status2049 returns success2050 with take set to 22051 behaves like returns a valid json search response2052 returns a valid json response2053 behaves like returning response status2054 returns success2055 without prereleases2056 behaves like returns a valid json search response2057 returns a valid json response2058 behaves like returning response status2059 returns success2060 with empty search term2061 behaves like returns a valid json search response2062 returns a valid json response2063 behaves like returning response status2064 returns success2065 with nil search term2066 behaves like returns a valid json search response2067 returns a valid json response2068 behaves like returning response status2069 returns success2070 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2071 behaves like process nuget search request2072 for user type guest2073 behaves like returns a valid json search response2074 returns a valid json response2075 behaves like returning response status2076 returns success2077 behaves like a package tracking event2078 creates a gitlab tracking event search_package2079 with skip set to 22080 behaves like returns a valid json search response2081 returns a valid json response2082 behaves like returning response status2083 returns success2084 with take set to 22085 behaves like returns a valid json search response2086 returns a valid json response2087 behaves like returning response status2088 returns success2089 without prereleases2090 behaves like returns a valid json search response2091 returns a valid json response2092 behaves like returning response status2093 returns success2094 with empty search term2095 behaves like returns a valid json search response2096 returns a valid json response2097 behaves like returning response status2098 returns success2099 with nil search term2100 behaves like returns a valid json search response2101 returns a valid json response2102 behaves like returning response status2103 returns success2104 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2105 behaves like rejects nuget packages access2106 for user type developer2107 has the correct response header2108 behaves like returning response status2109 returns unauthorized2110 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2111 behaves like rejects nuget packages access2112 for user type guest2113 has the correct response header2114 behaves like returning response status2115 returns unauthorized2116 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2117 behaves like process nuget search request2118 for user type anonymous2119 behaves like returns a valid json search response2120 returns a valid json response2121 behaves like returning response status2122 returns success2123 behaves like a package tracking event2124 creates a gitlab tracking event search_package2125 with skip set to 22126 behaves like returns a valid json search response2127 returns a valid json response2128 behaves like returning response status2129 returns success2130 with take set to 22131 behaves like returns a valid json search response2132 returns a valid json response2133 behaves like returning response status2134 returns success2135 without prereleases2136 behaves like returns a valid json search response2137 returns a valid json response2138 behaves like returning response status2139 returns success2140 with empty search term2141 behaves like returns a valid json search response2142 returns a valid json response2143 behaves like returning response status2144 returns success2145 with nil search term2146 behaves like returns a valid json search response2147 returns a valid json response2148 behaves like returning response status2149 returns success2150 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2151 behaves like process nuget search request2152 for user type developer2153 behaves like returns a valid json search response2154 returns a valid json response2155 behaves like returning response status2156 returns success2157 behaves like a package tracking event2158 creates a gitlab tracking event search_package2159 with skip set to 22160 behaves like returns a valid json search response2161 returns a valid json response2162 behaves like returning response status2163 returns success2164 with take set to 22165 behaves like returns a valid json search response2166 returns a valid json response2167 behaves like returning response status2168 returns success2169 without prereleases2170 behaves like returns a valid json search response2171 returns a valid json response2172 behaves like returning response status2173 returns success2174 with empty search term2175 behaves like returns a valid json search response2176 returns a valid json response2177 behaves like returning response status2178 returns success2179 with nil search term2180 behaves like returns a valid json search response2181 returns a valid json response2182 behaves like returning response status2183 returns success2184 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2185 behaves like rejects nuget packages access2186 for user type guest2187 behaves like returning response status2188 returns forbidden2189 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2190 behaves like rejects nuget packages access2191 for user type developer2192 has the correct response header2193 behaves like returning response status2194 returns unauthorized2195 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2196 behaves like rejects nuget packages access2197 for user type guest2198 has the correct response header2199 behaves like returning response status2200 returns unauthorized2201 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2202 behaves like rejects nuget packages access2203 for user type developer2204 behaves like returning response status2205 returns not_found2206 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2207 behaves like rejects nuget packages access2208 for user type guest2209 behaves like returning response status2210 returns not_found2211 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2212 behaves like rejects nuget packages access2213 for user type developer2214 has the correct response header2215 behaves like returning response status2216 returns unauthorized2217 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2218 behaves like rejects nuget packages access2219 for user type guest2220 has the correct response header2221 behaves like returning response status2222 returns unauthorized2223 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2224 behaves like rejects nuget packages access2225 for user type anonymous2226 has the correct response header2227 behaves like returning response status2228 returns unauthorized2229 behaves like deploy token for package GET requests2230 with deploy token headers2231 valid token2232 behaves like returning response status2233 returns success2234 invalid token2235 behaves like returning response status2236 returns unauthorized2237 behaves like rejects nuget access with unknown target id2238 with an unknown target2239 as anonymous2240 behaves like rejects nuget packages access2241 for user type anonymous2242 has the correct response header2243 behaves like returning response status2244 returns unauthorized2245 as authenticated user2246 behaves like rejects nuget packages access2247 for user type anonymous2248 behaves like returning response status2249 returns not_found2250 behaves like rejects nuget access with invalid target id2251 with a target id with invalid integers2252 id: "/../", status: :bad_request2253 behaves like rejects nuget packages access2254 for user type anonymous2255 behaves like returning response status2256 returns bad_request2257 id: "", status: :not_found2258 behaves like rejects nuget packages access2259 for user type anonymous2260 behaves like returning response status2261 returns not_found2262 id: "%20", status: :bad_request2263 behaves like rejects nuget packages access2264 for user type anonymous2265 behaves like returning response status2266 returns bad_request2267 id: "%2e%2e%2f", status: :bad_request2268 behaves like rejects nuget packages access2269 for user type anonymous2270 behaves like returning response status2271 returns bad_request2272 id: "NaN", status: :bad_request2273 behaves like rejects nuget packages access2274 for user type anonymous2275 behaves like returning response status2276 returns bad_request2277 id: 1253, status: :unauthorized2278 behaves like rejects nuget packages access2279 for user type anonymous2280 has the correct response header2281 behaves like returning response status2282 returns unauthorized2283 id: "anything25", status: :bad_request2284 behaves like rejects nuget packages access2285 for user type anonymous2286 behaves like returning response status2287 returns bad_request2288 behaves like accept get request on private project with access to package registry for everyone2289 behaves like returning response status2290 returns ok2291 GET /api/v4/projects/:id/packages/nuget/download/*package_name/index2292 with valid target2293 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success2294 behaves like process nuget download versions request2295 for user type developer2296 behaves like returning response status2297 returns success2298 behaves like returns a valid nuget download versions json response2299 returns a valid json response2300 with invalid format2301 behaves like rejects nuget packages access2302 for user type anonymous2303 behaves like returning response status2304 returns not_found2305 with lower case package name2306 behaves like returning response status2307 returns success2308 behaves like returns a valid nuget download versions json response2309 returns a valid json response2310 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success2311 behaves like process nuget download versions request2312 for user type guest2313 behaves like returning response status2314 returns success2315 behaves like returns a valid nuget download versions json response2316 returns a valid json response2317 with invalid format2318 behaves like rejects nuget packages access2319 for user type anonymous2320 behaves like returning response status2321 returns not_found2322 with lower case package name2323 behaves like returning response status2324 returns success2325 behaves like returns a valid nuget download versions json response2326 returns a valid json response2327 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2328 behaves like rejects nuget packages access2329 for user type developer2330 has the correct response header2331 behaves like returning response status2332 returns unauthorized2333 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2334 behaves like rejects nuget packages access2335 for user type guest2336 has the correct response header2337 behaves like returning response status2338 returns unauthorized2339 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success2340 behaves like process nuget download versions request2341 for user type developer2342 behaves like returning response status2343 returns success2344 behaves like returns a valid nuget download versions json response2345 returns a valid json response2346 with invalid format2347 behaves like rejects nuget packages access2348 for user type anonymous2349 behaves like returning response status2350 returns not_found2351 with lower case package name2352 behaves like returning response status2353 returns success2354 behaves like returns a valid nuget download versions json response2355 returns a valid json response2356 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success2357 behaves like process nuget download versions request2358 for user type guest2359 behaves like returning response status2360 returns success2361 behaves like returns a valid nuget download versions json response2362 returns a valid json response2363 with invalid format2364 behaves like rejects nuget packages access2365 for user type anonymous2366 behaves like returning response status2367 returns not_found2368 with lower case package name2369 behaves like returning response status2370 returns success2371 behaves like returns a valid nuget download versions json response2372 returns a valid json response2373 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2374 behaves like rejects nuget packages access2375 for user type developer2376 has the correct response header2377 behaves like returning response status2378 returns unauthorized2379 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2380 behaves like rejects nuget packages access2381 for user type guest2382 has the correct response header2383 behaves like returning response status2384 returns unauthorized2385 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success2386 behaves like process nuget download versions request2387 for user type anonymous2388 behaves like returning response status2389 returns success2390 behaves like returns a valid nuget download versions json response2391 returns a valid json response2392 with invalid format2393 behaves like rejects nuget packages access2394 for user type anonymous2395 behaves like returning response status2396 returns not_found2397 with lower case package name2398 behaves like returning response status2399 returns success2400 behaves like returns a valid nuget download versions json response2401 returns a valid json response2402 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success2403 behaves like process nuget download versions request2404 for user type developer2405 behaves like returning response status2406 returns success2407 behaves like returns a valid nuget download versions json response2408 returns a valid json response2409 with invalid format2410 behaves like rejects nuget packages access2411 for user type anonymous2412 behaves like returning response status2413 returns not_found2414 with lower case package name2415 behaves like returning response status2416 returns success2417 behaves like returns a valid nuget download versions json response2418 returns a valid json response2419 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2420 behaves like rejects nuget packages access2421 for user type guest2422 behaves like returning response status2423 returns forbidden2424 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2425 behaves like rejects nuget packages access2426 for user type developer2427 has the correct response header2428 behaves like returning response status2429 returns unauthorized2430 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2431 behaves like rejects nuget packages access2432 for user type guest2433 has the correct response header2434 behaves like returning response status2435 returns unauthorized2436 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2437 behaves like rejects nuget packages access2438 for user type developer2439 behaves like returning response status2440 returns not_found2441 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2442 behaves like rejects nuget packages access2443 for user type guest2444 behaves like returning response status2445 returns not_found2446 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2447 behaves like rejects nuget packages access2448 for user type developer2449 has the correct response header2450 behaves like returning response status2451 returns unauthorized2452 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2453 behaves like rejects nuget packages access2454 for user type guest2455 has the correct response header2456 behaves like returning response status2457 returns unauthorized2458 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2459 behaves like rejects nuget packages access2460 for user type anonymous2461 has the correct response header2462 behaves like returning response status2463 returns unauthorized2464 behaves like deploy token for package GET requests2465 with deploy token headers2466 valid token2467 behaves like returning response status2468 returns success2469 invalid token2470 behaves like returning response status2471 returns unauthorized2472 behaves like rejects nuget access with unknown target id2473 with an unknown target2474 as anonymous2475 behaves like rejects nuget packages access2476 for user type anonymous2477 has the correct response header2478 behaves like returning response status2479 returns unauthorized2480 as authenticated user2481 behaves like rejects nuget packages access2482 for user type anonymous2483 behaves like returning response status2484 returns not_found2485 behaves like rejects nuget access with invalid target id2486 with a target id with invalid integers2487 id: "/../", status: :bad_request2488 behaves like rejects nuget packages access2489 for user type anonymous2490 behaves like returning response status2491 returns bad_request2492 id: "", status: :not_found2493 behaves like rejects nuget packages access2494 for user type anonymous2495 behaves like returning response status2496 returns not_found2497 id: "%20", status: :bad_request2498 behaves like rejects nuget packages access2499 for user type anonymous2500 behaves like returning response status2501 returns bad_request2502 id: "%2e%2e%2f", status: :bad_request2503 behaves like rejects nuget packages access2504 for user type anonymous2505 behaves like returning response status2506 returns bad_request2507 id: "NaN", status: :bad_request2508 behaves like rejects nuget packages access2509 for user type anonymous2510 behaves like returning response status2511 returns bad_request2512 id: 1253, status: :unauthorized2513 behaves like rejects nuget packages access2514 for user type anonymous2515 has the correct response header2516 behaves like returning response status2517 returns unauthorized2518 id: "anything25", status: :bad_request2519 behaves like rejects nuget packages access2520 for user type anonymous2521 behaves like returning response status2522 returns bad_request2523 behaves like accept get request on private project with access to package registry for everyone2524 behaves like returning response status2525 returns ok2526 GET /api/v4/projects/:id/packages/nuget/download/*package_name/*package_version/*package_filename2527 with valid target2528 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2529 behaves like process nuget download content request2530 for user type developer2531 returns a valid package archive2532 behaves like returning response status2533 returns success2534 behaves like a package tracking event2535 creates a gitlab tracking event pull_package2536 behaves like bumping the package last downloaded at field2537 bumps last_downloaded_at2538 with invalid format2539 behaves like rejects nuget packages access2540 for user type anonymous2541 behaves like returning response status2542 returns not_found2543 with symbol package2544 returns a valid package archive2545 behaves like a package tracking event2546 creates a gitlab tracking event pull_symbol_package2547 behaves like bumping the package last downloaded at field2548 bumps last_downloaded_at2549 with lower case package name2550 returns a valid package archive2551 behaves like returning response status2552 returns success2553 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2554 behaves like process nuget download content request2555 for user type guest2556 returns a valid package archive2557 behaves like returning response status2558 returns success2559 behaves like a package tracking event2560 creates a gitlab tracking event pull_package2561 behaves like bumping the package last downloaded at field2562 bumps last_downloaded_at2563 with invalid format2564 behaves like rejects nuget packages access2565 for user type anonymous2566 behaves like returning response status2567 returns not_found2568 with symbol package2569 returns a valid package archive2570 behaves like a package tracking event2571 creates a gitlab tracking event pull_symbol_package2572 behaves like bumping the package last downloaded at field2573 bumps last_downloaded_at2574 with lower case package name2575 returns a valid package archive2576 behaves like returning response status2577 returns success2578 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2579 behaves like rejects nuget packages access2580 for user type developer2581 has the correct response header2582 behaves like returning response status2583 returns unauthorized2584 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2585 behaves like rejects nuget packages access2586 for user type guest2587 has the correct response header2588 behaves like returning response status2589 returns unauthorized2590 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2591 behaves like process nuget download content request2592 for user type developer2593 returns a valid package archive2594 behaves like returning response status2595 returns success2596 behaves like a package tracking event2597 creates a gitlab tracking event pull_package2598 behaves like bumping the package last downloaded at field2599 bumps last_downloaded_at2600 with invalid format2601 behaves like rejects nuget packages access2602 for user type anonymous2603 behaves like returning response status2604 returns not_found2605 with symbol package2606 returns a valid package archive2607 behaves like a package tracking event2608 creates a gitlab tracking event pull_symbol_package2609 behaves like bumping the package last downloaded at field2610 bumps last_downloaded_at2611 with lower case package name2612 returns a valid package archive2613 behaves like returning response status2614 returns success2615 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2616 behaves like process nuget download content request2617 for user type guest2618 returns a valid package archive2619 behaves like returning response status2620 returns success2621 behaves like a package tracking event2622 creates a gitlab tracking event pull_package2623 behaves like bumping the package last downloaded at field2624 bumps last_downloaded_at2625 with invalid format2626 behaves like rejects nuget packages access2627 for user type anonymous2628 behaves like returning response status2629 returns not_found2630 with symbol package2631 returns a valid package archive2632 behaves like a package tracking event2633 creates a gitlab tracking event pull_symbol_package2634 behaves like bumping the package last downloaded at field2635 bumps last_downloaded_at2636 with lower case package name2637 returns a valid package archive2638 behaves like returning response status2639 returns success2640 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2641 behaves like rejects nuget packages access2642 for user type developer2643 has the correct response header2644 behaves like returning response status2645 returns unauthorized2646 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2647 behaves like rejects nuget packages access2648 for user type guest2649 has the correct response header2650 behaves like returning response status2651 returns unauthorized2652 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2653 behaves like process nuget download content request2654 for user type anonymous2655 returns a valid package archive2656 behaves like returning response status2657 returns success2658 behaves like a package tracking event2659 creates a gitlab tracking event pull_package2660 behaves like bumping the package last downloaded at field2661 bumps last_downloaded_at2662 with invalid format2663 behaves like rejects nuget packages access2664 for user type anonymous2665 behaves like returning response status2666 returns not_found2667 with symbol package2668 returns a valid package archive2669 behaves like a package tracking event2670 creates a gitlab tracking event pull_symbol_package2671 behaves like bumping the package last downloaded at field2672 bumps last_downloaded_at2673 with lower case package name2674 returns a valid package archive2675 behaves like returning response status2676 returns success2677 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2678 behaves like process nuget download content request2679 for user type developer2680 returns a valid package archive2681 behaves like returning response status2682 returns success2683 behaves like a package tracking event2684 creates a gitlab tracking event pull_package2685 behaves like bumping the package last downloaded at field2686 bumps last_downloaded_at2687 with invalid format2688 behaves like rejects nuget packages access2689 for user type anonymous2690 behaves like returning response status2691 returns not_found2692 with symbol package2693 returns a valid package archive2694 behaves like a package tracking event2695 creates a gitlab tracking event pull_symbol_package2696 behaves like bumping the package last downloaded at field2697 bumps last_downloaded_at2698 with lower case package name2699 returns a valid package archive2700 behaves like returning response status2701 returns success2702 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2703 behaves like rejects nuget packages access2704 for user type guest2705 behaves like returning response status2706 returns forbidden2707 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2708 behaves like rejects nuget packages access2709 for user type developer2710 has the correct response header2711 behaves like returning response status2712 returns unauthorized2713 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2714 behaves like rejects nuget packages access2715 for user type guest2716 has the correct response header2717 behaves like returning response status2718 returns unauthorized2719 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2720 behaves like rejects nuget packages access2721 for user type developer2722 behaves like returning response status2723 returns not_found2724 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2725 behaves like rejects nuget packages access2726 for user type guest2727 behaves like returning response status2728 returns not_found2729 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2730 behaves like rejects nuget packages access2731 for user type developer2732 has the correct response header2733 behaves like returning response status2734 returns unauthorized2735 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2736 behaves like rejects nuget packages access2737 for user type guest2738 has the correct response header2739 behaves like returning response status2740 returns unauthorized2741 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2742 behaves like rejects nuget packages access2743 for user type anonymous2744 has the correct response header2745 behaves like returning response status2746 returns unauthorized2747 behaves like accept get request on private project with access to package registry for everyone2748 behaves like returning response status2749 returns ok2750 behaves like deploy token for package GET requests2751 with deploy token headers2752 valid token2753 behaves like returning response status2754 returns success2755 invalid token2756 behaves like returning response status2757 returns unauthorized2758 behaves like rejects nuget access with unknown target id2759 with an unknown target2760 as anonymous2761 behaves like rejects nuget packages access2762 for user type anonymous2763 has the correct response header2764 behaves like returning response status2765 returns unauthorized2766 as authenticated user2767 behaves like rejects nuget packages access2768 for user type anonymous2769 behaves like returning response status2770 returns not_found2771 behaves like rejects nuget access with invalid target id2772 with a target id with invalid integers2773 id: "/../", status: :bad_request2774 behaves like rejects nuget packages access2775 for user type anonymous2776 behaves like returning response status2777 returns bad_request2778 id: "", status: :not_found2779 behaves like rejects nuget packages access2780 for user type anonymous2781 behaves like returning response status2782 returns not_found2783 id: "%20", status: :bad_request2784 behaves like rejects nuget packages access2785 for user type anonymous2786 behaves like returning response status2787 returns bad_request2788 id: "%2e%2e%2f", status: :bad_request2789 behaves like rejects nuget packages access2790 for user type anonymous2791 behaves like returning response status2792 returns bad_request2793 id: "NaN", status: :bad_request2794 behaves like rejects nuget packages access2795 for user type anonymous2796 behaves like returning response status2797 returns bad_request2798 id: 1253, status: :unauthorized2799 behaves like rejects nuget packages access2800 for user type anonymous2801 has the correct response header2802 behaves like returning response status2803 returns unauthorized2804 id: "anything25", status: :bad_request2805 behaves like rejects nuget packages access2806 for user type anonymous2807 behaves like returning response status2808 returns bad_request2809 PUT /api/v4/projects/:id/packages/nuget/authorize2810 behaves like nuget authorize upload endpoint2811 with valid project2812 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2813 behaves like process nuget workhorse authorization2814 for user type developer2815 has the proper content type2816 behaves like returning response status2817 returns success2818 with a request that bypassed gitlab-workhorse2819 behaves like returning response status2820 returns forbidden2821 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2822 behaves like rejects nuget packages access2823 for user type guest2824 behaves like returning response status2825 returns forbidden2826 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2827 behaves like rejects nuget packages access2828 for user type developer2829 has the correct response header2830 behaves like returning response status2831 returns unauthorized2832 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2833 behaves like rejects nuget packages access2834 for user type guest2835 has the correct response header2836 behaves like returning response status2837 returns unauthorized2838 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2839 behaves like rejects nuget packages access2840 for user type developer2841 behaves like returning response status2842 returns forbidden2843 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2844 behaves like rejects nuget packages access2845 for user type guest2846 behaves like returning response status2847 returns forbidden2848 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2849 behaves like rejects nuget packages access2850 for user type developer2851 has the correct response header2852 behaves like returning response status2853 returns unauthorized2854 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2855 behaves like rejects nuget packages access2856 for user type guest2857 has the correct response header2858 behaves like returning response status2859 returns unauthorized2860 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2861 behaves like rejects nuget packages access2862 for user type anonymous2863 has the correct response header2864 behaves like returning response status2865 returns unauthorized2866 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2867 behaves like process nuget workhorse authorization2868 for user type developer2869 has the proper content type2870 behaves like returning response status2871 returns success2872 with a request that bypassed gitlab-workhorse2873 behaves like returning response status2874 returns forbidden2875 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2876 behaves like rejects nuget packages access2877 for user type guest2878 behaves like returning response status2879 returns forbidden2880 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2881 behaves like rejects nuget packages access2882 for user type developer2883 has the correct response header2884 behaves like returning response status2885 returns unauthorized2886 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2887 behaves like rejects nuget packages access2888 for user type guest2889 has the correct response header2890 behaves like returning response status2891 returns unauthorized2892 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2893 behaves like rejects nuget packages access2894 for user type developer2895 behaves like returning response status2896 returns not_found2897 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2898 behaves like rejects nuget packages access2899 for user type guest2900 behaves like returning response status2901 returns not_found2902 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2903 behaves like rejects nuget packages access2904 for user type developer2905 has the correct response header2906 behaves like returning response status2907 returns unauthorized2908 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2909 behaves like rejects nuget packages access2910 for user type guest2911 has the correct response header2912 behaves like returning response status2913 returns unauthorized2914 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2915 behaves like rejects nuget packages access2916 for user type anonymous2917 has the correct response header2918 behaves like returning response status2919 returns unauthorized2920 behaves like deploy token for package uploads2921 with deploy token headers2922 valid token2923 behaves like returning response status2924 returns success2925 invalid token2926 behaves like returning response status2927 returns unauthorized2928 behaves like job token for package uploads2929 with job token headers2930 valid token2931 behaves like returning response status2932 returns success2933 invalid token2934 behaves like returning response status2935 returns unauthorized2936 invalid user2937 behaves like returning response status2938 returns unauthorized2939 behaves like rejects nuget access with unknown target id2940 with an unknown target2941 as anonymous2942 behaves like rejects nuget packages access2943 for user type anonymous2944 has the correct response header2945 behaves like returning response status2946 returns unauthorized2947 as authenticated user2948 behaves like rejects nuget packages access2949 for user type anonymous2950 behaves like returning response status2951 returns not_found2952 behaves like rejects nuget access with invalid target id2953 with a target id with invalid integers2954 id: "/../", status: :bad_request2955 behaves like rejects nuget packages access2956 for user type anonymous2957 behaves like returning response status2958 returns bad_request2959 id: "", status: :not_found2960 behaves like rejects nuget packages access2961 for user type anonymous2962 behaves like returning response status2963 returns not_found2964 id: "%20", status: :bad_request2965 behaves like rejects nuget packages access2966 for user type anonymous2967 behaves like returning response status2968 returns bad_request2969 id: "%2e%2e%2f", status: :bad_request2970 behaves like rejects nuget packages access2971 for user type anonymous2972 behaves like returning response status2973 returns bad_request2974 id: "NaN", status: :bad_request2975 behaves like rejects nuget packages access2976 for user type anonymous2977 behaves like returning response status2978 returns bad_request2979 id: 1253, status: :unauthorized2980 behaves like rejects nuget packages access2981 for user type anonymous2982 has the correct response header2983 behaves like returning response status2984 returns unauthorized2985 id: "anything25", status: :bad_request2986 behaves like rejects nuget packages access2987 for user type anonymous2988 behaves like returning response status2989 returns bad_request2990 PUT /api/v4/projects/:id/packages/nuget2991 behaves like nuget upload endpoint2992 with valid project2993 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget upload", expected_status: :created2994 behaves like process nuget upload2995 for user type developer2996 with object storage disabled2997 without a file from workhorse2998 behaves like returning response status2999 returns bad_request3000 with correct params3001 behaves like package workhorse uploads3002 without a workhorse header3003 logs an error3004 behaves like returning response status3005 returns forbidden3006 behaves like creates nuget package files3007 creates package files3008 behaves like a package tracking event3009 creates a gitlab tracking event push_package3010 with object storage enabled3011 and direct upload enabled3012 behaves like creates nuget package files3013 creates package files3014 with invalid remote_id: 1231233015 behaves like returning response status3016 returns forbidden3017 with invalid remote_id: ../../1231233018 behaves like returning response status3019 returns forbidden3020 with crafted package.path param3021 does not create a package file3022 behaves like returning response status3023 returns bad_request3024 and direct upload disabled3025 behaves like creates nuget package files3026 creates package files3027 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3028 behaves like rejects nuget packages access3029 for user type guest3030 behaves like returning response status3031 returns forbidden3032 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3033 behaves like rejects nuget packages access3034 for user type developer3035 has the correct response header3036 behaves like returning response status3037 returns unauthorized3038 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3039 behaves like rejects nuget packages access3040 for user type guest3041 has the correct response header3042 behaves like returning response status3043 returns unauthorized3044 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3045 behaves like rejects nuget packages access3046 for user type developer3047 behaves like returning response status3048 returns forbidden3049 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3050 behaves like rejects nuget packages access3051 for user type guest3052 behaves like returning response status3053 returns forbidden3054 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3055 behaves like rejects nuget packages access3056 for user type developer3057 has the correct response header3058 behaves like returning response status3059 returns unauthorized3060 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3061 behaves like rejects nuget packages access3062 for user type guest3063 has the correct response header3064 behaves like returning response status3065 returns unauthorized3066 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3067 behaves like rejects nuget packages access3068 for user type anonymous3069 has the correct response header3070 behaves like returning response status3071 returns unauthorized3072 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget upload", expected_status: :created3073 behaves like process nuget upload3074 for user type developer3075 with object storage disabled3076 without a file from workhorse3077 behaves like returning response status3078 returns bad_request3079 with correct params3080 behaves like package workhorse uploads3081 without a workhorse header3082 logs an error3083 behaves like returning response status3084 returns forbidden3085 behaves like creates nuget package files3086 creates package files3087 behaves like a package tracking event3088 creates a gitlab tracking event push_package3089 with object storage enabled3090 and direct upload enabled3091 behaves like creates nuget package files3092 creates package files3093 with invalid remote_id: 1231233094 behaves like returning response status3095 returns forbidden3096 with invalid remote_id: ../../1231233097 behaves like returning response status3098 returns forbidden3099 with crafted package.path param3100 does not create a package file3101 behaves like returning response status3102 returns bad_request3103 and direct upload disabled3104 behaves like creates nuget package files3105 creates package files3106 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3107 behaves like rejects nuget packages access3108 for user type guest3109 behaves like returning response status3110 returns forbidden3111 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3112 behaves like rejects nuget packages access3113 for user type developer3114 has the correct response header3115 behaves like returning response status3116 returns unauthorized3117 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3118 behaves like rejects nuget packages access3119 for user type guest3120 has the correct response header3121 behaves like returning response status3122 returns unauthorized3123 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3124 behaves like rejects nuget packages access3125 for user type developer3126 behaves like returning response status3127 returns not_found3128 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3129 behaves like rejects nuget packages access3130 for user type guest3131 behaves like returning response status3132 returns not_found3133 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3134 behaves like rejects nuget packages access3135 for user type developer3136 has the correct response header3137 behaves like returning response status3138 returns unauthorized3139 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3140 behaves like rejects nuget packages access3141 for user type guest3142 has the correct response header3143 behaves like returning response status3144 returns unauthorized3145 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3146 behaves like rejects nuget packages access3147 for user type anonymous3148 has the correct response header3149 behaves like returning response status3150 returns unauthorized3151 behaves like deploy token for package uploads3152 with deploy token headers3153 valid token3154 behaves like returning response status3155 returns success3156 invalid token3157 behaves like returning response status3158 returns unauthorized3159 behaves like job token for package uploads3160 with job token headers3161 valid token3162 creates a package with build info3163 behaves like returning response status3164 returns success3165 invalid token3166 behaves like returning response status3167 returns unauthorized3168 invalid user3169 behaves like returning response status3170 returns unauthorized3171 behaves like rejects nuget access with unknown target id3172 with an unknown target3173 as anonymous3174 behaves like rejects nuget packages access3175 for user type anonymous3176 has the correct response header3177 behaves like returning response status3178 returns unauthorized3179 as authenticated user3180 behaves like rejects nuget packages access3181 for user type anonymous3182 behaves like returning response status3183 returns not_found3184 behaves like rejects nuget access with invalid target id3185 with a target id with invalid integers3186 id: "/../", status: :bad_request3187 behaves like rejects nuget packages access3188 for user type anonymous3189 behaves like returning response status3190 returns bad_request3191 id: "", status: :not_found3192 behaves like rejects nuget packages access3193 for user type anonymous3194 behaves like returning response status3195 returns not_found3196 id: "%20", status: :bad_request3197 behaves like rejects nuget packages access3198 for user type anonymous3199 behaves like returning response status3200 returns bad_request3201 id: "%2e%2e%2f", status: :bad_request3202 behaves like rejects nuget packages access3203 for user type anonymous3204 behaves like returning response status3205 returns bad_request3206 id: "NaN", status: :bad_request3207 behaves like rejects nuget packages access3208 for user type anonymous3209 behaves like returning response status3210 returns bad_request3211 id: 1253, status: :unauthorized3212 behaves like rejects nuget packages access3213 for user type anonymous3214 has the correct response header3215 behaves like returning response status3216 returns unauthorized3217 id: "anything25", status: :bad_request3218 behaves like rejects nuget packages access3219 for user type anonymous3220 behaves like returning response status3221 returns bad_request3222 file size above maximum limit3223 behaves like returning response status3224 returns bad_request3225 PUT /api/v4/projects/:id/packages/nuget/symbolpackage/authorize3226 behaves like nuget authorize upload endpoint3227 with valid project3228 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget workhorse authorization", expected_status: :success3229 behaves like process nuget workhorse authorization3230 for user type developer3231 has the proper content type3232 behaves like returning response status3233 returns success3234 with a request that bypassed gitlab-workhorse3235 behaves like returning response status3236 returns forbidden3237 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3238 behaves like rejects nuget packages access3239 for user type guest3240 behaves like returning response status3241 returns forbidden3242 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3243 behaves like rejects nuget packages access3244 for user type developer3245 has the correct response header3246 behaves like returning response status3247 returns unauthorized3248 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3249 behaves like rejects nuget packages access3250 for user type guest3251 has the correct response header3252 behaves like returning response status3253 returns unauthorized3254 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3255 behaves like rejects nuget packages access3256 for user type developer3257 behaves like returning response status3258 returns forbidden3259 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3260 behaves like rejects nuget packages access3261 for user type guest3262 behaves like returning response status3263 returns forbidden3264 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3265 behaves like rejects nuget packages access3266 for user type developer3267 has the correct response header3268 behaves like returning response status3269 returns unauthorized3270 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3271 behaves like rejects nuget packages access3272 for user type guest3273 has the correct response header3274 behaves like returning response status3275 returns unauthorized3276 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3277 behaves like rejects nuget packages access3278 for user type anonymous3279 has the correct response header3280 behaves like returning response status3281 returns unauthorized3282 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget workhorse authorization", expected_status: :success3283 behaves like process nuget workhorse authorization3284 for user type developer3285 has the proper content type3286 behaves like returning response status3287 returns success3288 with a request that bypassed gitlab-workhorse3289 behaves like returning response status3290 returns forbidden3291 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3292 behaves like rejects nuget packages access3293 for user type guest3294 behaves like returning response status3295 returns forbidden3296 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3297 behaves like rejects nuget packages access3298 for user type developer3299 has the correct response header3300 behaves like returning response status3301 returns unauthorized3302 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3303 behaves like rejects nuget packages access3304 for user type guest3305 has the correct response header3306 behaves like returning response status3307 returns unauthorized3308 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3309 behaves like rejects nuget packages access3310 for user type developer3311 behaves like returning response status3312 returns not_found3313 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3314 behaves like rejects nuget packages access3315 for user type guest3316 behaves like returning response status3317 returns not_found3318 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3319 behaves like rejects nuget packages access3320 for user type developer3321 has the correct response header3322 behaves like returning response status3323 returns unauthorized3324 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3325 behaves like rejects nuget packages access3326 for user type guest3327 has the correct response header3328 behaves like returning response status3329 returns unauthorized3330 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3331 behaves like rejects nuget packages access3332 for user type anonymous3333 has the correct response header3334 behaves like returning response status3335 returns unauthorized3336 behaves like deploy token for package uploads3337 with deploy token headers3338 valid token3339 behaves like returning response status3340 returns success3341 invalid token3342 behaves like returning response status3343 returns unauthorized3344 behaves like job token for package uploads3345 with job token headers3346 valid token3347 behaves like returning response status3348 returns success3349 invalid token3350 behaves like returning response status3351 returns unauthorized3352 invalid user3353 behaves like returning response status3354 returns unauthorized3355 behaves like rejects nuget access with unknown target id3356 with an unknown target3357 as anonymous3358 behaves like rejects nuget packages access3359 for user type anonymous3360 has the correct response header3361 behaves like returning response status3362 returns unauthorized3363 as authenticated user3364 behaves like rejects nuget packages access3365 for user type anonymous3366 behaves like returning response status3367 returns not_found3368 behaves like rejects nuget access with invalid target id3369 with a target id with invalid integers3370 id: "/../", status: :bad_request3371 behaves like rejects nuget packages access3372 for user type anonymous3373 behaves like returning response status3374 returns bad_request3375 id: "", status: :not_found3376 behaves like rejects nuget packages access3377 for user type anonymous3378 behaves like returning response status3379 returns not_found3380 id: "%20", status: :bad_request3381 behaves like rejects nuget packages access3382 for user type anonymous3383 behaves like returning response status3384 returns bad_request3385 id: "%2e%2e%2f", status: :bad_request3386 behaves like rejects nuget packages access3387 for user type anonymous3388 behaves like returning response status3389 returns bad_request3390 id: "NaN", status: :bad_request3391 behaves like rejects nuget packages access3392 for user type anonymous3393 behaves like returning response status3394 returns bad_request3395 id: 1253, status: :unauthorized3396 behaves like rejects nuget packages access3397 for user type anonymous3398 has the correct response header3399 behaves like returning response status3400 returns unauthorized3401 id: "anything25", status: :bad_request3402 behaves like rejects nuget packages access3403 for user type anonymous3404 behaves like returning response status3405 returns bad_request3406 PUT /api/v4/projects/:id/packages/nuget/symbolpackage3407 behaves like nuget upload endpoint3408 with valid project3409 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget upload", expected_status: :created3410 behaves like process nuget upload3411 for user type developer3412 with object storage disabled3413 without a file from workhorse3414 behaves like returning response status3415 returns bad_request3416 with correct params3417 behaves like package workhorse uploads3418 without a workhorse header3419 logs an error3420 behaves like returning response status3421 returns forbidden3422 behaves like creates nuget package files3423 creates package files3424 behaves like a package tracking event3425 creates a gitlab tracking event push_symbol_package3426 with object storage enabled3427 and direct upload enabled3428 behaves like creates nuget package files3429 creates package files3430 with invalid remote_id: 1231233431 behaves like returning response status3432 returns forbidden3433 with invalid remote_id: ../../1231233434 behaves like returning response status3435 returns forbidden3436 with crafted package.path param3437 does not create a package file3438 behaves like returning response status3439 returns bad_request3440 and direct upload disabled3441 behaves like creates nuget package files3442 creates package files3443 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3444 behaves like rejects nuget packages access3445 for user type guest3446 behaves like returning response status3447 returns forbidden3448 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3449 behaves like rejects nuget packages access3450 for user type developer3451 has the correct response header3452 behaves like returning response status3453 returns unauthorized3454 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3455 behaves like rejects nuget packages access3456 for user type guest3457 has the correct response header3458 behaves like returning response status3459 returns unauthorized3460 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3461 behaves like rejects nuget packages access3462 for user type developer3463 behaves like returning response status3464 returns forbidden3465 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3466 behaves like rejects nuget packages access3467 for user type guest3468 behaves like returning response status3469 returns forbidden3470 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3471 behaves like rejects nuget packages access3472 for user type developer3473 has the correct response header3474 behaves like returning response status3475 returns unauthorized3476 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3477 behaves like rejects nuget packages access3478 for user type guest3479 has the correct response header3480 behaves like returning response status3481 returns unauthorized3482 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3483 behaves like rejects nuget packages access3484 for user type anonymous3485 has the correct response header3486 behaves like returning response status3487 returns unauthorized3488 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, 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: "PRIVATE", user_role: :guest, member: true, user_token: true, 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: "PRIVATE", user_role: :developer, member: true, user_token: false, 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: "PRIVATE", user_role: :guest, member: true, user_token: false, 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: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3540 behaves like rejects nuget packages access3541 for user type developer3542 behaves like returning response status3543 returns not_found3544 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3545 behaves like rejects nuget packages access3546 for user type guest3547 behaves like returning response status3548 returns not_found3549 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, 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: "PRIVATE", user_role: :guest, member: false, user_token: false, 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: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3562 behaves like rejects nuget packages access3563 for user type anonymous3564 has the correct response header3565 behaves like returning response status3566 returns unauthorized3567 behaves like deploy token for package uploads3568 with deploy token headers3569 valid token3570 behaves like returning response status3571 returns success3572 invalid token3573 behaves like returning response status3574 returns unauthorized3575 behaves like job token for package uploads3576 with job token headers3577 valid token3578 creates a package with build info3579 behaves like returning response status3580 returns success3581 invalid token3582 behaves like returning response status3583 returns unauthorized3584 invalid user3585 behaves like returning response status3586 returns unauthorized3587 behaves like rejects nuget access with unknown target id3588 with an unknown target3589 as anonymous3590 behaves like rejects nuget packages access3591 for user type anonymous3592 has the correct response header3593 behaves like returning response status3594 returns unauthorized3595 as authenticated user3596 behaves like rejects nuget packages access3597 for user type anonymous3598 behaves like returning response status3599 returns not_found3600 behaves like rejects nuget access with invalid target id3601 with a target id with invalid integers3602 id: "/../", status: :bad_request3603 behaves like rejects nuget packages access3604 for user type anonymous3605 behaves like returning response status3606 returns bad_request3607 id: "", status: :not_found3608 behaves like rejects nuget packages access3609 for user type anonymous3610 behaves like returning response status3611 returns not_found3612 id: "%20", status: :bad_request3613 behaves like rejects nuget packages access3614 for user type anonymous3615 behaves like returning response status3616 returns bad_request3617 id: "%2e%2e%2f", status: :bad_request3618 behaves like rejects nuget packages access3619 for user type anonymous3620 behaves like returning response status3621 returns bad_request3622 id: "NaN", status: :bad_request3623 behaves like rejects nuget packages access3624 for user type anonymous3625 behaves like returning response status3626 returns bad_request3627 id: 1253, status: :unauthorized3628 behaves like rejects nuget packages access3629 for user type anonymous3630 has the correct response header3631 behaves like returning response status3632 returns unauthorized3633 id: "anything25", status: :bad_request3634 behaves like rejects nuget packages access3635 for user type anonymous3636 behaves like returning response status3637 returns bad_request3638 file size above maximum limit3639 behaves like returning response status3640 returns bad_request3641API::Notes3642 when there are cross-reference system notes3643 behaves like with cross-reference system notes3644 returns only the note that the user should see3645 avoids Git calls and N+1 SQL queries3646 when noteable is an Issue3647 behaves like noteable API with confidential notes3648 behaves like noteable API3649 GET /projects/:id/issues/:noteable_id/notes3650 returns an array of notes3651 returns a 404 error when noteable id not found3652 returns 404 when not authorized3653 sorting3654 sorts by ascending order when requested3655 sorts by updated_at in descending order when requested3656 sorts by updated_at in ascending order when requested3657 without sort params3658 sorts by created_at in descending order by default3659 fetches notes using parent path as id paremeter3660 2 notes with equal created_at3661 page breaks first page correctly3662 page breaks second page correctly3663 GET /projects/:id/issues/:noteable_id/notes/:note_id3664 returns a note by id3665 returns a 404 error if note not found3666 POST /projects/:id/issues/:noteable_id/notes3667 creates a new note3668 returns a 400 bad request error if body not given3669 returns a 401 unauthorized error if user not authenticated3670 creates an activity event when a note is created3671 setting created_at3672 by an admin3673 sets the creation time on the new note3674 by a project owner3675 sets the creation time on the new note3676 by a group owner3677 sets the creation time on the new note3678 by another user3679 ignores the given creation time3680 when the user is posting an award emoji on a noteable created by someone else3681 creates a new note3682 when the user is posting an award emoji on their own noteable3683 creates a new note3684 when user does not have access to read the noteable3685 responds with 4043686 when request exceeds the rate limit3687 prevents user from creating more notes3688 allows user in allow-list to create notes3689 PUT /projects/:id/issues/:noteable_id/notes/:note_id3690 returns a 404 error when note id not found3691 returns a 400 bad request error if body is empty3692 when only body param is present3693 updates the note text3694 when confidential param is present3695 does not allow to change confidentiality3696 DELETE /projects/:id/issues/:noteable_id/notes/:note_id3697 deletes a note3698 returns a 404 error when note id not found3699 behaves like 412 response3700 for a modified resource3701 returns 412 with a JSON error3702 for an unmodified resource3703 returns 204 with an empty body3704 POST /projects/:id/issues/:noteable_id/notes3705 with internal param3706 creates a confidential note if internal is set to true3707 with deprecated confidential param3708 creates a confidential note if confidential is set to true3709 when user does not have access to create noteable3710 responds with resource not found error3711 does not create new note3712 when referencing other project3713 GET /projects/:id/noteable/:noteable_id/notes3714 current user cannot view the notes3715 returns an empty array3716 issue is confidential3717 returns 4043718 current user can view the note3719 returns a non-empty array3720 activity filters3721 when not provided3722 returns all the notes3723 behaves like a notes request3724 is a note array response3725 when all_notes provided3726 returns all the notes3727 behaves like a notes request3728 is a note array response3729 when provided3730 filter: "only_comments", count: 1, system_notable: false3731 properly filters the returned notables3732 behaves like a notes request3733 is a note array response3734 filter: "only_activity", count: 1, system_notable: true3735 properly filters the returned notables3736 behaves like a notes request3737 is a note array response3738 GET /projects/:id/noteable/:noteable_id/notes/:note_id3739 current user cannot view the notes3740 returns a 404 error3741 when issue is confidential3742 returns 4043743 current user can view the note3744 returns an issue note by id3745 without notes widget3746 does not fetch notes3747 does not fetch specific note3748 does not create note3749 does not update note3750 does not run quick actions3751 when noteable is a Snippet3752 behaves like noteable API3753 GET /projects/:id/snippets/:noteable_id/notes3754 returns an array of notes3755 returns a 404 error when noteable id not found3756 returns 404 when not authorized3757 sorting3758 sorts by ascending order when requested3759 sorts by updated_at in descending order when requested3760 sorts by updated_at in ascending order when requested3761 without sort params3762 sorts by created_at in descending order by default3763 fetches notes using parent path as id paremeter3764 2 notes with equal created_at3765 page breaks first page correctly3766 page breaks second page correctly3767 GET /projects/:id/snippets/:noteable_id/notes/:note_id3768 returns a note by id3769 returns a 404 error if note not found3770 POST /projects/:id/snippets/:noteable_id/notes3771 creates a new note3772 returns a 400 bad request error if body not given3773 returns a 401 unauthorized error if user not authenticated3774 creates an activity event when a note is created3775 setting created_at3776 by an admin3777 sets the creation time on the new note3778 by a project owner3779 sets the creation time on the new note3780 by a group owner3781 sets the creation time on the new note3782 by another user3783 ignores the given creation time3784 when the user is posting an award emoji on a noteable created by someone else3785 creates a new note3786 when the user is posting an award emoji on their own noteable3787 creates a new note3788 when user does not have access to read the noteable3789 responds with 4043790 when request exceeds the rate limit3791 prevents user from creating more notes3792 allows user in allow-list to create notes3793 PUT /projects/:id/snippets/:noteable_id/notes/:note_id3794 returns a 404 error when note id not found3795 returns a 400 bad request error if body is empty3796 when only body param is present3797 updates the note text3798 when confidential param is present3799 does not allow to change confidentiality3800 DELETE /projects/:id/snippets/:noteable_id/notes/:note_id3801 deletes a note3802 returns a 404 error when note id not found3803 behaves like 412 response3804 for a modified resource3805 returns 412 with a JSON error3806 for an unmodified resource3807 returns 204 with an empty body3808 when noteable is a Merge Request3809 behaves like noteable API3810 GET /projects/:id/merge_requests/:noteable_id/notes3811 returns an array of notes3812 returns a 404 error when noteable id not found3813 returns 404 when not authorized3814 sorting3815 sorts by ascending order when requested3816 sorts by updated_at in descending order when requested3817 sorts by updated_at in ascending order when requested3818 without sort params3819 sorts by created_at in descending order by default3820 fetches notes using parent path as id paremeter3821 2 notes with equal created_at3822 page breaks first page correctly3823 page breaks second page correctly3824 GET /projects/:id/merge_requests/:noteable_id/notes/:note_id3825 returns a note by id3826 returns a 404 error if note not found3827 POST /projects/:id/merge_requests/:noteable_id/notes3828 creates a new note3829 returns a 400 bad request error if body not given3830 returns a 401 unauthorized error if user not authenticated3831 creates an activity event when a note is created3832 setting created_at3833 by an admin3834 sets the creation time on the new note3835 by a project owner3836 sets the creation time on the new note3837 by a group owner3838 sets the creation time on the new note3839 by another user3840 ignores the given creation time3841 when the user is posting an award emoji on a noteable created by someone else3842 creates a new note3843 when the user is posting an award emoji on their own noteable3844 creates a new note3845 when user does not have access to read the noteable3846 responds with 4043847 when request exceeds the rate limit3848 prevents user from creating more notes3849 allows user in allow-list to create notes3850 PUT /projects/:id/merge_requests/:noteable_id/notes/:note_id3851 returns a 404 error when note id not found3852 returns a 400 bad request error if body is empty3853 when only body param is present3854 updates the note text3855 when confidential param is present3856 does not allow to change confidentiality3857 DELETE /projects/:id/merge_requests/:noteable_id/notes/:note_id3858 deletes a note3859 returns a 404 error when note id not found3860 behaves like 412 response3861 for a modified resource3862 returns 412 with a JSON error3863 for an unmodified resource3864 returns 204 with an empty body3865 a command only note3866 /spend3867 returns 202 Accepted status3868 does not actually create a new note3869 does however create a system note about the change3870 applies the commands3871 reports the changes3872 /merge3873 returns 202 Accepted status3874 does not actually create a new note3875 applies the commands3876 reports the changes3877 when the merge request discussion is locked3878 when a user is a team member3879 returns 200 status3880 creates a new note3881 when a user is not a team member3882 returns 403 status3883 does not create a new note3884Projects::PipelinesController3885 GET index.json3886 does not include coverage data for the pipelines3887 paginates the result3888 when using persisted stages3889 returns serialized pipelines3890 when performing gitaly calls3891 limits the Gitaly requests3892 when the project is private3893 returns `not_found` when the user does not have access3894 returns the pipelines when the user has access3895 when user tries to access legacy scope via URL3896 redirects to all pipelines with that status instead3897 filter by scope3898 scope is branches or tags3899 when scope is branches3900 returns matched pipelines3901 when scope is tags3902 returns matched pipelines3903 filter by username3904 when username exists3905 returns matched pipelines3906 when username does not exist3907 returns empty3908 filter by ref3909 when pipelines with the ref exists3910 returns matched pipelines3911 when no pipeline with the ref exists3912 returns empty list3913 filter by status3914 when pipelines with the status exists3915 returns matched pipelines3916 when no pipeline with the status exists3917 returns empty list3918 when invalid status3919 returns all list3920 GET #show3921 when the project is public3922DEPRECATION WARNING: The asset "illustrations/pipeline.svg" is not present in the asset pipeline.3923Falling back to an asset that may be in the public folder.3924This behavior is deprecated and will be removed.3925To bypass the asset pipeline and preserve this behavior,3926use the `skip_pipeline: true` option.3927 (called from js_pipeline_tabs_data at /builds/gitlab-org/gitlab/app/helpers/projects/pipeline_helper.rb:23)3928DEPRECATION WARNING: The asset "illustrations/pipeline.svg" is not present in the asset pipeline.3929Falling back to an asset that may be in the public folder.3930This behavior is deprecated and will be removed.3931To bypass the asset pipeline and preserve this behavior,3932use the `skip_pipeline: true` option.3933 (called from js_pipeline_tabs_data at /builds/gitlab-org/gitlab/app/helpers/projects/pipeline_helper.rb:23)3934DEPRECATION WARNING: The asset "illustrations/pipeline.svg" is not present in the asset pipeline.3935Falling back to an asset that may be in the public folder.3936This behavior is deprecated and will be removed.3937To bypass the asset pipeline and preserve this behavior,3938use the `skip_pipeline: true` option.3939 (called from js_pipeline_tabs_data at /builds/gitlab-org/gitlab/app/helpers/projects/pipeline_helper.rb:23)3940 avoids N+1 database queries3941 when the project is private3942 returns `not_found` when the user does not have access3943 GET show.json3944 returns the pipeline3945 when the pipeline has multiple stages and groups3946 does not perform N + 1 queries3947 when builds are disabled3948 users can not see internal pipelines3949 when pipeline is external3950 users can see the external pipeline3951 with triggered pipelines3952 when it does have permission to read other projects3953 when not-expanding any pipelines3954 behaves like not expanded3955 does return base details3956 does not expand triggered_by pipeline3957 does not expand triggered pipelines3958 when expanding non-existing pipeline3959 behaves like not expanded3960 does return base details3961 does not expand triggered_by pipeline3962 does not expand triggered pipelines3963 when expanding pipeline that is not directly expandable3964 behaves like not expanded3965 does return base details3966 does not expand triggered_by pipeline3967 does not expand triggered pipelines3968 when expanding self3969 it does not recursively expand pipelines3970 behaves like not expanded3971 does return base details3972 does not expand triggered_by pipeline3973 does not expand triggered pipelines3974 when expanding source and target pipeline3975 behaves like expanded3976 does return base details3977 does expand triggered_by pipeline3978 does not recursively expand triggered_by3979 does expand triggered pipelines3980 does not recursively expand triggered3981 when expand depth is limited to 13982 behaves like not expanded3983 does return base details3984 does not expand triggered_by pipeline3985 does not expand triggered pipelines3986 when expanding all3987 behaves like expanded3988 does return base details3989 does expand triggered_by pipeline3990 does not recursively expand triggered_by3991 does expand triggered pipelines3992 does not recursively expand triggered3993 when does not have permission to read other projects3994 behaves like not expanded3995 does return base details3996 does not expand triggered_by pipeline3997 does not expand triggered pipelines3998 GET dag3999 behaves like the show page4000 renders the show template4001 GET dag.json4002 returns the pipeline with DAG serialization4003 GET builds4004 behaves like the show page4005 renders the show template4006 GET failures4007 with failed jobs4008 shows the page4009 without failed jobs4010 redirects to the main pipeline page4011 GET stages.json4012 when accessing existing stage4013 without retried4014 returns pipeline jobs without the retried builds4015 with retried4016 returns pipelines jobs with the retried builds4017 when accessing unknown stage4018 responds with not found4019 GET status.json4020 return a detailed pipeline status in json4021 GET #charts4022 behaves like tracking unique visits4023 tracks unique visit if the format is HTML4024 tracks unique visit if DNT is not enabled4025 does not track unique visit if DNT is enabled4026 does not track unique visit if the format is JSON4027 behaves like Snowplow event tracking with RedisHLL context4028 behaves like Snowplow event tracking4029 is emitted4030 behaves like tracking unique visits4031 tracks unique visit if the format is HTML4032 tracks unique visit if DNT is not enabled4033 does not track unique visit if DNT is enabled4034 does not track unique visit if the format is JSON4035 behaves like Snowplow event tracking with RedisHLL context4036 behaves like Snowplow event tracking4037 is emitted4038 behaves like tracking unique visits4039 tracks unique visit if the format is HTML4040 tracks unique visit if DNT is not enabled4041 does not track unique visit if DNT is enabled4042 does not track unique visit if the format is JSON4043 behaves like Snowplow event tracking with RedisHLL context4044 behaves like Snowplow event tracking4045 is emitted4046 behaves like tracking unique visits4047 tracks unique visit if the format is HTML4048 tracks unique visit if DNT is not enabled4049 does not track unique visit if DNT is enabled4050 does not track unique visit if the format is JSON4051 behaves like Snowplow event tracking with RedisHLL context4052 behaves like Snowplow event tracking4053 is emitted4054 behaves like tracking unique visits4055 tracks unique visit if the format is HTML4056 tracks unique visit if DNT is not enabled4057 does not track unique visit if DNT is enabled4058 does not track unique visit if the format is JSON4059 behaves like Snowplow event tracking with RedisHLL context4060 behaves like Snowplow event tracking4061 is emitted4062 behaves like tracking unique visits4063 tracks unique visit if the format is HTML4064 tracks unique visit if DNT is not enabled4065 does not track unique visit if DNT is enabled4066 does not track unique visit if the format is JSON4067 behaves like Snowplow event tracking with RedisHLL context4068 behaves like Snowplow event tracking4069 is emitted4070 POST create4071 with a valid .gitlab-ci.yml file4072 behaves like creates a pipeline4073 is expected to redirect to "/namespace762/project-803/-/pipelines/193"4074 when latest commit contains [ci skip]4075 behaves like creates a pipeline4076 is expected to redirect to "/namespace763/project-804/-/pipelines/194"4077 with an invalid .gitlab-ci.yml file4078 does not persist a pipeline4079 POST create.json4080 with a valid .gitlab-ci.yml file4081 creates a pipeline4082 with an invalid .gitlab-ci.yml file4083 does not create a pipeline4084 POST retry.json4085 retries a pipeline in the background without returning any content4086 when builds are disabled4087 fails to retry pipeline4088 when access denied4089 returns an error4090 when service returns an error4091 does not retry4092 POST cancel.json4093 cancels a pipeline without returning any content4094 when builds are disabled4095 fails to retry pipeline4096 GET test_report4097 behaves like the show page4098 renders the show template4099 GET test_report.json4100 with attachments4101 does not have N+1 problem with attachments4102 when pipeline does not have a test report4103 renders an empty test report4104 when pipeline has a test report4105 renders the test report4106 when pipeline has a corrupt test report artifact4107 renders the test reports4108 returns a suite_error on the suite with corrupted XML4109 when test_report contains attachment and scope is with_attachment as a URL param4110 returns a test reports with attachment4111 when test_report does not contain attachment and scope is with_attachment as a URL param4112 returns a test reports with empty values4113 GET latest4114 renders a 404 if no pipeline is found for the ref4115 no ref provided4116 shows latest pipeline for the default project branch4117 ref provided4118 shows a 404 if no pipeline exists4119DEPRECATION WARNING: The asset "illustrations/pipeline.svg" is not present in the asset pipeline.4120Falling back to an asset that may be in the public folder.4121This behavior is deprecated and will be removed.4122To bypass the asset pipeline and preserve this behavior,4123use the `skip_pipeline: true` option.4124 (called from js_pipeline_tabs_data at /builds/gitlab-org/gitlab/app/helpers/projects/pipeline_helper.rb:23)4125 shows the latest pipeline for the provided ref4126 newer pipeline exists for older sha4127DEPRECATION WARNING: The asset "illustrations/pipeline.svg" is not present in the asset pipeline.4128Falling back to an asset that may be in the public folder.4129This behavior is deprecated and will be removed.4130To bypass the asset pipeline and preserve this behavior,4131use the `skip_pipeline: true` option.4132 (called from js_pipeline_tabs_data at /builds/gitlab-org/gitlab/app/helpers/projects/pipeline_helper.rb:23)4133 shows the provided ref with the last sha/pipeline combo4134 DELETE #destroy4135 when user has ability to delete pipeline4136 deletes pipeline and redirects4137 and builds are disabled4138 fails to delete pipeline4139 and project is undergoing stats refresh4140 behaves like preventing request because of ongoing project stats refresh4141 logs about the rejected request4142 returns 409 error4143 does not delete the pipeline4144 when user has no privileges4145 fails to delete pipeline4146 GET downloadable_artifacts.json4147 when pipeline is empty4148 returns status not_found4149 when pipeline exists4150 when pipeline does not have any downloadable artifacts4151 returns an empty array4152 when pipeline has downloadable artifacts4153 returns an array of artifacts4154Projects::NotesController4155 GET index4156 is expected to have request urgency :medium4157 passes last_fetched_at from headers to NotesFinder and MergeIntoNotesService4158 when user notes_filter is present4159 filters system notes by comments4160 returns all notes4161 does not merge label event notes4162 for a discussion note4163 responds with the expected attributes4164 for a diff discussion note4165 responds with the expected attributes4166 for a commit note4167 when displayed on a merge request4168 responds with the expected attributes4169 when displayed on the commit4170 responds with the expected attributes4171 when user cannot read commit4172 renders 4044173 for a regular note4174 responds with the expected attributes4175 with cross-reference system note4176 filters notes that the user should not see4177 does not result in N+1 queries4178 POST create4179 is expected to have request urgency :low4180 making the creation request4181 the project is publically available4182 for HTML4183 returns status 3024184 for JSON4185 returns status 200 for json4186 the note does not have commands_only errors4187 for empty note4188 returns status 422 for json4189 the project is a private project4190 format is4191 returns status 4044192 format is json4193 returns status 4044194 the user is a developer on a private project4195 HTML requests4196 returns status 302 (redirect)4197 JSON requests4198 returns status 2004199 the return_discussion param is set4200 returns discussion JSON when the return_discussion param is set4201 when creating a confidential note4202 when parameter is not provided4203 sets `confidential` and `internal` to `false` in JSON response4204 when is not a confidential note4205 when using the `internal` parameter4206 sets `confidential` and `internal` to `false` in JSON response4207 when using deprecated `confidential` parameter4208 sets `confidential` and `internal` to `false` in JSON response4209 when is a confidential note4210 when using the `internal` parameter4211 sets `confidential` and `internal` to `true` in JSON response4212 when using deprecated `confidential` parameter4213 sets `confidential` and `internal` to `true` in JSON response4214 when `internal` parameter is `true` and `confidential` parameter is `false`4215 uses the `internal` param as source of truth4216 when creating a note with quick actions4217 with commands that return changes4218 includes changes in commands_changes4219 includes command_names4220 with commands that do not return changes4221 does not include changes in commands_changes4222 includes command_names4223 when the internal project prohibits non-members from accessing merge requests4224 prevents a non-member user from creating a note on one of the project's merge requests4225 when the user is a team member4226 can add comments4227 when the request includes a :in_reply_to_discussion_id designed to fool us4228 prevents the request from adding notes to the spoofed discussion4229 returns an error to the user4230 when the public project prohibits non-members from accessing merge requests4231 prevents a non-member user from creating a note on one of the project's merge requests4232 when the user is a team member4233 can add comments4234 when merge_request_diff_head_sha present4235 returns status 302 for html4236 when creating a comment on a commit with SHA1 starting with a large number4237 creates a note successfully4238 when creating a commit comment from an MR fork4239 when the note_project_id is not correct4240 returns a 4044241 when the user has no access to the fork4242 returns a 4044243 when the user has access to the fork4244 is successful4245 creates the note4246 when target_id and noteable_id do not match4247 uses target_id and ignores noteable_id4248 when the merge request discussion is locked4249 when a noteable is not found4250 returns 404 status4251 when a user is a team member4252 returns 302 status for html4253 returns 200 status for json4254 creates a new note4255 when a user is not a team member4256 returns 404 status4257 does not create a new note4258 behaves like create notes request exceeding rate limit4259 allows user in allow-list to create notes, even if the case is different4260 when rate limiter enabled4261 logs request and declines it when endpoint called more than the threshold4262 when rate limiter is disabled4263 does not log request and does not block the request4264 PUT update4265 is expected to have request urgency :low4266 should update the note with a valid issue4267 updates the note4268 doesnt update the note4269 disallows edits when the issue is confidential and the user has guest permissions4270 DELETE destroy4271 is expected to have request urgency :low4272 user is the author of a note4273 returns status 200 for html4274 deletes the note4275 user is not the author of a note4276 returns status 4044277 POST toggle_award_emoji4278 is expected to have request urgency :low4279 toggles the award emoji4280 removes the already awarded emoji4281 marks Todos on the Noteable as done4282 resolving and unresolving4283 POST resolve4284 is expected to have request urgency :low4285 when the user is not authorized to resolve the note4286 returns status 4044287 when the user is authorized to resolve the note4288 when the note is not resolvable4289 returns status 4044290 when the note is resolvable4291 resolves the note4292 sends notifications if all discussions are resolved4293 returns the name of the resolving user4294 returns status 2004295 DELETE unresolve4296 is expected to have request urgency :low4297 when the user is not authorized to resolve the note4298 returns status 4044299 when the user is authorized to resolve the note4300 when the note is not resolvable4301 returns status 4044302 when the note is resolvable4303 unresolves the note4304 returns status 2004305 GET outdated_line_change4306 successfully renders expected JSON response4307 is expected to have request urgency :low4308API::Ci::JobArtifacts4309 DELETE /projects/:id/jobs/:job_id/artifacts4310 when project is not undergoing stats refresh4311 when user is anonymous4312 does not delete artifacts4313 returns status 401 (unauthorized)4314 with developer4315 does not delete artifacts4316 returns status 403 (forbidden)4317 with authorized user4318 deletes artifacts4319 returns status 204 (no content)4320 when project is undergoing stats refresh4321 behaves like preventing request because of ongoing project stats refresh4322 logs about the rejected request4323 returns 409 error4324 does not delete artifacts4325 DELETE /projects/:id/artifacts4326 when user is anonymous4327 does not execute Ci::JobArtifacts::DeleteProjectArtifactsService4328 returns status 401 (unauthorized)4329 with developer4330 does not execute Ci::JobArtifacts::DeleteProjectArtifactsService4331 returns status 403 (forbidden)4332 with authorized user4333 executes Ci::JobArtifacts::DeleteProjectArtifactsService4334 returns status 202 (accepted)4335 when project is undergoing stats refresh4336 behaves like preventing request because of ongoing project stats refresh4337 logs about the rejected request4338 returns 409 error4339 does not delete artifacts4340 GET /projects/:id/jobs/:job_id/artifacts/:artifact_path4341 when job has artifacts4342 when user is anonymous4343 when project is public4344 allows to access artifacts4345 when project is public with artifacts that are non public4346 rejects access to artifacts4347 with the non_public_artifacts feature flag disabled4348 allows access to artifacts4349 when project is public with builds access disabled4350 rejects access to artifacts4351 when project is private4352 rejects access and hides existence of artifacts4353 when user is authorized4354 returns a specific artifact file for a valid path4355 when artifacts are locked4356 allows access to expired artifact4357 when job does not have artifacts4358 does not return job artifact file4359 GET /projects/:id/jobs/:job_id/artifacts4360 normal authentication4361 job with artifacts4362 does not return job artifacts if not uploaded4363 when artifacts are stored locally4364 authorized user4365 behaves like downloads artifact4366 returns specific job artifacts4367 behaves like storing arguments in the application context4368 places the expected params in the application context4369 behaves like not executing any extra queries for the application context4370 does not execute more queries than without adding anything to the application context4371 when job token is used4372 when job token scope is enabled4373 does not allow downloading artifacts4374 when project is added to the job token scope4375 behaves like downloads artifact4376 returns specific job artifacts4377 behaves like storing arguments in the application context4378 places the expected params in the application context4379 behaves like not executing any extra queries for the application context4380 does not execute more queries than without adding anything to the application context4381 unauthorized user4382 does not return specific job artifacts4383 when artifacts are stored remotely4384 when proxy download is enabled4385 responds with the workhorse send-url4386 when proxy download is disabled4387 returns location redirect4388 when Google CDN is configured4389 returns CDN-signed URL4390 authorized user4391 returns the file remote URL4392 unauthorized user4393 does not return specific job artifacts4394 when public project guest and artifacts are non public4395 rejects access and hides existence of artifacts4396 with the non_public_artifacts feature flag disabled4397 allows access to artifacts4398 GET /projects/:id/artifacts/:ref_name/download?job=name4399 when not logged in4400 does not find a resource in a private project4401 when logging as guest4402 gives 4034403 non-existing job4404 has no such ref4405 behaves like not found4406 is expected to respond with numeric status code not_found4407 has no such job4408 behaves like not found4409 is expected to respond with numeric status code not_found4410 find proper job4411 with regular branch4412 behaves like a valid file4413 when artifacts are stored locally4414 is expected to respond with numeric status code ok4415 is expected to include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=\"ci_build_artifacts.zip\"; filename*=UTF-8''ci_build_artifacts.zip"}4416 when artifacts are stored remotely4417 returns location redirect4418 with branch name containing slash4419 behaves like a valid file4420 when artifacts are stored locally4421 is expected to respond with numeric status code ok4422 is expected to include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=\"ci_build_artifacts.zip\"; filename*=UTF-8''ci_build_artifacts.zip"}4423 when artifacts are stored remotely4424 returns location redirect4425 with job name in a child pipeline4426 behaves like a valid file4427 when artifacts are stored locally4428 is expected to respond with numeric status code ok4429 is expected to include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=\"ci_build_artifacts.zip\"; filename*=UTF-8''ci_build_artifacts.zip"}4430 when artifacts are stored remotely4431 returns location redirect4432 GET id/jobs/artifacts/:ref_name/raw/*artifact_path?job=name4433 when job has artifacts4434 when user is anonymous4435 when project is public4436 allows to access artifacts4437 when project is public with builds access disabled4438 rejects access to artifacts4439 when project is public with non public artifacts4440 rejects access and hides existence of artifacts4441 with the non_public_artifacts feature flag disabled4442 allows access to artifacts4443 when project is private4444 rejects access and hides existence of artifacts4445 when user is authorized4446 returns a specific artifact file for a valid path4447 with branch name containing slash4448 returns a specific artifact file for a valid path4449 non-existing job4450 has no such ref4451 behaves like not found4452 is expected to respond with numeric status code not_found4453 has no such job4454 behaves like not found4455 is expected to respond with numeric status code not_found4456 when job does not have artifacts4457 does not return job artifact file4458 POST /projects/:id/jobs/:job_id/artifacts/keep4459 artifacts did not expire4460 keeps artifacts4461 no artifacts4462 responds with not found4463getting an issue list for a project4464 behaves like graphql issue list request spec4465 includes a web_url4466 includes discussion locked4467 behaves like a working graphql query4468 returns a successful response4469 filters4470 when filtering by assignees4471 when both assignee_username filters are provided4472 returns a mutually exclusive param error4473 when filtering by a negated argument4474 returns correctly filtered issues4475 when filtering by unioned arguments4476 when filtering by assignees4477 returns correctly filtered issues4478 when filtering by labels4479 returns correctly filtered issues4480 when argument is blank4481 does not raise an error4482 when feature flag is disabled4483 returns an error4484 when filtering by a blank negated argument4485 does not raise an error4486 when filtering by reaction emoji4487 value: "thumbsup", issue_list: lazy { voted_issues }4488 returns correctly filtered issues4489 value: "ANY", issue_list: lazy { voted_issues }4490 returns correctly filtered issues4491 value: "any", issue_list: lazy { voted_issues }4492 returns correctly filtered issues4493 value: "AnY", issue_list: lazy { voted_issues }4494 returns correctly filtered issues4495 value: "NONE", issue_list: lazy { no_award_issues }4496 returns correctly filtered issues4497 value: "thumbsdown", issue_list: lazy { [] }4498 returns correctly filtered issues4499 when filtering by search4500 behaves like query with a search term4501 returns only matching issuables4502 when filtering by confidentiality4503 when fetching confidential issues4504 returns only confidential issues4505 when user cannot see confidential issues4506 returns an empty list4507 when fetching non-confidential issues4508 returns only non-confidential issues4509 when user cannot see confidential issues4510 returns an empty list4511 sorting and pagination4512 when sorting by severity4513 when ascending4514 behaves like sorted paginated query4515 behaves like requires variables4516 shared example requires variables to be set4518 when sorting4519 sorts correctly4520 when paginating4521 paginates correctly4522 when descending4523 behaves like sorted paginated query4524 behaves like requires variables4525 shared example requires variables to be set4527 when sorting4528 sorts correctly4529 when paginating4530 paginates correctly4531 when sorting by priority4532 when ascending4533 behaves like sorted paginated query4534 behaves like requires variables4535 shared example requires variables to be set4537 when sorting4538 sorts correctly4539 when paginating4540 paginates correctly4541 when descending4542 behaves like sorted paginated query4543 behaves like requires variables4544 shared example requires variables to be set4546 when sorting4547 sorts correctly4548 when paginating4549 paginates correctly4550 when sorting by due date4551 when ascending4552 behaves like sorted paginated query4553 behaves like requires variables4554 shared example requires variables to be set4556 when sorting4557 sorts correctly4558 when paginating4559 paginates correctly4560 when descending4561 behaves like sorted paginated query4562 behaves like requires variables4563 shared example requires variables to be set4565 when sorting4566 sorts correctly4567 when paginating4568 paginates correctly4569 when sorting by relative position4570 when ascending4571 behaves like sorted paginated query4572 behaves like requires variables4573 shared example requires variables to be set4575 when sorting4576 sorts correctly4577 when paginating4578 paginates correctly4579 when last and sort params are present4580 fetches last elements without error4581 when sorting by label priority4582 when ascending4583 behaves like sorted paginated query4584 behaves like requires variables4585 shared example requires variables to be set4587 when sorting4588 sorts correctly4589 when paginating4590 paginates correctly4591 when descending4592 behaves like sorted paginated query4593 behaves like requires variables4594 shared example requires variables to be set4596 when sorting4597 sorts correctly4598 when paginating4599 paginates correctly4600 when sorting by milestone due date4601 when ascending4602 behaves like sorted paginated query4603 behaves like requires variables4604 shared example requires variables to be set4606 when sorting4607 sorts correctly4608 when paginating4609 paginates correctly4610 when descending4611 behaves like sorted paginated query4612 behaves like requires variables4613 shared example requires variables to be set4615 when sorting4616 sorts correctly4617 when paginating4618 paginates correctly4619 N+1 query checks4620 when requesting `user_notes_count` and `user_discussions_count`4621 prevents N+1 queries4622 when requesting `merge_requests_count`4623 prevents N+1 queries4624 when requesting `timelogs`4625 prevents N+1 queries4626 when requesting `closed_as_duplicate_of`4627 prevents N+1 queries4628 when award emoji votes4629 prevents N+1 queries4630 when requesting participants4631 prevents N+1 queries4632 when requesting labels4633 prevents N+1 queries4634 when confidential issues exist4635 when user can see confidential issues4636 includes confidential issues4637 when user cannot see confidential issues4638 does not include confidential issues4639 when limiting the number of results4640 is expected to check permissions on the first issue only4641 behaves like a working graphql query4642 returns a successful response4643 only returns N issues4644 when no limit is provided4645 returns all issues4646 when the user does not have access to the issue4647 returns no issues4648 when fetching escalation status4649 returns the escalation status values4650 avoids N+1 queries4651 when fetching alert management alert4652 avoids N+1 queries4653 returns the alert data4654 returns the alerts data4655 when fetching customer_relations_contacts4656 avoids N+1 queries4657 when fetching labels4658 avoids N+1 queries4659 when fetching assignees4660 avoids N+1 queries4661 when selecting `related_merge_requests`4662 limits the field to 1 execution4663API::UsageDataQueries4664 GET /usage_data/usage_data_queries4665 with authentication4666 returns queries if user is admin4667 returns forbidden if user is not admin4668 behaves like GET request permissions for admin mode4669 behaves like when admin4670 behaves like makes request4671 returns4672 behaves like makes request4673 returns4674 behaves like when user4675 returns4676 behaves like makes request4677 returns4678 without authentication4679 returns unauthorized4680 when feature_flag is disabled4681 returns not_found for admin4682 returns forbidden for non-admin4683 when querying sql metrics4684 matches the generated query4685API::Invitations4686 POST /projects/:id/invitations4687 does not exceed expected queries count for emails4688 does not exceed expected queries count for user_ids4689 does not exceed expected queries count with secondary emails4690 behaves like POST /:source_type/:id/invitations4691 with :source_type == projects4692 updates an already existing active member4693 returns 400 when the invite params of email and user_id are not sent4694 returns 400 when the email is blank4695 returns 400 when the user_id is blank4696 returns 400 when the email list is not a valid format4697 returns 400 when the comma-separated email list is not a valid format4698 returns 400 when access_level is not given4699 returns 400 when access_level is not valid4700 behaves like a 404 response when source is private4701 returns 4044702 when authenticated as a non-member or member with insufficient membership management rights4703 when the user does not have rights to manage members4704 as a access_requester4705 behaves like a 403 response when user does not have rights to manage members of a specific access level4706 returns 4034707 as a stranger4708 behaves like a 403 response when user does not have rights to manage members of a specific access level4709 returns 4034710 as a developer4711 behaves like a 403 response when user does not have rights to manage members of a specific access level4712 returns 4034713 when the user has the rights to manage members but tries to manage members with a higher access level4714 when an invitee is added as OWNER4715 behaves like a 403 response when user does not have rights to manage members of a specific access level4716 returns 4034717 when an access_requester is added as OWNER4718 behaves like a 403 response when user does not have rights to manage members of a specific access level4719 returns 4034720 when authenticated as a maintainer/owner4721 adds a new member by email4722 adds a new member by confirmed primary email4723 adds a new member by unconfirmed primary email4724 adds a new member by confirmed secondary email4725 adds a new member as an invite for unconfirmed secondary email4726 adds a new member by user_id4727 adds new members with email and user_id4728 invites a list of new email addresses4729 invites a list of new email addresses and user ids4730 and new member is already a requester4731 transforms the requester into a proper member4732 when invitee is already an invited member4733 updates the member for that email4734 access levels4735 does not create the member if group level is higher4736 creates the member if group level is lower4737 access expiry date4738 when set to a date in the past4739 does not create a member4740 when set to a date in the future4741 invites a member4742 with tasks_to_be_done and tasks_project_id in the params4743 when there is 1 invitation4744 creates a member_task with the tasks_to_be_done and the project4745 when there are multiple invitations4746 creates a member_task with the tasks_to_be_done and the project4747 with invite_source considerations4748 tracks the invite source as api4749 tracks the invite source from params4750 when adding project bot4751 returns error4752 POST /groups/:id/invitations4753 does not exceed expected queries count for emails4754 does not exceed expected queries count for secondary emails4755 behaves like POST /:source_type/:id/invitations4756 with :source_type == groups4757 updates an already existing active member4758 returns 400 when the invite params of email and user_id are not sent4759 returns 400 when the email is blank4760 returns 400 when the user_id is blank4761 returns 400 when the email list is not a valid format4762 returns 400 when the comma-separated email list is not a valid format4763 returns 400 when access_level is not given4764 returns 400 when access_level is not valid4765 behaves like a 404 response when source is private4766 returns 4044767 when authenticated as a non-member or member with insufficient membership management rights4768 when the user does not have rights to manage members4769 as a access_requester4770 behaves like a 403 response when user does not have rights to manage members of a specific access level4771 returns 4034772 as a stranger4773 behaves like a 403 response when user does not have rights to manage members of a specific access level4774 returns 4034775 as a developer4776 behaves like a 403 response when user does not have rights to manage members of a specific access level4777 returns 4034778 when the user has the rights to manage members but tries to manage members with a higher access level4779 when an invitee is added as OWNER4780 behaves like a 403 response when user does not have rights to manage members of a specific access level4781 returns 4034782 when an access_requester is added as OWNER4783 behaves like a 403 response when user does not have rights to manage members of a specific access level4784 returns 4034785 when authenticated as a maintainer/owner4786 adds a new member by email4787 adds a new member by confirmed primary email4788 adds a new member by unconfirmed primary email4789 adds a new member by confirmed secondary email4790 adds a new member as an invite for unconfirmed secondary email4791 adds a new member by user_id4792 adds new members with email and user_id4793 invites a list of new email addresses4794 invites a list of new email addresses and user ids4795 and new member is already a requester4796 transforms the requester into a proper member4797 when invitee is already an invited member4798 updates the member for that email4799 access levels4800 does not create the member if group level is higher4801 creates the member if group level is lower4802 access expiry date4803 when set to a date in the past4804 does not create a member4805 when set to a date in the future4806 invites a member4807 with tasks_to_be_done and tasks_project_id in the params4808 when there is 1 invitation4809 creates a member_task with the tasks_to_be_done and the project4810 when there are multiple invitations4811 creates a member_task with the tasks_to_be_done and the project4812 with invite_source considerations4813 tracks the invite source as api4814 tracks the invite source from params4815 when adding project bot4816 returns error4817 GET /projects/:id/invitations4818 behaves like GET /:source_type/:id/invitations4819 with :source_type == projects4820 does not find confirmed members4821 finds all members with no query string specified4822 finds the invitation by invite_email with query string4823 behaves like a 404 response when source is private4824 returns 4044825 when authenticated as a maintainer4826 returns 2004827 as a access_requester4828 behaves like a 403 response when user does not have rights to manage members of a specific access level4829 returns 4034830 as a stranger4831 behaves like a 403 response when user does not have rights to manage members of a specific access level4832 returns 4034833 as a developer4834 behaves like a 403 response when user does not have rights to manage members of a specific access level4835 returns 4034836 GET /groups/:id/invitations4837 behaves like GET /:source_type/:id/invitations4838 with :source_type == groups4839 does not find confirmed members4840 finds all members with no query string specified4841 finds the invitation by invite_email with query string4842 behaves like a 404 response when source is private4843 returns 4044844 when authenticated as a maintainer4845 returns 2004846 as a access_requester4847 behaves like a 403 response when user does not have rights to manage members of a specific access level4848 returns 4034849 as a stranger4850 behaves like a 403 response when user does not have rights to manage members of a specific access level4851 returns 4034852 as a developer4853 behaves like a 403 response when user does not have rights to manage members of a specific access level4854 returns 4034855 DELETE /projects/:id/inviations/:email4856 behaves like DELETE /:source_type/:id/invitations/:email4857 with :source_type == projects4858 returns 404 if member does not exist4859 returns 422 for a valid request if the resource was not destroyed4860 behaves like a 404 response when source is private4861 returns 4044862 when authenticated as a non-member or member with insufficient rights4863 when the user does not have rights to manage members4864 as a access_requester4865 behaves like a 403 response when user does not have rights to manage members of a specific access level4866 returns 4034867 as a stranger4868 behaves like a 403 response when user does not have rights to manage members of a specific access level4869 returns 4034870 when authenticated as a member and deleting themself4871 does not delete the member4872 when authenticated as a maintainer/owner4873 deletes the member and returns 204 with no content4874 when MAINTAINER tries to remove invitation of an OWNER4875 behaves like a 403 response when user does not have rights to manage members of a specific access level4876 returns 4034877 DELETE /groups/:id/inviations/:email4878 behaves like DELETE /:source_type/:id/invitations/:email4879 with :source_type == groups4880 returns 404 if member does not exist4881 returns 422 for a valid request if the resource was not destroyed4882 behaves like a 404 response when source is private4883 returns 4044884 when authenticated as a non-member or member with insufficient rights4885 when the user does not have rights to manage members4886 as a access_requester4887 behaves like a 403 response when user does not have rights to manage members of a specific access level4888 returns 4034889 as a stranger4890 behaves like a 403 response when user does not have rights to manage members of a specific access level4891 returns 4034892 when authenticated as a member and deleting themself4893 does not delete the member4894 when authenticated as a maintainer/owner4895 deletes the member and returns 204 with no content4896 when MAINTAINER tries to remove invitation of an OWNER4897 behaves like a 403 response when user does not have rights to manage members of a specific access level4898 returns 4034899 PUT /projects/:id/invitations4900 behaves like PUT /:source_type/:id/invitations/:email4901 with :source_type == projects4902 behaves like a 404 response when source is private4903 returns 4044904 when authenticated as a non-member or member with insufficient rights4905 when the user does not have rights to manage members4906 as a access_requester4907 behaves like a 403 response when user does not have rights to manage members of a specific access level4908 returns 4034909 as a stranger4910 behaves like a 403 response when user does not have rights to manage members of a specific access level4911 returns 4034912 when authenticated as a maintainer/owner4913 returns 409 if member does not exist4914 returns 400 when access_level is not given and there are no other params4915 returns 400 when access level is not valid4916 updating access level4917 updates the invitation4918 MAINTAINER tries to update access level to OWNER4919 behaves like a 403 response when user does not have rights to manage members of a specific access level4920 returns 4034921 updating access expiry date4922 when set to a date in the past4923 does not update the member4924 when set to a date in the future4925 updates the member4926 PUT /groups/:id/invitations4927 behaves like PUT /:source_type/:id/invitations/:email4928 with :source_type == groups4929 behaves like a 404 response when source is private4930 returns 4044931 when authenticated as a non-member or member with insufficient rights4932 when the user does not have rights to manage members4933 as a access_requester4934 behaves like a 403 response when user does not have rights to manage members of a specific access level4935 returns 4034936 as a stranger4937 behaves like a 403 response when user does not have rights to manage members of a specific access level4938 returns 4034939 when authenticated as a maintainer/owner4940 returns 409 if member does not exist4941 returns 400 when access_level is not given and there are no other params4942 returns 400 when access level is not valid4943 updating access level4944 updates the invitation4945 MAINTAINER tries to update access level to OWNER4946 behaves like a 403 response when user does not have rights to manage members of a specific access level4947 returns 4034948 updating access expiry date4949 when set to a date in the past4950 does not update the member4951 when set to a date in the future4952 updates the member4953Update a work item4954 the user is not allowed to update a work item4955 behaves like a mutation that returns a top-level access error4956 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"4957 when user has permissions to update a work item4958 behaves like has spam protection4959 #check_spam_action_response!4960 when the object is spam (DISALLOW)4961 and no CAPTCHA is available4962 behaves like disallow response4963 informs the client that the request was denied as spam4964 and a CAPTCHA is required4965 behaves like disallow response4966 informs the client that the request was denied as spam4967 when the object is not spam (CONDITIONAL ALLOW)4968 and no CAPTCHA is required4969 does not return a top-level error4970 and a CAPTCHA is required4971 informs the client that the request may be retried after solving the CAPTCHA4972 when the work item is open4973 closes and updates the work item4974 when the work item is closed4975 reopens the work item4976 when updating confidentiality4977 when setting as confidential4978 behaves like toggling confidentiality4979 successfully updates work item4980 when setting as non-confidential4981 behaves like toggling confidentiality4982 successfully updates work item4983 with description widget input4984 behaves like update work item description widget4985 updates the description widget4986 when the updated work item is not valid4987 returns validation errors without the work item4988 when the edited description includes quick action(s)4989 with /title quick action4990 behaves like quick action is applied4991 applies the quick action(s)4992 with /shrug, /tableflip and /cc quick action4993 behaves like quick action is applied4994 applies the quick action(s)4995 with /close4996 behaves like quick action is applied4997 applies the quick action(s)4998 with /reopen4999 behaves like quick action is applied5000 applies the quick action(s)5001 with labels widget input5002 when only removing labels5003 behaves like mutation updating work item labels5004 updates labels5005 with quick action5006 behaves like mutation updating work item labels5007 updates labels5008 when only adding labels5009 behaves like mutation updating work item labels5010 updates labels5011 with quick action5012 behaves like mutation updating work item labels5013 updates labels5014 when adding and removing labels5015 behaves like mutation updating work item labels5016 updates labels5017 with quick action5018 behaves like mutation updating work item labels5019 updates labels5020 when the work item type does not support labels widget5021 ignores the quick action5022 with due and start date widget input5023 updates start and due date5024 when using quick action5025 when removing due date5026 updates start and due date5027 when setting due date5028 updates due date5029 when the work item type does not support start and due date widget5030 ignores the quick action5031 when provided input is invalid5032 returns validation errors without the work item5033 when dates were already set for the work item5034 when updating only start date5035 allows setting a single date to null5036 when updating only due date5037 allows setting a single date to null5038 with hierarchy widget input5039 when updating parent5040 when parent work item type is invalid5041 returns response with errors5042 when parent work item has a valid type5043 updates work item parent5044 when a parent is already present5045 is replaced with new parent5046 when updating relative position5047 when incomplete positioning arguments are given5048 behaves like returns "relative position is not valid" error message5049 is expected to contain exactly "Relative position is not valid."5050 when moving after adjacent5051 behaves like updates work item parent and sets the relative position5052 is expected to be between 513 and 1026 (inclusive)5053 when moving before adjacent5054 behaves like updates work item parent and sets the relative position5055 is expected to be between 513 and 1026 (inclusive)5056 when parentId is null5057 when parent is present5058 removes parent and returns success message5059 when parent is not present5060 does not change work item and returns success message5061 when parent work item is not found5062 returns a top level error5063 when reordering existing child5064 when parent is already assigned5065 when incomplete positioning arguments are given5066 behaves like returns "relative position is not valid" error message5067 is expected to contain exactly "Relative position is not valid."5068 when moving after adjacent5069 behaves like sets the relative position and does not update work item parent5070 is expected to be between 513 and 1026 (inclusive)5071 when moving before adjacent5072 behaves like sets the relative position and does not update work item parent5073 is expected to be between 513 and 1026 (inclusive)5074 when updating children5075 when child work item type is invalid5076 returns response with errors5077 when there is a mix of existing and non existing work items5078 returns a top level error and does not add valid work item5079 when child work item type is valid5080 updates the work item children5081 when updating assignees5082 updates the work item assignee5083 when using quick action5084 when assigning a user5085 updates the work item assignee5086 when unassigning a user5087 updates the work item assignee5088 when changing work item type5089 with multiple commands5090 updates the work item type and other attributes5091 when conversion is not permitted5092 does not update the work item type5093 when new type does not support a widget5094 updates the work item type and clear widget attributes5095 when the work item type does not support the assignees widget5096 ignores the quick action5097 when updating milestone5098 when user cannot set work item metadata5099 behaves like work item's milestone is not updated5100 ignores the update request5101 when user can set work item metadata5102 when assigning a project milestone5103 behaves like work item's milestone is updated5104 updates the work item's milestone5105 when assigning a group milestone5106 behaves like work item's milestone is updated5107 updates the work item's milestone5108 when unsetting the work item's milestone5109 behaves like work item's milestone is updated5110 updates the work item's milestone5111 when updating notifications subscription5112 when work item update fails5113 behaves like subscription update ignored5114 when user is subscribed with a subscription record5115 ignores the update request5116 when user is subscribed by being a participant5117 ignores the update request5118 when user cannot update work item5119 behaves like subscription update ignored5120 when user is subscribed with a subscription record5121 ignores the update request5122 when user is subscribed by being a participant5123 ignores the update request5124 when user can update work item5125 when subscribing to notifications5126 behaves like subscription updated successfully5127 updates existing work item's subscription state5128 when unsubscribing from notifications5129 behaves like subscription updated successfully5130 updates existing work item's subscription state5131 when user is subscribed by being a participant5132 creates a subscription with desired state5133 when updating currentUserTodos5134 when adding a new todo5135 when user has access to the work item5136 adds a new todo for the user on the work item5137 when user has no access5138 does not create a new todo5139 when marking all todos of the work item as done5140 when user has access5141 marks all todos of the user on the work item as done5142 when user has no access5143 does not mark todos as done5144 when marking one todo of the work item as done5145 when user has access5146 marks the todo of the work item as done5147 when user has no access5148 does not mark the todo as done5149 when updating awardEmoji5150 when user cannot award work item5151 ignores the update request5152 when user can award work item5153 when adding award emoji5154 behaves like request that adds emoji5155 updates work item's award emoji5156 when the emoji name is not valid5157 behaves like request with error5158 ignores update and returns an error5159 when removing award emoji5160 when emoji was awarded by current user5161 behaves like request that removes emoji5162 updates work item's award emoji5163 when emoji was awarded by a different user5164 behaves like request with error5165 ignores update and returns an error5166 when unsupported widget input is sent5167 behaves like a mutation that returns top-level errors5168 is expected to contain exactly "Following widget keys are not supported by Test Case type: [:assignees_widget]"5169Emails::Profile5170 for new users, the email5171 contains the password text5172 includes a link for user to set password5173 explains the reset link expiration5174 behaves like an email sent from GitLab5175 has the characteristics of an email sent from GitLab5176 behaves like a new user email5177 is sent to the new user with the correct subject and body5178 behaves like it should not have Gmail Actions links5179 is expected not to have body including "ViewAction"5180 behaves like a user cannot unsubscribe through footer link5181 does not have a List-Unsubscribe header or a body link5182 for users that signed up, the email5183 does not contain the new user's password5184 behaves like an email sent from GitLab5185 has the characteristics of an email sent from GitLab5186 behaves like a new user email5187 is sent to the new user with the correct subject and body5188 behaves like it should not have Gmail Actions links5189 is expected not to have body including "ViewAction"5190 behaves like a user cannot unsubscribe through footer link5191 does not have a List-Unsubscribe header or a body link5192 user added ssh key5193 is sent to the new user5194 has the correct subject5195 contains the new ssh key title5196 includes a link to ssh keys page5197 behaves like an email sent from GitLab5198 has the characteristics of an email sent from GitLab5199 behaves like it should not have Gmail Actions links5200 is expected not to have body including "ViewAction"5201 behaves like a user cannot unsubscribe through footer link5202 does not have a List-Unsubscribe header or a body link5203 with SSH key that does not exist5204 is expected not to raise Exception5205 user added gpg key5206 is sent to the new user5207 has the correct subject5208 contains the new gpg key title5209 includes a link to gpg keys page5210 behaves like an email sent from GitLab5211 has the characteristics of an email sent from GitLab5212 behaves like it should not have Gmail Actions links5213 is expected not to have body including "ViewAction"5214 behaves like a user cannot unsubscribe through footer link5215 does not have a List-Unsubscribe header or a body link5216 with GPG key that does not exist5217 is expected not to raise Exception5218 user personal access token has been created5219 when valid5220 is sent to the user5221 has the correct subject5222 provides the names of the token5223 includes a link to personal access tokens page5224 includes the email reason5225 behaves like an email sent from GitLab5226 has the characteristics of an email sent from GitLab5227 behaves like it should not have Gmail Actions links5228 is expected not to have body including "ViewAction"5229 behaves like a user cannot unsubscribe through footer link5230 does not have a List-Unsubscribe header or a body link5231 user personal access token is about to expire5232 is sent to the user5233 has the correct subject5234 mentions the access tokens will expire5235 provides the names of expiring tokens5236 includes a link to personal access tokens page5237 includes the email reason5238 behaves like an email sent from GitLab5239 has the characteristics of an email sent from GitLab5240 behaves like it should not have Gmail Actions links5241 is expected not to have body including "ViewAction"5242 behaves like a user cannot unsubscribe through footer link5243 does not have a List-Unsubscribe header or a body link5244 with User does not exist5245 is expected not to raise Exception5246 user personal access token has expired5247 when valid5248 is sent to the user5249 has the correct subject5250 mentions the access token has expired5251 includes a link to personal access tokens page5252 includes the email reason5253 behaves like an email sent from GitLab5254 has the characteristics of an email sent from GitLab5255 behaves like it should not have Gmail Actions links5256 is expected not to have body including "ViewAction"5257 behaves like a user cannot unsubscribe through footer link5258 does not have a List-Unsubscribe header or a body link5259 when invalid5260 when user does not exist5261 is expected not to change `ActionMailer::Base.deliveries.count`5262 when user is not active5263 is expected not to change `ActionMailer::Base.deliveries.count`5264 user personal access token has been revoked5265 when valid5266 is sent to the user5267 has the correct subject5268 provides the names of the token5269 wont include the revocation reason5270 includes the email reason5271 behaves like an email sent from GitLab5272 has the characteristics of an email sent from GitLab5273 behaves like it should not have Gmail Actions links5274 is expected not to have body including "ViewAction"5275 behaves like a user cannot unsubscribe through footer link5276 does not have a List-Unsubscribe header or a body link5277 when source is provided5278 is sent to the user5279 has the correct subject5280 provides the names of the token5281 includes the revocation reason5282 includes the email reason5283 behaves like an email sent from GitLab5284 has the characteristics of an email sent from GitLab5285 behaves like it should not have Gmail Actions links5286 is expected not to have body including "ViewAction"5287 behaves like a user cannot unsubscribe through footer link5288 does not have a List-Unsubscribe header or a body link5289 SSH key notification5290 notification email for expired ssh key5291 when valid5292 behaves like an email sent from GitLab5293 has the characteristics of an email sent from GitLab5294 behaves like it should not have Gmail Actions links5295 is expected not to have body including "ViewAction"5296 behaves like a user cannot unsubscribe through footer link5297 does not have a List-Unsubscribe header or a body link5298 behaves like is sent to the user5299 is expected to be delivered to ["user2246@example.org"]5300 behaves like includes a link to ssh key page5301 is expected to have body matching /http:\/\/localhost\/-\/profile\/keys/5302 behaves like includes the email reason5303 is expected to have body matching /You're receiving this email because of your account on <a .*>localhost<\/a>/5304 behaves like has the correct subject5305 is expected to have subject matching /Your SSH key has expired/5306 behaves like has the correct body text5307 is expected to have body matching /SSH keys with the following fingerprints have expired/5308 when invalid5309 when user does not exist5310 behaves like does not send email5311 is expected not to change `ActionMailer::Base.deliveries.count`5312 when user is not active5313 behaves like does not send email5314 is expected not to change `ActionMailer::Base.deliveries.count`5315 notification email for expiring ssh key5316 when valid5317 behaves like an email sent from GitLab5318 has the characteristics of an email sent from GitLab5319 behaves like it should not have Gmail Actions links5320 is expected not to have body including "ViewAction"5321 behaves like a user cannot unsubscribe through footer link5322 does not have a List-Unsubscribe header or a body link5323 behaves like is sent to the user5324 is expected to be delivered to ["user2246@example.org"]5325 behaves like includes a link to ssh key page5326 is expected to have body matching /http:\/\/localhost\/-\/profile\/keys/5327 behaves like includes the email reason5328 is expected to have body matching /You're receiving this email because of your account on <a .*>localhost<\/a>/5329 behaves like has the correct subject5330 is expected to have subject matching /Your SSH key is expiring soon/5331 behaves like has the correct body text5332 is expected to have body matching /SSH keys with the following fingerprints are scheduled to expire soon/5333 when invalid5334 when user does not exist5335 behaves like does not send email5336 is expected not to change `ActionMailer::Base.deliveries.count`5337 when user is not active5338 behaves like does not send email5339 is expected not to change `ActionMailer::Base.deliveries.count`5340 user unknown sign in email5341 is sent to the user5342 has the correct subject5343 mentions the username5344 mentions the new sign-in IP5345 mentions the time5346 includes a link to the change password documentation5347 mentions two factor authentication when two factor is not enabled5348 includes a link to two-factor authentication documentation5349 behaves like an email sent from GitLab5350 has the characteristics of an email sent from GitLab5351 behaves like it should not have Gmail Actions links5352 is expected not to have body including "ViewAction"5353 behaves like a user cannot unsubscribe through footer link5354 does not have a List-Unsubscribe header or a body link5355 when two factor authentication is enabled5356 does not mention two factor authentication5357 user attempted sign in with wrong 2FA OTP email5358 is sent to the user5359 has the correct subject5360 mentions the IP address5361 mentioned the time5362 includes a link to the change password documentation5363 behaves like an email sent from GitLab5364 has the characteristics of an email sent from GitLab5365 behaves like it should not have Gmail Actions links5366 is expected not to have body including "ViewAction"5367 behaves like a user cannot unsubscribe through footer link5368 does not have a List-Unsubscribe header or a body link5369 disabled two-factor authentication email5370 is sent to the user5371 has the correct subject5372 includes a link to two-factor authentication settings page5373 behaves like an email sent from GitLab5374 has the characteristics of an email sent from GitLab5375 behaves like it should not have Gmail Actions links5376 is expected not to have body including "ViewAction"5377 behaves like a user cannot unsubscribe through footer link5378 does not have a List-Unsubscribe header or a body link5379 added a new email address5380 is sent to the user5381 has the correct subject5382 includes a link to the email address page5383 behaves like an email sent from GitLab5384 has the characteristics of an email sent from GitLab5385 behaves like it should not have Gmail Actions links5386 is expected not to have body including "ViewAction"5387 behaves like a user cannot unsubscribe through footer link5388 does not have a List-Unsubscribe header or a body link5389 awarded a new achievement5390 is sent to the user5391 has the correct subject5392 includes a link to the profile page5393 includes a link to the awarding group5394 behaves like an email sent from GitLab5395 has the characteristics of an email sent from GitLab5396 behaves like it should not have Gmail Actions links5397 is expected not to have body including "ViewAction"5398 behaves like a user cannot unsubscribe through footer link5399 does not have a List-Unsubscribe header or a body link5400GitlabSchema configurations5401 depth, complexity and recursion checking5402 unauthenticated recursive queries5403 a not-quite-recursive-enough introspective query5404 succeeds5405 failing queries5406 a recursive introspective query5407 fails due to recursion5408 a recursive non-introspective query5409 using `nodes` notation5410 behaves like fails due to recursion, complexity and depth5411 fails due to recursion, complexity and depth5412 using `edges -> node` notation5413 behaves like fails due to recursion, complexity and depth5414 fails due to recursion, complexity and depth5415 regular queries5416 behaves like imposing query limits5417 timeouts5418 when timeout is reached5419 shows an error5420 #max_complexity5421 when complexity is too high5422 shows an error5423 #max_depth5424 when query depth is too high5425 shows error5426 when query depth is within range5427 has no error5428 multiplexed queries5429 does not authenticate all queries5430 behaves like imposing query limits5431 timeouts5432 when timeout is reached5433 shows an error5434 #max_complexity5435 when complexity is too high5436 shows an error5437 #max_depth5438 when query depth is too high5439 shows error5440 when query depth is within range5441 has no error5442 behaves like query is too complex5443 fails all queries when only one of the queries is too complex5444 behaves like query is too complex5445 fails when all queries combined are too complex5446 authentication5447 authenticates all queries5448 when IntrospectionQuery5449 is not too complex nor recursive5450 logging5451 logs the query complexity and depth5452 logs using `format_message`5453 global id's5454 uses GlobalID to expose ids5455 removal of deprecated items5456 without `remove_deprecated` param5457 shows deprecated items5458 with `remove_deprecated` param5459 hides deprecated field5460 hides deprecated enum value5461 hides deprecated argument5462OmniauthCallbacksController5463 omniauth5464 a deactivated user5465 allows sign in5466 activates the user5467 shows reactivation flash message after logging in5468 when sign in is not valid5469 renders omniauth error page5470 when the user is on the last sign in attempt5471 when using a form based provider5472 locks the user when sign in fails5473 when using a button based provider5474 does not lock the user when sign in fails5475 when sign in fails5476 calls through to the failure handler5477 when a redirect fragment is provided5478 when a redirect url is stored5479 redirects with fragment5480 when a redirect url with a fragment is stored5481 redirects with the new fragment5482 when no redirect url is stored5483 does not redirect with the fragment5484 strategies5485 github5486 allows sign in5487 creates an authentication event record5488 behaves like known sign in5489 when the remote IP and the last sign in IP match5490 does not notify the user5491 sets/updates the encrypted cookie5492 when the remote IP and the last sign in IP do not match5493 notifies the user when the cookie is expired5494 notifies the user when the cookie is for another user5495 does not notify the user when remote IP matches an active session5496 does not notify the user when the cookie is present and not expired5497 when the cookie is not previously set5498 notifies the user5499 sets the encrypted cookie5500 when notify_on_unknown_sign_in global setting is false5501 does not notify the user5502 does not set a cookie5503 when user has no linked provider5504 links identity5505 and is not allowed to link the provider5506 returns 4035507 when a user has 2FA enabled5508 when a user is unconfirmed5509 redirects to login page5510 when a user is confirmed5511 returns 200 response5512 for sign up5513 is allowed5514 redirects to welcome path5515 when OAuth is disabled5516 prevents login via POST5517 shows warning when attempting login5518 allows linking the disabled provider5519 sign up5520 is prevented5521 auth05522 does not allow sign in without extern_uid5523 atlassian_oauth25524 when the user and identity already exist5525 allows sign-in5526 sets the username and caller_id in the context5527 for a new user5528 denies sign-in if sign-up is enabled, but block_auto_created_users is set5529 accepts sign-in if sign-up is enabled5530 denies sign-in if sign-up is not enabled5531 salesforce5532 without verified email5533 does not allow sign in5534 with verified email5535 allows sign in5536 with snowplow tracking5537 when sign_in5538 does not track the event5539 when sign_up5540 tracks the event5541 #openid_connect5542 allows sign in5543 behaves like known sign in5544 when the remote IP and the last sign in IP match5545 does not notify the user5546 sets/updates the encrypted cookie5547 when the remote IP and the last sign in IP do not match5548 notifies the user when the cookie is expired5549 notifies the user when the cookie is for another user5550 does not notify the user when remote IP matches an active session5551 does not notify the user when the cookie is present and not expired5552 when the cookie is not previously set5553 notifies the user5554 sets the encrypted cookie5555 when notify_on_unknown_sign_in global setting is false5556 does not notify the user5557 does not set a cookie5558 #saml5559 behaves like known sign in5560 when the remote IP and the last sign in IP match5561 does not notify the user5562 sets/updates the encrypted cookie5563 when the remote IP and the last sign in IP do not match5564 notifies the user when the cookie is expired5565 notifies the user when the cookie is for another user5566 does not notify the user when remote IP matches an active session5567 does not notify the user when the cookie is present and not expired5568 when the cookie is not previously set5569 notifies the user5570 sets the encrypted cookie5571 when notify_on_unknown_sign_in global setting is false5572 does not notify the user5573 does not set a cookie5574 sign up5575 denies login if sign up is enabled, but block_auto_created_users is set5576 accepts login if sign up is enabled5577 denies login if sign up is not enabled5578 with GitLab initiated request5579 when worth two factors5580 expects user to be signed_in5581 when not worth two factors5582 expects user to provide second factor5583 with IdP initiated request5584 lets the user know their account isn't linked yet5585 redirects to profile account page5586 doesn't link a new identity to the user5587 sets the username and caller_id in the context5588 with a blocked user trying to log in when there are hooks set up5589 is expected not to raise Exception5590 enable admin mode5591 user and admin mode requested by the same user5592 with a regular user5593 cannot be enabled5594 with an admin user5595 when requested first5596 can be enabled5597 when not requested first5598 cannot be enabled5599 user and admin mode requested by different users5600 with a regular user5601 cannot be enabled5602 with an admin user5603 when requested first5604 cannot be enabled5605 when not requested first5606 cannot be enabled5607OpenID Connect requests5608 Application without OpenID scope5609 token response does not include an ID token5610 userinfo response is unauthorized5611 Application with OpenID scope5612 token response includes an ID token5613 UserInfo payload5614 includes all user information and group memberships5615 does not include any unknown claims5616 includes email and email_verified claims5617 has public email in email claim5618 has false in email_verified claim5619 ID token payload5620 includes the subject claims5621 includes the GitLab root URL5622 includes the time of the last authentication5623 has public email in email claim5624 has true in email_verified claim5625 does not include any unknown properties5626 does include groups5627 when user is blocked5628 redirects to login page5629 when user is ldap_blocked5630 redirects to login page5631 OpenID Discovery keys5632 with a cross-origin request5633 returns data5634 behaves like cross-origin GET request5635 allows cross-origin request5636 with a cross-origin preflight OPTIONS request5637 behaves like cross-origin GET request5638 allows cross-origin request5639 OpenID WebFinger endpoint5640 with a cross-origin request5641 returns data5642 behaves like cross-origin GET request5643 allows cross-origin request5644 with a cross-origin preflight OPTIONS request5645 behaves like cross-origin GET request5646 allows cross-origin request5647 OpenID configuration information5648 correctly returns the configuration5649 with a cross-origin request5650 behaves like cross-origin GET request5651 allows cross-origin request5652 with a cross-origin preflight OPTIONS request5653 behaves like cross-origin GET request5654 allows cross-origin request5655 Application with OpenID and email scopes5656 token response includes an ID token5657 UserInfo payload5658 includes the email and email_verified claims5659 has private email in email claim5660 has true in email_verified claim5661 with a cross-origin request5662 behaves like cross-origin GET and POST request5663 allows cross-origin request5664 with a cross-origin POST request5665 behaves like cross-origin GET and POST request5666 allows cross-origin request5667 with a cross-origin preflight OPTIONS request5668 behaves like cross-origin GET and POST request5669 allows cross-origin request5670 ID token payload5671 has private email in email claim5672 has true in email_verified claim5673 does include groups5674Public Project Pages Access5675 Project should be public5676 #public?5677 is expected to be truthy5678 GET /projects/:id/pages_access5679 access depends on the level5680 pages_access_level: 0, with_user: "admin", admin_mode: false, expected_result: 4035681 correct return value5682 pages_access_level: 0, with_user: "owner", admin_mode: false, expected_result: 4035683 correct return value5684 pages_access_level: 0, with_user: "master", admin_mode: false, expected_result: 4035685 correct return value5686 pages_access_level: 0, with_user: "developer", admin_mode: false, expected_result: 4035687 correct return value5688 pages_access_level: 0, with_user: "reporter", admin_mode: false, expected_result: 4035689 correct return value5690 pages_access_level: 0, with_user: "guest", admin_mode: false, expected_result: 4035691 correct return value5692 pages_access_level: 0, with_user: "user", admin_mode: false, expected_result: 4035693 correct return value5694 pages_access_level: 0, with_user: nil, admin_mode: false, expected_result: 4035695 correct return value5696 pages_access_level: 30, with_user: "admin", admin_mode: false, expected_result: 2005697 correct return value5698 pages_access_level: 30, with_user: "owner", admin_mode: false, expected_result: 2005699 correct return value5700 pages_access_level: 30, with_user: "master", admin_mode: false, expected_result: 2005701 correct return value5702 pages_access_level: 30, with_user: "developer", admin_mode: false, expected_result: 2005703 correct return value5704 pages_access_level: 30, with_user: "reporter", admin_mode: false, expected_result: 2005705 correct return value5706 pages_access_level: 30, with_user: "guest", admin_mode: false, expected_result: 2005707 correct return value5708 pages_access_level: 30, with_user: "user", admin_mode: false, expected_result: 2005709 correct return value5710 pages_access_level: 30, with_user: nil, admin_mode: false, expected_result: 2005711 correct return value5712 pages_access_level: 20, with_user: "admin", admin_mode: false, expected_result: 2005713 correct return value5714 pages_access_level: 20, with_user: "owner", admin_mode: false, expected_result: 2005715 correct return value5716 pages_access_level: 20, with_user: "master", admin_mode: false, expected_result: 2005717 correct return value5718 pages_access_level: 20, with_user: "developer", admin_mode: false, expected_result: 2005719 correct return value5720 pages_access_level: 20, with_user: "reporter", admin_mode: false, expected_result: 2005721 correct return value5722 pages_access_level: 20, with_user: "guest", admin_mode: false, expected_result: 2005723 correct return value5724 pages_access_level: 20, with_user: "user", admin_mode: false, expected_result: 2005725 correct return value5726 pages_access_level: 20, with_user: nil, admin_mode: false, expected_result: 2005727 correct return value5728 pages_access_level: 10, with_user: "admin", admin_mode: true, expected_result: 2005729 correct return value5730 pages_access_level: 10, with_user: "owner", admin_mode: false, expected_result: 2005731 correct return value5732 pages_access_level: 10, with_user: "master", admin_mode: false, expected_result: 2005733 correct return value5734 pages_access_level: 10, with_user: "developer", admin_mode: false, expected_result: 2005735 correct return value5736 pages_access_level: 10, with_user: "reporter", admin_mode: false, expected_result: 2005737 correct return value5738 pages_access_level: 10, with_user: "guest", admin_mode: false, expected_result: 2005739 correct return value5740 pages_access_level: 10, with_user: "user", admin_mode: false, expected_result: 4035741 correct return value5742 pages_access_level: 10, with_user: nil, admin_mode: false, expected_result: 4035743 correct return value5744getting a package list for a group5745 behaves like group and project packages query5746 when user has access to the resource5747 returns packages successfully5748 deals with metadata5749 returns the count of the packages5750 behaves like a working graphql query5751 returns a successful response5752 _links5753 does not contain the web path of errored package5754 when the user does not have access to the resource5755 returns nil5756 behaves like a working graphql query5757 returns a successful response5758 when the user is not authenticated5759 returns nil5760 behaves like a working graphql query5761 returns a successful response5762 sorting and pagination5763 CREATED_ASC5764 behaves like sorted paginated query5765 behaves like requires variables5766 shared example requires variables to be set5768 when sorting5769 sorts correctly5770 when paginating5771 paginates correctly5772 NAME_ASC5773 behaves like sorted paginated query5774 behaves like requires variables5775 shared example requires variables to be set5777 when sorting5778 sorts correctly5779 when paginating5780 paginates correctly5781 VERSION_ASC5782 behaves like sorted paginated query5783 behaves like requires variables5784 shared example requires variables to be set5786 when sorting5787 sorts correctly5788 when paginating5789 paginates correctly5790 TYPE_ASC5791 behaves like sorted paginated query5792 behaves like requires variables5793 shared example requires variables to be set5795 when sorting5796 sorts correctly5797 when paginating5798 paginates correctly5799 CREATED_DESC5800 behaves like sorted paginated query5801 behaves like requires variables5802 shared example requires variables to be set5804 when sorting5805 sorts correctly5806 when paginating5807 paginates correctly5808 NAME_DESC5809 behaves like sorted paginated query5810 behaves like requires variables5811 shared example requires variables to be set5813 when sorting5814 sorts correctly5815 when paginating5816 paginates correctly5817 VERSION_DESC5818 behaves like sorted paginated query5819 behaves like requires variables5820 shared example requires variables to be set5822 when sorting5823 sorts correctly5824 when paginating5825 paginates correctly5826 TYPE_DESC5827 behaves like sorted paginated query5828 behaves like requires variables5829 shared example requires variables to be set5831 when sorting5832 sorts correctly5833 when paginating5834 paginates correctly5835 with an invalid sort5836 throws an error5837 filtering5838 package_name5839 is expected to contain exactly {"name"=>"bab"}5840 package_type5841 is expected to contain exactly {"name"=>"dab"}5842 status5843 is expected to contain exactly {"name"=>"my/company/app/my-app"}5844 include_versionless5845 is expected to include {"name" => "my/company/app/my-app"}5846 when reading pipelines5847 loads the second page with pagination first correctly5848 loads the second page with pagination last correctly5849 with a batched query5850 returns an error for the second group and data for the first5851Adding a DiffNote5852 behaves like a Note mutation when the user does not have permission5853 behaves like a Note mutation that does not create a Note5854 is expected not to change `Note.count`5855 behaves like a mutation that returns top-level errors5856 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"5857 when the user has permission5858 returns the note with the correct position5859 behaves like a Note mutation that creates a Note5860 is expected to change `Note.count` by 15861 add comment to old line5862 behaves like a Note mutation that creates a Note5863 is expected to change `Note.count` by 15864 add a comment with a position without lines5865 behaves like a Note mutation that does not create a Note5866 is expected not to change `Note.count`5867 behaves like a Note mutation when there are active record validation errors5868 returns an empty Note5869 behaves like a Note mutation that does not create a Note5870 is expected not to change `Note.count`5871 behaves like a mutation that returns errors in the response5872 is expected to contain exactly "Error 1" and "Error 2"5873 behaves like a Note mutation when there are rate limit validation errors5874 with rate limiter5875 behaves like a Note mutation that does not create a Note5876 is expected not to change `Note.count`5877 behaves like a mutation that returns top-level errors5878 is expected to contain exactly "This endpoint has been requested too many times. Try again later."5879 when the user is in the allowlist5880 behaves like a Note mutation that creates a Note5881 is expected to change `Note.count` by 15883 behaves like a Note mutation when the given resource id is not for a Noteable5884 behaves like a Note mutation that does not create a Note5885 is expected not to change `Note.count`5886 behaves like a mutation that returns top-level errors5887 is expected to include / does not represent an instance of Noteable/5888 with /merge quick action5889 merges the merge request5890getting merge request information nested in a project5891 contains merge request information5892 includes a web_url5893 includes correct mergedAt value when merged5894 includes nil mergedAt value when not merged5895 behaves like a working graphql query5896 returns a successful response5897 when selecting author5898 includes author5899 when the merge_request has reviewers5900 includes reviewers5901 when the merge_request has committers5902 includes committers5903 diffStats5904 includes diff stats5905 when requesting a specific diff stat5906 includes only the requested stats5907 permissions on the merge request5908 includes the permissions for the current user on a public project5909 when the user does not have access to the merge request5910 returns nil5911 when there are pipelines5912 has a head pipeline5913 has pipeline connections5914 when limiting the number of results5915 returns the correct number of results5916 when merge request is cannot_be_merged_rechecking5917 returns checking5918 when the notes have been preloaded (by participants)5919 does not error5920 behaves like when requesting information about MR interactions5921 when the user is not assigned5922 returns null data5923 when the user is a reviewer, but has not reviewed5924 returns falsey values5925 when the user has interacted5926 returns appropriate data5927 scalability5928 when selecting only known scalable fields5929 behaves like scalable query for interaction fields5930 does not suffer from N+15931 when selecting all fields5932 behaves like scalable query for interaction fields5933 does not suffer from N+1 (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)5934 behaves like when requesting information about MR interactions5935 when the user is not assigned5936 returns null data5937 when the user is a reviewer, but has not reviewed5938 returns falsey values5939 when the user has interacted5940 returns appropriate data5941 scalability5942 when selecting only known scalable fields5943 behaves like scalable query for interaction fields5944 does not suffer from N+15945 when selecting all fields5946 behaves like scalable query for interaction fields5947 does not suffer from N+1 (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)5948 when selecting `awardEmoji`5949 includes award emojis5950API::GoProxy5951 GET /projects/:id/packages/go/*module_name/@v/list5952 for the root module5953 behaves like a module version list resource5954 returns v1.0.1, v1.0.2, v1.0.35955 for the package5956 behaves like a module version list resource5957 returns nothing5958 for the submodule5959 behaves like a module version list resource5960 returns v1.0.35961 for the root module v25962 behaves like a module version list resource5963 returns v2.0.05964 with a URL encoded relative path component5965 behaves like a missing module version list resource5966 behaves like an unavailable resource5967 returns not found5968 with the feature disabled5969 behaves like a missing module version list resource5970 behaves like an unavailable resource5971 returns not found5972 GET /projects/:id/packages/go/*module_name/@v/:module_version.info5973 with the root module v1.0.15974 behaves like a module version information resource5975 returns information for v1.0.15976 with the submodule v1.0.35977 behaves like a module version information resource5978 returns information for v1.0.35979 with the root module v2.0.05980 behaves like a module version information resource5981 returns information for v2.0.05982 with an invalid path5983 behaves like a missing module version information resource5984 behaves like an unavailable resource5985 returns not found5986 with an invalid version5987 behaves like a missing module version information resource5988 behaves like an unavailable resource5989 returns not found5990 with a pseudo-version for v15991 behaves like a module pseudo-version information resource5992 returns information for v1.0.4-0.yyyymmddhhmmss-abcdefabcdef5993 with a pseudo-version for v25994 behaves like a module pseudo-version information resource5995 returns information for v2.0.0-yyyymmddhhmmss-abcdefabcdef5996 with a pseudo-version with an invalid timestamp5997 behaves like a missing module pseudo-version information resource5998 behaves like an unavailable resource5999 returns not found6000 with a pseudo-version with an invalid commit sha6001 behaves like a missing module pseudo-version information resource6002 behaves like an unavailable resource6003 returns not found6004 with a pseudo-version with a short commit sha6005 behaves like a missing module pseudo-version information resource6006 behaves like an unavailable resource6007 returns not found6008 GET /projects/:id/packages/go/*module_name/@v/:module_version.mod6009 with the root module v1.0.16010 behaves like a module file resource6011 returns /go.mod from the repo6012 with the submodule v1.0.36013 behaves like a module file resource6014 returns /mod/go.mod from the repo6015 with the root module v2.0.06016 behaves like a module file resource6017 returns /v2/go.mod from the repo6018 with an invalid path6019 behaves like a missing module file resource6020 behaves like an unavailable resource6021 returns not found6022 with an invalid version6023 behaves like a missing module file resource6024 behaves like an unavailable resource6025 returns not found6026 GET /projects/:id/packages/go/*module_name/@v/:module_version.zip6027 with the root module v1.0.16028 behaves like a module archive resource6029 returns an archive of / @ v1.0.1 from the repo6030 with the root module v1.0.26031 behaves like a module archive resource6032 returns an archive of / @ v1.0.2 from the repo6033 with the root module v1.0.36034 behaves like a module archive resource6035 returns an archive of / @ v1.0.3 from the repo6036 with the submodule v1.0.36037 behaves like a module archive resource6038 returns an archive of /mod @ v1.0.3 from the repo6039 with the root module v2.0.06040 behaves like a module archive resource6041 returns an archive of /v2 @ v2.0.0 from the repo6042 with an invalid module directive6043 GET /projects/:id/packages/go/*module_name/@v/list6044 with a completely wrong directive for v16045 behaves like a module version list resource6046 returns nothing6047 with a directive omitting the suffix for v26048 behaves like a module version list resource6049 returns nothing6050 GET /projects/:id/packages/go/*module_name/@v/:module_version.info6051 with a completely wrong directive for v16052 behaves like a missing module version information resource6053 behaves like an unavailable resource6054 returns not found6055 with a directive omitting the suffix for v26056 behaves like a missing module version information resource6057 behaves like an unavailable resource6058 returns not found6059 with a case sensitive project and versions6060 GET /projects/:id/packages/go/*module_name/@v/list6061 with a case encoded path6062 behaves like a module version list resource6063 returns v1.0.1-prerelease, v1.0.1-Prerelease6064 without a case encoded path6065 behaves like a missing module version list resource6066 behaves like an unavailable resource6067 returns not found6068 GET /projects/:id/packages/go/*module_name/@v/:module_version.info6069 with a case encoded path6070 behaves like a module version information resource6071 returns information for v1.0.1-Prerelease6072 without a case encoded path6073 behaves like a module version information resource6074 returns information for v1.0.1-prerelease6075 with a private project6076 GET /projects/:id/packages/go/*module_name/@v/list6077 returns ok with an oauth token6078 returns ok with a job token6079 returns ok with a personal access token6080 returns ok with a personal access token and basic authentication6081 returns unauthorized with a failed job token6082 returns unauthorized with no authentication6083 with access to package registry for everyone6084 behaves like a module version list resource6085 returns v1.0.1, v1.0.2, v1.0.36086 behaves like a module version information resource6087 returns information for v1.0.16088 behaves like a module file resource6089 returns /go.mod from the repo6090 behaves like a module archive resource6091 returns an archive of / @ v1.0.1 from the repo6092 with a public project6093 GET /projects/:id/packages/go/*module_name/@v/list6094 returns ok with no authentication6095 with a non-existent project6096 GET /projects/:id/packages/go/*module_name/@v/list6097 returns not found with a user6098 returns not found with an oauth token6099 returns not found with a job token6100 returns not found with a personal access token6101 returns unauthorized with no authentication6102Snippets::NotesController6103 GET index6104 when a snippet is public6105 returns status 2006106 returns not empty array of notes6107 when a snippet is internal6108 when user not logged in6109 returns status 4046110 when user logged in6111 returns status 2006112 when a snippet is private6113 when user not logged in6114 returns status 4046115 when user other than author logged in6116 returns status 4046117 when author logged in6118 returns status 2006119 returns 1 note6120 dont show non visible notes6121 does not return any note6122 POST create6123 when a snippet is public6124 returns status 3026125 creates the note6126 behaves like create notes request exceeding rate limit6127 allows user in allow-list to create notes, even if the case is different6128 when rate limiter enabled6129 logs request and declines it when endpoint called more than the threshold6130 when rate limiter is disabled6131 does not log request and does not block the request6132 when a snippet is internal6133 returns status 3026134 creates the note6135 behaves like create notes request exceeding rate limit6136 allows user in allow-list to create notes, even if the case is different6137 when rate limiter enabled6138 logs request and declines it when endpoint called more than the threshold6139 when rate limiter is disabled6140 does not log request and does not block the request6141 when a snippet is private6142 when user is not the author6143 returns status 4046144 does not create the note6145 when user sends a snippet_id for a public snippet6146 returns status 3026147 creates the note on the public snippet6148 when user is the author6149 returns status 3026150 creates the note6151 behaves like create notes request exceeding rate limit6152 allows user in allow-list to create notes, even if the case is different6153 when rate limiter enabled6154 logs request and declines it when endpoint called more than the threshold6155 when rate limiter is disabled6156 does not log request and does not block the request6157 DELETE destroy6158 when user is the author of a note6159 returns status 2006160 deletes the note6161 system note6162 does not delete the note6163 when user is not the author of a note6164 returns status 4046165 does not update the note6166 POST toggle_award_emoji6167 toggles the award emoji6168 removes the already awarded emoji when it exists6169VerifiesWithEmail6170 verify_with_email6171 when user is locked and a verification_user_id session variable exists6172 when rate limited and a verification_token param exists6173 adds a verification error message6174 behaves like prompt for email verification6175 sets the verification_user_id session variable and renders the email verification template6176 when an invalid verification_token param exists6177 adds a verification error message6178 behaves like prompt for email verification6179 sets the verification_user_id session variable and renders the email verification template6180 when an expired verification_token param exists6181 adds a verification error message6182 behaves like prompt for email verification6183 sets the verification_user_id session variable and renders the email verification template6184 when a valid verification_token param exists6185 unlocks the user6186 redirects to the successful verification path6187 when not completing identity verification and logging in with another account6188 does not redirect to the successful verification path6189 when signing in with a valid password6190 behaves like not verifying with email6191 when rate limited6192 behaves like two factor prompt or successful login6193 shows the 2FA prompt when enabled or redirects to the root path6194 when the user already has an unlock_token set6195 behaves like two factor prompt or successful login6196 shows the 2FA prompt when enabled or redirects to the root path6197 when the user is signing in from an unknown ip address6198 behaves like two factor prompt or successful login6199 shows the 2FA prompt when enabled or redirects to the root path6200 when the feature flag is toggled on6201 behaves like verifying with email6202 when rate limited6203 behaves like rate limited6204 redirects to the login form and shows an alert message6205 when the user already has an unlock_token set6206 behaves like prompt for email verification6207 sets the verification_user_id session variable and renders the email verification template6208 when the user is already locked6209 behaves like send verification instructions6210 locks the user6211 sends an email6212 behaves like prompt for email verification6213 sets the verification_user_id session variable and renders the email verification template6214 when the user is signing in from an unknown ip address6215 behaves like send verification instructions6216 locks the user6217 sends an email6218 behaves like prompt for email verification6219 sets the verification_user_id session variable and renders the email verification template6220 when the check_ip_address_for_email_verification feature flag is disabled6221 behaves like not verifying with email6222 when rate limited6223 behaves like two factor prompt or successful login6224 shows the 2FA prompt when enabled or redirects to the root path6225 when the user already has an unlock_token set6226 behaves like two factor prompt or successful login6227 shows the 2FA prompt when enabled or redirects to the root path6228 when the user is signing in from an unknown ip address6229 behaves like two factor prompt or successful login6230 shows the 2FA prompt when enabled or redirects to the root path6231 when 2FA is enabled6232 behaves like not verifying with email6233 when rate limited6234 behaves like two factor prompt or successful login6235 shows the 2FA prompt when enabled or redirects to the root path6236 when the user already has an unlock_token set6237 behaves like two factor prompt or successful login6238 shows the 2FA prompt when enabled or redirects to the root path6239 when the user is signing in from an unknown ip address6240 behaves like two factor prompt or successful login6241 shows the 2FA prompt when enabled or redirects to the root path6242 when request is not from a QA user6243 behaves like verifying with email6244 when rate limited6245 behaves like rate limited6246 redirects to the login form and shows an alert message6247 when the user already has an unlock_token set6248 behaves like prompt for email verification6249 sets the verification_user_id session variable and renders the email verification template6250 when the user is already locked6251 behaves like send verification instructions6252 locks the user6253 sends an email6254 behaves like prompt for email verification6255 sets the verification_user_id session variable and renders the email verification template6256 when the user is signing in from an unknown ip address6257 behaves like send verification instructions6258 locks the user6259 sends an email6260 behaves like prompt for email verification6261 sets the verification_user_id session variable and renders the email verification template6262 when the check_ip_address_for_email_verification feature flag is disabled6263 behaves like not verifying with email6264 when rate limited6265 behaves like two factor prompt or successful login6266 shows the 2FA prompt when enabled or redirects to the root path6267 when the user already has an unlock_token set6268 behaves like two factor prompt or successful login6269 shows the 2FA prompt when enabled or redirects to the root path6270 when the user is signing in from an unknown ip address6271 behaves like two factor prompt or successful login6272 shows the 2FA prompt when enabled or redirects to the root path6273 when the skip_require_email_verification feature flag is turned on6274 behaves like not verifying with email6275 when rate limited6276 behaves like two factor prompt or successful login6277 shows the 2FA prompt when enabled or redirects to the root path6278 when the user already has an unlock_token set6279 behaves like two factor prompt or successful login6280 shows the 2FA prompt when enabled or redirects to the root path6281 when the user is signing in from an unknown ip address6282 behaves like two factor prompt or successful login6283 shows the 2FA prompt when enabled or redirects to the root path6284 resend_verification_code6285 when no verification_user_id session variable exists6286 returns 204 No Content6287 when a verification_user_id session variable exists6288 behaves like send verification instructions6289 locks the user6290 sends an email6291 behaves like prompt for email verification6292 sets the verification_user_id session variable and renders the email verification template6293 when exceeding the rate limit6294 does not lock the user6295 does not send an email6296 behaves like prompt for email verification6297 sets the verification_user_id session variable and renders the email verification template6298 successful_verification6299 renders the template and removes the verification_user_id session variable6300API::Unleash6301 GET /feature_flags/unleash/:project_id/client/features6302 is expected to have request urgency :medium6303 GET /feature_flags/unleash/:project_id/features6304 behaves like authenticated request6305 when using instance id6306 responds with OK6307 when repository is disabled6308 responds with forbidden6309 when repository is private6310 responds with OK6311 when using header6312 responds with OK6313 when using bogus instance id6314 responds with unauthorized6315 when using not existing project6316 responds with unauthorized6317 when a client fetches feature flags several times6318 serializes feature flags for the first time and read cached data from the second time6319 increments the cache key when feature flags are modified6320 with version 2 feature flags6321 does not return a flag without any strategies6322 returns a flag with a default strategy6323 returns a flag with a userWithId strategy6324 returns a flag with multiple strategies6325 returns only flags matching the environment scope6326 returns only strategies matching the environment scope6327 returns only flags for the given project6328 returns all strategies with a matching scope6329 returns a strategy with more than one matching scope6330 returns a disabled flag with a matching scope6331 returns a userWithId strategy for a gitlabUserList strategy6332 GET /feature_flags/unleash/:project_id/client/features6333 behaves like authenticated request6334 when using instance id6335 responds with OK6336 when repository is disabled6337 responds with forbidden6338 when repository is private6339 responds with OK6340 when using header6341 responds with OK6342 when using bogus instance id6343 responds with unauthorized6344 when using not existing project6345 responds with unauthorized6346 when a client fetches feature flags several times6347 serializes feature flags for the first time and read cached data from the second time6348 increments the cache key when feature flags are modified6349 with version 2 feature flags6350 does not return a flag without any strategies6351 returns a flag with a default strategy6352 returns a flag with a userWithId strategy6353 returns a flag with multiple strategies6354 returns only flags matching the environment scope6355 returns only strategies matching the environment scope6356 returns only flags for the given project6357 returns all strategies with a matching scope6358 returns a strategy with more than one matching scope6359 returns a disabled flag with a matching scope6360 returns a userWithId strategy for a gitlabUserList strategy6361 POST /feature_flags/unleash/:project_id/client/register6362 behaves like authenticated request6363 when using instance id6364 responds with OK6365 when repository is disabled6366 responds with forbidden6367 when repository is private6368 responds with OK6369 when using header6370 responds with OK6371 when using bogus instance id6372 responds with unauthorized6373 when using not existing project6374 responds with unauthorized6375 POST /feature_flags/unleash/:project_id/client/metrics6376 behaves like authenticated request6377 when using instance id6378 responds with OK6379 when repository is disabled6380 responds with forbidden6381 when repository is private6382 responds with OK6383 when using header6384 responds with OK6385 when using bogus instance id6386 responds with unauthorized6387 when using not existing project6388 responds with unauthorized6389Getting designs related to an issue6390 when the feature is available6391 returns the design properties correctly6392 when the v432x230-sized design image has not been processed6393 returns nil for the v432x230-sized design image6394 pagination6395 sorts designs for reliable pagination6396 with versions6397 includes the version id6398 includes the version sha6399 viewing a design board at a particular version6400 viewing the original version, when one design was created6401 only returns the first design6402 returns the correct full-sized design image6403 returns the correct v432x230-sized design image6404 returns the correct event for the design in this version6405 only returns one version record for the design (the original version)6406 viewing the second version, when one design was created6407 only returns the first two designs6408 returns the correct full-sized design images6409 returns the correct v432x230-sized design images6410 returns the correct events for the designs in this version6411 returns the correct versions records for both designs6412 viewing the last version, when one design was deleted and one was updated6413 does not include the deleted design6414 returns the correct full-sized design images6415 returns the correct v432x230-sized design images6416 returns the correct events for the designs in this version6417 returns all versions records for the designs6418 a design with note annotations6419 returns the notes for the design6420 returns a note_count for the design6421Projects::AutocompleteSourcesController6422 GET commands6423 with a public project6424 with an issue6425 behaves like issuable commands6426 returns empty array when no user logged in6427 raises an error when no target type specified6428 returns an array of commands6429 with work items6430 behaves like issuable commands6431 returns empty array when no user logged in6432 raises an error when no target type specified6433 returns an array of commands6434 with merge request6435 behaves like issuable commands6436 returns empty array when no user logged in6437 raises an error when no target type specified6438 returns an array of commands6439 GET labels6440 with issues6441 behaves like label commands6442 raises an error when no target type specified6443 returns an array of labels6444 with work items6445 behaves like label commands6446 raises an error when no target type specified6447 returns an array of labels6448 GET members6449 when logged in6450 returns 400 when no target type specified6451 with issue6452 behaves like all members are returned6453 returns an array of member object6454 with work item6455 behaves like all members are returned6456 returns an array of member object6457 when anonymous6458 with issue6459 behaves like private project is inaccessible6460 redirects to login page for private project6461 behaves like only public members are returned for public project6462 only returns public members6463 with work item6464 behaves like private project is inaccessible6465 redirects to login page for private project6466 behaves like only public members are returned for public project6467 only returns public members6468 GET milestones6469 lists milestones6470 when user cannot read project issues and merge requests6471 renders 4046472 GET contacts6473 when feature flag is enabled6474 when a group has contact relations enabled6475 when a user can read contacts6476 lists contacts6477 when a user can not read contacts6478 renders 4046479 when a group has contact relations disabled6480 renders 4046481API::ProjectRepositoryStorageMoves6482 behaves like repository_storage_moves API6483 GET /projects/:id/repository_storage_moves6484 behaves like get container repository storage move list6485 returns container repository storage moves6486 avoids N+1 queries6487 returns the most recently created first6488 permissions6489 is expected to be allowed for :admin6490 is expected to be denied for :user6491 non-existent container6492 returns not found6493 GET /projects/:id/repository_storage_moves/:repository_storage_move_id6494 behaves like get single container repository storage move6495 returns a container repository storage move6496 non-existent container repository storage move6497 returns not found6498 permissions6499 is expected to be allowed for :admin6500 is expected to be denied for :user6501 non-existent container6502 returns not found6503 GET /project_repository_storage_moves6504 behaves like get container repository storage move list6505 returns container repository storage moves6506 avoids N+1 queries6507 returns the most recently created first6508 permissions6509 is expected to be allowed for :admin6510 is expected to be denied for :user6511 GET /project_repository_storage_moves/:repository_storage_move_id6512 behaves like get single container repository storage move6513 returns a container repository storage move6514 non-existent container repository storage move6515 returns not found6516 permissions6517 is expected to be allowed for :admin6518 is expected to be denied for :user6519 POST /projects/:id/repository_storage_moves6520 schedules a container repository storage move6521 permissions6522 is expected to be allowed for :admin6523 is expected to be denied for :user6524 destination_storage_name is missing6525 schedules a container repository storage move6526 when container does not exist6527 returns not found6528 POST /project_repository_storage_moves6529 schedules the worker6530 source_storage_name is invalid6531 gives an error6532 destination_storage_name is missing6533 schedules the worker6534 destination_storage_name is invalid6535 gives an error6536 normal user6537 is expected to be denied for :user6538Updating an image DiffNote6539 when the user does not have permission6540 does not update the DiffNote6541 behaves like a mutation that returns a top-level access error6542 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"6543 when the user has permission6544 updates the DiffNote6545 returns the updated DiffNote6546 updating single properties at a time6547 property: :body, new_value: "foo"6548 updates the DiffNote correctly6549 property: :width, new_value: 196550 updates the DiffNote correctly6551 property: :height, new_value: 186552 updates the DiffNote correctly6553 property: :x, new_value: 176554 updates the DiffNote correctly6555 property: :y, new_value: 166556 updates the DiffNote correctly6557 when position is nil6558 updates the DiffNote correctly6559 when both body and position args are blank6560 behaves like a mutation that returns top-level errors6561 is expected to contain exactly "body or position arguments are required"6562 when the resource is not a Note6563 behaves like a Note mutation when the given resource id is not for a Note6564 behaves like a mutation that returns top-level errors6565 is expected to include /does not represent an instance of Note/6566 when resource is not a DiffNote on an image6567 behaves like a mutation that returns top-level errors6568 is expected to contain exactly "Resource is not an ImageDiffNote"6569 when there are ActiveRecord validation errors6570 does not update the DiffNote6571 returns the DiffNote with its original body6572 behaves like a mutation that returns errors in the response6573 is expected to contain exactly "Error 1" and "Error 2"6574 when body only contains quick actions6575 returns a nil note and empty errors6576API::MergeRequestApprovals6577 GET :id/merge_requests/:merge_request_iid/approvals6578 retrieves the approval status6579 when merge request author has only guest access6580 behaves like rejects user from accessing merge request info6581 returns a 403 error6582 POST :id/merge_requests/:merge_request_iid/approve6583 as a valid approver6584 when the sha param is not set6585 approves the merge request6586 when the sha param is correct6587 approves the merge request6588 when the sha param is incorrect6589 does not approve the merge request6590 POST :id/merge_requests/:merge_request_iid/unapprove6591 as a user who has approved the merge request6592 unapproves the merge request6593 PUT :id/merge_requests/:merge_request_iid/reset_approvals6594 for a bot user6595 clears approvals of the merge_request6596 when bot user approved the merge request6597 clears approvals of the merge_request6598 for users with non-bot roles6599 returns 4016600 returns 4016601 returns 4016602 returns 4016603 for bot-users from external namespaces6604 for external group bot-user6605 returns 4016606 for external project bot-user6607 returns 4016608API::GroupVariables6609 GET /groups/:id/variables6610 authorized user with proper permissions6611 returns group variables6612 authorized user with invalid permissions6613 does not return group variables6614 unauthorized user6615 does not return group variables6616 GET /groups/:id/variables/:key6617 authorized user with proper permissions6618 returns group variable details6619 responds with 404 Not Found if requesting non-existing variable6620 authorized user with invalid permissions6621 does not return group variable details6622 unauthorized user6623 does not return group variable details6624 POST /groups/:id/variables6625 authorized user with proper permissions6626 when the group is below the plan limit for variables6627 creates variable6628 masks the new value when logging6629 creates variable with optional attributes6630 does not allow to duplicate variable key6631 when the group is at the plan limit for variables6632 returns a variable limit error6633 authorized user with invalid permissions6634 does not create variable6635 unauthorized user6636 does not create variable6637 PUT /groups/:id/variables/:key6638 authorized user with proper permissions6639 updates variable data6640 masks the new value when logging6641 responds with 404 Not Found if requesting non-existing variable6642 responds with 400 if the update fails6643 authorized user with invalid permissions6644 does not update variable6645 unauthorized user6646 does not update variable6647 DELETE /groups/:id/variables/:key6648 authorized user with proper permissions6649 deletes variable6650 responds with 404 Not Found if requesting non-existing variable6651 behaves like 412 response6652 for a modified resource6653 returns 412 with a JSON error6654 for an unmodified resource6655 returns 204 with an empty body6656 authorized user with invalid permissions6657 does not delete variable6658 unauthorized user6659 does not delete variable6660DashboardController6661 token authentication6662 behaves like authenticates sessionless user for the request spec6663 issues atom6664 when the 'private_token' param is populated with the personal access token6665 when valid token6666 when resource is private6667 authenticates user and returns response with ok status6668 when user with expired password6669 does not return response with ok status6670 when password expiration is not applicable6671 when ldap user6672 authenticates user and returns response with ok status6673 when the personal access token has no api scope6674 when resource is private6675 does not return response with ok status6676 when invalid token6677 when resource is private6678 does not return response with ok status6679 when the 'PRIVATE-TOKEN' header is populated with the personal access token6680 when valid token6681 when resource is private6682 authenticates user and returns response with ok status6683 when user with expired password6684 does not return response with ok status6685 when password expiration is not applicable6686 when ldap user6687 authenticates user and returns response with ok status6688 when the personal access token has no api scope6689 when resource is private6690 does not return response with ok status6691 when invalid token6692 when resource is private6693 does not return response with ok status6694 when the 'feed_token' param is populated with the feed token6695 when valid token6696 when resource is private6697 authenticates user and returns response with ok status6698 when user with expired password6699 does not return response with ok status6700 when password expiration is not applicable6701 when ldap user6702 authenticates user and returns response with ok status6703 when invalid token6704 when resource is private6705 does not return response with ok status6706 behaves like authenticates sessionless user for the request spec6707 issues_calendar ics6708 when the 'private_token' param is populated with the personal access token6709 when valid token6710 when resource is private6711 authenticates user and returns response with ok status6712 when user with expired password6713 does not return response with ok status6714 when password expiration is not applicable6715 when ldap user6716 authenticates user and returns response with ok status6717 when the personal access token has no api scope6718 when resource is private6719 does not return response with ok status6720 when invalid token6721 when resource is private6722 does not return response with ok status6723 when the 'PRIVATE-TOKEN' header is populated with the personal access token6724 when valid token6725 when resource is private6726 authenticates user and returns response with ok status6727 when user with expired password6728 does not return response with ok status6729 when password expiration is not applicable6730 when ldap user6731 authenticates user and returns response with ok status6732 when the personal access token has no api scope6733 when resource is private6734 does not return response with ok status6735 when invalid token6736 when resource is private6737 does not return response with ok status6738 when the 'feed_token' param is populated with the feed token6739 when valid token6740 when resource is private6741 authenticates user and returns response with ok status6742 when user with expired password6743 does not return response with ok status6744 when password expiration is not applicable6745 when ldap user6746 authenticates user and returns response with ok status6747 when invalid token6748 when resource is private6749 does not return response with ok status6750 issues dashboard6751 behaves like rate limited endpoint6752 when rate limiter enabled6753 logs request and declines it when endpoint called more than the threshold6754 when rate limiter is disabled6755 does not log request and does not block the request6756 merge requests dashboard6757 behaves like rate limited endpoint6758 when rate limiter enabled6759 logs request and declines it when endpoint called more than the threshold6760 when rate limiter is disabled6761 does not log request and does not block the request6762deleting designs6763 the designs list is empty6764 behaves like a failed request6765 reports an error6766 the designs list contains filenames we cannot find6767 behaves like a failed request6768 reports an error6769 the current user does not have developer access6770 behaves like a failed request6771 reports an error6772 when the issue does not exist6773 behaves like a failed request6774 reports an error6775 when saving the designs raises an error6776 responds with errors6777 one of the designs is already deleted6778 reports an error6779 when the user names designs to delete6780 deletes the designs6781 has no errors6782IdeController6783 # order random6784 #index6785 with /-/ide6786 returns 4046787 with /-/ide/project6788 returns 4046789 with /-/ide/project/:project6790 instantiates project instance var and returns 2006791 behaves like user access rights check6792 when user can read project6793 increases the views counter6794 when user can read project but cannot push code6795 when user does not have fork6796 instantiates fork_info instance var with fork_path and returns 2006797 has nil fork_info if user cannot fork6798 when user has fork6799 instantiates fork_info instance var with ide_path and returns 2006800 when user cannot read project6801 returns 4046802 with /-/ide/project/:project/edit6803 instantiates project instance var and returns 2006804 behaves like user access rights check6805 when user can read project6806 increases the views counter6807 when user can read project but cannot push code6808 when user does not have fork6809 instantiates fork_info instance var with fork_path and returns 2006810 has nil fork_info if user cannot fork6811 when user has fork6812 instantiates fork_info instance var with ide_path and returns 2006813 when user cannot read project6814 returns 4046815 with /-/ide/project/:project/blob6816 instantiates project instance var and returns 2006817 behaves like user access rights check6818 when user can read project6819 increases the views counter6820 when user can read project but cannot push code6821 when user does not have fork6822 instantiates fork_info instance var with fork_path and returns 2006823 has nil fork_info if user cannot fork6824 when user has fork6825 instantiates fork_info instance var with ide_path and returns 2006826 when user cannot read project6827 returns 4046828 with /-/ide/project/:project/tree6829 instantiates project instance var and returns 2006830 behaves like user access rights check6831 when user can read project6832 increases the views counter6833 when user can read project but cannot push code6834 when user does not have fork6835 instantiates fork_info instance var with fork_path and returns 2006836 has nil fork_info if user cannot fork6837 when user has fork6838 instantiates fork_info instance var with ide_path and returns 2006839 when user cannot read project6840 returns 4046841 Snowplow view event6842 is tracked6843 layout6844 ff_state: false, expect_top_nav: true6845 handles rendering top nav6846 ff_state: true, expect_top_nav: false6847 handles rendering top nav6848 content security policy6849 updates the content security policy with the correct frame sources6850 with relative_url_root, updates the content security policy with the correct frame sources6851Gitlab::SidekiqCluster::CLI6852 #run6853 without any arguments6854 raises CommandError6855 with arguments6856 starts the Sidekiq workers6857 allows the special * selector6858 raises an error when the arguments contain newlines6859 with --negate flag6860 starts Sidekiq workers for all queues in all_queues.yml except the ones in argv6861 with --max-concurrency flag6862 starts Sidekiq workers for specified queues with a max concurrency6863 with --min-concurrency flag6864 starts Sidekiq workers for specified queues with a min concurrency6865 with --timeout flag6866 when given6867 when not given6868 with --list-queues flag6869 errors when given --list-queues and --dryrun6870 prints out a list of queues in alphabetical order6871 queue namespace expansion6872 starts Sidekiq workers for all queues in all_queues.yml with a namespace in argv6873 with --queue-selector6874 expands multiple queue groups correctly6875 allows the special * selector6876 errors when the selector matches no queues6877 errors on an invalid query multiple queue groups correctly6878 memory-bound queues6879 expands queues by attributes6880 works when negated6881 memory- or CPU-bound queues6882 expands queues by attributes6883 works when negated6884 high urgency CI queues6885 expands queues by attributes6886 works when negated6887 CPU-bound high urgency CI queues6888 expands queues by attributes6889 works when negated6890 CPU-bound high urgency non-CI queues6891 expands queues by attributes6892 works when negated6893 CI and SCM queues6894 expands queues by attributes6895 works when negated6896 with routing rules specified6897 starts Sidekiq workers only for given queues without any additional DEFAULT_QUEUES6898 with sidekiq settings not specified6899 does not throw an error6900 starts Sidekiq workers with given queues, and additional default and mailers queues (DEFAULT_QUEUES)6901 metrics server6902 starting the server6903 without --dryrun6904 wipes the metrics directory before starting workers6905 when sidekiq_exporter is not set up6906 does not start a sidekiq metrics server6907 with missing sidekiq_exporter setting6908 does not start a sidekiq metrics server6909 does not throw an error6910 when sidekiq_exporter is disabled6911 does not start a sidekiq metrics server6912 when sidekiq_exporter is enabled6913 starts the metrics server6914 when a PID is specified6915 writes the PID to a file6916 when no PID is specified6917 does not write a PID6918 with --dryrun set6919 does not start the server6920 supervising the cluster6921 stops the entire process cluster if one of the workers has been terminated6922 restarts the metrics server when it is down6923 when one of the workers has been terminated gracefully6924 stops the entire process cluster6925 when one of the workers has failed6926 stops the entire process cluster and exits with a non-zero code6927User6928 when id parameter is used6929 behaves like a working user query6930 includes the user6931 returns no user when global restricted_visibility_levels includes PUBLIC6932 behaves like a working graphql query6933 returns a successful response6934 when username parameter is used6935 when username is identically cased6936 behaves like a working user query6937 includes the user6938 returns no user when global restricted_visibility_levels includes PUBLIC6939 behaves like a working graphql query6940 returns a successful response6941 when username is differently cased6942 behaves like a working user query6943 includes the user6944 returns no user when global restricted_visibility_levels includes PUBLIC6945 behaves like a working graphql query6946 returns a successful response6947 when username and id parameter are used6948 displays an error6949 email fields6950 with permission6951 returns the relevant email details6952 without permission6953 does not return email details6954Groups::Settings::ApplicationsController6955 GET #index6956 when user is owner6957 renders the application form6958 when user is not owner6959 renders a 4046960 GET #edit6961 when user is owner6962 renders the application form6963 when user is not owner6964 renders a 4046965 POST #create6966 when user is owner6967 creates the application6968 renders the application form on errors6969 when the params are for a confidential application6970 creates a confidential application6971 when scopes are not present6972 renders the application form on errors6973 when user is not owner6974 renders a 4046975 PUT #renew6976 when user is owner6977 is expected to respond with numeric status code ok6978 is expected to change `application.reload.secret`6979 returns the secret in json format6980 when renew fails6981 is expected not to change `application.reload.secret`6982 is expected to respond with numeric status code unprocessable_entity6983 when user is not owner6984 renders a 4046985 PATCH #update6986 when user is owner6987 updates the application6988 renders the application form on errors6989 when updating the application to be confidential6990 successfully sets the application to confidential6991 when user is not owner6992 renders a 4046993 DELETE #destroy6994 when user is owner6995 deletes the application6996 when user is not owner6997 renders a 4046998Query.project(fullPath).issue(iid)6999 .designCollection7000 .design7001 behaves like being able to fetch a design-like object by ID7002 the ID is passed7003 retrieves the object7004 the user is unauthorized7005 behaves like a failure to find anything7006 finds nothing7007 without parameters7008 raises an error7009 attempting to retrieve an object from a different issue7010 behaves like a failure to find anything7011 finds nothing7012 behaves like being able to fetch a design-like object by ID7013 the ID is passed7014 retrieves the object7015 the user is unauthorized7016 behaves like a failure to find anything7017 finds nothing7018 without parameters7019 raises an error7020 attempting to retrieve an object from a different issue7021 behaves like a failure to find anything7022 finds nothing7023 .version7024 no parameters7025 raises an error7026 (sha: STRING_TYPE)7027 behaves like a successful query for a version7028 finds the version7029 (id: ID_TYPE)7030 behaves like a successful query for a version7031 finds the version7032 .designAtVersion7033 behaves like being able to fetch a design-like object by ID7034 the ID is passed7035DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7036 retrieves the object7037 the user is unauthorized7038 behaves like a failure to find anything7039 finds nothing7040 without parameters7041 raises an error7042 attempting to retrieve an object from a different issue7043 behaves like a failure to find anything7044 finds nothing7045getting a repository in a project7046 returns repository7047 as a non-authorized user7048 returns nil7049 as a non-admin7050 does not return diskPath7051 as an admin7052 returns diskPath7053 when the repository is only accessible to members7054 returns a repository for the owner7055 returns nil for the repository for other users7056 returns nil for the repository for other users7057 when paginated tree requested7058 returns paginated tree7059Projects::Pipelines::TestsController7060 GET #summary.json7061 when pipeline has build report results7062 renders test report summary data7063 when pipeline does not have build report results7064 renders test report summary data7065 GET #show.json7066 when pipeline has builds with test reports7067 when artifacts are expired7068 renders test suite7069 when artifacts do not exist7070 renders not_found errors7071 when artifacts are not expired7072 renders test suite data7073 when pipeline has no builds that matches the given build_ids7074 renders 4047075Subscriptions::Notes::Created7076 # order random7077 when resource events are triggering note subscription7078 when user is unauthorized7079 does not receive discussion data7080 when user is authorized7081 receives created synthetic note as a discussion7082 when several label events are created7083 receives created synthetic note as a discussion7084 when user is authorized7085 receives created note7086 when a new note is created as a reply7087 receives created note7088 when note is confidential7089 and user has permission to read confidential notes7090 receives created note7091 and replying7092 receives created note7093 and user does not have permission to read confidential notes7094 does not receive note data7095 when user is unauthorized7096 does not receive any data7097API::Metadata7098 GET /metadata7099 when unauthenticated7100 returns authentication error7101 when authenticated as user7102 returns the metadata information7103 when authenticated with token7104 with api scope7105 returns the metadata information7106 returns "200" response on head requests7107 with read_user scope7108 returns the metadata information7109 returns "200" response on head requests7110 with neither api nor read_user scope7111 returns authorization error7112 GET /version7113 when unauthenticated7114 returns authentication error7115 when authenticated as user7116 returns the metadata information7117 when authenticated with token7118 with api scope7119 returns the metadata information7120 returns "200" response on head requests7121 with read_user scope7122 returns the metadata information7123 returns "200" response on head requests7124 with neither api nor read_user scope7125 returns authorization error7126Explore::SnippetsController7127 GET #index7128 renders7129 renders pagination7130 behaves like snippets views7131 when rendered7132 avoids N+1 database queries7133Project Environments query7134 # order random7135 returns the specified fields of the environment7136 with cluster agent7137 returns the cluster agent of the environment7138 when the cluster is not authorized in the project7139 does not return the cluster agent of the environment7140 last deployments of environments7141 returns all last deployments of the environment7142 executes the same number of queries in single environment and multiple environments7143 user permissions7144 returns user permissions of the environment7145 when fetching user permissions for multiple environments7146 limits the result7147 nested environments7148 with query7149 can fetch nested environments7150 when user is guest7151 returns nothing7152 when using pagination7153 supports pagination7154getting notes for an issue7155 behaves like exposing regular notes on a noteable in GraphQL7156 for regular notes7157 includes the note7158 avoids N+1 queries7159 behaves like a working graphql query7160 returns a successful response7161 for discussions7162 includes all discussion notes7163 behaves like a working graphql query7164 returns a successful response7165Query.group(fullPath).ciVariables7166 when the user can administer the group7167 returns the group's CI variables7168 when the user cannot administer the group7169 returns nothing7170 sorting and pagination7171 behaves like sorted paginated variables7172 when sorted by key ascending7173 behaves like sorted paginated query7174 behaves like requires variables7175 shared example requires variables to be set7177 when sorting7178 sorts correctly7179 when paginating7180 paginates correctly7181 when sorted by key descending7182 behaves like sorted paginated query7183 behaves like requires variables7184 shared example requires variables to be set7186 when sorting7187 sorts correctly7188 when paginating7189 paginates correctly7190JiraConnect::EventsController7191 #installed7192 saves the jira installation data7193 saves the correct values7194 behaves like verifies asymmetric JWT token7195 when token is valid7196 renders successful7197 when token is invalid7198 renders unauthorized7199 when the shared_secret param is missing7200 returns 4227201 when an installation already exists7202 validates the JWT token in authorization header and returns 200 without creating a new installation7203 uses the JiraConnectInstallations::UpdateService7204 when parameters include a new shared secret and base_url7205 updates the installation7206 when the new base_url is invalid7207 renders 4227208 when enforce_jira_base_url_https7209 behaves like generates JWT validation claims7210 is expected to receive new(anything, {:aud=>"https://test.host/-/jira_connect", :iss=>anything, :qsh=>anything}) 1 time7211 when not enforce_jira_base_url_https7212 behaves like generates JWT validation claims7213 is expected to receive new(anything, {:aud=>"http://test.host/-/jira_connect", :iss=>anything, :qsh=>anything}) 1 time7214 #uninstalled7215 behaves like verifies asymmetric JWT token7216 when token is valid7217 renders successful7218 when token is invalid7219 renders unauthorized7220 when JWT is invalid7221 does not delete the installation7222 when JWT is valid7223 calls the DestroyService and returns ok in case of success7224 calls the DestroyService and returns unprocessable_entity in case of failure7225ChecksCollaboration7226 #can_collaborate_with_project?7227 is true if the user can push to the project7228 is true when the user can push to a branch of the project7229 when the user has forked the project7230 is true7231 is false when the project is archived7232Groups::SharedProjectsController7233 GET #index7234 returns only projects shared with the group7235 allows filtering shared projects7236 allows sorting projects7237 does not include archived projects7238Projects::MattermostsController7239 GET #new7240 accepts the request7241 POST #create7242 no request can be made to mattermost7243 shows the error7244 the request is succesull7245 redirects to the new page7246API::Pages7247 DELETE /projects/:id/pages7248 behaves like DELETE request permissions for admin mode7249 behaves like when admin7250 behaves like makes request7251 returns7252 behaves like makes request7253 returns7254 behaves like when user7255 returns7256 behaves like makes request7257 returns7258 when Pages is disabled7259 behaves like 404 response7260 returns 4047261 when Pages is enabled7262 when Pages are deployed7263 returns 2047264 removes the pages7265 when pages are not deployed7266 returns 2047267 when there is no project7268 returns 4047269getting list of branch rules for a project7270 # order random7271 when the user does not have read_protected_branch abilities7272 hides branch rules data7273 behaves like a working graphql query7274 returns a successful response7275 when the user does have read_protected_branch abilities7276 queries7277 avoids N+1 queries7278 response7279 includes all fields7280 behaves like a working graphql query7281 returns a successful response7282 when limiting the number of results7283 returns pagination information7284 behaves like a working graphql query7285 returns a successful response7286 when no limit is provided7287 returns all branch_rules7288Updating the packages cleanup policy7289 post graphql mutation7290 with existing packages cleanup policy7291 user_role: :maintainer, shared_examples_name: "accepting the mutation request and updates the existing policy"7292 behaves like accepting the mutation request and updates the existing policy7293 returns the updated packages cleanup policy7294 user_role: :developer, shared_examples_name: "denying the mutation request"7295 behaves like denying the mutation request7296 returns an error7297 user_role: :reporter, shared_examples_name: "denying the mutation request"7298 behaves like denying the mutation request7299 returns an error7300 user_role: :guest, shared_examples_name: "denying the mutation request"7301 behaves like denying the mutation request7302 returns an error7303 user_role: :anonymous, shared_examples_name: "denying the mutation request"7304 behaves like denying the mutation request7305 returns an error7306 without existing packages cleanup policy7307 user_role: :maintainer, shared_examples_name: "accepting the mutation request and creates a policy"7308 behaves like accepting the mutation request and creates a policy7309 returns the created packages cleanup policy7310 user_role: :developer, shared_examples_name: "denying the mutation request"7311 behaves like denying the mutation request7312 returns an error7313 user_role: :reporter, shared_examples_name: "denying the mutation request"7314 behaves like denying the mutation request7315 returns an error7316 user_role: :guest, shared_examples_name: "denying the mutation request"7317 behaves like denying the mutation request7318 returns an error7319 user_role: :anonymous, shared_examples_name: "denying the mutation request"7320 behaves like denying the mutation request7321 returns an error7322getting project fork details7323 # order random7324 when project source is not visible7325 does not return fork details7326 when a project is not a fork7327 does not return fork details7328 when a user cannot read the code7329 does not return fork details7330 when a ref is specified7331 ref: "feature", counts: {"ahead"=>1, "behind"=>29}7332 returns fork details7333 ref: "v1.1.1", counts: {"ahead"=>5, "behind"=>0}7334 returns fork details7335 ref: "7b5160f9bb23a3d58a0accdbe89da13b96b1ece9", counts: {"ahead"=>9, "behind"=>0}7336 returns fork details7337 ref: "non-existent-branch", counts: {"ahead"=>nil, "behind"=>nil}7338 returns fork details7339API::Internal::ErrorTracking7340 GET /internal/error_tracking/allowed7341 when the secret header is missing7342 responds with unauthorized entity7343 when some params are missing7344 responds with unprocessable entity7345 when public_key is unknown7346 returns enabled: false7347 when unknown project_id is unknown7348 responds with 404 not found7349 when the error tracking is disabled7350 returns enabled: false7351 when the error tracking is enabled7352 returns enabled: true7353 when feature flags use_click_house_database_for_error_tracking or gitlab_error_tracking are disabled7354 returns enabled: false7355Dashboard::SnippetsController7356 GET #index7357 fetches snippet counts via the snippet count service7358 behaves like paginated collection7359 renders a page number that is not ouf of range7360 redirects to last_page if page number is larger than number of pages7361 does not redirect to external sites when provided a host field7362 behaves like snippets sort order7363 when no sort param is provided7364 calls SnippetsFinder with updated_at sort option7365 when sort param is provided7366 calls SnippetsFinder with the given sort param7367 behaves like snippets views7368 when rendered7369 avoids N+1 database queries7370getting task completion status information7371 with description - [ ] task 1\n- [ ] task 27372 when type is issue7373 behaves like graphql task completion status provider7374 returns the expected task completion status7375 when type is merge request7376 behaves like graphql task completion status provider7377 returns the expected task completion status7378 with description - [x] task 1\n- [ ] task 27379 when type is issue7380 behaves like graphql task completion status provider7381 returns the expected task completion status7382 when type is merge request7383 behaves like graphql task completion status provider7384 returns the expected task completion status7385 with description - [x] task 1\n- [x] task 27386 when type is issue7387 behaves like graphql task completion status provider7388 returns the expected task completion status7389 when type is merge request7390 behaves like graphql task completion status provider7391 returns the expected task completion status7392PageLimiter7393 #limit_pages7394 max_page: 2, actual_page: 1, result: nil7395 returns the expected result7396 max_page: 2, actual_page: 2, result: nil7397 returns the expected result7398 max_page: 2, actual_page: 3, result: PageLimiter::PageOutOfBoundsError7399 returns the expected result7400 max_page: nil, actual_page: 1, result: PageLimiter::PageLimitNotANumberError7401 returns the expected result7402 max_page: 0, actual_page: 1, result: PageLimiter::PageLimitNotSensibleError7403 returns the expected result7404 max_page: -1, actual_page: 1, result: PageLimiter::PageLimitNotSensibleError7405 returns the expected result7406 #default_page_out_of_bounds_response7407 returns a bad_request header7408 #record_page_limit_interception7409 creates a metric counter7410 increments the counter7411GroupUpdate7412 when unauthorized7413 when not a group member7414 behaves like unauthorized7415 returns an error7416 when a non-admin group member7417 behaves like unauthorized7418 returns an error7419 when authorized7420 updates shared runners settings7421 when using DISABLED_WITH_OVERRIDE (deprecated)7422 updates shared runners settings with disabled_and_overridable7423 when bad arguments are provided7424 returns the errors7425PwaController7426 GET #manifest7427 with default appearance7428 behaves like text values7429 uses custom values7430 with customized appearance7431 with custom text values7432 behaves like text values7433 uses custom values7434 behaves like text values7435 uses custom values7436 behaves like text values7437 uses custom values7438 with custom icon7439 behaves like icon paths7440 returns expected icon paths7441 with no custom icon7442 behaves like icon paths7443 returns expected icon paths7444 GET #offline7445 responds with static HTML page7446 when user is signed in7447 skips the required signup info storing of user location7448Admin::IdentitiesController7449 GET #index7450 when the user has no identities7451 shows no identities7452 when the user has identities7453 shows identities7454 UPDATE identity7455 repairs ldap blocks7456 DELETE identity7457 repairs ldap blocks7458query Jira service7459 behaves like unauthorized users cannot read services7460 when anonymous user7461 is expected to equal nil7462 when user developer7463 is expected to equal nil7464 when user can access project services7465 returns list of jira integrations7466 behaves like a working graphql query7467 returns a successful response7468API::UserCounts7469 GET /user_counts7470 when unauthenticated7471 returns authentication error7472 when authenticated7473 returns assigned issue counts for current_user7474 returns assigned MR counts for current user7475 updates the mr count when a new mr is assigned7476 returns pending todo counts for current_user7477Query.project.job7478 # order random7479 when the user can read jobs on the project7480 returns the job that matches the given ID7481 when no job matches the given ID7482 returns null7483 when the user cannot read jobs on the project7484 returns null7485PipelineCancel7486 does not cancel any pipelines not owned by the current user7487 returns a error if the pipline cannot be be canceled7488 cancels all cancelable builds from a pipeline7489Projects::RunnerProjectsController7490 # order random7491 #create7492 when assigning runner to another project7493 redirects to the project runners page7494 #destroy7495 when unassigning runner from project7496 redirects to the project runners page7497PipelineScheduleDelete7498 # order random7499 when unauthorized7500 returns an error7501 when authorized7502 when success7503 is expected to eq []7504 when failure7505 when destroy fails7506 is expected to contain exactly "Failed to remove the pipeline schedule"7507 when pipeline schedule not found7508 is expected to eq "Internal server error: Couldn't find Ci::PipelineSchedule with 'id'=0"7509API::ProjectStatistics7510 GET /projects/:id/statistics7511 returns the fetch statistics of the last 30 days7512 excludes the fetch statistics older than 30 days7513 responds with 403 when the user is not a reporter of the repository7514Query.project(fullPath).pipelines.jobs.manualVariables7515 returns the manual variables for actionable jobs7516 does not fetch job variables for jobs that are not actionable7517 does not fetch job variables for bridges7518query terraform states7519 returns terraform state data7520 returns count of terraform states7521 unauthorized users7522 is expected to be nil7523Groups::Settings::RepositoryController7524 POST create_deploy_token7525 a good request7526 creates the deploy token7527 a bad request7528 does not create the deploy token7529 an invalid request7530 raises a validation error7531Create Environment7532 # order random7533 when creating an environment7534 creates successfully7535 when current user is reporter7536 returns error7537 when name is missing7538 returns error7539Warden7540 # order random7541 rate limit7542 limits the number of requests that can be made from a single IP address per user7543PlanningHierarchy7544 GET #planning_hierarchy7545 renders planning hierarchy7546ProjectMember7547 behaves like a working graphql query7548 returns a successful response7549 behaves like a working membership object query7550 contains edge to expected project7551 contains correct access level7552Profiles::WebauthnRegistrationsController7553 #destroy7554 redirects to the profile two factor authentication page7555 destroys the webauthn registration7556 calls the Webauthn::DestroyService7557Import::GithubGroupsController7558 # order random7559 GET status7560 when OAuth config is missing7561 returns missing config error7562 when OAuth config present7563 fetches organizations7564 with pagination7565 when no page is specified7566 requests first page7567 when page is specified7568 responds with organizations with specified page7569PreferredLanguageSwitcher7570 # order random7571 when preferred language in cookies has been modified7572 with a valid value7573 keeps preferred language unchanged7574 with an invalid value7575 sets preferred_language to default7576 when first visit7577 sets preferred_language to default7578Projects::Environments::SampleMetricsController7579 GET #query7580 when the file is not found7581 returns a 4047582 when the sample data is found7583 returns JSON with a message and a 200 status code7584SpammableActions::CaptchaCheck::JsonFormatActionsSupport7585 #with_captcha_check_json_format7586 when spammable.render_recaptcha? is true7587 renders json containing spam_action_response_fields7588 when spammable.render_recaptcha? is false7589 yields to block7590Projects::UploadsController7591 # order random7592 behaves like uploads actions7593 GET #show7594 with file traversal in filename parameter7595 responds with status 4007596Oauth::TokensController7597 includes Two-factor enforcement concern7598Pending: (Failures listed here are expected and do not affect your suite's status)7599 1) getting merge request information nested in a project behaves like when requesting information about MR interactions scalability when selecting all fields behaves like scalable query for interaction fields does not suffer from N+17601 Failure/Error: expect { post_graphql(query) }.not_to exceed_query_limit(baseline)7602 Expected a maximum of 15 queries, got 21:7603 Query Diff:7604 -----------7605 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...7606 -- (expected: 0, got: 1)7607 WHERE "project_authorizations"."project_id" = 579 AND "project_authorizations"."user_id" = 1995 GROUP BY "project_authorizations"."user_id"7608 -- (expected: 0, got: 1)7609 WHERE "project_authorizations"."project_id" = 579 AND "project_authorizations"."user_id" = 1994 GROUP BY "project_authorizations"."user_id"7610 -- (expected: 0, got: 1)7611 WHERE "project_authorizations"."project_id" = 579 AND "project_authorizations"."user_id" = 1993 GROUP BY "project_authorizations"."user_id"7612 SELECT 1 AS one FROM "users"...7613 -- (expected: 0, got: 1)7614 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 138 AND "users"."id" = 1995 LIMIT 17615 -- (expected: 0, got: 1)7616 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 138 AND "users"."id" = 1994 LIMIT 17617 -- (expected: 0, got: 1)7618 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 138 AND "users"."id" = 1993 LIMIT 17619 Shared Example Group: "scalable query for interaction fields" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4597620 Shared Example Group: "when requesting information about MR interactions" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4647621 # ./spec/requests/api/graphql/project/merge_request_spec.rb:432:in `block (5 levels) in <top (required)>'7622 # ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'7623 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'7624 # ./spec/spec_helper.rb:406:in `block (2 levels) in <top (required)>'7625 # ./spec/spec_helper.rb:402:in `block (3 levels) in <top (required)>'7626 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'7627 # ./spec/spec_helper.rb:402:in `block (2 levels) in <top (required)>'7628 # ./spec/spec_helper.rb:243:in `block (2 levels) in <top (required)>'7629 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7630 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'7631 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'7632 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'7633 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'7634 2) getting merge request information nested in a project behaves like when requesting information about MR interactions scalability when selecting all fields behaves like scalable query for interaction fields does not suffer from N+17636 Failure/Error: expect { post_graphql(query) }.not_to exceed_query_limit(baseline)7637 Expected a maximum of 15 queries, got 21:7638 Query Diff:7639 -----------7640 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...7641 -- (expected: 0, got: 1)7642 WHERE "project_authorizations"."project_id" = 579 AND "project_authorizations"."user_id" = 1999 GROUP BY "project_authorizations"."user_id"7643 -- (expected: 0, got: 1)7644 WHERE "project_authorizations"."project_id" = 579 AND "project_authorizations"."user_id" = 1998 GROUP BY "project_authorizations"."user_id"7645 -- (expected: 0, got: 1)7646 WHERE "project_authorizations"."project_id" = 579 AND "project_authorizations"."user_id" = 1997 GROUP BY "project_authorizations"."user_id"7647 SELECT 1 AS one FROM "users"...7648 -- (expected: 0, got: 1)7649 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 138 AND "users"."id" = 1999 LIMIT 17650 -- (expected: 0, got: 1)7651 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 138 AND "users"."id" = 1998 LIMIT 17652 -- (expected: 0, got: 1)7653 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 138 AND "users"."id" = 1997 LIMIT 17654 Shared Example Group: "scalable query for interaction fields" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4597655 Shared Example Group: "when requesting information about MR interactions" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4747656 # ./spec/requests/api/graphql/project/merge_request_spec.rb:432:in `block (5 levels) in <top (required)>'7657 # ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'7658 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'7659 # ./spec/spec_helper.rb:406:in `block (2 levels) in <top (required)>'7660 # ./spec/spec_helper.rb:402:in `block (3 levels) in <top (required)>'7661 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'7662 # ./spec/spec_helper.rb:402:in `block (2 levels) in <top (required)>'7663 # ./spec/spec_helper.rb:243:in `block (2 levels) in <top (required)>'7664 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7665 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'7666 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'7667 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'7668 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'7669Finished in 24 minutes 51 seconds (files took 56.99 seconds to load)76702680 examples, 0 failures, 2 pending7671Randomized with seed 302037672[TEST PROF INFO] Time spent in factories: 10:52.123 (43.03% of total time)7673RSpec exited with 0.7674No examples to retry, congrats!7676Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy7678Uploading artifacts...7679coverage/: found 5 matching artifact files and directories 7680crystalball/: found 2 matching artifact files and directories 7681deprecations/: found 4 matching artifact files and directories 7682knapsack/: found 4 matching artifact files and directories 7683WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7684rspec/: found 14 matching artifact files and directories 7685WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7686log/*.log: found 15 matching artifact files and directories 7687WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964726/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7688WARNING: Retrying... context=artifacts-uploader error=request redirected7689Uploading artifacts as "archive" to coordinator... 201 Created id=4400964726 responseStatus=201 Created token=64_onfyT7690Uploading artifacts...7691rspec/rspec-*.xml: found 1 matching artifact files and directories 7692WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964726/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7693WARNING: Retrying... context=artifacts-uploader error=request redirected7694Uploading artifacts as "junit" to coordinator... 201 Created id=4400964726 responseStatus=201 Created token=64_onfyT7696Job succeeded