rspec integration pg12 11/12
Passed Started
by
@mrincon

Miguel Rincon
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on blue-2.private.runners-manager.gitlab.com/gitlab.com/gitlab-org QvBVRoXM3 feature flags: 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-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:c5abf812eff57d99cd4ae9b4d688261207b59905c5d0ca50c5e57f75669dbf10 for postgres:12 with digest postgres@sha256:0619094e4045d67b34b9b4de10d4c433d03cd032c95145d259a97b3081562936 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:b5a61c880115e6a29b90b90aef1973eb232e48d3547092deb27f519e1ae98f11 for redis:6.0-alpine with digest redis@sha256:10c7dc799ef793b4c76fb5ef074fd1186121151b90a799b01393e137220bb61e ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...18Running on runner-qvbvroxm-project-278964-concurrent-0 via runner-qvbvroxm-private-1668428975-390f6d9d...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 134386, done. 25remote: Counting objects: 100% (134386/134386), done. 26remote: Compressing objects: 100% (87585/87585), done.27remote: Total 134386 (delta 60655), reused 92571 (delta 41765), pack-reused 0 28Receiving objects: 100% (134386/134386), 116.33 MiB | 19.10 MiB/s, done.29Resolving deltas: 100% (60655/60655), done.31 * [new ref] refs/pipelines/693894100 -> refs/pipelines/69389410032Checking out 5648e5c9 as refs/merge-requests/102535/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (3318206277)...44Downloading artifacts from coordinator... ok id=3318206277 responseStatus=200 OK token=s-g8uhx945Downloading artifacts for detect-tests (3318206299)...46Downloading artifacts from coordinator... ok id=3318206299 responseStatus=200 OK token=s-g8uhx947Downloading artifacts for retrieve-tests-metadata (3318206306)...48Downloading artifacts from coordinator... ok id=3318206306 responseStatus=200 OK token=s-g8uhx949Downloading artifacts for setup-test-env (3318206286)...50Downloading artifacts from coordinator... ok id=3318206286 responseStatus=200 OK token=s-g8uhx952Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh690Using decomposed database config (config/database.yml.decomposed-postgresql)691$ setup_db_user_only692CREATE ROLE693GRANT694==> 'setup_db_user_only' succeeded in 0 seconds.695$ bundle exec rake db:drop db:create db:schema:load db:migrate696Dropped database 'gitlabhq_test'697Dropped database 'gitlabhq_test_ci'698Dropped database 'gitlabhq_geo_test'699Created database 'gitlabhq_test'700Created database 'gitlabhq_test_ci'701Created database 'gitlabhq_geo_test'702==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 37 seconds.703$ setup_db_praefect704SELECT pg_catalog.set_config('search_path', '', false);705CREATE DATABASE praefect_test ENCODING 'UTF8';706==> 'setup_db_praefect' succeeded in 0 seconds.707$ source ./scripts/rspec_helpers.sh708$ run_timed_command "gem install knapsack --no-document"709$ gem install knapsack --no-document710Successfully installed knapsack-4.0.07111 gem installed712==> 'gem install knapsack --no-document' succeeded in 1 seconds.713$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"827$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"828SKIP_FLAKY_TESTS_AUTOMATICALLY: true829RETRY_FAILED_TESTS_IN_NEW_PROCESS: true830KNAPSACK_GENERATE_REPORT: true831FLAKY_RSPEC_GENERATE_REPORT: true832KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb833KNAPSACK_LOG_LEVEL: debug834KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg12_11_12_report.json835FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json836FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg12_11_12_report.json837NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg12_11_12_report.json838SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_integration_pg12_11_12_report.txt839RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_integration_pg12_11_12_report.txt840CRYSTALBALL: 841Knapsack report generator started!842Run options: exclude {:quarantine=>true, :level=>"migration"}843Test environment set up in 1.221703473 seconds844API::Repositories845 GET /projects/:id/repository/tree846 when unauthenticated and project is public847 behaves like repository tree848 returns the repository tree849 when ref does not exist850 behaves like 404 response851 returns 404852 when repository is disabled853 behaves like 403 response854 returns 403855 with recursive=1856 returns recursive project paths tree857 when repository is disabled858 behaves like 403 response859 returns 403860 when ref does not exist861 behaves like 404 response862 returns 404863 keyset pagination mode864 paginates using keysets865 with pagination=none866 with recursive=1867 returns unpaginated recursive project paths tree868 with recursive=0869 returns 400870 when unauthenticated and project is private871 behaves like 404 response872 returns 404873 when authenticated as a developer874 behaves like repository tree875 returns the repository tree876 when ref does not exist877 behaves like 404 response878 returns 404879 when repository is disabled880 behaves like 403 response881 returns 403882 with recursive=1883 returns recursive project paths tree884 when repository is disabled885 behaves like 403 response886 returns 403887 when ref does not exist888 behaves like 404 response889 returns 404890 keyset pagination mode891 paginates using keysets892 with pagination=none893 with recursive=1894 returns unpaginated recursive project paths tree895 with recursive=0896 returns 400897 when authenticated as a guest898 behaves like 403 response899 returns 403900 GET /projects/:id/repository/blobs/:sha901 when unauthenticated and project is public902 behaves like repository blob903 returns blob attributes as json904 when sha does not exist905 behaves like 404 response906 returns 404907 when repository is disabled908 behaves like 403 response909 returns 403910 when unauthenticated and project is private911 behaves like 404 response912 returns 404913 when authenticated as a developer914 behaves like repository blob915 returns blob attributes as json916 when sha does not exist917 behaves like 404 response918 returns 404919 when repository is disabled920 behaves like 403 response921 returns 403922 when authenticated as a guest923 behaves like 403 response924 returns 403925 GET /projects/:id/repository/blobs/:sha/raw926 when unauthenticated and project is public927 behaves like repository raw blob928 returns the repository raw blob929 sets inline content disposition by default930 defines an uncached header response931 when sha does not exist932 behaves like 404 response933 returns 404934 when repository is disabled935 behaves like 403 response936 returns 403937 when unauthenticated and project is private938 behaves like 404 response939 returns 404940 when authenticated as a developer941 behaves like repository raw blob942 returns the repository raw blob943 sets inline content disposition by default944 defines an uncached header response945 when sha does not exist946 behaves like 404 response947 returns 404948 when repository is disabled949 behaves like 403 response950 returns 403951 when authenticated as a guest952 behaves like 403 response953 returns 403954 GET /projects/:id/repository/archive(.:format)?:sha955 when unauthenticated and project is public956 behaves like repository archive957 returns the repository archive958 returns the repository archive archive.zip959 returns the repository archive archive.tar.bz2960 returns only a part of the repository with path set961 rate limits user when thresholds hit962 when sha does not exist963 behaves like 404 response964 returns 404965 when hotlinking detection is enabled966 behaves like hotlink interceptor967 DDOS prevention968 hotlinked as media969 response_status: :ok, accept_header: "*/*"970 renders the response971 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"972 renders the response973 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"974 renders the response975 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"976 renders the response977 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"978 renders the response979 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"980 renders the response981 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"982 renders the response983 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"984 renders the response985 response_status: :not_acceptable, accept_header: "image/webp,*/*"986 renders the response987 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"988 renders the response989 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"990 renders the response991 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"992 renders the response993 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"994 renders the response995 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"996 renders the response997 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"998 renders the response999 response_status: :not_acceptable, accept_header: "text/css"1000 renders the response1001 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1002 renders the response1003 hotlinked as a script1004 response_status: :ok, fetch_mode: "navigate"1005 renders the response1006 response_status: :ok, fetch_mode: "nested-navigate"1007 renders the response1008 response_status: :ok, fetch_mode: "same-origin"1009 renders the response1010 response_status: :not_acceptable, fetch_mode: "cors"1011 renders the response1012 response_status: :not_acceptable, fetch_mode: "no-cors"1013 renders the response1014 response_status: :not_acceptable, fetch_mode: "websocket"1015 renders the response1016 when unauthenticated and project path has dots1017 behaves like repository archive1018 returns the repository archive1019 returns the repository archive archive.zip1020 returns the repository archive archive.tar.bz21021 returns only a part of the repository with path set1022 rate limits user when thresholds hit1023 when sha does not exist1024 behaves like 404 response1025 returns 4041026 when hotlinking detection is enabled1027 behaves like hotlink interceptor1028 DDOS prevention1029 hotlinked as media1030 response_status: :ok, accept_header: "*/*"1031 renders the response1032 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1033 renders the response1034 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"1035 renders the response1036 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1037 renders the response1038 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"1039 renders the response1040 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"1041 renders the response1042 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"1043 renders the response1044 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"1045 renders the response1046 response_status: :not_acceptable, accept_header: "image/webp,*/*"1047 renders the response1048 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"1049 renders the response1050 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"1051 renders the response1052 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"1053 renders the response1054 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"1055 renders the response1056 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"1057 renders the response1058 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1059 renders the response1060 response_status: :not_acceptable, accept_header: "text/css"1061 renders the response1062 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1063 renders the response1064 hotlinked as a script1065 response_status: :ok, fetch_mode: "navigate"1066 renders the response1067 response_status: :ok, fetch_mode: "nested-navigate"1068 renders the response1069 response_status: :ok, fetch_mode: "same-origin"1070 renders the response1071 response_status: :not_acceptable, fetch_mode: "cors"1072 renders the response1073 response_status: :not_acceptable, fetch_mode: "no-cors"1074 renders the response1075 response_status: :not_acceptable, fetch_mode: "websocket"1076 renders the response1077 when unauthenticated and project is private1078 behaves like 404 response1079 returns 4041080 when authenticated as a developer1081 behaves like repository archive1082 returns the repository archive1083 returns the repository archive archive.zip1084 returns the repository archive archive.tar.bz21085 returns only a part of the repository with path set1086 rate limits user when thresholds hit1087 when sha does not exist1088 behaves like 404 response1089 returns 4041090 when hotlinking detection is enabled1091 behaves like hotlink interceptor1092 DDOS prevention1093 hotlinked as media1094 response_status: :ok, accept_header: "*/*"1095 renders the response1096 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1097 renders the response1098 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"1099 renders the response1100 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1101 renders the response1102 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"1103 renders the response1104 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"1105 renders the response1106 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"1107 renders the response1108 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"1109 renders the response1110 response_status: :not_acceptable, accept_header: "image/webp,*/*"1111 renders the response1112 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"1113 renders the response1114 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"1115 renders the response1116 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"1117 renders the response1118 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"1119 renders the response1120 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"1121 renders the response1122 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1123 renders the response1124 response_status: :not_acceptable, accept_header: "text/css"1125 renders the response1126 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1127 renders the response1128 hotlinked as a script1129 response_status: :ok, fetch_mode: "navigate"1130 renders the response1131 response_status: :ok, fetch_mode: "nested-navigate"1132 renders the response1133 response_status: :ok, fetch_mode: "same-origin"1134 renders the response1135 response_status: :not_acceptable, fetch_mode: "cors"1136 renders the response1137 response_status: :not_acceptable, fetch_mode: "no-cors"1138 renders the response1139 response_status: :not_acceptable, fetch_mode: "websocket"1140 renders the response1141 when authenticated as a guest1142 behaves like 403 response1143 returns 4031144 GET /projects/:id/repository/compare1145 when unauthenticated and project is public1146 behaves like repository compare1147 compares branches1148 compares branches with explicit merge-base mode1149 compares branches with explicit straight mode1150 compares tags1151 compares commits1152 compares commits in reverse order1153 compare commits between different projects with non-forked relation1154 compare commits between different projects1155 compares same refs1156 returns an empty string when the diff overflows1157 returns a 404 when from ref is unknown1158 returns a 404 when to ref is unknown1159 returns a newly created commit1160 when unauthenticated and project is private1161 behaves like 404 response1162 returns 4041163 when authenticated as a developer1164 behaves like repository compare1165 compares branches1166 compares branches with explicit merge-base mode1167 compares branches with explicit straight mode1168 compares tags1169 compares commits1170 compares commits in reverse order1171 compare commits between different projects with non-forked relation1172 compare commits between different projects1173 compares same refs1174 returns an empty string when the diff overflows1175 returns a 404 when from ref is unknown1176 returns a 404 when to ref is unknown1177 returns a newly created commit1178 when authenticated as a guest1179 behaves like 403 response1180 returns 4031181 GET /projects/:id/repository/contributors1182 when unauthenticated and project is public1183 behaves like repository contributors1184 returns valid data1185 using sorting1186 by commits desc1187 returns the repository contribuors sorted by commits desc1188 by name desc1189 returns the repository contribuors sorted by name asc case insensitive1190 when unauthenticated and project is private1191 behaves like 404 response1192 returns 4041193 when authenticated as a developer1194 behaves like repository contributors1195 returns valid data1196 using sorting1197 by commits desc1198 returns the repository contribuors sorted by commits desc1199 by name desc1200 returns the repository contribuors sorted by name asc case insensitive1201 when authenticated as a guest1202 behaves like 403 response1203 returns 4031204 Links header contains working URLs when no `order_by` nor `sort` is given1205 returns `Link` header that includes URLs with default value for `order_by` & `sort`1206 GET :id/repository/merge_base1207 when unauthenticated and project is public1208 behaves like merge base1209 returns the common ancestor1210 when unauthenticated and project is private1211 behaves like 404 response1212 returns 4041213 when authenticated as a developer1214 behaves like merge base1215 returns the common ancestor1216 when authenticated as a guest1217 behaves like 403 response1218 returns 4031219 when passing refs that do not exist1220 behaves like 400 response1221 returns 4001222 when passing refs that do not have a merge base1223 behaves like 404 response1224 returns 4041225 when not enough refs are passed1226 renders a bad request error1227 GET /projects/:id/repository/changelog1228 generates the changelog for a version1229 supports leaving out the from and to attribute1230 supports specified config file path1231 when previous tag version does not exist1232 behaves like 422 response1233 returns 4221234 POST /projects/:id/repository/changelog1235 generates the changelog for a version1236 supports leaving out the from and to attribute1237 produces an error when generating the changelog fails1238 support specified config file path1239API::Commits1240 GET /projects/:id/repository/commits1241 when unauthenticated and project is public1242 behaves like project commits1243 returns project commits1244 include correct pagination headers1245 when unauthenticated and project is private1246 behaves like 404 response1247 returns 4041248 when authenticated1249 when user is a direct project member1250 and user is a maintainer1251 behaves like project commits1252 returns project commits1253 include correct pagination headers1254 since optional parameter1255 returns project commits since provided parameter1256 include correct pagination headers1257 until optional parameter1258 returns project commits until provided parameter1259 include correct pagination headers1260 invalid xmlschema date parameters1261 returns an invalid parameter error message1262 with empty ref_name parameter1263 behaves like project commits1264 returns project commits1265 include correct pagination headers1266 when repository does not exist1267 behaves like 404 response1268 returns 4041269 path optional parameter1270 returns project commits matching provided path parameter1271 include correct pagination headers1272 all optional parameter1273 returns all project commits1274 first_parent optional parameter1275 returns all first_parent commits1276 with_stats optional parameter1277 behaves like project commits1278 returns project commits1279 include correct pagination headers1280 include commits details1281 with pagination params1282 returns correct headers1283 viewing the first page1284 returns the first 5 commits1285 viewing the third page1286 returns the third 5 commits1287 when pagination params are invalid1288 page: 0, per_page: nil, error_message: "page does not have a valid value"1289 returns 400 response1290 page: -1, per_page: nil, error_message: "page does not have a valid value"1291 returns 400 response1292 page: "a", per_page: nil, error_message: "page is invalid"1293 returns 400 response1294 page: nil, per_page: 0, error_message: "per_page does not have a valid value"1295 returns 400 response1296 page: nil, per_page: -1, error_message: "per_page does not have a valid value"1297 returns 400 response1298 page: nil, per_page: "a", error_message: "per_page is invalid"1299 returns 400 response1300 when FF is off1301 page: 0, per_page: nil, error_message: nil, status: :success1302 returns a response1303 page: -10, per_page: nil, error_message: nil, status: :internal_server_error1304 returns a response1305 page: "a", per_page: nil, error_message: "page is invalid", status: :bad_request1306 returns a response1307 page: nil, per_page: 0, error_message: "per_page has a value not allowed", status: :bad_request1308 returns a response1309 page: nil, per_page: -1, error_message: nil, status: :success1310 returns a response1311 page: nil, per_page: "a", error_message: "per_page is invalid", status: :bad_request1312 returns a response1313 with order parameter1314 set to topo1315 returns project commits ordered by topo order1316 set to default1317 returns project commits ordered by default order1318 set to an invalid parameter1319 behaves like 400 response1320 returns 4001321 with the optional trailers parameter1322 includes the Git trailers1323 when user is an inherited member from the group1324 when project is public with private repository1325 and user is a guest1326 behaves like project commits1327 returns project commits1328 include correct pagination headers1329 when project is private1330 and user is a guest1331 behaves like 404 response1332 returns 4041333 POST /projects/:id/repository/commits1334 returns a 403 unauthorized for user without permissions1335 returns a 400 bad request if no params are given1336 create1337 returns a 400 bad request if file exists1338 when using access token authentication1339 does not increment the usage counters1340 when using warden1341 increments usage counters1342 behaves like Snowplow event tracking1343 is not emitted if FF is disabled1344 is emitted1345 a new file in project repo1346 when user is a direct project member1347 behaves like successfully creates the commit1348 creates the commit1349 when user is an inherited member from the group1350 when project is public with private repository1351 and user is a guest1352 behaves like 403 response1353 returns 4031354 when project is private1355 and user is a guest1356 behaves like 403 response1357 returns 4031358 when repository is empty1359 when params are valid1360 behaves like successfully creates the commit1361 creates the commit1362 when branch name is invalid1363 is expected to respond with numeric status code bad_request1364 a new file with utf8 chars in project repo1365 behaves like successfully creates the commit1366 creates the commit1367 with project path containing a dot in URL1368 a new file in project repo1369 when committing to a new branch1370 when the API user is a guest1371 returns a 4031372 when start_project is provided1373 when posting to a forked project the user owns1374 identified by Integer (id)1375 adds a new commit to forked_project and returns a 2011376 identified by String (full_path)1377 adds a new commit to forked_project and returns a 2011378 when branch already exists1379 returns a 4001380 when force is set to true1381 adds a new commit to forked_project and returns a 2011382 when start_sha is also provided1383 fetches the start_sha from the original project to use as parent commit and returns a 2011384 when the target project is not part of the fork network of start_project1385 returns a 4031386 when posting to a forked project the user does not have write access1387 returns a 4031388 when start_sha is provided1389 returns a 400 if start_branch is also provided1390 returns a 400 if branch already exists1391 returns a 400 if start_sha does not exist1392 returns a 400 if start_sha is not a full SHA1393 uses the start_sha as parent commit and returns a 2011394 when force is set to true and branch already exists1395 uses the start_sha as parent commit and returns a 2011396 delete1397 an existing file in project repo1398 returns a 400 bad request if file does not exist1399 move1400 an existing file in project repo1401 returns a 400 bad request if file does not exist1402 update1403 an existing file in project repo1404 returns a 400 bad request if file does not exist1405 chmod1406 responds with success1407 when execute_filemode is false1408 responds with success1409 when the file doesn't exists1410 responds with 4001411 multiple operations1412 is committed as one in project repo and includes stats1413 doesn't include the commit stats when stats is false1414 return a 400 bad request if there are any issues1415 when action is missing1416 responds with 400 bad request1417 when action is not supported1418 responds with 400 bad request1419 when committing into a fork as a maintainer1420 allows pushing to the source branch of the merge request1421 denies pushing to another branch1422 GET /projects/:id/repository/commits/:sha/refs1423 when ref does not exist1424 behaves like 404 response1425 returns 4041426 when repository is disabled1427 behaves like 404 response1428 returns 4041429 for a valid commit1430 returns all refs with no scope1431 returns all refs1432 returns the branch refs1433 returns the tag refs1434 GET /projects/:id/repository/commits/:sha1435 when stat param1436 is not present return stats by default1437 is false it does not include stats1438 is true it includes stats1439 when unauthenticated and project is public1440 behaves like ref commit1441 returns the ref last commit1442 when ref does not exist1443 behaves like 404 response1444 returns 4041445 when repository is disabled1446 behaves like 404 response1447 returns 4041448 behaves like ref with pipeline1449 includes status as "created" and a last_pipeline object1450 when pipeline succeeds1451 includes a "success" status1452 with private builds1453 behaves like ref with unaccessible pipeline1454 does not include last_pipeline1455 when unauthenticated and project is private1456 behaves like 404 response1457 returns 4041458 when authenticated as a maintainer1459 behaves like ref commit1460 returns the ref last commit1461 when ref does not exist1462 behaves like 404 response1463 returns 4041464 when repository is disabled1465 behaves like 404 response1466 returns 4041467 behaves like ref with pipeline1468 includes status as "created" and a last_pipeline object1469 when pipeline succeeds1470 includes a "success" status1471 when builds are disabled1472 behaves like ref with unaccessible pipeline1473 does not include last_pipeline1474 when branch contains a dot1475 behaves like ref commit1476 returns the ref last commit1477 when ref does not exist1478 behaves like 404 response1479 returns 4041480 when repository is disabled1481 behaves like 404 response1482 returns 4041483 when branch contains a slash1484 behaves like 404 response1485 returns 4041486 when branch contains an escaped slash1487 behaves like ref commit1488 returns the ref last commit1489 when ref does not exist1490 behaves like 404 response1491 returns 4041492 when repository is disabled1493 behaves like 404 response1494 returns 4041495 requesting with the escaped project full path1496 behaves like ref commit1497 returns the ref last commit1498 when ref does not exist1499 behaves like 404 response1500 returns 4041501 when repository is disabled1502 behaves like 404 response1503 returns 4041504 when branch contains a dot1505 behaves like ref commit1506 returns the ref last commit1507 when ref does not exist1508 behaves like 404 response1509 returns 4041510 when repository is disabled1511 behaves like 404 response1512 returns 4041513 when authenticated as a developer1514 behaves like ref commit1515 returns the ref last commit1516 when ref does not exist1517 behaves like 404 response1518 returns 4041519 when repository is disabled1520 behaves like 404 response1521 returns 4041522 behaves like ref with pipeline1523 includes status as "created" and a last_pipeline object1524 when pipeline succeeds1525 includes a "success" status1526 with private builds1527 behaves like ref with pipeline1528 includes status as "created" and a last_pipeline object1529 when pipeline succeeds1530 includes a "success" status1531 when authenticated as a guest1532 behaves like 403 response1533 returns 4031534 when authenticated as a non member1535 behaves like 403 response1536 returns 4031537 when authenticated as non_member and project is public1538 behaves like ref with pipeline1539 includes status as "created" and a last_pipeline object1540 when pipeline succeeds1541 includes a "success" status1542 with private builds1543 behaves like ref with unaccessible pipeline1544 does not include last_pipeline1545 GET /projects/:id/repository/commits/:sha/diff1546 when unauthenticated and project is public1547 behaves like ref diff1548 returns the diff of the selected commit1549 when hard limits are lower than the number of files1550 respects the limit1551 when ref does not exist1552 behaves like 404 response1553 returns 4041554 when repository is disabled1555 behaves like 404 response1556 returns 4041557 when unauthenticated and project is private1558 behaves like 404 response1559 returns 4041560 when authenticated as a maintainer1561 behaves like ref diff1562 returns the diff of the selected commit1563 when hard limits are lower than the number of files1564 respects the limit1565 when ref does not exist1566 behaves like 404 response1567 returns 4041568 when repository is disabled1569 behaves like 404 response1570 returns 4041571 when branch contains a dot1572 behaves like ref diff1573 returns the diff of the selected commit1574 when hard limits are lower than the number of files1575 respects the limit1576 when ref does not exist1577 behaves like 404 response1578 returns 4041579 when repository is disabled1580 behaves like 404 response1581 returns 4041582 when branch contains a slash1583 behaves like 404 response1584 returns 4041585 when branch contains an escaped slash1586 behaves like ref diff1587 returns the diff of the selected commit1588 when hard limits are lower than the number of files1589 respects the limit1590 when ref does not exist1591 behaves like 404 response1592 returns 4041593 when repository is disabled1594 behaves like 404 response1595 returns 4041596 requesting with the escaped project full path1597 behaves like ref diff1598 returns the diff of the selected commit1599 when hard limits are lower than the number of files1600 respects the limit1601 when ref does not exist1602 behaves like 404 response1603 returns 4041604 when repository is disabled1605 behaves like 404 response1606 returns 4041607 when branch contains a dot1608 behaves like ref diff1609 returns the diff of the selected commit1610 when hard limits are lower than the number of files1611 respects the limit1612 when ref does not exist1613 behaves like 404 response1614 returns 4041615 when repository is disabled1616 behaves like 404 response1617 returns 4041618 when binary diff are treated as text1619 behaves like ref diff1620 returns the diff of the selected commit1621 when hard limits are lower than the number of files1622 respects the limit1623 when ref does not exist1624 behaves like 404 response1625 returns 4041626 when repository is disabled1627 behaves like 404 response1628 returns 4041629 GET /projects/:id/repository/commits/:sha/comments1630 when unauthenticated and project is public1631 behaves like ref comments1632 when ref exists1633 returns the diff of the selected commit1634 when ref does not exist1635 behaves like 404 response1636 returns 4041637 when repository is disabled1638 behaves like 404 response1639 returns 4041640 when unauthenticated and project is private1641 behaves like 404 response1642 returns 4041643 when authenticated as a maintainer1644 behaves like ref comments1645 when ref exists1646 returns the diff of the selected commit1647 when ref does not exist1648 behaves like 404 response1649 returns 4041650 when repository is disabled1651 behaves like 404 response1652 returns 4041653 when branch contains a dot1654 behaves like ref comments1655 when ref exists1656 returns the diff of the selected commit1657 when ref does not exist1658 behaves like 404 response1659 returns 4041660 when repository is disabled1661 behaves like 404 response1662 returns 4041663 when branch contains a slash1664 behaves like 404 response1665 returns 4041666 when branch contains an escaped slash1667 behaves like ref comments1668 when ref exists1669 returns the diff of the selected commit1670 when ref does not exist1671 behaves like 404 response1672 returns 4041673 when repository is disabled1674 behaves like 404 response1675 returns 4041676 requesting with the escaped project full path1677 behaves like ref comments1678 when ref exists1679 returns the diff of the selected commit1680 when ref does not exist1681 behaves like 404 response1682 returns 4041683 when repository is disabled1684 behaves like 404 response1685 returns 4041686 when branch contains a dot1687 behaves like ref comments1688 when ref exists1689 returns the diff of the selected commit1690 when ref does not exist1691 behaves like 404 response1692 returns 4041693 when repository is disabled1694 behaves like 404 response1695 returns 4041696 multiple notes1697 are returned without N + 11698 when the commit is present on two projects1699 returns the comments for the target project1700 POST :id/repository/commits/:sha/cherry_pick1701 when unauthenticated and project is public1702 behaves like 403 response1703 returns 4031704 when unauthenticated and project is private1705 behaves like 404 response1706 returns 4041707 when authenticated as an owner1708 behaves like ref cherry-pick1709 when ref exists1710 cherry-picks the ref commit1711 supports dry-run without applying changes1712 supports the use of a custom commit message1713 when repository is disabled1714 behaves like 404 response1715 returns 4041716 when ref does not exist1717 behaves like 404 response1718 returns 4041719 when branch is missing1720 behaves like 400 response1721 returns 4001722 when branch is empty1723 behaves like 400 response1724 returns 4001725 behaves like 400 response1726 returns 4001727 when branch does not exist1728 behaves like 404 response1729 returns 4041730 when commit is already included in the target branch1731 includes an error_code in the response1732 includes an additional dry_run error field when enabled1733 behaves like 400 response1734 returns 4001735 when ref contains a dot1736 behaves like ref cherry-pick1737 when ref exists1738 cherry-picks the ref commit1739 supports dry-run without applying changes1740 supports the use of a custom commit message1741 when repository is disabled1742 behaves like 404 response1743 returns 4041744 when ref contains a slash1745 behaves like 404 response1746 returns 4041747 requesting with the escaped project full path1748 behaves like ref cherry-pick1749 when ref exists1750 cherry-picks the ref commit1751 supports dry-run without applying changes1752 supports the use of a custom commit message1753 when repository is disabled1754 behaves like 404 response1755 returns 4041756 when ref contains a dot1757 behaves like ref cherry-pick1758 when ref exists1759 cherry-picks the ref commit1760 supports dry-run without applying changes1761 supports the use of a custom commit message1762 when repository is disabled1763 behaves like 404 response1764 returns 4041765 when authenticated as a developer1766 when branch is protected1767 returns 400 if you are not allowed to push to the target branch1768 when cherry picking to a fork as a maintainer1769 allows access from a maintainer that to the source branch1770 denies cherry picking to another branch1771 POST :id/repository/commits/:sha/revert1772 when unauthenticated and project is public1773 behaves like 403 response1774 returns 4031775 when unauthenticated and project is private1776 behaves like 404 response1777 returns 4041778 when authenticated as an owner1779 behaves like ref revert1780 when ref exists1781 reverts the ref commit1782 supports dry-run without applying changes1783 when repository is disabled1784 behaves like 404 response1785 returns 4041786 when ref does not exist1787 behaves like 404 response1788 returns 4041789 when branch is missing1790 behaves like 400 response1791 returns 4001792 when branch is empty1793 behaves like 400 response1794 returns 4001795 behaves like 400 response1796 returns 4001797 when branch does not exist1798 behaves like 404 response1799 returns 4041800 when ref contains a dot1801 behaves like 400 response1802 returns 4001803 when commit is already reverted in the target branch1804 includes an error_code in the response1805 includes an additional dry_run error field when enabled1806 when authenticated as a developer1807 when branch is protected1808 returns 400 if you are not allowed to push to the target branch1809 POST /projects/:id/repository/commits/:sha/comments1810 when unauthenticated and project is public1811 behaves like 400 response1812 returns 4001813 when unauthenticated and project is private1814 behaves like 404 response1815 returns 4041816 when authenticated as an owner1817 returns the inline comment1818 correctly adds a note for the "old" line type1819 returns 400 if note is missing1820 behaves like ref new comment1821 when ref exists1822 creates the comment1823 when repository is disabled1824 behaves like 404 response1825 returns 4041826 when ref does not exist1827 behaves like 404 response1828 returns 4041829 when ref contains a dot1830 behaves like ref new comment1831 when ref exists1832 creates the comment1833 when repository is disabled1834 behaves like 404 response1835 returns 4041836 when ref contains a slash1837 behaves like 404 response1838 returns 4041839 when ref contains an escaped slash1840 behaves like ref new comment1841 when ref exists1842 creates the comment1843 when repository is disabled1844 behaves like 404 response1845 returns 4041846 requesting with the escaped project full path1847 behaves like ref new comment1848 when ref exists1849 creates the comment1850 when repository is disabled1851 behaves like 404 response1852 returns 4041853 when ref contains a dot1854 behaves like ref new comment1855 when ref exists1856 creates the comment1857 when repository is disabled1858 behaves like 404 response1859 returns 4041860 GET /projects/:id/repository/commits/:sha/merge_requests1861 returns the correct merge request1862 returns 403 for an unauthorized user1863 responds 404 when the commit does not exist1864 returns multiple merge requests without N + 11865 public project1866 responds 403 when only members are allowed to read merge requests1867 GET /projects/:id/repository/commits/:sha/signature1868 when commit does not exist1869 behaves like 404 response1870 returns 4041871 unsigned commit1872 behaves like 404 response1873 returns 4041874 gpg signed commit1875 returns correct JSON1876 x509 signed commit1877 returns correct JSON1878 with Rugged enabled1879 returns correct JSON1880API::Discussions1881 when discussions have cross-reference system notes1882 behaves like with cross-reference system notes1883 returns only the note that the user should see1884 avoids Git calls and N+1 SQL queries1885 when noteable is an Issue1886 behaves like discussions API1887 GET /projects/:id/issues/:noteable_id/discussions1888 returns an array of discussions1889 returns a 404 error when noteable id not found1890 returns 404 when not authorized1891 GET /projects/:id/issues/:noteable_id/discussions/:discussion_id1892 returns a discussion by id1893 returns a 404 error if discussion not found1894 POST /projects/:id/issues/:noteable_id/discussions1895 creates a new note1896 returns a 400 bad request error if body not given1897 returns a 401 unauthorized error if user not authenticated1898 tracks a Notes::CreateService event1899 with notes_create_service_tracking feature flag disabled1900 does not track Notes::CreateService events1901 when an admin or owner makes the request1902 accepts the creation date to be set1903 when user does not have access to read the discussion1904 responds with 4041905 when a project is public with private repo access1906 when user is not a team member of private repo1907 creating a new note1908 raises 404 error1909 fetching a discussion1910 raises 404 error1911 POST /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes1912 adds a new note to the discussion1913 returns a 400 bad request error if body not given1914 when the discussion is an individual note1915 creates a new discussion1916 PUT /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes/:note_id1917 returns modified note1918 returns a 404 error when note id not found1919 returns a 400 bad request error if body not given1920 DELETE /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes/:note_id1921 deletes a note1922 returns a 404 error when note id not found1923 behaves like 412 response1924 for a modified ressource1925 returns 412 with a JSON error1926 for an unmodified ressource1927 returns 204 with an empty body1928 when noteable is a Snippet1929 behaves like discussions API1930 GET /projects/:id/snippets/:noteable_id/discussions1931 returns an array of discussions1932 returns a 404 error when noteable id not found1933 returns 404 when not authorized1934 GET /projects/:id/snippets/:noteable_id/discussions/:discussion_id1935 returns a discussion by id1936 returns a 404 error if discussion not found1937 POST /projects/:id/snippets/:noteable_id/discussions1938 creates a new note1939 returns a 400 bad request error if body not given1940 returns a 401 unauthorized error if user not authenticated1941 tracks a Notes::CreateService event1942 with notes_create_service_tracking feature flag disabled1943 does not track Notes::CreateService events1944 when an admin or owner makes the request1945 accepts the creation date to be set1946 when user does not have access to read the discussion1947 responds with 4041948 when a project is public with private repo access1949 when user is not a team member of private repo1950 creating a new note1951 raises 404 error1952 fetching a discussion1953 raises 404 error1954 POST /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes1955 adds a new note to the discussion1956 returns a 400 bad request error if body not given1957 when the discussion is an individual note1958 returns 400 bad request1959 PUT /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes/:note_id1960 returns modified note1961 returns a 404 error when note id not found1962 returns a 400 bad request error if body not given1963 DELETE /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes/:note_id1964 deletes a note1965 returns a 404 error when note id not found1966 behaves like 412 response1967 for a modified ressource1968 returns 412 with a JSON error1969 for an unmodified ressource1970 returns 204 with an empty body1971 when noteable is a Merge Request1972 behaves like discussions API1973 GET /projects/:id/merge_requests/:noteable_id/discussions1974 returns an array of discussions1975 returns a 404 error when noteable id not found1976 returns 404 when not authorized1977 GET /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id1978 returns a discussion by id1979 returns a 404 error if discussion not found1980 POST /projects/:id/merge_requests/:noteable_id/discussions1981 creates a new note1982 returns a 400 bad request error if body not given1983 returns a 401 unauthorized error if user not authenticated1984 tracks a Notes::CreateService event1985 with notes_create_service_tracking feature flag disabled1986 does not track Notes::CreateService events1987 when an admin or owner makes the request1988 accepts the creation date to be set1989 when user does not have access to read the discussion1990 responds with 4041991 when a project is public with private repo access1992 when user is not a team member of private repo1993 creating a new note1994 raises 404 error1995 fetching a discussion1996 raises 404 error1997 POST /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes1998 adds a new note to the discussion1999 returns a 400 bad request error if body not given2000 when the discussion is an individual note2001 creates a new discussion2002 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id2003 returns modified note2004 returns a 404 error when note id not found2005 returns a 400 bad request error if body not given2006 DELETE /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id2007 deletes a note2008 returns a 404 error when note id not found2009 behaves like 412 response2010 for a modified ressource2011 returns 412 with a JSON error2012 for an unmodified ressource2013 returns 204 with an empty body2014 behaves like diff discussions API2015 GET /projects/:id/merge_requests/:noteable_id/discussions2016 includes diff discussions2017 GET /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id2018 returns a discussion by id2019 POST /projects/:id/merge_requests/:noteable_id/discussions2020 creates a new diff note2021 when position is invalid2022 returns a 400 bad request error when position is not plausible2023 returns a 400 bad request error when the position is not valid for this discussion2024 POST /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes2025 adds a new note to the diff discussion2026 behaves like resolvable discussions API2027 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id2028 resolves discussion if resolved is true2029 unresolves discussion if resolved is false2030 returns a 400 bad request error if resolved parameter is not passed2031 returns a 401 unauthorized error if user is not authenticated2032 returns a 403 error if user resolves discussion of someone else2033 when user does not have access to read the discussion2034 responds with 4042035 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id2036 returns resolved note when resolved parameter is true2037 returns a 404 error when note id not found2038 returns a 400 bad request error if neither body nor resolved parameter is given2039 returns a 403 error if user resolves note of someone else2040 when position is for a previous commit on the merge request2041 returns a 400 bad request error because the line_code is old2042 when a commit parameter is given2043 creates the discussion on that commit within the merge request2044 when noteable is a Commit2045 behaves like discussions API2046 GET /projects/:id/repository/commits/:noteable_id/discussions2047 returns an array of discussions2048 returns a 404 error when noteable id not found2049 returns 404 when not authorized2050 GET /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id2051 returns a discussion by id2052 returns a 404 error if discussion not found2053 POST /projects/:id/repository/commits/:noteable_id/discussions2054 creates a new note2055 returns a 400 bad request error if body not given2056 returns a 401 unauthorized error if user not authenticated2057 tracks a Notes::CreateService event2058 with notes_create_service_tracking feature flag disabled2059 does not track Notes::CreateService events2060 when an admin or owner makes the request2061 accepts the creation date to be set2062 when user does not have access to read the discussion2063 responds with 4042064 when a project is public with private repo access2065 when user is not a team member of private repo2066 creating a new note2067 raises 404 error2068 fetching a discussion2069 raises 404 error2070 POST /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes2071 adds a new note to the discussion2072 returns a 400 bad request error if body not given2073 when the discussion is an individual note2074 returns 400 bad request2075 PUT /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes/:note_id2076 returns modified note2077 returns a 404 error when note id not found2078 returns a 400 bad request error if body not given2079 DELETE /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes/:note_id2080 deletes a note2081 returns a 404 error when note id not found2082 behaves like 412 response2083 for a modified ressource2084 returns 412 with a JSON error2085 for an unmodified ressource2086 returns 204 with an empty body2087 behaves like diff discussions API2088 GET /projects/:id/repository/commits/:noteable_id/discussions2089 includes diff discussions2090 GET /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id2091 returns a discussion by id2092 POST /projects/:id/repository/commits/:noteable_id/discussions2093 creates a new diff note2094 when position is invalid2095 returns a 400 bad request error when position is not plausible2096 returns a 400 bad request error when the position is not valid for this discussion2097 POST /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes2098 adds a new note to the diff discussion2099API::ComposerPackages2100 GET /api/v4/group/:id/-/packages/composer/packages2101 with valid project2102 with a public group2103 with basic auth2104 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, include_package: :include_package2105 behaves like Composer package index2106 behaves like Composer package index with version2107 returns the package index2108 with version 22109 behaves like Composer package index with version2110 returns the package index2111 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, include_package: :include_package2112 behaves like Composer package index2113 behaves like Composer package index with version2114 returns the package index2115 with version 22116 behaves like Composer package index with version2117 returns the package index2118 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, include_package: :include_package2119 behaves like Composer package index2120 behaves like Composer package index with version2121 returns the package index2122 with version 22123 behaves like Composer package index with version2124 returns the package index2125 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, include_package: :include_package2126 behaves like Composer package index2127 behaves like Composer package index with version2128 returns the package index2129 with version 22130 behaves like Composer package index with version2131 returns the package index2132 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, include_package: :include_package2133 behaves like Composer package index2134 behaves like Composer package index with version2135 returns the package index2136 with version 22137 behaves like Composer package index with version2138 returns the package index2139 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, include_package: :include_package2140 behaves like Composer package index2141 behaves like Composer package index with version2142 returns the package index2143 with version 22144 behaves like Composer package index with version2145 returns the package index2146 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, include_package: :does_not_include_package2147 behaves like Composer package index2148 behaves like Composer package index with version2149 returns the package index2150 with version 22151 behaves like Composer package index with version2152 returns the package index2153 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, include_package: :does_not_include_package2154 behaves like Composer package index2155 behaves like Composer package index with version2156 returns the package index2157 with version 22158 behaves like Composer package index with version2159 returns the package index2160 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, include_package: :does_not_include_package2161 behaves like Composer package index2162 behaves like Composer package index with version2163 returns the package index2164 with version 22165 behaves like Composer package index with version2166 returns the package index2167 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, include_package: :does_not_include_package2168 behaves like Composer package index2169 behaves like Composer package index with version2170 returns the package index2171 with version 22172 behaves like Composer package index with version2173 returns the package index2174 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, include_package: :does_not_include_package2175 behaves like Composer package index2176 behaves like Composer package index with version2177 returns the package index2178 with version 22179 behaves like Composer package index with version2180 returns the package index2181 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, include_package: :does_not_include_package2182 behaves like Composer package index2183 behaves like Composer package index with version2184 returns the package index2185 with version 22186 behaves like Composer package index with version2187 returns the package index2188 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, include_package: :does_not_include_package2189 behaves like Composer package index2190 behaves like Composer package index with version2191 returns the package index2192 with version 22193 behaves like Composer package index with version2194 returns the package index2195 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, include_package: :does_not_include_package2196 behaves like Composer package index2197 behaves like Composer package index with version2198 returns the package index2199 with version 22200 behaves like Composer package index with version2201 returns the package index2202 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, include_package: :include_package2203 behaves like Composer package index2204 behaves like Composer package index with version2205 returns the package index2206 with version 22207 behaves like Composer package index with version2208 returns the package index2209 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, include_package: :include_package2210 behaves like Composer package index2211 behaves like Composer package index with version2212 returns the package index2213 with version 22214 behaves like Composer package index with version2215 returns the package index2216 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, include_package: :include_package2217 behaves like Composer package index2218 behaves like Composer package index with version2219 returns the package index2220 with version 22221 behaves like Composer package index with version2222 returns the package index2223 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, include_package: :include_package2224 behaves like Composer package index2225 behaves like Composer package index with version2226 returns the package index2227 with version 22228 behaves like Composer package index with version2229 returns the package index2230 with private token header auth2231 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, expected_status: :success, include_package: :include_package2232 behaves like Composer package index2233 behaves like Composer package index with version2234 returns the package index2235 with version 22236 behaves like Composer package index with version2237 returns the package index2238 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, expected_status: :success, include_package: :include_package2239 behaves like Composer package index2240 behaves like Composer package index with version2241 returns the package index2242 with version 22243 behaves like Composer package index with version2244 returns the package index2245 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, expected_status: :success, include_package: :include_package2246 behaves like Composer package index2247 behaves like Composer package index with version2248 returns the package index2249 with version 22250 behaves like Composer package index with version2251 returns the package index2252 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, expected_status: :success, include_package: :include_package2253 behaves like Composer package index2254 behaves like Composer package index with version2255 returns the package index2256 with version 22257 behaves like Composer package index with version2258 returns the package index2259 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, expected_status: :success, include_package: :include_package2260 behaves like Composer package index2261 behaves like Composer package index with version2262 returns the package index2263 with version 22264 behaves like Composer package index with version2265 returns the package index2266 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, expected_status: :success, include_package: :include_package2267 behaves like Composer package index2268 behaves like Composer package index with version2269 returns the package index2270 with version 22271 behaves like Composer package index with version2272 returns the package index2273 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, expected_status: :success, include_package: :does_not_include_package2274 behaves like Composer package index2275 behaves like Composer package index with version2276 returns the package index2277 with version 22278 behaves like Composer package index with version2279 returns the package index2280 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, expected_status: :success, include_package: :does_not_include_package2281 behaves like Composer package index2282 behaves like Composer package index with version2283 returns the package index2284 with version 22285 behaves like Composer package index with version2286 returns the package index2287 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, expected_status: :success, include_package: :does_not_include_package2288 behaves like Composer package index2289 behaves like Composer package index with version2290 returns the package index2291 with version 22292 behaves like Composer package index with version2293 returns the package index2294 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, expected_status: :success, include_package: :does_not_include_package2295 behaves like Composer package index2296 behaves like Composer package index with version2297 returns the package index2298 with version 22299 behaves like Composer package index with version2300 returns the package index2301 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, expected_status: :unauthorized, include_package: nil2302 behaves like Composer package index2303 behaves like Composer package index with version2304 returns the package index2305 with version 22306 behaves like Composer package index with version2307 returns the package index2308 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, expected_status: :unauthorized, include_package: nil2309 behaves like Composer package index2310 behaves like Composer package index with version2311 returns the package index2312 with version 22313 behaves like Composer package index with version2314 returns the package index2315 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, expected_status: :unauthorized, include_package: nil2316 behaves like Composer package index2317 behaves like Composer package index with version2318 returns the package index2319 with version 22320 behaves like Composer package index with version2321 returns the package index2322 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, expected_status: :unauthorized, include_package: nil2323 behaves like Composer package index2324 behaves like Composer package index with version2325 returns the package index2326 with version 22327 behaves like Composer package index with version2328 returns the package index2329 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, expected_status: :unauthorized, include_package: nil2330 behaves like Composer package index2331 behaves like Composer package index with version2332 returns the package index2333 with version 22334 behaves like Composer package index with version2335 returns the package index2336 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, expected_status: :unauthorized, include_package: nil2337 behaves like Composer package index2338 behaves like Composer package index with version2339 returns the package index2340 with version 22341 behaves like Composer package index with version2342 returns the package index2343 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, expected_status: :unauthorized, include_package: nil2344 behaves like Composer package index2345 behaves like Composer package index with version2346 returns the package index2347 with version 22348 behaves like Composer package index with version2349 returns the package index2350 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, expected_status: :unauthorized, include_package: nil2351 behaves like Composer package index2352 behaves like Composer package index with version2353 returns the package index2354 with version 22355 behaves like Composer package index with version2356 returns the package index2357 with a private group2358 behaves like Composer access with deploy tokens2359 group deploy token2360 behaves like a deploy token for Composer GET requests2361 with deploy token headers2362 valid token2363 behaves like returning response status2364 returns success2365 invalid token2366 behaves like returning response status2367 returns not_found2368 project deploy token2369 behaves like a deploy token for Composer GET requests2370 with deploy token headers2371 valid token2372 behaves like returning response status2373 returns success2374 invalid token2375 behaves like returning response status2376 returns not_found2377 with access to the api2378 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, include_package: :include_package2379 behaves like Composer package index2380 behaves like Composer package index with version2381 returns the package index2382 with version 22383 behaves like Composer package index with version2384 returns the package index2385 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, include_package: :does_not_include_package2386 behaves like Composer package index2387 behaves like Composer package index with version2388 returns the package index2389 with version 22390 behaves like Composer package index with version2391 returns the package index2392 without access to the api2393 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false2394 behaves like process Composer api request2395 for user type developer2396 behaves like returning response status2397 returns not_found2398 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true2399 behaves like process Composer api request2400 for user type developer2401 behaves like returning response status2402 returns not_found2403 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false2404 behaves like process Composer api request2405 for user type developer2406 behaves like returning response status2407 returns not_found2408 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false2409 behaves like process Composer api request2410 for user type guest2411 behaves like returning response status2412 returns not_found2413 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true2414 behaves like process Composer api request2415 for user type guest2416 behaves like returning response status2417 returns not_found2418 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false2419 behaves like process Composer api request2420 for user type guest2421 behaves like returning response status2422 returns not_found2423 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true2424 behaves like process Composer api request2425 for user type anonymous2426 behaves like returning response status2427 returns not_found2428 behaves like rejects Composer access with unknown group id2429 with an unknown group2430 as anonymous2431 behaves like process Composer api request2432 for user type anonymous2433 behaves like returning response status2434 returns not_found2435 as authenticated user2436 behaves like process Composer api request2437 for user type anonymous2438 behaves like returning response status2439 returns not_found2440 GET /api/v4/group/:id/-/packages/composer/p/:sha.json2441 with valid project2442 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success2443 behaves like Composer provider index2444 returns the package index2445 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2446 behaves like process Composer api request2447 for user type developer2448 behaves like returning response status2449 returns unauthorized2450 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success2451 behaves like Composer provider index2452 returns the package index2453 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2454 behaves like process Composer api request2455 for user type developer2456 behaves like returning response status2457 returns unauthorized2458 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success2459 behaves like Composer provider index2460 returns the package index2461 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2462 behaves like process Composer api request2463 for user type guest2464 behaves like returning response status2465 returns unauthorized2466 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success2467 behaves like Composer provider index2468 returns the package index2469 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2470 behaves like process Composer api request2471 for user type guest2472 behaves like returning response status2473 returns unauthorized2474 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success2475 behaves like Composer provider index2476 returns the package index2477 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success2478 behaves like Composer provider index2479 returns the package index2480 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2481 behaves like process Composer api request2482 for user type developer2483 behaves like returning response status2484 returns unauthorized2485 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2486 behaves like process Composer api request2487 for user type developer2488 behaves like returning response status2489 returns not_found2490 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2491 behaves like process Composer api request2492 for user type developer2493 behaves like returning response status2494 returns unauthorized2495 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "Composer empty provider index", expected_status: :success2496 behaves like Composer empty provider index2497 returns the package index2498 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2499 behaves like process Composer api request2500 for user type guest2501 behaves like returning response status2502 returns unauthorized2503 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2504 behaves like process Composer api request2505 for user type guest2506 behaves like returning response status2507 returns not_found2508 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2509 behaves like process Composer api request2510 for user type guest2511 behaves like returning response status2512 returns unauthorized2513 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2514 behaves like process Composer api request2515 for user type anonymous2516 behaves like returning response status2517 returns not_found2518 behaves like Composer access with deploy tokens2519 group deploy token2520 behaves like a deploy token for Composer GET requests2521 with deploy token headers2522 valid token2523 behaves like returning response status2524 returns success2525 invalid token2526 behaves like returning response status2527 returns not_found2528 project deploy token2529 behaves like a deploy token for Composer GET requests2530 with deploy token headers2531 valid token2532 behaves like returning response status2533 returns success2534 invalid token2535 behaves like returning response status2536 returns not_found2537 behaves like rejects Composer access with unknown group id2538 with an unknown group2539 as anonymous2540 behaves like process Composer api request2541 for user type anonymous2542 behaves like returning response status2543 returns not_found2544 as authenticated user2545 behaves like process Composer api request2546 for user type anonymous2547 behaves like returning response status2548 returns not_found2549 GET /api/v4/group/:id/-/packages/composer/*package_name.json2550 with no packages2551 behaves like returning response status2552 returns not_found2553 with valid project2554 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2555 behaves like Composer package api request2556 returns the package index2557 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2558 behaves like process Composer api request2559 for user type developer2560 behaves like returning response status2561 returns unauthorized2562 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2563 behaves like Composer package api request2564 returns the package index2565 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2566 behaves like process Composer api request2567 for user type developer2568 behaves like returning response status2569 returns unauthorized2570 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2571 behaves like Composer package api request2572 returns the package index2573 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2574 behaves like process Composer api request2575 for user type guest2576 behaves like returning response status2577 returns unauthorized2578 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2579 behaves like Composer package api request2580 returns the package index2581 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2582 behaves like process Composer api request2583 for user type guest2584 behaves like returning response status2585 returns unauthorized2586 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2587 behaves like Composer package api request2588 returns the package index2589 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2590 behaves like Composer package api request2591 returns the package index2592 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2593 behaves like process Composer api request2594 for user type developer2595 behaves like returning response status2596 returns unauthorized2597 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2598 behaves like process Composer api request2599 for user type developer2600 behaves like returning response status2601 returns not_found2602 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2603 behaves like process Composer api request2604 for user type developer2605 behaves like returning response status2606 returns unauthorized2607 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2608 behaves like process Composer api request2609 for user type guest2610 behaves like returning response status2611 returns not_found2612 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2613 behaves like process Composer api request2614 for user type guest2615 behaves like returning response status2616 returns unauthorized2617 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2618 behaves like process Composer api request2619 for user type guest2620 behaves like returning response status2621 returns not_found2622 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2623 behaves like process Composer api request2624 for user type guest2625 behaves like returning response status2626 returns unauthorized2627 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2628 behaves like process Composer api request2629 for user type anonymous2630 behaves like returning response status2631 returns not_found2632 without a sha2633 behaves like process Composer api request2634 for user type developer2635 behaves like returning response status2636 returns not_found2637 behaves like Composer access with deploy tokens2638 group deploy token2639 behaves like a deploy token for Composer GET requests2640 with deploy token headers2641 valid token2642 behaves like returning response status2643 returns success2644 invalid token2645 behaves like returning response status2646 returns not_found2647 project deploy token2648 behaves like a deploy token for Composer GET requests2649 with deploy token headers2650 valid token2651 behaves like returning response status2652 returns success2653 invalid token2654 behaves like returning response status2655 returns not_found2656 behaves like rejects Composer access with unknown group id2657 with an unknown group2658 as anonymous2659 behaves like process Composer api request2660 for user type anonymous2661 behaves like returning response status2662 returns not_found2663 as authenticated user2664 behaves like process Composer api request2665 for user type anonymous2666 behaves like returning response status2667 returns not_found2668 GET /api/v4/group/:id/-/packages/composer/p2/*package_name.json2669 with no packages2670 behaves like returning response status2671 returns not_found2672 with valid project2673 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2674 behaves like Composer package api request2675 returns the package index2676 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2677 behaves like process Composer api request2678 for user type developer2679 behaves like returning response status2680 returns unauthorized2681 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2682 behaves like Composer package api request2683 returns the package index2684 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2685 behaves like process Composer api request2686 for user type developer2687 behaves like returning response status2688 returns unauthorized2689 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2690 behaves like Composer package api request2691 returns the package index2692 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2693 behaves like process Composer api request2694 for user type guest2695 behaves like returning response status2696 returns unauthorized2697 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2698 behaves like Composer package api request2699 returns the package index2700 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2701 behaves like process Composer api request2702 for user type guest2703 behaves like returning response status2704 returns unauthorized2705 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2706 behaves like Composer package api request2707 returns the package index2708 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success2709 behaves like Composer package api request2710 returns the package index2711 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2712 behaves like process Composer api request2713 for user type developer2714 behaves like returning response status2715 returns unauthorized2716 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2717 behaves like process Composer api request2718 for user type developer2719 behaves like returning response status2720 returns not_found2721 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2722 behaves like process Composer api request2723 for user type developer2724 behaves like returning response status2725 returns unauthorized2726 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2727 behaves like process Composer api request2728 for user type guest2729 behaves like returning response status2730 returns not_found2731 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2732 behaves like process Composer api request2733 for user type guest2734 behaves like returning response status2735 returns unauthorized2736 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2737 behaves like process Composer api request2738 for user type guest2739 behaves like returning response status2740 returns not_found2741 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2742 behaves like process Composer api request2743 for user type guest2744 behaves like returning response status2745 returns unauthorized2746 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2747 behaves like process Composer api request2748 for user type anonymous2749 behaves like returning response status2750 returns not_found2751 behaves like Composer access with deploy tokens2752 group deploy token2753 behaves like a deploy token for Composer GET requests2754 with deploy token headers2755 valid token2756 behaves like returning response status2757 returns success2758 invalid token2759 behaves like returning response status2760 returns not_found2761 project deploy token2762 behaves like a deploy token for Composer GET requests2763 with deploy token headers2764 valid token2765 behaves like returning response status2766 returns success2767 invalid token2768 behaves like returning response status2769 returns not_found2770 behaves like rejects Composer access with unknown group id2771 with an unknown group2772 as anonymous2773 behaves like process Composer api request2774 for user type anonymous2775 behaves like returning response status2776 returns not_found2777 as authenticated user2778 behaves like process Composer api request2779 for user type anonymous2780 behaves like returning response status2781 returns not_found2782 POST /api/v4/projects/:id/packages/composer2783 with existing package2784 does not create a new package2785 marked as pending_destruction2786 does create a new package2787 with no tag or branch params2788 behaves like process Composer api request2789 for user type developer2790 behaves like returning response status2791 returns bad_request2792 with a tag2793 with an existing branch2794 behaves like composer package publish2795 with valid project2796 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package creation", expected_status: :created2797 behaves like Composer package creation2798 for user type developer2799 creates package files2800 behaves like a package tracking event2801 creates a gitlab tracking event push_package2802 when package creation fails2803 behaves like not a package tracking event2804 does not create a gitlab tracking event2805 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2806 behaves like process Composer api request2807 for user type developer2808 behaves like returning response status2809 returns unauthorized2810 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden2811 behaves like process Composer api request2812 for user type developer2813 behaves like returning response status2814 returns forbidden2815 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2816 behaves like process Composer api request2817 for user type developer2818 behaves like returning response status2819 returns unauthorized2820 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden2821 behaves like process Composer api request2822 for user type guest2823 behaves like returning response status2824 returns forbidden2825 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2826 behaves like process Composer api request2827 for user type guest2828 behaves like returning response status2829 returns unauthorized2830 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden2831 behaves like process Composer api request2832 for user type guest2833 behaves like returning response status2834 returns forbidden2835 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2836 behaves like process Composer api request2837 for user type guest2838 behaves like returning response status2839 returns unauthorized2840 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :unauthorized2841 behaves like process Composer api request2842 for user type anonymous2843 behaves like returning response status2844 returns unauthorized2845 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package creation", expected_status: :created2846 behaves like Composer package creation2847 for user type developer2848 creates package files2849 behaves like a package tracking event2850 creates a gitlab tracking event push_package2851 when package creation fails2852 behaves like not a package tracking event2853 does not create a gitlab tracking event2854 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2855 behaves like process Composer api request2856 for user type developer2857 behaves like returning response status2858 returns unauthorized2859 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2860 behaves like process Composer api request2861 for user type developer2862 behaves like returning response status2863 returns not_found2864 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2865 behaves like process Composer api request2866 for user type developer2867 behaves like returning response status2868 returns unauthorized2869 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden2870 behaves like process Composer api request2871 for user type guest2872 behaves like returning response status2873 returns forbidden2874 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2875 behaves like process Composer api request2876 for user type guest2877 behaves like returning response status2878 returns unauthorized2879 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2880 behaves like process Composer api request2881 for user type guest2882 behaves like returning response status2883 returns not_found2884 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2885 behaves like process Composer api request2886 for user type guest2887 behaves like returning response status2888 returns unauthorized2889 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :unauthorized2890 behaves like process Composer api request2891 for user type anonymous2892 behaves like returning response status2893 returns unauthorized2894 behaves like Composer publish with deploy tokens2895 group deploy token2896 behaves like a deploy token for Composer publish requests2897 valid token2898 behaves like returning response status2899 returns success2900 invalid token2901 behaves like returning response status2902 returns unauthorized2903 group deploy token2904 behaves like a deploy token for Composer publish requests2905 valid token2906 behaves like returning response status2907 returns success2908 invalid token2909 behaves like returning response status2910 returns unauthorized2911 behaves like rejects Composer access with unknown project id2912 with an unknown project2913 as anonymous2914 behaves like process Composer api request2915 for user type anonymous2916 behaves like returning response status2917 returns unauthorized2918 as authenticated user2919 behaves like process Composer api request2920 for user type anonymous2921 behaves like returning response status2922 returns not_found2923 with a non existing tag2924 behaves like process Composer api request2925 for user type developer2926 behaves like returning response status2927 returns not_found2928 with a branch2929 with an existing branch2930 behaves like composer package publish2931 with valid project2932 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package creation", expected_status: :created2933 behaves like Composer package creation2934 for user type developer2935 creates package files2936 behaves like a package tracking event2937 creates a gitlab tracking event push_package2938 when package creation fails2939 behaves like not a package tracking event2940 does not create a gitlab tracking event2941 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2942 behaves like process Composer api request2943 for user type developer2944 behaves like returning response status2945 returns unauthorized2946 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden2947 behaves like process Composer api request2948 for user type developer2949 behaves like returning response status2950 returns forbidden2951 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2952 behaves like process Composer api request2953 for user type developer2954 behaves like returning response status2955 returns unauthorized2956 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden2957 behaves like process Composer api request2958 for user type guest2959 behaves like returning response status2960 returns forbidden2961 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2962 behaves like process Composer api request2963 for user type guest2964 behaves like returning response status2965 returns unauthorized2966 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden2967 behaves like process Composer api request2968 for user type guest2969 behaves like returning response status2970 returns forbidden2971 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2972 behaves like process Composer api request2973 for user type guest2974 behaves like returning response status2975 returns unauthorized2976 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :unauthorized2977 behaves like process Composer api request2978 for user type anonymous2979 behaves like returning response status2980 returns unauthorized2981 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package creation", expected_status: :created2982 behaves like Composer package creation2983 for user type developer2984 creates package files2985 behaves like a package tracking event2986 creates a gitlab tracking event push_package2987 when package creation fails2988 behaves like not a package tracking event2989 does not create a gitlab tracking event2990 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized2991 behaves like process Composer api request2992 for user type developer2993 behaves like returning response status2994 returns unauthorized2995 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found2996 behaves like process Composer api request2997 for user type developer2998 behaves like returning response status2999 returns not_found3000 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized3001 behaves like process Composer api request3002 for user type developer3003 behaves like returning response status3004 returns unauthorized3005 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden3006 behaves like process Composer api request3007 for user type guest3008 behaves like returning response status3009 returns forbidden3010 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized3011 behaves like process Composer api request3012 for user type guest3013 behaves like returning response status3014 returns unauthorized3015 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found3016 behaves like process Composer api request3017 for user type guest3018 behaves like returning response status3019 returns not_found3020 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized3021 behaves like process Composer api request3022 for user type guest3023 behaves like returning response status3024 returns unauthorized3025 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :unauthorized3026 behaves like process Composer api request3027 for user type anonymous3028 behaves like returning response status3029 returns unauthorized3030 behaves like Composer publish with deploy tokens3031 group deploy token3032 behaves like a deploy token for Composer publish requests3033 valid token3034 behaves like returning response status3035 returns success3036 invalid token3037 behaves like returning response status3038 returns unauthorized3039 group deploy token3040 behaves like a deploy token for Composer publish requests3041 valid token3042 behaves like returning response status3043 returns success3044 invalid token3045 behaves like returning response status3046 returns unauthorized3047 behaves like rejects Composer access with unknown project id3048 with an unknown project3049 as anonymous3050 behaves like process Composer api request3051 for user type anonymous3052 behaves like returning response status3053 returns unauthorized3054 as authenticated user3055 behaves like process Composer api request3056 for user type anonymous3057 behaves like returning response status3058 returns not_found3059 with a non existing branch3060 behaves like process Composer api request3061 for user type developer3062 behaves like returning response status3063 returns not_found3064 with invalid composer.json3065 with a missing composer.json file3066 behaves like process Composer api request3067 for user type developer3068 behaves like returning response status3069 returns unprocessable_entity3070 with an empty composer.json file3071 behaves like process Composer api request3072 for user type developer3073 behaves like returning response status3074 returns unprocessable_entity3075 with a malformed composer.json file3076 behaves like process Composer api request3077 for user type developer3078 behaves like returning response status3079 returns unprocessable_entity3080 GET /api/v4/projects/:id/packages/composer/archives/*package_name?sha=:sha3081 with valid project3082 when the sha does not match the package name3083 anonymous3084 behaves like process Composer api request3085 for user type anonymous3086 behaves like returning response status3087 returns unauthorized3088 behaves like process Composer api request3089 for user type developer3090 behaves like returning response status3091 returns not_found3092 when the package name does not match the sha3093 anonymous3094 behaves like process Composer api request3095 for user type anonymous3096 behaves like returning response status3097 returns unauthorized3098 behaves like process Composer api request3099 for user type developer3100 behaves like returning response status3101 returns not_found3102 with a match package name and sha3103 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, expected_status: :success3104 behaves like process Composer api request3105 for user type developer3106 behaves like returning response status3107 returns success3108 behaves like bumping the package last downloaded at field3109 bumps last_downloaded_at3110 behaves like a package tracking event3111 creates a gitlab tracking event pull_package3112 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, expected_status: :success3113 behaves like process Composer api request3114 for user type developer3115 behaves like returning response status3116 returns success3117 behaves like bumping the package last downloaded at field3118 bumps last_downloaded_at3119 behaves like a package tracking event3120 creates a gitlab tracking event pull_package3121 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, expected_status: :success3122 behaves like process Composer api request3123 for user type developer3124 behaves like returning response status3125 returns success3126 behaves like bumping the package last downloaded at field3127 bumps last_downloaded_at3128 behaves like a package tracking event3129 creates a gitlab tracking event pull_package3130 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, expected_status: :success3131 behaves like process Composer api request3132 for user type developer3133 behaves like returning response status3134 returns success3135 behaves like bumping the package last downloaded at field3136 bumps last_downloaded_at3137 behaves like a package tracking event3138 creates a gitlab tracking event pull_package3139 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, expected_status: :success3140 behaves like process Composer api request3141 for user type guest3142 behaves like returning response status3143 returns success3144 behaves like bumping the package last downloaded at field3145 bumps last_downloaded_at3146 behaves like a package tracking event3147 creates a gitlab tracking event pull_package3148 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, expected_status: :success3149 behaves like process Composer api request3150 for user type guest3151 behaves like returning response status3152 returns success3153 behaves like bumping the package last downloaded at field3154 bumps last_downloaded_at3155 behaves like a package tracking event3156 creates a gitlab tracking event pull_package3157 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, expected_status: :success3158 behaves like process Composer api request3159 for user type guest3160 behaves like returning response status3161 returns success3162 behaves like bumping the package last downloaded at field3163 bumps last_downloaded_at3164 behaves like a package tracking event3165 creates a gitlab tracking event pull_package3166 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, expected_status: :success3167 behaves like process Composer api request3168 for user type guest3169 behaves like returning response status3170 returns success3171 behaves like bumping the package last downloaded at field3172 bumps last_downloaded_at3173 behaves like a package tracking event3174 creates a gitlab tracking event pull_package3175 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, expected_status: :success3176 behaves like process Composer api request3177 for user type anonymous3178 behaves like returning response status3179 returns success3180 behaves like bumping the package last downloaded at field3181 bumps last_downloaded_at3182 behaves like a package tracking event3183 creates a gitlab tracking event pull_package3184 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, expected_status: :success3185 behaves like process Composer api request3186 for user type developer3187 behaves like returning response status3188 returns success3189 behaves like bumping the package last downloaded at field3190 bumps last_downloaded_at3191 behaves like a package tracking event3192 creates a gitlab tracking event pull_package3193 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, expected_status: :unauthorized3194 behaves like process Composer api request3195 for user type developer3196 behaves like returning response status3197 returns unauthorized3198 behaves like not a package tracking event3199 does not create a gitlab tracking event3200 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, expected_status: :not_found3201 behaves like process Composer api request3202 for user type developer3203 behaves like returning response status3204 returns not_found3205 behaves like not a package tracking event3206 does not create a gitlab tracking event3207 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, expected_status: :unauthorized3208 behaves like process Composer api request3209 for user type developer3210 behaves like returning response status3211 returns unauthorized3212 behaves like not a package tracking event3213 does not create a gitlab tracking event3214 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, expected_status: :forbidden3215 behaves like process Composer api request3216 for user type guest3217 behaves like returning response status3218 returns forbidden3219 behaves like not a package tracking event3220 does not create a gitlab tracking event3221 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, expected_status: :unauthorized3222 behaves like process Composer api request3223 for user type guest3224 behaves like returning response status3225 returns unauthorized3226 behaves like not a package tracking event3227 does not create a gitlab tracking event3228 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, expected_status: :not_found3229 behaves like process Composer api request3230 for user type guest3231 behaves like returning response status3232 returns not_found3233 behaves like not a package tracking event3234 does not create a gitlab tracking event3235 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, expected_status: :unauthorized3236 behaves like process Composer api request3237 for user type guest3238 behaves like returning response status3239 returns unauthorized3240 behaves like not a package tracking event3241 does not create a gitlab tracking event3242 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, expected_status: :unauthorized3243 behaves like process Composer api request3244 for user type anonymous3245 behaves like returning response status3246 returns unauthorized3247 behaves like not a package tracking event3248 does not create a gitlab tracking event3249 behaves like Composer publish with deploy tokens3250 group deploy token3251 behaves like a deploy token for Composer publish requests3252 valid token3253 behaves like returning response status3254 returns success3255 invalid token3256 behaves like returning response status3257 returns unauthorized3258 group deploy token3259 behaves like a deploy token for Composer publish requests3260 valid token3261 behaves like returning response status3262 returns success3263 invalid token3264 behaves like returning response status3265 returns unauthorized3266 behaves like rejects Composer access with unknown project id3267 with an unknown project3268 as anonymous3269 behaves like process Composer api request3270 for user type anonymous3271 behaves like returning response status3272 returns unauthorized3273 as authenticated user3274 behaves like process Composer api request3275 for user type anonymous3276 behaves like returning response status3277 returns not_found3278ProjectsController3279 updates Service Desk attributes3280 GET new3281 with an authenticated user3282 when namespace_id param is present3283 when user has access to the namespace3284 renders the template3285 when user does not have access to the namespace3286 responds with status 4043287 GET index3288 as a user3289 redirects to root page3290 as a guest3291 redirects to Explore page3292 GET #activity as JSON3293 when user has permission to see the event3294 returns count3295 design events are visible3296 returns correct count3297 when user has no permission to see the event3298 filters out invisible event3299 GET show3300 user not project member3301 user does not have access to project3302 does not initialize notification setting3303 user has access to project3304 and does not have notification setting3305 initializes notification as disabled3306 and has notification setting3307 shows current notification setting3308 when project repository is disabled3309 shows wiki homepage3310 shows issues list page if wiki is disabled3311 shows activity page if wiki and issues are disabled3312 shows activity if enabled by user3313 project with empty repo3314 with readme view set3315 renders the empty project view3316 with activity view set3317 renders the empty project view3318 with files view set3319 renders the empty project view3320 project with broken repo3321 with readme view set3322 renders the empty project view3323 with activity view set3324 renders the empty project view3325 with files view set3326 renders the empty project view3327 rendering default project view3328 renders the activity view3329 renders the files view3330 renders the readme view3331 does not make Gitaly requests3332 renders files even with invalid license3333 tracking events3334 tracks page views3335 when the project is importing3336 does not track page views3337 PUC highlighting3338 option is enabled3339 adds the highlighting class3340 option is disabled3341 doesn't add the highlighting class3342 when the url contains .atom3343 expects an error creating the project3344 when the project is pending deletions3345 renders a 404 error3346 redirection from http://someproject.git3347 user_type: :anonymous, project_visibility: :public, expected_redirect: :redirect_to_project3348 returns the expected status3349 user_type: :anonymous, project_visibility: :internal, expected_redirect: :redirect_to_signup3350 returns the expected status3351 user_type: :anonymous, project_visibility: :private, expected_redirect: :redirect_to_signup3352 returns the expected status3353 user_type: :signed_in, project_visibility: :public, expected_redirect: :redirect_to_project3354 returns the expected status3355 user_type: :signed_in, project_visibility: :internal, expected_redirect: :redirect_to_project3356 returns the expected status3357 user_type: :signed_in, project_visibility: :private, expected_redirect: nil3358 returns the expected status3359 user_type: :member, project_visibility: :public, expected_redirect: :redirect_to_project3360 returns the expected status3361 user_type: :member, project_visibility: :internal, expected_redirect: :redirect_to_project3362 returns the expected status3363 user_type: :member, project_visibility: :private, expected_redirect: :redirect_to_project3364 returns the expected status3365 when project is moved and git format is requested3366 redirects to new project path3367 when the project is forked and has a repository3368 does not increase the number of queries when the project is forked3369 POST create3370 on import3371 when import by url is disabled3372 does not create project and reports an error3373 when import by url is enabled3374 creates project3375 GET edit3376 allows an admin user to access the page3377 sets the badge API endpoint3378 POST #archive3379 for a user with the ability to archive a project3380 archives the project3381 redirects to projects path3382 for a user that does not have the ability to archive a project3383 does not archive the project3384 returns 4043385 POST #unarchive3386 for a user with the ability to unarchive a project3387 unarchives the project3388 redirects to projects path3389 for a user that does not have the ability to unarchive a project3390 does not unarchive the project3391 returns 4043392 #housekeeping3393 when authenticated as owner3394 forces a full garbage collection3395 when authenticated as developer3396 does not execute housekeeping3397 #update3398 hashed storage3399 behaves like updating a project3400 updates Fast Forward Merge attributes3401 does not update namespace3402 when there is a conflicting project path3403 does not show any references to the conflicting path3404 when only renaming a project path3405 doesnt change the disk_path when using hashed storage3406 upgrades and move project to hashed storage when project was originally legacy (PENDING: No reason given)3407 when project has container repositories with tags3408 does not allow to rename the project3409 legacy storage3410 behaves like updating a project3411 updates Fast Forward Merge attributes3412 does not update namespace3413 when there is a conflicting project path3414 does not show any references to the conflicting path3415 when only renaming a project path3416 doesnt change the disk_path when using hashed storage (PENDING: No reason given)3417 upgrades and move project to hashed storage when project was originally legacy3418 when project has container repositories with tags3419 does not allow to rename the project3420 as maintainer3421 behaves like unauthorized when external service denies access3422 allows access when the authorization service allows it3423 allows access when the authorization service denies it3424 updates when the service allows access3425 does not update when the service rejects access3426 when updating boolean values on project_settings3427 boolean_value: "1", result: true3428 updates project settings attributes accordingly3429 boolean_value: "0", result: false3430 updates project settings attributes accordingly3431 boolean_value: 1, result: true3432 updates project settings attributes accordingly3433 boolean_value: 0, result: false3434 updates project settings attributes accordingly3435 boolean_value: true, result: true3436 updates project settings attributes accordingly3437 boolean_value: false, result: false3438 updates project settings attributes accordingly3439 with project feature attributes3440 feature_access_level: :metrics_dashboard_access_level3441 behaves like feature update success3442 updates access level successfully3443 feature_access_level: :container_registry_access_level3444 behaves like feature update success3445 updates access level successfully3446 feature_access_level: :environments_access_level3447 behaves like feature update success3448 updates access level successfully3449 feature_access_level: :feature_flags_access_level3450 behaves like feature update success3451 updates access level successfully3452 feature_access_level: :releases_access_level3453 behaves like feature update success3454 updates access level successfully3455 feature_access_level: :monitor_access_level3456 behaves like feature update success3457 updates access level successfully3458 feature_access_level: :infrastructure_access_level3459 behaves like feature update success3460 updates access level successfully3461 for feature_access_level operations_access_level3462 cannot update access level3463 with feature flag split_operations_visibility_permissions disabled3464 for feature_access_level operations_access_level3465 updates access level successfully3466 feature_access_level: :environments_access_level3467 behaves like feature update failure3468 cannot update access level3469 feature_access_level: :feature_flags_access_level3470 behaves like feature update failure3471 cannot update access level3472 feature_access_level: :monitor_access_level3473 behaves like feature update failure3474 cannot update access level3475 #transfer3476 updates namespace3477 when new namespace is empty3478 behaves like project namespace is not changed3479 project namespace is not changed3480 when new namespace is the same as the current namespace3481 behaves like project namespace is not changed3482 project namespace is not changed3483 #destroy3484 redirects to the dashboard3485 when the project is forked3486 closes all related merge requests3487 PUT #new_issuable_address for issue3488 has http status 2003489 changes the user incoming email token3490 changes projects new issue address3491 PUT #new_issuable_address for merge request3492 has http status 2003493 changes the user incoming email token3494 changes projects new merge request address3495 POST #toggle_star3496 toggles star if user is signed in3497 does nothing if user is not signed in3498 DELETE remove_fork3499 does nothing if user is not signed in3500 when signed in3501 with forked project3502 removes fork from project3503 when project not forked3504 does nothing if project was not forked3505 GET refs3506 gets a list of branches and tags3507 gets a list of branches, tags and commits3508 uses gitaly pagination3509 when gitaly is unavailable3510 responds with 503 error3511 when preferred language is Japanese3512 gets a list of branches, tags and commits3513 when private project3514 as a guest3515 renders forbidden3516 when input params are invalid3517 does not break3518 POST #preview_markdown3519 renders json in a correct format3520 when not authorized3521 returns 4043522 state filter on references3523 renders JSON body with state filter for issues3524 renders JSON body with state filter for MRs3525 when path parameter is provided3526 renders JSON body with image links expanded3527 when path and ref parameters are provided3528 renders JSON body with image links expanded3529 #ensure_canonical_path3530 for a GET request3531 when requesting the canonical path3532 with exactly matching casing3533 loads the project3534 with different casing3535 redirects to the normalized path3536 when requesting a redirected path3537 redirects to the canonical path3538 redirects to the canonical path (testing non-show action)3539 for a POST request3540 when requesting the canonical path with different casing3541 does not 4043542 does not redirect to the correct casing3543 when requesting a redirected path3544 returns not found3545 for a DELETE request3546 when requesting the canonical path with different casing3547 does not 4043548 does not redirect to the correct casing3549 when requesting a redirected path3550 returns not found3551 project export3552 #export3553 when project export is enabled3554 returns 3023555 when the project storage_size exceeds the application setting max_export_size3556 returns 302 with alert3557 when the project storage_size does not exceed the application setting max_export_size3558 returns 302 without alert3559 when application setting max_export_size is not set3560 returns 302 without alert3561 when project export is disabled3562 returns 4043563 when the endpoint receives requests above the limit3564 prevents requesting project export3565 #download_export3566 object storage enabled3567 when project export is enabled3568 returns 2003569 when project export file is absent3570 alerts the user and returns 3023571 when project export is disabled3572 returns 4043573 when the endpoint receives requests above the limit3574 prevents requesting project export3575 applies correct scope when throttling3576 applies throttle per namespace3577 throttles downloads within same namespaces3578 allows downloads from different namespaces3579 #remove_export3580 when project export is enabled3581/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil3582 returns 3023583 when project export is disabled3584 returns 4043585 #generate_new_export3586 when project export is enabled3587/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil3588 returns 3023589 when project export is disabled3590 returns 4043591 when the endpoint receives requests above the limit3592 prevents requesting project export3593 GET show.atom3594 filters by calling event.visible_to_user?3595 filters by calling event.visible_to_user?3596 GET #unfoldered_environment_names3597 shows the environment names of a public project to an anonymous user3598 does not show environment names of a private project to anonymous users3599 shows environment names of a private project to a project member3600 does not show environment names of a private project to a logged-in non-member3601Admin::ClustersController3602 GET #index3603 functionality3604 when instance has one or more clusters3605 lists available clusters and displays html3606 lists available clusters and renders json serializer3607 sets the polling interval header for json requests3608 feature flag is disabled3609 responds with :not_found3610 when page is specified3611 redirects to the page3612 displays cluster list for associated page3613 when instance does not have a cluster3614 returns an empty state page3615 security3616 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2003617 is expected to be denied for user. Expected: 401,404 Got: 4043618 is expected to be denied for external. Expected: 401,404 Got: 4043619 behaves like GET #metrics_dashboard for dashboard3620 returns correct dashboard3621 behaves like GET #metrics_dashboard correctly formatted response3622 returns a json object with the correct keys3623 GET #prometheus_proxy3624 behaves like metrics dashboard prometheus api proxy3625 with valid requests3626 with success result3627 returns prometheus response3628 with nil query3629 does not raise error3630 with nil result3631 returns 204 no_content3632 with 404 result3633 returns body3634 with error result3635 with http_status3636 sets the http response status code3637 without http_status3638 returns bad_request3639 with inappropriate requests3640 without correct permissions3641 returns 4043642 with invalid proxyable id3643 returns 4043644 with anonymous user3645 returns 4043646 POST #create_user3647 feature flag is disabled3648 responds with :not_found3649 functionality3650 when creates a cluster3651 creates a new cluster3652 when creates a RBAC-enabled cluster3653 creates a new cluster3654 security3655 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3023656 is expected to be denied for user. Expected: 401,404 Got: 4043657 is expected to be denied for external. Expected: 401,404 Got: 4043658 DELETE clear cluster cache3659 deletes the namespaces associated with the cluster3660 feature flag is disabled3661 responds with :not_found3662 security3663 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3023664 is expected to be denied for user. Expected: 401,404 Got: 4043665 is expected to be denied for external. Expected: 401,404 Got: 4043666 GET #cluster_status3667 feature flag is disabled3668 responds with :not_found3669 functionality3670 responds with matching schema3671 invokes schedule_status_update on each application3672 security3673 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2003674 is expected to be denied for user. Expected: 401,404 Got: 4043675 is expected to be denied for external. Expected: 401,404 Got: 4043676 GET #show3677 feature flag is disabled3678 responds with :not_found3679 functionality3680 responds successfully3681 renders integration tab view3682 security3683 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2003684 is expected to be denied for user. Expected: 401,404 Got: 4043685 is expected to be denied for external. Expected: 401,404 Got: 4043686 PUT #update3687 updates and redirects back to show page3688 feature flag is disabled3689 responds with :not_found3690 when domain is invalid3691 does not update cluster attributes3692 when format is json3693 when changing parameters3694 when valid parameters are used3695 updates and redirects back to show page3696 when invalid parameters are used3697 rejects changes3698 security3699 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3023700 is expected to be denied for user. Expected: 401,404 Got: 4043701 is expected to be denied for external. Expected: 401,404 Got: 4043702 DELETE #destroy3703 feature flag is disabled3704 responds with :not_found3705 functionality3706 when cluster is provided by GCP3707 when cluster is created3708 destroys and redirects back to clusters list3709 when cluster is being created3710 destroys and redirects back to clusters list3711 when cluster is provided by user3712 destroys and redirects back to clusters list3713 security3714 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3023715 is expected to be denied for user. Expected: 401,404 Got: 4043716 is expected to be denied for external. Expected: 401,404 Got: 4043717API::Ci::Jobs3718 GET /job3719 when token is valid but not CI_JOB_TOKEN3720 returns not found3721 with job token authentication header3722 returns specific job data3723 avoids N+1 queries3724 behaves like returns common job data3725 returns common job data3726 behaves like returns common pipeline data3727 returns common pipeline data3728 with job token authentication params3729 returns specific job data3730 behaves like returns common job data3731 returns common job data3732 behaves like returns common pipeline data3733 returns common pipeline data3734 with non running job3735 behaves like returns unauthorized3736 returns unauthorized3737 with basic auth header3738 does not return a job3739 without authentication3740 behaves like returns unauthorized3741 returns unauthorized3742 GET /job/allowed_agents3743 when token is valid and user is authorized3744 behaves like valid allowed_agents request3745 returns agent info3746 when deployment3747 includes environment slug3748 includes environment tier3749 when non-deployment environment action3750 includes environment slug3751 includes environment tier3752 when passing the token as params3753 behaves like valid allowed_agents request3754 returns agent info3755 when user is anonymous3756 returns unauthorized3757 when token is invalid because job has finished3758 returns unauthorized3759 when token is invalid3760 returns unauthorized3761 when token is valid but not CI_JOB_TOKEN3762 returns not found3763 GET /projects/:id/jobs3764 authorized user3765 returns project jobs3766 returns correct values3767 returns pipeline data3768 avoids N+1 queries3769 without artifacts and trace3770 returns no artifacts nor trace data3771 behaves like a job with artifacts and trace3772 with artifacts and trace3773 returns artifacts and trace data3774 filter project with one scope element3775 is expected to be a kind of Array3776 filter project with array of scope elements3777 is expected to be a kind of Array3778 respond 400 when scope contains invalid state3779 is expected to respond with numeric status code bad_request3780 unauthorized user3781 when user is not logged in3782 does not return project jobs3783 when user is guest3784 does not return project jobs3785 GET /projects/:id/jobs/:job_id3786 authorized user3787 returns specific job data3788 behaves like returns common job data3789 returns common job data3790 behaves like a job with artifacts and trace3791 with artifacts and trace3792 returns artifacts and trace data3793 behaves like returns common pipeline data3794 returns common pipeline data3795 unauthorized user3796 does not return specific job data3797 when job succeeded3798 does not return failure_reason3799 when job failed3800 returns failure_reason3801 when trace artifact record exists with no stored file3802 returns no artifacts nor trace data3803 GET /projects/:id/jobs/:job_id/trace3804 authorized user3805 when log is in ObjectStorage3806 returns specific job logs3807 when log is artifact3808 returns specific job log3809 when incremental logging and uploadless log artifact3810 returns specific job log3811 when log is incremental3812 returns specific job log3813 when no log3814 returns empty log3815 when log artifact record exists with no stored file3816 returns empty trace3817 unauthorized user3818 does not return specific job log3819 when ci_debug_trace is set to true3820 public_builds: true, user_project_role: "developer", expected_status: :ok3821 renders trace to authorized users3822 public_builds: true, user_project_role: "guest", expected_status: :forbidden3823 renders trace to authorized users3824 public_builds: false, user_project_role: "developer", expected_status: :ok3825 renders trace to authorized users3826 public_builds: false, user_project_role: "guest", expected_status: :forbidden3827 renders trace to authorized users3828 when ci_debug_services is set to true3829 public_builds: true, user_project_role: "developer", expected_status: :ok3830 renders successfully to authorized users3831 public_builds: true, user_project_role: "guest", expected_status: :forbidden3832 renders successfully to authorized users3833 public_builds: false, user_project_role: "developer", expected_status: :ok3834 renders successfully to authorized users3835 public_builds: false, user_project_role: "guest", expected_status: :forbidden3836 renders successfully to authorized users3837 POST /projects/:id/jobs/:job_id/cancel3838 authorized user3839 user with :update_build persmission3840 cancels running or pending job3841 user without :update_build permission3842 does not cancel job3843 unauthorized user3844 does not cancel job3845 POST /projects/:id/jobs/:job_id/retry3846 authorized user3847 user with :update_build permission3848 retries non-running job3849 when a build is not retryable3850 responds with unprocessable entity3851 user without :update_build permission3852 does not retry job3853 unauthorized user3854 does not retry job3855 POST /projects/:id/jobs/:job_id/erase3856 when project is not undergoing stats refresh3857 job is erasable3858 updates job3859 behaves like erases job3860 erases job content3861 when job has an unarchived trace artifact3862 behaves like erases job3863 erases job content3864 job is not erasable3865 responds with forbidden3866 when a developer erases a build3867 when the build was created by the developer3868 is expected to respond with numeric status code created3869 when the build was created by another user3870 is expected to respond with numeric status code forbidden3871 when project is undergoing stats refresh3872 behaves like preventing request because of ongoing project stats refresh3873 logs about the rejected request3874 returns 409 error3875 does not delete artifacts3876 POST /projects/:id/jobs/:job_id/play3877 on a playable job3878 when user is authorized to trigger a manual action3879 that is a bridge3880 plays the job3881 that is a build3882 plays the job3883 when the user provides valid custom variables3884 applies the variables to the job3885 when the user provides a variable without a key3886 reports that the key is missing3887 when the user provides a variable without a value3888 reports that the value is missing3889 when the user provides both valid and invalid variables3890 reports the invalid variables and does not run the job3891 when user is not authorized to trigger a manual action3892 when user does not have access to the project3893 does not trigger a manual action3894 when user is not allowed to trigger the manual action3895 does not trigger a manual action3896 on a non-playable job3897 returns a status code 400, Bad Request3898API::Terraform::State3899 GET /projects/:id/terraform/state/:name3900 behaves like endpoint with unique user tracking3901 without authentication3902 does not track unique hll event3903 does not track Snowplow event3904 with maintainer permissions3905 behaves like tracking unique hll events3906Skipping ./spec/requests/api/terraform/state_spec.rb[1:1:1:2:1:1] 'API::Terraform::State GET /projects/:id/terraform/state/:name behaves like endpoint with unique user tracking with maintainer permissions behaves like tracking unique hll events tracks unique event' because it's flaky.3907 tracks unique event (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)3908 behaves like Snowplow event tracking with RedisHLL context3909 behaves like Snowplow event tracking3910 is not emitted if FF is disabled3911 is emitted3912 without authentication3913 returns 401 if user is not authenticated3914 personal acceess token authentication3915 with maintainer permissions3916 returns terraform state belonging to a project of given state name3917 for a project that does not exist3918 returns not found3919 behaves like cannot access a state that is scheduled for deletion3920 returns unprocessable entity3921 with developer permissions3922 returns terraform state belonging to a project of given state name3923 job token authentication3924 with maintainer permissions3925 returns terraform state belonging to a project of given state name3926 returns unauthorized if the the job is not running3927 for a project that does not exist3928 returns not found3929 with developer permissions3930 returns terraform state belonging to a project of given state name3931 POST /projects/:id/terraform/state/:name3932 behaves like endpoint with unique user tracking3933 without authentication3934 does not track unique hll event3935 does not track Snowplow event3936 with maintainer permissions3937 behaves like tracking unique hll events3938 tracks unique event3939 behaves like Snowplow event tracking with RedisHLL context3940 behaves like Snowplow event tracking3941 is not emitted if FF is disabled3942 is emitted3943 when terraform state with a given name is already present3944 with maintainer permissions3945 updates the state3946 when serial already exists3947 returns unprocessable entity3948 behaves like cannot access a state that is scheduled for deletion3949 returns unprocessable entity3950 without body3951 returns no content if no body is provided3952 with developer permissions3953 returns forbidden3954 when there is no terraform state of a given name3955 with maintainer permissions3956 creates a new state3957 without body3958 returns no content if no body is provided3959 with developer permissions3960 returns forbidden3961 when using job token authentication3962 associates the job with the newly created state version3963 DELETE /projects/:id/terraform/state/:name3964 behaves like endpoint with unique user tracking3965 without authentication3966 does not track unique hll event3967 does not track Snowplow event3968 with maintainer permissions3969 behaves like tracking unique hll events3970 tracks unique event3971 behaves like Snowplow event tracking with RedisHLL context3972 behaves like Snowplow event tracking3973 is not emitted if FF is disabled3974 is emitted3975 with maintainer permissions3976 schedules the state for deletion and returns empty body3977 behaves like cannot access a state that is scheduled for deletion3978 returns unprocessable entity3979 with developer permissions3980 returns forbidden3981 PUT /projects/:id/terraform/state/:name/lock3982 locks the terraform state3983 behaves like endpoint with unique user tracking3984 without authentication3985 does not track unique hll event3986 does not track Snowplow event3987 with maintainer permissions3988 behaves like tracking unique hll events3989 tracks unique event3990 behaves like Snowplow event tracking with RedisHLL context3991 behaves like Snowplow event tracking3992 is not emitted if FF is disabled3993 is emitted3994 behaves like cannot access a state that is scheduled for deletion3995 returns unprocessable entity3996 state is already locked3997 returns an error3998 user does not have permission to lock the state3999 returns an error4000 DELETE /projects/:id/terraform/state/:name/lock4001 behaves like endpoint with unique user tracking4002 without authentication4003 does not track unique hll event4004 does not track Snowplow event4005 with maintainer permissions4006 behaves like tracking unique hll events4007 tracks unique event4008 behaves like Snowplow event tracking with RedisHLL context4009 behaves like Snowplow event tracking4010 is not emitted if FF is disabled4011 is emitted4012 behaves like cannot access a state that is scheduled for deletion4013 returns unprocessable entity4014 with the correct lock id4015 removes the terraform state lock4016 with no lock id (force-unlock)4017 removes the terraform state lock4018 with an incorrect lock id4019 returns an error4020 with a longer than 255 character lock id4021 returns an error4022 user does not have permission to unlock the state4023 returns an error4024Projects::PipelineSchedulesController4025 GET #index4026 renders the index view4027 avoids N + 1 queries4028 when the scope is set to active4029 only shows active pipeline schedules4030 GET #new4031 initializes a pipeline schedule model4032 POST #create4033 functionality4034 when variables_attributes has one variable4035 creates a new schedule4036 when variables_attributes has two variables and duplicated4037 returns an error that the keys of variable are duplicated4038 security4039 is allowed for admin when admin mode enabled4040 is denied for admin when admin mode disabled4041 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024042 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024043 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 3024044 is expected to be denied for reporter. Expected: 401,404 Got: 4044045 is expected to be denied for guest. Expected: 401,404 Got: 4044046 is expected to be denied for user. Expected: 401,404 Got: 4044047 is expected to be denied for external. Expected: 401,404 Got: 4044048 is expected to be denied for visitor. Expected: 401,404 Got: 4044049 PUT #update4050 functionality4051 when a pipeline schedule has no variables4052 when params include one variable4053 inserts new variable to the pipeline schedule4054 when params include two duplicated variables4055 returns an error that variables are duplciated4056 when a pipeline schedule has one variable4057 when adds a new variable4058 adds the new variable4059 when adds a new duplicated variable4060 returns an error4061 when updates a variable4062 updates the variable4063 when deletes a variable4064 delete the existsed variable4065 when deletes and creates a same key simultaneously4066 updates the variable4067 security4068 behaves like access update schedule4069 security4070 is allowed for admin when admin mode enabled4071 is denied for admin when admin mode disabled4072 is expected to be denied for owner. Expected: 401,404 Got: 4044073 is expected to be denied for maintainer. Expected: 401,404 Got: 4044074 is expected to be denied for developer. Expected: 401,404 Got: 4044075 is expected to be denied for reporter. Expected: 401,404 Got: 4044076 is expected to be denied for guest. Expected: 401,404 Got: 4044077 is expected to be denied for user. Expected: 401,404 Got: 4044078 is expected to be denied for external. Expected: 401,404 Got: 4044079 is expected to be denied for visitor. Expected: 401,404 Got: 4044080 when user is schedule owner4081 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024082 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024083 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 3024084 is expected to be denied for reporter. Expected: 401,404 Got: 4044085 is expected to be denied for guest. Expected: 401,404 Got: 4044086 is expected to be denied for user. Expected: 401,404 Got: 4044087 is expected to be denied for external. Expected: 401,404 Got: 4044088 is expected to be denied for visitor. Expected: 401,404 Got: 4044089 when a developer created a pipeline schedule4090 is expected to be allowed for #<User:0x00007f2a55ecbb58>. Expected: 200,201,204,302 Got: 3024091 is expected to be denied for owner. Expected: 401,404 Got: 4044092 is expected to be denied for maintainer. Expected: 401,404 Got: 4044093 is expected to be denied for developer. Expected: 401,404 Got: 4044094 when a maintainer created a pipeline schedule4095 is expected to be allowed for #<User:0x00007f2a5bc5a8a0>. Expected: 200,201,204,302 Got: 3024096 is expected to be denied for owner. Expected: 401,404 Got: 4044097 is expected to be denied for maintainer. Expected: 401,404 Got: 4044098 is expected to be denied for developer. Expected: 401,404 Got: 4044099 GET #edit4100 functionality4101 loads the pipeline schedule4102 behaves like access update schedule4103 security4104 is allowed for admin when admin mode enabled4105 is denied for admin when admin mode disabled4106 is expected to be denied for owner. Expected: 401,404 Got: 4044107 is expected to be denied for maintainer. Expected: 401,404 Got: 4044108 is expected to be denied for developer. Expected: 401,404 Got: 4044109 is expected to be denied for reporter. Expected: 401,404 Got: 4044110 is expected to be denied for guest. Expected: 401,404 Got: 4044111 is expected to be denied for user. Expected: 401,404 Got: 4044112 is expected to be denied for external. Expected: 401,404 Got: 4044113 is expected to be denied for visitor. Expected: 401,404 Got: 4044114 when user is schedule owner4115 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2004116 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2004117 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2004118 is expected to be denied for reporter. Expected: 401,404 Got: 4044119 is expected to be denied for guest. Expected: 401,404 Got: 4044120 is expected to be denied for user. Expected: 401,404 Got: 4044121 is expected to be denied for external. Expected: 401,404 Got: 4044122 is expected to be denied for visitor. Expected: 401,404 Got: 4044123 GET #take_ownership4124 security4125 is allowed for admin when admin mode enabled4126 is denied for admin when admin mode disabled4127 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024128 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024129 is expected to be denied for developer. Expected: 401,404 Got: 4044130 is expected to be denied for reporter. Expected: 401,404 Got: 4044131 is expected to be denied for guest. Expected: 401,404 Got: 4044132 is expected to be denied for user. Expected: 401,404 Got: 4044133 is expected to be denied for external. Expected: 401,404 Got: 4044134 is expected to be denied for visitor. Expected: 401,404 Got: 4044135 when user is schedule owner4136 is expected to be denied for owner. Expected: 401,404 Got: 4044137 is expected to be denied for maintainer. Expected: 401,404 Got: 4044138 is expected to be denied for developer. Expected: 401,404 Got: 4044139 is expected to be denied for reporter. Expected: 401,404 Got: 4044140 is expected to be denied for guest. Expected: 401,404 Got: 4044141 is expected to be denied for user. Expected: 401,404 Got: 4044142 is expected to be denied for external. Expected: 401,404 Got: 4044143 is expected to be denied for visitor. Expected: 401,404 Got: 4044144 POST #play4145 when an anonymous user makes the request4146 does not allow pipeline to be executed4147 when a developer makes the request4148 executes a new pipeline4149 prevents users from scheduling the same pipeline repeatedly4150 when a developer attempts to schedule a protected ref4151 does not allow pipeline to be executed4152 DELETE #destroy4153 when a developer makes the request4154 does not delete the pipeline schedule4155 when a maintainer makes the request4156 destroys the pipeline schedule4157GitLab metrics server4158 behaves like spawns a server4159 targeting puma when using Golang server is true4160 behaves like serves metrics endpoint4161 serves /metrics endpoint4162 when using Pathname instance as target directory4163 behaves like serves metrics endpoint4164 serves /metrics endpoint4165 behaves like spawns a server4166 targeting puma when using Golang server is false4167 behaves like serves metrics endpoint4168 serves /metrics endpoint4169 when using Pathname instance as target directory4170 behaves like serves metrics endpoint4171 serves /metrics endpoint4172 behaves like spawns a server4173 targeting sidekiq when using Golang server is true4174 behaves like serves metrics endpoint4175 serves /metrics endpoint4176 when using Pathname instance as target directory4177 behaves like serves metrics endpoint4178 serves /metrics endpoint4179 behaves like spawns a server4180 targeting sidekiq when using Golang server is false4181 behaves like serves metrics endpoint4182 serves /metrics endpoint4183 when using Pathname instance as target directory4184 behaves like serves metrics endpoint4185 serves /metrics endpoint4186API::GroupDebianDistributions4187 POST groups/:id/-/debian_distributions4188 behaves like Debian distributions write endpoint4189 with valid container4190 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/4191 behaves like Debian distributions POST request4192 creates distribution4193 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4194 behaves like Debian distributions POST request4195 returns unauthorized4196 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4197 behaves like Debian distributions POST request4198 returns forbidden4199 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4200 behaves like Debian distributions POST request4201 returns forbidden4202 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4203 behaves like Debian distributions POST request4204 returns unauthorized4205 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4206 behaves like Debian distributions POST request4207 returns unauthorized4208 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/4209 behaves like Debian distributions POST request4210 creates distribution4211 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4212 behaves like Debian distributions POST request4213 returns forbidden4214 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4215 behaves like Debian distributions POST request4216 returns not_found4217 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4218 behaves like Debian distributions POST request4219 returns not_found4220 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4221 behaves like Debian distributions POST request4222 returns unauthorized4223 behaves like rejects Debian access with unknown container id4224 with an unknown container4225 as anonymous4226 behaves like Debian packages GET request4227 returns not_found4228 behaves like Debian API FIPS mode4229 when FIPS mode is enabled4230 behaves like returning response status4231 returns not_found4232 as authenticated user4233 behaves like Debian packages GET request4234 returns not_found4235 behaves like Debian API FIPS mode4236 when FIPS mode is enabled4237 behaves like returning response status4238 returns not_found4239 GET groups/:id/-/debian_distributions4240 behaves like Debian distributions read endpoint4241 with valid container4242 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/4243 behaves like Debian distributions GET request4244 returns success and expected body4245 behaves like Debian API FIPS mode4246 when FIPS mode is enabled4247 behaves like returning response status4248 returns not_found4249 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/4250 behaves like Debian distributions GET request4251 returns success and expected body4252 behaves like Debian API FIPS mode4253 when FIPS mode is enabled4254 behaves like returning response status4255 returns not_found4256 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/4257 behaves like Debian distributions GET request4258 returns success and expected body4259 behaves like Debian API FIPS mode4260 when FIPS mode is enabled4261 behaves like returning response status4262 returns not_found4263 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4264 behaves like Debian distributions GET request4265 returns unauthorized4266 behaves like Debian API FIPS mode4267 when FIPS mode is enabled4268 behaves like returning response status4269 returns not_found4270 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^\[{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/4271 behaves like Debian distributions GET request4272 returns success and expected body4273 behaves like Debian API FIPS mode4274 when FIPS mode is enabled4275 behaves like returning response status4276 returns not_found4277 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil4278 behaves like Debian distributions GET request4279 returns not_found4280 behaves like Debian API FIPS mode4281 when FIPS mode is enabled4282 behaves like returning response status4283 returns not_found4284 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4285 behaves like Debian distributions GET request4286 returns forbidden4287 behaves like Debian API FIPS mode4288 when FIPS mode is enabled4289 behaves like returning response status4290 returns not_found4291 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4292 behaves like Debian distributions GET request4293 returns not_found4294 behaves like Debian API FIPS mode4295 when FIPS mode is enabled4296 behaves like returning response status4297 returns not_found4298 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4299 behaves like Debian distributions GET request4300 returns not_found4301 behaves like Debian API FIPS mode4302 when FIPS mode is enabled4303 behaves like returning response status4304 returns not_found4305 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4306 behaves like Debian distributions GET request4307 returns unauthorized4308 behaves like Debian API FIPS mode4309 when FIPS mode is enabled4310 behaves like returning response status4311 returns not_found4312 behaves like rejects Debian access with unknown container id4313 with an unknown container4314 as anonymous4315 behaves like Debian packages GET request4316 returns not_found4317 behaves like Debian API FIPS mode4318 when FIPS mode is enabled4319 behaves like returning response status4320 returns not_found4321 as authenticated user4322 behaves like Debian packages GET request4323 returns not_found4324 behaves like Debian API FIPS mode4325 when FIPS mode is enabled4326 behaves like returning response status4327 returns not_found4328 GET groups/:id/-/debian_distributions/:codename4329 behaves like Debian distributions read endpoint4330 with valid container4331 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/4332 behaves like Debian distributions GET request4333 returns success and expected body4334 behaves like Debian API FIPS mode4335 when FIPS mode is enabled4336 behaves like returning response status4337 returns not_found4338 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/4339 behaves like Debian distributions GET request4340 returns success and expected body4341 behaves like Debian API FIPS mode4342 when FIPS mode is enabled4343 behaves like returning response status4344 returns not_found4345 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/4346 behaves like Debian distributions GET request4347 returns success and expected body4348 behaves like Debian API FIPS mode4349 when FIPS mode is enabled4350 behaves like returning response status4351 returns not_found4352 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4353 behaves like Debian distributions GET request4354 returns unauthorized4355 behaves like Debian API FIPS mode4356 when FIPS mode is enabled4357 behaves like returning response status4358 returns not_found4359 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"components":\["existing-component"\],.*"architectures":\["all","existing-arch"\]/4360 behaves like Debian distributions GET request4361 returns success and expected body4362 behaves like Debian API FIPS mode4363 when FIPS mode is enabled4364 behaves like returning response status4365 returns not_found4366 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil4367 behaves like Debian distributions GET request4368 returns not_found4369 behaves like Debian API FIPS mode4370 when FIPS mode is enabled4371 behaves like returning response status4372 returns not_found4373 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4374 behaves like Debian distributions GET request4375 returns forbidden4376 behaves like Debian API FIPS mode4377 when FIPS mode is enabled4378 behaves like returning response status4379 returns not_found4380 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4381 behaves like Debian distributions GET request4382 returns not_found4383 behaves like Debian API FIPS mode4384 when FIPS mode is enabled4385 behaves like returning response status4386 returns not_found4387 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4388 behaves like Debian distributions GET request4389 returns not_found4390 behaves like Debian API FIPS mode4391 when FIPS mode is enabled4392 behaves like returning response status4393 returns not_found4394 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4395 behaves like Debian distributions GET request4396 returns unauthorized4397 behaves like Debian API FIPS mode4398 when FIPS mode is enabled4399 behaves like returning response status4400 returns not_found4401 behaves like rejects Debian access with unknown container id4402 with an unknown container4403 as anonymous4404 behaves like Debian packages GET request4405 returns not_found4406 behaves like Debian API FIPS mode4407 when FIPS mode is enabled4408 behaves like returning response status4409 returns not_found4410 as authenticated user4411 behaves like Debian packages GET request4412 returns not_found4413 behaves like Debian API FIPS mode4414 when FIPS mode is enabled4415 behaves like returning response status4416 returns not_found4417 GET groups/:id/-/debian_distributions/:codename/key.asc4418 behaves like Debian distributions read endpoint4419 with valid container4420 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/4421 behaves like Debian distributions GET request4422 returns success and expected body4423 behaves like Debian API FIPS mode4424 when FIPS mode is enabled4425 behaves like returning response status4426 returns not_found4427 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/4428 behaves like Debian distributions GET request4429 returns success and expected body4430 behaves like Debian API FIPS mode4431 when FIPS mode is enabled4432 behaves like returning response status4433 returns not_found4434 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/4435 behaves like Debian distributions GET request4436 returns success and expected body4437 behaves like Debian API FIPS mode4438 when FIPS mode is enabled4439 behaves like returning response status4440 returns not_found4441 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4442 behaves like Debian distributions GET request4443 returns unauthorized4444 behaves like Debian API FIPS mode4445 when FIPS mode is enabled4446 behaves like returning response status4447 returns not_found4448 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/4449 behaves like Debian distributions GET request4450 returns success and expected body4451 behaves like Debian API FIPS mode4452 when FIPS mode is enabled4453 behaves like returning response status4454 returns not_found4455 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil4456 behaves like Debian distributions GET request4457 returns not_found4458 behaves like Debian API FIPS mode4459 when FIPS mode is enabled4460 behaves like returning response status4461 returns not_found4462 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4463 behaves like Debian distributions GET request4464 returns forbidden4465 behaves like Debian API FIPS mode4466 when FIPS mode is enabled4467 behaves like returning response status4468 returns not_found4469 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4470 behaves like Debian distributions GET request4471 returns not_found4472 behaves like Debian API FIPS mode4473 when FIPS mode is enabled4474 behaves like returning response status4475 returns not_found4476 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4477 behaves like Debian distributions GET request4478 returns not_found4479 behaves like Debian API FIPS mode4480 when FIPS mode is enabled4481 behaves like returning response status4482 returns not_found4483 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4484 behaves like Debian distributions GET request4485 returns unauthorized4486 behaves like Debian API FIPS mode4487 when FIPS mode is enabled4488 behaves like returning response status4489 returns not_found4490 behaves like rejects Debian access with unknown container id4491 with an unknown container4492 as anonymous4493 behaves like Debian packages GET request4494 returns not_found4495 behaves like Debian API FIPS mode4496 when FIPS mode is enabled4497 behaves like returning response status4498 returns not_found4499 as authenticated user4500 behaves like Debian packages GET request4501 returns not_found4502 behaves like Debian API FIPS mode4503 when FIPS mode is enabled4504 behaves like returning response status4505 returns not_found4506 PUT groups/:id/-/debian_distributions/:codename4507 behaves like Debian distributions write endpoint4508 with valid container4509 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/4510 behaves like Debian distributions PUT request4511 updates distribution4512 behaves like Debian API FIPS mode4513 when FIPS mode is enabled4514 behaves like returning response status4515 returns not_found4516 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4517 behaves like Debian distributions PUT request4518 returns unauthorized4519 behaves like Debian API FIPS mode4520 when FIPS mode is enabled4521 behaves like returning response status4522 returns not_found4523 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4524 behaves like Debian distributions PUT request4525 returns forbidden4526 behaves like Debian API FIPS mode4527 when FIPS mode is enabled4528 behaves like returning response status4529 returns not_found4530 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4531 behaves like Debian distributions PUT request4532 returns forbidden4533 behaves like Debian API FIPS mode4534 when FIPS mode is enabled4535 behaves like returning response status4536 returns not_found4537 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4538 behaves like Debian distributions PUT request4539 returns unauthorized4540 behaves like Debian API FIPS mode4541 when FIPS mode is enabled4542 behaves like returning response status4543 returns not_found4544 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4545 behaves like Debian distributions PUT request4546 returns unauthorized4547 behaves like Debian API FIPS mode4548 when FIPS mode is enabled4549 behaves like returning response status4550 returns not_found4551 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/4552 behaves like Debian distributions PUT request4553 updates distribution4554 behaves like Debian API FIPS mode4555 when FIPS mode is enabled4556 behaves like returning response status4557 returns not_found4558 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4559 behaves like Debian distributions PUT request4560 returns forbidden4561 behaves like Debian API FIPS mode4562 when FIPS mode is enabled4563 behaves like returning response status4564 returns not_found4565 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4566 behaves like Debian distributions PUT request4567 returns not_found4568 behaves like Debian API FIPS mode4569 when FIPS mode is enabled4570 behaves like returning response status4571 returns not_found4572 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4573 behaves like Debian distributions PUT request4574 returns not_found4575 behaves like Debian API FIPS mode4576 when FIPS mode is enabled4577 behaves like returning response status4578 returns not_found4579 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4580 behaves like Debian distributions PUT request4581 returns unauthorized4582 behaves like Debian API FIPS mode4583 when FIPS mode is enabled4584 behaves like returning response status4585 returns not_found4586 behaves like rejects Debian access with unknown container id4587 with an unknown container4588 as anonymous4589 behaves like Debian packages GET request4590 returns not_found4591 behaves like Debian API FIPS mode4592 when FIPS mode is enabled4593 behaves like returning response status4594 returns not_found4595 as authenticated user4596 behaves like Debian packages GET request4597 returns not_found4598 behaves like Debian API FIPS mode4599 when FIPS mode is enabled4600 behaves like returning response status4601 returns not_found4602 DELETE groups/:id/-/debian_distributions/:codename4603 behaves like Debian distributions maintainer write endpoint4604 with valid container4605 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/4606 behaves like Debian distributions DELETE request4607 updates distribution4608 behaves like Debian API FIPS mode4609 when FIPS mode is enabled4610 behaves like returning response status4611 returns not_found4612 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4613 behaves like Debian distributions DELETE request4614 returns unauthorized4615 behaves like Debian API FIPS mode4616 when FIPS mode is enabled4617 behaves like returning response status4618 returns not_found4619 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4620 behaves like Debian distributions DELETE request4621 returns forbidden4622 behaves like Debian API FIPS mode4623 when FIPS mode is enabled4624 behaves like returning response status4625 returns not_found4626 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4627 behaves like Debian distributions DELETE request4628 returns forbidden4629 behaves like Debian API FIPS mode4630 when FIPS mode is enabled4631 behaves like returning response status4632 returns not_found4633 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4634 behaves like Debian distributions DELETE request4635 returns unauthorized4636 behaves like Debian API FIPS mode4637 when FIPS mode is enabled4638 behaves like returning response status4639 returns not_found4640 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4641 behaves like Debian distributions DELETE request4642 returns unauthorized4643 behaves like Debian API FIPS mode4644 when FIPS mode is enabled4645 behaves like returning response status4646 returns not_found4647 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/4648 behaves like Debian distributions DELETE request4649 updates distribution4650 behaves like Debian API FIPS mode4651 when FIPS mode is enabled4652 behaves like returning response status4653 returns not_found4654 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4655 behaves like Debian distributions DELETE request4656 returns forbidden4657 behaves like Debian API FIPS mode4658 when FIPS mode is enabled4659 behaves like returning response status4660 returns not_found4661 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4662 behaves like Debian distributions DELETE request4663 returns not_found4664 behaves like Debian API FIPS mode4665 when FIPS mode is enabled4666 behaves like returning response status4667 returns not_found4668 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4669 behaves like Debian distributions DELETE request4670 returns not_found4671 behaves like Debian API FIPS mode4672 when FIPS mode is enabled4673 behaves like returning response status4674 returns not_found4675 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4676 behaves like Debian distributions DELETE request4677 returns unauthorized4678 behaves like Debian API FIPS mode4679 when FIPS mode is enabled4680 behaves like returning response status4681 returns not_found4682 behaves like rejects Debian access with unknown container id4683 with an unknown container4684 as anonymous4685 behaves like Debian packages GET request4686 returns not_found4687 behaves like Debian API FIPS mode4688 when FIPS mode is enabled4689 behaves like returning response status4690 returns not_found4691 as authenticated user4692 behaves like Debian packages GET request4693 returns not_found4694 behaves like Debian API FIPS mode4695 when FIPS mode is enabled4696 behaves like returning response status4697 returns not_found4698GitlabSchema configurations4699 depth, complexity and recursion checking4700 unauthenticated recursive queries4701 a not-quite-recursive-enough introspective query4702 succeeds4703 failing queries4704 a recursive introspective query4705 fails due to recursion4706 a recursive non-introspective query4707 using `nodes` notation4708 behaves like fails due to recursion, complexity and depth4709 fails due to recursion, complexity and depth4710 using `edges -> node` notation4711 behaves like fails due to recursion, complexity and depth4712 fails due to recursion, complexity and depth4713 regular queries4714 behaves like imposing query limits4715 timeouts4716 when timeout is reached4717 shows an error4718 #max_complexity4719 when complexity is too high4720 shows an error4721 #max_depth4722 when query depth is too high4723 shows error4724 when query depth is within range4725 has no error4726 multiplexed queries4727 does not authenticate all queries4728 behaves like imposing query limits4729 timeouts4730 when timeout is reached4731 shows an error4732 #max_complexity4733 when complexity is too high4734 shows an error4735 #max_depth4736 when query depth is too high4737 shows error4738 when query depth is within range4739 has no error4740 behaves like query is too complex4741 fails all queries when only one of the queries is too complex4742 behaves like query is too complex4743 fails when all queries combined are too complex4744 authentication4745 authenticates all queries4746 when IntrospectionQuery4747 is not too complex nor recursive4748 logging4749 logs the query complexity and depth4750 logs using `format_message`4751 global id's4752 uses GlobalID to expose ids4753getting a package list for a project4754 behaves like group and project packages query4755 when user has access to the resource4756 returns packages successfully4757 deals with metadata4758 returns the count of the packages4759 behaves like a working graphql query4760 returns a successful response4761 when the user does not have access to the resource4762 returns nil4763 behaves like a working graphql query4764 returns a successful response4765 when the user is not authenticated4766 returns nil4767 behaves like a working graphql query4768 returns a successful response4769 sorting and pagination4770 CREATED_ASC4771 behaves like sorted paginated query4772 behaves like requires variables4773 shared example requires variables to be set4775 when sorting4776 sorts correctly4777 when paginating4778 paginates correctly4779 NAME_ASC4780 behaves like sorted paginated query4781 behaves like requires variables4782 shared example requires variables to be set4784 when sorting4785 sorts correctly4786 when paginating4787 paginates correctly4788 VERSION_ASC4789 behaves like sorted paginated query4790 behaves like requires variables4791 shared example requires variables to be set4793 when sorting4794 sorts correctly4795 when paginating4796 paginates correctly4797 TYPE_ASC4798 behaves like sorted paginated query4799 behaves like requires variables4800 shared example requires variables to be set4802 when sorting4803 sorts correctly4804 when paginating4805 paginates correctly4806 CREATED_DESC4807 behaves like sorted paginated query4808 behaves like requires variables4809 shared example requires variables to be set4811 when sorting4812 sorts correctly4813 when paginating4814 paginates correctly4815 NAME_DESC4816 behaves like sorted paginated query4817 behaves like requires variables4818 shared example requires variables to be set4820 when sorting4821 sorts correctly4822 when paginating4823 paginates correctly4824 VERSION_DESC4825 behaves like sorted paginated query4826 behaves like requires variables4827 shared example requires variables to be set4829 when sorting4830 sorts correctly4831 when paginating4832 paginates correctly4833 TYPE_DESC4834 behaves like sorted paginated query4835 behaves like requires variables4836 shared example requires variables to be set4838 when sorting4839 sorts correctly4840 when paginating4841 paginates correctly4842 with an invalid sort4843 throws an error4844 filtering4845 package_name4846 is expected to contain exactly {"name"=>"bab"}4847 package_type4848 is expected to contain exactly {"name"=>"dab"}4849 status4850 is expected to contain exactly {"name"=>"my/company/app/my-app"}4851 include_versionless4852 is expected to include {"name" => "my/company/app/my-app"}4853 when reading pipelines4854 loads the second page with pagination first correctly4855 loads the second page with pagination last correctly4856Internal Project Pages Access4857 Project should be internal4858 #internal?4859 is expected to be truthy4860 GET /projects/:id/pages_access4861 access depends on the level4862 pages_access_level: 0, with_user: "admin", expected_result: 4034863 correct return value4864 pages_access_level: 0, with_user: "owner", expected_result: 4034865 correct return value4866 pages_access_level: 0, with_user: "master", expected_result: 4034867 correct return value4868 pages_access_level: 0, with_user: "developer", expected_result: 4034869 correct return value4870 pages_access_level: 0, with_user: "reporter", expected_result: 4034871 correct return value4872 pages_access_level: 0, with_user: "guest", expected_result: 4034873 correct return value4874 pages_access_level: 0, with_user: "user", expected_result: 4034875 correct return value4876 pages_access_level: 0, with_user: nil, expected_result: 4044877 correct return value4878 pages_access_level: 30, with_user: "admin", expected_result: 2004879 correct return value4880 pages_access_level: 30, with_user: "owner", expected_result: 2004881 correct return value4882 pages_access_level: 30, with_user: "master", expected_result: 2004883 correct return value4884 pages_access_level: 30, with_user: "developer", expected_result: 2004885 correct return value4886 pages_access_level: 30, with_user: "reporter", expected_result: 2004887 correct return value4888 pages_access_level: 30, with_user: "guest", expected_result: 2004889 correct return value4890 pages_access_level: 30, with_user: "user", expected_result: 2004891 correct return value4892 pages_access_level: 30, with_user: nil, expected_result: 4044893 correct return value4894 pages_access_level: 20, with_user: "admin", expected_result: 2004895 correct return value4896 pages_access_level: 20, with_user: "owner", expected_result: 2004897 correct return value4898 pages_access_level: 20, with_user: "master", expected_result: 2004899 correct return value4900 pages_access_level: 20, with_user: "developer", expected_result: 2004901 correct return value4902 pages_access_level: 20, with_user: "reporter", expected_result: 2004903 correct return value4904 pages_access_level: 20, with_user: "guest", expected_result: 2004905 correct return value4906 pages_access_level: 20, with_user: "user", expected_result: 2004907 correct return value4908 pages_access_level: 20, with_user: nil, expected_result: 4044909 correct return value4910 pages_access_level: 10, with_user: "admin", expected_result: 2004911 correct return value4912 pages_access_level: 10, with_user: "owner", expected_result: 2004913 correct return value4914 pages_access_level: 10, with_user: "master", expected_result: 2004915 correct return value4916 pages_access_level: 10, with_user: "developer", expected_result: 2004917 correct return value4918 pages_access_level: 10, with_user: "reporter", expected_result: 2004919 correct return value4920 pages_access_level: 10, with_user: "guest", expected_result: 2004921 correct return value4922 pages_access_level: 10, with_user: "user", expected_result: 4034923 correct return value4924 pages_access_level: 10, with_user: nil, expected_result: 4044925 correct return value4926Projects::TreeController4927 GET show4928 valid branch, no path4929 is expected to respond with 2004930 valid branch, valid path4931 is expected to respond with 2004932 valid branch, invalid path4933 redirects4934 invalid branch, valid path4935 is expected to respond with 4044936 renamed default branch, valid file4937 is expected to redirect to "/namespace639/project775/-/tree/master/encoding/"4938 renamed default branch, invalid file4939 is expected to redirect to "/namespace640/project776/-/tree/master/invalid-path/"4940 valid empty branch, invalid path4941 redirects4942 valid empty branch4943 is expected to respond with 2004944 invalid SHA commit ID4945 is expected to respond with 4044946 valid SHA commit ID4947 is expected to respond with 2004948 valid SHA commit ID with path4949 is expected to respond with numeric status code found4950 GET show with whitespace in ref4951 does not call make a Gitaly request4952 GET show with blob path4953 redirect to blob4954 redirects4955 #create_dir4956 successful creation4957 redirects to the new directory4958 unsuccessful creation4959 does not allow overwriting of existing files4960Projects::SnippetsController4961 GET #index4962 fetches snippet counts via the snippet count service4963 behaves like paginated collection4964DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4965 renders a page number that is not ouf of range4966DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4967 redirects to last_page if page number is larger than number of pages4968DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4969 does not redirect to external sites when provided a host field4970 behaves like snippets sort order4971 when no sort param is provided4972 calls SnippetsFinder with updated_at sort option4973 when sort param is provided4974 calls SnippetsFinder with the given sort param4975 behaves like snippets views4976 when rendered4977DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4978DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4979DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4980 avoids N+1 database queries4981 when the project snippet is private4982 when anonymous4983DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4984 does not include the private snippet4985 when signed in as the author4986DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4987 renders the snippet4988 when signed in as a project member4989DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)4990 renders the snippet4991 POST #mark_as_spam4992 updates the snippet4993 GET #show4994 when the project snippet is private4995 when anonymous4996 responds with status 4044997 when signed in as the author4998 behaves like successful response4999 renders the snippet5000 when signed in as a project member5001 behaves like successful response5002 renders the snippet5003 when the project snippet does not exist5004 when anonymous5005 responds with status 4045006 when signed in5007 responds with status 4045008 when the project snippet is public5009 when attempting to access from a different project route5010 responds with status 4045011 GET #raw5012 when the project snippet is private5013 when anonymous5014 responds with status 4045015 when signed in as the author5016 behaves like successful response5017 renders the snippet5018 when signed in as a project member5019 behaves like successful response5020 renders the snippet5021 when the project snippet does not exist5022 when anonymous5023 responds with status 4045024 when signed in5025 responds with status 4045026 when the project snippet is public5027 when attempting to access from a different project route5028 responds with status 4045029 GET #show for embeddable content5030 when snippet is private5031 responds with status 4045032 when snippet is public5033 renders the blob from the repository5034 does not show the blobs expanded by default5035 when param expanded is set5036 shows all blobs expanded5037 when the project is private5038 when snippet is public5039 responds with status 4045040 GET #raw5041 when repository is empty5042 CRLF line ending5043 returns LF line endings by default5044 when line_ending parameter present5045 does not convert line endings5046 when repository is not empty5047 sends the blob5048 behaves like project cache control headers5049 when project is public5050 returns cache_control public header to true5051 when project is private5052 returns cache_control public header to true5053 when project is internal5054 returns cache_control public header to true5055 behaves like content disposition headers5056 sets content disposition to inline5057 when inline param is false5058 sets content disposition to attachment5059Admin::IntegrationsController5060 behaves like Integrations::Actions5061 GET #edit5062 assigns the integration5063 PUT #update5064 updates the integration with the provided params and redirects to the form5065 when sending a password field5066 updates the integration with the password and other params5067 when sending a blank password field5068 ignores the password field and saves the other params5069 #edit5070 asana5071 successfully displays the template5072 assembla5073 successfully displays the template5074 bamboo5075 successfully displays the template5076 bugzilla5077 successfully displays the template5078 buildkite5079 successfully displays the template5080 campfire5081 successfully displays the template5082 confluence5083 successfully displays the template5084 custom_issue_tracker5085 successfully displays the template5086 datadog5087 successfully displays the template5088 discord5089 successfully displays the template5090 drone_ci5091 successfully displays the template5092 emails_on_push5093 successfully displays the template5094 ewm5095 successfully displays the template5096 external_wiki5097 successfully displays the template5098 flowdock5099 successfully displays the template5100 github5101 successfully displays the template5102 gitlab_slack_application5103 successfully displays the template5104 hangouts_chat5105 successfully displays the template5106 harbor5107 successfully displays the template5108 irker5109 successfully displays the template5110 jenkins5111 successfully displays the template5112 jira5113 successfully displays the template5114 mattermost5115 successfully displays the template5116 mattermost_slash_commands5117 successfully displays the template5118 microsoft_teams5119 successfully displays the template5120 mock_ci5121 successfully displays the template5122 mock_monitoring5123 successfully displays the template5124 packagist5125 successfully displays the template5126 pipelines_email5127 successfully displays the template5128 pivotaltracker5129 successfully displays the template5130 prometheus5131 successfully displays the template5132 pumble5133 successfully displays the template5134 pushover5135 successfully displays the template5136 redmine5137 successfully displays the template5138 shimo5139 successfully displays the template5140 slack5141 successfully displays the template5142 slack_slash_commands5143 successfully displays the template5144 teamcity5145 successfully displays the template5146 unify_circuit5147 successfully displays the template5148 webex_teams5149 successfully displays the template5150 youtrack5151 successfully displays the template5152 zentao5153 successfully displays the template5154 when GitLab.com5155 returns 4045156 #update5157 valid params5158 updates the integration5159 calls to PropagateIntegrationWorker5160 invalid params5161 does not update the integration5162 does not call to PropagateIntegrationWorker5163 #reset5164 returns 200 OK5165 deletes the integration and all inheriting integrations5166API::UsageDataNonSqlMetrics5167 GET /usage_data/non_sql_metrics5168 with authentication5169 returns non sql metrics if user is admin5170 returns forbidden if user is not admin5171 without authentication5172 returns unauthorized5173 when feature_flag is disabled5174 returns not_found for admin5175 returns forbidden for non-admin5176Creating a Snippet5177 when the user does not have permission5178 does not create the Snippet5179 behaves like a mutation that returns top-level errors5180 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"5181 when user is not authorized in the project5182 does not create the snippet when the user is not authorized5183 when the user has permission5184 with PersonalSnippet5185 behaves like creates snippet5186 returns the created Snippet5187 when action is invalid5188 behaves like a mutation that returns errors in the response5189 is expected to contain exactly "Snippet actions have invalid data"5190 behaves like does not create snippet5191 does not create the Snippet5192 does not return Snippet5193 behaves like snippet edit usage data counters5194 when user is sessionless5195 does not track usage data actions5196 when user is not sessionless5197 tracks usage data actions5198 when mutation result raises an error5199 does not track usage data actions5200 behaves like a mutation which can mutate a spammable5201 #spam_params5202 passes spam params to the service constructor5203 with ProjectSnippet5204 behaves like creates snippet5205DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5206DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5207 returns the created Snippet5208 when action is invalid5209 behaves like a mutation that returns errors in the response5210 is expected to contain exactly "Snippet actions have invalid data"5211 behaves like does not create snippet5212 does not create the Snippet5213 does not return Snippet5214 behaves like snippet edit usage data counters5215 when user is sessionless5216DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5217DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5218 does not track usage data actions5219 when user is not sessionless5220DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5221DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5222 tracks usage data actions5223 when mutation result raises an error5224 does not track usage data actions5225 behaves like a mutation which can mutate a spammable5226 #spam_params5227DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5228DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5229 passes spam params to the service constructor5230 when the project path is invalid5231 behaves like a mutation that returns top-level errors5232 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"5233 when the feature is disabled5234 behaves like a mutation that returns top-level errors5235 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"5236 behaves like snippet edit usage data counters5237 when user is sessionless5238DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5239DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5240 does not track usage data actions5241 when user is not sessionless5242DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5243DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5244 tracks usage data actions5245 when mutation result raises an error5246 does not track usage data actions5247 when there are ActiveRecord validation errors5248 behaves like a mutation that returns errors in the response5249 is expected to contain exactly "Title can't be blank"5250 behaves like does not create snippet5251 does not create the Snippet5252 does not return Snippet5253 when there non ActiveRecord errors5254 behaves like a mutation that returns errors in the response5255 is expected to contain exactly "Repository Error creating the snippet - Invalid file name"5256 behaves like does not create snippet5257 does not create the Snippet5258 does not return Snippet5259 when there are uploaded files5260 behaves like expected files argument5261 is expected to receive new({:current_user=>#<User id:1789 @user1106>, :params=>hash_including(:files=>nil), :project=>nil, :spam_params=>an_instance_of(Spam::SpamParams)}) 1 time5262 behaves like expected files argument5263 is expected to receive new({:current_user=>#<User id:1789 @user1106>, :params=>hash_including(:files=>["foo", "bar"]), :project=>nil, :spam_params=>an_instance_of(Spam::SpamParams)}) 1 time5264 behaves like expected files argument5265 is expected to receive new({:current_user=>#<User id:1789 @user1106>, :params=>hash_including(:files=>["foo"]), :project=>nil, :spam_params=>an_instance_of(Spam::SpamParams)}) 1 time5266 when files has an invalid value5267 returns an error5268 behaves like has spam protection5269 #check_spam_action_response!5270 when the object is spam (DISALLOW)5271 and no CAPTCHA is available5272 behaves like disallow response5273 informs the client that the request was denied as spam5274 and a CAPTCHA is required5275 behaves like disallow response5276 informs the client that the request was denied as spam5277 when the object is not spam (CONDITIONAL ALLOW)5278 and no CAPTCHA is required5279 does not return a top-level error5280 and a CAPTCHA is required5281 informs the client that the request may be retried after solving the CAPTCHA5282API::Namespaces5283 GET /namespaces5284 when unauthenticated5285 returns authentication error5286 when authenticated as admin5287 returns correct attributes5288 admin: returns an array of all namespaces5289 admin: returns an array of matched namespaces5290 when authenticated as a regular user5291 returns correct attributes when user can admin group5292 returns correct attributes when user cannot admin group5293 user: returns an array of namespaces5294 admin: returns an array of matched namespaces5295 with owned_only param5296 returns only owned groups5297 GET /namespaces/:id5298 when unauthenticated5299 returns authentication error5300 returns authentication error5301 when authenticated as regular user5302 when requested namespace is not owned by user5303 when requesting group5304 returns not-found5305 when requesting personal namespace5306 returns not-found5307 when requested namespace is owned by user5308 behaves like namespace reader5309 when namespace exists5310 when requested by ID5311 when requesting group5312 behaves like can access namespace5313 returns namespace details5314 when requesting personal namespace5315 behaves like can access namespace5316 returns namespace details5317 when requesting project_namespace5318 returns not-found5319 when requested by path5320 when requesting group5321 behaves like can access namespace5322 returns namespace details5323 when requesting personal namespace5324 behaves like can access namespace5325 returns namespace details5326 when requesting project_namespace5327 returns not-found5328 when namespace doesn't exist5329 returns not-found5330 when authenticated as admin5331 when requested namespace is not owned by user5332 when requesting group5333 behaves like can access namespace5334 returns namespace details5335 when requesting personal namespace5336 behaves like can access namespace5337 returns namespace details5338 when requested namespace is owned by user5339 behaves like namespace reader5340 when namespace exists5341 when requested by ID5342 when requesting group5343 behaves like can access namespace5344 returns namespace details5345 when requesting personal namespace5346 behaves like can access namespace5347 returns namespace details5348 when requesting project_namespace5349 returns not-found5350 when requested by path5351 when requesting group5352 behaves like can access namespace5353 returns namespace details5354 when requesting personal namespace5355 behaves like can access namespace5356 returns namespace details5357 when requesting project_namespace5358 returns not-found5359 when namespace doesn't exist5360 returns not-found5361 GET /namespaces/:namespace/exists5362 when unauthenticated5363 returns authentication error5364 when requesting project_namespace5365 returns authentication error5366 when authenticated5367 returns JSON indicating the namespace exists and a suggestion5368 returns JSON indicating the namespace does not exist without a suggestion5369 checks the existence of a namespace in case-insensitive manner5370 checks the existence within the parent namespace only5371 ignores nested namespaces when checking for top-level namespace5372 ignores paths of groups present in other hierarchies when making suggestions5373 ignores top-level namespaces when checking with parent_id5374 ignores namespaces of other parent namespaces when checking with parent_id5375 behaves like rate limited endpoint5376 when rate limiter enabled5377 logs request and declines it when endpoint called more than the threshold5378 when rate limiter is disabled5379 does not log request and does not block the request5380 when requesting project_namespace5381 returns JSON indicating the namespace does not exist without a suggestion5382API::DeployKeys5383 GET /deploy_keys5384 when unauthenticated5385 returns authentication error5386 when authenticated as non-admin user5387 returns a 403 error5388 when authenticated as admin5389 returns all deploy keys5390 avoids N+1 database queries5391 when `public` parameter is `true`5392 only returns public deploy keys5393 projects_with_write_access5394 returns projects with write access5395 GET /projects/:id/deploy_keys5396 returns array of ssh keys5397 returns multiple deploy keys without N + 15398 GET /projects/:id/deploy_keys/:key_id5399 returns a single key5400 returns 404 Not Found with invalid ID5401 POST /projects/:id/deploy_keys5402 does not create an invalid ssh key5403 does not create a key without title5404 creates new ssh key5405 returns an existing ssh key when attempting to add a duplicate5406 joins an existing ssh key to a new project5407 accepts can_push parameter5408 PUT /projects/:id/deploy_keys/:key_id5409 with non-admin5410 does not update a public deploy key5411 with admin5412 public deploy key attached to project5413 updates the title of the deploy key5414 updates can_push of deploy_keys_project5415 private deploy key5416 updates the title of the deploy key5417 updates can_push of deploy_keys_project5418 invalid title5419 does not update the title of the deploy key5420 with admin as project maintainer5421 public deploy key attached to project5422 updates the title of the deploy key5423 updates can_push of deploy_keys_project5424 with maintainer5425 public deploy key attached to project5426 does not update the title of the deploy key5427 updates can_push of deploy_keys_project5428 DELETE /projects/:id/deploy_keys/:key_id5429 removes existing key from project5430 returns 404 Not Found with invalid ID5431 when the deploy key is public5432 does not delete the deploy key5433 when the deploy key is not public5434 when the deploy key is only used by this project5435 deletes the deploy key5436 when the deploy key is used by other projects5437 does not delete the deploy key5438 behaves like 412 response5439 for a modified ressource5440 returns 412 with a JSON error5441 for an unmodified ressource5442 returns 204 with an empty body5443 POST /projects/:id/deploy_keys/:key_id/enable5444 when the user can admin the project5445 enables the key5446 when authenticated as non-admin user5447 returns a 404 error5448Jira referenced paths5449 behaves like redirects to jira path5450 redirects to canonical path with legacy prefix5451 redirects to canonical path5452 contains @ before the first /5453 behaves like redirects to jira path5454 redirects to canonical path with legacy prefix5455 redirects to canonical path5456 including commit path5457 behaves like redirects to jira path5458 redirects to canonical path with legacy prefix5459 redirects to canonical path5460 including tree path5461 behaves like redirects to jira path5462 redirects to canonical path with legacy prefix5463 redirects to canonical path5464 malicious path5465 behaves like redirects to jira path5466 redirects to canonical path with legacy prefix5467 redirects to canonical path5468 regular paths with legacy prefix5469 jira_path: "/-/jira/group/group_project", redirect_path: "/group/group_project"5470 redirects to canonical path5471 jira_path: "/-/jira/group/group_project/commit/1234567", redirect_path: "/group/group_project/commit/1234567"5472 redirects to canonical path5473 jira_path: "/-/jira/group/group_project/tree/1234567", redirect_path: "/group/group_project/-/tree/1234567"5474 redirects to canonical path5475 when tree path has an @5476 does not do a redirect5477Projects::TagsController5478 token authentication5479 when public project5480 behaves like authenticates sessionless user for the request spec5481 index atom5482 when the 'private_token' param is populated with the personal access token5483 when valid token5484 when resource is public5485 authenticates user and returns response with ok status5486 when user with expired password5487 does not authenticate user and returns response with ok status5488 when the personal access token has no api scope5489 when resource is public5490 does not authenticate user and returns response with ok status5491 when invalid token5492 when resource is public5493 does not authenticate user and returns response with ok status5494 when the 'PRIVATE-TOKEN' header is populated with the personal access token5495 when valid token5496 when resource is public5497 authenticates user and returns response with ok status5498 when user with expired password5499 does not authenticate user and returns response with ok status5500 when the personal access token has no api scope5501 when resource is public5502 does not authenticate user and returns response with ok status5503 when invalid token5504 when resource is public5505 does not authenticate user and returns response with ok status5506 when the 'feed_token' param is populated with the feed token5507 when valid token5508 when resource is public5509 authenticates user and returns response with ok status5510 when user with expired password5511 does not authenticate user and returns response with ok status5512 when invalid token5513 when resource is public5514 does not authenticate user and returns response with ok status5515 when private project5516 behaves like authenticates sessionless user for the request spec5517 index atom5518 when the 'private_token' param is populated with the personal access token5519 when valid token5520 when resource is private5521 authenticates user and returns response with ok status5522 when user with expired password5523 does not return response with ok status5524 when password expiration is not applicable5525 when ldap user5526 authenticates user and returns response with ok status5527 when the personal access token has no api scope5528 when resource is private5529 does not return response with ok status5530 when invalid token5531 when resource is private5532 does not return response with ok status5533 when the 'PRIVATE-TOKEN' header is populated with the personal access token5534 when valid token5535 when resource is private5536 authenticates user and returns response with ok status5537 when user with expired password5538 does not return response with ok status5539 when password expiration is not applicable5540 when ldap user5541 authenticates user and returns response with ok status5542 when the personal access token has no api scope5543 when resource is private5544 does not return response with ok status5545 when invalid token5546 when resource is private5547 does not return response with ok status5548 when the 'feed_token' param is populated with the feed token5549 when valid token5550 when resource is private5551 authenticates user and returns response with ok status5552 when user with expired password5553 does not return response with ok status5554 when password expiration is not applicable5555 when ldap user5556 authenticates user and returns response with ok status5557 when invalid token5558 when resource is private5559 does not return response with ok status5560Projects::Registry::RepositoriesController5561 when user has access to registry5562 GET #index5563 behaves like renders a list of repositories5564 when root container repository exists5565 does not create root container repository5566 when root container repository is not created5567 when there are tags for this repository5568 creates a root container repository5569 behaves like renders 200 for html and 404 for json5570 successfully renders container repositories5571 returns 404 for request in json format5572 when there is a ContainerRegistry::Path::InvalidRegistryPathError5573 displays a connection error message5574 when there is a Faraday::Error5575 displays a connection error message5576 when there are no tags for this repository5577 does not ensure root container repository5578 behaves like renders 200 for html and 404 for json5579 successfully renders container repositories5580 returns 404 for request in json format5581 when there is a ContainerRegistry::Path::InvalidRegistryPathError5582 displays a connection error message5583 when there is a Faraday::Error5584 displays a connection error message5585 GET #show5586 behaves like renders a list of repositories5587 when root container repository exists5588 does not create root container repository5589 when root container repository is not created5590 when there are tags for this repository5591 creates a root container repository5592 behaves like renders 200 for html and 404 for json5593 successfully renders container repositories5594 returns 404 for request in json format5595 when there is a ContainerRegistry::Path::InvalidRegistryPathError5596 displays a connection error message5597 when there is a Faraday::Error5598 displays a connection error message5599 when there are no tags for this repository5600 does not ensure root container repository5601 behaves like renders 200 for html and 404 for json5602 successfully renders container repositories5603 returns 404 for request in json format5604 when there is a ContainerRegistry::Path::InvalidRegistryPathError5605 displays a connection error message5606 when there is a Faraday::Error5607 displays a connection error message5608 DELETE #destroy5609 when root container repository exists5610 schedules a job to delete a repository5611 tracks the event5612 when user does not have access to registry5613 GET #index5614 responds with 4045615 does not ensure root container repository5616Projects::BadgesController5617 #pipeline5618 behaves like a badge resource5619 format5620 renders the `flat` badge layout by default5621 when style param is set to `flat`5622 renders the `flat` badge layout5623 when style param is set to an invalid type5624 renders the `flat` (default) badge layout5625 when style param is set to `flat-square`5626 renders the `flat-square` badge layout5627 behaves like customization5628 when key_text param is used5629 sets custom key text5630 when key_width param is used5631 sets custom key width5632 behaves like when pipelines are public5633 behaves like renders badge irrespective of project access levels5634 when project is public5635 returns the pipeline badge to unauthenticated users5636 when project is restricted5637 returns the pipeline badge to guest users5638 behaves like when pipelines are not public5639 when project is public5640 returns 404 to unauthenticated users5641 when project is restricted to the user5642 defaults to project permissions5643 with ignore_skipped param5644 returns skipped badge if set to false5645 does not return skipped badge if set to true5646 #coverage5647 behaves like a badge resource5648 format5649 renders the `flat` badge layout by default5650 when style param is set to `flat`5651 renders the `flat` badge layout5652 when style param is set to an invalid type5653 renders the `flat` (default) badge layout5654 when style param is set to `flat-square`5655 renders the `flat-square` badge layout5656 behaves like customization5657 when key_text param is used5658 sets custom key text5659 when key_width param is used5660 sets custom key width5661 behaves like when pipelines are public5662 behaves like renders badge irrespective of project access levels5663 when project is public5664 returns the coverage badge to unauthenticated users5665 when project is restricted5666 returns the coverage badge to guest users5667 behaves like when pipelines are not public5668 when project is public5669 returns 404 to unauthenticated users5670 when project is restricted to the user5671 defaults to project permissions5672 #release5673 behaves like a badge resource5674 format5675 renders the `flat` badge layout by default5676 when style param is set to `flat`5677 renders the `flat` badge layout5678 when style param is set to an invalid type5679 renders the `flat` (default) badge layout5680 when style param is set to `flat-square`5681 renders the `flat-square` badge layout5682 behaves like customization5683 when key_text param is used5684 sets custom key text5685 when key_width param is used5686 sets custom key width5687 behaves like renders badge irrespective of project access levels5688 when project is public5689 returns the release badge to unauthenticated users5690 when project is restricted5691 returns the release badge to guest users5692conan package details5693DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5694DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5695 has the correct metadata5696DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5697DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5698 has the correct file metadata5699 behaves like a package detail5700 behaves like a working graphql query5701DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5702DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5703 returns a successful response5704 behaves like matching the package details schema5705DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5706DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5707 matches the JSON schema5708 with pipelines5709 behaves like a working graphql query5710DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5711DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5712 returns a successful response5713 behaves like matching the package details schema5714DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5715DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5716 matches the JSON schema5717 behaves like a package with files5718DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5719DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5720 has the right amount of files5721DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5722DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5723 has the basic package files data5724 with package files pending destruction5725DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5726DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5727 does not return them5728getting incident timeline events5729 returns the correct number of timeline events5730 returns the correct properties of the incident timeline events5731 behaves like a working graphql query5732 returns a successful response5733 when timelineEvent tags are linked5734 returns the set tags5735 behaves like a working graphql query5736 returns a successful response5737 when different timeline events are loaded5738 avoids N+1 queries5739 when filtering by id5740 returns a single timeline event5741 behaves like a working graphql query5742 returns a successful response5743sentry errors requests5744 getting a detailed sentry error5745 returns a successful response5746 when data is loading via reactive cache5747 is expected to return an empty error5748 when reactive cache returns data5749 is expected to return the frequency correctly5750 behaves like setting sentry error data5751 sets the sentry error data correctly5752 when user does not have permission5753 is expected to return an empty error5754 when sentry api returns an error5755 is expected to handle the error and return nil5756 getting an errors list5757 behaves like a working graphql query5758 returns a successful response5759 when data is loading via reactive cache5760 is expected to return nil5761 when reactive cache returns data5762 is expected to return an array of data5763 sets the pagination correctly5764 is expected to return the frequency correctly5765 behaves like setting sentry error data5766 sets the sentry error data correctly5767 when sentry api itself errors out5768 is expected to handle the error and return nil5769 getting a stack trace5770 behaves like a working graphql query5771 returns a successful response5772 when data is loading via reactive cache5773 is expected to return an empty error5774 when reactive cache returns data5775 behaves like setting stack trace error5776 sets the stack trace data correctly5777 sets the stack trace entry data correctly5778 when user does not have permission5779 is expected to return an empty error5780 when sentry api returns an error5781 is expected to handle the error and return nil5782Projects::GoogleCloud::ServiceAccountsController5783 GET index5784 when a public request is made5785 returns not found on GET request5786 returns not found on POST request5787 when unauthorized members make requests5788 returns not found on GET request5789 returns not found on POST request5790 when authorized members make requests5791 redirects on GET request5792 redirects on POST request5793 and user has successfully completed the google oauth2 flow5794 but the user does not have gcp projects5795 flashes error and redirects to google cloud configurations5796 user has three gcp_projects5797 returns success on GET5798 returns success on POST5799 but google returns client error5800 GET flashes error and redirects to -/google_cloud/configurations5801 POST flashes error and redirects to -/google_cloud/configurations5802 but gitlab instance is not configured for google oauth25803 returns forbidden5804 but feature flag is disabled5805 returns not found5806Update of an existing issue5807 the user is not allowed to update issue5808 behaves like a mutation that returns a top-level access error5809 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"5810 when user has permissions to update issue5811 updates the issue5812 when issue_type is updated5813 updates issue_type and work_item_type5814 setting labels5815 reset labels5816 resets labels5817 reset labels and add labels5818 returns error for mutually exclusive arguments5819 reset labels and remove labels5820 returns error for mutually exclusive arguments5821 with global label ids5822 resets labels5823 add and remove labels5824 returns correct labels5825 add labels5826 adds labels and keeps the title ordering5827Groups::VariablesController5828 GET #show5829 renders the variables as json5830 has only one variable5831 when the user is a maintainer5832 returns not found response5833 PATCH #update5834 with invalid new variable parameters5835 does not update the existing variable5836 does not create the new variable5837 returns a bad request response5838 with duplicate new variable parameters5839 does not update the existing variable5840 does not create the new variable5841 returns a bad request response5842 with valid new variable parameters5843 updates the existing variable5844 creates the new variable5845 returns a successful response5846 has all variables in response5847 with a deleted variable5848 destroys the variable5849 returns a successful response5850 has all variables in response5851 with missing variable5852 returns not found response5853 for variables of type file5854 creates new variable of type file5855 when the user is a maintainer5856 returns not found response5857 with external authorization enabled5858 GET #show5859 is successful5860 PATCH #update5861 is successful5862API::Admin::BatchedBackgroundMigrations5863 GET /admin/batched_background_migrations/:id5864 fetches the batched background migration5865 when the batched background migration does not exist5866 returns 4045867 when multiple database is enabled5868 uses the correct connection5869 when authenticated as a non-admin user5870 returns 4035871 when the database name does not exist5872 returns bad request5873 GET /admin/batched_background_migrations5874 when is an admin user5875 returns batched background migrations5876 when multiple database is enabled5877 when CI database is provided5878 uses CI database connection5879 returns CI database records5880 when the database name does not exist5881 returns bad request5882 when authenticated as a non-admin user5883 returns 4035884 PUT /admin/batched_background_migrations/:id/resume5885 pauses the batched background migration5886 when the batched background migration does not exist5887 returns 4045888 when the migration is not paused5889 returns 4225890 when multiple database is enabled5891 uses the correct connection5892 when the database name does not exist5893 returns bad request5894 when authenticated as a non-admin user5895 returns 4035896 PUT /admin/batched_background_migrations/:id/pause5897 pauses the batched background migration5898 when the batched background migration does not exist5899 returns 4045900 when the migration is not active5901 returns 4225902 when multiple database is enabled5903 uses the correct connection5904 when the database name does not exist5905 returns bad request5906 when authenticated as a non-admin user5907 returns 4035908API::Admin::Ci::Variables5909 GET /admin/ci/variables5910 returns instance-level variables for admins5911 does not return instance-level variables for regular users5912 does not return instance-level variables for unauthorized users5913 GET /admin/ci/variables/:key5914 returns instance-level variable details for admins5915 responds with 404 Not Found if requesting non-existing variable5916 does not return instance-level variable details for regular users5917 does not return instance-level variable details for unauthorized users5918 POST /admin/ci/variables5919 authorized user with proper permissions5920 creates variable for admins5921 masks the new value when logging5922 creates variable with optional attributes5923 does not allow to duplicate variable key5924 does not allow values above 10,000 characters5925 authorized user with invalid permissions5926 does not create variable5927 unauthorized user5928 does not create variable5929 PUT /admin/ci/variables/:key5930 authorized user with proper permissions5931 updates variable data5932 masks the new value when logging5933 responds with 404 Not Found if requesting non-existing variable5934 authorized user with invalid permissions5935 does not update variable5936 unauthorized user5937 does not update variable5938 DELETE /admin/ci/variables/:key5939 authorized user with proper permissions5940 deletes variable5941 responds with 404 Not Found if requesting non-existing variable5942 authorized user with invalid permissions5943 does not delete variable5944 unauthorized user5945 does not delete variable5946API::Ci::ResourceGroups5947 GET /projects/:id/resource_groups5948 returns all resource groups for this project5949 when user is reporter5950 returns forbidden5951 GET /projects/:id/resource_groups/:key5952 returns a resource group5953 when resource group key contains multiple dots5954 returns the resource group5955 when resource group key contains a slash5956 returns the resource group5957 when user is reporter5958 returns forbidden5959 when there is no corresponding resource group5960 returns not found5961 GET /projects/:id/resource_groups/:key/upcoming_jobs5962 returns upcoming jobs of resource group5963 when resource group key contains a slash5964 returns the resource group5965 when user is reporter5966 returns forbidden5967 when there is no corresponding resource group5968 returns not found5969 PUT /projects/:id/resource_groups/:key5970 changes the process mode of a resource group5971 with invalid parameter5972 returns bad request5973 when user is reporter5974 returns forbidden5975 when there is no corresponding resource group5976 returns not found5977Admin::Ci::VariablesController5978 GET #show5979 when signed in as admin5980 renders the variables as json5981 has only one variable5982 when signed in as regular user5983 returns 4045984 PATCH #update5985 when signed in as admin5986 with invalid new variable parameters5987 does not update the existing variable5988 does not create the new variable5989 returns a bad request response5990 with duplicate new variable parameters5991 does not update the existing variable5992 does not create the new variable5993 returns a bad request response5994 with valid new variable parameters5995 updates the existing variable5996 creates the new variable5997 returns a successful response5998 has all variables in response5999 with a deleted variable6000 destroys the variable6001 returns a successful response6002 has all variables in response6003 with missing variable6004 returns not found response6005 for variables of type file6006 creates new variable of type file6007 when signed in as regular user6008 returns 4046009Requests on a read-only node6010 when db is read-only6011 behaves like graphql on a read-only GitLab instance6012 mutations6013 disallows the query6014 does not destroy the Note6015 read-only queries6016DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6017DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6018 allows the query6019RunnersRegistrationTokenReset6020 applied to project6021 resets runner registration token6022 when unauthorized6023 when not a project member6024 behaves like unauthorized6025 returns an error6026 with a non-admin project member6027 behaves like unauthorized6028 returns an error6029 when malformed id is provided6030 returns errors6031 applied to group6032 resets runner registration token6033 when unauthorized6034 when not a group member6035 behaves like unauthorized6036 returns an error6037 with a non-admin group member6038 behaves like unauthorized6039 returns an error6040 when malformed id is provided6041 returns errors6042 applied to instance6043 resets runner registration token6044 when unauthorized6045 behaves like unauthorized6046 returns an error6047 when malformed id is provided6048 returns errors6049Projects::ErrorTrackingController6050 GET #index6051 html6052 renders index with 200 status code6053 with insufficient permissions6054 returns 4046055 with an anonymous user6056 redirects to sign-in page6057 format json6058 with no data6059 returns no data6060 with extra params6061 when service result is successful6062 returns a list of errors6063 behaves like sets the polling header6064 is expected to eq "1000"6065 without extra params6066 when service result is successful6067 returns a list of errors6068 when service result is erroneous6069 without http_status6070 returns 400 with message6071 with explicit http_status6072 returns http_status with message6073 GET #issue_details6074 format json6075 with no data6076 returns no data6077 behaves like sets the polling header6078 is expected to eq "1000"6079 when service result is successful6080 returns an error6081 behaves like sets the polling header6082 is expected to eq "1000"6083 when service result is erroneous6084 without http_status6085 returns 400 with message6086 with explicit http_status6087 returns http_status with message6088 PUT #update6089 format json6090 when user is a reporter6091 returns 404 error6092 when update result is successful6093 returns a success6094 when update result is erroneous6095 returns 400 with message6096Admin::ImpersonationsController6097 DELETE destroy6098 when not signed in6099 redirects to the sign in page6100 when signed in6101 when not impersonating6102 responds with status 4046103 doesn't sign us in6104 when impersonating6105 when the impersonator is not admin (anymore)6106 responds with status 4046107 doesn't sign us in as the impersonator6108 when the impersonator is admin6109 when the impersonator is blocked6110 responds with status 4046111 doesn't sign us in as the impersonator6112 when the impersonator is not blocked6113 behaves like successfully stops impersonating6114 redirects to the impersonated user's page6115 signs us in as the impersonator6116 clears token session keys6117 and the user has a temporary oauth e-mail address6118 behaves like successfully stops impersonating6119 redirects to the impersonated user's page6120 signs us in as the impersonator6121 clears token session keys6122Milestones through GroupQuery6123 Get list of milestones from a group6124 when the request is correct6125 returns milestones successfully6126 behaves like a working graphql query6127 returns a successful response6128 when filtering by timeframe6129 fetches milestones between start_date and due_date6130 fetches milestones between timeframe start and end arguments6131 when filtering by state6132 returns milestones with given state6133 when including milestones from decendants6134 when including decendants6135 returns milestones also from subgroups and subprojects visible to user6136 when including ancestors6137 returns milestones from ancestor groups6138 ensures each field returns the correct value6139 returns correct values for scalar fields6140 milestone statistics6141 returns the correct milestone statistics6142Groups::SharedProjectsController6143 GET #index6144 returns only projects shared with the group6145 allows filtering shared projects6146 allows sorting projects6147 does not include archived projects6148Groups::Settings::ApplicationsController6149 sets `oauth_applications_created` session key to `true`6150 GET #show6151 renders template6152 when application is viewed after being created6153 sets `@created` instance variable to `true`6154 when application is reviewed6155 sets `@created` instance variable to `false`6156API::UserCounts6157 GET /user_counts6158 when unauthenticated6159 returns authentication error6160 when authenticated6161 returns assigned issue counts for current_user6162 returns pending todo counts for current_user6163 merge requests6164 returns assigned MR counts for current user6165 updates the mr count when a new mr is assigned6166ChaosController6167 #leakmem6168 calls synchronously6169 call synchronously with params6170 calls asynchronously6171 #cpu_spin6172 calls synchronously6173 calls synchronously with params6174 calls asynchronously6175 #db_spin6176 calls synchronously6177 calls synchronously with params6178 calls asynchronously6179 #sleep6180 calls synchronously6181 calls synchronously with params6182 calls asynchronously6183 #kill6184 calls synchronously6185 calls asynchronously6186 #quit6187 calls synchronously6188 calls asynchronously6189 #gc6190 runs a full GC on the current web worker6191Admin::DevOpsReportController6192 show_adoption?6193 is always false6194 GET #show6195 as admin6196 responds with success6197 behaves like tracking unique visits6198 tracks unique visit if the format is HTML6199 tracks unique visit if DNT is not enabled6200 does not track unique visit if DNT is enabled6201 does not track unique visit if the format is JSON6202 behaves like Snowplow event tracking with RedisHLL context6203 behaves like Snowplow event tracking6204 is not emitted if FF is disabled6205 is emitted6206 as normal user6207 responds with 4046208Query.project(fullPath).pipelines.job(id)6209 scalar fields6210DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6211DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6212DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6213 retrieves scalar fields6214 when fetching by name6215DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6216DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6217DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6218 retrieves scalar fields6219 .detailedStatus6220 retrieves detailed status6221 .stage6222 returns appropriate data6223OAuth tokens6224 Resource Owner Password Credentials6225 when user has 2FA enabled6226 does not create an access token6227 when 2FA enforced6228 when grace period expired6229 does not create an access token6230 when grace period is not expired6231 creates an access token6232 when user does not have 2FA enabled6233 when no client credentials provided6234 creates an access token6235 when client credentials provided6236 with valid credentials6237 creates an access token6238 with invalid credentials6239 does not create an access token (PENDING: Enable this example after https://github.com/doorkeeper-gem/doorkeeper/pull/1488 is merged and released)6240 when user is blocked6241 is expected to respond with numeric status code bad_request6242 when user is ldap_blocked6243 is expected to respond with numeric status code bad_request6244 when user account is not confirmed6245 is expected to respond with numeric status code bad_request6246CiJobTokenScopeAddProject6247 when unauthorized6248 when not a maintainer6249 has graphql errors6250 when authorized6251 adds the target project to the job token scope6252 when invalid target project is provided6253 has mutation errors6254Projects::ErrorTracking::StackTracesController6255 GET #index6256 when awaiting data6257 responds with no data6258 behaves like sets the polling header6259 is expected to eq "1000"6260 when service result is successful6261 highlights stack trace source code6262 behaves like sets the polling header6263 is expected to eq "1000"6264 when service result is erroneous6265 without http_status6266 responds with bad request6267 with explicit http_status6268 responds with custom http status6269Admin::HookLogsController6270 # order random6271 behaves like WebHooks::HookLogActions6272 GET #show6273 renders a 200 if the hook exists6274 renders a 404 if the hook does not exist6275 POST #retry6276 executes the hook and redirects to the service form6277 renders a 404 if the hook does not exist6278Admin::ApplicationSettings::AppearancesController6279 POST #create6280 creates appearance with footer and header message6281 when enabling header and footer in email6282 creates appearance with enabled flag6283 PUT #update6284 updates appearance with footer and header message6285 when enabling header and footer in email6286 updates appearance with enabled flag6287Getting Ci Cd Setting6288 without permissions6289 is expected to equal nil6290 behaves like a working graphql query6291 returns a successful response6292 with project permissions6293 fetches the settings data6294 behaves like a working graphql query6295 returns a successful response6296getting a detailed sentry error6297 behaves like a working graphql query6298 returns a successful response6299 when data is loading via reactive cache6300 is expected to return an empty error6301 reactive cache returns data6302 is expected to return a valid error6303 is expected to return the frequency correctly6304ContinueParams6305 returns an empty hash if params are not present6306 cleans up any params that are not allowed6307 does not allow cross host redirection6308 allows redirecting to a path with querystring6309Projects::UsageQuotasController6310 GET #index6311 when user does not have read_usage_quotas permission6312 renders not_found6313 when user has read_usage_quotas permission6314 renders index with 200 status code6315Admin::IdentitiesController6316 GET #index6317 when the user has no identities6318 shows no identities6319 when the user has identities6320 shows identities6321 UPDATE identity6322 repairs ldap blocks6323 DELETE identity6324 repairs ldap blocks6325Import::UrlController6326 POST #validate6327 reports success when service reports success status6328 exposes error message when service reports error6329 with an anonymous user6330 redirects to sign-in page6331ConfirmEmailWarning6332 confirm email flash warning6333 when not signed in6334 is expected not to set confirm warning for "user2059@example.org"6335 when signed in6336 with a confirmed user6337 is expected not to set confirm warning for "user2060@example.org"6338 with an unconfirmed user6339 when executing a json request6340 is expected not to set confirm warning for "user2061@example.org"6341 when executing a post request6342 is expected not to set confirm warning for "user2062@example.org"6343 when executing a get request6344 with an unconfirmed email address present6345 is expected to set confirm warning for "unconfirmed@gitlab.com"6346 without an unconfirmed email address present6347 is expected to set confirm warning for "user2064@example.org"6348JobCancel6349 returns an error if the user is not allowed to cancel the job6350 cancels a job6351JiraConnect::InstallationsController6352 GET /-/jira_connect/installations6353 without JWT6354 returns 4036355 with valid JWT6356 returns status ok6357 returns the installation as json6358 with instance_url6359 returns the installation as json6360 PUT /-/jira_connect/installations6361 without JWT6362 returns 4036363 with valid JWT6364 returns 2006365 updates the instance_url6366 invalid URL6367 returns 422 and errors6368Query.project(fullPath).pipelines.jobs.artifacts6369 returns the fields for the artifacts6370Query.project.jobs6371 does not generate N+1 queries6372Projects::Environments::SampleMetricsController6373 GET #query6374 when the file is not found6375 returns a 4046376 when the sample data is found6377 returns JSON with a message and a 200 status code6378Projects::Packages::PackageFilesController6379 # order random6380 GET download6381 sends the package file6382 behaves like bumping the package last downloaded at field6383 bumps last_downloaded_at6384Setting an issue as locked6385 when the user is not allowed to update the issue6386 behaves like a mutation that returns a top-level access error6387 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"6388 when user is allowed to update the issue6389 updates the issue locked status6390Import::GithubGroupsController6391 # order random6392 GET status6393 when OAuth config is missing6394 returns missing config error6395 when OAuth config present6396 fetches organizations6397 with pagination6398 when no page is specified6399 requests first page6400 when page is specified6401 responds with organizations with specified page6402Project callouts6403 POST /-/users/project_callouts6404 with valid feature name and project6405 when callout entry does not exist6406 creates a callout entry with dismissed state6407 returns success6408 when callout entry already exists6409 returns success6410 with invalid feature name6411 returns bad request6412Profiles::KeysController6413 POST #create6414 creates a new key6415 with FIPS mode6416 creates a new key without MD5 fingerprint6417JwksController6418 Endpoints from the parent Doorkeeper::OpenidConnect::DiscoveryController6419 respond successfully6420 GET /-/jwks6421 returns signing keys used to sign CI_JOB_JWT6422 does not leak private key data6423getting Alert Management Alert Assignees6424 includes the correct metrics dashboard url6425Groups::PackagesController6426 GET #index6427 behaves like returning response status6428 returns ok6429 GET #show6430 behaves like returning response status6431 returns ok6432Oauth::TokensController6433 includes Two-factor enforcement concern6434Knapsack report was generated. Preview:6435{6436 "spec/requests/api/repositories_spec.rb": 269.81226320400003,6437 "spec/requests/api/commits_spec.rb": 176.90070793999996,6438 "spec/requests/api/discussions_spec.rb": 159.85931220999998,6439 "spec/requests/api/composer_packages_spec.rb": 95.92109885800005,6440 "spec/controllers/projects_controller_spec.rb": 79.70382156400001,6441 "spec/controllers/admin/clusters_controller_spec.rb": 63.75551920299995,6442 "spec/requests/api/ci/jobs_spec.rb": 47.323120434999964,6443 "spec/requests/api/terraform/state_spec.rb": 41.19515443200021,6444 "spec/controllers/projects/pipeline_schedules_controller_spec.rb": 38.547769114000175,6445 "spec/commands/metrics_server/metrics_server_spec.rb": 40.59138592499994,6446 "spec/requests/api/group_debian_distributions_spec.rb": 17.221746260999907,6447 "spec/requests/api/graphql/gitlab_schema_spec.rb": 38.58287097900006,6448 "spec/requests/api/graphql/project/packages_spec.rb": 14.504524384999968,6449 "spec/requests/api/pages/internal_access_spec.rb": 25.351357746000076,6450 "spec/controllers/projects/tree_controller_spec.rb": 24.275814716000014,6451 "spec/controllers/projects/snippets_controller_spec.rb": 20.557491788000107,6452 "spec/controllers/admin/integrations_controller_spec.rb": 11.55096107999998,6453 "spec/requests/api/usage_data_non_sql_metrics_spec.rb": 24.52326439300009,6454 "spec/requests/api/graphql/mutations/snippets/create_spec.rb": 12.186627297000086,6455 "spec/requests/api/namespaces_spec.rb": 8.152042896000012,6456 "spec/requests/api/deploy_keys_spec.rb": 7.147899462000169,6457 "spec/requests/jira_routing_spec.rb": 14.95518628900004,6458 "spec/requests/projects/tags_controller_spec.rb": 8.207779408000079,6459 "spec/controllers/projects/registry/repositories_controller_spec.rb": 6.491331429999946,6460 "spec/controllers/projects/badges_controller_spec.rb": 7.976479736999863,6461 "spec/requests/api/graphql/packages/conan_spec.rb": 8.602828929999987,6462 "spec/requests/api/graphql/project/incident_management/timeline_events_spec.rb": 6.159278097999959,6463 "spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb": 4.879419922000125,6464 "spec/requests/projects/google_cloud/service_accounts_controller_spec.rb": 8.265240058000018,6465 "spec/requests/api/graphql/mutations/issues/update_spec.rb": 6.325901740000063,6466 "spec/controllers/groups/variables_controller_spec.rb": 6.250302398000031,6467 "spec/requests/api/admin/batched_background_migrations_spec.rb": 5.0250872029998845,6468 "spec/requests/api/admin/ci/variables_spec.rb": 3.2146940949999134,6469 "spec/requests/api/ci/resource_groups_spec.rb": 3.6662834060000478,6470 "spec/controllers/admin/ci/variables_controller_spec.rb": 3.8526585679999243,6471 "spec/requests/api/graphql/read_only_spec.rb": 3.873824488000082,6472 "spec/requests/api/graphql/mutations/ci/runners_registration_token/reset_spec.rb": 4.15740080899991,6473 "spec/controllers/projects/error_tracking_controller_spec.rb": 2.983147363999933,6474 "spec/controllers/admin/impersonations_controller_spec.rb": 4.04906718899997,6475 "spec/requests/api/graphql/group/milestones_spec.rb": 4.508849699999928,6476 "spec/controllers/groups/shared_projects_controller_spec.rb": 4.866357373000028,6477 "spec/requests/groups/settings/applications_controller_spec.rb": 2.9622967889999927,6478 "spec/requests/api/user_counts_spec.rb": 2.5474307869999393,6479 "spec/controllers/chaos_controller_spec.rb": 1.0884326640000381,6480 "spec/controllers/admin/dev_ops_report_controller_spec.rb": 1.7798389619999853,6481 "spec/requests/api/graphql/ci/job_spec.rb": 4.181515992999948,6482 "spec/requests/api/oauth_tokens_spec.rb": 2.4919297290000486,6483 "spec/requests/api/graphql/mutations/ci/job_token_scope/add_project_spec.rb": 1.9831189449998874,6484 "spec/controllers/projects/error_tracking/stack_traces_controller_spec.rb": 1.4617731729999832,6485 "spec/requests/admin/hook_logs_controller_spec.rb": 1.2194902300000194,6486 "spec/controllers/admin/application_settings/appearances_controller_spec.rb": 1.1618645720000131,6487 "spec/requests/api/graphql/ci/ci_cd_setting_spec.rb": 2.10776265100003,6488 "spec/requests/api/graphql/project/error_tracking/sentry_detailed_error_request_spec.rb": 2.03752035399998,6489 "spec/controllers/concerns/continue_params_spec.rb": 0.7177864669999963,6490 "spec/controllers/projects/usage_quotas_controller_spec.rb": 2.1592727590000322,6491 "spec/controllers/admin/identities_controller_spec.rb": 1.580225819000134,6492 "spec/requests/import/url_controller_spec.rb": 0.7877224040000783,6493 "spec/controllers/concerns/confirm_email_warning_spec.rb": 2.278008856000042,6494 "spec/requests/api/graphql/mutations/ci/job_cancel_spec.rb": 1.6347272960001646,6495 "spec/requests/jira_connect/installations_controller_spec.rb": 1.2078541710000081,6496 "spec/requests/api/graphql/ci/job_artifacts_spec.rb": 1.4755190020000555,6497 "spec/requests/api/graphql/project/jobs_spec.rb": 1.6608901360000345,6498 "spec/controllers/projects/environments/sample_metrics_controller_spec.rb": 1.2568493989999752,6499 "spec/requests/projects/packages/package_files_controller_spec.rb": 0.9353180089999569,6500 "spec/requests/api/graphql/mutations/issues/set_locked_spec.rb": 1.451302521999878,6501 "spec/requests/import/github_groups_controller_spec.rb": 1.1038961239999026,6502 "spec/requests/users/project_callouts_spec.rb": 1.1302355939999416,6503 "spec/controllers/profiles/keys_controller_spec.rb": 0.6241373289999501,6504 "spec/requests/jwks_controller_spec.rb": 0.8191084830000364,6505 "spec/requests/api/graphql/project/alert_management/alert/todos_spec.rb": 1.272896368999909,6506 "spec/controllers/groups/packages_controller_spec.rb": 0.5296939930001372,6507 "spec/controllers/oauth/tokens_controller_spec.rb": 0.418431916000145076508}6509Knapsack global time execution for tests: 23m 04s6510Pending: (Failures listed here are expected and do not affect your suite's status)6511 1) ProjectsController#update hashed storage behaves like updating a project when only renaming a project path upgrades and move project to hashed storage when project was originally legacy6512 # No reason given6513 # ./spec/controllers/projects_controller_spec.rb:7206514 2) ProjectsController#update legacy storage behaves like updating a project when only renaming a project path doesnt change the disk_path when using hashed storage6515 # No reason given6516 # ./spec/controllers/projects_controller_spec.rb:7016517 3) API::Terraform::State GET /projects/:id/terraform/state/:name behaves like endpoint with unique user tracking with maintainer permissions behaves like tracking unique hll events tracks unique event6518 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example6519 # ./spec/support/shared_examples/controllers/unique_hll_events_examples.rb:96520 4) OAuth tokens Resource Owner Password Credentials when user does not have 2FA enabled when client credentials provided with invalid credentials does not create an access token6521 # Enable this example after https://github.com/doorkeeper-gem/doorkeeper/pull/1488 is merged and released6522 Failure/Error: expect(response).to have_gitlab_http_status(:unauthorized)6523 expected the response to have status code :unauthorized but it was 200. The response was: {"access_token":"7afc3c0383752102d34a0d0caf1db319793388acad46e11edeaf3c5f9677ec25","token_type":"Bearer","expires_in":7200,"refresh_token":"c3d9c033c9c63afbe1f508f4a63fc0b75632f2815bf3d40af7703f691e908696","scope":"api","created_at":1668430886}6524 # ./spec/requests/api/oauth_tokens_spec.rb:94:in `block (6 levels) in <top (required)>'6525 # ./spec/spec_helper.rb:412:in `block (3 levels) in <top (required)>'6526 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'6527 # ./spec/spec_helper.rb:404:in `block (2 levels) in <top (required)>'6528 # ./spec/spec_helper.rb:400:in `block (3 levels) in <top (required)>'6529 # ./lib/gitlab/application_context.rb:59:in `with_raw_context'6530 # ./spec/spec_helper.rb:400:in `block (2 levels) in <top (required)>'6531 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'6532 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'6533 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'6534 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'6535 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'6536 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'6537Finished in 23 minutes 8 seconds (files took 42.3 seconds to load)65382185 examples, 0 failures, 4 pending6539Randomized with seed 474016540[TEST PROF INFO] Time spent in factories: 11:53.495 (51.24% of total time)6541RSpec exited with 0.6542No examples to retry, congrats!6544Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy6545Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy6547Uploading artifacts...6548coverage/: found 5 matching files and directories 6549crystalball/: found 2 matching files and directories 6550deprecations/: found 8 matching files and directories 6551knapsack/: found 3 matching files and directories 6552rspec/: found 13 matching files and directories 6553WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 6554log/*.log: found 20 matching files and directories 6555WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3318206551/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com6556WARNING: Retrying... context=artifacts-uploader error=request redirected6557Uploading artifacts as "archive" to coordinator... 201 Created id=3318206551 responseStatus=201 Created token=s-g8uhx96558Uploading artifacts...6559rspec/junit_rspec.xml: found 1 matching files and directories 6560WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3318206551/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com6561WARNING: Retrying... context=artifacts-uploader error=request redirected6562Uploading artifacts as "junit" to coordinator... 201 Created id=3318206551 responseStatus=201 Created token=s-g8uhx96564Job succeeded