rspec integration pg12 1/12
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1 behaves like redirect metadata request2 redirects metadata request3 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok4 behaves like redirect metadata request5 redirects metadata request6 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden7 behaves like reject metadata request8 rejects the metadata request9 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok10 behaves like reject metadata request11 rejects the metadata request12 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden13 behaves like redirect metadata request14 redirects metadata request15 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok16 behaves like redirect metadata request17 redirects metadata request18 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden19 behaves like reject metadata request20 rejects the metadata request21 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok22 behaves like reject metadata request23 rejects the metadata request24 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected25 behaves like redirect metadata request26 redirects metadata request27 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected28 behaves like redirect metadata request29 redirects metadata request30 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden31 behaves like reject metadata request32 rejects the metadata request33 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found34 behaves like reject metadata request35 rejects the metadata request36 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok37 behaves like accept metadata request38 accepts the metadata request39 avoids N+1 database queries40 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok41 behaves like accept metadata request42 accepts the metadata request43 avoids N+1 database queries44 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok45 behaves like accept metadata request46 accepts the metadata request47 avoids N+1 database queries48 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok49 behaves like accept metadata request50 accepts the metadata request51Skipping ./spec/requests/api/npm_instance_packages_spec.rb[1:1:1:2:1:60:1:2] 'API::NpmInstancePackages GET /api/v4/packages/npm/*package_name behaves like handling get metadata requests with a user namespace behaves like handling all conditions auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.52 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)53 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok54 behaves like redirect metadata request55 redirects metadata request56 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok57 behaves like redirect metadata request58 redirects metadata request59 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok60 behaves like reject metadata request61 rejects the metadata request62 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok63 behaves like reject metadata request64 rejects the metadata request65 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok66 behaves like redirect metadata request67 redirects metadata request68 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok69 behaves like redirect metadata request70 redirects metadata request71 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok72 behaves like reject metadata request73 rejects the metadata request74 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok75 behaves like reject metadata request76 rejects the metadata request77 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected78 behaves like redirect metadata request79 redirects metadata request80 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected81 behaves like redirect metadata request82 redirects metadata request83 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found84 behaves like reject metadata request85 rejects the metadata request86 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found87 behaves like reject metadata request88 rejects the metadata request89 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok90 behaves like accept metadata request91 accepts the metadata request92 avoids N+1 database queries93 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok94 behaves like accept metadata request95 accepts the metadata request96 avoids N+1 database queries97 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok98 behaves like accept metadata request99 accepts the metadata request100 avoids N+1 database queries101 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok102 behaves like accept metadata request103 accepts the metadata request104 avoids N+1 database queries105 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok106 behaves like redirect metadata request107 redirects metadata request108 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok109 behaves like redirect metadata request110 redirects metadata request111 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok112 behaves like reject metadata request113 rejects the metadata request114 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok115 behaves like reject metadata request116 rejects the metadata request117 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok118 behaves like redirect metadata request119 redirects metadata request120 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok121 behaves like redirect metadata request122 redirects metadata request123 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok124 behaves like reject metadata request125 rejects the metadata request126 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok127 behaves like reject metadata request128 rejects the metadata request129 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected130 behaves like redirect metadata request131 redirects metadata request132 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected133 behaves like redirect metadata request134 redirects metadata request135 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found136 behaves like reject metadata request137 rejects the metadata request138 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found139 behaves like reject metadata request140 rejects the metadata request141 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden142 behaves like reject metadata request143 rejects the metadata request144 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok145 behaves like accept metadata request146 accepts the metadata request147 avoids N+1 database queries148 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden149 behaves like reject metadata request150 rejects the metadata request151 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok152 behaves like accept metadata request153 accepts the metadata request154 avoids N+1 database queries155 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden156 behaves like redirect metadata request157 redirects metadata request158 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok159 behaves like redirect metadata request160 redirects metadata request161 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden162 behaves like reject metadata request163 rejects the metadata request164 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok165 behaves like reject metadata request166 rejects the metadata request167 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden168 behaves like redirect metadata request169 redirects metadata request170 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok171 behaves like redirect metadata request172 redirects metadata request173 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden174 behaves like reject metadata request175 rejects the metadata request176 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok177 behaves like reject metadata request178 rejects the metadata request179 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected180 behaves like redirect metadata request181 redirects metadata request182 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected183 behaves like redirect metadata request184 redirects metadata request185 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden186 behaves like reject metadata request187 rejects the metadata request188 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found189 behaves like reject metadata request190 rejects the metadata request191 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok192 behaves like accept metadata request193 accepts the metadata request194 avoids N+1 database queries195 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok196 behaves like accept metadata request197 accepts the metadata request198 avoids N+1 database queries199 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok200 behaves like accept metadata request201 accepts the metadata request202 avoids N+1 database queries203 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok204 behaves like accept metadata request205 accepts the metadata request206 avoids N+1 database queries207 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok208 behaves like redirect metadata request209 redirects metadata request210 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok211 behaves like redirect metadata request212 redirects metadata request213 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok214 behaves like reject metadata request215 rejects the metadata request216 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok217 behaves like reject metadata request218 rejects the metadata request219 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok220 behaves like redirect metadata request221 redirects metadata request222 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok223 behaves like redirect metadata request224 redirects metadata request225 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok226 behaves like reject metadata request227 rejects the metadata request228 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok229 behaves like reject metadata request230 rejects the metadata request231 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected232 behaves like redirect metadata request233 redirects metadata request234 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected235 behaves like redirect metadata request236 redirects metadata request237 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found238 behaves like reject metadata request239 rejects the metadata request240 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found241 behaves like reject metadata request242 rejects the metadata request243 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok244 behaves like accept metadata request245 accepts the metadata request246 avoids N+1 database queries247 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok248 behaves like accept metadata request249 accepts the metadata request250 avoids N+1 database queries251 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok252 behaves like redirect metadata request253 redirects metadata request254 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok255 behaves like reject metadata request256 rejects the metadata request257 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok258 behaves like redirect metadata request259 redirects metadata request260 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok261 behaves like reject metadata request262 rejects the metadata request263 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected264 behaves like redirect metadata request265 redirects metadata request266 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found267 behaves like reject metadata request268 rejects the metadata request269 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok270 behaves like accept metadata request271 accepts the metadata request272 avoids N+1 database queries273 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok274 behaves like accept metadata request275 accepts the metadata request276 avoids N+1 database queries277 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok278 behaves like redirect metadata request279 redirects metadata request280 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok281 behaves like reject metadata request282 rejects the metadata request283 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok284 behaves like redirect metadata request285 redirects metadata request286 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok287 behaves like reject metadata request288 rejects the metadata request289 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected290 behaves like redirect metadata request291 redirects metadata request292 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found293 behaves like reject metadata request294 rejects the metadata request295 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok296 behaves like accept metadata request297 accepts the metadata request298 avoids N+1 database queries299 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok300 behaves like accept metadata request301 accepts the metadata request302 avoids N+1 database queries303 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok304 behaves like redirect metadata request305 redirects metadata request306 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok307 behaves like reject metadata request308 rejects the metadata request309 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok310 behaves like redirect metadata request311 redirects metadata request312 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok313 behaves like reject metadata request314 rejects the metadata request315 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected316 behaves like redirect metadata request317 redirects metadata request318 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found319 behaves like reject metadata request320 rejects the metadata request321 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok322 behaves like accept metadata request323 accepts the metadata request324 avoids N+1 database queries325 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok326 behaves like accept metadata request327 accepts the metadata request328 avoids N+1 database queries329 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok330 behaves like redirect metadata request331 redirects metadata request332 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok333 behaves like reject metadata request334 rejects the metadata request335 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok336 behaves like redirect metadata request337 redirects metadata request338 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok339 behaves like reject metadata request340 rejects the metadata request341 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected342 behaves like redirect metadata request343 redirects metadata request344 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found345 behaves like reject metadata request346 rejects the metadata request347 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok348 behaves like accept metadata request349 accepts the metadata request350 avoids N+1 database queries351 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok352 behaves like accept metadata request353 accepts the metadata request354 avoids N+1 database queries355 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok356 behaves like redirect metadata request357 redirects metadata request358 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok359 behaves like reject metadata request360 rejects the metadata request361 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok362 behaves like redirect metadata request363 redirects metadata request364 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok365 behaves like reject metadata request366 rejects the metadata request367 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected368 behaves like redirect metadata request369 redirects metadata request370 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found371 behaves like reject metadata request372 rejects the metadata request373 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok374 behaves like accept metadata request375 accepts the metadata request376 avoids N+1 database queries377 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok378 behaves like accept metadata request379 accepts the metadata request380 avoids N+1 database queries381 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok382 behaves like redirect metadata request383 redirects metadata request384 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok385 behaves like reject metadata request386 rejects the metadata request387 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok388 behaves like redirect metadata request389 redirects metadata request390 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok391 behaves like reject metadata request392 rejects the metadata request393 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected394 behaves like redirect metadata request395 redirects metadata request396 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found397 behaves like reject metadata request398 rejects the metadata request399 with a developer400 project path with a dot401 behaves like accept metadata request402 accepts the metadata request403 avoids N+1 database queries404 with a job token405 behaves like reject metadata request406 rejects the metadata request407 GET /api/v4/packages/npm/-/package/*package_name/dist-tags408 behaves like handling get dist tags requests409 with a group namespace410 behaves like handling all conditions411 with oauth token412 behaves like handling different package names, visibilities and user roles413 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok414 behaves like accept package tags request415 with valid package name416 returns a valid json response417 returns two package tags418 behaves like returning response status419 returns ok420 with invalid package name421 package_name: "%20", status: :bad_request422 behaves like returning response status423 returns bad_request424 package_name: nil, status: :not_found425 behaves like returning response status426 returns not_found427 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok428 behaves like accept package tags request429 with valid package name430 returns a valid json response431 returns two package tags432 behaves like returning response status433 returns ok434 with invalid package name435 package_name: "%20", status: :bad_request436 behaves like returning response status437 returns bad_request438 package_name: nil, status: :not_found439 behaves like returning response status440 returns not_found441 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok442 behaves like accept package tags request443 with valid package name444 returns a valid json response445 returns two package tags446 behaves like returning response status447 returns ok448 with invalid package name449 package_name: "%20", status: :bad_request450 behaves like returning response status451 returns bad_request452 package_name: nil, status: :not_found453 behaves like returning response status454 returns not_found455 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok456 behaves like reject package tags request457 behaves like returning response status458 returns not_found459 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok460 behaves like reject package tags request461 behaves like returning response status462 returns not_found463 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok464 behaves like reject package tags request465 behaves like returning response status466 returns not_found467 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok468 behaves like reject package tags request469 behaves like returning response status470 returns not_found471 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok472 behaves like reject package tags request473 behaves like returning response status474 returns not_found475 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok476 behaves like reject package tags request477 behaves like returning response status478 returns not_found479 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found480 behaves like reject package tags request481 behaves like returning response status482 returns not_found483 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found484 behaves like reject package tags request485 behaves like returning response status486 returns not_found487 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found488 behaves like reject package tags request489 behaves like returning response status490 returns not_found491 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found492 behaves like reject package tags request493 behaves like returning response status494 returns not_found495 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden496 behaves like reject package tags request497 behaves like returning response status498 returns forbidden499 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok500 behaves like accept package tags request501 with valid package name502 returns a valid json response503 returns two package tags504 behaves like returning response status505 returns ok506 with invalid package name507 package_name: "%20", status: :bad_request508 behaves like returning response status509 returns bad_request510 package_name: nil, status: :not_found511 behaves like returning response status512 returns not_found513 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found514 behaves like reject package tags request515 behaves like returning response status516 returns not_found517 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden518 behaves like reject package tags request519 behaves like returning response status520 returns not_found521 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok522 behaves like reject package tags request523 behaves like returning response status524 returns not_found525 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found526 behaves like reject package tags request527 behaves like returning response status528 returns not_found529 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden530 behaves like reject package tags request531 behaves like returning response status532 returns not_found533 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok534 behaves like reject package tags request535 behaves like returning response status536 returns not_found537 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found538 behaves like reject package tags request539 behaves like returning response status540 returns not_found541 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden542 behaves like reject package tags request543 behaves like returning response status544 returns not_found545 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found546 behaves like reject package tags request547 behaves like returning response status548 returns not_found549 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found550 behaves like reject package tags request551 behaves like returning response status552 returns not_found553 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok554 behaves like accept package tags request555 with valid package name556 returns a valid json response557 returns two package tags558 behaves like returning response status559 returns ok560 with invalid package name561 package_name: "%20", status: :bad_request562 behaves like returning response status563 returns bad_request564 package_name: nil, status: :not_found565 behaves like returning response status566 returns not_found567 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok568 behaves like accept package tags request569 with valid package name570 returns a valid json response571 returns two package tags572 behaves like returning response status573 returns ok574 with invalid package name575 package_name: "%20", status: :bad_request576 behaves like returning response status577 returns bad_request578 package_name: nil, status: :not_found579 behaves like returning response status580 returns not_found581 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found582 behaves like reject package tags request583 behaves like returning response status584 returns not_found585 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok586 behaves like reject package tags request587 behaves like returning response status588 returns not_found589 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok590 behaves like reject package tags request591 behaves like returning response status592 returns not_found593 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found594 behaves like reject package tags request595 behaves like returning response status596 returns not_found597 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok598 behaves like reject package tags request599 behaves like returning response status600 returns not_found601 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok602 behaves like reject package tags request603 behaves like returning response status604 returns not_found605 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found606 behaves like reject package tags request607 behaves like returning response status608 returns not_found609 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found610 behaves like reject package tags request611 behaves like returning response status612 returns not_found613 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found614 behaves like reject package tags request615 behaves like returning response status616 returns not_found617 with personal access token618 behaves like handling different package names, visibilities and user roles619 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok620 behaves like accept package tags request621 with valid package name622 returns a valid json response623 returns two package tags624 behaves like returning response status625 returns ok626 with invalid package name627 package_name: "%20", status: :bad_request628 behaves like returning response status629 returns bad_request630 package_name: nil, status: :not_found631 behaves like returning response status632 returns not_found633 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok634 behaves like accept package tags request635 with valid package name636 returns a valid json response637 returns two package tags638 behaves like returning response status639 returns ok640 with invalid package name641 package_name: "%20", status: :bad_request642 behaves like returning response status643 returns bad_request644 package_name: nil, status: :not_found645 behaves like returning response status646 returns not_found647 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok648 behaves like accept package tags request649 with valid package name650 returns a valid json response651 returns two package tags652 behaves like returning response status653 returns ok654 with invalid package name655 package_name: "%20", status: :bad_request656 behaves like returning response status657 returns bad_request658 package_name: nil, status: :not_found659 behaves like returning response status660 returns not_found661 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok662 behaves like reject package tags request663 behaves like returning response status664 returns not_found665 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok666 behaves like reject package tags request667 behaves like returning response status668 returns not_found669 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok670 behaves like reject package tags request671 behaves like returning response status672 returns not_found673 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok674 behaves like reject package tags request675 behaves like returning response status676 returns not_found677 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok678 behaves like reject package tags request679 behaves like returning response status680 returns not_found681 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok682 behaves like reject package tags request683 behaves like returning response status684 returns not_found685 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found686 behaves like reject package tags request687 behaves like returning response status688 returns not_found689 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found690 behaves like reject package tags request691 behaves like returning response status692 returns not_found693 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found694 behaves like reject package tags request695 behaves like returning response status696 returns not_found697 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found698 behaves like reject package tags request699 behaves like returning response status700 returns not_found701 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden702 behaves like reject package tags request703 behaves like returning response status704 returns forbidden705 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok706 behaves like accept package tags request707 with valid package name708 returns a valid json response709 returns two package tags710 behaves like returning response status711 returns ok712 with invalid package name713 package_name: "%20", status: :bad_request714 behaves like returning response status715 returns bad_request716 package_name: nil, status: :not_found717 behaves like returning response status718 returns not_found719 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found720 behaves like reject package tags request721 behaves like returning response status722 returns not_found723 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden724 behaves like reject package tags request725 behaves like returning response status726 returns not_found727 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok728 behaves like reject package tags request729 behaves like returning response status730 returns not_found731 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found732 behaves like reject package tags request733 behaves like returning response status734 returns not_found735 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden736 behaves like reject package tags request737 behaves like returning response status738 returns not_found739 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok740 behaves like reject package tags request741 behaves like returning response status742 returns not_found743 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found744 behaves like reject package tags request745 behaves like returning response status746 returns not_found747 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden748 behaves like reject package tags request749 behaves like returning response status750 returns not_found751 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found752 behaves like reject package tags request753 behaves like returning response status754 returns not_found755 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found756 behaves like reject package tags request757 behaves like returning response status758 returns not_found759 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok760 behaves like accept package tags request761 with valid package name762 returns a valid json response763 returns two package tags764 behaves like returning response status765 returns ok766 with invalid package name767 package_name: "%20", status: :bad_request768 behaves like returning response status769 returns bad_request770 package_name: nil, status: :not_found771 behaves like returning response status772 returns not_found773 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok774 behaves like accept package tags request775 with valid package name776 returns a valid json response777 returns two package tags778 behaves like returning response status779 returns ok780 with invalid package name781 package_name: "%20", status: :bad_request782 behaves like returning response status783 returns bad_request784 package_name: nil, status: :not_found785 behaves like returning response status786 returns not_found787 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found788 behaves like reject package tags request789 behaves like returning response status790 returns not_found791 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok792 behaves like reject package tags request793 behaves like returning response status794 returns not_found795 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok796 behaves like reject package tags request797 behaves like returning response status798 returns not_found799 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found800 behaves like reject package tags request801 behaves like returning response status802 returns not_found803 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok804 behaves like reject package tags request805 behaves like returning response status806 returns not_found807 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok808 behaves like reject package tags request809 behaves like returning response status810 returns not_found811 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found812 behaves like reject package tags request813 behaves like returning response status814 returns not_found815 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found816 behaves like reject package tags request817 behaves like returning response status818 returns not_found819 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found820 behaves like reject package tags request821 behaves like returning response status822 returns not_found823 with a user namespace824 behaves like handling all conditions825 with oauth token826 behaves like handling different package names, visibilities and user roles827 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok828 behaves like accept package tags request829 with valid package name830 returns a valid json response831 returns two package tags832 behaves like returning response status833 returns ok834 with invalid package name835 package_name: "%20", status: :bad_request836 behaves like returning response status837 returns bad_request838 package_name: nil, status: :not_found839 behaves like returning response status840 returns not_found841 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok842 behaves like accept package tags request843 with valid package name844 returns a valid json response845 returns two package tags846 behaves like returning response status847 returns ok848 with invalid package name849 package_name: "%20", status: :bad_request850 behaves like returning response status851 returns bad_request852 package_name: nil, status: :not_found853 behaves like returning response status854 returns not_found855 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok856 behaves like accept package tags request857 with valid package name858 returns a valid json response859 returns two package tags860 behaves like returning response status861 returns ok862 with invalid package name863 package_name: "%20", status: :bad_request864 behaves like returning response status865 returns bad_request866 package_name: nil, status: :not_found867 behaves like returning response status868 returns not_found869 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok870 behaves like reject package tags request871 behaves like returning response status872 returns not_found873 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok874 behaves like reject package tags request875 behaves like returning response status876 returns not_found877 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok878 behaves like reject package tags request879 behaves like returning response status880 returns not_found881 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok882 behaves like reject package tags request883 behaves like returning response status884 returns not_found885 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok886 behaves like reject package tags request887 behaves like returning response status888 returns not_found889 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok890 behaves like reject package tags request891 behaves like returning response status892 returns not_found893 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found894 behaves like reject package tags request895 behaves like returning response status896 returns not_found897 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found898 behaves like reject package tags request899 behaves like returning response status900 returns not_found901 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found902 behaves like reject package tags request903 behaves like returning response status904 returns not_found905 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found906 behaves like reject package tags request907 behaves like returning response status908 returns not_found909 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden910 behaves like reject package tags request911 behaves like returning response status912 returns forbidden913 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok914 behaves like accept package tags request915 with valid package name916 returns a valid json response917 returns two package tags918 behaves like returning response status919 returns ok920 with invalid package name921 package_name: "%20", status: :bad_request922 behaves like returning response status923 returns bad_request924 package_name: nil, status: :not_found925 behaves like returning response status926 returns not_found927 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found928 behaves like reject package tags request929 behaves like returning response status930 returns not_found931 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden932 behaves like reject package tags request933 behaves like returning response status934 returns not_found935 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok936 behaves like reject package tags request937 behaves like returning response status938 returns not_found939 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found940 behaves like reject package tags request941 behaves like returning response status942 returns not_found943 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden944 behaves like reject package tags request945 behaves like returning response status946 returns not_found947 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok948 behaves like reject package tags request949 behaves like returning response status950 returns not_found951 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found952 behaves like reject package tags request953 behaves like returning response status954 returns not_found955 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden956 behaves like reject package tags request957 behaves like returning response status958 returns not_found959 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found960 behaves like reject package tags request961 behaves like returning response status962 returns not_found963 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found964 behaves like reject package tags request965 behaves like returning response status966 returns not_found967 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok968 behaves like accept package tags request969 with valid package name970 returns a valid json response971 returns two package tags972 behaves like returning response status973 returns ok974 with invalid package name975 package_name: "%20", status: :bad_request976 behaves like returning response status977 returns bad_request978 package_name: nil, status: :not_found979 behaves like returning response status980 returns not_found981 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok982 behaves like accept package tags request983 with valid package name984 returns a valid json response985 returns two package tags986 behaves like returning response status987 returns ok988 with invalid package name989 package_name: "%20", status: :bad_request990 behaves like returning response status991 returns bad_request992 package_name: nil, status: :not_found993 behaves like returning response status994 returns not_found995 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found996 behaves like reject package tags request997 behaves like returning response status998 returns not_found999 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1000 behaves like reject package tags request1001 behaves like returning response status1002 returns not_found1003 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1004 behaves like reject package tags request1005 behaves like returning response status1006 returns not_found1007 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1008 behaves like reject package tags request1009 behaves like returning response status1010 returns not_found1011 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1012 behaves like reject package tags request1013 behaves like returning response status1014 returns not_found1015 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1016 behaves like reject package tags request1017 behaves like returning response status1018 returns not_found1019 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1020 behaves like reject package tags request1021 behaves like returning response status1022 returns not_found1023 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1024 behaves like reject package tags request1025 behaves like returning response status1026 returns not_found1027 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1028 behaves like reject package tags request1029 behaves like returning response status1030 returns not_found1031 with personal access token1032 behaves like handling different package names, visibilities and user roles1033 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1034 behaves like accept package tags request1035 with valid package name1036 returns a valid json response1037 returns two package tags1038 behaves like returning response status1039 returns ok1040 with invalid package name1041 package_name: "%20", status: :bad_request1042 behaves like returning response status1043 returns bad_request1044 package_name: nil, status: :not_found1045 behaves like returning response status1046 returns not_found1047 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1048 behaves like accept package tags request1049 with valid package name1050 returns a valid json response1051 returns two package tags1052 behaves like returning response status1053 returns ok1054 with invalid package name1055 package_name: "%20", status: :bad_request1056 behaves like returning response status1057 returns bad_request1058 package_name: nil, status: :not_found1059 behaves like returning response status1060 returns not_found1061 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1062 behaves like accept package tags request1063 with valid package name1064 returns a valid json response1065 returns two package tags1066 behaves like returning response status1067 returns ok1068 with invalid package name1069 package_name: "%20", status: :bad_request1070 behaves like returning response status1071 returns bad_request1072 package_name: nil, status: :not_found1073 behaves like returning response status1074 returns not_found1075 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1076 behaves like reject package tags request1077 behaves like returning response status1078 returns not_found1079 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1080 behaves like reject package tags request1081 behaves like returning response status1082 returns not_found1083 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1084 behaves like reject package tags request1085 behaves like returning response status1086 returns not_found1087 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1088 behaves like reject package tags request1089 behaves like returning response status1090 returns not_found1091 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1092 behaves like reject package tags request1093 behaves like returning response status1094 returns not_found1095 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1096 behaves like reject package tags request1097 behaves like returning response status1098 returns not_found1099 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1100 behaves like reject package tags request1101 behaves like returning response status1102 returns not_found1103 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1104 behaves like reject package tags request1105 behaves like returning response status1106 returns not_found1107 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1108 behaves like reject package tags request1109 behaves like returning response status1110 returns not_found1111 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1112 behaves like reject package tags request1113 behaves like returning response status1114 returns not_found1115 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1116 behaves like reject package tags request1117 behaves like returning response status1118 returns forbidden1119 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1120 behaves like accept package tags request1121 with valid package name1122 returns a valid json response1123 returns two package tags1124 behaves like returning response status1125 returns ok1126 with invalid package name1127 package_name: "%20", status: :bad_request1128 behaves like returning response status1129 returns bad_request1130 package_name: nil, status: :not_found1131 behaves like returning response status1132 returns not_found1133 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1134 behaves like reject package tags request1135 behaves like returning response status1136 returns not_found1137 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1138 behaves like reject package tags request1139 behaves like returning response status1140 returns not_found1141 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1142 behaves like reject package tags request1143 behaves like returning response status1144 returns not_found1145 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1146 behaves like reject package tags request1147 behaves like returning response status1148 returns not_found1149 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1150 behaves like reject package tags request1151 behaves like returning response status1152 returns not_found1153 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1154 behaves like reject package tags request1155 behaves like returning response status1156 returns not_found1157 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1158 behaves like reject package tags request1159 behaves like returning response status1160 returns not_found1161 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1162 behaves like reject package tags request1163 behaves like returning response status1164 returns not_found1165 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1166 behaves like reject package tags request1167 behaves like returning response status1168 returns not_found1169 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1170 behaves like reject package tags request1171 behaves like returning response status1172 returns not_found1173 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1174 behaves like accept package tags request1175 with valid package name1176 returns a valid json response1177 returns two package tags1178 behaves like returning response status1179 returns ok1180 with invalid package name1181 package_name: "%20", status: :bad_request1182 behaves like returning response status1183 returns bad_request1184 package_name: nil, status: :not_found1185 behaves like returning response status1186 returns not_found1187 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1188 behaves like accept package tags request1189 with valid package name1190 returns a valid json response1191 returns two package tags1192 behaves like returning response status1193 returns ok1194 with invalid package name1195 package_name: "%20", status: :bad_request1196 behaves like returning response status1197 returns bad_request1198 package_name: nil, status: :not_found1199 behaves like returning response status1200 returns not_found1201 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1202 behaves like reject package tags request1203 behaves like returning response status1204 returns not_found1205 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1206 behaves like reject package tags request1207 behaves like returning response status1208 returns not_found1209 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1210 behaves like reject package tags request1211 behaves like returning response status1212 returns not_found1213 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1214 behaves like reject package tags request1215 behaves like returning response status1216 returns not_found1217 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1218 behaves like reject package tags request1219 behaves like returning response status1220 returns not_found1221 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1222 behaves like reject package tags request1223 behaves like returning response status1224 returns not_found1225 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1226 behaves like reject package tags request1227 behaves like returning response status1228 returns not_found1229 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1230 behaves like reject package tags request1231 behaves like returning response status1232 returns not_found1233 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1234 behaves like reject package tags request1235 behaves like returning response status1236 returns not_found1237 PUT /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag1238 behaves like handling create dist tag requests1239 with a group namespace1240 behaves like handling all conditions1241 with oauth token1242 behaves like handling different package names, visibilities and user roles1243 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1244 behaves like reject create package tag request1245 behaves like returning response status1246 returns forbidden1247 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1248 behaves like reject create package tag request1249 behaves like returning response status1250 returns forbidden1251 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1252 behaves like accept create package tag request1253 with valid package name1254 creates the package tag1255 returns a valid response1256 behaves like returning response status1257 returns no_content1258 with already existing tag1259 reuses existing tag1260 returns a valid response1261 behaves like returning response status1262 returns no_content1263 with invalid package name1264 package_name: "unknown", status: :not_found1265 behaves like returning response status1266 returns not_found1267 package_name: "", status: :not_found1268 behaves like returning response status1269 returns not_found1270 package_name: "%20", status: :bad_request1271 behaves like returning response status1272 returns bad_request1273 with invalid tag name1274 tag_name: "", status: :not_found1275 behaves like returning response status1276 returns not_found1277 tag_name: "%20", status: :bad_request1278 behaves like returning response status1279 returns bad_request1280 with invalid version1281 version: " ", status: :bad_request1282 behaves like returning response status1283 returns bad_request1284 version: "", status: :bad_request1285 behaves like returning response status1286 returns bad_request1287 version: nil, status: :bad_request1288 behaves like returning response status1289 returns bad_request1290 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1291 behaves like reject create package tag request1292 behaves like returning response status1293 returns not_found1294 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1295 behaves like reject create package tag request1296 behaves like returning response status1297 returns not_found1298 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1299 behaves like reject create package tag request1300 behaves like returning response status1301 returns not_found1302 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1303 behaves like reject create package tag request1304 behaves like returning response status1305 returns not_found1306 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1307 behaves like reject create package tag request1308 behaves like returning response status1309 returns not_found1310 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1311 behaves like reject create package tag request1312 behaves like returning response status1313 returns not_found1314 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1315 behaves like reject create package tag request1316 behaves like returning response status1317 returns not_found1318 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1319 behaves like reject create package tag request1320 behaves like returning response status1321 returns not_found1322 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1323 behaves like reject create package tag request1324 behaves like returning response status1325 returns not_found1326 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1327 behaves like reject create package tag request1328 behaves like returning response status1329 returns not_found1330 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1331 behaves like reject create package tag request1332 behaves like returning response status1333 returns forbidden1334 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1335 behaves like accept create package tag request1336 with valid package name1337 creates the package tag1338 returns a valid response1339 behaves like returning response status1340 returns no_content1341 with already existing tag1342 reuses existing tag1343 returns a valid response1344 behaves like returning response status1345 returns no_content1346 with invalid package name1347 package_name: "unknown", status: :not_found1348 behaves like returning response status1349 returns not_found1350 package_name: "", status: :not_found1351 behaves like returning response status1352 returns not_found1353 package_name: "%20", status: :bad_request1354 behaves like returning response status1355 returns bad_request1356 with invalid tag name1357 tag_name: "", status: :not_found1358 behaves like returning response status1359 returns not_found1360 tag_name: "%20", status: :bad_request1361 behaves like returning response status1362 returns bad_request1363 with invalid version1364 version: " ", status: :bad_request1365 behaves like returning response status1366 returns bad_request1367 version: "", status: :bad_request1368 behaves like returning response status1369 returns bad_request1370 version: nil, status: :bad_request1371 behaves like returning response status1372 returns bad_request1373 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1374 behaves like reject create package tag request1375 behaves like returning response status1376 returns not_found1377 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1378 behaves like reject create package tag request1379 behaves like returning response status1380 returns not_found1381 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1382 behaves like reject create package tag request1383 behaves like returning response status1384 returns not_found1385 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1386 behaves like reject create package tag request1387 behaves like returning response status1388 returns not_found1389 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1390 behaves like reject create package tag request1391 behaves like returning response status1392 returns not_found1393 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1394 behaves like reject create package tag request1395 behaves like returning response status1396 returns not_found1397 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1398 behaves like reject create package tag request1399 behaves like returning response status1400 returns not_found1401 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1402 behaves like reject create package tag request1403 behaves like returning response status1404 returns not_found1405 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1406 behaves like reject create package tag request1407 behaves like returning response status1408 returns not_found1409 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1410 behaves like reject create package tag request1411 behaves like returning response status1412 returns forbidden1413 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1414 behaves like reject create package tag request1415 behaves like returning response status1416 returns forbidden1417 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1418 behaves like accept create package tag request1419 with valid package name1420 creates the package tag1421 returns a valid response1422 behaves like returning response status1423 returns no_content1424 with already existing tag1425 reuses existing tag1426 returns a valid response1427 behaves like returning response status1428 returns no_content1429 with invalid package name1430 package_name: "unknown", status: :not_found1431 behaves like returning response status1432 returns not_found1433 package_name: "", status: :not_found1434 behaves like returning response status1435 returns not_found1436 package_name: "%20", status: :bad_request1437 behaves like returning response status1438 returns bad_request1439 with invalid tag name1440 tag_name: "", status: :not_found1441 behaves like returning response status1442 returns not_found1443 tag_name: "%20", status: :bad_request1444 behaves like returning response status1445 returns bad_request1446 with invalid version1447 version: " ", status: :bad_request1448 behaves like returning response status1449 returns bad_request1450 version: "", status: :bad_request1451 behaves like returning response status1452 returns bad_request1453 version: nil, status: :bad_request1454 behaves like returning response status1455 returns bad_request1456 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1457 behaves like reject create package tag request1458 behaves like returning response status1459 returns not_found1460 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1461 behaves like reject create package tag request1462 behaves like returning response status1463 returns not_found1464 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1465 behaves like reject create package tag request1466 behaves like returning response status1467 returns not_found1468 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1469 behaves like reject create package tag request1470 behaves like returning response status1471 returns not_found1472 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1473 behaves like reject create package tag request1474 behaves like returning response status1475 returns not_found1476 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1477 behaves like reject create package tag request1478 behaves like returning response status1479 returns not_found1480 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1481 behaves like reject create package tag request1482 behaves like returning response status1483 returns not_found1484 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1485 behaves like reject create package tag request1486 behaves like returning response status1487 returns not_found1488 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1489 behaves like reject create package tag request1490 behaves like returning response status1491 returns not_found1492 with personal access token1493 behaves like handling different package names, visibilities and user roles1494 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1495 behaves like reject create package tag request1496 behaves like returning response status1497 returns forbidden1498 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1499 behaves like reject create package tag request1500 behaves like returning response status1501 returns forbidden1502 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1503 behaves like accept create package tag request1504 with valid package name1505 creates the package tag1506 returns a valid response1507 behaves like returning response status1508 returns no_content1509 with already existing tag1510 reuses existing tag1511 returns a valid response1512 behaves like returning response status1513 returns no_content1514 with invalid package name1515 package_name: "unknown", status: :not_found1516 behaves like returning response status1517 returns not_found1518 package_name: "", status: :not_found1519 behaves like returning response status1520 returns not_found1521 package_name: "%20", status: :bad_request1522 behaves like returning response status1523 returns bad_request1524 with invalid tag name1525 tag_name: "", status: :not_found1526 behaves like returning response status1527 returns not_found1528 tag_name: "%20", status: :bad_request1529 behaves like returning response status1530 returns bad_request1531 with invalid version1532 version: " ", status: :bad_request1533 behaves like returning response status1534 returns bad_request1535 version: "", status: :bad_request1536 behaves like returning response status1537 returns bad_request1538 version: nil, status: :bad_request1539 behaves like returning response status1540 returns bad_request1541 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1542 behaves like reject create package tag request1543 behaves like returning response status1544 returns not_found1545 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1546 behaves like reject create package tag request1547 behaves like returning response status1548 returns not_found1549 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1550 behaves like reject create package tag request1551 behaves like returning response status1552 returns not_found1553 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1554 behaves like reject create package tag request1555 behaves like returning response status1556 returns not_found1557 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1558 behaves like reject create package tag request1559 behaves like returning response status1560 returns not_found1561 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1562 behaves like reject create package tag request1563 behaves like returning response status1564 returns not_found1565 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1566 behaves like reject create package tag request1567 behaves like returning response status1568 returns not_found1569 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1570 behaves like reject create package tag request1571 behaves like returning response status1572 returns not_found1573 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1574 behaves like reject create package tag request1575 behaves like returning response status1576 returns not_found1577 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1578 behaves like reject create package tag request1579 behaves like returning response status1580 returns not_found1581 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1582 behaves like reject create package tag request1583 behaves like returning response status1584 returns forbidden1585 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1586 behaves like accept create package tag request1587 with valid package name1588 creates the package tag1589 returns a valid response1590 behaves like returning response status1591 returns no_content1592 with already existing tag1593 reuses existing tag1594 returns a valid response1595 behaves like returning response status1596 returns no_content1597 with invalid package name1598 package_name: "unknown", status: :not_found1599 behaves like returning response status1600 returns not_found1601 package_name: "", status: :not_found1602 behaves like returning response status1603 returns not_found1604 package_name: "%20", status: :bad_request1605 behaves like returning response status1606 returns bad_request1607 with invalid tag name1608 tag_name: "", status: :not_found1609 behaves like returning response status1610 returns not_found1611 tag_name: "%20", status: :bad_request1612 behaves like returning response status1613 returns bad_request1614 with invalid version1615 version: " ", status: :bad_request1616 behaves like returning response status1617 returns bad_request1618 version: "", status: :bad_request1619 behaves like returning response status1620 returns bad_request1621 version: nil, status: :bad_request1622 behaves like returning response status1623 returns bad_request1624 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1625 behaves like reject create package tag request1626 behaves like returning response status1627 returns not_found1628 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1629 behaves like reject create package tag request1630 behaves like returning response status1631 returns not_found1632 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1633 behaves like reject create package tag request1634 behaves like returning response status1635 returns not_found1636 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1637 behaves like reject create package tag request1638 behaves like returning response status1639 returns not_found1640 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1641 behaves like reject create package tag request1642 behaves like returning response status1643 returns not_found1644 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1645 behaves like reject create package tag request1646 behaves like returning response status1647 returns not_found1648 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1649 behaves like reject create package tag request1650 behaves like returning response status1651 returns not_found1652 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1653 behaves like reject create package tag request1654 behaves like returning response status1655 returns not_found1656 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1657 behaves like reject create package tag request1658 behaves like returning response status1659 returns not_found1660 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1661 behaves like reject create package tag request1662 behaves like returning response status1663 returns forbidden1664 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1665 behaves like reject create package tag request1666 behaves like returning response status1667 returns forbidden1668 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1669 behaves like accept create package tag request1670 with valid package name1671 creates the package tag1672 returns a valid response1673 behaves like returning response status1674 returns no_content1675 with already existing tag1676 reuses existing tag1677 returns a valid response1678 behaves like returning response status1679 returns no_content1680 with invalid package name1681 package_name: "unknown", status: :not_found1682 behaves like returning response status1683 returns not_found1684 package_name: "", status: :not_found1685 behaves like returning response status1686 returns not_found1687 package_name: "%20", status: :bad_request1688 behaves like returning response status1689 returns bad_request1690 with invalid tag name1691 tag_name: "", status: :not_found1692 behaves like returning response status1693 returns not_found1694 tag_name: "%20", status: :bad_request1695 behaves like returning response status1696 returns bad_request1697 with invalid version1698 version: " ", status: :bad_request1699 behaves like returning response status1700 returns bad_request1701 version: "", status: :bad_request1702 behaves like returning response status1703 returns bad_request1704 version: nil, status: :bad_request1705 behaves like returning response status1706 returns bad_request1707 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1708 behaves like reject create package tag request1709 behaves like returning response status1710 returns not_found1711 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1712 behaves like reject create package tag request1713 behaves like returning response status1714 returns not_found1715 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1716 behaves like reject create package tag request1717 behaves like returning response status1718 returns not_found1719 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1720 behaves like reject create package tag request1721 behaves like returning response status1722 returns not_found1723 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1724 behaves like reject create package tag request1725 behaves like returning response status1726 returns not_found1727 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1728 behaves like reject create package tag request1729 behaves like returning response status1730 returns not_found1731 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1732 behaves like reject create package tag request1733 behaves like returning response status1734 returns not_found1735 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1736 behaves like reject create package tag request1737 behaves like returning response status1738 returns not_found1739 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1740 behaves like reject create package tag request1741 behaves like returning response status1742 returns not_found1743 with a user namespace1744 behaves like handling all conditions1745 with oauth token1746 behaves like handling different package names, visibilities and user roles1747 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1748 behaves like reject create package tag request1749 behaves like returning response status1750 returns forbidden1751 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1752 behaves like reject create package tag request1753 behaves like returning response status1754 returns forbidden1755 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1756 behaves like accept create package tag request1757 with valid package name1758 creates the package tag1759 returns a valid response1760 behaves like returning response status1761 returns no_content1762 with already existing tag1763 reuses existing tag1764 returns a valid response1765 behaves like returning response status1766 returns no_content1767 with invalid package name1768 package_name: "unknown", status: :not_found1769 behaves like returning response status1770 returns not_found1771 package_name: "", status: :not_found1772 behaves like returning response status1773 returns not_found1774 package_name: "%20", status: :bad_request1775 behaves like returning response status1776 returns bad_request1777 with invalid tag name1778 tag_name: "", status: :not_found1779 behaves like returning response status1780 returns not_found1781 tag_name: "%20", status: :bad_request1782 behaves like returning response status1783 returns bad_request1784 with invalid version1785 version: " ", status: :bad_request1786 behaves like returning response status1787 returns bad_request1788 version: "", status: :bad_request1789 behaves like returning response status1790 returns bad_request1791 version: nil, status: :bad_request1792 behaves like returning response status1793 returns bad_request1794 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1795 behaves like reject create package tag request1796 behaves like returning response status1797 returns not_found1798 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1799 behaves like reject create package tag request1800 behaves like returning response status1801 returns not_found1802 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1803 behaves like reject create package tag request1804 behaves like returning response status1805 returns not_found1806 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1807 behaves like reject create package tag request1808 behaves like returning response status1809 returns not_found1810 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1811 behaves like reject create package tag request1812 behaves like returning response status1813 returns not_found1814 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1815 behaves like reject create package tag request1816 behaves like returning response status1817 returns not_found1818 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1819 behaves like reject create package tag request1820 behaves like returning response status1821 returns not_found1822 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1823 behaves like reject create package tag request1824 behaves like returning response status1825 returns not_found1826 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1827 behaves like reject create package tag request1828 behaves like returning response status1829 returns not_found1830 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1831 behaves like reject create package tag request1832 behaves like returning response status1833 returns not_found1834 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1835 behaves like reject create package tag request1836 behaves like returning response status1837 returns forbidden1838 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1839 behaves like accept create package tag request1840 with valid package name1841 creates the package tag1842 returns a valid response1843 behaves like returning response status1844 returns no_content1845 with already existing tag1846 reuses existing tag1847 returns a valid response1848 behaves like returning response status1849 returns no_content1850 with invalid package name1851 package_name: "unknown", status: :not_found1852 behaves like returning response status1853 returns not_found1854 package_name: "", status: :not_found1855 behaves like returning response status1856 returns not_found1857 package_name: "%20", status: :bad_request1858 behaves like returning response status1859 returns bad_request1860 with invalid tag name1861 tag_name: "", status: :not_found1862 behaves like returning response status1863 returns not_found1864 tag_name: "%20", status: :bad_request1865 behaves like returning response status1866 returns bad_request1867 with invalid version1868 version: " ", status: :bad_request1869 behaves like returning response status1870 returns bad_request1871 version: "", status: :bad_request1872 behaves like returning response status1873 returns bad_request1874 version: nil, status: :bad_request1875 behaves like returning response status1876 returns bad_request1877 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1878 behaves like reject create package tag request1879 behaves like returning response status1880 returns not_found1881 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1882 behaves like reject create package tag request1883 behaves like returning response status1884 returns not_found1885 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1886 behaves like reject create package tag request1887 behaves like returning response status1888 returns not_found1889 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1890 behaves like reject create package tag request1891 behaves like returning response status1892 returns not_found1893 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1894 behaves like reject create package tag request1895 behaves like returning response status1896 returns not_found1897 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1898 behaves like reject create package tag request1899 behaves like returning response status1900 returns not_found1901 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1902 behaves like reject create package tag request1903 behaves like returning response status1904 returns not_found1905 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1906 behaves like reject create package tag request1907 behaves like returning response status1908 returns not_found1909 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1910 behaves like reject create package tag request1911 behaves like returning response status1912 returns not_found1913 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1914 behaves like reject create package tag request1915 behaves like returning response status1916 returns forbidden1917 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1918 behaves like reject create package tag request1919 behaves like returning response status1920 returns forbidden1921 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1922 behaves like accept create package tag request1923 with valid package name1924 creates the package tag1925 returns a valid response1926 behaves like returning response status1927 returns no_content1928 with already existing tag1929 reuses existing tag1930 returns a valid response1931 behaves like returning response status1932 returns no_content1933 with invalid package name1934 package_name: "unknown", status: :not_found1935 behaves like returning response status1936 returns not_found1937 package_name: "", status: :not_found1938 behaves like returning response status1939 returns not_found1940 package_name: "%20", status: :bad_request1941 behaves like returning response status1942 returns bad_request1943 with invalid tag name1944 tag_name: "", status: :not_found1945 behaves like returning response status1946 returns not_found1947 tag_name: "%20", status: :bad_request1948 behaves like returning response status1949 returns bad_request1950 with invalid version1951 version: " ", status: :bad_request1952 behaves like returning response status1953 returns bad_request1954 version: "", status: :bad_request1955 behaves like returning response status1956 returns bad_request1957 version: nil, status: :bad_request1958 behaves like returning response status1959 returns bad_request1960 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1961 behaves like reject create package tag request1962 behaves like returning response status1963 returns not_found1964 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1965 behaves like reject create package tag request1966 behaves like returning response status1967 returns not_found1968 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1969 behaves like reject create package tag request1970 behaves like returning response status1971 returns not_found1972 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1973 behaves like reject create package tag request1974 behaves like returning response status1975 returns not_found1976 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1977 behaves like reject create package tag request1978 behaves like returning response status1979 returns not_found1980 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1981 behaves like reject create package tag request1982 behaves like returning response status1983 returns not_found1984 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1985 behaves like reject create package tag request1986 behaves like returning response status1987 returns not_found1988 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1989 behaves like reject create package tag request1990 behaves like returning response status1991 returns not_found1992 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1993 behaves like reject create package tag request1994 behaves like returning response status1995 returns not_found1996 with personal access token1997 behaves like handling different package names, visibilities and user roles1998 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1999 behaves like reject create package tag request2000 behaves like returning response status2001 returns forbidden2002 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2003 behaves like reject create package tag request2004 behaves like returning response status2005 returns forbidden2006 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2007 behaves like accept create package tag request2008 with valid package name2009 creates the package tag2010 returns a valid response2011 behaves like returning response status2012 returns no_content2013 with already existing tag2014 reuses existing tag2015 returns a valid response2016 behaves like returning response status2017 returns no_content2018 with invalid package name2019 package_name: "unknown", status: :not_found2020 behaves like returning response status2021 returns not_found2022 package_name: "", status: :not_found2023 behaves like returning response status2024 returns not_found2025 package_name: "%20", status: :bad_request2026 behaves like returning response status2027 returns bad_request2028 with invalid tag name2029 tag_name: "", status: :not_found2030 behaves like returning response status2031 returns not_found2032 tag_name: "%20", status: :bad_request2033 behaves like returning response status2034 returns bad_request2035 with invalid version2036 version: " ", status: :bad_request2037 behaves like returning response status2038 returns bad_request2039 version: "", status: :bad_request2040 behaves like returning response status2041 returns bad_request2042 version: nil, status: :bad_request2043 behaves like returning response status2044 returns bad_request2045 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2046 behaves like reject create package tag request2047 behaves like returning response status2048 returns not_found2049 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2050 behaves like reject create package tag request2051 behaves like returning response status2052 returns not_found2053 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2054 behaves like reject create package tag request2055 behaves like returning response status2056 returns not_found2057 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2058 behaves like reject create package tag request2059 behaves like returning response status2060 returns not_found2061 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2062 behaves like reject create package tag request2063 behaves like returning response status2064 returns not_found2065 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2066 behaves like reject create package tag request2067 behaves like returning response status2068 returns not_found2069 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2070 behaves like reject create package tag request2071 behaves like returning response status2072 returns not_found2073 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2074 behaves like reject create package tag request2075 behaves like returning response status2076 returns not_found2077 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2078 behaves like reject create package tag request2079 behaves like returning response status2080 returns not_found2081 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2082 behaves like reject create package tag request2083 behaves like returning response status2084 returns not_found2085 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2086 behaves like reject create package tag request2087 behaves like returning response status2088 returns forbidden2089 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2090 behaves like accept create package tag request2091 with valid package name2092 creates the package tag2093 returns a valid response2094 behaves like returning response status2095 returns no_content2096 with already existing tag2097 reuses existing tag2098 returns a valid response2099 behaves like returning response status2100 returns no_content2101 with invalid package name2102 package_name: "unknown", status: :not_found2103 behaves like returning response status2104 returns not_found2105 package_name: "", status: :not_found2106 behaves like returning response status2107 returns not_found2108 package_name: "%20", status: :bad_request2109 behaves like returning response status2110 returns bad_request2111 with invalid tag name2112 tag_name: "", status: :not_found2113 behaves like returning response status2114 returns not_found2115 tag_name: "%20", status: :bad_request2116 behaves like returning response status2117 returns bad_request2118 with invalid version2119 version: " ", status: :bad_request2120 behaves like returning response status2121 returns bad_request2122 version: "", status: :bad_request2123 behaves like returning response status2124 returns bad_request2125 version: nil, status: :bad_request2126 behaves like returning response status2127 returns bad_request2128 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2129 behaves like reject create package tag request2130 behaves like returning response status2131 returns not_found2132 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2133 behaves like reject create package tag request2134 behaves like returning response status2135 returns not_found2136 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2137 behaves like reject create package tag request2138 behaves like returning response status2139 returns not_found2140 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2141 behaves like reject create package tag request2142 behaves like returning response status2143 returns not_found2144 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2145 behaves like reject create package tag request2146 behaves like returning response status2147 returns not_found2148 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2149 behaves like reject create package tag request2150 behaves like returning response status2151 returns not_found2152 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2153 behaves like reject create package tag request2154 behaves like returning response status2155 returns not_found2156 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2157 behaves like reject create package tag request2158 behaves like returning response status2159 returns not_found2160 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2161 behaves like reject create package tag request2162 behaves like returning response status2163 returns not_found2164 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2165 behaves like reject create package tag request2166 behaves like returning response status2167 returns forbidden2168 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2169 behaves like reject create package tag request2170 behaves like returning response status2171 returns forbidden2172 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2173 behaves like accept create package tag request2174 with valid package name2175 creates the package tag2176 returns a valid response2177 behaves like returning response status2178 returns no_content2179 with already existing tag2180 reuses existing tag2181 returns a valid response2182 behaves like returning response status2183 returns no_content2184 with invalid package name2185 package_name: "unknown", status: :not_found2186 behaves like returning response status2187 returns not_found2188 package_name: "", status: :not_found2189 behaves like returning response status2190 returns not_found2191 package_name: "%20", status: :bad_request2192 behaves like returning response status2193 returns bad_request2194 with invalid tag name2195 tag_name: "", status: :not_found2196 behaves like returning response status2197 returns not_found2198 tag_name: "%20", status: :bad_request2199 behaves like returning response status2200 returns bad_request2201 with invalid version2202 version: " ", status: :bad_request2203 behaves like returning response status2204 returns bad_request2205 version: "", status: :bad_request2206 behaves like returning response status2207 returns bad_request2208 version: nil, status: :bad_request2209 behaves like returning response status2210 returns bad_request2211 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2212 behaves like reject create package tag request2213 behaves like returning response status2214 returns not_found2215 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2216 behaves like reject create package tag request2217 behaves like returning response status2218 returns not_found2219 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2220 behaves like reject create package tag request2221 behaves like returning response status2222 returns not_found2223 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2224 behaves like reject create package tag request2225 behaves like returning response status2226 returns not_found2227 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2228 behaves like reject create package tag request2229 behaves like returning response status2230 returns not_found2231 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2232 behaves like reject create package tag request2233 behaves like returning response status2234 returns not_found2235 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2236 behaves like reject create package tag request2237 behaves like returning response status2238 returns not_found2239 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2240 behaves like reject create package tag request2241 behaves like returning response status2242 returns not_found2243 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2244 behaves like reject create package tag request2245 behaves like returning response status2246 returns not_found2247 DELETE /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag2248 behaves like handling delete dist tag requests2249 with a group namespace2250 behaves like handling all conditions2251 with oauth token2252 behaves like handling different package names, visibilities and user roles2253 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2254 behaves like reject delete package tag request2255 behaves like returning response status2256 returns forbidden2257 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2258 behaves like reject delete package tag request2259 behaves like returning response status2260 returns forbidden2261 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2262 behaves like accept delete package tag request2263 with valid package name2264 returns a valid response2265 destroy the package tag2266 behaves like returning response status2267 returns no_content2268 with tag from other package2269 behaves like returning response status2270 returns not_found2271 with invalid package name2272 package_name: "unknown", status: :not_found2273 behaves like returning response status2274 returns not_found2275 package_name: "", status: :not_found2276 behaves like returning response status2277 returns not_found2278 package_name: "%20", status: :bad_request2279 behaves like returning response status2280 returns bad_request2281 with invalid tag name2282 tag_name: "unknown", status: :not_found2283 behaves like returning response status2284 returns not_found2285 tag_name: "", status: :not_found2286 behaves like returning response status2287 returns not_found2288 tag_name: "%20", status: :bad_request2289 behaves like returning response status2290 returns bad_request2291 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2292 behaves like reject delete package tag request2293 behaves like returning response status2294 returns not_found2295 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2296 behaves like reject delete package tag request2297 behaves like returning response status2298 returns not_found2299 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2300 behaves like reject delete package tag request2301 behaves like returning response status2302 returns not_found2303 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2304 behaves like reject delete package tag request2305 behaves like returning response status2306 returns not_found2307 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2308 behaves like reject delete package tag request2309 behaves like returning response status2310 returns not_found2311 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2312 behaves like reject delete package tag request2313 behaves like returning response status2314 returns not_found2315 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2316 behaves like reject delete package tag request2317 behaves like returning response status2318 returns not_found2319 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2320 behaves like reject delete package tag request2321 behaves like returning response status2322 returns not_found2323 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2324 behaves like reject delete package tag request2325 behaves like returning response status2326 returns not_found2327 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2328 behaves like reject delete package tag request2329 behaves like returning response status2330 returns not_found2331 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2332 behaves like reject delete package tag request2333 behaves like returning response status2334 returns forbidden2335 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2336 behaves like accept delete package tag request2337 with valid package name2338 returns a valid response2339 destroy the package tag2340 behaves like returning response status2341 returns no_content2342 with tag from other package2343 behaves like returning response status2344 returns not_found2345 with invalid package name2346 package_name: "unknown", status: :not_found2347 behaves like returning response status2348 returns not_found2349 package_name: "", status: :not_found2350 behaves like returning response status2351 returns not_found2352 package_name: "%20", status: :bad_request2353 behaves like returning response status2354 returns bad_request2355 with invalid tag name2356 tag_name: "unknown", status: :not_found2357 behaves like returning response status2358 returns not_found2359 tag_name: "", status: :not_found2360 behaves like returning response status2361 returns not_found2362 tag_name: "%20", status: :bad_request2363 behaves like returning response status2364 returns bad_request2365 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2366 behaves like reject delete package tag request2367 behaves like returning response status2368 returns not_found2369 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2370 behaves like reject delete package tag request2371 behaves like returning response status2372 returns not_found2373 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2374 behaves like reject delete package tag request2375 behaves like returning response status2376 returns not_found2377 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2378 behaves like reject delete package tag request2379 behaves like returning response status2380 returns not_found2381 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2382 behaves like reject delete package tag request2383 behaves like returning response status2384 returns not_found2385 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2386 behaves like reject delete package tag request2387 behaves like returning response status2388 returns not_found2389 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2390 behaves like reject delete package tag request2391 behaves like returning response status2392 returns not_found2393 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2394 behaves like reject delete package tag request2395 behaves like returning response status2396 returns not_found2397 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2398 behaves like reject delete package tag request2399 behaves like returning response status2400 returns not_found2401 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2402 behaves like reject delete package tag request2403 behaves like returning response status2404 returns forbidden2405 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2406 behaves like reject delete package tag request2407 behaves like returning response status2408 returns forbidden2409 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2410 behaves like accept delete package tag request2411 with valid package name2412 returns a valid response2413 destroy the package tag2414 behaves like returning response status2415 returns no_content2416 with tag from other package2417 behaves like returning response status2418 returns not_found2419 with invalid package name2420 package_name: "unknown", status: :not_found2421 behaves like returning response status2422 returns not_found2423 package_name: "", status: :not_found2424 behaves like returning response status2425 returns not_found2426 package_name: "%20", status: :bad_request2427 behaves like returning response status2428 returns bad_request2429 with invalid tag name2430 tag_name: "unknown", status: :not_found2431 behaves like returning response status2432 returns not_found2433 tag_name: "", status: :not_found2434 behaves like returning response status2435 returns not_found2436 tag_name: "%20", status: :bad_request2437 behaves like returning response status2438 returns bad_request2439 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2440 behaves like reject delete package tag request2441 behaves like returning response status2442 returns not_found2443 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2444 behaves like reject delete package tag request2445 behaves like returning response status2446 returns not_found2447 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2448 behaves like reject delete package tag request2449 behaves like returning response status2450 returns not_found2451 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2452 behaves like reject delete package tag request2453 behaves like returning response status2454 returns not_found2455 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2456 behaves like reject delete package tag request2457 behaves like returning response status2458 returns not_found2459 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2460 behaves like reject delete package tag request2461 behaves like returning response status2462 returns not_found2463 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2464 behaves like reject delete package tag request2465 behaves like returning response status2466 returns not_found2467 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2468 behaves like reject delete package tag request2469 behaves like returning response status2470 returns not_found2471 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2472 behaves like reject delete package tag request2473 behaves like returning response status2474 returns not_found2475 with personal access token2476 behaves like handling different package names, visibilities and user roles2477 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2478 behaves like reject delete package tag request2479 behaves like returning response status2480 returns forbidden2481 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2482 behaves like reject delete package tag request2483 behaves like returning response status2484 returns forbidden2485 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2486 behaves like accept delete package tag request2487 with valid package name2488 returns a valid response2489 destroy the package tag2490 behaves like returning response status2491 returns no_content2492 with tag from other package2493 behaves like returning response status2494 returns not_found2495 with invalid package name2496 package_name: "unknown", status: :not_found2497 behaves like returning response status2498 returns not_found2499 package_name: "", status: :not_found2500 behaves like returning response status2501 returns not_found2502 package_name: "%20", status: :bad_request2503 behaves like returning response status2504 returns bad_request2505 with invalid tag name2506 tag_name: "unknown", status: :not_found2507 behaves like returning response status2508 returns not_found2509 tag_name: "", status: :not_found2510 behaves like returning response status2511 returns not_found2512 tag_name: "%20", status: :bad_request2513 behaves like returning response status2514 returns bad_request2515 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2516 behaves like reject delete package tag request2517 behaves like returning response status2518 returns not_found2519 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2520 behaves like reject delete package tag request2521 behaves like returning response status2522 returns not_found2523 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2524 behaves like reject delete package tag request2525 behaves like returning response status2526 returns not_found2527 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2528 behaves like reject delete package tag request2529 behaves like returning response status2530 returns not_found2531 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2532 behaves like reject delete package tag request2533 behaves like returning response status2534 returns not_found2535 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2536 behaves like reject delete package tag request2537 behaves like returning response status2538 returns not_found2539 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2540 behaves like reject delete package tag request2541 behaves like returning response status2542 returns not_found2543 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2544 behaves like reject delete package tag request2545 behaves like returning response status2546 returns not_found2547 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2548 behaves like reject delete package tag request2549 behaves like returning response status2550 returns not_found2551 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2552 behaves like reject delete package tag request2553 behaves like returning response status2554 returns not_found2555 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2556 behaves like reject delete package tag request2557 behaves like returning response status2558 returns forbidden2559 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2560 behaves like accept delete package tag request2561 with valid package name2562 returns a valid response2563 destroy the package tag2564 behaves like returning response status2565 returns no_content2566 with tag from other package2567 behaves like returning response status2568 returns not_found2569 with invalid package name2570 package_name: "unknown", status: :not_found2571 behaves like returning response status2572 returns not_found2573 package_name: "", status: :not_found2574 behaves like returning response status2575 returns not_found2576 package_name: "%20", status: :bad_request2577 behaves like returning response status2578 returns bad_request2579 with invalid tag name2580 tag_name: "unknown", status: :not_found2581 behaves like returning response status2582 returns not_found2583 tag_name: "", status: :not_found2584 behaves like returning response status2585 returns not_found2586 tag_name: "%20", status: :bad_request2587 behaves like returning response status2588 returns bad_request2589 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2590 behaves like reject delete package tag request2591 behaves like returning response status2592 returns not_found2593 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2594 behaves like reject delete package tag request2595 behaves like returning response status2596 returns not_found2597 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2598 behaves like reject delete package tag request2599 behaves like returning response status2600 returns not_found2601 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2602 behaves like reject delete package tag request2603 behaves like returning response status2604 returns not_found2605 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2606 behaves like reject delete package tag request2607 behaves like returning response status2608 returns not_found2609 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2610 behaves like reject delete package tag request2611 behaves like returning response status2612 returns not_found2613 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2614 behaves like reject delete package tag request2615 behaves like returning response status2616 returns not_found2617 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2618 behaves like reject delete package tag request2619 behaves like returning response status2620 returns not_found2621 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2622 behaves like reject delete package tag request2623 behaves like returning response status2624 returns not_found2625 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2626 behaves like reject delete package tag request2627 behaves like returning response status2628 returns forbidden2629 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2630 behaves like reject delete package tag request2631 behaves like returning response status2632 returns forbidden2633 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2634 behaves like accept delete package tag request2635 with valid package name2636 returns a valid response2637 destroy the package tag2638 behaves like returning response status2639 returns no_content2640 with tag from other package2641 behaves like returning response status2642 returns not_found2643 with invalid package name2644 package_name: "unknown", status: :not_found2645 behaves like returning response status2646 returns not_found2647 package_name: "", status: :not_found2648 behaves like returning response status2649 returns not_found2650 package_name: "%20", status: :bad_request2651 behaves like returning response status2652 returns bad_request2653 with invalid tag name2654 tag_name: "unknown", status: :not_found2655 behaves like returning response status2656 returns not_found2657 tag_name: "", status: :not_found2658 behaves like returning response status2659 returns not_found2660 tag_name: "%20", status: :bad_request2661 behaves like returning response status2662 returns bad_request2663 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2664 behaves like reject delete package tag request2665 behaves like returning response status2666 returns not_found2667 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2668 behaves like reject delete package tag request2669 behaves like returning response status2670 returns not_found2671 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2672 behaves like reject delete package tag request2673 behaves like returning response status2674 returns not_found2675 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2676 behaves like reject delete package tag request2677 behaves like returning response status2678 returns not_found2679 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2680 behaves like reject delete package tag request2681 behaves like returning response status2682 returns not_found2683 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2684 behaves like reject delete package tag request2685 behaves like returning response status2686 returns not_found2687 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2688 behaves like reject delete package tag request2689 behaves like returning response status2690 returns not_found2691 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2692 behaves like reject delete package tag request2693 behaves like returning response status2694 returns not_found2695 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2696 behaves like reject delete package tag request2697 behaves like returning response status2698 returns not_found2699 with a user namespace2700 behaves like handling all conditions2701 with oauth token2702 behaves like handling different package names, visibilities and user roles2703 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2704 behaves like reject delete package tag request2705 behaves like returning response status2706 returns forbidden2707 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2708 behaves like reject delete package tag request2709 behaves like returning response status2710 returns forbidden2711 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2712 behaves like accept delete package tag request2713 with valid package name2714 returns a valid response2715 destroy the package tag2716 behaves like returning response status2717 returns no_content2718 with tag from other package2719 behaves like returning response status2720 returns not_found2721 with invalid package name2722 package_name: "unknown", status: :not_found2723 behaves like returning response status2724 returns not_found2725 package_name: "", status: :not_found2726 behaves like returning response status2727 returns not_found2728 package_name: "%20", status: :bad_request2729 behaves like returning response status2730 returns bad_request2731 with invalid tag name2732 tag_name: "unknown", status: :not_found2733 behaves like returning response status2734 returns not_found2735 tag_name: "", status: :not_found2736 behaves like returning response status2737 returns not_found2738 tag_name: "%20", status: :bad_request2739 behaves like returning response status2740 returns bad_request2741 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2742 behaves like reject delete package tag request2743 behaves like returning response status2744 returns not_found2745 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2746 behaves like reject delete package tag request2747 behaves like returning response status2748 returns not_found2749 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2750 behaves like reject delete package tag request2751 behaves like returning response status2752 returns not_found2753 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2754 behaves like reject delete package tag request2755 behaves like returning response status2756 returns not_found2757 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2758 behaves like reject delete package tag request2759 behaves like returning response status2760 returns not_found2761 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2762 behaves like reject delete package tag request2763 behaves like returning response status2764 returns not_found2765 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2766 behaves like reject delete package tag request2767 behaves like returning response status2768 returns not_found2769 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2770 behaves like reject delete package tag request2771 behaves like returning response status2772 returns not_found2773 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2774 behaves like reject delete package tag request2775 behaves like returning response status2776 returns not_found2777 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2778 behaves like reject delete package tag request2779 behaves like returning response status2780 returns not_found2781 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2782 behaves like reject delete package tag request2783 behaves like returning response status2784 returns forbidden2785 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2786 behaves like accept delete package tag request2787 with valid package name2788 returns a valid response2789 destroy the package tag2790 behaves like returning response status2791 returns no_content2792 with tag from other package2793 behaves like returning response status2794 returns not_found2795 with invalid package name2796 package_name: "unknown", status: :not_found2797 behaves like returning response status2798 returns not_found2799 package_name: "", status: :not_found2800 behaves like returning response status2801 returns not_found2802 package_name: "%20", status: :bad_request2803 behaves like returning response status2804 returns bad_request2805 with invalid tag name2806 tag_name: "unknown", status: :not_found2807 behaves like returning response status2808 returns not_found2809 tag_name: "", status: :not_found2810 behaves like returning response status2811 returns not_found2812 tag_name: "%20", status: :bad_request2813 behaves like returning response status2814 returns bad_request2815 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2816 behaves like reject delete package tag request2817 behaves like returning response status2818 returns not_found2819 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2820 behaves like reject delete package tag request2821 behaves like returning response status2822 returns not_found2823 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2824 behaves like reject delete package tag request2825 behaves like returning response status2826 returns not_found2827 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2828 behaves like reject delete package tag request2829 behaves like returning response status2830 returns not_found2831 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2832 behaves like reject delete package tag request2833 behaves like returning response status2834 returns not_found2835 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2836 behaves like reject delete package tag request2837 behaves like returning response status2838 returns not_found2839 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2840 behaves like reject delete package tag request2841 behaves like returning response status2842 returns not_found2843 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2844 behaves like reject delete package tag request2845 behaves like returning response status2846 returns not_found2847 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2848 behaves like reject delete package tag request2849 behaves like returning response status2850 returns not_found2851 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2852 behaves like reject delete package tag request2853 behaves like returning response status2854 returns forbidden2855 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2856 behaves like reject delete package tag request2857 behaves like returning response status2858 returns forbidden2859 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2860 behaves like accept delete package tag request2861 with valid package name2862 returns a valid response2863 destroy the package tag2864 behaves like returning response status2865 returns no_content2866 with tag from other package2867 behaves like returning response status2868 returns not_found2869 with invalid package name2870 package_name: "unknown", status: :not_found2871 behaves like returning response status2872 returns not_found2873 package_name: "", status: :not_found2874 behaves like returning response status2875 returns not_found2876 package_name: "%20", status: :bad_request2877 behaves like returning response status2878 returns bad_request2879 with invalid tag name2880 tag_name: "unknown", status: :not_found2881 behaves like returning response status2882 returns not_found2883 tag_name: "", status: :not_found2884 behaves like returning response status2885 returns not_found2886 tag_name: "%20", status: :bad_request2887 behaves like returning response status2888 returns bad_request2889 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2890 behaves like reject delete package tag request2891 behaves like returning response status2892 returns not_found2893 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2894 behaves like reject delete package tag request2895 behaves like returning response status2896 returns not_found2897 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2898 behaves like reject delete package tag request2899 behaves like returning response status2900 returns not_found2901 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2902 behaves like reject delete package tag request2903 behaves like returning response status2904 returns not_found2905 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2906 behaves like reject delete package tag request2907 behaves like returning response status2908 returns not_found2909 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2910 behaves like reject delete package tag request2911 behaves like returning response status2912 returns not_found2913 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2914 behaves like reject delete package tag request2915 behaves like returning response status2916 returns not_found2917 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2918 behaves like reject delete package tag request2919 behaves like returning response status2920 returns not_found2921 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2922 behaves like reject delete package tag request2923 behaves like returning response status2924 returns not_found2925 with personal access token2926 behaves like handling different package names, visibilities and user roles2927 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2928 behaves like reject delete package tag request2929 behaves like returning response status2930 returns forbidden2931 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2932 behaves like reject delete package tag request2933 behaves like returning response status2934 returns forbidden2935 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2936 behaves like accept delete package tag request2937 with valid package name2938 returns a valid response2939 destroy the package tag2940 behaves like returning response status2941 returns no_content2942 with tag from other package2943 behaves like returning response status2944 returns not_found2945 with invalid package name2946 package_name: "unknown", status: :not_found2947 behaves like returning response status2948 returns not_found2949 package_name: "", status: :not_found2950 behaves like returning response status2951 returns not_found2952 package_name: "%20", status: :bad_request2953 behaves like returning response status2954 returns bad_request2955 with invalid tag name2956 tag_name: "unknown", status: :not_found2957 behaves like returning response status2958 returns not_found2959 tag_name: "", status: :not_found2960 behaves like returning response status2961 returns not_found2962 tag_name: "%20", status: :bad_request2963 behaves like returning response status2964 returns bad_request2965 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2966 behaves like reject delete package tag request2967 behaves like returning response status2968 returns not_found2969 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2970 behaves like reject delete package tag request2971 behaves like returning response status2972 returns not_found2973 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2974 behaves like reject delete package tag request2975 behaves like returning response status2976 returns not_found2977 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2978 behaves like reject delete package tag request2979 behaves like returning response status2980 returns not_found2981 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2982 behaves like reject delete package tag request2983 behaves like returning response status2984 returns not_found2985 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2986 behaves like reject delete package tag request2987 behaves like returning response status2988 returns not_found2989 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2990 behaves like reject delete package tag request2991 behaves like returning response status2992 returns not_found2993 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2994 behaves like reject delete package tag request2995 behaves like returning response status2996 returns not_found2997 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2998 behaves like reject delete package tag request2999 behaves like returning response status3000 returns not_found3001 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3002 behaves like reject delete package tag request3003 behaves like returning response status3004 returns not_found3005 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3006 behaves like reject delete package tag request3007 behaves like returning response status3008 returns forbidden3009 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3010 behaves like accept delete package tag request3011 with valid package name3012 returns a valid response3013 destroy the package tag3014 behaves like returning response status3015 returns no_content3016 with tag from other package3017 behaves like returning response status3018 returns not_found3019 with invalid package name3020 package_name: "unknown", status: :not_found3021 behaves like returning response status3022 returns not_found3023 package_name: "", status: :not_found3024 behaves like returning response status3025 returns not_found3026 package_name: "%20", status: :bad_request3027 behaves like returning response status3028 returns bad_request3029 with invalid tag name3030 tag_name: "unknown", status: :not_found3031 behaves like returning response status3032 returns not_found3033 tag_name: "", status: :not_found3034 behaves like returning response status3035 returns not_found3036 tag_name: "%20", status: :bad_request3037 behaves like returning response status3038 returns bad_request3039 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3040 behaves like reject delete package tag request3041 behaves like returning response status3042 returns not_found3043 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3044 behaves like reject delete package tag request3045 behaves like returning response status3046 returns not_found3047 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3048 behaves like reject delete package tag request3049 behaves like returning response status3050 returns not_found3051 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3052 behaves like reject delete package tag request3053 behaves like returning response status3054 returns not_found3055 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3056 behaves like reject delete package tag request3057 behaves like returning response status3058 returns not_found3059 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3060 behaves like reject delete package tag request3061 behaves like returning response status3062 returns not_found3063 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3064 behaves like reject delete package tag request3065 behaves like returning response status3066 returns not_found3067 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3068 behaves like reject delete package tag request3069 behaves like returning response status3070 returns not_found3071 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3072 behaves like reject delete package tag request3073 behaves like returning response status3074 returns not_found3075 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3076 behaves like reject delete package tag request3077 behaves like returning response status3078 returns forbidden3079 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3080 behaves like reject delete package tag request3081 behaves like returning response status3082 returns forbidden3083 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3084 behaves like accept delete package tag request3085 with valid package name3086 returns a valid response3087 destroy the package tag3088 behaves like returning response status3089 returns no_content3090 with tag from other package3091 behaves like returning response status3092 returns not_found3093 with invalid package name3094 package_name: "unknown", status: :not_found3095 behaves like returning response status3096 returns not_found3097 package_name: "", status: :not_found3098 behaves like returning response status3099 returns not_found3100 package_name: "%20", status: :bad_request3101 behaves like returning response status3102 returns bad_request3103 with invalid tag name3104 tag_name: "unknown", status: :not_found3105 behaves like returning response status3106 returns not_found3107 tag_name: "", status: :not_found3108 behaves like returning response status3109 returns not_found3110 tag_name: "%20", status: :bad_request3111 behaves like returning response status3112 returns bad_request3113 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3114 behaves like reject delete package tag request3115 behaves like returning response status3116 returns not_found3117 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3118 behaves like reject delete package tag request3119 behaves like returning response status3120 returns not_found3121 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3122 behaves like reject delete package tag request3123 behaves like returning response status3124 returns not_found3125 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3126 behaves like reject delete package tag request3127 behaves like returning response status3128 returns not_found3129 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3130 behaves like reject delete package tag request3131 behaves like returning response status3132 returns not_found3133 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3134 behaves like reject delete package tag request3135 behaves like returning response status3136 returns not_found3137 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3138 behaves like reject delete package tag request3139 behaves like returning response status3140 returns not_found3141 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3142 behaves like reject delete package tag request3143 behaves like returning response status3144 returns not_found3145 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3146 behaves like reject delete package tag request3147 behaves like returning response status3148 returns not_found3149 POST /api/v4/packages/npm/-/npm/v1/security/advisories/bulk3150 behaves like handling audit request3151 with a group namespace3152 behaves like handling all conditions3153 auth: nil, request_forward: true, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized3154 behaves like reject audit request3155 rejects the audit request3156 auth: nil, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized3157 behaves like reject audit request3158 rejects the audit request3159 auth: nil, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized3160 behaves like reject audit request3161 rejects the audit request3162 auth: nil, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized3163 behaves like reject audit request3164 rejects the audit request3165 auth: nil, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized3166 behaves like reject audit request3167 rejects the audit request3168 auth: nil, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized3169 behaves like reject audit request3170 rejects the audit request3171 auth: :oauth, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3172 behaves like redirect audit request3173 redirects audit request3174 auth: :oauth, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3175 behaves like redirect audit request3176 redirects audit request3177 auth: :oauth, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok3178 behaves like reject audit request3179 rejects the audit request3180 auth: :oauth, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok3181 behaves like reject audit request3182 rejects the audit request3183 auth: :oauth, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3184 behaves like redirect audit request3185 redirects audit request3186 auth: :oauth, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3187 behaves like reject audit request3188 rejects the audit request3189 auth: :oauth, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok3190 behaves like reject audit request3191 rejects the audit request3192 auth: :oauth, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3193 behaves like redirect audit request3194 redirects audit request3195 auth: :oauth, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3196 behaves like redirect audit request3197 redirects audit request3198 auth: :oauth, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3199 behaves like redirect audit request3200 redirects audit request3201 auth: :oauth, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok3202 behaves like reject audit request3203 rejects the audit request3204 auth: :oauth, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok3205 behaves like reject audit request3206 rejects the audit request3207 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3208 behaves like redirect audit request3209 redirects audit request3210 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3211 behaves like redirect audit request3212 redirects audit request3213 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok3214 behaves like reject audit request3215 rejects the audit request3216 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok3217 behaves like reject audit request3218 rejects the audit request3219 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3220 behaves like redirect audit request3221 redirects audit request3222 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3223 behaves like redirect audit request3224 redirects audit request3225 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3226 behaves like reject audit request3227 rejects the audit request3228 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok3229 behaves like reject audit request3230 rejects the audit request3231 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3232 behaves like redirect audit request3233 redirects audit request3234 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3235 behaves like redirect audit request3236 redirects audit request3237 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok3238 behaves like reject audit request3239 rejects the audit request3240 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok3241 behaves like reject audit request3242 rejects the audit request3243 auth: :job_token, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3244 behaves like redirect audit request3245 redirects audit request3246 auth: :job_token, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3247 behaves like reject audit request3248 rejects the audit request3249 auth: :job_token, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3250 behaves like redirect audit request3251 redirects audit request3252 auth: :job_token, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3253 behaves like reject audit request3254 rejects the audit request3255 auth: :job_token, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3256 behaves like redirect audit request3257 redirects audit request3258 auth: :job_token, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3259 behaves like reject audit request3260 rejects the audit request3261 auth: :deploy_token, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3262 behaves like redirect audit request3263 redirects audit request3264 auth: :deploy_token, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3265 behaves like reject audit request3266 rejects the audit request3267 auth: :deploy_token, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3268 behaves like redirect audit request3269 redirects audit request3270 auth: :deploy_token, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3271 behaves like reject audit request3272 rejects the audit request3273 auth: :deploy_token, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3274 behaves like redirect audit request3275 redirects audit request3276 auth: :deploy_token, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3277 behaves like reject audit request3278 rejects the audit request3279 with a developer3280 with a job token3281 behaves like reject audit request3282 rejects the audit request3283 POST /api/v4/packages/npm/-/npm/v1/security/audits/quick3284 behaves like handling audit request3285 with a group namespace3286 behaves like handling all conditions3287 auth: nil, request_forward: true, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized3288 behaves like reject audit request3289 rejects the audit request3290 auth: nil, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized3291 behaves like reject audit request3292 rejects the audit request3293 auth: nil, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized3294 behaves like reject audit request3295 rejects the audit request3296 auth: nil, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized3297 behaves like reject audit request3298 rejects the audit request3299 auth: nil, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized3300 behaves like reject audit request3301 rejects the audit request3302 auth: nil, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized3303 behaves like reject audit request3304 rejects the audit request3305 auth: :oauth, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3306 behaves like redirect audit request3307 redirects audit request3308 auth: :oauth, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3309 behaves like redirect audit request3310 redirects audit request3311 auth: :oauth, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok3312 behaves like reject audit request3313 rejects the audit request3314 auth: :oauth, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok3315 behaves like reject audit request3316 rejects the audit request3317 auth: :oauth, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3318 behaves like redirect audit request3319 redirects audit request3320 auth: :oauth, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3321 behaves like reject audit request3322 rejects the audit request3323 auth: :oauth, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok3324 behaves like reject audit request3325 rejects the audit request3326 auth: :oauth, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3327 behaves like redirect audit request3328 redirects audit request3329 auth: :oauth, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3330 behaves like redirect audit request3331 redirects audit request3332 auth: :oauth, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3333 behaves like redirect audit request3334 redirects audit request3335 auth: :oauth, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok3336 behaves like reject audit request3337 rejects the audit request3338 auth: :oauth, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok3339 behaves like reject audit request3340 rejects the audit request3341 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3342 behaves like redirect audit request3343 redirects audit request3344 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3345 behaves like redirect audit request3346 redirects audit request3347 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok3348 behaves like reject audit request3349 rejects the audit request3350 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok3351 behaves like reject audit request3352 rejects the audit request3353 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3354 behaves like redirect audit request3355 redirects audit request3356 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3357 behaves like redirect audit request3358 redirects audit request3359 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3360 behaves like reject audit request3361 rejects the audit request3362 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok3363 behaves like reject audit request3364 rejects the audit request3365 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3366 behaves like redirect audit request3367 redirects audit request3368 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3369 behaves like redirect audit request3370 redirects audit request3371 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok3372 behaves like reject audit request3373 rejects the audit request3374 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok3375 behaves like reject audit request3376 rejects the audit request3377 auth: :job_token, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3378 behaves like redirect audit request3379 redirects audit request3380 auth: :job_token, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3381 behaves like reject audit request3382 rejects the audit request3383 auth: :job_token, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3384 behaves like redirect audit request3385 redirects audit request3386 auth: :job_token, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3387 behaves like reject audit request3388 rejects the audit request3389 auth: :job_token, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3390 behaves like redirect audit request3391 redirects audit request3392 auth: :job_token, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3393 behaves like reject audit request3394 rejects the audit request3395 auth: :deploy_token, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3396 behaves like redirect audit request3397 redirects audit request3398 auth: :deploy_token, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3399 behaves like reject audit request3400 rejects the audit request3401 auth: :deploy_token, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3402 behaves like redirect audit request3403 redirects audit request3404 auth: :deploy_token, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3405 behaves like reject audit request3406 rejects the audit request3407 auth: :deploy_token, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3408 behaves like redirect audit request3409 redirects audit request3410 auth: :deploy_token, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3411 behaves like reject audit request3412 rejects the audit request3413 with a developer3414 with a job token3415 behaves like reject audit request3416 rejects the audit request3417Git LFS API and storage3418 with projects3419 behaves like LFS http requests3420 when LFS is disabled globally3421 download request3422 behaves like LFS http 501 response3423 behaves like LFS http expected response code and message3424 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."3425 upload request3426 behaves like LFS http 501 response3427 behaves like LFS http expected response code and message3428 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."3429 unauthenticated3430 download request3431 behaves like LFS http 401 response3432 behaves like LFS http expected response code and message3433 is expected to match "text/plain"3434 upload request3435 behaves like LFS http 401 response3436 behaves like LFS http expected response code and message3437 is expected to match "text/plain"3438 without access3439 download request3440 behaves like LFS http 404 response3441 behaves like LFS http expected response code and message3442 is expected to match "application/vnd.git-lfs+json"3443 upload request3444 behaves like LFS http 404 response3445 behaves like LFS http expected response code and message3446 is expected to match "application/vnd.git-lfs+json"3447 with guest access3448 download request3449 behaves like LFS http 404 response3450 behaves like LFS http expected response code and message3451 is expected to match "application/vnd.git-lfs+json"3452 upload request3453 behaves like LFS http 404 response3454 behaves like LFS http expected response code and message3455 is expected to match "application/vnd.git-lfs+json"3456 with download permission3457 download request3458 behaves like LFS http 200 blob response3459 behaves like LFS http expected response code and message3460 is expected to match "application/octet-stream"3461 when container does not exist3462 behaves like LFS http 404 response3463 behaves like LFS http expected response code and message3464 is expected to match "application/vnd.git-lfs+json"3465 upload request3466 behaves like LFS http 403 response3467 behaves like LFS http expected response code and message3468 is expected to eq "Access forbidden. Check your access level."3469 with upload permission3470 upload request3471 behaves like LFS http 200 response3472 behaves like LFS http expected response code and message3473 is expected to match "application/vnd.git-lfs+json"3474 deprecated API3475 when fetching LFS object using deprecated API3476 behaves like deprecated request3477 behaves like LFS http expected response code and message3478 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."3479 when handling LFS request using deprecated API3480 behaves like deprecated request3481 behaves like LFS http expected response code and message3482 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."3483 project specific LFS settings3484 LFS disabled in project3485 when uploading3486 behaves like LFS http 404 response3487 behaves like LFS http expected response code and message3488 is expected to match "application/vnd.git-lfs+json"3489 when downloading3490 behaves like LFS http 404 response3491 behaves like LFS http expected response code and message3492 is expected to match "application/vnd.git-lfs+json"3493 LFS enabled in project3494 when uploading3495 behaves like LFS http 200 response3496 behaves like LFS http expected response code and message3497 is expected to match "application/vnd.git-lfs+json"3498 when downloading3499 behaves like LFS http 200 blob response3500 behaves like LFS http expected response code and message3501 is expected to match "application/octet-stream"3502 when fetching LFS object3503 when LFS uses object storage3504 when proxy download is enabled3505 responds with the workhorse send-url3506 when proxy download is disabled3507 responds with redirect3508 responds with the file location3509 when deploy key is authorized3510 behaves like LFS http 200 blob response3511 behaves like LFS http expected response code and message3512 is expected to match "application/octet-stream"3513 when using a user key (LFSToken)3514 when user allowed3515 behaves like LFS http 200 blob response3516 behaves like LFS http expected response code and message3517 is expected to match "application/octet-stream"3518 when user password is expired3519 behaves like LFS http 401 response3520 behaves like LFS http expected response code and message3521 is expected to match "text/plain"3522 when user is blocked3523 behaves like LFS http 401 response3524 behaves like LFS http expected response code and message3525 is expected to match "text/plain"3526 when user not allowed3527 behaves like LFS http 404 response3528 behaves like LFS http expected response code and message3529 is expected to match "application/vnd.git-lfs+json"3530 when build is authorized as3531 administrator3532 behaves like can download LFS only from own projects3533 for owned project3534 behaves like LFS http 200 blob response3535 behaves like LFS http expected response code and message3536 is expected to match "application/octet-stream"3537 for member of project3538 behaves like LFS http 200 blob response3539 behaves like LFS http expected response code and message3540 is expected to match "application/octet-stream"3541 for other project3542 rejects downloading code3543 regular user3544 behaves like can download LFS only from own projects3545 for owned project3546 behaves like LFS http 200 blob response3547 behaves like LFS http expected response code and message3548 is expected to match "application/octet-stream"3549 for member of project3550 behaves like LFS http 200 blob response3551 behaves like LFS http expected response code and message3552 is expected to match "application/octet-stream"3553 for other project3554 rejects downloading code3555 does not have user3556 behaves like can download LFS only from own projects3557 for owned project3558 behaves like LFS http 200 blob response3559 behaves like LFS http expected response code and message3560 is expected to match "application/octet-stream"3561 for member of project3562 behaves like LFS http 200 blob response3563 behaves like LFS http expected response code and message3564 is expected to match "application/octet-stream"3565 for other project3566 rejects downloading code3567 when handling LFS batch request3568 download3569 when user is authenticated3570 behaves like an authorized request3571 when downloading an LFS object that is assigned to our project3572 with href to download3573 behaves like LFS http 200 response3574 behaves like LFS http expected response code and message3575 is expected to match "application/vnd.git-lfs+json"3576 behaves like process authorization header3577 when the authorization comes from a user3578 returns a new valid LFS token authorization3579 returns a valid token3580 generates only one new token per each request3581 when downloading an LFS object that is assigned to other project3582 with an 404 for specific object3583 behaves like LFS http 200 response3584 behaves like LFS http expected response code and message3585 is expected to match "application/vnd.git-lfs+json"3586 when downloading a LFS object that does not exist3587 with an 404 for specific object3588 behaves like LFS http 200 response3589 behaves like LFS http expected response code and message3590 is expected to match "application/vnd.git-lfs+json"3591 when downloading one existing and one missing LFS object3592 responds with download hypermedia link for the existing object3593 behaves like LFS http 200 response3594 behaves like LFS http expected response code and message3595 is expected to match "application/vnd.git-lfs+json"3596 behaves like process authorization header3597 when the authorization comes from a user3598 returns a new valid LFS token authorization3599 returns a valid token3600 generates only one new token per each request3601 when downloading two existing LFS objects3602 responds with the download hypermedia link for each object3603 behaves like process authorization header3604 when the authorization comes from a user3605 returns a new valid LFS token authorization3606 returns a valid token3607 generates only one new token per each request3608 when user is not a member of the project3609 behaves like LFS http 404 response3610 behaves like LFS http expected response code and message3611 is expected to match "application/vnd.git-lfs+json"3612 when user does not have download access3613 behaves like LFS http 404 response3614 behaves like LFS http expected response code and message3615 is expected to match "application/vnd.git-lfs+json"3616 when user password is expired3617 behaves like LFS http 401 response3618 behaves like LFS http expected response code and message3619 is expected to match "text/plain"3620 when user is blocked3621 behaves like LFS http 401 response3622 behaves like LFS http expected response code and message3623 is expected to match "text/plain"3624 when using Deploy Tokens3625 when Deploy Token is not valid3626 behaves like LFS http 401 response3627 behaves like LFS http expected response code and message3628 is expected to match "text/plain"3629 when Deploy Token is not related to the project3630 behaves like LFS http 401 response3631 behaves like LFS http expected response code and message3632 is expected to match "text/plain"3633 when deploy token is from an unrelated group to the project3634 behaves like LFS http 401 response3635 behaves like LFS http expected response code and message3636 is expected to match "text/plain"3637 when deploy token is from a parent group of the project and valid3638 behaves like an authorized request3639 when downloading an LFS object that is assigned to our project3640 with href to download3641 behaves like LFS http 200 response3642 behaves like LFS http expected response code and message3643 is expected to match "application/vnd.git-lfs+json"3644 behaves like process authorization header3645 when the authorization comes from a token3646 returns the same authorization header3647 when downloading an LFS object that is assigned to other project3648 with an 404 for specific object3649 behaves like LFS http 200 response3650 behaves like LFS http expected response code and message3651 is expected to match "application/vnd.git-lfs+json"3652 when downloading a LFS object that does not exist3653 with an 404 for specific object3654 behaves like LFS http 200 response3655 behaves like LFS http expected response code and message3656 is expected to match "application/vnd.git-lfs+json"3657 when downloading one existing and one missing LFS object3658 responds with download hypermedia link for the existing object3659 behaves like LFS http 200 response3660 behaves like LFS http expected response code and message3661 is expected to match "application/vnd.git-lfs+json"3662 behaves like process authorization header3663 when the authorization comes from a token3664 returns the same authorization header3665 when downloading two existing LFS objects3666 responds with the download hypermedia link for each object3667 behaves like process authorization header3668 when the authorization comes from a token3669 returns the same authorization header3670 when Deploy Token is valid3671 behaves like an authorized request3672 when downloading an LFS object that is assigned to our project3673 with href to download3674 behaves like LFS http 200 response3675 behaves like LFS http expected response code and message3676 is expected to match "application/vnd.git-lfs+json"3677 behaves like process authorization header3678 when the authorization comes from a token3679 returns the same authorization header3680 when downloading an LFS object that is assigned to other project3681 with an 404 for specific object3682 behaves like LFS http 200 response3683 behaves like LFS http expected response code and message3684 is expected to match "application/vnd.git-lfs+json"3685 when downloading a LFS object that does not exist3686 with an 404 for specific object3687 behaves like LFS http 200 response3688 behaves like LFS http expected response code and message3689 is expected to match "application/vnd.git-lfs+json"3690 when downloading one existing and one missing LFS object3691 responds with download hypermedia link for the existing object3692 behaves like LFS http 200 response3693 behaves like LFS http expected response code and message3694 is expected to match "application/vnd.git-lfs+json"3695 behaves like process authorization header3696 when the authorization comes from a token3697 returns the same authorization header3698 when downloading two existing LFS objects3699 responds with the download hypermedia link for each object3700 behaves like process authorization header3701 when the authorization comes from a token3702 returns the same authorization header3703 when build is authorized as3704 administrator3705 behaves like can download LFS only from own projects3706 for own project3707 behaves like an authorized request3708 when downloading an LFS object that is assigned to our project3709 with href to download3710 behaves like LFS http 200 response3711 behaves like LFS http expected response code and message3712 is expected to match "application/vnd.git-lfs+json"3713 behaves like process authorization header3714 when the authorization comes from a user3715 returns a new valid LFS token authorization3716 returns a valid token3717 generates only one new token per each request3718 when downloading an LFS object that is assigned to other project3719 with an 404 for specific object3720 behaves like LFS http 200 response3721 behaves like LFS http expected response code and message3722 is expected to match "application/vnd.git-lfs+json"3723 when downloading a LFS object that does not exist3724 with an 404 for specific object3725 behaves like LFS http 200 response3726 behaves like LFS http expected response code and message3727 is expected to match "application/vnd.git-lfs+json"3728 when downloading one existing and one missing LFS object3729 responds with download hypermedia link for the existing object3730 behaves like LFS http 200 response3731 behaves like LFS http expected response code and message3732 is expected to match "application/vnd.git-lfs+json"3733 behaves like process authorization header3734 when the authorization comes from a user3735 returns a new valid LFS token authorization3736 returns a valid token3737 generates only one new token per each request3738 when downloading two existing LFS objects3739 responds with the download hypermedia link for each object3740 behaves like process authorization header3741 when the authorization comes from a user3742 returns a new valid LFS token authorization3743 returns a valid token3744 generates only one new token per each request3745 for other project3746 rejects downloading code3747 regular user3748 behaves like can download LFS only from own projects3749 for own project3750 behaves like an authorized request3751 when downloading an LFS object that is assigned to our project3752 with href to download3753 behaves like LFS http 200 response3754 behaves like LFS http expected response code and message3755 is expected to match "application/vnd.git-lfs+json"3756 behaves like process authorization header3757 when the authorization comes from a user3758 returns a new valid LFS token authorization3759 returns a valid token3760 generates only one new token per each request3761 when downloading an LFS object that is assigned to other project3762 with an 404 for specific object3763 behaves like LFS http 200 response3764 behaves like LFS http expected response code and message3765 is expected to match "application/vnd.git-lfs+json"3766 when downloading a LFS object that does not exist3767 with an 404 for specific object3768 behaves like LFS http 200 response3769 behaves like LFS http expected response code and message3770 is expected to match "application/vnd.git-lfs+json"3771 when downloading one existing and one missing LFS object3772 responds with download hypermedia link for the existing object3773 behaves like LFS http 200 response3774 behaves like LFS http expected response code and message3775 is expected to match "application/vnd.git-lfs+json"3776 behaves like process authorization header3777 when the authorization comes from a user3778 returns a new valid LFS token authorization3779 returns a valid token3780 generates only one new token per each request3781 when downloading two existing LFS objects3782 responds with the download hypermedia link for each object3783 behaves like process authorization header3784 when the authorization comes from a user3785 returns a new valid LFS token authorization3786 returns a valid token3787 generates only one new token per each request3788 for other project3789 rejects downloading code3790 does not have user3791 behaves like can download LFS only from own projects3792 for own project3793 behaves like an authorized request3794 when downloading an LFS object that is assigned to our project3795 with href to download3796 behaves like LFS http 200 response3797 behaves like LFS http expected response code and message3798 is expected to match "application/vnd.git-lfs+json"3799 behaves like process authorization header3800 when the authorization comes from a token3801 returns the same authorization header3802 when downloading an LFS object that is assigned to other project3803 with an 404 for specific object3804 behaves like LFS http 200 response3805 behaves like LFS http expected response code and message3806 is expected to match "application/vnd.git-lfs+json"3807 when downloading a LFS object that does not exist3808 with an 404 for specific object3809 behaves like LFS http 200 response3810 behaves like LFS http expected response code and message3811 is expected to match "application/vnd.git-lfs+json"3812 when downloading one existing and one missing LFS object3813 responds with download hypermedia link for the existing object3814 behaves like LFS http 200 response3815 behaves like LFS http expected response code and message3816 is expected to match "application/vnd.git-lfs+json"3817 behaves like process authorization header3818 when the authorization comes from a token3819 returns the same authorization header3820 when downloading two existing LFS objects3821 responds with the download hypermedia link for each object3822 behaves like process authorization header3823 when the authorization comes from a token3824 returns the same authorization header3825 for other project3826 rejects downloading code3827 when user is not authenticated3828 is accessing public project3829 returns href to download3830 behaves like LFS http 200 response3831 behaves like LFS http expected response code and message3832 is expected to match "application/vnd.git-lfs+json"3833 is accessing non-public project3834 behaves like LFS http 401 response3835 behaves like LFS http expected response code and message3836 is expected to match "text/plain"3837 upload3838 when request is authenticated3839 when user has project push access3840 when pushing an LFS object that already exists3841 in another project3842 behaves like batch upload with existing LFS object3843 responds with links to the object in the project3844 behaves like LFS http 200 response3845 behaves like LFS http expected response code and message3846 is expected to match "application/vnd.git-lfs+json"3847 behaves like process authorization header3848 when the authorization comes from a user3849 returns a new valid LFS token authorization3850 returns a valid token3851 generates only one new token per each request3852 in source of fork project3853 when user has access to both the parent and fork3854 links existing LFS objects to other project3855 when user does not have access to parent3856 behaves like batch upload with existing LFS object3857 responds with links to the object in the project3858 behaves like LFS http 200 response3859 behaves like LFS http expected response code and message3860 is expected to match "application/vnd.git-lfs+json"3861 behaves like process authorization header3862 when the authorization comes from a user3863 returns a new valid LFS token authorization3864 returns a valid token3865 generates only one new token per each request3866 when pushing a LFS object that does not exist3867 behaves like pushes new LFS objects3868 responds with upload hypermedia link3869 behaves like LFS http 200 response3870 behaves like LFS http expected response code and message3871 is expected to match "application/vnd.git-lfs+json"3872 behaves like process authorization header3873 when the authorization comes from a user3874 returns a new valid LFS token authorization3875 returns a valid token3876 generates only one new token per each request3877 when pushing one new and one existing LFS object3878 responds with upload hypermedia link for the new object3879 behaves like LFS http 200 response3880 behaves like LFS http expected response code and message3881 is expected to match "application/vnd.git-lfs+json"3882 behaves like process authorization header3883 when the authorization comes from a user3884 returns a new valid LFS token authorization3885 returns a valid token3886 generates only one new token per each request3887 when user does not have push access3888 behaves like LFS http 403 response3889 behaves like LFS http expected response code and message3890 is expected to eq "Access forbidden. Check your access level."3891 when build is authorized3892 build has an user3893 tries to push to own project3894 behaves like LFS http 403 response3895 behaves like LFS http expected response code and message3896 is expected to eq "Access forbidden. Check your access level."3897 tries to push to other project3898 behaves like LFS http 403 response3899 behaves like LFS http expected response code and message3900 is expected to eq "Access forbidden. Check your access level."3901 does not have user3902 behaves like LFS http 403 response3903 behaves like LFS http expected response code and message3904 is expected to eq "Access forbidden. Check your access level."3905 when deploy key has project push access3906 behaves like pushes new LFS objects3907 responds with upload hypermedia link3908 behaves like LFS http 200 response3909 behaves like LFS http expected response code and message3910 is expected to match "application/vnd.git-lfs+json"3911 behaves like process authorization header3912 when the authorization comes from a token3913 returns the same authorization header3914 when user is not authenticated3915 when user has push access3916 behaves like LFS http 401 response3917 behaves like LFS http expected response code and message3918 is expected to match "text/plain"3919 when user does not have push access3920 behaves like LFS http 401 response3921 behaves like LFS http expected response code and message3922 is expected to match "text/plain"3923 unsupported3924 behaves like LFS http 404 response3925 behaves like LFS http expected response code and message3926 is expected to match "application/vnd.git-lfs+json"3927 when handling LFS batch request on a read-only GitLab instance3928 when downloading3929 behaves like LFS http 200 response3930 behaves like LFS http expected response code and message3931 is expected to match "application/vnd.git-lfs+json"3932 when uploading3933 behaves like LFS http expected response code and message3934 is expected to eq "You cannot write to this read-only GitLab instance."3935 when pushing a LFS object3936 to one project3937 when user is authenticated3938 when user has push access to the project3939 and the request bypassed workhorse3940 raises an exception3941 and request is sent by gitlab-workhorse to authorize the request3942 when using local storage3943 behaves like a local file3944 behaves like a valid response3945 responds with status 200, location of LFS store and object details3946 behaves like LFS http 200 workhorse response3947 behaves like LFS http expected response code and message3948 is expected to match "application/vnd.gitlab-workhorse+json"3949 when using remote storage3950 when direct upload is enabled3951 behaves like a valid response3952 responds with status 200, location of LFS remote store and object details3953 behaves like LFS http 200 workhorse response3954 behaves like LFS http expected response code and message3955 is expected to match "application/vnd.gitlab-workhorse+json"3956 when direct upload is disabled3957 behaves like a local file3958 behaves like a valid response3959 responds with status 200, location of LFS store and object details3960 behaves like LFS http 200 workhorse response3961 behaves like LFS http expected response code and message3962 is expected to match "application/vnd.gitlab-workhorse+json"3963 and request is sent by gitlab-workhorse to finalize the upload3964 LFS object is linked to the project3965 behaves like LFS http 200 response3966 behaves like LFS http expected response code and message3967 is expected to match "application/vnd.git-lfs+json"3968 and request to finalize the upload is not sent by gitlab-workhorse3969 fails with a JWT decode error3970 and the uploaded file is invalid3971 size: nil, sha256: nil, status: :ok3972 validates the upload size and SHA2563973 size: 0, sha256: nil, status: :bad_request3974 validates the upload size and SHA2563975 size: nil, sha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", status: :bad_request3976 validates the upload size and SHA2563977 and workhorse requests upload finalize for a new LFS object3978 with object storage enabled3979 and direct upload enabled3980 with invalid remote_id: 1231233981 responds with status 4033982 with invalid remote_id: ../../1231233983 responds with status 4033984 with valid remote_id3985 responds with status 2003986 schedules migration of file to object storage3987 have valid file3988 without the lfs object3989 rejects slashes in the tempfile name (path traversal)3990 not sending the workhorse jwt header3991 rejects the request3992 and user does not have push access3993 behaves like forbidden3994 and request is sent by gitlab-workhorse to authorize the request3995 behaves like LFS http 403 response3996 behaves like LFS http expected response code and message3997 is expected to eq "Access forbidden. Check your access level."3998 and request is sent by gitlab-workhorse to finalize the upload3999 behaves like LFS http 403 response4000 behaves like LFS http expected response code and message4001 is expected to eq "Access forbidden. Check your access level."4002 and request is sent with a malformed headers4003 behaves like LFS http 403 response4004 behaves like LFS http expected response code and message4005 is expected to eq "Access forbidden. Check your access level."4006 when build is authorized4007 build has an user4008 tries to push to own project4009 behaves like LFS http 403 response4010 behaves like LFS http expected response code and message4011 is expected to eq "Access forbidden. Check your access level."4012 tries to push to other project4013 behaves like LFS http 404 response4014 behaves like LFS http expected response code and message4015 is expected to match "application/vnd.git-lfs+json"4016 does not have user4017 behaves like LFS http 403 response4018 behaves like LFS http expected response code and message4019 is expected to eq "Access forbidden. Check your access level."4020 when using a user key (LFSToken)4021 when user allowed4022 behaves like LFS http 200 workhorse response4023 behaves like LFS http expected response code and message4024 is expected to match "application/vnd.gitlab-workhorse+json"4025 when user password is expired4026 behaves like LFS http 401 response4027 behaves like LFS http expected response code and message4028 is expected to match "text/plain"4029 when user is blocked4030 behaves like LFS http 401 response4031 behaves like LFS http expected response code and message4032 is expected to match "text/plain"4033 when user not allowed4034 behaves like LFS http 404 response4035 behaves like LFS http expected response code and message4036 is expected to match "application/vnd.git-lfs+json"4037 for unauthenticated4038 behaves like unauthorized4039 and request is sent by gitlab-workhorse to authorize the request4040 behaves like LFS http 401 response4041 behaves like LFS http expected response code and message4042 is expected to match "text/plain"4043 and request is sent by gitlab-workhorse to finalize the upload4044 behaves like LFS http 401 response4045 behaves like LFS http expected response code and message4046 is expected to match "text/plain"4047 and request is sent with a malformed headers4048 behaves like LFS http 401 response4049 behaves like LFS http expected response code and message4050 is expected to match "text/plain"4051 to a forked project4052 when user is authenticated4053 when user has push access to the project4054 and request is sent by gitlab-workhorse to authorize the request4055 with location of LFS store and object details4056 behaves like LFS http 200 workhorse response4057 behaves like LFS http expected response code and message4058 is expected to match "application/vnd.gitlab-workhorse+json"4059 and request is sent by gitlab-workhorse to finalize the upload4060 LFS object is linked to the forked project4061 behaves like LFS http 200 response4062 behaves like LFS http expected response code and message4063 is expected to match "application/vnd.git-lfs+json"4064 when user has push access to upstream project4065 an MR exists on target forked project4066 with allow_collaboration option set to true4067 and request is sent by gitlab-workhorse to authorize the request4068 behaves like LFS http 200 workhorse response4069 behaves like LFS http expected response code and message4070 is expected to match "application/vnd.gitlab-workhorse+json"4071 and request is sent by gitlab-workhorse to finalize the upload4072 behaves like LFS http 200 response4073 behaves like LFS http expected response code and message4074 is expected to match "application/vnd.git-lfs+json"4075 with allow_collaboration option set to false4076 request is sent by gitlab-workhorse to authorize the request4077 behaves like forbidden4078 and request is sent by gitlab-workhorse to authorize the request4079 behaves like LFS http 403 response4080 behaves like LFS http expected response code and message4081 is expected to eq "Access forbidden. Check your access level."4082 and request is sent by gitlab-workhorse to finalize the upload4083 behaves like LFS http 403 response4084 behaves like LFS http expected response code and message4085 is expected to eq "Access forbidden. Check your access level."4086 and request is sent with a malformed headers4087 behaves like LFS http 403 response4088 behaves like LFS http expected response code and message4089 is expected to eq "Access forbidden. Check your access level."4090 and user does not have push access4091 behaves like forbidden4092 and request is sent by gitlab-workhorse to authorize the request4093 behaves like LFS http 403 response4094 behaves like LFS http expected response code and message4095 is expected to eq "Access forbidden. Check your access level."4096 and request is sent by gitlab-workhorse to finalize the upload4097 behaves like LFS http 403 response4098 behaves like LFS http expected response code and message4099 is expected to eq "Access forbidden. Check your access level."4100 and request is sent with a malformed headers4101 behaves like LFS http 403 response4102 behaves like LFS http expected response code and message4103 is expected to eq "Access forbidden. Check your access level."4104 when build is authorized4105 build has an user4106 tries to push to own project4107 behaves like LFS http 403 response4108 behaves like LFS http expected response code and message4109 is expected to eq "Access forbidden. Check your access level."4110 tries to push to other project4111 behaves like LFS http 403 response4112 behaves like LFS http expected response code and message4113 is expected to eq "Access forbidden. Check your access level."4114 does not have user4115 behaves like LFS http 403 response4116 behaves like LFS http expected response code and message4117 is expected to eq "Access forbidden. Check your access level."4118 for unauthenticated4119 behaves like unauthorized4120 and request is sent by gitlab-workhorse to authorize the request4121 behaves like LFS http 401 response4122 behaves like LFS http expected response code and message4123 is expected to match "text/plain"4124 and request is sent by gitlab-workhorse to finalize the upload4125 behaves like LFS http 401 response4126 behaves like LFS http expected response code and message4127 is expected to match "text/plain"4128 and request is sent with a malformed headers4129 behaves like LFS http 401 response4130 behaves like LFS http expected response code and message4131 is expected to match "text/plain"4132 and second project not related to fork or a source project4133 when pushing the same LFS object to the second project4134 links the LFS object to the project4135 behaves like LFS http 200 response4136 behaves like LFS http expected response code and message4137 is expected to match "application/vnd.git-lfs+json"4138 with project wikis4139 behaves like LFS http requests4140 when LFS is disabled globally4141 download request4142 behaves like LFS http 501 response4143 behaves like LFS http expected response code and message4144 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4145 upload request4146 behaves like LFS http 501 response4147 behaves like LFS http expected response code and message4148 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4149 unauthenticated4150 download request4151 behaves like LFS http 401 response4152 behaves like LFS http expected response code and message4153 is expected to match "text/plain"4154 upload request4155 behaves like LFS http 401 response4156 behaves like LFS http expected response code and message4157 is expected to match "text/plain"4158 without access4159 download request4160 behaves like LFS http 404 response4161 behaves like LFS http expected response code and message4162 is expected to match "application/vnd.git-lfs+json"4163 upload request4164 behaves like LFS http 404 response4165 behaves like LFS http expected response code and message4166 is expected to match "application/vnd.git-lfs+json"4167 with guest access4168 download request4169 behaves like LFS http 404 response4170 behaves like LFS http expected response code and message4171 is expected to match "application/vnd.git-lfs+json"4172 upload request4173 behaves like LFS http 404 response4174 behaves like LFS http expected response code and message4175 is expected to match "application/vnd.git-lfs+json"4176 with download permission4177 download request4178 behaves like LFS http 200 blob response4179 behaves like LFS http expected response code and message4180 is expected to match "application/octet-stream"4181 when container does not exist4182 behaves like LFS http 404 response4183 behaves like LFS http expected response code and message4184 is expected to match "application/vnd.git-lfs+json"4185 upload request4186 behaves like LFS http 403 response4187 behaves like LFS http expected response code and message4188 is expected to eq "Access forbidden. Check your access level."4189 with upload permission4190 upload request4191 behaves like LFS http 200 response4192 behaves like LFS http expected response code and message4193 is expected to match "application/vnd.git-lfs+json"4194 deprecated API4195 when fetching LFS object using deprecated API4196 behaves like deprecated request4197 behaves like LFS http expected response code and message4198 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4199 when handling LFS request using deprecated API4200 behaves like deprecated request4201 behaves like LFS http expected response code and message4202 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4203 with snippets4204 with project snippets4205 behaves like LFS http requests4206 when LFS is disabled globally4207 download request4208 behaves like LFS http 501 response4209 behaves like LFS http expected response code and message4210 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4211 upload request4212 behaves like LFS http 501 response4213 behaves like LFS http expected response code and message4214 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4215 unauthenticated4216 download request4217 behaves like LFS http 401 response4218 behaves like LFS http expected response code and message4219 is expected to match "text/plain"4220 upload request4221 behaves like LFS http 401 response4222 behaves like LFS http expected response code and message4223 is expected to match "text/plain"4224 without access4225 download request4226 behaves like LFS http 404 response4227 behaves like LFS http expected response code and message4228 is expected to match "application/vnd.git-lfs+json"4229 upload request4230 behaves like LFS http 404 response4231 behaves like LFS http expected response code and message4232 is expected to match "application/vnd.git-lfs+json"4233 with guest access4234 download request4235 behaves like LFS http 404 response4236 behaves like LFS http expected response code and message4237 is expected to match "application/vnd.git-lfs+json"4238 upload request4239 behaves like LFS http 404 response4240 behaves like LFS http expected response code and message4241 is expected to match "application/vnd.git-lfs+json"4242 with download permission4243 download request4244 behaves like LFS http 200 blob response4245 behaves like LFS http 404 response4246 behaves like LFS http expected response code and message4247 is expected to match "application/vnd.git-lfs+json"4248 when container does not exist4249 behaves like LFS http 404 response4250 behaves like LFS http expected response code and message4251 is expected to match "application/vnd.git-lfs+json"4252 upload request4253 behaves like LFS http 403 response4254 behaves like LFS http 404 response4255 behaves like LFS http expected response code and message4256 is expected to match "application/vnd.git-lfs+json"4257 with upload permission4258 upload request4259 behaves like LFS http 200 response4260 behaves like LFS http 404 response4261 behaves like LFS http expected response code and message4262 is expected to match "application/vnd.git-lfs+json"4263 deprecated API4264 when fetching LFS object using deprecated API4265 behaves like deprecated request4266 behaves like LFS http expected response code and message4267 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4268 when handling LFS request using deprecated API4269 behaves like deprecated request4270 behaves like LFS http expected response code and message4271 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4272 with personal snippets4273 behaves like LFS http requests4274 when LFS is disabled globally4275 download request4276 behaves like LFS http 501 response4277 behaves like LFS http expected response code and message4278 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4279 upload request4280 behaves like LFS http 501 response4281 behaves like LFS http expected response code and message4282 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4283 unauthenticated4284 download request4285 behaves like LFS http 401 response4286 behaves like LFS http expected response code and message4287 is expected to match "text/plain"4288 upload request4289 behaves like LFS http 401 response4290 behaves like LFS http expected response code and message4291 is expected to match "text/plain"4292 without access4293 download request4294 behaves like LFS http 404 response4295 behaves like LFS http expected response code and message4296 is expected to match "application/vnd.git-lfs+json"4297 upload request4298 behaves like LFS http 404 response4299 behaves like LFS http expected response code and message4300 is expected to match "application/vnd.git-lfs+json"4301 with guest access4302 download request4303 behaves like LFS http 404 response4304 behaves like LFS http expected response code and message4305 is expected to match "application/vnd.git-lfs+json"4306 upload request4307 behaves like LFS http 404 response4308 behaves like LFS http expected response code and message4309 is expected to match "application/vnd.git-lfs+json"4310 with download permission4311 download request4312 behaves like LFS http 200 blob response4313 behaves like LFS http 404 response4314 behaves like LFS http expected response code and message4315 is expected to match "application/vnd.git-lfs+json"4316 when container does not exist4317 behaves like LFS http 404 response4318 behaves like LFS http expected response code and message4319 is expected to match "application/vnd.git-lfs+json"4320 upload request4321 behaves like LFS http 403 response4322 behaves like LFS http 404 response4323 behaves like LFS http expected response code and message4324 is expected to match "application/vnd.git-lfs+json"4325 with upload permission4326 upload request4327 behaves like LFS http 200 response4328 behaves like LFS http 404 response4329 behaves like LFS http expected response code and message4330 is expected to match "application/vnd.git-lfs+json"4331 deprecated API4332 when fetching LFS object using deprecated API4333 behaves like deprecated request4334 behaves like LFS http expected response code and message4335 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4336 when handling LFS request using deprecated API4337 behaves like deprecated request4338 behaves like LFS http expected response code and message4339 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4340API::Issues4341 GET /groups/:id/issues4342 when group has subgroups4343 when user is unauthenticated4344 also returns subgroups public projects issues4345 also returns subgroups public projects issues filtered by milestone4346 issues_statistics4347 no state is treated as all state4348 behaves like group issues statistics4349 returns issues statistics4350 statistics when all state is passed4351 behaves like group issues statistics4352 returns issues statistics4353 closed state is treated as all state4354 behaves like group issues statistics4355 returns issues statistics4356 opened state is treated as all state4357 behaves like group issues statistics4358 returns issues statistics4359 when filtering by milestone and no state treated as all state4360 behaves like group issues statistics4361 returns issues statistics4362 when filtering by milestone and all state4363 behaves like group issues statistics4364 returns issues statistics4365 when filtering by milestone and closed state treated as all state4366 behaves like group issues statistics4367 returns issues statistics4368 when filtering by milestone and opened state treated as all state4369 behaves like group issues statistics4370 returns issues statistics4371 when user is a group member4372 also returns subgroups projects issues4373 also returns subgroups public projects issues filtered by milestone4374 issues_statistics4375 no state is treated as all state4376 behaves like group issues statistics4377 returns issues statistics4378 statistics when all state is passed4379 behaves like group issues statistics4380 returns issues statistics4381 closed state is treated as all state4382 behaves like group issues statistics4383 returns issues statistics4384 opened state is treated as all state4385 behaves like group issues statistics4386 returns issues statistics4387 when filtering by milestone and no state treated as all state4388 behaves like group issues statistics4389 returns issues statistics4390 when filtering by milestone and all state4391 behaves like group issues statistics4392 returns issues statistics4393 when filtering by milestone and closed state treated as all state4394 behaves like group issues statistics4395 returns issues statistics4396 when filtering by milestone and opened state treated as all state4397 behaves like group issues statistics4398 returns issues statistics4399 when returns issue merge_requests_count for different access levels4400 behaves like accessible merge requests count4401 returns anonymous accessible merge requests count4402 returns guest accessible merge requests count4403 returns reporter accessible merge requests count4404 returns admin accessible merge requests count4405 when user is unauthenticated4406 lists all issues in public projects4407 also returns subgroups public projects issues filtered by milestone4408 issues_statistics4409 no state is treated as all state4410 behaves like group issues statistics4411 returns issues statistics4412 statistics when all state is passed4413 behaves like group issues statistics4414 returns issues statistics4415 closed state is treated as all state4416 behaves like group issues statistics4417 returns issues statistics4418 opened state is treated as all state4419 behaves like group issues statistics4420 returns issues statistics4421 when filtering by milestone and no state treated as all state4422 behaves like group issues statistics4423 returns issues statistics4424 when filtering by milestone and all state4425 behaves like group issues statistics4426 returns issues statistics4427 when filtering by milestone and closed state treated as all state4428 behaves like group issues statistics4429 returns issues statistics4430 when filtering by milestone and opened state treated as all state4431 behaves like group issues statistics4432 returns issues statistics4433 when user is a group member4434 exposes known attributes4435 returns all group issues (including opened and closed)4436 returns group issues without confidential issues for non project members4437 returns group confidential issues for author4438 returns group confidential issues for assignee4439 returns group issues with confidential issues for project members4440 returns group confidential issues for admin4441 returns only confidential issues4442 returns only public issues4443 returns issues matching given search string for title4444 returns issues matching given search string for description4445 returns an array of issues found by iids4446 returns an empty array if iid does not exist4447 returns an empty array if no group issue matches labels4448 returns an array of group issues with any label4449 returns an array of group issues with any label with labels param as array4450 returns an array of group issues with no label4451 returns an array of group issues with no label with labels param as array4452 returns an empty array if no issue matches milestone4453 returns an empty array if milestone does not exist4454 returns an array of issues in given milestone4455 returns an array of issues matching state in milestone4456 returns an array of issues with no milestone4457 sorts ascending when requested4458 sorts by updated_at descending when requested4459 sorts by updated_at ascending when requested4460 labels parameter4461 returns an array of labeled group issues4462 returns an array of labeled group issues with labels param as array4463 returns an array of labeled group issues where all labels match4464 returns an array of labeled group issues where all labels match with labels param as array4465 with labeled issues4466 behaves like labeled issues with labels and label_name params4467 array of labeled issues when all labels match4468 behaves like returns label names4469 returns label names4470 array of labeled issues when all labels match with labels param as array4471 behaves like returns label names4472 returns label names4473 negation4474 array of labeled issues when all labels match with negation4475 behaves like returns negated label names4476 returns label names4477 array of labeled issues when all labels match with negation with label params as array4478 behaves like returns negated label names4479 returns label names4480 when with_labels_details provided4481 array of labeled issues when all labels match4482 behaves like returns basic label entity4483 returns basic label entity4484 array of labeled issues when all labels match with labels param as array4485 behaves like returns basic label entity4486 returns basic label entity4487 with archived projects4488 returns only non archived projects issues4489 returns issues from archived projects if non_archived it set to false4490 without sort params4491 sorts by created_at descending by default4492 with 2 issues with same created_at4493 page breaks first page correctly4494 page breaks second page correctly4495 issues_statistics4496 no state is treated as all state4497 behaves like group issues statistics4498 returns issues statistics4499 statistics when all state is passed4500 behaves like group issues statistics4501 returns issues statistics4502 closed state is treated as all state4503 behaves like group issues statistics4504 returns issues statistics4505 opened state is treated as all state4506 behaves like group issues statistics4507 returns issues statistics4508 when filtering by milestone and no state treated as all state4509 behaves like group issues statistics4510 returns issues statistics4511 when filtering by milestone and all state4512 behaves like group issues statistics4513 returns issues statistics4514 when filtering by milestone and closed state treated as all state4515 behaves like group issues statistics4516 returns issues statistics4517 when filtering by milestone and opened state treated as all state4518 behaves like group issues statistics4519 returns issues statistics4520 sort does not affect statistics4521 behaves like group issues statistics4522 returns issues statistics4523 filtering by assignee_username4524 returns issues with by assignee_username4525 returns issues by assignee_username as string4526 returns error when multiple assignees are passed4527 returns error when assignee_username and assignee_id are passed together4528 #to_reference4529 exposes reference path in context of group4530 referencing from parent group4531 exposes reference path in context of parent group4532API::Tags4533 GET /projects/:id/repository/tags4534 sorting4535 sorts by descending order by default4536 sorts by ascending order if specified4537 sorts by name in descending order when requested4538 sorts by name in ascending order when requested4539 sorts by version in ascending order when requested4540 searching4541 only returns searched tags4542 when unauthenticated and project is public4543 behaves like repository tags4544 returns the repository tags4545 when repository is disabled4546 behaves like 403 response4547 returns 4034548 when repository does not exist4549 behaves like 404 response4550 returns 4044551 when unauthenticated and project is private4552 behaves like 404 response4553 returns 4044554 when authenticated as a maintainer4555 behaves like repository tags4556 returns the repository tags4557 when repository is disabled4558 behaves like 403 response4559 returns 4034560 when repository does not exist4561 behaves like 404 response4562 returns 4044563 requesting with the escaped project full path4564 behaves like repository tags4565 returns the repository tags4566 when repository is disabled4567 behaves like 403 response4568 returns 4034569 when repository does not exist4570 behaves like 404 response4571 returns 4044572 when authenticated as a guest4573 behaves like 403 response4574 returns 4034575 with releases4576 returns an array of project tags with release info4577 with keyset pagination option4578 with gitaly pagination params4579 with high limit4580 returns all repository tags4581 with low limit4582 returns limited repository tags4583 with missing page token4584 behaves like 422 response4585 returns 4224586 cache expiry4587 is cached4588 when protected tag is changed4589 behaves like cache expired4590 isn't cached4591 when release is changed4592 behaves like cache expired4593 isn't cached4594 when project is changed4595 behaves like cache expired4596 isn't cached4597 when gitaly is unavailable4598 behaves like 503 response4599 returns 5034600 GET /projects/:id/repository/tags/:tag_name4601 when unauthenticated and project is public4602 behaves like repository tag4603 returns the repository branch4604 when tag does not exist4605 behaves like 404 response4606 returns 4044607 when repository is disabled4608 behaves like 403 response4609 returns 4034610 when unauthenticated and project is private4611 behaves like 404 response4612 returns 4044613 when authenticated as a maintainer4614 behaves like repository tag4615 returns the repository branch4616 when tag does not exist4617 behaves like 404 response4618 returns 4044619 when repository is disabled4620 behaves like 403 response4621 returns 4034622 requesting with the escaped project full path4623 behaves like repository tag4624 returns the repository branch4625 when tag does not exist4626 behaves like 404 response4627 returns 4044628 when repository is disabled4629 behaves like 403 response4630 returns 4034631 when authenticated as a guest4632 behaves like 403 response4633 returns 4034634 POST /projects/:id/repository/tags4635 when unauthenticated and project is private4636 behaves like 404 response4637 returns 4044638 when authenticated as a guest4639 behaves like 403 response4640 returns 4034641 when authenticated as a maintainer4642 returns 400 if tag name is invalid4643 returns 400 if tag already exists4644 returns 400 if ref name is invalid4645 when a protected branch doesn't already exist4646 behaves like repository new tag4647 creates a new tag4648 when repository is disabled4649 behaves like 403 response4650 returns 4034651 when tag contains a dot4652 behaves like repository new tag4653 creates a new tag4654 when repository is disabled4655 behaves like 403 response4656 returns 4034657 requesting with the escaped project full path4658 behaves like repository new tag4659 creates a new tag4660 when repository is disabled4661 behaves like 403 response4662 returns 4034663 when tag contains a dot4664 behaves like repository new tag4665 creates a new tag4666 when repository is disabled4667 behaves like 403 response4668 returns 4034669 annotated tag4670 creates a new annotated tag4671 DELETE /projects/:id/repository/tags/:tag_name4672 when authenticated as a maintainer4673 behaves like repository delete tag4674 deletes a tag4675 behaves like 412 response4676 for a modified ressource4677 returns 412 with a JSON error4678 for an unmodified ressource4679 returns 204 with an empty body4680 when tag does not exist4681 behaves like 404 response4682 returns 4044683 when repository is disabled4684 behaves like 403 response4685 returns 4034686 requesting with the escaped project full path4687 behaves like repository delete tag4688 deletes a tag4689 behaves like 412 response4690 for a modified ressource4691 returns 412 with a JSON error4692 for an unmodified ressource4693 returns 204 with an empty body4694 when tag does not exist4695 behaves like 404 response4696 returns 4044697 when repository is disabled4698 behaves like 403 response4699 returns 4034700API::ProjectDebianDistributions4701 POST projects/:id/debian_distributions4702 behaves like Debian distributions write endpoint4703 with valid container4704 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/4705 behaves like Debian distributions POST request4706 creates distribution4707 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4708 behaves like Debian distributions POST request4709 returns unauthorized4710 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4711 behaves like Debian distributions POST request4712 returns forbidden4713 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4714 behaves like Debian distributions POST request4715 returns forbidden4716 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4717 behaves like Debian distributions POST request4718 returns unauthorized4719 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4720 behaves like Debian distributions POST request4721 returns unauthorized4722 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/4723 behaves like Debian distributions POST request4724 creates distribution4725 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4726 behaves like Debian distributions POST request4727 returns forbidden4728 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4729 behaves like Debian distributions POST request4730 returns not_found4731 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4732 behaves like Debian distributions POST request4733 returns not_found4734 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4735 behaves like Debian distributions POST request4736 returns unauthorized4737 behaves like rejects Debian access with unknown container id4738 with an unknown container4739 as anonymous4740 behaves like Debian packages GET request4741 returns not_found4742 behaves like Debian API FIPS mode4743 when FIPS mode is enabled4744 behaves like returning response status4745 returns not_found4746 as authenticated user4747 behaves like Debian packages GET request4748 returns not_found4749 behaves like Debian API FIPS mode4750 when FIPS mode is enabled4751 behaves like returning response status4752 returns not_found4753 with invalid parameters4754 behaves like Debian distributions write endpoint4755 with valid container4756 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"codename":\["has already been taken"\]}}$/4757 behaves like Debian distributions GET request4758 returns bad_request and expected body4759 behaves like Debian API FIPS mode4760 when FIPS mode is enabled4761 behaves like returning response status4762 returns not_found4763 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4764 behaves like Debian distributions GET request4765 returns unauthorized4766 behaves like Debian API FIPS mode4767 when FIPS mode is enabled4768 behaves like returning response status4769 returns not_found4770 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4771 behaves like Debian distributions GET request4772 returns forbidden4773 behaves like Debian API FIPS mode4774 when FIPS mode is enabled4775 behaves like returning response status4776 returns not_found4777 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4778 behaves like Debian distributions GET request4779 returns forbidden4780 behaves like Debian API FIPS mode4781 when FIPS mode is enabled4782 behaves like returning response status4783 returns not_found4784 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4785 behaves like Debian distributions GET request4786 returns unauthorized4787 behaves like Debian API FIPS mode4788 when FIPS mode is enabled4789 behaves like returning response status4790 returns not_found4791 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4792 behaves like Debian distributions GET request4793 returns unauthorized4794 behaves like Debian API FIPS mode4795 when FIPS mode is enabled4796 behaves like returning response status4797 returns not_found4798 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"codename":\["has already been taken"\]}}$/4799 behaves like Debian distributions GET request4800 returns bad_request and expected body4801 behaves like Debian API FIPS mode4802 when FIPS mode is enabled4803 behaves like returning response status4804 returns not_found4805 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4806 behaves like Debian distributions GET request4807 returns forbidden4808 behaves like Debian API FIPS mode4809 when FIPS mode is enabled4810 behaves like returning response status4811 returns not_found4812 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4813 behaves like Debian distributions GET request4814 returns not_found4815 behaves like Debian API FIPS mode4816 when FIPS mode is enabled4817 behaves like returning response status4818 returns not_found4819 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4820 behaves like Debian distributions GET request4821 returns not_found4822 behaves like Debian API FIPS mode4823 when FIPS mode is enabled4824 behaves like returning response status4825 returns not_found4826 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4827 behaves like Debian distributions GET request4828 returns unauthorized4829 behaves like Debian API FIPS mode4830 when FIPS mode is enabled4831 behaves like returning response status4832 returns not_found4833 behaves like rejects Debian access with unknown container id4834 with an unknown container4835 as anonymous4836 behaves like Debian packages GET request4837 returns not_found4838 behaves like Debian API FIPS mode4839 when FIPS mode is enabled4840 behaves like returning response status4841 returns not_found4842 as authenticated user4843 behaves like Debian packages GET request4844 returns not_found4845 behaves like Debian API FIPS mode4846 when FIPS mode is enabled4847 behaves like returning response status4848 returns not_found4849 GET projects/:id/debian_distributions4850 behaves like Debian distributions read endpoint4851 with valid container4852 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"\]/4853 behaves like Debian distributions GET request4854 returns success and expected body4855 behaves like Debian API FIPS mode4856 when FIPS mode is enabled4857 behaves like returning response status4858 returns not_found4859 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"\]/4860 behaves like Debian distributions GET request4861 returns success and expected body4862 behaves like Debian API FIPS mode4863 when FIPS mode is enabled4864 behaves like returning response status4865 returns not_found4866 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"\]/4867 behaves like Debian distributions GET request4868 returns success and expected body4869 behaves like Debian API FIPS mode4870 when FIPS mode is enabled4871 behaves like returning response status4872 returns not_found4873 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4874 behaves like Debian distributions GET request4875 returns unauthorized4876 behaves like Debian API FIPS mode4877 when FIPS mode is enabled4878 behaves like returning response status4879 returns not_found4880 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"\]/4881 behaves like Debian distributions GET request4882 returns success and expected body4883 behaves like Debian API FIPS mode4884 when FIPS mode is enabled4885 behaves like returning response status4886 returns not_found4887 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil4888 behaves like Debian distributions GET request4889 returns not_found4890 behaves like Debian API FIPS mode4891 when FIPS mode is enabled4892 behaves like returning response status4893 returns not_found4894 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4895 behaves like Debian distributions GET request4896 returns forbidden4897 behaves like Debian API FIPS mode4898 when FIPS mode is enabled4899 behaves like returning response status4900 returns not_found4901 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4902 behaves like Debian distributions GET request4903 returns not_found4904 behaves like Debian API FIPS mode4905 when FIPS mode is enabled4906 behaves like returning response status4907 returns not_found4908 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4909 behaves like Debian distributions GET request4910 returns not_found4911 behaves like Debian API FIPS mode4912 when FIPS mode is enabled4913 behaves like returning response status4914 returns not_found4915 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4916 behaves like Debian distributions GET request4917 returns unauthorized4918 behaves like Debian API FIPS mode4919 when FIPS mode is enabled4920 behaves like returning response status4921 returns not_found4922 behaves like rejects Debian access with unknown container id4923 with an unknown container4924 as anonymous4925 behaves like Debian packages GET request4926 returns not_found4927 behaves like Debian API FIPS mode4928 when FIPS mode is enabled4929 behaves like returning response status4930 returns not_found4931 as authenticated user4932 behaves like Debian packages GET request4933 returns not_found4934 behaves like Debian API FIPS mode4935 when FIPS mode is enabled4936 behaves like returning response status4937 returns not_found4938 GET projects/:id/debian_distributions/:codename4939 behaves like Debian distributions read endpoint4940 with valid container4941 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"\]/4942 behaves like Debian distributions GET request4943 returns success and expected body4944 behaves like Debian API FIPS mode4945 when FIPS mode is enabled4946 behaves like returning response status4947 returns not_found4948 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"\]/4949 behaves like Debian distributions GET request4950 returns success and expected body4951 behaves like Debian API FIPS mode4952 when FIPS mode is enabled4953 behaves like returning response status4954 returns not_found4955 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"\]/4956 behaves like Debian distributions GET request4957 returns success and expected body4958 behaves like Debian API FIPS mode4959 when FIPS mode is enabled4960 behaves like returning response status4961 returns not_found4962 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4963 behaves like Debian distributions GET request4964 returns unauthorized4965 behaves like Debian API FIPS mode4966 when FIPS mode is enabled4967 behaves like returning response status4968 returns not_found4969 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"\]/4970 behaves like Debian distributions GET request4971 returns success and expected body4972 behaves like Debian API FIPS mode4973 when FIPS mode is enabled4974 behaves like returning response status4975 returns not_found4976 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil4977 behaves like Debian distributions GET request4978 returns not_found4979 behaves like Debian API FIPS mode4980 when FIPS mode is enabled4981 behaves like returning response status4982 returns not_found4983 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4984 behaves like Debian distributions GET request4985 returns forbidden4986 behaves like Debian API FIPS mode4987 when FIPS mode is enabled4988 behaves like returning response status4989 returns not_found4990 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4991 behaves like Debian distributions GET request4992 returns not_found4993 behaves like Debian API FIPS mode4994 when FIPS mode is enabled4995 behaves like returning response status4996 returns not_found4997 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4998 behaves like Debian distributions GET request4999 returns not_found5000 behaves like Debian API FIPS mode5001 when FIPS mode is enabled5002 behaves like returning response status5003 returns not_found5004 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5005 behaves like Debian distributions GET request5006 returns unauthorized5007 behaves like Debian API FIPS mode5008 when FIPS mode is enabled5009 behaves like returning response status5010 returns not_found5011 behaves like rejects Debian access with unknown container id5012 with an unknown container5013 as anonymous5014 behaves like Debian packages GET request5015 returns not_found5016 behaves like Debian API FIPS mode5017 when FIPS mode is enabled5018 behaves like returning response status5019 returns not_found5020 as authenticated user5021 behaves like Debian packages GET request5022 returns not_found5023 behaves like Debian API FIPS mode5024 when FIPS mode is enabled5025 behaves like returning response status5026 returns not_found5027 GET projects/:id/debian_distributions/:codename/key.asc5028 behaves like Debian distributions read endpoint5029 with valid container5030 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5031 behaves like Debian distributions GET request5032 returns success and expected body5033 behaves like Debian API FIPS mode5034 when FIPS mode is enabled5035 behaves like returning response status5036 returns not_found5037 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5038 behaves like Debian distributions GET request5039 returns success and expected body5040 behaves like Debian API FIPS mode5041 when FIPS mode is enabled5042 behaves like returning response status5043 returns not_found5044 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5045 behaves like Debian distributions GET request5046 returns success and expected body5047 behaves like Debian API FIPS mode5048 when FIPS mode is enabled5049 behaves like returning response status5050 returns not_found5051 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5052 behaves like Debian distributions GET request5053 returns unauthorized5054 behaves like Debian API FIPS mode5055 when FIPS mode is enabled5056 behaves like returning response status5057 returns not_found5058 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5059 behaves like Debian distributions GET request5060 returns success and expected body5061 behaves like Debian API FIPS mode5062 when FIPS mode is enabled5063 behaves like returning response status5064 returns not_found5065 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil5066 behaves like Debian distributions GET request5067 returns not_found5068 behaves like Debian API FIPS mode5069 when FIPS mode is enabled5070 behaves like returning response status5071 returns not_found5072 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5073 behaves like Debian distributions GET request5074 returns forbidden5075 behaves like Debian API FIPS mode5076 when FIPS mode is enabled5077 behaves like returning response status5078 returns not_found5079 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5080 behaves like Debian distributions GET request5081 returns not_found5082 behaves like Debian API FIPS mode5083 when FIPS mode is enabled5084 behaves like returning response status5085 returns not_found5086 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5087 behaves like Debian distributions GET request5088 returns not_found5089 behaves like Debian API FIPS mode5090 when FIPS mode is enabled5091 behaves like returning response status5092 returns not_found5093 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5094 behaves like Debian distributions GET request5095 returns unauthorized5096 behaves like Debian API FIPS mode5097 when FIPS mode is enabled5098 behaves like returning response status5099 returns not_found5100 behaves like rejects Debian access with unknown container id5101 with an unknown container5102 as anonymous5103 behaves like Debian packages GET request5104 returns not_found5105 behaves like Debian API FIPS mode5106 when FIPS mode is enabled5107 behaves like returning response status5108 returns not_found5109 as authenticated user5110 behaves like Debian packages GET request5111 returns not_found5112 behaves like Debian API FIPS mode5113 when FIPS mode is enabled5114 behaves like returning response status5115 returns not_found5116 PUT projects/:id/debian_distributions/:codename5117 behaves like Debian distributions write endpoint5118 with valid container5119 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/5120 behaves like Debian distributions PUT request5121 updates distribution5122 behaves like Debian API FIPS mode5123 when FIPS mode is enabled5124 behaves like returning response status5125 returns not_found5126 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5127 behaves like Debian distributions PUT request5128 returns unauthorized5129 behaves like Debian API FIPS mode5130 when FIPS mode is enabled5131 behaves like returning response status5132 returns not_found5133 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5134 behaves like Debian distributions PUT request5135 returns forbidden5136 behaves like Debian API FIPS mode5137 when FIPS mode is enabled5138 behaves like returning response status5139 returns not_found5140 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5141 behaves like Debian distributions PUT request5142 returns forbidden5143 behaves like Debian API FIPS mode5144 when FIPS mode is enabled5145 behaves like returning response status5146 returns not_found5147 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5148 behaves like Debian distributions PUT request5149 returns unauthorized5150 behaves like Debian API FIPS mode5151 when FIPS mode is enabled5152 behaves like returning response status5153 returns not_found5154 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5155 behaves like Debian distributions PUT request5156 returns unauthorized5157 behaves like Debian API FIPS mode5158 when FIPS mode is enabled5159 behaves like returning response status5160 returns not_found5161 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/5162 behaves like Debian distributions PUT request5163 updates distribution5164 behaves like Debian API FIPS mode5165 when FIPS mode is enabled5166 behaves like returning response status5167 returns not_found5168 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5169 behaves like Debian distributions PUT request5170 returns forbidden5171 behaves like Debian API FIPS mode5172 when FIPS mode is enabled5173 behaves like returning response status5174 returns not_found5175 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5176 behaves like Debian distributions PUT request5177 returns not_found5178 behaves like Debian API FIPS mode5179 when FIPS mode is enabled5180 behaves like returning response status5181 returns not_found5182 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5183 behaves like Debian distributions PUT request5184 returns not_found5185 behaves like Debian API FIPS mode5186 when FIPS mode is enabled5187 behaves like returning response status5188 returns not_found5189 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5190 behaves like Debian distributions PUT request5191 returns unauthorized5192 behaves like Debian API FIPS mode5193 when FIPS mode is enabled5194 behaves like returning response status5195 returns not_found5196 behaves like rejects Debian access with unknown container id5197 with an unknown container5198 as anonymous5199 behaves like Debian packages GET request5200 returns not_found5201 behaves like Debian API FIPS mode5202 when FIPS mode is enabled5203 behaves like returning response status5204 returns not_found5205 as authenticated user5206 behaves like Debian packages GET request5207 returns not_found5208 behaves like Debian API FIPS mode5209 when FIPS mode is enabled5210 behaves like returning response status5211 returns not_found5212 with invalid parameters5213 behaves like Debian distributions write endpoint5214 with valid container5215 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"suite":\["has already been taken as Codename"\]}}$/5216 behaves like Debian distributions GET request5217 returns bad_request and expected body5218 behaves like Debian API FIPS mode5219 when FIPS mode is enabled5220 behaves like returning response status5221 returns not_found5222 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5223 behaves like Debian distributions GET request5224 returns unauthorized5225 behaves like Debian API FIPS mode5226 when FIPS mode is enabled5227 behaves like returning response status5228 returns not_found5229 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5230 behaves like Debian distributions GET request5231 returns forbidden5232 behaves like Debian API FIPS mode5233 when FIPS mode is enabled5234 behaves like returning response status5235 returns not_found5236 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5237 behaves like Debian distributions GET request5238 returns forbidden5239 behaves like Debian API FIPS mode5240 when FIPS mode is enabled5241 behaves like returning response status5242 returns not_found5243 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5244 behaves like Debian distributions GET request5245 returns unauthorized5246 behaves like Debian API FIPS mode5247 when FIPS mode is enabled5248 behaves like returning response status5249 returns not_found5250 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5251 behaves like Debian distributions GET request5252 returns unauthorized5253 behaves like Debian API FIPS mode5254 when FIPS mode is enabled5255 behaves like returning response status5256 returns not_found5257 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"suite":\["has already been taken as Codename"\]}}$/5258 behaves like Debian distributions GET request5259 returns bad_request and expected body5260 behaves like Debian API FIPS mode5261 when FIPS mode is enabled5262 behaves like returning response status5263 returns not_found5264 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5265 behaves like Debian distributions GET request5266 returns forbidden5267 behaves like Debian API FIPS mode5268 when FIPS mode is enabled5269 behaves like returning response status5270 returns not_found5271 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5272 behaves like Debian distributions GET request5273 returns not_found5274 behaves like Debian API FIPS mode5275 when FIPS mode is enabled5276 behaves like returning response status5277 returns not_found5278 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5279 behaves like Debian distributions GET request5280 returns not_found5281 behaves like Debian API FIPS mode5282 when FIPS mode is enabled5283 behaves like returning response status5284 returns not_found5285 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5286 behaves like Debian distributions GET request5287 returns unauthorized5288 behaves like Debian API FIPS mode5289 when FIPS mode is enabled5290 behaves like returning response status5291 returns not_found5292 behaves like rejects Debian access with unknown container id5293 with an unknown container5294 as anonymous5295 behaves like Debian packages GET request5296 returns not_found5297 behaves like Debian API FIPS mode5298 when FIPS mode is enabled5299 behaves like returning response status5300 returns not_found5301 as authenticated user5302 behaves like Debian packages GET request5303 returns not_found5304 behaves like Debian API FIPS mode5305 when FIPS mode is enabled5306 behaves like returning response status5307 returns not_found5308 DELETE projects/:id/debian_distributions/:codename5309 behaves like Debian distributions maintainer write endpoint5310 with valid container5311 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/5312 behaves like Debian distributions DELETE request5313 updates distribution5314 behaves like Debian API FIPS mode5315 when FIPS mode is enabled5316 behaves like returning response status5317 returns not_found5318 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5319 behaves like Debian distributions DELETE request5320 returns unauthorized5321 behaves like Debian API FIPS mode5322 when FIPS mode is enabled5323 behaves like returning response status5324 returns not_found5325 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5326 behaves like Debian distributions DELETE request5327 returns forbidden5328 behaves like Debian API FIPS mode5329 when FIPS mode is enabled5330 behaves like returning response status5331 returns not_found5332 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5333 behaves like Debian distributions DELETE request5334 returns forbidden5335 behaves like Debian API FIPS mode5336 when FIPS mode is enabled5337 behaves like returning response status5338 returns not_found5339 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5340 behaves like Debian distributions DELETE request5341 returns unauthorized5342 behaves like Debian API FIPS mode5343 when FIPS mode is enabled5344 behaves like returning response status5345 returns not_found5346 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5347 behaves like Debian distributions DELETE request5348 returns unauthorized5349 behaves like Debian API FIPS mode5350 when FIPS mode is enabled5351 behaves like returning response status5352 returns not_found5353 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/5354 behaves like Debian distributions DELETE request5355 updates distribution5356 behaves like Debian API FIPS mode5357 when FIPS mode is enabled5358 behaves like returning response status5359 returns not_found5360 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5361 behaves like Debian distributions DELETE request5362 returns forbidden5363 behaves like Debian API FIPS mode5364 when FIPS mode is enabled5365 behaves like returning response status5366 returns not_found5367 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5368 behaves like Debian distributions DELETE request5369 returns not_found5370 behaves like Debian API FIPS mode5371 when FIPS mode is enabled5372 behaves like returning response status5373 returns not_found5374 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5375 behaves like Debian distributions DELETE request5376 returns not_found5377 behaves like Debian API FIPS mode5378 when FIPS mode is enabled5379 behaves like returning response status5380 returns not_found5381 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5382 behaves like Debian distributions DELETE request5383 returns unauthorized5384 behaves like Debian API FIPS mode5385 when FIPS mode is enabled5386 behaves like returning response status5387 returns not_found5388 behaves like rejects Debian access with unknown container id5389 with an unknown container5390 as anonymous5391 behaves like Debian packages GET request5392 returns not_found5393 behaves like Debian API FIPS mode5394 when FIPS mode is enabled5395 behaves like returning response status5396 returns not_found5397 as authenticated user5398 behaves like Debian packages GET request5399 returns not_found5400 behaves like Debian API FIPS mode5401 when FIPS mode is enabled5402 behaves like returning response status5403 returns not_found5404 when destroy fails5405 behaves like Debian distributions maintainer write endpoint5406 with valid container5407 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":"Failed to delete distribution"}$/5408 behaves like Debian distributions GET request5409 returns bad_request and expected body5410 behaves like Debian API FIPS mode5411 when FIPS mode is enabled5412 behaves like returning response status5413 returns not_found5414 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5415 behaves like Debian distributions GET request5416 returns unauthorized5417 behaves like Debian API FIPS mode5418 when FIPS mode is enabled5419 behaves like returning response status5420 returns not_found5421 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5422 behaves like Debian distributions GET request5423 returns forbidden5424 behaves like Debian API FIPS mode5425 when FIPS mode is enabled5426 behaves like returning response status5427 returns not_found5428 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5429 behaves like Debian distributions GET request5430 returns forbidden5431 behaves like Debian API FIPS mode5432 when FIPS mode is enabled5433 behaves like returning response status5434 returns not_found5435 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5436 behaves like Debian distributions GET request5437 returns unauthorized5438 behaves like Debian API FIPS mode5439 when FIPS mode is enabled5440 behaves like returning response status5441 returns not_found5442 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5443 behaves like Debian distributions GET request5444 returns unauthorized5445 behaves like Debian API FIPS mode5446 when FIPS mode is enabled5447 behaves like returning response status5448 returns not_found5449 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":"Failed to delete distribution"}$/5450 behaves like Debian distributions GET request5451 returns bad_request and expected body5452 behaves like Debian API FIPS mode5453 when FIPS mode is enabled5454 behaves like returning response status5455 returns not_found5456 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5457 behaves like Debian distributions GET request5458 returns forbidden5459 behaves like Debian API FIPS mode5460 when FIPS mode is enabled5461 behaves like returning response status5462 returns not_found5463 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5464 behaves like Debian distributions GET request5465 returns not_found5466 behaves like Debian API FIPS mode5467 when FIPS mode is enabled5468 behaves like returning response status5469 returns not_found5470 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5471 behaves like Debian distributions GET request5472 returns not_found5473 behaves like Debian API FIPS mode5474 when FIPS mode is enabled5475 behaves like returning response status5476 returns not_found5477 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5478 behaves like Debian distributions GET request5479 returns unauthorized5480 behaves like Debian API FIPS mode5481 when FIPS mode is enabled5482 behaves like returning response status5483 returns not_found5484 behaves like rejects Debian access with unknown container id5485 with an unknown container5486 as anonymous5487 behaves like Debian packages GET request5488 returns not_found5489 behaves like Debian API FIPS mode5490 when FIPS mode is enabled5491 behaves like returning response status5492 returns not_found5493 as authenticated user5494 behaves like Debian packages GET request5495 returns not_found5496 behaves like Debian API FIPS mode5497 when FIPS mode is enabled5498 behaves like returning response status5499 returns not_found5500Projects::ReleasesController5501 GET #index5502 as html5503 returns a text/html content_type5504 behaves like common access controls5505 renders a 2005506 when the project is private5507 when user is a developer5508 renders a 200 for a logged in developer5509 when user is an external user5510 renders a 404 when logged in but not in the project5511 when the project is private and the user is not logged in5512 returns a redirect5513 as json5514 returns an application/json content_type5515 returns the project's releases as JSON, ordered by released_at5516 behaves like common access controls5517 renders a 2005518 when the project is private5519 when user is a developer5520 renders a 200 for a logged in developer5521 when user is an external user5522 renders a 404 when logged in but not in the project5523 when the project is private and the user is not logged in5524 returns a redirect5525 GET #new5526 is expected to be denied for reporter. Expected: 401,404 Got: 4045527 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2005528 GET #edit5529 behaves like successful request5530 renders a 2005531 when tag name contains slash5532 is accesible at a URL encoded path5533 behaves like successful request5534 renders a 2005535 when release does not exist5536 behaves like not found5537 renders 4045538 when user is a reporter5539 behaves like not found5540 renders 4045541 GET #show5542 behaves like successful request5543 renders a 2005544 when tag name contains slash5545 is accesible at a URL encoded path5546 behaves like successful request5547 renders a 2005548 when release does not exist5549 behaves like not found5550 renders 4045551 when user is a guest5552 behaves like successful request5553 renders a 2005554 when user is an external user for the project5555 behaves like not found5556 GET #latest_permalink5557 when user is a guest5558 proceeds with the redirect5559 when user is an external user for the project5560 behaves like not found5561 when there are no releases for the project5562 behaves like not found5563 multiple releases5564 redirects to the latest release5565 suffix path redirection5566 redirects to the latest release with suffix path and format5567 suffix path abuse5568 raises attack error5569 url parameters5570 carries over query parameters without order_by parameter in the redirect5571 order_by parameter5572 invalid parameter5573 behaves like redirects to latest release ordered by using released_at5574 is expected to redirect to "/namespace111/project190/-/releases/latest"5575 valid parameter5576 behaves like redirects to latest release ordered by using released_at5577 is expected to redirect to "/namespace112/project191/-/releases/latest"5578API::Ci::Runners5579 GET /runners5580 authorized user5581 returns response status and headers5582 returns user available runners5583 filters runners by scope5584 avoids filtering if scope is invalid5585 filters runners by type5586 does not filter by invalid type5587 does not filter by invalid status5588 filters runners by tag_list5589 with an inactive runner5590 filters runners by paused state5591 filters runners by status5592 unauthorized user5593 does not return runners5594 GET /runners/all5595 authorized user5596 with admin privileges5597 returns response status and headers5598 returns all runners5599 filters runners by scope5600 filters runners by scope5601 avoids filtering if scope is invalid5602 filters runners by project type5603 filters runners by group type5604 does not filter by invalid type5605 does not filter by invalid status5606 filters runners by tag_list5607 with an inactive runner5608 filters runners by status5609 filters runners by status5610 without admin privileges5611 does not return runners list5612 unauthorized user5613 does not return runners5614 GET /runners/:id5615 admin user5616 returns 404 if runner does not exist5617 when runner is shared5618 returns runner's details5619 when runner is not shared5620 returns runner's details5621 returns the project's details for a project runner5622 when unused runner is present5623 deletes unused runner5624 when the runner is a group runner5625 returns the runner's details5626 runner project's administrative user5627 when runner is not shared5628 returns runner's details5629 when runner is shared5630 returns runner's details5631 other authorized user5632 does not return project runner's details5633 unauthorized user5634 does not return project runner's details5635 PUT /runners/:id5636 admin user5637 returns 404 if runner does not exist5638 single parameter update5639 runner description5640 runner active state5641 runner paused state5642 runner tag list5643 unrelated runner attribute on an existing runner with too many tags5644 runner untagged flag5645 runner unlocked flag5646 runner access level5647 runner maximum timeout5648 fails with no parameters5649 when runner is shared5650 updates runner5651 when runner is not shared5652 updates runner5653 authorized user5654 when runner is shared5655 does not update runner5656 when runner is not shared5657 does not update project runner without access to it5658 updates project runner with access to it5659 unauthorized user5660 does not delete project runner5661 DELETE /runners/:id5662 admin user5663 returns 404 if runner does not exist5664 when runner is shared5665 deletes runner5666 behaves like 412 response5667 for a modified ressource5668 returns 412 with a JSON error5669 for an unmodified ressource5670 returns 204 with an empty body5671 when runner is not shared5672 deletes used project runner5673 authorized user5674 when runner is shared5675 does not delete runner5676 when runner is not shared5677 does not delete runner without access to it5678 does not delete project runner with more than one associated project5679 deletes project runner for one owned project5680 does not delete group runner with guest access5681 does not delete group runner with reporter access5682 does not delete group runner with developer access5683 does not delete group runner with maintainer access5684 deletes owned group runner with owner access5685 deletes inherited group runner with owner access5686 behaves like 412 response5687 for a modified ressource5688 returns 412 with a JSON error5689 for an unmodified ressource5690 returns 204 with an empty body5691 unauthorized user5692 does not delete project runner5693 POST /runners/:id/reset_authentication_token5694 admin user5695 resets shared runner authentication token5696 returns 404 if runner does not exist5697 authorized user5698 does not reset project runner authentication token without access to it5699 resets project runner authentication token for owned project5700 does not reset group runner authentication token with guest access5701 does not reset group runner authentication token with reporter access5702 does not reset group runner authentication token with developer access5703 does not reset group runner authentication token with maintainer access5704 resets group runner authentication token with owner access5705 resets group runner authentication token with owner access with expiration time5706 unauthorized user5707 does not reset authentication token5708 GET /runners/:id/jobs5709 admin user5710 avoids N+1 DB queries5711 batches loading of commits5712 when runner exists5713 when runner is shared5714 return jobs5715 when runner is specific5716 return jobs5717 when user does not have authorization to see all jobs5718 shows only jobs it has permission to see5719 when valid status is provided5720 return filtered jobs5721 when valid order_by is provided5722 when sort order is not specified5723 return jobs in descending order5724 when sort order is specified as asc5725 return jobs sorted in ascending order5726 when invalid status is provided5727 return 4005728 when invalid order_by is provided5729 return 4005730 when invalid sort is provided5731 return 4005732 when runner doesn't exist5733 returns 4045734 runner project's administrative user5735 when runner exists5736 when runner is shared5737 returns 4035738 when runner is specific5739 return jobs5740 when valid status is provided5741 return filtered jobs5742 when invalid status is provided5743 return 4005744 when runner doesn't exist5745 returns 4045746 other authorized user5747 does not return jobs5748 unauthorized user5749 does not return jobs5750 GET /projects/:id/runners5751 authorized user with maintainer privileges5752 returns response status and headers5753 returns all runners5754 filters runners by scope5755 avoids filtering if scope is invalid5756 filters runners by type5757 does not filter by invalid type5758 does not filter by invalid status5759 filters runners by tag_list5760 with an inactive runner5761 filters runners by status5762 filters runners by status5763 behaves like unauthorized access to runners list5764 authorized user without maintainer privileges5765 does not return group's runners5766 unauthorized user5767 does not return project's runners5768 GET /groups/:id/runners5769 authorized user with maintainer privileges5770 returns all runners5771 filters runners by tag_list5772 filter by type5773 returns record when valid and present5774 returns instance runners when instance_type is specified5775 returns empty result when type does not match5776 does not filter by invalid type5777 with an inactive runner5778 returns runners by paused state5779 filter runners by status5780 returns runners by valid status5781 does not filter by invalid status5782 behaves like unauthorized access to runners list5783 authorized user without maintainer privileges5784 does not return group's runners5785 unauthorized user5786 does not return project's runners5787 POST /projects/:id/runners5788 authorized user5789 enables specific runner5790 avoids changes when enabling already enabled runner5791 does not enable locked runner5792 does not enable shared runner5793 does not enable group runner5794 raises an error when no runner_id param is provided5795 user is admin5796 when project runner is used5797 enables any specific runner5798 when it exceeds the application limits5799 does not enable specific runner5800 user is not admin5801 does not enable runner without access to5802 authorized user without permissions5803 does not enable runner5804 unauthorized user5805 does not enable runner5806 DELETE /projects/:id/runners/:runner_id5807 authorized user5808 returns 404 is runner is not found5809 when runner have more than one associated projects5810 disables project's runner5811 behaves like 412 response5812 for a modified ressource5813 returns 412 with a JSON error5814 for an unmodified ressource5815 returns 204 with an empty body5816 when runner have one associated projects5817 does not disable project's runner5818 authorized user without permissions5819 does not disable project's runner5820 unauthorized user5821 does not disable project's runner5822API::ProjectClusters5823 GET /projects/:id/clusters5824 feature flag is disabled5825 responds with :not_found5826 non-authorized user5827 responds with 4035828 authorized user5829 includes pagination headers5830 only includes authorized clusters5831 GET /projects/:id/clusters/:cluster_id5832 feature flag is disabled5833 responds with :not_found5834 non-authorized user5835 responds with 4035836 authorized user5837 returns specific cluster5838 returns cluster information5839 returns project information5840 returns kubernetes platform information5841 returns user information5842 returns GCP provider information5843 when cluster has no provider5844 does not include GCP provider info5845 with non-existing cluster5846 returns 4045847 POST /projects/:id/clusters/user5848 feature flag is disabled5849 responds with :not_found5850 non-authorized user5851 responds with 4035852 authorized user5853 with valid params5854 creates a new Cluster::Cluster5855 when user does not indicate authorization type5856 defaults to RBAC5857 when user sets authorization type as ABAC5858 creates an ABAC cluster5859 when namespace_per_environment is not set5860 defaults to true5861 current user does not have access to management_project_id5862 responds with 4005863 returns validation errors5864 with invalid params5865 does not create a new Clusters::Cluster5866 non-authorized user5867 responds with 4035868 POST /projects/:id/clusters/user with multiple clusters5869 when another cluster exists5870 responds with 2015871 allows multiple clusters to be associated to project5872 PUT /projects/:id/clusters/:cluster_id5873 feature flag is disabled5874 responds with :not_found5875 non-authorized user5876 responds with 4035877 authorized user5878 with valid params5879 updates cluster attributes5880 with invalid params5881 does not update cluster attributes5882 returns validation errors5883 current user does not have access to management_project_id5884 returns validation errors5885 with a GCP cluster5886 when user tries to change GCP specific fields5887 returns validation error5888 when user tries to change namespace5889 responds with 2005890 with an user cluster5891 updates platform kubernetes attributes5892 with a cluster that does not belong to user5893 responds with 4045894 DELETE /projects/:id/clusters/:cluster_id5895 feature flag is disabled5896 responds with :not_found5897 non-authorized user5898 responds with 4035899 authorized user5900 deletes the cluster5901 with a cluster that does not belong to user5902 responds with 4045903API::AwardEmoji5904 GET /projects/:id/awardable/:awardable_id/award_emoji5905 on an issue5906 returns an array of award_emoji5907 includes custom emoji attributes5908 returns a 404 error when issue id not found5909 behaves like unauthenticated request to public awardable5910 returns the awarded emoji5911 behaves like request with insufficient permissions5912 when user is not signed in5913 returns 4045914 when user does not have access5915 returns 4045916 on a merge request5917 returns an array of award_emoji5918 on a snippet5919 returns the awarded emoji5920 GET /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji5921 returns an array of award emoji5922 behaves like unauthenticated request to public awardable5923 returns the awarded emoji5924 behaves like request with insufficient permissions5925 when user is not signed in5926 returns 4045927 when user does not have access5928 returns 4045929 GET /projects/:id/awardable/:awardable_id/award_emoji/:award_id5930 on an issue5931 returns the award emoji5932 returns a 404 error if the award is not found5933 behaves like unauthenticated request to public awardable5934 returns the awarded emoji5935 behaves like request with insufficient permissions5936 when user is not signed in5937 returns 4045938 when user does not have access5939 returns 4045940 on a merge request5941 returns the award emoji5942 on a snippet5943 returns the awarded emoji5944 GET /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji/:award_id5945 returns an award emoji5946 when a confidential note5947 with sufficient persmissions5948 returns an award emoji5949 with insufficient permissions5950 returns 4045951 behaves like unauthenticated request to public awardable5952 returns the awarded emoji5953 behaves like request with insufficient permissions5954 when user is not signed in5955 returns 4045956 when user does not have access5957 returns 4045958 POST /projects/:id/awardable/:awardable_id/award_emoji5959 on an issue5960 creates a new award emoji5961 marks Todos on the Issue as done5962 returns a 400 bad request error if the name is not given5963 normalizes +1 as thumbsup award5964 when the emoji already has been awarded5965 returns a 404 status code5966 on a snippet5967 creates a new award emoji5968 behaves like request with insufficient permissions5969 when user is not signed in5970 returns 4045971 when user does not have access5972 returns 4045973 POST /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji5974 creates a new award emoji5975 marks Todos on the Noteable as done5976 normalizes +1 as thumbsup award5977 when the emoji already has been awarded5978 returns a 404 status code5979 behaves like request with insufficient permissions5980 when user is not signed in5981 returns 4045982 when user does not have access5983 returns 4045984 DELETE /projects/:id/awardable/:awardable_id/award_emoji/:award_id5985 when the awardable is an Issue5986 deletes the award5987 returns a 404 error when the award emoji can not be found5988 behaves like 412 response5989 for a modified ressource5990 returns 412 with a JSON error5991 for an unmodified ressource5992 returns 204 with an empty body5993 when the awardable is a Merge Request5994 deletes the award5995 returns a 404 error when note id not found5996 behaves like 412 response5997 for a modified ressource5998 returns 412 with a JSON error5999 for an unmodified ressource6000 returns 204 with an empty body6001 when the awardable is a Snippet6002 deletes the award6003 behaves like 412 response6004 for a modified ressource6005 returns 412 with a JSON error6006 for an unmodified ressource6007 returns 204 with an empty body6008 behaves like request with insufficient permissions6009 when user is not signed in6010 returns 4046011 when user does not have access6012 returns 4046013 DELETE /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji/:award_id6014 deletes the award6015 behaves like 412 response6016 for a modified ressource6017 returns 412 with a JSON error6018 for an unmodified ressource6019 returns 204 with an empty body6020 behaves like request with insufficient permissions6021 when user is not signed in6022 returns 4046023 when user does not have access6024 returns 4046025OpenID Connect requests6026 Application without OpenID scope6027 token response does not include an ID token6028 userinfo response is unauthorized6029 Application with OpenID scope6030 token response includes an ID token6031 UserInfo payload6032 includes all user information and group memberships6033 does not include any unknown claims6034 includes email and email_verified claims6035 has public email in email claim6036 has false in email_verified claim6037 ID token payload6038 includes the subject claims6039 includes the GitLab root URL6040 includes the time of the last authentication6041 has public email in email claim6042 has true in email_verified claim6043 does not include any unknown properties6044 does include groups6045 when user is blocked6046 redirects to login page6047 when user is ldap_blocked6048 redirects to login page6049 OpenID Discovery keys6050 with a cross-origin request6051 returns data6052 behaves like cross-origin GET request6053 allows cross-origin request6054 with a cross-origin preflight OPTIONS request6055 behaves like cross-origin GET request6056 allows cross-origin request6057 OpenID WebFinger endpoint6058 with a cross-origin request6059 returns data6060 behaves like cross-origin GET request6061 allows cross-origin request6062 with a cross-origin preflight OPTIONS request6063 behaves like cross-origin GET request6064 allows cross-origin request6065 OpenID configuration information6066 correctly returns the configuration6067 with a cross-origin request6068 behaves like cross-origin GET request6069 allows cross-origin request6070 with a cross-origin preflight OPTIONS request6071 behaves like cross-origin GET request6072 allows cross-origin request6073 Application with OpenID and email scopes6074 token response includes an ID token6075 UserInfo payload6076 includes the email and email_verified claims6077 has private email in email claim6078 has true in email_verified claim6079 with a cross-origin request6080 behaves like cross-origin GET and POST request6081 allows cross-origin request6082 with a cross-origin POST request6083 behaves like cross-origin GET and POST request6084 allows cross-origin request6085 with a cross-origin preflight OPTIONS request6086 behaves like cross-origin GET and POST request6087 allows cross-origin request6088 ID token payload6089 has private email in email claim6090 has true in email_verified claim6091 does include groups6092getting container repositories in a project6093DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6094DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6095DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6096DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6097DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6098DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6099DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6100DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6101DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6102DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6103 returns the total count of container repositories6104 behaves like a working graphql query6105DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6106DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6107DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6108DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6109DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6110DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6111DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6112DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6113DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6114DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6115 returns a successful response6116DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6117DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6118DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6119DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6120DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6121DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6122DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6123DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6124DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6125DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6126 matches the JSON schema6127 with different permissions6128 project_visibility: :private, role: :maintainer, access_granted: true, can_delete: true6129DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6130DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6131DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6132DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6133DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6134DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6135DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6136DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6137DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6138DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6139 return the proper response6140 project_visibility: :private, role: :developer, access_granted: true, can_delete: true6141DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6142DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6143DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6144DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6145DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6146DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6147DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6148DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6149DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6150DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6151 return the proper response6152 project_visibility: :private, role: :reporter, access_granted: true, can_delete: false6153DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6154DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6155DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6156DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6157DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6158DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6159DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6160DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6161DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6162DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6163 return the proper response6164 project_visibility: :private, role: :guest, access_granted: false, can_delete: false6165 return the proper response6166 project_visibility: :private, role: :anonymous, access_granted: false, can_delete: false6167 return the proper response6168 project_visibility: :public, role: :maintainer, access_granted: true, can_delete: true6169DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6170DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6171DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6172DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6173DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6174DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6175DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6176DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6177DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6178DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6179 return the proper response6180 project_visibility: :public, role: :developer, access_granted: true, can_delete: true6181DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6182DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6183DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6184DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6185DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6186DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6187DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6188DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6189DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6190DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6191 return the proper response6192 project_visibility: :public, role: :reporter, access_granted: true, can_delete: false6193DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6194DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6195DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6196DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6197DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6198DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6199DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6200DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6201DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6202DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6203 return the proper response6204 project_visibility: :public, role: :guest, access_granted: true, can_delete: false6205DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6206DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6207DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6208DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6209DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6210DEPRECATION 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.6213DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6214DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6215 return the proper response6216 project_visibility: :public, role: :anonymous, access_granted: true, can_delete: false6217DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6218DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6219DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6220DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6221DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6222DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6223DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6224DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6225DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6226DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6227 return the proper response6228 limiting the number of repositories6229DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6230DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6231 only returns N repositories6232 filter by name6233DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6234DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6235 returns the searched container repository6236 behaves like handling graphql network errors with the container registry6237 returns a connection error6238 behaves like not hitting graphql network errors with the container registry6239DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6240DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6241DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6242DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6243DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6244DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6245DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6246DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6247DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6248DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6249 does not return any error6250 sorting and pagination6251 when sorting by name6252 when ascending6253 behaves like sorted paginated query6254 behaves like requires variables6255 shared example requires variables to be set6257 when sorting6258 sorts correctly6259 when paginating6260 paginates correctly6261 when descending6262 behaves like sorted paginated query6263 behaves like requires variables6264 shared example requires variables to be set6266 when sorting6267 sorts correctly6268 when paginating6269 paginates correctly6270API::ProjectMilestones6271 behaves like group and project milestones6272 GET /projects/:id/milestones6273 returns milestones list6274 returns a 401 error if user not authenticated6275 returns an array of active milestones6276 returns an array of closed milestones6277 returns an array of milestones specified by iids6278 does not return any milestone if none found6279 returns a milestone by iids array6280 returns a milestone by title6281 returns a milestone by searching for title6282 returns a milestones by searching for description6283 GET /projects/:id/milestones/:milestone_id6284 returns a milestone by id6285 returns 401 error if user not authenticated6286 returns a 404 error if milestone id not found6287 POST /projects/:id/milestones6288 creates a new milestone6289 creates a new milestone with description and dates6290 returns a 400 error if title is missing6291 returns a 400 error if params are invalid (duplicate title)6292 creates a new milestone with reserved html characters6293 PUT /projects/:id/milestones/:milestone_id6294 updates a milestone6295 removes a due date if nil is passed6296 returns a 404 error if milestone id not found6297 closes milestone6298 updates milestone with only start date6299 DELETE /projects/:id/milestones/:milestone_id6300 rejects a member with guest access from deleting a milestone6301 deletes the milestone when the user has reporter access to the project6302 GET /projects/:id/milestones/:milestone_id/issues6303 returns issues for a particular milestone6304 returns issues sorted by label priority6305 matches V4 response schema for a list of issues6306 returns a 401 error if user not authenticated6307 confidential issues6308 returns confidential issues to team members6309 does not return confidential issues to team members with guest role6310 does not return confidential issues to regular users6311 returns issues ordered by label priority6312 GET /projects/:id/milestones/:milestone_id/merge_requests6313 returns merge_requests for a particular milestone6314 returns merge_requests sorted by label priority6315 returns a 404 error if milestone id not found6316 returns a 404 if the user has no access to the milestone6317 returns a 401 error if user not authenticated6318 returns merge_requests ordered by position asc6319 GET /projects/:id/milestones6320 when include_parent_milestones is true6321 when project parent is a namespace6322 behaves like listing all milestones6323 returns correct list of milestones6324 when project parent is a group6325 behaves like listing all milestones6326 returns correct list of milestones6327 when iids param is present6328 behaves like listing all milestones6329 returns correct list of milestones6330 when user is not a member of the private project6331 returns a 404 error6332 DELETE /projects/:id/milestones/:milestone_id6333 returns 404 response when the project does not exist6334 returns 404 response when the milestone does not exist6335 returns 404 from guest user deleting a milestone6336 PUT /projects/:id/milestones/:milestone_id to test observer on close6337 creates an activity event when a milestone is closed6338 POST /projects/:id/milestones/:milestone_id/promote6339 when user does not have permission to promote milestone6340 returns 4036341 when user has permission6342 returns 2006343 returns 200 for closed milestone6344 when no such resource6345 returns 404 response when the project does not exist6346 returns 404 response when the milestone does not exist6347 when project does not belong to group6348 returns 4036349Mailer previews6350 # order random6351 preview: DeviseMailerPreview, email: "reset_password_instructions"6352 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6353 preview: NotifyPreview, email: "mirror_was_hard_failed_email"6354 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6355 preview: NotifyPreview, email: "note_merge_request_email_for_individual_note"6356 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6357 preview: NotifyPreview, email: "remote_mirror_update_failed_email"6358 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6359 preview: NotifyPreview, email: "pipeline_success_email"6360 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6361 preview: NotifyPreview, email: "user_auto_banned_namespace_email"6362 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6363 preview: NotifyPreview, email: "project_mirror_user_changed_email"6364 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6365 preview: NotifyPreview, email: "closed_issue_email"6366 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6367 preview: NotifyPreview, email: "send_admin_notification"6368 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6369 preview: DeviseMailerPreview, email: "unlock_instructions"6370 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6371 preview: Emails::NamespaceStorageUsageMailerPreview, email: "out_of_storage"6372 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6373 preview: NotifyPreview, email: "merged_merge_request_email"6374 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6375 preview: NotifyPreview, email: "new_email_address_added_email"6376 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6377 preview: NotifyPreview, email: "removed_milestone_merge_request_email"6378 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6379 preview: NotifyPreview, email: "service_desk_new_note_email"6380 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6381 preview: NotifyPreview, email: "member_access_denied_email"6382 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6383 preview: NotifyPreview, email: "member_invite_accepted_email"6384 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6385 preview: LicenseMailerPreview, email: "approaching_active_user_count_limit"6386 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6387 preview: NotifyPreview, email: "changed_milestone_merge_request_email"6388 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6389 preview: NotifyPreview, email: "two_factor_otp_attempt_failed_email"6390 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6391 preview: NotifyPreview, email: "service_desk_thank_you_email"6392 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6393 preview: NotifyPreview, email: "new_merge_request_email"6394 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6395 preview: CiMinutesUsageMailerPreview, email: "limit_warning"6396 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6397 preview: NotifyPreview, email: "member_invited_email"6398 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6399 preview: NotifyPreview, email: "inactive_project_deletion_warning"6400 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6401 preview: NotifyPreview, email: "pipeline_fixed_email"6402 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6403 preview: NotifyPreview, email: "project_was_exported_email"6404 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6405 preview: NotifyPreview, email: "changed_milestone_issue_email"6406 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6407 preview: RepositoryCheckMailerPreview, email: "notify"6408 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6409 preview: NotifyPreview, email: "verification_instructions_email"6410 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6411 preview: NotifyPreview, email: "closed_merge_request_email"6412 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6413 preview: NotifyPreview, email: "unapproved_merge_request_email"6414 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6415 preview: NotifyPreview, email: "user_auto_banned_instance_email"6416 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6417 preview: NotifyPreview, email: "add_merge_request_approver_email"6418 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6419 preview: NotifyPreview, email: "new_epic_email"6420 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6421 preview: NotifyPreview, email: "note_merge_request_email_for_discussion"6422 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6423 preview: NotifyPreview, email: "member_access_requested_email"6424 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6425 preview: NotifyPreview, email: "autodevops_disabled_email"6426 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6427 preview: NotifyPreview, email: "requirements_csv_email"6428 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6429 preview: NotifyPreview, email: "merge_request_unmergeable_email"6430 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6431 preview: DeviseMailerPreview, email: "user_admin_approval"6432 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6433 preview: NotifyPreview, email: "merge_request_status_email"6434 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6435 preview: NotifyPreview, email: "member_invite_declined_email"6436 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6437 preview: NotifyPreview, email: "user_cap_reached"6438 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6439 preview: DeviseMailerPreview, email: "confirmation_instructions_for_signup"6440 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6441 preview: NotifyPreview, email: "request_review_merge_request_email"6442 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6443 preview: NotifyPreview, email: "merge_when_pipeline_succeeds_email"6444 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6445 preview: NotifyPreview, email: "merge_commits_csv_email"6446 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6447 preview: EmailRejectionMailerPreview, email: "rejection"6448 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6449 preview: NotifyPreview, email: "unknown_sign_in_email"6450 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6451 preview: NotifyPreview, email: "removed_milestone_issue_email"6452 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6453 preview: NotifyPreview, email: "reached_free_user_limit_email"6454 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6455 preview: NotifyPreview, email: "member_access_granted_email"6456 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6457 preview: NotifyPreview, email: "mirror_was_disabled_email"6458 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6459 preview: NotifyPreview, email: "new_group_member_with_confirmation_email"6460 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6461 preview: NotifyPreview, email: "send_unsubscribed_notification"6462 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6463 preview: NotifyPreview, email: "pipeline_failed_email"6464 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6465 preview: CiMinutesUsageMailerPreview, email: "out_of_minutes"6466 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6467 preview: NotifyPreview, email: "issue_status_changed_email"6468 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6469 preview: NotifyPreview, email: "confirmation_instructions_email"6470 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6471 preview: NotifyPreview, email: "issues_csv_email"6472 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6473 preview: Emails::NamespaceStorageUsageMailerPreview, email: "limit_warning"6474 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6475 preview: NotifyPreview, email: "note_merge_request_email_for_diff_discussion"6476 example at ./spec/mailers/previews_spec.rb:37 (PENDING: See https://gitlab.com/gitlab-org/gitlab/-/issues/372885)6477 preview: DeviseMailerPreview, email: "password_change"6478 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6479 preview: NotifyPreview, email: "import_requirements_csv_email"6480 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6481 preview: NotifyPreview, email: "approved_merge_request_email"6482 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6483 preview: NotifyPreview, email: "new_mention_in_merge_request_email"6484 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6485 preview: NotifyPreview, email: "import_issues_csv_email"6486 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6487 preview: NotifyPreview, email: "pages_domain_enabled_email"6488 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6489 preview: NotifyPreview, email: "project_was_moved_email"6490 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6491 preview: DeviseMailerPreview, email: "confirmation_instructions_for_new_email"6492 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6493 preview: NotifyPreview, email: "new_issue_email"6494 is expected to be a kind of Mail::Message or be a kind of ActionMailer::MessageDelivery6495Query.project(fullPath).pipelines6496 sha6497 returns all formats of the SHA6498 duration fields6499 includes the duration fields6500 .stages6501 is present if the user has guest access6502 is present if the user has reporter access6503 .groups6504 is present if the user has guest access6505 is present if the user has reporter access6506 .job6507 fetches the latest job with the given name6508 .jobs6509 limits the results6510 fetches all results6511 fetches the jobs without an N+16512 .job_artifacts6513 returns the job_artifacts of a pipeline6514 avoids N+1 queries6515 behaves like a working graphql query6516 returns a successful response6517 warningMessages6518 returns pipeline warnings6519 avoids N+1 queries6520 .jobs(securityReportTypes)6521 fetches the jobs matching the report type filter6522 upstream6523 returns the upstream pipeline of a pipeline6524 behaves like a working graphql query6525 returns a successful response6526 when fetching the upstream pipeline from the pipeline6527 avoids N+1 queries6528 downstream6529 returns the downstream pipelines of a pipeline6530 behaves like a working graphql query6531 returns a successful response6532 when fetching the downstream pipelines from the pipeline6533 avoids N+1 queries6534 ref_path6535 avoids N+1 queries6536 filtering6537 when filtered by updated_at6538 accepts filter params6539 behaves like a working graphql query6540 returns a successful response6541package details6542 with unauthorized user6543 returns no packages6544 with authorized user6545 behaves like a working graphql query6546DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6547DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6548 returns a successful response6549DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6550DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6551 matches the JSON schema6552 with package without last_downloaded_at6553DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6554DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6555 matches the JSON schema6556 with package files pending destruction6557DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6558DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6559 does not return them6560 with a batched query6561 returns an error for the second package and data for the first6562 pipelines field6563 loads the second page with pagination first correctly6564 loads the second page with pagination last correctly6565 package managers paths6566DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6567DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6568 returns npm_url correctly6569DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6570DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6571 returns maven_url correctly6572DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6573DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6574 returns conan_url correctly6575DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6576DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6577 returns nuget_url correctly6578DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6579DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6580 returns pypi_url correctly6581DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6582DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6583 returns pypi_setup_url correctly6584DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6585DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6586 returns composer_url correctly6587DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6588DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6589 returns composer_config_repository_url correctly6590 web_path6591DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6592DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6593 returns web_path correctly6594 with terraform module6595DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6596DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6597 returns web_path correctly6598 with package that has no default status6599 does not return package's details6600API::Markdown Golden Master6601 examples must be unique and alphabetized by name6602 for attachment_image_for_group (api_context: group)6603 verifies conversion of GFM to HTML6604 for attachment_image_for_project (api_context: project)6605 verifies conversion of GFM to HTML6606 for attachment_image_for_project_wiki (api_context: project_wiki)6607 verifies conversion of GFM to HTML6608 for attachment_link_for_group (api_context: group)6609 verifies conversion of GFM to HTML6610 for attachment_link_for_project (api_context: project)6611 verifies conversion of GFM to HTML6612 for attachment_link_for_project_wiki (api_context: project_wiki)6613 verifies conversion of GFM to HTML6614 for audio6615 verifies conversion of GFM to HTML6616 for audio_and_video_in_lists6617 verifies conversion of GFM to HTML6618 for blockquote6619 verifies conversion of GFM to HTML6620 for bold6621 verifies conversion of GFM to HTML6622 for bullet_list_style_16623 verifies conversion of GFM to HTML6624 for bullet_list_style_26625 verifies conversion of GFM to HTML6626 for bullet_list_style_36627 verifies conversion of GFM to HTML6628 for code_block_javascript6629 verifies conversion of GFM to HTML6630 for code_block_plaintext6631 verifies conversion of GFM to HTML6632 for code_block_unknown6633 verifies conversion of GFM to HTML6634 for color_chips6635 verifies conversion of GFM to HTML6636 for comment6637 verifies conversion of GFM to HTML6638 for description_list6639 verifies conversion of GFM to HTML6640 for details6641 verifies conversion of GFM to HTML6642 for diagram_kroki_nomnoml6643 verifies conversion of GFM to HTML6644 for diagram_plantuml6645 verifies conversion of GFM to HTML6646 for diagram_plantuml_unicode6647 verifies conversion of GFM to HTML6648 for div6649 verifies conversion of GFM to HTML6650 for emoji6651 verifies conversion of GFM to HTML6652 for emphasis6653 verifies conversion of GFM to HTML6654 for figure6655 verifies conversion of GFM to HTML6656 for footnotes6657 verifies conversion of GFM to HTML (PENDING: https://gitlab.com/gitlab-org/gitlab/-/issues/346591)6658 for frontmatter_json6659 verifies conversion of GFM to HTML6660 for frontmatter_toml6661 verifies conversion of GFM to HTML6662 for frontmatter_yaml6663 verifies conversion of GFM to HTML6664 for hard_break6665 verifies conversion of GFM to HTML6666 for headings6667 verifies conversion of GFM to HTML6668 for horizontal_rule6669 verifies conversion of GFM to HTML6670 for html_marks6671 verifies conversion of GFM to HTML6672 for image6673 verifies conversion of GFM to HTML6674 for inline_code6675 verifies conversion of GFM to HTML6676 for inline_diff6677 verifies conversion of GFM to HTML6678 for label6679 verifies conversion of GFM to HTML6680 for link6681 verifies conversion of GFM to HTML6682 for math6683 verifies conversion of GFM to HTML6684 for ordered_list6685 verifies conversion of GFM to HTML6686 for ordered_list_with_start_order6687 verifies conversion of GFM to HTML6688 for ordered_task_list6689 verifies conversion of GFM to HTML6690 for ordered_task_list_with_order6691 verifies conversion of GFM to HTML6692 for reference_for_project_wiki (api_context: project_wiki)6693 verifies conversion of GFM to HTML6694 for strike6695 verifies conversion of GFM to HTML6696 for table6697 verifies conversion of GFM to HTML6698 for table_of_contents6699 verifies conversion of GFM to HTML6700 for task_list6701 verifies conversion of GFM to HTML6702 for video6703 verifies conversion of GFM to HTML6704 for word_break6705 verifies conversion of GFM to HTML6706RegistrationsController6707 #new6708 renders new template and sets the resource variable6709 behaves like switches to user preferred language6710 with preferred_language in cookies6711 renders new template with cookies preferred language6712 #create6713 logs a 'User Created' message6714 handles when params are new_user6715 sets name from first and last name6716 sets the caller_id in the context6717 `blocked_pending_approval` state6718 when the `require_admin_approval_after_user_signup` setting is turned on6719 signs up the user in `blocked_pending_approval` state6720 does not log in the user after sign up6721 shows flash message after signing up6722 emails the access request to approvers6723 email confirmation6724 when `send_user_confirmation_email` is true6725 does not send a confirmation email6726 audit events6727 when not licensed6728 does not log any audit event6729 when the `require_admin_approval_after_user_signup` setting is turned off6730 signs up the user in `active` state6731 does not show any flash message after signing up6732 does not email the approvers6733 email confirmation6734 when `send_user_confirmation_email` is true6735 sends a confirmation email6736 email confirmation6737 when send_user_confirmation_email is false6738 signs the user in6739 when send_user_confirmation_email is true6740 when soft email confirmation is not enabled6741 does not authenticate the user and sends a confirmation email6742 when registration is triggered from an accepted invite6743 when it is part from the initial invite email6744 when member exists from the session key value6745 tracks the invite acceptance6746 when member does not exist from the session key value6747 does not track invite acceptance6748 when invite email matches email used on registration6749 signs the user in without sending a confirmation email6750 when invite email does not match the email used on registration6751 does not authenticate the user and sends a confirmation email6752 when the registration fails6753 does not delete the invitation or register the new user6754 when soft email confirmation is enabled6755 authenticates the user and sends a confirmation email6756 when invite email matches email used on registration6757 signs the user in without sending a confirmation email6758 when invite email does not match the email used on registration6759 authenticates the user and sends a confirmation email without confirming6760 when signup_enabled? is false6761 redirects to sign_in6762 when reCAPTCHA is enabled6763 redirects to the welcome page when the reCAPTCHA is solved6764 when the reCAPTCHA is not solved6765 displays an error6766 sets gon variables6767 when invisible captcha is enabled6768 the honeypot has not been filled and the signup form has not been submitted too quickly6769 creates an account6770 honeypot spam detection6771 logs the request, refuses to create an account and renders an empty body6772 timestamp spam detection6773 the sign up form has been submitted without the invisible_captcha_timestamp parameter6774 logs the request, refuses to create an account and displays a flash alert6775 the sign up form has been submitted too quickly6776 logs the request, refuses to create an account and displays a flash alert6777 terms of service6778 when terms are enforced6779 creates the user with accepted terms6780 when terms are not enforced6781 creates the user without accepted terms6782 when the rate limit has been reached6783 returns status 429 Too Many Requests6784 when the password is weak6785 renders the form with errors6786 tracks the error6787 when the password is not weak6788 does not track a weak password error6789 with preferred language6790 with default behavior6791 sets preferred language to default6792 when user sets preferred language6793 sets name from first and last name6794 when the first or last name is not "present?"6795 first_name: nil, last_name: "last"6796 behaves like a user without present first name or last name6797 renders the form with errors6798 first_name: "", last_name: "last"6799 behaves like a user without present first name or last name6800 renders the form with errors6801 first_name: " ", last_name: "last"6802 behaves like a user without present first name or last name6803 renders the form with errors6804 first_name: "first", last_name: nil6805 behaves like a user without present first name or last name6806 renders the form with errors6807 first_name: "first", last_name: ""6808 behaves like a user without present first name or last name6809 renders the form with errors6810 first_name: "first", last_name: " "6811 behaves like a user without present first name or last name6812 renders the form with errors6813 first_name: "", last_name: ""6814 behaves like a user without present first name or last name6815 renders the form with errors6816 #destroy6817 sets the username and caller_id in the context6818 user requires password confirmation6819 fails if password confirmation is not provided6820 fails if password confirmation is wrong6821 succeeds if password is confirmed6822 user does not require password confirmation6823 fails if username confirmation is not provided6824 fails if username confirmation is wrong6825 succeeds if username is confirmed6826 prerequisites for account deletion6827 solo-owned groups6828 if the user is the sole owner of at least one group6829 fails6830 when user did not accept app terms6831 fails with message6832maven package details6833 a maven package with version6834 behaves like a package detail6835 behaves like a working graphql query6836DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6837DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6838 returns a successful response6839 behaves like matching the package details schema6840DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6841DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6842 matches the JSON schema6843 with pipelines6844 behaves like a working graphql query6845DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6846DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6847 returns a successful response6848 behaves like matching the package details schema6849DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6850DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6851 matches the JSON schema6852 behaves like correct maven metadata6853DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6854DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6855 has the correct metadata6856 behaves like a package with files6857DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6858DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6859 has the right amount of files6860DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6861DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6862 has the basic package files data6863 with package files pending destruction6864DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6865DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6866 does not return them6867 a versionless maven package6868DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6869DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6870 has an empty version6871 behaves like a package detail6872 behaves like a working graphql query6873DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6874DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6875 returns a successful response6876 behaves like matching the package details schema6877DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6878DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6879 matches the JSON schema6880 with pipelines6881 behaves like a working graphql query6882DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6883DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6884 returns a successful response6885 behaves like matching the package details schema6886DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6887DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6888 matches the JSON schema6889 behaves like correct maven metadata6890DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6891DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6892 has the correct metadata6893 behaves like a package with files6894DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6895DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6896 has the right amount of files6897DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6898DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6899 has the basic package files data6900 with package files pending destruction6901DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6902DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6903 does not return them6904VerifiesWithEmail6905 verify_with_email6906 when user is locked and a verification_user_id session variable exists6907 when rate limited and a verification_token param exists6908 adds a verification error message6909 behaves like prompt for email verification6910 sets the verification_user_id session variable and renders the email verification template6911 when an invalid verification_token param exists6912 adds a verification error message6913 behaves like prompt for email verification6914 sets the verification_user_id session variable and renders the email verification template6915 when an expired verification_token param exists6916 adds a verification error message6917 behaves like prompt for email verification6918 sets the verification_user_id session variable and renders the email verification template6919 when a valid verification_token param exists6920 unlocks the user6921 redirects to the successful verification path6922 when signing in with a valid password6923 behaves like not verifying with email6924 when rate limited6925 behaves like two factor prompt or successful login6926 shows the 2FA prompt when enabled or redirects to the root path6927 when the user already has an unlock_token set6928 behaves like two factor prompt or successful login6929 shows the 2FA prompt when enabled or redirects to the root path6930 when the user is signing in from an unknown ip address6931 behaves like two factor prompt or successful login6932 shows the 2FA prompt when enabled or redirects to the root path6933 when the feature flag is toggled on6934 behaves like verifying with email6935 when rate limited6936 behaves like rate limited6937 redirects to the login form and shows an alert message6938 when the user already has an unlock_token set6939 behaves like prompt for email verification6940 sets the verification_user_id session variable and renders the email verification template6941 when the user is already locked6942 behaves like send verification instructions6943 locks the user6944 sends an email6945 behaves like prompt for email verification6946 sets the verification_user_id session variable and renders the email verification template6947 when the user is signing in from an unknown ip address6948 behaves like send verification instructions6949 locks the user6950 sends an email6951 behaves like prompt for email verification6952 sets the verification_user_id session variable and renders the email verification template6953 when 2FA is enabled6954 behaves like not verifying with email6955 when rate limited6956 behaves like two factor prompt or successful login6957 shows the 2FA prompt when enabled or redirects to the root path6958 when the user already has an unlock_token set6959 behaves like two factor prompt or successful login6960 shows the 2FA prompt when enabled or redirects to the root path6961 when the user is signing in from an unknown ip address6962 behaves like two factor prompt or successful login6963 shows the 2FA prompt when enabled or redirects to the root path6964 when request is not from a QA user6965 behaves like verifying with email6966 when rate limited6967 behaves like rate limited6968 redirects to the login form and shows an alert message6969 when the user already has an unlock_token set6970 behaves like prompt for email verification6971 sets the verification_user_id session variable and renders the email verification template6972 when the user is already locked6973 behaves like send verification instructions6974 locks the user6975 sends an email6976 behaves like prompt for email verification6977 sets the verification_user_id session variable and renders the email verification template6978 when the user is signing in from an unknown ip address6979 behaves like send verification instructions6980 locks the user6981 sends an email6982 behaves like prompt for email verification6983 sets the verification_user_id session variable and renders the email verification template6984 resend_verification_code6985 when no verification_user_id session variable exists6986 returns 204 No Content6987 when a verification_user_id session variable exists6988 behaves like send verification instructions6989 locks the user6990 sends an email6991 behaves like prompt for email verification6992 sets the verification_user_id session variable and renders the email verification template6993 when exceeding the rate limit6994 does not lock the user6995 does not send an email6996 behaves like prompt for email verification6997 sets the verification_user_id session variable and renders the email verification template6998 successful_verification6999 renders the template and removes the verification_user_id session variable7000API::ProjectTemplates7001 GET /projects/:id/templates/:type7002 returns dockerfiles7003 returns gitignores7004 returns gitlab_ci_ymls7005 returns licenses7006 returns metrics_dashboard_ymls7007 returns issue templates7008 returns merge request templates7009 returns 400 for an unknown template type7010 denies access to an anonymous user on a private project7011 permits access to a developer on a private project7012 behaves like accepts project paths with dots7013 is expected to respond with numeric status code ok7014 GET /projects/:id/templates/licenses7015 returns key and name for the listed licenses7016 behaves like accepts project paths with dots7017 is expected to respond with numeric status code ok7018 GET /projects/:id/templates/:type/:name7019 returns a specific dockerfile7020 returns a specific gitignore7021 returns C++ gitignore7022 returns C++ gitignore for URL-encoded names7023 returns a specific gitlab_ci_yml7024 returns a specific metrics_dashboard_yml7025 returns a specific license7026 returns a specific issue template7027 returns a specific merge request template7028 returns 404 for an unknown specific template7029 returns 404 for an unknown issue template7030 returns 404 for an unknown merge request template7031 denies access to an anonymous user on a private project7032 permits access to a developer on a private project7033 behaves like accepts project paths with dots7034 is expected to respond with numeric status code ok7035 behaves like accepts project paths with dots7036 is expected to respond with numeric status code ok7037 behaves like path traversal attempt7038 rejects invalid filenames7039 behaves like path traversal attempt7040 rejects invalid filenames7041 behaves like path traversal attempt7042 rejects invalid filenames7043 behaves like path traversal attempt7044 rejects invalid filenames7045 behaves like path traversal attempt7046 rejects invalid filenames7047 behaves like path traversal attempt7048 rejects invalid filenames7049 GET /projects/:id/templates/licenses/:key7050 fills placeholders in the license7051 behaves like accepts project paths with dots7052 is expected to respond with numeric status code ok7053Updating an image DiffNote7054 when the user does not have permission7055 does not update the DiffNote7056 behaves like a mutation that returns a top-level access error7057 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"7058 when the user has permission7059DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7060DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7061 updates the DiffNote7062DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7063DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7064 returns the updated DiffNote7065 updating single properties at a time7066 property: :body, new_value: "foo"7067DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7068DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7069 updates the DiffNote correctly7070 property: :width, new_value: 197071DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7072DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7073 updates the DiffNote correctly7074 property: :height, new_value: 187075DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7076DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7077 updates the DiffNote correctly7078 property: :x, new_value: 177079DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7080DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7081 updates the DiffNote correctly7082 property: :y, new_value: 167083DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7084DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7085 updates the DiffNote correctly7086 when position is nil7087DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7088DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7089 updates the DiffNote correctly7090 when both body and position args are blank7091 behaves like a mutation that returns top-level errors7092 is expected to contain exactly "body or position arguments are required"7093 when the resource is not a Note7094 behaves like a Note mutation when the given resource id is not for a Note7095 behaves like a mutation that returns top-level errors7096 is expected to include /does not represent an instance of Note/7097 when resource is not a DiffNote on an image7098 behaves like a mutation that returns top-level errors7099 is expected to contain exactly "Resource is not an ImageDiffNote"7100 when there are ActiveRecord validation errors7101DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7102DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7103 does not update the DiffNote7104DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7105DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7106 returns the DiffNote with its original body7107 behaves like a mutation that returns errors in the response7108DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7109DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7110 is expected to contain exactly "Error 1" and "Error 2"7111 when body only contains quick actions7112 returns a nil note and empty errors7113API::MergeRequestApprovals7114 GET :id/merge_requests/:merge_request_iid/approvals7115 retrieves the approval status7116 when merge request author has only guest access7117 behaves like rejects user from accessing merge request info7118 returns a 403 error7119 POST :id/merge_requests/:merge_request_iid/approve7120 as a valid approver7121 when the sha param is not set7122 approves the merge request7123 when the sha param is correct7124 approves the merge request7125 when the sha param is incorrect7126 does not approve the merge request7127 POST :id/merge_requests/:merge_request_iid/unapprove7128 as a user who has approved the merge request7129 unapproves the merge request7130 PUT :id/merge_requests/:merge_request_iid/reset_approvals7131 for a bot user7132 clears approvals of the merge_request7133 when bot user approved the merge request7134 clears approvals of the merge_request7135 for users with non-bot roles7136 returns 4017137 returns 4017138 returns 4017139 returns 4017140 for bot-users from external namespaces7141 for external group bot-user7142 returns 4017143 for external project bot-user7144 returns 4017145getting dependency proxy settings for a group7146 with the settings model created7147 behaves like dependency proxy group setting query7148 behaves like a working graphql query7149 returns a successful response7150 with different permissions7151 group_visibility: :private, role: :maintainer, access_granted: true7152 return the proper response7153 group_visibility: :private, role: :developer, access_granted: false7154 return the proper response7155 group_visibility: :private, role: :reporter, access_granted: false7156 return the proper response7157 group_visibility: :private, role: :guest, access_granted: false7158 return the proper response7159 group_visibility: :private, role: :anonymous, access_granted: false7160 return the proper response7161 group_visibility: :public, role: :maintainer, access_granted: true7162 return the proper response7163 group_visibility: :public, role: :developer, access_granted: false7164 return the proper response7165 group_visibility: :public, role: :reporter, access_granted: false7166 return the proper response7167 group_visibility: :public, role: :guest, access_granted: false7168 return the proper response7169 group_visibility: :public, role: :anonymous, access_granted: false7170 return the proper response7171 without the settings model created7172 behaves like dependency proxy group setting query7173 behaves like a working graphql query7174 returns a successful response7175 with different permissions7176 group_visibility: :private, role: :maintainer, access_granted: true7177 return the proper response7178 group_visibility: :private, role: :developer, access_granted: false7179 return the proper response7180 group_visibility: :private, role: :reporter, access_granted: false7181 return the proper response7182 group_visibility: :private, role: :guest, access_granted: false7183 return the proper response7184 group_visibility: :private, role: :anonymous, access_granted: false7185 return the proper response7186 group_visibility: :public, role: :maintainer, access_granted: true7187 return the proper response7188 group_visibility: :public, role: :developer, access_granted: false7189 return the proper response7190 group_visibility: :public, role: :reporter, access_granted: false7191 return the proper response7192 group_visibility: :public, role: :guest, access_granted: false7193 return the proper response7194 group_visibility: :public, role: :anonymous, access_granted: false7195 return the proper response7196Destroying multiple package files7197 post graphql mutation7198 with valid params7199 user_role: :maintainer, shared_examples_name: "destroying the package files"7200 behaves like destroying the package files7201 marks the package file as pending destruction7202 behaves like returning response status7203 returns success7204 user_role: :developer, shared_examples_name: "denying the mutation request"7205 behaves like denying the mutation request7206 does not mark the package file as pending destruction7207 behaves like returning response status7208 returns success7209 user_role: :reporter, shared_examples_name: "denying the mutation request"7210 behaves like denying the mutation request7211 does not mark the package file as pending destruction7212 behaves like returning response status7213 returns success7214 user_role: :guest, shared_examples_name: "denying the mutation request"7215 behaves like denying the mutation request7216 does not mark the package file as pending destruction7217 behaves like returning response status7218 returns success7219 user_role: :anonymous, shared_examples_name: "denying the mutation request"7220 behaves like denying the mutation request7221 does not mark the package file as pending destruction7222 behaves like returning response status7223 returns success7224 with more than 100 files7225 behaves like denying the mutation request7226 does not mark the package file as pending destruction7227 behaves like returning response status7228 returns success7229 with files outside of the project7230 behaves like denying the mutation request7231 does not mark the package file as pending destruction7232 behaves like returning response status7233 returns success7234 with invalid params7235 behaves like denying the mutation request7236 does not mark the package file as pending destruction7237 behaves like returning response status7238 returns success7239Projects::Settings::RepositoryController7240 GET show7241 renders show with 200 status code7242 PUT cleanup7243 enqueues a project cleanup7244 when project cleanup returns an error7245 shows an error7246 POST create_deploy_token7247 a good request7248 creates the deploy token7249 a bad request7250 does not create the deploy token7251 an invalid request7252 raises a validation error7253 PUT update7254 when updating default branch7255 with a good request7256 updates default branch and redirect to project_settings_repository_path7257 with a bad input7258 does not update default branch and shows an alert7259 when updating branch names template from issues7260 with a good request7261 updates issue_branch_template and redirect to project_settings_repository_path7262 with a bad input7263 updates issue_branch_template and redirect to project_settings_repository_path7264Snippets::BlobsController7265 GET #raw7266 snippet_visibility_level: :public, user: :author, status: :ok7267 responds with correct status7268 snippet_visibility_level: :public, user: :other_user, status: :ok7269 responds with correct status7270 snippet_visibility_level: :public, user: nil, status: :ok7271 responds with correct status7272 snippet_visibility_level: :private, user: :author, status: :ok7273 responds with correct status7274 snippet_visibility_level: :private, user: :other_user, status: :not_found7275 responds with correct status7276 snippet_visibility_level: :private, user: nil, status: :redirect7277 responds with correct status7278 behaves like raw snippet blob7279 with valid params7280 delivers file with correct Workhorse headers7281 responds with status 2007282 Content Disposition7283 when the disposition is inline7284 returns inline in the content disposition header7285 when the disposition is attachment7286 returns attachment plus the filename in the content disposition header7287 with invalid file path7288 behaves like returning response status7289 returns not_found7290 with invalid ref7291 behaves like returning response status7292 returns not_found7293 behaves like content disposition headers7294 sets content disposition to inline7295 when inline param is false7296 sets content disposition to attachment7297 with a snippet without a repository7298 behaves like raw snippet without repository7299 when authorized7300 returns a 4227301 when unauthorized7302 behaves like returning response status7303 returns redirect7304RoutableActions7305 #find_routable!7306 when signed in7307 with a project7308 prevents access when not authorized7309 when authorized7310 returns the project7311 allows access7312 with a group7313 prevents access when not authorized7314 when authorized7315 returns the group7316 allows access7317 with a user7318 allows access when authorized7319 prevents access when unauthorized7320 when not signed in7321 redirects to sign in for private resouces7322 #perform_not_found_actions7323 performs multiple checks7324 performs checks in the context of the controller7325 skips checks once one has resulted in a render/redirect7326getting notes for a merge request7327 behaves like exposing regular notes on a noteable in GraphQL7328 for regular notes7329 includes the note7330 behaves like a working graphql query7331 returns a successful response7332 for discussions7333DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7334DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7335DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7336DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7337 includes all discussion notes7338 behaves like a working graphql query7339DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7340DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7341DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7342DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7343 returns a successful response7344 diff notes on a merge request7345DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7346DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7347 includes the note7348 behaves like a working graphql query7349DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7350DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7351 returns a successful response7352 the position of the diffnote7353DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7354DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7355 includes a correct position7356 with a note on an image7357DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7358DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7359 includes a correct position7360getting group members information7361 when a member is invited only via email7362 returns null in the user field7363 when the request is correct7364 returns group members successfully7365 behaves like a working graphql query7366 returns a successful response7367 search argument7368 returns members that match the search query7369 when paginating7370 returns correct results7371 when requesting member's notification email7372 when current_user is admin7373 returns notification email7374 when current_user is not admin7375 returns an error7376 by access levels7377 by owner7378 returns owner7379 by maintainer7380 returns maintainer7381 by owner and maintainer7382 returns owner and maintainer7383 member relations7384 returns direct members7385 returns invited members and inherited members of a shared group7386 returns invited members and inherited members of an ancestor of a shared group7387 returns direct and inherited members7388 returns direct, inherited, and descendant members7389 returns an error for an invalid member relation7390 when unauthenticated7391 returns visible members7392Query.project(fullPath).issue(iid)7393 .designCollection7394 .design7395 behaves like being able to fetch a design-like object by ID7396 the ID is passed7397 retrieves the object7398 the user is unauthorized7399 behaves like a failure to find anything7400 finds nothing7401 without parameters7402 raises an error7403 attempting to retrieve an object from a different issue7404 behaves like a failure to find anything7405 finds nothing7406 behaves like being able to fetch a design-like object by ID7407 the ID is passed7408 retrieves the object7409 the user is unauthorized7410 behaves like a failure to find anything7411 finds nothing7412 without parameters7413 raises an error7414 attempting to retrieve an object from a different issue7415 behaves like a failure to find anything7416 finds nothing7417 .version7418 no parameters7419 raises an error7420 (sha: STRING_TYPE)7421 behaves like a successful query for a version7422 finds the version7423 (id: ID_TYPE)7424 behaves like a successful query for a version7425 finds the version7426 .designAtVersion7427 behaves like being able to fetch a design-like object by ID7428 the ID is passed7429DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7430 retrieves the object7431 the user is unauthorized7432 behaves like a failure to find anything7433 finds nothing7434 without parameters7435 raises an error7436 attempting to retrieve an object from a different issue7437 behaves like a failure to find anything7438 finds nothing7439Groups::Settings::ApplicationsController7440 GET #index7441 when user is owner7442 renders the application form7443 when user is not owner7444 renders a 4047445 GET #edit7446 when user is owner7447 renders the application form7448 when user is not owner7449 renders a 4047450 POST #create7451 when user is owner7452 renders the application form on errors7453 with hash_oauth_secrets flag on7454 creates the application7455 with hash_oauth_secrets flag off7456 creates the application7457 when the params are for a confidential application7458 with hash_oauth_secrets flag off7459 creates a confidential application7460 with hash_oauth_secrets flag on7461 creates a confidential application7462 when scopes are not present7463 renders the application form on errors7464 when user is not owner7465 renders a 4047466 PATCH #update7467 when user is owner7468 updates the application7469 renders the application form on errors7470 when updating the application to be confidential7471 successfully sets the application to confidential7472 when user is not owner7473 renders a 4047474 DELETE #destroy7475 when user is owner7476 deletes the application7477 when user is not owner7478 renders a 4047479Setting assignees of a merge request7480 returns an error if the user is not allowed to update the merge request7481 reviewer does not exist7482 returns an error7483 reviewer exists7484 does not return an error7485Setting assignees of a merge request7486 returns an error if the user is not allowed to update the merge request7487 when the current user does not have permission to add assignees7488 does not change the assignees7489 with assignees already assigned7490 replaces the assignee7491 triggers webhooks7492 when passing an empty list of assignees7493Skipping ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb[1:4:1] 'Setting assignees of a merge request when passing an empty list of assignees removes assignee' because it's flaky.7494 removes assignee (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)7495 when passing append as true7496Skipping ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb[1:5:1] 'Setting assignees of a merge request when passing append as true does not replace the assignee in CE' because it's flaky.7497 does not replace the assignee in CE (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)7498 when passing remove as true7499Skipping ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb[1:6:1] 'Setting assignees of a merge request when passing remove as true removes the users in the list, while adding none' because it's flaky.7500 removes the users in the list, while adding none (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)7501JiraConnect::SubscriptionsController7502 #index7503 without JWT7504 returns 4037505 with valid JWT7506 returns 2007507 removes X-Frame-Options to allow rendering in iframe7508 with JSON format7509 renders the relevant data as JSON7510 when not signed in to GitLab7511 contains a login path7512 when signed in to GitLab7513 does not contain a login path7514 with context qsh7515 is expected to respond with numeric status code ok7516 #create7517 without JWT7518 returns 4037519 with valid JWT7520 signed in to GitLab7521 dev panel integration is available7522 creates a subscription7523 returns 2007524 when the Jira user is not a site-admin7525 returns forbidden7526 not signed in to GitLab7527 returns 4017528 #destroy7529 without JWT7530 returns 4037531 with valid JWT7532 deletes the subscription7533 when the Jira user is not a site admin7534 does not delete the subscription7535API::PersonalAccessTokens::SelfInformation7536 # order random7537 DELETE /personal_access_tokens/self7538 when current_user is an administrator7539 behaves like revoking token succeeds7540 revokes token7541 with impersonated token7542 behaves like revoking token succeeds7543 revokes token7544 when current_user is not an administrator7545 behaves like revoking token succeeds7546 revokes token7547 with impersonated token7548 behaves like revoking token denied7549 cannot revoke token7550 with already revoked token7551 behaves like revoking token denied7552 cannot revoke token7553 with a 'api' scoped token7554 behaves like revoking token succeeds7555 revokes token7556 with a 'read_api' scoped token7557 behaves like revoking token succeeds7558 revokes token7559 with a 'read_user' scoped token7560 behaves like revoking token succeeds7561 revokes token7562 with a 'read_repository' scoped token7563 behaves like revoking token succeeds7564 revokes token7565 with a 'write_repository' scoped token7566 behaves like revoking token succeeds7567 revokes token7568 with a 'sudo' scoped token7569 behaves like revoking token succeeds7570 revokes token7571 GET /personal_access_tokens/self7572 with a 'api' scoped token7573 shows token info7574 with a 'read_api' scoped token7575 shows token info7576 with a 'read_user' scoped token7577 shows token info7578 with a 'read_repository' scoped token7579 shows token info7580 with a 'write_repository' scoped token7581 shows token info7582 with a 'sudo' scoped token7583 shows token info7584 when token is invalid7585 returns 4017586 when token is expired7587 returns 4017588Projects::BlameController7589 GET show7590 valid branch, valid file7591 is expected to respond with 2007592 valid branch, invalid file7593 redirects7594 invalid branch, valid file7595 is expected to respond with 4047596API::RemoteMirrors7597 GET /projects/:id/remote_mirrors7598 requires `admin_remote_mirror` permission7599 returns a list of remote mirrors7600 GET /projects/:id/remote_mirrors/:mirror_id7601 requires `admin_remote_mirror` permission7602 returns at remote mirror7603 POST /projects/:id/remote_mirrors7604 requires `admin_remote_mirror` permission7605 returns error if url is invalid7606 creates a remote mirror7607 disabled by default7608 behaves like creates a remote mirror7609 creates a remote mirror and returns reponse7610 enabled7611 behaves like creates a remote mirror7612 creates a remote mirror and returns reponse7613 PUT /projects/:id/remote_mirrors/:mirror_id7614 requires `admin_remote_mirror` permission7615 updates a remote mirror7616 DELETE /projects/:id/remote_mirrors/:mirror_id7617 requires `admin_remote_mirror` permission7618 when the user is a maintainer7619 returns 404 for non existing id7620 returns bad request if the update service fails7621 deletes a remote mirror7622Creation of a new merge request7623 the user is not allowed to create a branch7624 behaves like a mutation that returns a top-level access error7625 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"7626 when user has permissions to create a merge request7627DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7628DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7629DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7630DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7631DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7632DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7633 creates a new merge request7634 when source branch is equal to the target branch7635 behaves like a mutation that returns errors in the response7636 is expected to contain exactly "Branch conflict You can't use same project/branch for source and target"7637Getting starredProjects of the user7638 anonymous access7639 returns nothing7640 the current user is the user7641 found all projects7642 behaves like a working graphql query7643 returns a successful response7644 the current user is a member of a private project the user starred7645 finds public and member projects7646 the user has a private profile7647 the current user does not have access to view the private profile of the user7648 finds no projects7649 the current user has access to view the private profile of the user7650 finds all projects starred by the user, which the current user has access to7651Merge Requests Context Commit Diffs7652 GET diffs_batch7653 without caching7654 behaves like serializes diffs with expected arguments7655 serializes paginated merge request diff collection7656 with caching7657 when the request has not been cached7658 behaves like serializes diffs with expected arguments7659 serializes paginated merge request diff collection7660 when the request has already been cached7661 does not serialize diffs7662 with the different user7663 behaves like serializes diffs with expected arguments7664 serializes paginated merge request diff collection7665Projects::Harbor::TagsController7666 behaves like a harbor tags controller7667 GET #index.json7668 with harbor registry feature flag enabled7669 behaves like responds with 200 status with json7670 renders the index template7671 with harbor registry feature flag disabled7672 behaves like responds with 404 status7673 returns 4047674 with anonymous user7675 behaves like responds with 302 status7676 returns 3027677 with unauthorized user7678 behaves like responds with 404 status7679 returns 4047680 with valid params7681 with valid repository7682 behaves like responds with 200 status with json7683 renders the index template7684 with valid page7685 behaves like responds with 200 status with json7686 renders the index template7687 with valid limit7688 behaves like responds with 200 status with json7689 renders the index template7690 with invalid params7691 with invalid page7692 behaves like responds with 422 status with json7693 returns 4227694 with invalid limit7695 behaves like responds with 422 status with json7696 returns 4227697Create a new cluster agent7698 without project permissions7699 does not create cluster agent7700 behaves like a mutation that returns a top-level access error7701 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"7702 with user permissions7703DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7704DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7705 creates a new cluster agent7706Projects::Import::JiraController7707 GET #show7708 behaves like users without permissions7709 with anonymous user7710 redirects to new user page7711 when loged user is a developer7712 behaves like redirect with error7713 redirects to project issues path7714 renders a correct error7715 jira integration configuration7716 when Jira service is not enabled for the project7717 does not query Jira service7718 behaves like template with no message7719 does not set any message7720 renders show template7721 when Jira service is not configured correctly for the project7722 behaves like template with no message7723 does not set any message7724 renders show template7725API::Statistics Statistics7726 GET /application/statistics7727 when no user7728 returns authentication error7729 when not an admin7730 returns forbidden error7731 when authenticated as admin7732 matches the response schema7733 gives the right statistics7734API::Avatar7735 GET /avatar7736 avatar uploaded to GitLab7737 user with matching public email address7738 returns the avatar url7739 no user with matching public email address7740 returns the avatar url from Gravatar7741 avatar uploaded to Gravatar7742 user with matching public email address7743 returns the avatar url from Gravatar7744 no user with matching public email address7745 returns the avatar url from Gravatar7746 public visibility level restricted7747 when authenticated7748 returns the avatar url7749 when unauthenticated7750 behaves like 403 response7751 returns 4037752Query current user todos7753DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7754DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7755DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7756DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7757DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7758DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7759DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7760DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7761 contains the expected ids7762DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7763DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7764DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7765DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7766DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7767DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7768DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7769DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7770 returns Todos for all target types7771 behaves like a working graphql query7772DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7773DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7774DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7775DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7776DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7777DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7778DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7779DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7780 returns a successful response7781API::Integrations::JiraConnect::Subscriptions7782 POST /integrations/jira_connect/subscriptions7783 returns 4017784 with user token7785 with feature flag disabled7786 returns 4047787 with invalid JWT7788 returns 4017789 with valid JWT7790 returns 401 if the user does not have access to the group7791 user has access to the group7792 creates a subscription7793 returns 2017794Projects::Settings::IntegrationHookLogsController7795 # order random7796 behaves like WebHooks::HookLogActions7797 GET #show7798 renders a 200 if the hook exists7799 renders a 404 if the hook does not exist7800 POST #retry7801 executes the hook and redirects to the service form7802 renders a 404 if the hook does not exist7803Restoring Todos7804 restores a single todo7805 when todo is already marked pending7806 has the expected response7807 when todo does not belong to requesting user7808 results in the correct todo states7809 behaves like a mutation that returns a top-level access error7810 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"7811 when using an invalid gid7812 contains the expected error7813ProjectUnauthorized7814 .on_routable_not_found7815 renders a 200 when the service allows access to the project7816 renders a 403 when the service denies access to the project7817 renders a 404 when the user cannot see the project at all7818Projects::MattermostsController7819 GET #new7820 accepts the request7821 POST #create7822 no request can be made to mattermost7823 shows the error7824 the request is succesull7825 redirects to the new page7826Query.project.pipeline.stages.groups7827 returns a array of jobs belonging to a pipeline7828 behaves like a working graphql query7829 returns a successful response7830ConfirmEmailWarning7831 confirm email flash warning7832 when not signed in7833 is expected not to set confirm warning for "user886@example.org"7834 when signed in7835 with a confirmed user7836 is expected not to set confirm warning for "user887@example.org"7837 with an unconfirmed user7838 when executing a json request7839 is expected not to set confirm warning for "user888@example.org"7840 when executing a post request7841 is expected not to set confirm warning for "user889@example.org"7842 when executing a get request7843 with an unconfirmed email address present7844 is expected to set confirm warning for "unconfirmed@gitlab.com"7845 without an unconfirmed email address present7846 is expected to set confirm warning for "user891@example.org"7847Groups::AvatarsController7848/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 nil7849 removes avatar from DB calling destroy7850/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 nil7851 works when external authorization service is enabled7852API::Users7853 PUT /user/preferences/7854 with correct attributes and a logged in user7855 returns a success status and the value has been changed7856 missing a preference7857 returns a bad request status7858 without a logged in user7859 returns an unauthorized status7860 with an unsupported preference7861 returns a bad parameter7862 with an unsupported value7863 returns a bad parameter7864 with an update service failure7865 returns a bad request7866User sends malformed strings7867 raises a 400 error with a null byte7868 raises a 400 error with an invalid string7869 raises a 400 error with null bytes in the auth headers7870API::Ci::Runner7871 POST /runners/reset_authentication_token7872 current token provided7873 resets authentication token when token doesn't have an expiration7874 resets authentication token when token is not expired7875 does not reset authentication token when token is expired7876 wrong current token provided7877 does not reset authentication token7878Setting subscribed status of a merge request7879 behaves like a subscribable resource api7880 when the user is not authorized7881 behaves like a mutation that returns top-level errors7882 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"7883 when user is authorized7884 marks the resource as subscribed7885 when passing subscribe false as input7886 unmarks the resource as subscribed7887Admin::JobsController7888 GET #index7889 with an authenticated admin user7890 paginates builds without a total count7891 without admin access7892 returns `not_found`7893getting a list of work item types for a project7894 when user has access to the project7895 returns all default work item types7896 behaves like a working graphql query7897 returns a successful response7898 when user doesn't have access to the project7899 does not return the project7900Query.project.jobs7901 does not generate N+1 queries7902Removing an HTTP Integration7903 removes the integration7904Work Items7905 GET /:namespace/:project/work_items/:id7906 renders index7907ConfigureSastIac7908 when authorized7909 creates a branch with sast iac configured7910Creating a timeline event tag7911 # order random7912 when user has permissions to create timeline event tag7913 creates timeline event tag7914 when user does not have permissions to create timeline event tag7915 raises error7916JwksController7917 Endpoints from the parent Doorkeeper::OpenidConnect::DiscoveryController7918 respond successfully7919 GET /-/jwks7920 returns signing keys used to sign CI_JOB_JWT7921 does not leak private key data7922Loading a user avatar7923 when logged in7924 only performs three SQL queries7925 when logged out7926 only performs two SQL queries7927Projects::Packages::PackagesController7928 GET #index7929 behaves like returning response status7930 returns ok7931 GET #show7932 behaves like returning response status7933 returns ok7934EmailRejectionMailer7935 #rejection7936 behaves like appearance header and footer enabled7937 contains header and footer7938 behaves like appearance header and footer not enabled7939 does not contain header and footer7940Admin::Topics::AvatarsController7941/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 nil7942 removes avatar from DB by calling destroy7943Projects::NetworkController7944 # order random7945 GET #show7946 when user is unauthorized7947 shows 4047948 when user is authorized7949 renders content7950 assigns url7951 when ref_type is provided7952 assigns url with ref_type7953 when the use_ref_type_parameter flag is disabled7954 assigns url without ref_type7955Knapsack report was generated. Preview:7956{7957 "spec/requests/api/npm_instance_packages_spec.rb": 469.64512641200054,7958 "spec/requests/lfs_http_spec.rb": 118.10273258300003,7959 "spec/requests/api/issues/get_group_issues_spec.rb": 109.06789501200001,7960 "spec/requests/api/tags_spec.rb": 82.74795257799997,7961 "spec/requests/api/project_debian_distributions_spec.rb": 32.215320977000374,7962 "spec/controllers/projects/releases_controller_spec.rb": 52.51218163699923,7963 "spec/requests/api/ci/runners_spec.rb": 33.90321957299966,7964 "spec/requests/api/project_clusters_spec.rb": 48.154487062000044,7965 "spec/requests/api/award_emoji_spec.rb": 36.14887773100054,7966 "spec/requests/openid_connect_spec.rb": 34.52736193999954,7967 "spec/requests/api/graphql/project/container_repositories_spec.rb": 25.263762955999482,7968 "spec/requests/api/project_milestones_spec.rb": 21.685083366999606,7969 "spec/mailers/previews_spec.rb": 15.916640936000476,7970 "spec/requests/api/graphql/ci/pipelines_spec.rb": 22.87086681800065,7971 "spec/requests/api/graphql/packages/package_spec.rb": 18.876934776999406,7972 "spec/requests/api/markdown_golden_master_spec.rb": 9.140461982999113,7973 "spec/controllers/registrations_controller_spec.rb": 14.20718652100004,7974 "spec/requests/api/graphql/packages/maven_spec.rb": 19.160279108000395,7975 "spec/requests/verifies_with_email_spec.rb": 11.701927071000682,7976 "spec/requests/api/project_templates_spec.rb": 10.688913218999005,7977 "spec/requests/api/graphql/mutations/notes/update/image_diff_note_spec.rb": 11.138281747998917,7978 "spec/requests/api/merge_request_approvals_spec.rb": 12.632662034000532,7979 "spec/requests/api/graphql/group/dependency_proxy_group_setting_spec.rb": 7.683925392000674,7980 "spec/requests/api/graphql/mutations/packages/destroy_files_spec.rb": 10.176467053999659,7981 "spec/controllers/projects/settings/repository_controller_spec.rb": 12.722570612000709,7982 "spec/controllers/snippets/blobs_controller_spec.rb": 9.27188171400121,7983 "spec/controllers/concerns/routable_actions_spec.rb": 9.067466319000232,7984 "spec/requests/api/graphql/project/merge_request/diff_notes_spec.rb": 8.837562134000109,7985 "spec/requests/api/graphql/group/group_members_spec.rb": 6.5835565559991664,7986 "spec/requests/api/graphql/project/issue_spec.rb": 7.150809388000198,7987 "spec/controllers/groups/settings/applications_controller_spec.rb": 5.475144690999514,7988 "spec/requests/api/graphql/mutations/merge_requests/reviewer_rereview_spec.rb": 6.545110127999578,7989 "spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb": 5.80265147800128,7990 "spec/controllers/jira_connect/subscriptions_controller_spec.rb": 3.9704149829995004,7991 "spec/requests/api/personal_access_tokens/self_information_spec.rb": 2.8321262980007305,7992 "spec/controllers/projects/blame_controller_spec.rb": 6.168275424000967,7993 "spec/requests/api/remote_mirrors_spec.rb": 4.89558906000093,7994 "spec/requests/api/graphql/mutations/merge_requests/create_spec.rb": 4.856733791999432,7995 "spec/requests/api/graphql/user/starred_projects_query_spec.rb": 4.613933029000691,7996 "spec/requests/projects/merge_requests/context_commit_diffs_spec.rb": 3.9220792849991994,7997 "spec/requests/projects/harbor/tags_controller_spec.rb": 3.61853164599961,7998 "spec/requests/api/graphql/mutations/clusters/agents/create_spec.rb": 4.522739535001165,7999 "spec/controllers/projects/import/jira_controller_spec.rb": 3.11057147000065,8000 "spec/requests/api/statistics_spec.rb": 3.6062656970007083,8001 "spec/requests/api/avatar_spec.rb": 1.6024018219995924,8002 "spec/requests/api/graphql/current_user/todos_query_spec.rb": 4.2183311650005635,8003 "spec/requests/api/integrations/jira_connect/subscriptions_spec.rb": 2.4270766459994775,8004 "spec/requests/projects/settings/integration_hook_logs_controller_spec.rb": 2.883043045001614,8005 "spec/requests/api/graphql/mutations/todos/restore_spec.rb": 3.557295429998703,8006 "spec/controllers/concerns/project_unauthorized_spec.rb": 3.4327858380002,8007 "spec/controllers/projects/mattermosts_controller_spec.rb": 2.811241160999998,8008 "spec/requests/api/graphql/ci/groups_spec.rb": 2.3480833110006643,8009 "spec/controllers/concerns/confirm_email_warning_spec.rb": 2.782353773000068,8010 "spec/controllers/groups/avatars_controller_spec.rb": 1.512638178999623,8011 "spec/requests/api/users_preferences_spec.rb": 1.1056627660000231,8012 "spec/requests/user_sends_malformed_strings_spec.rb": 0.8877260400004161,8013 "spec/requests/api/ci/runner/runners_reset_spec.rb": 1.0839032570002018,8014 "spec/requests/api/graphql/mutations/merge_requests/set_subscription_spec.rb": 2.511047100999349,8015 "spec/controllers/admin/jobs_controller_spec.rb": 2.0021745350004494,8016 "spec/requests/api/graphql/project/work_item_types_spec.rb": 1.6332354200003465,8017 "spec/requests/api/graphql/project/jobs_spec.rb": 1.8393736460002401,8018 "spec/requests/api/graphql/mutations/alert_management/http_integration/destroy_spec.rb": 1.264367873998708,8019 "spec/requests/projects/work_items_spec.rb": 1.409855873998822,8020 "spec/requests/api/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb": 1.9069781420002982,8021 "spec/requests/api/graphql/mutations/incident_management/timeline_event_tag/create_spec.rb": 1.416013103998921,8022 "spec/requests/jwks_controller_spec.rb": 0.9810522640000272,8023 "spec/requests/user_avatar_spec.rb": 1.1027677960009896,8024 "spec/controllers/projects/packages/packages_controller_spec.rb": 0.8495995329994912,8025 "spec/mailers/email_rejection_mailer_spec.rb": 0.8838886909998109,8026 "spec/controllers/admin/topics/avatars_controller_spec.rb": 0.5305463040003815,8027 "spec/requests/projects/network_controller_spec.rb": 3.55099872000027978028}8029Knapsack global time execution for tests: 23m 18s8030Pending: (Failures listed here are expected and do not affect your suite's status)8031 1) API::NpmInstancePackages GET /api/v4/packages/npm/*package_name behaves like handling get metadata requests with a user namespace behaves like handling all conditions auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries8032 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8033 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:328034 2) API::NpmInstancePackages GET /api/v4/packages/npm/*package_name behaves like handling get metadata requests with a user namespace behaves like handling all conditions auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries8035 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8036 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:328037 3) API::NpmInstancePackages GET /api/v4/packages/npm/*package_name behaves like handling get metadata requests with a user namespace behaves like handling all conditions auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries8038 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8039 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:328040 4) Mailer previews preview: NotifyPreview, email: "note_merge_request_email_for_diff_discussion" 8042 Failure/Error: CreateNoteDiffFileWorker.perform_async(id)8043 Sidekiq::Worker::EnqueueFromTransactionError:8044 CreateNoteDiffFileWorker.perform_async cannot be enqueued inside a transaction as this can lead to8045 race conditions when the worker runs before the transaction is committed and8046 tries to access a model that has not been saved yet.8047 Use an `after_commit` hook, or include `AfterCommitQueue` and use a `run_after_commit` block instead.8048 # ./config/initializers/forbid_sidekiq_in_transactions.rb:28:in `raise_inside_transaction_exception'8049 # ./config/initializers/forbid_sidekiq_in_transactions.rb:43:in `block (2 levels) in <module:NoEnqueueingFromTransactions>'8050 # ./app/models/diff_note.rb:140:in `enqueue_diff_file_creation_job'8051 # ./app/models/diff_note.rb:74:in `block in diff_file'8052 # ./lib/gitlab/utils/strong_memoize.rb:34:in `strong_memoize'8053 # ./app/models/diff_note.rb:71:in `diff_file'8054 # ./app/services/notes/create_service.rb:179:in `should_track_ipynb_notes?'8055 # ./app/services/notes/create_service.rb:183:in `track_note_creation_in_ipynb'8056 # ./app/services/notes/create_service.rb:153:in `track_event'8057 # ./ee/app/services/ee/notes/create_service.rb:14:in `track_event'8058 # ./app/services/notes/create_service.rb:80:in `when_saved'8059 # ./app/services/notes/create_service.rb:37:in `block in execute'8060 # ./app/services/notes/create_service.rb:52:in `execute_quick_actions'8061 # ./app/services/notes/create_service.rb:23:in `execute'8062 # ./app/mailers/previews/notify_preview.rb:267:in `create_note'8063 # ./app/mailers/previews/notify_preview.rb:59:in `block in note_merge_request_email_for_diff_discussion'8064 # ./app/mailers/previews/notify_preview.rb:272:in `block in note_email'8065 # ./app/mailers/previews/notify_preview.rb:282:in `block in cleanup'8066 # ./app/models/concerns/cross_database_modification.rb:92:in `block in transaction'8067 # ./lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'8068 # ./lib/gitlab/database/load_balancing/load_balancer.rb:129:in `block in read_write'8069 # ./lib/gitlab/database/load_balancing/load_balancer.rb:200:in `retry_with_backoff'8070 # ./lib/gitlab/database/load_balancing/load_balancer.rb:118:in `read_write'8071 # ./lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'8072 # ./lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'8073 # ./lib/gitlab/database.rb:333:in `block in transaction'8074 # ./lib/gitlab/database.rb:332:in `transaction'8075 # ./app/models/concerns/cross_database_modification.rb:83:in `transaction'8076 # ./app/mailers/previews/notify_preview.rb:281:in `cleanup'8077 # ./app/mailers/previews/notify_preview.rb:271:in `note_email'8078 # ./app/mailers/previews/notify_preview.rb:38:in `note_merge_request_email_for_diff_discussion'8079 # ./spec/mailers/previews_spec.rb:30:in `block (2 levels) in <top (required)>'8080 # ./spec/mailers/previews_spec.rb:41:in `block (3 levels) in <top (required)>'8081 # ./spec/spec_helper.rb:413:in `block (3 levels) in <top (required)>'8082 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8083 # ./spec/spec_helper.rb:405:in `block (2 levels) in <top (required)>'8084 # ./spec/spec_helper.rb:401:in `block (3 levels) in <top (required)>'8085 # ./lib/gitlab/application_context.rb:59:in `with_raw_context'8086 # ./spec/spec_helper.rb:401:in `block (2 levels) in <top (required)>'8087 # ./spec/spec_helper.rb:241:in `block (2 levels) in <top (required)>'8088 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8089 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'8090 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8091 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8092 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8093 5) API::Markdown Golden Master for footnotes verifies conversion of GFM to HTML8095 Failure/Error: expect(normalized_response_html).to eq(normalized_example_html)8096 expected: "<p data-sourcepos=\"1:1-1:46\" dir=\"auto\">A footnote reference tag looks like this: <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref=\"\">1</a></sup></p>\n<p data-sourcepos=\"3:1-3:56\" dir=\"auto\">This reference tag is a mix of letters and numbers. <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref=\"\">2</a></sup></p>\n<section class=\"footnotes\" data-footnotes><ol>\n<li id=\"ID\">\n<p data-sourcepos=\"5:7-5:41\">This is the text inside a footnote. <a href=\"REF\" aria-label=\"Back to content\" class=\"footnote-backref\" data-footnote-backref=\"\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n<li id=\"ID\">\n<p data-sourcepos=\"6:7-6:31\">This is another footnote. <a href=\"REF\" aria-label=\"Back to content\" class=\"footnote-backref\" data-footnote-backref=\"\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n</ol></section>"8097 got: "<p data-sourcepos=\"1:1-1:46\" dir=\"auto\">A footnote reference tag looks like this: <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref>1</a></sup></p>\n<p data-sourcepos=\"3:1-3:63\" dir=\"auto\">This reference tag is a mix of letters and numbers. <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref>2</a></sup></p>\n<section data-footnotes class=\"footnotes\">\n<ol>\n<li id=\"ID\">\n<p data-sourcepos=\"5:7-5:41\">This is the text inside a footnote. <a href=\"REF\" data-footnote-backref aria-label=\"Back to content\" class=\"footnote-backref\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n<li id=\"ID\">\n<p data-sourcepos=\"7:14-7:38\">This is another footnote. <a href=\"REF\" data-footnote-backref aria-label=\"Back to content\" class=\"footnote-backref\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n</ol>\n</section>"8098 (compared using ==)8099 Diff:8100 @@ -1,11 +1,13 @@8101 -<p data-sourcepos="1:1-1:46" dir="auto">A footnote reference tag looks like this: <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref="">1</a></sup></p>8102 -<p data-sourcepos="3:1-3:56" dir="auto">This reference tag is a mix of letters and numbers. <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref="">2</a></sup></p>8103 -<section class="footnotes" data-footnotes><ol>8104 +<p data-sourcepos="1:1-1:46" dir="auto">A footnote reference tag looks like this: <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref>1</a></sup></p>8105 +<p data-sourcepos="3:1-3:63" dir="auto">This reference tag is a mix of letters and numbers. <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref>2</a></sup></p>8106 +<section data-footnotes class="footnotes">8107 +<ol>8108 <li id="ID">8109 -<p data-sourcepos="5:7-5:41">This is the text inside a footnote. <a href="REF" aria-label="Back to content" class="footnote-backref" data-footnote-backref=""><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>8110 +<p data-sourcepos="5:7-5:41">This is the text inside a footnote. <a href="REF" data-footnote-backref aria-label="Back to content" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>8111 </li>8112 <li id="ID">8113 -<p data-sourcepos="6:7-6:31">This is another footnote. <a href="REF" aria-label="Back to content" class="footnote-backref" data-footnote-backref=""><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>8114 +<p data-sourcepos="7:14-7:38">This is another footnote. <a href="REF" data-footnote-backref aria-label="Back to content" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>8115 </li>8116 -</ol></section>8117 +</ol>8118 +</section>8119 Shared Example Group: "API::Markdown Golden Master shared context" called from ./spec/requests/api/markdown_golden_master_spec.rb:88120 # ./spec/support/shared_contexts/markdown_golden_master_shared_examples.rb:85:in `block (4 levels) in <top (required)>'8121 # ./spec/spec_helper.rb:413:in `block (3 levels) in <top (required)>'8122 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8123 # ./spec/spec_helper.rb:405:in `block (2 levels) in <top (required)>'8124 # ./spec/spec_helper.rb:401:in `block (3 levels) in <top (required)>'8125 # ./lib/gitlab/application_context.rb:59:in `with_raw_context'8126 # ./spec/spec_helper.rb:401:in `block (2 levels) in <top (required)>'8127 # ./spec/spec_helper.rb:241:in `block (2 levels) in <top (required)>'8128 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8129 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'8130 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8131 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8132 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8133 6) Setting assignees of a merge request when passing an empty list of assignees removes assignee8134 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8135 # ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb:1178136 7) Setting assignees of a merge request when passing append as true does not replace the assignee in CE8137 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8138 # ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb:1398139 8) Setting assignees of a merge request when passing remove as true removes the users in the list, while adding none8140 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8141 # ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb:1588142Finished in 23 minutes 23 seconds (files took 1 minute 19.92 seconds to load)81432965 examples, 0 failures, 8 pending8144Randomized with seed 478258145[TEST PROF INFO] Time spent in factories: 07:38.278 (31.74% of total time)8146RSpec exited with 0.8147No examples to retry, congrats!8149Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy8150Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy8152Uploading artifacts...8153coverage/: found 5 matching files and directories 8154crystalball/: found 2 matching files and directories 8155WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 8156knapsack/: found 3 matching files and directories 8157WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory 8158rspec/: found 12 matching files and directories 8159WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 8160log/*.log: found 17 matching files and directories 8161WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741022/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8162WARNING: Retrying... context=artifacts-uploader error=request redirected8163Uploading artifacts as "archive" to coordinator... 201 Created id=3443741022 responseStatus=201 Created token=YAsMEYcz8164Uploading artifacts...8165rspec/junit_rspec.xml: found 1 matching files and directories 8166WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741022/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8167WARNING: Retrying... context=artifacts-uploader error=request redirected8168Uploading artifacts as "junit" to coordinator... 201 Created id=3443741022 responseStatus=201 Created token=YAsMEYcz8170Job succeeded