rspec integration pg12 3/10
Passed Started
by
@.luke

Luke Duncalfe
1 behaves like redirect metadata request2 redirects metadata request3 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found4 behaves like reject metadata request5 rejects the metadata request6 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok7 behaves like accept metadata request8 accepts the metadata request9Skipping ./spec/requests/api/npm_instance_packages_spec.rb[1:1:1:2:1:25: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: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.10 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)11 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok12 behaves like accept metadata request13 accepts the metadata request14 avoids N+1 database queries15 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok16 behaves like accept metadata request17 accepts the metadata request18Skipping ./spec/requests/api/npm_instance_packages_spec.rb[1:1:1:2:1:27: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: :public, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.19 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)20 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok21 behaves like accept metadata request22 accepts the metadata request23Skipping ./spec/requests/api/npm_instance_packages_spec.rb[1:1:1:2:1:28: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: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.24 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)25 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok26 behaves like redirect metadata request27 redirects metadata request28 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok29 behaves like redirect metadata request30 redirects metadata request31 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok32 behaves like reject metadata request33 rejects the metadata request34 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok35 behaves like reject metadata request36 rejects the metadata request37 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok38 behaves like redirect metadata request39 redirects metadata request40 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok41 behaves like redirect metadata request42 redirects metadata request43 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok44 behaves like reject metadata request45 rejects the metadata request46 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok47 behaves like reject metadata request48 rejects the metadata request49 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected50 behaves like redirect metadata request51 redirects metadata request52 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected53 behaves like redirect metadata request54 redirects metadata request55 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found56 behaves like reject metadata request57 rejects the metadata request58 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found59 behaves like reject metadata request60 rejects the metadata request61 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden62 behaves like reject metadata request63 rejects the metadata request64 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok65 behaves like accept metadata request66 accepts the metadata request67 avoids N+1 database queries68 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden69 behaves like reject metadata request70 rejects the metadata request71 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok72 behaves like accept metadata request73 accepts the metadata request74Skipping ./spec/requests/api/npm_instance_packages_spec.rb[1:1:1:2:1:44: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: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.75 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)76 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden77 behaves like redirect metadata request78 redirects metadata request79 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok80 behaves like redirect metadata request81 redirects metadata request82 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden83 behaves like reject metadata request84 rejects the metadata request85 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok86 behaves like reject metadata request87 rejects the metadata request88 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden89 behaves like redirect metadata request90 redirects metadata request91 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok92 behaves like redirect metadata request93 redirects metadata request94 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden95 behaves like reject metadata request96 rejects the metadata request97 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok98 behaves like reject metadata request99 rejects the metadata request100 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected101 behaves like redirect metadata request102 redirects metadata request103 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected104 behaves like redirect metadata request105 redirects metadata request106 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden107 behaves like reject metadata request108 rejects the metadata request109 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found110 behaves like reject metadata request111 rejects the metadata request112 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok113 behaves like accept metadata request114 accepts the metadata request115 avoids N+1 database queries116 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok117 behaves like accept metadata request118 accepts the metadata request119 avoids N+1 database queries120 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok121 behaves like accept metadata request122 accepts the metadata request123 avoids N+1 database queries124 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok125 behaves like accept metadata request126 accepts the metadata request127 avoids N+1 database queries128 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok129 behaves like redirect metadata request130 redirects metadata request131 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok132 behaves like redirect metadata request133 redirects metadata request134 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok135 behaves like reject metadata request136 rejects the metadata request137 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok138 behaves like reject metadata request139 rejects the metadata request140 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok141 behaves like redirect metadata request142 redirects metadata request143 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok144 behaves like redirect metadata request145 redirects metadata request146 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok147 behaves like reject metadata request148 rejects the metadata request149 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok150 behaves like reject metadata request151 rejects the metadata request152 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected153 behaves like redirect metadata request154 redirects metadata request155 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected156 behaves like redirect metadata request157 redirects metadata request158 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found159 behaves like reject metadata request160 rejects the metadata request161 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found162 behaves like reject metadata request163 rejects the metadata request164 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok165 behaves like accept metadata request166 accepts the metadata request167 avoids N+1 database queries168 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok169 behaves like accept metadata request170 accepts the metadata request171 avoids N+1 database queries172 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok173 behaves like accept metadata request174 accepts the metadata request175 avoids N+1 database queries176 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok177 behaves like accept metadata request178 accepts the metadata request179 avoids N+1 database queries180 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok181 behaves like redirect metadata request182 redirects metadata request183 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok184 behaves like redirect metadata request185 redirects metadata request186 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok187 behaves like reject metadata request188 rejects the metadata request189 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok190 behaves like reject metadata request191 rejects the metadata request192 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok193 behaves like redirect metadata request194 redirects metadata request195 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok196 behaves like redirect metadata request197 redirects metadata request198 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok199 behaves like reject metadata request200 rejects the metadata request201 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok202 behaves like reject metadata request203 rejects the metadata request204 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected205 behaves like redirect metadata request206 redirects metadata request207 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected208 behaves like redirect metadata request209 redirects metadata request210 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found211 behaves like reject metadata request212 rejects the metadata request213 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found214 behaves like reject metadata request215 rejects the metadata request216 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden217 behaves like reject metadata request218 rejects the metadata request219 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok220 behaves like accept metadata request221 accepts the metadata request222 avoids N+1 database queries223 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden224 behaves like reject metadata request225 rejects the metadata request226 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok227 behaves like accept metadata request228 accepts the metadata request229 avoids N+1 database queries230 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden231 behaves like redirect metadata request232 redirects metadata request233 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok234 behaves like redirect metadata request235 redirects metadata request236 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden237 behaves like reject metadata request238 rejects the metadata request239 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok240 behaves like reject metadata request241 rejects the metadata request242 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden243 behaves like redirect metadata request244 redirects metadata request245 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok246 behaves like redirect metadata request247 redirects metadata request248 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden249 behaves like reject metadata request250 rejects the metadata request251 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok252 behaves like reject metadata request253 rejects the metadata request254 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected255 behaves like redirect metadata request256 redirects metadata request257 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected258 behaves like redirect metadata request259 redirects metadata request260 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden261 behaves like reject metadata request262 rejects the metadata request263 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found264 behaves like reject metadata request265 rejects the metadata request266 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok267 behaves like accept metadata request268 accepts the metadata request269 avoids N+1 database queries270 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok271 behaves like accept metadata request272 accepts the metadata request273 avoids N+1 database queries274 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok275 behaves like accept metadata request276 accepts the metadata request277 avoids N+1 database queries278 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok279 behaves like accept metadata request280 accepts the metadata request281 avoids N+1 database queries282 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok283 behaves like redirect metadata request284 redirects metadata request285 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok286 behaves like redirect metadata request287 redirects metadata request288 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok289 behaves like reject metadata request290 rejects the metadata request291 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok292 behaves like reject metadata request293 rejects the metadata request294 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok295 behaves like redirect metadata request296 redirects metadata request297 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok298 behaves like redirect metadata request299 redirects metadata request300 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok301 behaves like reject metadata request302 rejects the metadata request303 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok304 behaves like reject metadata request305 rejects the metadata request306 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected307 behaves like redirect metadata request308 redirects metadata request309 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected310 behaves like redirect metadata request311 redirects metadata request312 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found313 behaves like reject metadata request314 rejects the metadata request315 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found316 behaves like reject metadata request317 rejects the metadata request318 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok319 behaves like accept metadata request320 accepts the metadata request321 avoids N+1 database queries322 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok323 behaves like accept metadata request324 accepts the metadata request325 avoids N+1 database queries326 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok327 behaves like redirect metadata request328 redirects metadata request329 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok330 behaves like reject metadata request331 rejects the metadata request332 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok333 behaves like redirect metadata request334 redirects metadata request335 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok336 behaves like reject metadata request337 rejects the metadata request338 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected339 behaves like redirect metadata request340 redirects metadata request341 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found342 behaves like reject metadata request343 rejects the metadata request344 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok345 behaves like accept metadata request346 accepts the metadata request347 avoids N+1 database queries348 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok349 behaves like accept metadata request350 accepts the metadata request351 avoids N+1 database queries352 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok353 behaves like redirect metadata request354 redirects metadata request355 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok356 behaves like reject metadata request357 rejects the metadata request358 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok359 behaves like redirect metadata request360 redirects metadata request361 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok362 behaves like reject metadata request363 rejects the metadata request364 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected365 behaves like redirect metadata request366 redirects metadata request367 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found368 behaves like reject metadata request369 rejects the metadata request370 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok371 behaves like accept metadata request372 accepts the metadata request373 avoids N+1 database queries374 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok375 behaves like accept metadata request376 accepts the metadata request377 avoids N+1 database queries378 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok379 behaves like redirect metadata request380 redirects metadata request381 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok382 behaves like reject metadata request383 rejects the metadata request384 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok385 behaves like redirect metadata request386 redirects metadata request387 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok388 behaves like reject metadata request389 rejects the metadata request390 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected391 behaves like redirect metadata request392 redirects metadata request393 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found394 behaves like reject metadata request395 rejects the metadata request396 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok397 behaves like accept metadata request398 accepts the metadata request399 avoids N+1 database queries400 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok401 behaves like accept metadata request402 accepts the metadata request403 avoids N+1 database queries404 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok405 behaves like redirect metadata request406 redirects metadata request407 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok408 behaves like reject metadata request409 rejects the metadata request410 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok411 behaves like redirect metadata request412 redirects metadata request413 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok414 behaves like reject metadata request415 rejects the metadata request416 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected417 behaves like redirect metadata request418 redirects metadata request419 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found420 behaves like reject metadata request421 rejects the metadata request422 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok423 behaves like accept metadata request424 accepts the metadata request425 avoids N+1 database queries426 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok427 behaves like accept metadata request428 accepts the metadata request429 avoids N+1 database queries430 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok431 behaves like redirect metadata request432 redirects metadata request433 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok434 behaves like reject metadata request435 rejects the metadata request436 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok437 behaves like redirect metadata request438 redirects metadata request439 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok440 behaves like reject metadata request441 rejects the metadata request442 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected443 behaves like redirect metadata request444 redirects metadata request445 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found446 behaves like reject metadata request447 rejects the metadata request448 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok449 behaves like accept metadata request450 accepts the metadata request451 avoids N+1 database queries452 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok453 behaves like accept metadata request454 accepts the metadata request455 avoids N+1 database queries456 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok457 behaves like redirect metadata request458 redirects metadata request459 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok460 behaves like reject metadata request461 rejects the metadata request462 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok463 behaves like redirect metadata request464 redirects metadata request465 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok466 behaves like reject metadata request467 rejects the metadata request468 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected469 behaves like redirect metadata request470 redirects metadata request471 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found472 behaves like reject metadata request473 rejects the metadata request474 with a developer475 project path with a dot476 behaves like accept metadata request477 accepts the metadata request478 avoids N+1 database queries479 with a job token480 behaves like reject metadata request481 rejects the metadata request482 GET /api/v4/packages/npm/-/package/*package_name/dist-tags483 behaves like handling get dist tags requests484 with a group namespace485 behaves like handling all conditions486 with oauth token487 behaves like handling different package names, visibilities and user roles488 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok489 behaves like accept package tags request490 with valid package name491 returns a valid json response492 returns two package tags493 behaves like returning response status494 returns ok495 with invalid package name496 package_name: "%20", status: :bad_request497 behaves like returning response status498 returns bad_request499 package_name: nil, status: :not_found500 behaves like returning response status501 returns not_found502 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok503 behaves like accept package tags request504 with valid package name505 returns a valid json response506 returns two package tags507 behaves like returning response status508 returns ok509 with invalid package name510 package_name: "%20", status: :bad_request511 behaves like returning response status512 returns bad_request513 package_name: nil, status: :not_found514 behaves like returning response status515 returns not_found516 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok517 behaves like accept package tags request518 with valid package name519 returns a valid json response520 returns two package tags521 behaves like returning response status522 returns ok523 with invalid package name524 package_name: "%20", status: :bad_request525 behaves like returning response status526 returns bad_request527 package_name: nil, status: :not_found528 behaves like returning response status529 returns not_found530 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok531 behaves like reject package tags request532 behaves like returning response status533 returns not_found534 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok535 behaves like reject package tags request536 behaves like returning response status537 returns not_found538 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok539 behaves like reject package tags request540 behaves like returning response status541 returns not_found542 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok543 behaves like reject package tags request544 behaves like returning response status545 returns not_found546 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok547 behaves like reject package tags request548 behaves like returning response status549 returns not_found550 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok551 behaves like reject package tags request552 behaves like returning response status553 returns not_found554 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found555 behaves like reject package tags request556 behaves like returning response status557 returns not_found558 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found559 behaves like reject package tags request560 behaves like returning response status561 returns not_found562 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found563 behaves like reject package tags request564 behaves like returning response status565 returns not_found566 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found567 behaves like reject package tags request568 behaves like returning response status569 returns not_found570 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden571 behaves like reject package tags request572 behaves like returning response status573 returns forbidden574 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok575 behaves like accept package tags request576 with valid package name577 returns a valid json response578 returns two package tags579 behaves like returning response status580 returns ok581 with invalid package name582 package_name: "%20", status: :bad_request583 behaves like returning response status584 returns bad_request585 package_name: nil, status: :not_found586 behaves like returning response status587 returns not_found588 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found589 behaves like reject package tags request590 behaves like returning response status591 returns not_found592 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden593 behaves like reject package tags request594 behaves like returning response status595 returns not_found596 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok597 behaves like reject package tags request598 behaves like returning response status599 returns not_found600 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found601 behaves like reject package tags request602 behaves like returning response status603 returns not_found604 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden605 behaves like reject package tags request606 behaves like returning response status607 returns not_found608 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok609 behaves like reject package tags request610 behaves like returning response status611 returns not_found612 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found613 behaves like reject package tags request614 behaves like returning response status615 returns not_found616 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden617 behaves like reject package tags request618 behaves like returning response status619 returns not_found620 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found621 behaves like reject package tags request622 behaves like returning response status623 returns not_found624 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found625 behaves like reject package tags request626 behaves like returning response status627 returns not_found628 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok629 behaves like accept package tags request630 with valid package name631 returns a valid json response632 returns two package tags633 behaves like returning response status634 returns ok635 with invalid package name636 package_name: "%20", status: :bad_request637 behaves like returning response status638 returns bad_request639 package_name: nil, status: :not_found640 behaves like returning response status641 returns not_found642 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok643 behaves like accept package tags request644 with valid package name645 returns a valid json response646 returns two package tags647 behaves like returning response status648 returns ok649 with invalid package name650 package_name: "%20", status: :bad_request651 behaves like returning response status652 returns bad_request653 package_name: nil, status: :not_found654 behaves like returning response status655 returns not_found656 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found657 behaves like reject package tags request658 behaves like returning response status659 returns not_found660 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok661 behaves like reject package tags request662 behaves like returning response status663 returns not_found664 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok665 behaves like reject package tags request666 behaves like returning response status667 returns not_found668 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found669 behaves like reject package tags request670 behaves like returning response status671 returns not_found672 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok673 behaves like reject package tags request674 behaves like returning response status675 returns not_found676 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok677 behaves like reject package tags request678 behaves like returning response status679 returns not_found680 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found681 behaves like reject package tags request682 behaves like returning response status683 returns not_found684 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found685 behaves like reject package tags request686 behaves like returning response status687 returns not_found688 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found689 behaves like reject package tags request690 behaves like returning response status691 returns not_found692 with personal access token693 behaves like handling different package names, visibilities and user roles694 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok695 behaves like accept package tags request696 with valid package name697 returns a valid json response698 returns two package tags699 behaves like returning response status700 returns ok701 with invalid package name702 package_name: "%20", status: :bad_request703 behaves like returning response status704 returns bad_request705 package_name: nil, status: :not_found706 behaves like returning response status707 returns not_found708 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok709 behaves like accept package tags request710 with valid package name711 returns a valid json response712 returns two package tags713 behaves like returning response status714 returns ok715 with invalid package name716 package_name: "%20", status: :bad_request717 behaves like returning response status718 returns bad_request719 package_name: nil, status: :not_found720 behaves like returning response status721 returns not_found722 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok723 behaves like accept package tags request724 with valid package name725 returns a valid json response726 returns two package tags727 behaves like returning response status728 returns ok729 with invalid package name730 package_name: "%20", status: :bad_request731 behaves like returning response status732 returns bad_request733 package_name: nil, status: :not_found734 behaves like returning response status735 returns not_found736 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok737 behaves like reject package tags request738 behaves like returning response status739 returns not_found740 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok741 behaves like reject package tags request742 behaves like returning response status743 returns not_found744 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok745 behaves like reject package tags request746 behaves like returning response status747 returns not_found748 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok749 behaves like reject package tags request750 behaves like returning response status751 returns not_found752 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok753 behaves like reject package tags request754 behaves like returning response status755 returns not_found756 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok757 behaves like reject package tags request758 behaves like returning response status759 returns not_found760 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found761 behaves like reject package tags request762 behaves like returning response status763 returns not_found764 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found765 behaves like reject package tags request766 behaves like returning response status767 returns not_found768 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found769 behaves like reject package tags request770 behaves like returning response status771 returns not_found772 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found773 behaves like reject package tags request774 behaves like returning response status775 returns not_found776 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden777 behaves like reject package tags request778 behaves like returning response status779 returns forbidden780 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok781 behaves like accept package tags request782 with valid package name783 returns a valid json response784 returns two package tags785 behaves like returning response status786 returns ok787 with invalid package name788 package_name: "%20", status: :bad_request789 behaves like returning response status790 returns bad_request791 package_name: nil, status: :not_found792 behaves like returning response status793 returns not_found794 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found795 behaves like reject package tags request796 behaves like returning response status797 returns not_found798 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden799 behaves like reject package tags request800 behaves like returning response status801 returns not_found802 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok803 behaves like reject package tags request804 behaves like returning response status805 returns not_found806 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found807 behaves like reject package tags request808 behaves like returning response status809 returns not_found810 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden811 behaves like reject package tags request812 behaves like returning response status813 returns not_found814 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok815 behaves like reject package tags request816 behaves like returning response status817 returns not_found818 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found819 behaves like reject package tags request820 behaves like returning response status821 returns not_found822 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden823 behaves like reject package tags request824 behaves like returning response status825 returns not_found826 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found827 behaves like reject package tags request828 behaves like returning response status829 returns not_found830 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found831 behaves like reject package tags request832 behaves like returning response status833 returns not_found834 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok835 behaves like accept package tags request836 with valid package name837 returns a valid json response838 returns two package tags839 behaves like returning response status840 returns ok841 with invalid package name842 package_name: "%20", status: :bad_request843 behaves like returning response status844 returns bad_request845 package_name: nil, status: :not_found846 behaves like returning response status847 returns not_found848 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok849 behaves like accept package tags request850 with valid package name851 returns a valid json response852 returns two package tags853 behaves like returning response status854 returns ok855 with invalid package name856 package_name: "%20", status: :bad_request857 behaves like returning response status858 returns bad_request859 package_name: nil, status: :not_found860 behaves like returning response status861 returns not_found862 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found863 behaves like reject package tags request864 behaves like returning response status865 returns not_found866 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok867 behaves like reject package tags request868 behaves like returning response status869 returns not_found870 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok871 behaves like reject package tags request872 behaves like returning response status873 returns not_found874 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found875 behaves like reject package tags request876 behaves like returning response status877 returns not_found878 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok879 behaves like reject package tags request880 behaves like returning response status881 returns not_found882 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok883 behaves like reject package tags request884 behaves like returning response status885 returns not_found886 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found887 behaves like reject package tags request888 behaves like returning response status889 returns not_found890 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found891 behaves like reject package tags request892 behaves like returning response status893 returns not_found894 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found895 behaves like reject package tags request896 behaves like returning response status897 returns not_found898 with a user namespace899 behaves like handling all conditions900 with oauth token901 behaves like handling different package names, visibilities and user roles902 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok903 behaves like accept package tags request904 with valid package name905 returns a valid json response906 returns two package tags907 behaves like returning response status908 returns ok909 with invalid package name910 package_name: "%20", status: :bad_request911 behaves like returning response status912 returns bad_request913 package_name: nil, status: :not_found914 behaves like returning response status915 returns not_found916 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok917 behaves like accept package tags request918 with valid package name919 returns a valid json response920 returns two package tags921 behaves like returning response status922 returns ok923 with invalid package name924 package_name: "%20", status: :bad_request925 behaves like returning response status926 returns bad_request927 package_name: nil, status: :not_found928 behaves like returning response status929 returns not_found930 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok931 behaves like accept package tags request932 with valid package name933 returns a valid json response934 returns two package tags935 behaves like returning response status936 returns ok937 with invalid package name938 package_name: "%20", status: :bad_request939 behaves like returning response status940 returns bad_request941 package_name: nil, status: :not_found942 behaves like returning response status943 returns not_found944 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok945 behaves like reject package tags request946 behaves like returning response status947 returns not_found948 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok949 behaves like reject package tags request950 behaves like returning response status951 returns not_found952 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok953 behaves like reject package tags request954 behaves like returning response status955 returns not_found956 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok957 behaves like reject package tags request958 behaves like returning response status959 returns not_found960 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok961 behaves like reject package tags request962 behaves like returning response status963 returns not_found964 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok965 behaves like reject package tags request966 behaves like returning response status967 returns not_found968 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found969 behaves like reject package tags request970 behaves like returning response status971 returns not_found972 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found973 behaves like reject package tags request974 behaves like returning response status975 returns not_found976 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found977 behaves like reject package tags request978 behaves like returning response status979 returns not_found980 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found981 behaves like reject package tags request982 behaves like returning response status983 returns not_found984 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden985 behaves like reject package tags request986 behaves like returning response status987 returns forbidden988 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok989 behaves like accept package tags request990 with valid package name991 returns a valid json response992 returns two package tags993 behaves like returning response status994 returns ok995 with invalid package name996 package_name: "%20", status: :bad_request997 behaves like returning response status998 returns bad_request999 package_name: nil, status: :not_found1000 behaves like returning response status1001 returns not_found1002 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1003 behaves like reject package tags request1004 behaves like returning response status1005 returns not_found1006 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1007 behaves like reject package tags request1008 behaves like returning response status1009 returns not_found1010 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1011 behaves like reject package tags request1012 behaves like returning response status1013 returns not_found1014 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1015 behaves like reject package tags request1016 behaves like returning response status1017 returns not_found1018 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1019 behaves like reject package tags request1020 behaves like returning response status1021 returns not_found1022 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1023 behaves like reject package tags request1024 behaves like returning response status1025 returns not_found1026 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1027 behaves like reject package tags request1028 behaves like returning response status1029 returns not_found1030 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1031 behaves like reject package tags request1032 behaves like returning response status1033 returns not_found1034 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1035 behaves like reject package tags request1036 behaves like returning response status1037 returns not_found1038 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1039 behaves like reject package tags request1040 behaves like returning response status1041 returns not_found1042 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1043 behaves like accept package tags request1044 with valid package name1045 returns a valid json response1046 returns two package tags1047 behaves like returning response status1048 returns ok1049 with invalid package name1050 package_name: "%20", status: :bad_request1051 behaves like returning response status1052 returns bad_request1053 package_name: nil, status: :not_found1054 behaves like returning response status1055 returns not_found1056 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1057 behaves like accept package tags request1058 with valid package name1059 returns a valid json response1060 returns two package tags1061 behaves like returning response status1062 returns ok1063 with invalid package name1064 package_name: "%20", status: :bad_request1065 behaves like returning response status1066 returns bad_request1067 package_name: nil, status: :not_found1068 behaves like returning response status1069 returns not_found1070 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1071 behaves like reject package tags request1072 behaves like returning response status1073 returns not_found1074 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1075 behaves like reject package tags request1076 behaves like returning response status1077 returns not_found1078 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1079 behaves like reject package tags request1080 behaves like returning response status1081 returns not_found1082 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1083 behaves like reject package tags request1084 behaves like returning response status1085 returns not_found1086 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1087 behaves like reject package tags request1088 behaves like returning response status1089 returns not_found1090 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1091 behaves like reject package tags request1092 behaves like returning response status1093 returns not_found1094 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1095 behaves like reject package tags request1096 behaves like returning response status1097 returns not_found1098 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1099 behaves like reject package tags request1100 behaves like returning response status1101 returns not_found1102 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1103 behaves like reject package tags request1104 behaves like returning response status1105 returns not_found1106 with personal access token1107 behaves like handling different package names, visibilities and user roles1108 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1109 behaves like accept package tags request1110 with valid package name1111 returns a valid json response1112 returns two package tags1113 behaves like returning response status1114 returns ok1115 with invalid package name1116 package_name: "%20", status: :bad_request1117 behaves like returning response status1118 returns bad_request1119 package_name: nil, status: :not_found1120 behaves like returning response status1121 returns not_found1122 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1123 behaves like accept package tags request1124 with valid package name1125 returns a valid json response1126 returns two package tags1127 behaves like returning response status1128 returns ok1129 with invalid package name1130 package_name: "%20", status: :bad_request1131 behaves like returning response status1132 returns bad_request1133 package_name: nil, status: :not_found1134 behaves like returning response status1135 returns not_found1136 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1137 behaves like accept package tags request1138 with valid package name1139 returns a valid json response1140 returns two package tags1141 behaves like returning response status1142 returns ok1143 with invalid package name1144 package_name: "%20", status: :bad_request1145 behaves like returning response status1146 returns bad_request1147 package_name: nil, status: :not_found1148 behaves like returning response status1149 returns not_found1150 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1151 behaves like reject package tags request1152 behaves like returning response status1153 returns not_found1154 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1155 behaves like reject package tags request1156 behaves like returning response status1157 returns not_found1158 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1159 behaves like reject package tags request1160 behaves like returning response status1161 returns not_found1162 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1163 behaves like reject package tags request1164 behaves like returning response status1165 returns not_found1166 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1167 behaves like reject package tags request1168 behaves like returning response status1169 returns not_found1170 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1171 behaves like reject package tags request1172 behaves like returning response status1173 returns not_found1174 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1175 behaves like reject package tags request1176 behaves like returning response status1177 returns not_found1178 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1179 behaves like reject package tags request1180 behaves like returning response status1181 returns not_found1182 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1183 behaves like reject package tags request1184 behaves like returning response status1185 returns not_found1186 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1187 behaves like reject package tags request1188 behaves like returning response status1189 returns not_found1190 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1191 behaves like reject package tags request1192 behaves like returning response status1193 returns forbidden1194 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1195 behaves like accept package tags request1196 with valid package name1197 returns a valid json response1198 returns two package tags1199 behaves like returning response status1200 returns ok1201 with invalid package name1202 package_name: "%20", status: :bad_request1203 behaves like returning response status1204 returns bad_request1205 package_name: nil, status: :not_found1206 behaves like returning response status1207 returns not_found1208 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1209 behaves like reject package tags request1210 behaves like returning response status1211 returns not_found1212 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1213 behaves like reject package tags request1214 behaves like returning response status1215 returns not_found1216 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1217 behaves like reject package tags request1218 behaves like returning response status1219 returns not_found1220 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1221 behaves like reject package tags request1222 behaves like returning response status1223 returns not_found1224 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1225 behaves like reject package tags request1226 behaves like returning response status1227 returns not_found1228 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1229 behaves like reject package tags request1230 behaves like returning response status1231 returns not_found1232 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1233 behaves like reject package tags request1234 behaves like returning response status1235 returns not_found1236 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1237 behaves like reject package tags request1238 behaves like returning response status1239 returns not_found1240 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1241 behaves like reject package tags request1242 behaves like returning response status1243 returns not_found1244 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1245 behaves like reject package tags request1246 behaves like returning response status1247 returns not_found1248 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1249 behaves like accept package tags request1250 with valid package name1251 returns a valid json response1252 returns two package tags1253 behaves like returning response status1254 returns ok1255 with invalid package name1256 package_name: "%20", status: :bad_request1257 behaves like returning response status1258 returns bad_request1259 package_name: nil, status: :not_found1260 behaves like returning response status1261 returns not_found1262 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1263 behaves like accept package tags request1264 with valid package name1265 returns a valid json response1266 returns two package tags1267 behaves like returning response status1268 returns ok1269 with invalid package name1270 package_name: "%20", status: :bad_request1271 behaves like returning response status1272 returns bad_request1273 package_name: nil, status: :not_found1274 behaves like returning response status1275 returns not_found1276 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1277 behaves like reject package tags request1278 behaves like returning response status1279 returns not_found1280 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1281 behaves like reject package tags request1282 behaves like returning response status1283 returns not_found1284 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1285 behaves like reject package tags request1286 behaves like returning response status1287 returns not_found1288 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1289 behaves like reject package tags request1290 behaves like returning response status1291 returns not_found1292 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1293 behaves like reject package tags request1294 behaves like returning response status1295 returns not_found1296 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1297 behaves like reject package tags request1298 behaves like returning response status1299 returns not_found1300 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1301 behaves like reject package tags request1302 behaves like returning response status1303 returns not_found1304 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1305 behaves like reject package tags request1306 behaves like returning response status1307 returns not_found1308 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1309 behaves like reject package tags request1310 behaves like returning response status1311 returns not_found1312 PUT /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag1313 behaves like handling create dist tag requests1314 with a group namespace1315 behaves like handling all conditions1316 with oauth token1317 behaves like handling different package names, visibilities and user roles1318 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1319 behaves like reject create package tag request1320 behaves like returning response status1321 returns forbidden1322 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1323 behaves like reject create package tag request1324 behaves like returning response status1325 returns forbidden1326 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1327 behaves like accept create package tag request1328 with valid package name1329 creates the package tag1330 returns a valid response1331 behaves like returning response status1332 returns no_content1333 with already existing tag1334 reuses existing tag1335 returns a valid response1336 behaves like returning response status1337 returns no_content1338 with invalid package name1339 package_name: "unknown", status: :not_found1340 behaves like returning response status1341 returns not_found1342 package_name: "", status: :not_found1343 behaves like returning response status1344 returns not_found1345 package_name: "%20", status: :bad_request1346 behaves like returning response status1347 returns bad_request1348 with invalid tag name1349 tag_name: "", status: :not_found1350 behaves like returning response status1351 returns not_found1352 tag_name: "%20", status: :bad_request1353 behaves like returning response status1354 returns bad_request1355 with invalid version1356 version: " ", status: :bad_request1357 behaves like returning response status1358 returns bad_request1359 version: "", status: :bad_request1360 behaves like returning response status1361 returns bad_request1362 version: nil, status: :bad_request1363 behaves like returning response status1364 returns bad_request1365 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1366 behaves like reject create package tag request1367 behaves like returning response status1368 returns not_found1369 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1370 behaves like reject create package tag request1371 behaves like returning response status1372 returns not_found1373 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1374 behaves like reject create package tag request1375 behaves like returning response status1376 returns not_found1377 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1378 behaves like reject create package tag request1379 behaves like returning response status1380 returns not_found1381 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1382 behaves like reject create package tag request1383 behaves like returning response status1384 returns not_found1385 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1386 behaves like reject create package tag request1387 behaves like returning response status1388 returns not_found1389 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1390 behaves like reject create package tag request1391 behaves like returning response status1392 returns not_found1393 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1394 behaves like reject create package tag request1395 behaves like returning response status1396 returns not_found1397 package_name_type: :non_existing, visibility: :public, user_role: :developer, 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: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1402 behaves like reject create package tag request1403 behaves like returning response status1404 returns not_found1405 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1406 behaves like reject create package tag request1407 behaves like returning response status1408 returns forbidden1409 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1410 behaves like accept create package tag request1411 with valid package name1412 creates the package tag1413 returns a valid response1414 behaves like returning response status1415 returns no_content1416 with already existing tag1417 reuses existing tag1418 returns a valid response1419 behaves like returning response status1420 returns no_content1421 with invalid package name1422 package_name: "unknown", status: :not_found1423 behaves like returning response status1424 returns not_found1425 package_name: "", status: :not_found1426 behaves like returning response status1427 returns not_found1428 package_name: "%20", status: :bad_request1429 behaves like returning response status1430 returns bad_request1431 with invalid tag name1432 tag_name: "", status: :not_found1433 behaves like returning response status1434 returns not_found1435 tag_name: "%20", status: :bad_request1436 behaves like returning response status1437 returns bad_request1438 with invalid version1439 version: " ", status: :bad_request1440 behaves like returning response status1441 returns bad_request1442 version: "", status: :bad_request1443 behaves like returning response status1444 returns bad_request1445 version: nil, status: :bad_request1446 behaves like returning response status1447 returns bad_request1448 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1449 behaves like reject create package tag request1450 behaves like returning response status1451 returns not_found1452 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1453 behaves like reject create package tag request1454 behaves like returning response status1455 returns not_found1456 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1457 behaves like reject create package tag request1458 behaves like returning response status1459 returns not_found1460 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1461 behaves like reject create package tag request1462 behaves like returning response status1463 returns not_found1464 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1465 behaves like reject create package tag request1466 behaves like returning response status1467 returns not_found1468 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1469 behaves like reject create package tag request1470 behaves like returning response status1471 returns not_found1472 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1473 behaves like reject create package tag request1474 behaves like returning response status1475 returns not_found1476 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1477 behaves like reject create package tag request1478 behaves like returning response status1479 returns not_found1480 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1481 behaves like reject create package tag request1482 behaves like returning response status1483 returns not_found1484 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1485 behaves like reject create package tag request1486 behaves like returning response status1487 returns forbidden1488 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1489 behaves like reject create package tag request1490 behaves like returning response status1491 returns forbidden1492 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1493 behaves like accept create package tag request1494 with valid package name1495 creates the package tag1496 returns a valid response1497 behaves like returning response status1498 returns no_content1499 with already existing tag1500 reuses existing tag1501 returns a valid response1502 behaves like returning response status1503 returns no_content1504 with invalid package name1505 package_name: "unknown", status: :not_found1506 behaves like returning response status1507 returns not_found1508 package_name: "", status: :not_found1509 behaves like returning response status1510 returns not_found1511 package_name: "%20", status: :bad_request1512 behaves like returning response status1513 returns bad_request1514 with invalid tag name1515 tag_name: "", status: :not_found1516 behaves like returning response status1517 returns not_found1518 tag_name: "%20", status: :bad_request1519 behaves like returning response status1520 returns bad_request1521 with invalid version1522 version: " ", status: :bad_request1523 behaves like returning response status1524 returns bad_request1525 version: "", status: :bad_request1526 behaves like returning response status1527 returns bad_request1528 version: nil, status: :bad_request1529 behaves like returning response status1530 returns bad_request1531 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1532 behaves like reject create package tag request1533 behaves like returning response status1534 returns not_found1535 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1536 behaves like reject create package tag request1537 behaves like returning response status1538 returns not_found1539 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1540 behaves like reject create package tag request1541 behaves like returning response status1542 returns not_found1543 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1544 behaves like reject create package tag request1545 behaves like returning response status1546 returns not_found1547 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1548 behaves like reject create package tag request1549 behaves like returning response status1550 returns not_found1551 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1552 behaves like reject create package tag request1553 behaves like returning response status1554 returns not_found1555 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1556 behaves like reject create package tag request1557 behaves like returning response status1558 returns not_found1559 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1560 behaves like reject create package tag request1561 behaves like returning response status1562 returns not_found1563 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1564 behaves like reject create package tag request1565 behaves like returning response status1566 returns not_found1567 with personal access token1568 behaves like handling different package names, visibilities and user roles1569 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1570 behaves like reject create package tag request1571 behaves like returning response status1572 returns forbidden1573 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1574 behaves like reject create package tag request1575 behaves like returning response status1576 returns forbidden1577 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1578 behaves like accept create package tag request1579 with valid package name1580 creates the package tag1581 returns a valid response1582 behaves like returning response status1583 returns no_content1584 with already existing tag1585 reuses existing tag1586 returns a valid response1587 behaves like returning response status1588 returns no_content1589 with invalid package name1590 package_name: "unknown", status: :not_found1591 behaves like returning response status1592 returns not_found1593 package_name: "", status: :not_found1594 behaves like returning response status1595 returns not_found1596 package_name: "%20", status: :bad_request1597 behaves like returning response status1598 returns bad_request1599 with invalid tag name1600 tag_name: "", status: :not_found1601 behaves like returning response status1602 returns not_found1603 tag_name: "%20", status: :bad_request1604 behaves like returning response status1605 returns bad_request1606 with invalid version1607 version: " ", status: :bad_request1608 behaves like returning response status1609 returns bad_request1610 version: "", status: :bad_request1611 behaves like returning response status1612 returns bad_request1613 version: nil, status: :bad_request1614 behaves like returning response status1615 returns bad_request1616 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1617 behaves like reject create package tag request1618 behaves like returning response status1619 returns not_found1620 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1621 behaves like reject create package tag request1622 behaves like returning response status1623 returns not_found1624 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1625 behaves like reject create package tag request1626 behaves like returning response status1627 returns not_found1628 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1629 behaves like reject create package tag request1630 behaves like returning response status1631 returns not_found1632 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1633 behaves like reject create package tag request1634 behaves like returning response status1635 returns not_found1636 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1637 behaves like reject create package tag request1638 behaves like returning response status1639 returns not_found1640 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1641 behaves like reject create package tag request1642 behaves like returning response status1643 returns not_found1644 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1645 behaves like reject create package tag request1646 behaves like returning response status1647 returns not_found1648 package_name_type: :non_existing, visibility: :public, user_role: :developer, 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: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1653 behaves like reject create package tag request1654 behaves like returning response status1655 returns not_found1656 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1657 behaves like reject create package tag request1658 behaves like returning response status1659 returns forbidden1660 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1661 behaves like accept create package tag request1662 with valid package name1663 creates the package tag1664 returns a valid response1665 behaves like returning response status1666 returns no_content1667 with already existing tag1668 reuses existing tag1669 returns a valid response1670 behaves like returning response status1671 returns no_content1672 with invalid package name1673 package_name: "unknown", status: :not_found1674 behaves like returning response status1675 returns not_found1676 package_name: "", status: :not_found1677 behaves like returning response status1678 returns not_found1679 package_name: "%20", status: :bad_request1680 behaves like returning response status1681 returns bad_request1682 with invalid tag name1683 tag_name: "", status: :not_found1684 behaves like returning response status1685 returns not_found1686 tag_name: "%20", status: :bad_request1687 behaves like returning response status1688 returns bad_request1689 with invalid version1690 version: " ", status: :bad_request1691 behaves like returning response status1692 returns bad_request1693 version: "", status: :bad_request1694 behaves like returning response status1695 returns bad_request1696 version: nil, status: :bad_request1697 behaves like returning response status1698 returns bad_request1699 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1700 behaves like reject create package tag request1701 behaves like returning response status1702 returns not_found1703 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1704 behaves like reject create package tag request1705 behaves like returning response status1706 returns not_found1707 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1708 behaves like reject create package tag request1709 behaves like returning response status1710 returns not_found1711 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1712 behaves like reject create package tag request1713 behaves like returning response status1714 returns not_found1715 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1716 behaves like reject create package tag request1717 behaves like returning response status1718 returns not_found1719 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1720 behaves like reject create package tag request1721 behaves like returning response status1722 returns not_found1723 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1724 behaves like reject create package tag request1725 behaves like returning response status1726 returns not_found1727 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1728 behaves like reject create package tag request1729 behaves like returning response status1730 returns not_found1731 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1732 behaves like reject create package tag request1733 behaves like returning response status1734 returns not_found1735 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1736 behaves like reject create package tag request1737 behaves like returning response status1738 returns forbidden1739 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1740 behaves like reject create package tag request1741 behaves like returning response status1742 returns forbidden1743 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1744 behaves like accept create package tag request1745 with valid package name1746 creates the package tag1747 returns a valid response1748 behaves like returning response status1749 returns no_content1750 with already existing tag1751 reuses existing tag1752 returns a valid response1753 behaves like returning response status1754 returns no_content1755 with invalid package name1756 package_name: "unknown", status: :not_found1757 behaves like returning response status1758 returns not_found1759 package_name: "", status: :not_found1760 behaves like returning response status1761 returns not_found1762 package_name: "%20", status: :bad_request1763 behaves like returning response status1764 returns bad_request1765 with invalid tag name1766 tag_name: "", status: :not_found1767 behaves like returning response status1768 returns not_found1769 tag_name: "%20", status: :bad_request1770 behaves like returning response status1771 returns bad_request1772 with invalid version1773 version: " ", status: :bad_request1774 behaves like returning response status1775 returns bad_request1776 version: "", status: :bad_request1777 behaves like returning response status1778 returns bad_request1779 version: nil, status: :bad_request1780 behaves like returning response status1781 returns bad_request1782 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1783 behaves like reject create package tag request1784 behaves like returning response status1785 returns not_found1786 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1787 behaves like reject create package tag request1788 behaves like returning response status1789 returns not_found1790 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1791 behaves like reject create package tag request1792 behaves like returning response status1793 returns not_found1794 package_name_type: :unscoped, visibility: :internal, 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: :unscoped, visibility: :internal, 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: :unscoped, visibility: :internal, 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: :non_existing, visibility: :internal, 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: :non_existing, visibility: :internal, 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: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1815 behaves like reject create package tag request1816 behaves like returning response status1817 returns not_found1818 with a user namespace1819 behaves like handling all conditions1820 with oauth token1821 behaves like handling different package names, visibilities and user roles1822 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1823 behaves like reject create package tag request1824 behaves like returning response status1825 returns forbidden1826 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1827 behaves like reject create package tag request1828 behaves like returning response status1829 returns forbidden1830 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1831 behaves like accept create package tag request1832 with valid package name1833 creates the package tag1834 returns a valid response1835 behaves like returning response status1836 returns no_content1837 with already existing tag1838 reuses existing tag1839 returns a valid response1840 behaves like returning response status1841 returns no_content1842 with invalid package name1843 package_name: "unknown", status: :not_found1844 behaves like returning response status1845 returns not_found1846 package_name: "", status: :not_found1847 behaves like returning response status1848 returns not_found1849 package_name: "%20", status: :bad_request1850 behaves like returning response status1851 returns bad_request1852 with invalid tag name1853 tag_name: "", status: :not_found1854 behaves like returning response status1855 returns not_found1856 tag_name: "%20", status: :bad_request1857 behaves like returning response status1858 returns bad_request1859 with invalid version1860 version: " ", status: :bad_request1861 behaves like returning response status1862 returns bad_request1863 version: "", status: :bad_request1864 behaves like returning response status1865 returns bad_request1866 version: nil, status: :bad_request1867 behaves like returning response status1868 returns bad_request1869 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1870 behaves like reject create package tag request1871 behaves like returning response status1872 returns not_found1873 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1874 behaves like reject create package tag request1875 behaves like returning response status1876 returns not_found1877 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1878 behaves like reject create package tag request1879 behaves like returning response status1880 returns not_found1881 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1882 behaves like reject create package tag request1883 behaves like returning response status1884 returns not_found1885 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1886 behaves like reject create package tag request1887 behaves like returning response status1888 returns not_found1889 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1890 behaves like reject create package tag request1891 behaves like returning response status1892 returns not_found1893 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1894 behaves like reject create package tag request1895 behaves like returning response status1896 returns not_found1897 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden1898 behaves like reject create package tag request1899 behaves like returning response status1900 returns not_found1901 package_name_type: :non_existing, visibility: :public, user_role: :developer, 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: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1906 behaves like reject create package tag request1907 behaves like returning response status1908 returns not_found1909 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1910 behaves like reject create package tag request1911 behaves like returning response status1912 returns forbidden1913 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1914 behaves like accept create package tag request1915 with valid package name1916 creates the package tag1917 returns a valid response1918 behaves like returning response status1919 returns no_content1920 with already existing tag1921 reuses existing tag1922 returns a valid response1923 behaves like returning response status1924 returns no_content1925 with invalid package name1926 package_name: "unknown", status: :not_found1927 behaves like returning response status1928 returns not_found1929 package_name: "", status: :not_found1930 behaves like returning response status1931 returns not_found1932 package_name: "%20", status: :bad_request1933 behaves like returning response status1934 returns bad_request1935 with invalid tag name1936 tag_name: "", status: :not_found1937 behaves like returning response status1938 returns not_found1939 tag_name: "%20", status: :bad_request1940 behaves like returning response status1941 returns bad_request1942 with invalid version1943 version: " ", status: :bad_request1944 behaves like returning response status1945 returns bad_request1946 version: "", status: :bad_request1947 behaves like returning response status1948 returns bad_request1949 version: nil, status: :bad_request1950 behaves like returning response status1951 returns bad_request1952 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1953 behaves like reject create package tag request1954 behaves like returning response status1955 returns not_found1956 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1957 behaves like reject create package tag request1958 behaves like returning response status1959 returns not_found1960 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1961 behaves like reject create package tag request1962 behaves like returning response status1963 returns not_found1964 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1965 behaves like reject create package tag request1966 behaves like returning response status1967 returns not_found1968 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1969 behaves like reject create package tag request1970 behaves like returning response status1971 returns not_found1972 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1973 behaves like reject create package tag request1974 behaves like returning response status1975 returns not_found1976 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1977 behaves like reject create package tag request1978 behaves like returning response status1979 returns not_found1980 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1981 behaves like reject create package tag request1982 behaves like returning response status1983 returns not_found1984 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1985 behaves like reject create package tag request1986 behaves like returning response status1987 returns not_found1988 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden1989 behaves like reject create package tag request1990 behaves like returning response status1991 returns forbidden1992 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1993 behaves like reject create package tag request1994 behaves like returning response status1995 returns forbidden1996 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1997 behaves like accept create package tag request1998 with valid package name1999 creates the package tag2000 returns a valid response2001 behaves like returning response status2002 returns no_content2003 with already existing tag2004 reuses existing tag2005 returns a valid response2006 behaves like returning response status2007 returns no_content2008 with invalid package name2009 package_name: "unknown", status: :not_found2010 behaves like returning response status2011 returns not_found2012 package_name: "", status: :not_found2013 behaves like returning response status2014 returns not_found2015 package_name: "%20", status: :bad_request2016 behaves like returning response status2017 returns bad_request2018 with invalid tag name2019 tag_name: "", status: :not_found2020 behaves like returning response status2021 returns not_found2022 tag_name: "%20", status: :bad_request2023 behaves like returning response status2024 returns bad_request2025 with invalid version2026 version: " ", status: :bad_request2027 behaves like returning response status2028 returns bad_request2029 version: "", status: :bad_request2030 behaves like returning response status2031 returns bad_request2032 version: nil, status: :bad_request2033 behaves like returning response status2034 returns bad_request2035 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2036 behaves like reject create package tag request2037 behaves like returning response status2038 returns not_found2039 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2040 behaves like reject create package tag request2041 behaves like returning response status2042 returns not_found2043 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2044 behaves like reject create package tag request2045 behaves like returning response status2046 returns not_found2047 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2048 behaves like reject create package tag request2049 behaves like returning response status2050 returns not_found2051 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2052 behaves like reject create package tag request2053 behaves like returning response status2054 returns not_found2055 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2056 behaves like reject create package tag request2057 behaves like returning response status2058 returns not_found2059 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2060 behaves like reject create package tag request2061 behaves like returning response status2062 returns not_found2063 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2064 behaves like reject create package tag request2065 behaves like returning response status2066 returns not_found2067 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2068 behaves like reject create package tag request2069 behaves like returning response status2070 returns not_found2071 with personal access token2072 behaves like handling different package names, visibilities and user roles2073 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2074 behaves like reject create package tag request2075 behaves like returning response status2076 returns forbidden2077 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2078 behaves like reject create package tag request2079 behaves like returning response status2080 returns forbidden2081 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2082 behaves like accept create package tag request2083 with valid package name2084 creates the package tag2085 returns a valid response2086 behaves like returning response status2087 returns no_content2088 with already existing tag2089 reuses existing tag2090 returns a valid response2091 behaves like returning response status2092 returns no_content2093 with invalid package name2094 package_name: "unknown", status: :not_found2095 behaves like returning response status2096 returns not_found2097 package_name: "", status: :not_found2098 behaves like returning response status2099 returns not_found2100 package_name: "%20", status: :bad_request2101 behaves like returning response status2102 returns bad_request2103 with invalid tag name2104 tag_name: "", status: :not_found2105 behaves like returning response status2106 returns not_found2107 tag_name: "%20", status: :bad_request2108 behaves like returning response status2109 returns bad_request2110 with invalid version2111 version: " ", status: :bad_request2112 behaves like returning response status2113 returns bad_request2114 version: "", status: :bad_request2115 behaves like returning response status2116 returns bad_request2117 version: nil, status: :bad_request2118 behaves like returning response status2119 returns bad_request2120 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2121 behaves like reject create package tag request2122 behaves like returning response status2123 returns not_found2124 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2125 behaves like reject create package tag request2126 behaves like returning response status2127 returns not_found2128 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2129 behaves like reject create package tag request2130 behaves like returning response status2131 returns not_found2132 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2133 behaves like reject create package tag request2134 behaves like returning response status2135 returns not_found2136 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2137 behaves like reject create package tag request2138 behaves like returning response status2139 returns not_found2140 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2141 behaves like reject create package tag request2142 behaves like returning response status2143 returns not_found2144 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2145 behaves like reject create package tag request2146 behaves like returning response status2147 returns not_found2148 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2149 behaves like reject create package tag request2150 behaves like returning response status2151 returns not_found2152 package_name_type: :non_existing, visibility: :public, user_role: :developer, 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: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2157 behaves like reject create package tag request2158 behaves like returning response status2159 returns not_found2160 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2161 behaves like reject create package tag request2162 behaves like returning response status2163 returns forbidden2164 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2165 behaves like accept create package tag request2166 with valid package name2167 creates the package tag2168 returns a valid response2169 behaves like returning response status2170 returns no_content2171 with already existing tag2172 reuses existing tag2173 returns a valid response2174 behaves like returning response status2175 returns no_content2176 with invalid package name2177 package_name: "unknown", status: :not_found2178 behaves like returning response status2179 returns not_found2180 package_name: "", status: :not_found2181 behaves like returning response status2182 returns not_found2183 package_name: "%20", status: :bad_request2184 behaves like returning response status2185 returns bad_request2186 with invalid tag name2187 tag_name: "", status: :not_found2188 behaves like returning response status2189 returns not_found2190 tag_name: "%20", status: :bad_request2191 behaves like returning response status2192 returns bad_request2193 with invalid version2194 version: " ", status: :bad_request2195 behaves like returning response status2196 returns bad_request2197 version: "", status: :bad_request2198 behaves like returning response status2199 returns bad_request2200 version: nil, status: :bad_request2201 behaves like returning response status2202 returns bad_request2203 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2204 behaves like reject create package tag request2205 behaves like returning response status2206 returns not_found2207 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2208 behaves like reject create package tag request2209 behaves like returning response status2210 returns not_found2211 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2212 behaves like reject create package tag request2213 behaves like returning response status2214 returns not_found2215 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2216 behaves like reject create package tag request2217 behaves like returning response status2218 returns not_found2219 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2220 behaves like reject create package tag request2221 behaves like returning response status2222 returns not_found2223 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2224 behaves like reject create package tag request2225 behaves like returning response status2226 returns not_found2227 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2228 behaves like reject create package tag request2229 behaves like returning response status2230 returns not_found2231 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2232 behaves like reject create package tag request2233 behaves like returning response status2234 returns not_found2235 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2236 behaves like reject create package tag request2237 behaves like returning response status2238 returns not_found2239 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2240 behaves like reject create package tag request2241 behaves like returning response status2242 returns forbidden2243 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2244 behaves like reject create package tag request2245 behaves like returning response status2246 returns forbidden2247 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2248 behaves like accept create package tag request2249 with valid package name2250 creates the package tag2251 returns a valid response2252 behaves like returning response status2253 returns no_content2254 with already existing tag2255 reuses existing tag2256 returns a valid response2257 behaves like returning response status2258 returns no_content2259 with invalid package name2260 package_name: "unknown", status: :not_found2261 behaves like returning response status2262 returns not_found2263 package_name: "", status: :not_found2264 behaves like returning response status2265 returns not_found2266 package_name: "%20", status: :bad_request2267 behaves like returning response status2268 returns bad_request2269 with invalid tag name2270 tag_name: "", status: :not_found2271 behaves like returning response status2272 returns not_found2273 tag_name: "%20", status: :bad_request2274 behaves like returning response status2275 returns bad_request2276 with invalid version2277 version: " ", status: :bad_request2278 behaves like returning response status2279 returns bad_request2280 version: "", status: :bad_request2281 behaves like returning response status2282 returns bad_request2283 version: nil, status: :bad_request2284 behaves like returning response status2285 returns bad_request2286 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2287 behaves like reject create package tag request2288 behaves like returning response status2289 returns not_found2290 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2291 behaves like reject create package tag request2292 behaves like returning response status2293 returns not_found2294 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2295 behaves like reject create package tag request2296 behaves like returning response status2297 returns not_found2298 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2299 behaves like reject create package tag request2300 behaves like returning response status2301 returns not_found2302 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2303 behaves like reject create package tag request2304 behaves like returning response status2305 returns not_found2306 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2307 behaves like reject create package tag request2308 behaves like returning response status2309 returns not_found2310 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2311 behaves like reject create package tag request2312 behaves like returning response status2313 returns not_found2314 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2315 behaves like reject create package tag request2316 behaves like returning response status2317 returns not_found2318 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2319 behaves like reject create package tag request2320 behaves like returning response status2321 returns not_found2322 DELETE /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag2323 behaves like handling delete dist tag requests2324 with a group namespace2325 behaves like handling all conditions2326 with oauth token2327 behaves like handling different package names, visibilities and user roles2328 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2329 behaves like reject delete package tag request2330 behaves like returning response status2331 returns forbidden2332 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2333 behaves like reject delete package tag request2334 behaves like returning response status2335 returns forbidden2336 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2337 behaves like accept delete package tag request2338 with valid package name2339 returns a valid response2340 destroy the package tag2341 behaves like returning response status2342 returns no_content2343 with tag from other package2344 behaves like returning response status2345 returns not_found2346 with invalid package name2347 package_name: "unknown", status: :not_found2348 behaves like returning response status2349 returns not_found2350 package_name: "", status: :not_found2351 behaves like returning response status2352 returns not_found2353 package_name: "%20", status: :bad_request2354 behaves like returning response status2355 returns bad_request2356 with invalid tag name2357 tag_name: "unknown", status: :not_found2358 behaves like returning response status2359 returns not_found2360 tag_name: "", status: :not_found2361 behaves like returning response status2362 returns not_found2363 tag_name: "%20", status: :bad_request2364 behaves like returning response status2365 returns bad_request2366 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2367 behaves like reject delete package tag request2368 behaves like returning response status2369 returns not_found2370 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2371 behaves like reject delete package tag request2372 behaves like returning response status2373 returns not_found2374 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2375 behaves like reject delete package tag request2376 behaves like returning response status2377 returns not_found2378 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2379 behaves like reject delete package tag request2380 behaves like returning response status2381 returns not_found2382 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2383 behaves like reject delete package tag request2384 behaves like returning response status2385 returns not_found2386 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2387 behaves like reject delete package tag request2388 behaves like returning response status2389 returns not_found2390 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2391 behaves like reject delete package tag request2392 behaves like returning response status2393 returns not_found2394 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2395 behaves like reject delete package tag request2396 behaves like returning response status2397 returns not_found2398 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2399 behaves like reject delete package tag request2400 behaves like returning response status2401 returns not_found2402 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2403 behaves like reject delete package tag request2404 behaves like returning response status2405 returns not_found2406 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2407 behaves like reject delete package tag request2408 behaves like returning response status2409 returns forbidden2410 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2411 behaves like accept delete package tag request2412 with valid package name2413 returns a valid response2414 destroy the package tag2415 behaves like returning response status2416 returns no_content2417 with tag from other package2418 behaves like returning response status2419 returns not_found2420 with invalid package name2421 package_name: "unknown", status: :not_found2422 behaves like returning response status2423 returns not_found2424 package_name: "", status: :not_found2425 behaves like returning response status2426 returns not_found2427 package_name: "%20", status: :bad_request2428 behaves like returning response status2429 returns bad_request2430 with invalid tag name2431 tag_name: "unknown", status: :not_found2432 behaves like returning response status2433 returns not_found2434 tag_name: "", status: :not_found2435 behaves like returning response status2436 returns not_found2437 tag_name: "%20", status: :bad_request2438 behaves like returning response status2439 returns bad_request2440 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2441 behaves like reject delete package tag request2442 behaves like returning response status2443 returns not_found2444 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2445 behaves like reject delete package tag request2446 behaves like returning response status2447 returns not_found2448 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2449 behaves like reject delete package tag request2450 behaves like returning response status2451 returns not_found2452 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2453 behaves like reject delete package tag request2454 behaves like returning response status2455 returns not_found2456 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2457 behaves like reject delete package tag request2458 behaves like returning response status2459 returns not_found2460 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2461 behaves like reject delete package tag request2462 behaves like returning response status2463 returns not_found2464 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2465 behaves like reject delete package tag request2466 behaves like returning response status2467 returns not_found2468 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2469 behaves like reject delete package tag request2470 behaves like returning response status2471 returns not_found2472 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2473 behaves like reject delete package tag request2474 behaves like returning response status2475 returns not_found2476 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2477 behaves like reject delete package tag request2478 behaves like returning response status2479 returns forbidden2480 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2481 behaves like reject delete package tag request2482 behaves like returning response status2483 returns forbidden2484 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2485 behaves like accept delete package tag request2486 with valid package name2487 returns a valid response2488 destroy the package tag2489 behaves like returning response status2490 returns no_content2491 with tag from other package2492 behaves like returning response status2493 returns not_found2494 with invalid package name2495 package_name: "unknown", status: :not_found2496 behaves like returning response status2497 returns not_found2498 package_name: "", status: :not_found2499 behaves like returning response status2500 returns not_found2501 package_name: "%20", status: :bad_request2502 behaves like returning response status2503 returns bad_request2504 with invalid tag name2505 tag_name: "unknown", status: :not_found2506 behaves like returning response status2507 returns not_found2508 tag_name: "", status: :not_found2509 behaves like returning response status2510 returns not_found2511 tag_name: "%20", status: :bad_request2512 behaves like returning response status2513 returns bad_request2514 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2515 behaves like reject delete package tag request2516 behaves like returning response status2517 returns not_found2518 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2519 behaves like reject delete package tag request2520 behaves like returning response status2521 returns not_found2522 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2523 behaves like reject delete package tag request2524 behaves like returning response status2525 returns not_found2526 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2527 behaves like reject delete package tag request2528 behaves like returning response status2529 returns not_found2530 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2531 behaves like reject delete package tag request2532 behaves like returning response status2533 returns not_found2534 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2535 behaves like reject delete package tag request2536 behaves like returning response status2537 returns not_found2538 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2539 behaves like reject delete package tag request2540 behaves like returning response status2541 returns not_found2542 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2543 behaves like reject delete package tag request2544 behaves like returning response status2545 returns not_found2546 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2547 behaves like reject delete package tag request2548 behaves like returning response status2549 returns not_found2550 with personal access token2551 behaves like handling different package names, visibilities and user roles2552 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2553 behaves like reject delete package tag request2554 behaves like returning response status2555 returns forbidden2556 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2557 behaves like reject delete package tag request2558 behaves like returning response status2559 returns forbidden2560 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2561 behaves like accept delete package tag request2562 with valid package name2563 returns a valid response2564 destroy the package tag2565 behaves like returning response status2566 returns no_content2567 with tag from other package2568 behaves like returning response status2569 returns not_found2570 with invalid package name2571 package_name: "unknown", status: :not_found2572 behaves like returning response status2573 returns not_found2574 package_name: "", status: :not_found2575 behaves like returning response status2576 returns not_found2577 package_name: "%20", status: :bad_request2578 behaves like returning response status2579 returns bad_request2580 with invalid tag name2581 tag_name: "unknown", status: :not_found2582 behaves like returning response status2583 returns not_found2584 tag_name: "", status: :not_found2585 behaves like returning response status2586 returns not_found2587 tag_name: "%20", status: :bad_request2588 behaves like returning response status2589 returns bad_request2590 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2591 behaves like reject delete package tag request2592 behaves like returning response status2593 returns not_found2594 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2595 behaves like reject delete package tag request2596 behaves like returning response status2597 returns not_found2598 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2599 behaves like reject delete package tag request2600 behaves like returning response status2601 returns not_found2602 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2603 behaves like reject delete package tag request2604 behaves like returning response status2605 returns not_found2606 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2607 behaves like reject delete package tag request2608 behaves like returning response status2609 returns not_found2610 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2611 behaves like reject delete package tag request2612 behaves like returning response status2613 returns not_found2614 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2615 behaves like reject delete package tag request2616 behaves like returning response status2617 returns not_found2618 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2619 behaves like reject delete package tag request2620 behaves like returning response status2621 returns not_found2622 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2623 behaves like reject delete package tag request2624 behaves like returning response status2625 returns not_found2626 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2627 behaves like reject delete package tag request2628 behaves like returning response status2629 returns not_found2630 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2631 behaves like reject delete package tag request2632 behaves like returning response status2633 returns forbidden2634 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2635 behaves like accept delete package tag request2636 with valid package name2637 returns a valid response2638 destroy the package tag2639 behaves like returning response status2640 returns no_content2641 with tag from other package2642 behaves like returning response status2643 returns not_found2644 with invalid package name2645 package_name: "unknown", status: :not_found2646 behaves like returning response status2647 returns not_found2648 package_name: "", status: :not_found2649 behaves like returning response status2650 returns not_found2651 package_name: "%20", status: :bad_request2652 behaves like returning response status2653 returns bad_request2654 with invalid tag name2655 tag_name: "unknown", status: :not_found2656 behaves like returning response status2657 returns not_found2658 tag_name: "", status: :not_found2659 behaves like returning response status2660 returns not_found2661 tag_name: "%20", status: :bad_request2662 behaves like returning response status2663 returns bad_request2664 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2665 behaves like reject delete package tag request2666 behaves like returning response status2667 returns not_found2668 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2669 behaves like reject delete package tag request2670 behaves like returning response status2671 returns not_found2672 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2673 behaves like reject delete package tag request2674 behaves like returning response status2675 returns not_found2676 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2677 behaves like reject delete package tag request2678 behaves like returning response status2679 returns not_found2680 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2681 behaves like reject delete package tag request2682 behaves like returning response status2683 returns not_found2684 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2685 behaves like reject delete package tag request2686 behaves like returning response status2687 returns not_found2688 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2689 behaves like reject delete package tag request2690 behaves like returning response status2691 returns not_found2692 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2693 behaves like reject delete package tag request2694 behaves like returning response status2695 returns not_found2696 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2697 behaves like reject delete package tag request2698 behaves like returning response status2699 returns not_found2700 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2701 behaves like reject delete package tag request2702 behaves like returning response status2703 returns forbidden2704 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2705 behaves like reject delete package tag request2706 behaves like returning response status2707 returns forbidden2708 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2709 behaves like accept delete package tag request2710 with valid package name2711 returns a valid response2712 destroy the package tag2713 behaves like returning response status2714 returns no_content2715 with tag from other package2716 behaves like returning response status2717 returns not_found2718 with invalid package name2719 package_name: "unknown", status: :not_found2720 behaves like returning response status2721 returns not_found2722 package_name: "", status: :not_found2723 behaves like returning response status2724 returns not_found2725 package_name: "%20", status: :bad_request2726 behaves like returning response status2727 returns bad_request2728 with invalid tag name2729 tag_name: "unknown", status: :not_found2730 behaves like returning response status2731 returns not_found2732 tag_name: "", status: :not_found2733 behaves like returning response status2734 returns not_found2735 tag_name: "%20", status: :bad_request2736 behaves like returning response status2737 returns bad_request2738 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2739 behaves like reject delete package tag request2740 behaves like returning response status2741 returns not_found2742 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2743 behaves like reject delete package tag request2744 behaves like returning response status2745 returns not_found2746 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2747 behaves like reject delete package tag request2748 behaves like returning response status2749 returns not_found2750 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2751 behaves like reject delete package tag request2752 behaves like returning response status2753 returns not_found2754 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2755 behaves like reject delete package tag request2756 behaves like returning response status2757 returns not_found2758 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2759 behaves like reject delete package tag request2760 behaves like returning response status2761 returns not_found2762 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2763 behaves like reject delete package tag request2764 behaves like returning response status2765 returns not_found2766 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2767 behaves like reject delete package tag request2768 behaves like returning response status2769 returns not_found2770 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2771 behaves like reject delete package tag request2772 behaves like returning response status2773 returns not_found2774 with a user namespace2775 behaves like handling all conditions2776 with oauth token2777 behaves like handling different package names, visibilities and user roles2778 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2779 behaves like reject delete package tag request2780 behaves like returning response status2781 returns forbidden2782 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2783 behaves like reject delete package tag request2784 behaves like returning response status2785 returns forbidden2786 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2787 behaves like accept delete package tag request2788 with valid package name2789 returns a valid response2790 destroy the package tag2791 behaves like returning response status2792 returns no_content2793 with tag from other package2794 behaves like returning response status2795 returns not_found2796 with invalid package name2797 package_name: "unknown", status: :not_found2798 behaves like returning response status2799 returns not_found2800 package_name: "", status: :not_found2801 behaves like returning response status2802 returns not_found2803 package_name: "%20", status: :bad_request2804 behaves like returning response status2805 returns bad_request2806 with invalid tag name2807 tag_name: "unknown", status: :not_found2808 behaves like returning response status2809 returns not_found2810 tag_name: "", status: :not_found2811 behaves like returning response status2812 returns not_found2813 tag_name: "%20", status: :bad_request2814 behaves like returning response status2815 returns bad_request2816 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2817 behaves like reject delete package tag request2818 behaves like returning response status2819 returns not_found2820 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2821 behaves like reject delete package tag request2822 behaves like returning response status2823 returns not_found2824 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2825 behaves like reject delete package tag request2826 behaves like returning response status2827 returns not_found2828 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2829 behaves like reject delete package tag request2830 behaves like returning response status2831 returns not_found2832 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2833 behaves like reject delete package tag request2834 behaves like returning response status2835 returns not_found2836 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2837 behaves like reject delete package tag request2838 behaves like returning response status2839 returns not_found2840 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2841 behaves like reject delete package tag request2842 behaves like returning response status2843 returns not_found2844 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2845 behaves like reject delete package tag request2846 behaves like returning response status2847 returns not_found2848 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2849 behaves like reject delete package tag request2850 behaves like returning response status2851 returns not_found2852 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2853 behaves like reject delete package tag request2854 behaves like returning response status2855 returns not_found2856 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2857 behaves like reject delete package tag request2858 behaves like returning response status2859 returns forbidden2860 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2861 behaves like accept delete package tag request2862 with valid package name2863 returns a valid response2864 destroy the package tag2865 behaves like returning response status2866 returns no_content2867 with tag from other package2868 behaves like returning response status2869 returns not_found2870 with invalid package name2871 package_name: "unknown", status: :not_found2872 behaves like returning response status2873 returns not_found2874 package_name: "", status: :not_found2875 behaves like returning response status2876 returns not_found2877 package_name: "%20", status: :bad_request2878 behaves like returning response status2879 returns bad_request2880 with invalid tag name2881 tag_name: "unknown", status: :not_found2882 behaves like returning response status2883 returns not_found2884 tag_name: "", status: :not_found2885 behaves like returning response status2886 returns not_found2887 tag_name: "%20", status: :bad_request2888 behaves like returning response status2889 returns bad_request2890 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2891 behaves like reject delete package tag request2892 behaves like returning response status2893 returns not_found2894 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2895 behaves like reject delete package tag request2896 behaves like returning response status2897 returns not_found2898 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2899 behaves like reject delete package tag request2900 behaves like returning response status2901 returns not_found2902 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2903 behaves like reject delete package tag request2904 behaves like returning response status2905 returns not_found2906 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2907 behaves like reject delete package tag request2908 behaves like returning response status2909 returns not_found2910 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2911 behaves like reject delete package tag request2912 behaves like returning response status2913 returns not_found2914 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2915 behaves like reject delete package tag request2916 behaves like returning response status2917 returns not_found2918 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2919 behaves like reject delete package tag request2920 behaves like returning response status2921 returns not_found2922 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2923 behaves like reject delete package tag request2924 behaves like returning response status2925 returns not_found2926 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2927 behaves like reject delete package tag request2928 behaves like returning response status2929 returns forbidden2930 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2931 behaves like reject delete package tag request2932 behaves like returning response status2933 returns forbidden2934 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2935 behaves like accept delete package tag request2936 with valid package name2937 returns a valid response2938 destroy the package tag2939 behaves like returning response status2940 returns no_content2941 with tag from other package2942 behaves like returning response status2943 returns not_found2944 with invalid package name2945 package_name: "unknown", status: :not_found2946 behaves like returning response status2947 returns not_found2948 package_name: "", status: :not_found2949 behaves like returning response status2950 returns not_found2951 package_name: "%20", status: :bad_request2952 behaves like returning response status2953 returns bad_request2954 with invalid tag name2955 tag_name: "unknown", status: :not_found2956 behaves like returning response status2957 returns not_found2958 tag_name: "", status: :not_found2959 behaves like returning response status2960 returns not_found2961 tag_name: "%20", status: :bad_request2962 behaves like returning response status2963 returns bad_request2964 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2965 behaves like reject delete package tag request2966 behaves like returning response status2967 returns not_found2968 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2969 behaves like reject delete package tag request2970 behaves like returning response status2971 returns not_found2972 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2973 behaves like reject delete package tag request2974 behaves like returning response status2975 returns not_found2976 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2977 behaves like reject delete package tag request2978 behaves like returning response status2979 returns not_found2980 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2981 behaves like reject delete package tag request2982 behaves like returning response status2983 returns not_found2984 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2985 behaves like reject delete package tag request2986 behaves like returning response status2987 returns not_found2988 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2989 behaves like reject delete package tag request2990 behaves like returning response status2991 returns not_found2992 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2993 behaves like reject delete package tag request2994 behaves like returning response status2995 returns not_found2996 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2997 behaves like reject delete package tag request2998 behaves like returning response status2999 returns not_found3000 with personal access token3001 behaves like handling different package names, visibilities and user roles3002 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3003 behaves like reject delete package tag request3004 behaves like returning response status3005 returns forbidden3006 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3007 behaves like reject delete package tag request3008 behaves like returning response status3009 returns forbidden3010 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3011 behaves like accept delete package tag request3012 with valid package name3013 returns a valid response3014 destroy the package tag3015 behaves like returning response status3016 returns no_content3017 with tag from other package3018 behaves like returning response status3019 returns not_found3020 with invalid package name3021 package_name: "unknown", status: :not_found3022 behaves like returning response status3023 returns not_found3024 package_name: "", status: :not_found3025 behaves like returning response status3026 returns not_found3027 package_name: "%20", status: :bad_request3028 behaves like returning response status3029 returns bad_request3030 with invalid tag name3031 tag_name: "unknown", status: :not_found3032 behaves like returning response status3033 returns not_found3034 tag_name: "", status: :not_found3035 behaves like returning response status3036 returns not_found3037 tag_name: "%20", status: :bad_request3038 behaves like returning response status3039 returns bad_request3040 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3041 behaves like reject delete package tag request3042 behaves like returning response status3043 returns not_found3044 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3045 behaves like reject delete package tag request3046 behaves like returning response status3047 returns not_found3048 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3049 behaves like reject delete package tag request3050 behaves like returning response status3051 returns not_found3052 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3053 behaves like reject delete package tag request3054 behaves like returning response status3055 returns not_found3056 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3057 behaves like reject delete package tag request3058 behaves like returning response status3059 returns not_found3060 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3061 behaves like reject delete package tag request3062 behaves like returning response status3063 returns not_found3064 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3065 behaves like reject delete package tag request3066 behaves like returning response status3067 returns not_found3068 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3069 behaves like reject delete package tag request3070 behaves like returning response status3071 returns not_found3072 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3073 behaves like reject delete package tag request3074 behaves like returning response status3075 returns not_found3076 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3077 behaves like reject delete package tag request3078 behaves like returning response status3079 returns not_found3080 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3081 behaves like reject delete package tag request3082 behaves like returning response status3083 returns forbidden3084 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3085 behaves like accept delete package tag request3086 with valid package name3087 returns a valid response3088 destroy the package tag3089 behaves like returning response status3090 returns no_content3091 with tag from other package3092 behaves like returning response status3093 returns not_found3094 with invalid package name3095 package_name: "unknown", status: :not_found3096 behaves like returning response status3097 returns not_found3098 package_name: "", status: :not_found3099 behaves like returning response status3100 returns not_found3101 package_name: "%20", status: :bad_request3102 behaves like returning response status3103 returns bad_request3104 with invalid tag name3105 tag_name: "unknown", status: :not_found3106 behaves like returning response status3107 returns not_found3108 tag_name: "", status: :not_found3109 behaves like returning response status3110 returns not_found3111 tag_name: "%20", status: :bad_request3112 behaves like returning response status3113 returns bad_request3114 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3115 behaves like reject delete package tag request3116 behaves like returning response status3117 returns not_found3118 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3119 behaves like reject delete package tag request3120 behaves like returning response status3121 returns not_found3122 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3123 behaves like reject delete package tag request3124 behaves like returning response status3125 returns not_found3126 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3127 behaves like reject delete package tag request3128 behaves like returning response status3129 returns not_found3130 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3131 behaves like reject delete package tag request3132 behaves like returning response status3133 returns not_found3134 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3135 behaves like reject delete package tag request3136 behaves like returning response status3137 returns not_found3138 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3139 behaves like reject delete package tag request3140 behaves like returning response status3141 returns not_found3142 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3143 behaves like reject delete package tag request3144 behaves like returning response status3145 returns not_found3146 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3147 behaves like reject delete package tag request3148 behaves like returning response status3149 returns not_found3150 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3151 behaves like reject delete package tag request3152 behaves like returning response status3153 returns forbidden3154 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3155 behaves like reject delete package tag request3156 behaves like returning response status3157 returns forbidden3158 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3159 behaves like accept delete package tag request3160 with valid package name3161 returns a valid response3162 destroy the package tag3163 behaves like returning response status3164 returns no_content3165 with tag from other package3166 behaves like returning response status3167 returns not_found3168 with invalid package name3169 package_name: "unknown", status: :not_found3170 behaves like returning response status3171 returns not_found3172 package_name: "", status: :not_found3173 behaves like returning response status3174 returns not_found3175 package_name: "%20", status: :bad_request3176 behaves like returning response status3177 returns bad_request3178 with invalid tag name3179 tag_name: "unknown", status: :not_found3180 behaves like returning response status3181 returns not_found3182 tag_name: "", status: :not_found3183 behaves like returning response status3184 returns not_found3185 tag_name: "%20", status: :bad_request3186 behaves like returning response status3187 returns bad_request3188 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3189 behaves like reject delete package tag request3190 behaves like returning response status3191 returns not_found3192 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3193 behaves like reject delete package tag request3194 behaves like returning response status3195 returns not_found3196 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3197 behaves like reject delete package tag request3198 behaves like returning response status3199 returns not_found3200 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3201 behaves like reject delete package tag request3202 behaves like returning response status3203 returns not_found3204 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3205 behaves like reject delete package tag request3206 behaves like returning response status3207 returns not_found3208 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3209 behaves like reject delete package tag request3210 behaves like returning response status3211 returns not_found3212 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3213 behaves like reject delete package tag request3214 behaves like returning response status3215 returns not_found3216 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3217 behaves like reject delete package tag request3218 behaves like returning response status3219 returns not_found3220 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3221 behaves like reject delete package tag request3222 behaves like returning response status3223 returns not_found3224API::ConanProjectPackages3225 GET /api/v4/projects/:id/packages/conan/v1/ping3226 behaves like conan ping endpoint3227 responds with 200 OK when no token provided3228 behaves like conan FIPS mode3229 when FIPS mode is enabled3230 behaves like returning response status3231 returns not_found3232 packages feature disabled3233 responds with 404 Not Found3234 GET /api/v4/projects/:id/packages/conan/v1/conans/search3235 behaves like conan search endpoint3236 with a public project3237 returns packages with a matching name3238 is expected to contain exactly "package-7/1.0.0@namespace8+project9/stable"3239 returns packages using a * wildcard3240 is expected to contain exactly "package-9/1.0.0@namespace10+project11/stable"3241 does not return non-matching packages3242 is expected to be blank3243 with a private project3244 role: :maintainer, packages_visible: true3245 is expected to contain exactly "package-13/1.0.0@namespace14+project15/stable"3246 role: :developer, packages_visible: true3247 is expected to contain exactly "package-15/1.0.0@namespace16+project17/stable"3248 role: :reporter, packages_visible: true3249 is expected to contain exactly "package-17/1.0.0@namespace18+project19/stable"3250 role: :guest, packages_visible: false3251 is expected to be blank3252 role: :anonymous, packages_visible: false3253 is expected to be blank3254 behaves like conan FIPS mode3255 when FIPS mode is enabled3256 behaves like returning response status3257 returns not_found3258 GET /api/v4/projects/:id/packages/conan/v1/users/authenticate3259 behaves like conan authenticate endpoint3260 responds with 401 Unauthorized when an invalid access token is provided3261 responds with 401 Unauthorized when the provided JWT is signed with different secret3262 responds with 401 UnauthorizedOK when invalid JWT is provided3263 behaves like conan FIPS mode3264 when FIPS mode is enabled3265 behaves like returning response status3266 returns not_found3267 when using invalid token3268 responds with 4013269 when valid JWT access token is provided3270 responds with 2003271 token has valid validity time3272 with valid job token3273 responds with 2003274 with valid deploy token3275 responds with 2003276 GET /api/v4/projects/:id/packages/conan/v1/users/check_credentials3277 behaves like conan check_credentials endpoint3278 responds with a 200 OK with PAT3279 responds with a 401 Unauthorized when an invalid token is used3280 behaves like conan FIPS mode3281 when FIPS mode is enabled3282 behaves like returning response status3283 returns not_found3284 with job token3285 responds with a 200 OK with job token3286 with deploy token3287 responds with a 200 OK with job token3288 recipe endpoints3289 GET /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel3290 behaves like recipe snapshot endpoint3291 behaves like conan FIPS mode3292 when FIPS mode is enabled3293 behaves like returning response status3294 returns not_found3295 behaves like rejects invalid recipe3296 with invalid recipe path3297 returns 4003298 behaves like rejects recipe for invalid project3299 with invalid project3300 behaves like not found request3301 returns not found3302 behaves like empty recipe for not found package3303 with invalid recipe url3304 returns not found3305 behaves like handling empty values for username and channel3306 username: "username", channel: "channel", status: :ok3307 returns the correct status code3308 username: "username", channel: "_", status: :bad_request3309 returns the correct status code3310 username: "_", channel: "channel", status: :bad_request_or_not_found3311 returns the correct status code3312 username: "_", channel: "_", status: :ok_or_not_found3313 returns the correct status code3314 with existing package3315 returns a hash of files with their md5 hashes3316 GET /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel/packages/:conan_package_reference3317 behaves like package snapshot endpoint3318 behaves like conan FIPS mode3319 when FIPS mode is enabled3320 behaves like returning response status3321 returns not_found3322 behaves like rejects invalid recipe3323 with invalid recipe path3324 returns 4003325 behaves like rejects recipe for invalid project3326 with invalid project3327 behaves like not found request3328 returns not found3329 behaves like empty recipe for not found package3330 with invalid recipe url3331 returns not found3332 behaves like handling empty values for username and channel3333 username: "username", channel: "channel", status: :ok3334 returns the correct status code3335 username: "username", channel: "_", status: :bad_request3336 returns the correct status code3337 username: "_", channel: "channel", status: :bad_request_or_not_found3338 returns the correct status code3339 username: "_", channel: "_", status: :ok_or_not_found3340 returns the correct status code3341 with existing package3342 returns a hash of md5 values for the files3343 GET /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel/digest3344 behaves like recipe download_urls endpoint3345 behaves like conan FIPS mode3346 when FIPS mode is enabled3347 behaves like returning response status3348 returns not_found3349 behaves like rejects invalid recipe3350 with invalid recipe path3351 returns 4003352 behaves like rejects recipe for invalid project3353 with invalid project3354 behaves like not found request3355 returns not found3356 behaves like recipe download_urls3357 returns the download_urls for the recipe files3358 behaves like not selecting a package with the wrong type3359 with a nuget package with same name and version3360 calls the presenter with a nil package3361 behaves like handling empty values for username and channel3362 username: "username", channel: "channel", status: :ok3363 returns the correct status code3364 username: "username", channel: "_", status: :bad_request3365 returns the correct status code3366 username: "_", channel: "channel", status: :bad_request_or_not_found3367 returns the correct status code3368 username: "_", channel: "_", status: :ok_or_not_found3369 returns the correct status code3370 GET /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel/packages/:conan_package_reference/download_urls3371 behaves like package download_urls endpoint3372 behaves like conan FIPS mode3373 when FIPS mode is enabled3374 behaves like returning response status3375 returns not_found3376 behaves like rejects invalid recipe3377 with invalid recipe path3378 returns 4003379 behaves like rejects recipe for invalid project3380 with invalid project3381 behaves like not found request3382 returns not found3383 behaves like package download_urls3384 returns the download_urls for the package files3385 behaves like not selecting a package with the wrong type3386 with a nuget package with same name and version3387 calls the presenter with a nil package3388 behaves like handling empty values for username and channel3389 username: "username", channel: "channel", status: :ok3390 returns the correct status code3391 username: "username", channel: "_", status: :bad_request3392 returns the correct status code3393 username: "_", channel: "channel", status: :bad_request_or_not_found3394 returns the correct status code3395 username: "_", channel: "_", status: :ok_or_not_found3396 returns the correct status code3397 GET /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel/download_urls3398 behaves like recipe download_urls endpoint3399 behaves like conan FIPS mode3400 when FIPS mode is enabled3401 behaves like returning response status3402 returns not_found3403 behaves like rejects invalid recipe3404 with invalid recipe path3405 returns 4003406 behaves like rejects recipe for invalid project3407 with invalid project3408 behaves like not found request3409 returns not found3410 behaves like recipe download_urls3411 returns the download_urls for the recipe files3412 behaves like not selecting a package with the wrong type3413 with a nuget package with same name and version3414 calls the presenter with a nil package3415 behaves like handling empty values for username and channel3416 username: "username", channel: "channel", status: :ok3417 returns the correct status code3418 username: "username", channel: "_", status: :bad_request3419 returns the correct status code3420 username: "_", channel: "channel", status: :bad_request_or_not_found3421 returns the correct status code3422 username: "_", channel: "_", status: :ok_or_not_found3423 returns the correct status code3424 GET /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel/packages/:conan_package_reference/digest3425 behaves like package download_urls endpoint3426 behaves like conan FIPS mode3427 when FIPS mode is enabled3428 behaves like returning response status3429 returns not_found3430 behaves like rejects invalid recipe3431 with invalid recipe path3432 returns 4003433 behaves like rejects recipe for invalid project3434 with invalid project3435 behaves like not found request3436 returns not found3437 behaves like package download_urls3438 returns the download_urls for the package files3439 behaves like not selecting a package with the wrong type3440 with a nuget package with same name and version3441 calls the presenter with a nil package3442 behaves like handling empty values for username and channel3443 username: "username", channel: "channel", status: :ok3444 returns the correct status code3445 username: "username", channel: "_", status: :bad_request3446 returns the correct status code3447 username: "_", channel: "channel", status: :bad_request_or_not_found3448 returns the correct status code3449 username: "_", channel: "_", status: :ok_or_not_found3450 returns the correct status code3451 POST /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel/upload_urls3452 behaves like recipe upload_urls endpoint3453 returns a set of upload urls for the files requested3454 behaves like conan FIPS mode3455 when FIPS mode is enabled3456 behaves like returning response status3457 returns not_found3458 behaves like rejects invalid recipe3459 with invalid recipe path3460 returns 4003461 behaves like rejects invalid upload_url params3462 with unaccepted json format3463 returns 4003464 behaves like handling empty values for username and channel3465 username: "username", channel: "channel", status: :ok3466 returns the correct status code3467 username: "username", channel: "_", status: :bad_request3468 returns the correct status code3469 username: "_", channel: "channel", status: :bad_request_or_not_found3470 returns the correct status code3471 username: "_", channel: "_", status: :ok_or_not_found3472 returns the correct status code3473 with conan_sources and conan_export files3474 returns upload urls for the additional files3475 with an invalid file3476 does not return the invalid file as an upload_url3477 POST /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel/packages/:conan_package_reference/upload_urls3478 behaves like package upload_urls endpoint3479 returns a set of upload urls for the files requested3480 behaves like conan FIPS mode3481 when FIPS mode is enabled3482 behaves like returning response status3483 returns not_found3484 behaves like rejects invalid recipe3485 with invalid recipe path3486 returns 4003487 behaves like rejects invalid upload_url params3488 with unaccepted json format3489 returns 4003490 behaves like handling empty values for username and channel3491 username: "username", channel: "channel", status: :ok3492 returns the correct status code3493 username: "username", channel: "_", status: :bad_request3494 returns the correct status code3495 username: "_", channel: "channel", status: :bad_request_or_not_found3496 returns the correct status code3497 username: "_", channel: "_", status: :ok_or_not_found3498 returns the correct status code3499 with invalid files3500 returns upload urls only for the valid requested files3501 DELETE /api/v4/projects/:id/packages/conan/v1/conans/:package_name/package_version/:package_username/:package_channel3502 behaves like delete package endpoint3503 returns unauthorized for users without valid permission3504 behaves like conan FIPS mode3505 when FIPS mode is enabled3506 behaves like returning response status3507 returns not_found3508 behaves like rejects invalid recipe3509 with invalid recipe path3510 returns 4003511 behaves like handling empty values for username and channel3512 username: "username", channel: "channel", status: :ok3513 returns the correct status code3514 username: "username", channel: "_", status: :bad_request3515 returns the correct status code3516 username: "_", channel: "channel", status: :bad_request_or_not_found3517 returns the correct status code3518 username: "_", channel: "_", status: :ok_or_not_found3519 returns the correct status code3520 with delete permissions3521 deletes a package3522 behaves like a gitlab tracking event3523 creates a gitlab tracking event delete_package3524 file upload endpoints3525 PUT /api/v4/projects/:id/packages/conan/v1/files/:package_name/package_version/:package_username/:package_channel/:recipe_revision/export/:file_name/authorize3526 behaves like workhorse authorize endpoint3527 behaves like conan FIPS mode3528 when FIPS mode is enabled3529 behaves like returning response status3530 returns not_found3531 behaves like rejects invalid recipe3532 with invalid recipe path3533 returns 4003534 behaves like rejects invalid file_name3535 with invalid file_name3536 returns 4003537 behaves like workhorse authorization3538 authorizes posting package with a valid token3539 rejects request without a valid token3540 rejects request without a valid permission3541 rejects requests that bypassed gitlab-workhorse3542 when using remote storage3543 when direct upload is enabled3544 responds with status 200, location of package remote store and object details3545 when direct upload is disabled3546 handles as a local file3547 behaves like handling empty values for username and channel3548 username: "username", channel: "channel", status: :ok3549 returns the correct status code3550 username: "username", channel: "_", status: :bad_request3551 returns the correct status code3552 username: "_", channel: "channel", status: :bad_request_or_not_found3553 returns the correct status code3554 username: "_", channel: "_", status: :ok_or_not_found3555 returns the correct status code3556 PUT /api/v4/projects/:id/packages/conan/v1/files/:package_name/package_version/:package_username/:package_channel/:recipe_revision/export/:conan_package_reference/:package_revision/:file_name/authorize3557 behaves like workhorse authorize endpoint3558 behaves like conan FIPS mode3559 when FIPS mode is enabled3560 behaves like returning response status3561 returns not_found3562 behaves like rejects invalid recipe3563 with invalid recipe path3564 returns 4003565 behaves like rejects invalid file_name3566 with invalid file_name3567 returns 4003568 behaves like workhorse authorization3569 authorizes posting package with a valid token3570 rejects request without a valid token3571 rejects request without a valid permission3572 rejects requests that bypassed gitlab-workhorse3573 when using remote storage3574 when direct upload is enabled3575 responds with status 200, location of package remote store and object details3576 when direct upload is disabled3577 handles as a local file3578 behaves like handling empty values for username and channel3579 username: "username", channel: "channel", status: :ok3580 returns the correct status code3581 username: "username", channel: "_", status: :bad_request3582 returns the correct status code3583 username: "_", channel: "channel", status: :bad_request_or_not_found3584 returns the correct status code3585 username: "_", channel: "_", status: :ok_or_not_found3586 returns the correct status code3587 PUT /api/v4/projects/:id/packages/conan/v1/files/:package_name/package_version/:package_username/:package_channel/:recipe_revision/export/:file_name3588 behaves like workhorse recipe file upload endpoint3589 behaves like conan FIPS mode3590 when FIPS mode is enabled3591 behaves like returning response status3592 returns not_found3593 behaves like rejects invalid recipe3594 with invalid recipe path3595 returns 4003596 behaves like rejects invalid file_name3597 with invalid file_name3598 returns 4003599 behaves like uploads a package file3600 file size above maximum limit3601 handles as a local file3602 with object storage disabled3603 without a file from workhorse3604 rejects the request3605 with a file3606 behaves like package workhorse uploads3607 without a workhorse header3608 logs an error3609 behaves like returning response status3610 returns forbidden3611 without a token3612 rejects request without a token3613 when params from workhorse are correct3614 creates package and stores package file3615 doesn't attempt to migrate file to object storage3616 with existing package3617 does not create a new package3618 marked as pending_destruction3619 does not create a new package3620 with object storage enabled3621 and direct upload enabled3622 with invalid remote_id: 1231233623 responds with status 4033624 with invalid remote_id: ../../1231233625 responds with status 4033626 with valid remote_id3627 creates package and stores package file3628 behaves like background upload schedules a file migration3629 background upload enabled3630 schedules migration of file to object storage3631 behaves like handling empty values for username and channel3632 username: "username", channel: "channel", status: :ok3633 returns the correct status code3634 username: "username", channel: "_", status: :bad_request3635 returns the correct status code3636 username: "_", channel: "channel", status: :bad_request_or_not_found3637 returns the correct status code3638 username: "_", channel: "_", status: :ok_or_not_found3639 returns the correct status code3640 behaves like handling validation error for package3641 with validation error3642 returns 4003643 PUT /api/v4/projects/:id/packages/conan/v1/files/:package_name/package_version/:package_username/:package_channel/:recipe_revision/export/:conan_package_reference/:package_revision/:file_name3644 behaves like workhorse package file upload endpoint3645 behaves like rejects invalid recipe3646 with invalid recipe path3647 returns 4003648 behaves like rejects invalid file_name3649 with invalid file_name3650 returns 4003651 behaves like uploads a package file3652 file size above maximum limit3653 handles as a local file3654 with object storage disabled3655 without a file from workhorse3656 rejects the request3657 with a file3658 behaves like package workhorse uploads3659 without a workhorse header3660 logs an error3661 behaves like returning response status3662 returns forbidden3663 without a token3664 rejects request without a token3665 when params from workhorse are correct3666 creates package and stores package file3667 doesn't attempt to migrate file to object storage3668 with existing package3669 does not create a new package3670 marked as pending_destruction3671 does not create a new package3672 with object storage enabled3673 and direct upload enabled3674 with invalid remote_id: 1231233675 responds with status 4033676 with invalid remote_id: ../../1231233677 responds with status 4033678 with valid remote_id3679 creates package and stores package file3680 behaves like background upload schedules a file migration3681 background upload enabled3682 schedules migration of file to object storage3683 behaves like handling empty values for username and channel3684 username: "username", channel: "channel", status: :ok3685 returns the correct status code3686 username: "username", channel: "_", status: :bad_request3687 returns the correct status code3688 username: "_", channel: "channel", status: :bad_request_or_not_found3689 returns the correct status code3690 username: "_", channel: "_", status: :ok_or_not_found3691 returns the correct status code3692 behaves like handling validation error for package3693 with validation error3694 returns 4003695 tracking the conan_package.tgz upload3696 behaves like a gitlab tracking event3697 creates a gitlab tracking event push_package3698Projects::MergeRequestsController3699 GET commit_change_content3700 renders commit_change_content template3701 GET show3702 with view param3703 saves the preferred diff view in a cookie3704 when merge request is unchecked3705 checks mergeability asynchronously3706 as html3707 sets the endpoint_metadata_url3708 renders merge request page3709 logs the view with Gitlab::Search::RecentMergeRequests3710 when diff files were cleaned3711 renders page when diff size is not persisted and diff_refs does not exist3712 when diff is missing3713 renders merge request page3714 that is invalid3715 renders merge request page3716 when project has moved3717 redirects from an old merge request correctly3718 redirects from an old merge request commits correctly3719 when user is setting notes filters3720 behaves like issuable notes filter3721 sets discussion filter3722 expires notes e-tag cache for issuable if filter changed3723 does not expires notes e-tag cache for issuable if filter did not change3724 does not set notes filter when database is in read-only mode3725 does not set notes filter when persist_filter param is false3726 returns only user comments3727 returns only activity notes3728 when filter is set to "only_comments"3729 does not merge label event notes3730 as json3731 with basic serializer param3732 renders basic MR entity as json3733 with widget serializer param3734 renders widget MR entity as json3735 when no serialiser was passed3736 renders widget MR entity as json3737 that is invalid3738 renders merge request page3739 as diff3740 triggers workhorse to serve the request3741 as patch3742 triggers workhorse to serve the request3743 GET index3744 behaves like issuables list meta-data3745 creates indexed meta-data object for issuable notes and votes count3746 avoids N+1 queries3747 searching3748 works when sorting by created_asc3749 works when sorting by created_at_asc3750 works when sorting by created_date3751 works when sorting by created_desc3752 works when sorting by created_at_desc3753 works when sorting by id_asc3754 works when sorting by id_desc3755 works when sorting by updated_asc3756 works when sorting by updated_at_asc3757 works when sorting by updated_desc3758 works when sorting by updated_at_desc3759 works when sorting by title_asc3760 works when sorting by title_desc3761 works when sorting by closest_future_date3762 works when sorting by closest_future_date_asc3763 works when sorting by due_date3764 works when sorting by due_date_asc3765 works when sorting by due_date_desc3766 works when sorting by relative_position3767 works when sorting by relative_position_asc3768 works when sorting by weight3769 works when sorting by weight_asc3770 works when sorting by weight_desc3771 works when sorting by popularity3772 works when sorting by priority3773 works when sorting by label_priority3774 when given empty collection3775 doesn't execute any queries with false conditions3776 behaves like set sort order from user preference3777 #set_sort_order_from_user_preference3778 when database is in read-only mode3779 does not update user preference3780 when database is not in read-only mode3781 updates user preference3782 when page param3783 redirects to last_page if page number is larger than number of pages3784 redirects to specified page3785 does not redirect to external sites when provided a host field3786 when filtering by opened state3787 with opened merge requests3788 lists those merge requests3789 with reopened merge requests3790 lists those merge requests3791 behaves like issuable list with anonymous search disabled3792 when disable_anonymous_search is enabled3793 shows a flash message3794 when search param is not given3795 does not show a flash message3796 when user is signed-in3797 does not show a flash message3798 when format is not HTML3799 does not show a flash message3800 when disable_anonymous_search is disabled3801 does not show a flash message3802 PUT update3803 changing the assignee3804 limits the attributes exposed on the assignee3805 when user does not have access to update issue3806 responds with 4043807 there is no source project3808 closes MR without errors3809 allows editing of a closed merge request3810 does not allow to update target branch closed merge request3811 behaves like update invalid issuable3812 when updating causes conflicts3813 renders edit when format is html3814 renders json error message when format is json3815 when updating an invalid issuable3816 renders edit when merge request is invalid3817 two merge requests with the same source branch3818 does not allow a closed merge request to be reopened if another one is open3819 POST merge3820 when user cannot access3821 returns 4043822 when the merge request is not mergeable3823 returns :failed3824 when the sha parameter does not match the source SHA3825 returns :sha_mismatch3826 when the sha parameter matches the source SHA3827 returns :success3828 starts the merge immediately with permitted params3829 when squash is passed as 13830 updates the squash attribute on the MR to true3831 when squash is passed as 03832 updates the squash attribute on the MR to false3833 when a squash commit message is passed3834 passes the same message to SquashService3835 when merge when pipeline succeeds option is passed3836 returns :merge_when_pipeline_succeeds3837 sets the MR to merge when the pipeline succeeds3838 when project.only_allow_merge_if_pipeline_succeeds? is true3839 returns :merge_when_pipeline_succeeds3840 and head pipeline is not the current one3841 returns :failed3842 when auto merge has not been enabled yet3843 calls AutoMergeService#execute3844 when auto merge has already been enabled3845 calls AutoMergeService#update3846 only_allow_merge_if_all_discussions_are_resolved? setting3847 when enabled3848 with unresolved discussion3849 returns :failed3850 with all discussions resolved3851 returns :success3852 when disabled3853 with unresolved discussion3854 returns :success3855 with all discussions resolved3856 returns :success3857 DELETE destroy3858 denies access to users unless they're admin or project owner3859 when the user is owner3860 deletes the merge request3861 prevents deletion if destroy_confirm is not set3862 prevents deletion in JSON format if destroy_confirm is not set3863 GET commits3864 renders the commits template to a string3865 GET pipelines3866 with "enabled" builds on a public project3867 for a project owner3868 responds with serialized pipelines3869 for an unassociated user3870 responds with no pipelines3871 with private builds on a public project3872 for a project owner3873 responds with serialized pipelines3874 for an unassociated user3875 responds with no pipelines3876 from a project fork3877 with private builds3878 for the target project member3879 does not respond with serialized pipelines3880 for the source project member3881 responds with serialized pipelines3882 with public builds3883 for the target project member3884 does not respond with serialized pipelines3885 for the source project member3886 responds with serialized pipelines3887 with pagination3888 paginates the result3889 GET context commits3890 returns the commits for context commits3891 GET exposed_artifacts3892 permissions on a public project with private CI/CD3893 while signed out3894 responds with a 4043895 while signed in as an unrelated user3896 responds with a 4043897 when pipeline has jobs with exposed artifacts3898 when fetching exposed artifacts is in progress3899 sends polling interval3900 returns 204 HTTP status3901 when fetching exposed artifacts is completed3902 returns exposed artifacts3903 when pipeline does not have jobs with exposed artifacts3904 returns no content3905 GET coverage_reports3906 permissions on a public project with private CI/CD3907 while signed out3908 responds with a 4043909 while signed in as an unrelated user3910 responds with a 4043911 when pipeline has jobs with coverage reports3912 when processing coverage reports is in progress3913 sends polling interval3914 returns 204 HTTP status3915 when processing coverage reports is completed3916 returns coverage reports3917 when user created corrupted coverage reports3918 does not send polling interval3919 returns 400 HTTP status3920 when pipeline does not have jobs with coverage reports3921 returns no content3922 GET codequality_mr_diff_reports3923 permissions on a public project with private CI/CD3924 while signed out3925 responds with a 4043926 while signed in as an unrelated user3927 responds with a 4043928 when pipeline has jobs with codequality mr diff report3929 when processing codequality mr diff report is in progress3930 sends polling interval3931 returns 204 HTTP status3932 when processing codequality mr diff report is completed3933 returns codequality mr diff report3934 GET terraform_reports3935 permissions on a public project with private CI/CD3936 while signed out3937 responds with a 4043938 while signed in as an unrelated user3939 responds with a 4043940 when pipeline has jobs with terraform reports3941 when processing terraform reports is in progress3942 sends polling interval3943 returns 204 HTTP status3944 when processing terraform reports is completed3945 returns terraform reports3946 when user created corrupted terraform reports3947 does not send polling interval3948 returns 400 HTTP status3949 when pipeline does not have jobs with terraform reports3950 returns error3951 GET test_reports3952 permissions on a public project with private CI/CD3953 while signed out3954 responds with a 4043955 while signed in as an unrelated user3956 responds with a 4043957 when comparison is being processed3958 sends polling interval3959 returns 204 HTTP status3960 when comparison is done3961 does not send polling interval3962 returns 200 HTTP status3963 when user created corrupted test reports3964 does not send polling interval3965 returns 400 HTTP status3966 GET accessibility_reports3967 permissions on a public project with private CI/CD3968 while signed out3969 responds with a 4043970 while signed in as an unrelated user3971 responds with a 4043972 when pipeline has jobs with accessibility reports3973 when processing accessibility reports is in progress3974 sends polling interval3975 returns 204 HTTP status3976 when processing accessibility reports is completed3977 returns accessibility reports3978 when user created corrupted accessibility reports3979 does not send polling interval3980 returns 400 HTTP status3981 GET codequality_reports3982 permissions on a public project with private CI/CD3983 while signed out3984 responds with a 4043985 while signed in as an unrelated user3986 responds with a 4043987 when pipeline has jobs with codequality reports3988 when processing codequality reports is in progress3989 sends polling interval3990 returns 204 HTTP status3991 when processing codequality reports is completed3992 returns codequality reports3993 when pipeline has job without a codequality report3994 returns a 4003995 POST remove_wip3996 removes the draft status3997 renders MergeRequest as JSON3998 POST cancel_auto_merge3999 calls AutoMergeService4000 is expected to respond with numeric status code success4001 renders MergeRequest as JSON4002 POST assign_related_issues4003 shows a flash message on success4004 correctly pluralizes flash message on success4005 calls MergeRequests::AssignIssuesService4006 is skipped when not signed in4007 GET ci_environments_status4008 uses the explicitly linked deployments4009 the environment is from a forked project4010 links to the environment on that project4011 keeps queries in check4012 has no N+1 SQL issues for environments4013 when environment_target is 'merge_commit'4014 returns nothing4015 when is merged4016 returns the environment on the source project4017 when a merge request has multiple environments with deployments4018 exposes multiple environment statuses4019 when route map is not present in the project4020 does not have N+1 Gitaly requests for environments4021 when there is route map present in a project4022 does not have N+1 Gitaly requests for diff files4023 GET pipeline_status.json4024 when head_pipeline exists4025 returns a detailed head_pipeline status in json4026 with project member visibility on a public project4027 returns pipeline data to project members4028 returns blank OK response to non-project-members4029 when head_pipeline does not exist4030 returns blank OK response4031 POST #rebase4032 successfully4033 enqeues a RebaseWorker4034 with NOWAIT lock4035 returns a 4094036 when source branch is protected from force push4037 returns 4044038 with a forked project4039 user cannot push to source branch4040 returns 4044041 user can push to source branch4042 returns 2004043 GET discussions4044 when authenticated4045 returns 2004046 highlight preloading4047 with commit diff notes4048 preloads notes diffs highlights4049 with diff notes4050 preloads notes diffs highlights4051 does not preload highlights when diff note is resolved4053 behaves like discussions provider4054 returns the expected discussions4055 GET edit4056 responds successfully4057 assigns the noteable to make sure autocompletes work4058 POST export_csv4059 redirects to the merge request index4060 enqueues an IssuableExportCsvWorker worker4061Projects::MergeRequests::DiffsController4062 GET show4063 with default params4064 for the same project4065 serializes merge request diff collection4066 when note is a legacy diff note4067 serializes merge request diff collection4068 behaves like forked project with submodules4069 renders4070 behaves like cached diff collection4071 ensures diff highlighting cache writing4072 behaves like diff note on-demand position creation4073 updates diff discussion positions4074 GET diffs_metadata4075 behaves like 404 for unexistent diffable4076 when diffable does not exists4077 returns 4044078 when the merge_request_diff.id is blank4079 returns 4044080 behaves like show the right diff files with previous diff_id4081 with previous diff_id4082 shows the right diff files4083 when not authorized4084 returns 404 when not a member4085 returns 404 when visibility level is not enough4086 with valid diff_id4087 behaves like serializes diffs metadata with expected arguments4088 returns success4089 serializes paginated merge request diff collection4090 with diff_head param passed4091 the merge request can be compared with head4092 compares diffs with the head4093 when diff_id and start_sha are set4094 correctly generates the right diff between versions4095 the merge request cannot be compared with head4096 compares diffs with the base4097 with MR regular diff params4098 behaves like serializes diffs metadata with expected arguments4099 returns success4100 serializes paginated merge request diff collection4101 with commit param4102 behaves like serializes diffs metadata with expected arguments4103 returns success4104 serializes paginated merge request diff collection4105 when display_merge_conflicts_in_diff is disabled4106 behaves like serializes diffs metadata with expected arguments4107 returns success4108 serializes paginated merge request diff collection4109 GET diff_for_path4110 when the merge request exists4111 when the user can view the merge request4112 when the path exists in the diff4113 enables diff notes4114 only renders the diffs for the path given4115 when the user cannot view the merge request4116 returns a 4044117 when the merge request does not exist4118 returns a 4044119 when the merge request belongs to a different project4120 returns a 4044121 GET diffs_batch4122 behaves like 404 for unexistent diffable4123 when diffable does not exists4124 returns 4044125 when the merge_request_diff.id is blank4126 returns 4044127 behaves like show the right diff files with previous diff_id4128 with previous diff_id4129 shows the right diff files4130 when not authorized4131 returns 4044132 with valid diff_id4133 behaves like serializes diffs with expected arguments4134 serializes paginated merge request diff collection4135 behaves like successful request4136 returns success4137 tracks mr_diffs event4138 when DNT is enabled4139 does not track any mr_diffs event4140 when user has view_diffs_file_by_file set to false4141 does not track single_file_diffs events4142 when user has view_diffs_file_by_file set to true4143 tracks single_file_diffs events4144 with commit_id param4145 behaves like serializes diffs with expected arguments4146 serializes paginated merge request diff collection4147 with diff_id and start_sha params4148 behaves like serializes diffs with expected arguments4149 serializes paginated merge request diff collection4150 behaves like successful request4151 returns success4152 tracks mr_diffs event4153 when DNT is enabled4154 does not track any mr_diffs event4155 when user has view_diffs_file_by_file set to false4156 does not track single_file_diffs events4157 when user has view_diffs_file_by_file set to true4158 tracks single_file_diffs events4159 with paths param4160 filters down the response to the expected file path4161 behaves like serializes diffs with expected arguments4162 serializes paginated merge request diff collection4163 behaves like successful request4164 returns success4165 tracks mr_diffs event4166 when DNT is enabled4167 does not track any mr_diffs event4168 when user has view_diffs_file_by_file set to false4169 does not track single_file_diffs events4170 when user has view_diffs_file_by_file set to true4171 tracks single_file_diffs events4172 with default params4173 behaves like serializes diffs with expected arguments4174 serializes paginated merge request diff collection4175 behaves like successful request4176 returns success4177 tracks mr_diffs event4178 when DNT is enabled4179 does not track any mr_diffs event4180 when user has view_diffs_file_by_file set to false4181 does not track single_file_diffs events4182 when user has view_diffs_file_by_file set to true4183 tracks single_file_diffs events4184 with smaller diff batch params4185 behaves like serializes diffs with expected arguments4186 serializes paginated merge request diff collection4187 behaves like successful request4188 returns success4189 tracks mr_diffs event4190 when DNT is enabled4191 does not track any mr_diffs event4192 when user has view_diffs_file_by_file set to false4193 does not track single_file_diffs events4194 when user has view_diffs_file_by_file set to true4195 tracks single_file_diffs events4196 when display_merge_conflicts_in_diff is disabled4197 behaves like serializes diffs with expected arguments4198 serializes paginated merge request diff collection4199 behaves like successful request4200 returns success4201 tracks mr_diffs event4202 when DNT is enabled4203 does not track any mr_diffs event4204 when user has view_diffs_file_by_file set to false4205 does not track single_file_diffs events4206 when user has view_diffs_file_by_file set to true4207 tracks single_file_diffs events4208 behaves like forked project with submodules4209 renders4210 behaves like cached diff collection4211 ensures diff highlighting cache writing4212 diff unfolding4213 unfolds correct diff file positions4214Projects::BranchesController4215 POST create with HTML format4216 on creation of a new branch4217 valid branch name, valid source4218 redirects4219 invalid branch name, valid ref4220 redirects4221 valid branch name, invalid ref4222 is expected to render template new4223 invalid branch name, invalid ref4224 is expected to render template new4225 valid branch name with encoded slashes4226 is expected to render template new4227 example at ./spec/controllers/projects/branches_controller_spec.rb:734228 created from the new branch button on issues4229 redirects4230 posts a system note4231 confidential_issue_project_id is present4232 user cannot update issue4233 does not post a system note4234 user can update issue4235 issue is under the specified project4236 posts a system note4237 issue is not under the specified project4238 does not post a system note4239 repository-less project4240 redirects to newly created branch4241 redirects to autodeploy setup page4242 when user configured kubernetes from CI/CD > Clusters4243 redirects to autodeploy setup page4244 when create branch service fails4245 doesn't post a system note4246 without issue feature access4247 doesn't post a system note4248 POST create with JSON format4249 with valid params4250 returns a successful 200 response4251 returns the created branch4252 with invalid params4253 returns an unprocessable entity 422 response4254 POST destroy with HTML format4255 returns response code 3034256 with http referer4257 redirects to the referer path4258 without http referer4259 redirects to the project branches path4260 POST destroy4261 as JS4262 valid branch name, valid source4263 is expected to respond with numeric status code ok4264 is expected to be blank4265 valid branch name with unencoded slashes4266 is expected to respond with numeric status code ok4267 is expected to be blank4268 valid branch name with encoded slashes4269 is expected to respond with numeric status code not_found4270 is expected to be blank4271 invalid branch name, valid ref4272 is expected to respond with numeric status code not_found4273 is expected to be blank4274 as JSON4275 valid branch name, valid source4276 returns JSON response with message4277 is expected to respond with numeric status code ok4278 valid branch name with unencoded slashes4279 returns JSON response with message4280 is expected to respond with numeric status code ok4281 valid branch name with encoded slashes4282 returns JSON response with message4283 is expected to respond with numeric status code not_found4284 invalid branch name, valid ref4285 returns JSON response with message4286 is expected to respond with numeric status code not_found4287 as HTML4288 redirects to branches path4289 DELETE destroy_all_merged4290 when user is allowed to push4291 redirects to branches4292 starts worker to delete merged branches4293 when user is not allowed to push4294 responds with status 4044295 GET index4296 when rendering a JSON format4297 filters branches by name4298 when a branch has multiple pipelines4299 chooses the latest to determine status4300 when multiple branches exist4301 all relevant commit statuses are received4302 when a branch contains no pipelines4303 no commit statuses are received4304 when cache is enabled yet cold4305 return with a status 2004306 when branch contains an invalid UTF-8 sequence4307 return with a status 2004308 when deprecated sort/search/page parameters are specified4309 returns with a status 301 when sort specified4310 returns with a status 301 when search specified4311 returns with a status 301 when page specified4312 fetching branches for overview4313 sets active and stale branches4314 sorting4315 is expected to eq "name_asc"4316 when sort is not provided4317 uses a default sort without an error message4318 when sort is not supported4319 uses a default sort and shows an error message4320 when gitaly is not available4321 returns with a status 5034322 sets gitaly_unavailable variable4323 GET diverging_commit_counts4324 returns the commit counts behind and ahead of default branch4325 returns the commits counts with no names provided4326 with many branches4327 returns 422 if no names are specified4328 returns the list of counts4329API::Wikis4330 GET /projects/:id/wikis4331 when wiki is disabled4332 when user is guest4333 returns 404 Project Not Found4334 when user is developer4335 returns 403 Forbidden4336 when user is maintainer4337 returns 403 Forbidden4338 when wiki is available only for team members4339 when user is guest4340 returns 404 Project Not Found4341 when user is developer4342 return the empty list of wiki pages4343 when wiki has pages4344 returns the list of wiki pages without content4345 returns the list of wiki pages with content4346 when user is maintainer4347 return the empty list of wiki pages4348 when wiki has pages4349 returns the list of wiki pages without content4350 returns the list of wiki pages with content4351 when wiki is available for everyone with access4352 when user is guest4353 returns 404 Project Not Found4354 when user is developer4355 return the empty list of wiki pages4356 when wiki has pages4357 returns the list of wiki pages without content4358 returns the list of wiki pages with content4359 when user is maintainer4360 return the empty list of wiki pages4361 when wiki has pages4362 returns the list of wiki pages without content4363 returns the list of wiki pages with content4364 GET /projects/:id/wikis/:slug4365 when wiki is disabled4366 when user is guest4367 returns 404 Project Not Found4368 when user is developer4369 returns 403 Forbidden4370 when user is maintainer4371 returns 403 Forbidden4372 when wiki is available only for team members4373 when user is guest4374 returns 404 Project Not Found4375 when user is developer4376 behaves like returns wiki page4377 is expected to eq "Page 5"4378 when render param is false4379 behaves like returns wiki page4380 is expected to eq "Page 6"4381 when render param is true4382 behaves like returns wiki page4383 is expected to eq "Page 7"4384 when wiki page has versions4385 when version param is not present4386 retrieves the last version4387 when version param is set4388 retrieves the specific page version4389 when version param is not valid or inexistent4390 behaves like wiki API 404 Wiki Page Not Found4391 returns 404 Wiki Page Not Found4392 when page is not existing4393 returns 404 Wiki Page Not Found4394 when user is maintainer4395 behaves like returns wiki page4396 is expected to eq "Page 11"4397 when render param is false4398 behaves like returns wiki page4399 is expected to eq "Page 12"4400 when render param is true4401 behaves like returns wiki page4402 is expected to eq "Page 13"4403 when wiki page has versions4404 when version param is not present4405 retrieves the last version4406 when version param is set4407 retrieves the specific page version4408 when version param is not valid or inexistent4409 behaves like wiki API 404 Wiki Page Not Found4410 returns 404 Wiki Page Not Found4411 when page is not existing4412 returns 404 Wiki Page Not Found4413 when wiki is available for everyone with access4414 when user is guest4415 returns 404 Project Not Found4416 when user is developer4417 behaves like returns wiki page4418 is expected to eq "Page 18"4419 when render param is false4420 behaves like returns wiki page4421 is expected to eq "Page 19"4422 when render param is true4423 behaves like returns wiki page4424 is expected to eq "Page 20"4425 when wiki page has versions4426 when version param is not present4427 retrieves the last version4428 when version param is set4429 retrieves the specific page version4430 when version param is not valid or inexistent4431 behaves like wiki API 404 Wiki Page Not Found4432 returns 404 Wiki Page Not Found4433 when page is not existing4434 returns 404 Wiki Page Not Found4435 when user is maintainer4436 behaves like returns wiki page4437 is expected to eq "Page 24"4438 when render param is false4439 behaves like returns wiki page4440 is expected to eq "Page 25"4441 when render param is true4442 behaves like returns wiki page4443 is expected to eq "Page 26"4444 when wiki page has versions4445 when version param is not present4446 retrieves the last version4447 when version param is set4448 retrieves the specific page version4449 when version param is not valid or inexistent4450 behaves like wiki API 404 Wiki Page Not Found4451 returns 404 Wiki Page Not Found4452 when page is not existing4453 returns 404 Wiki Page Not Found4454 when content contains a reference4455 expands the reference in the content4456 POST /projects/:id/wikis4457 when wiki is disabled4458 when user is guest4459 returns 404 Project Not Found4460 when user is developer4461 returns 403 Forbidden4462 when user is maintainer4463 returns 403 Forbidden4464 when wiki is available only for team members4465 when user is guest4466 returns 404 Project Not Found4467 when user is developer4468DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4469 creates the wiki page4470 responds with validation error on empty title4471 responds with validation error on empty content4472 when user is maintainer4473DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4474 creates the wiki page4475 responds with validation error on empty title4476 responds with validation error on empty content4477 when wiki is available for everyone with access4478 when user is guest4479 returns 404 Project Not Found4480 when user is developer4481DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4482 creates the wiki page4483 responds with validation error on empty title4484 responds with validation error on empty content4485 when user is maintainer4486DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4487 creates the wiki page4488 responds with validation error on empty title4489 responds with validation error on empty content4490 PUT /projects/:id/wikis/:slug4491 when wiki is disabled4492 when user is guest4493 returns 404 Project Not Found4494 when user is developer4495 returns 403 Forbidden4496 when user is maintainer4497 returns 403 Forbidden4498 when wiki is available only for team members4499 when user is guest4500 returns 404 Project Not Found4501 when user is developer4502DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4503 updates the wiki page4504DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4505 updates with wiki with missing title4506DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4507 updates with wiki with missing content4508DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4509 updates with wiki with missing format4510 when page is not existing4511 returns 404 Wiki Page Not Found4512 when user is maintainer4513DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4514 updates the wiki page4515DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4516 updates with wiki with missing title4517DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4518 updates with wiki with missing content4519DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4520 updates with wiki with missing format4521 when page is not existing4522 returns 404 Wiki Page Not Found4523 when wiki is available for everyone with access4524 when user is guest4525 returns 404 Project Not Found4526 when user is developer4527DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4528 updates the wiki page4529DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4530 updates with wiki with missing title4531DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4532 updates with wiki with missing content4533DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4534 updates with wiki with missing format4535 when page is not existing4536 returns 404 Wiki Page Not Found4537 when user is maintainer4538DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4539 updates the wiki page4540DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4541 updates with wiki with missing title4542DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4543 updates with wiki with missing content4544DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4545 updates with wiki with missing format4546 when page is not existing4547 returns 404 Wiki Page Not Found4548 when wiki belongs to a group project4549DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4550 updates the wiki page4551DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4552 updates with wiki with missing title4553 updates with wiki with missing content4554 updates with wiki with missing format4555 DELETE /projects/:id/wikis/:slug4556 when wiki is disabled4557 when user is guest4558 returns 404 Project Not Found4559 when user is developer4560 returns 403 Forbidden4561 when user is maintainer4562 returns 403 Forbidden4563 when wiki is available only for team members4564 when user is guest4565 returns 404 Project Not Found4566 when user is developer4567 returns 403 Forbidden4568 when user is maintainer4569DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4570 returns 204 No Content4571 when wiki is available for everyone with access4572 when user is guest4573 returns 404 Project Not Found4574 when user is developer4575 returns 403 Forbidden4576 when user is maintainer4577DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4578 returns 204 No Content4579 when page is not existing4580 returns 404 Wiki Page Not Found4581 when there is an error deleting the page4582 returns 4224583 when wiki belongs to a group project4584DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4585 returns 204 No Content4586 POST /projects/:id/wikis/attachments4587 when wiki is disabled4588 when user is guest4589 returns 404 Project Not Found4590 when user is developer4591 returns 403 Forbidden4592 when user is maintainer4593 returns 403 Forbidden4594 when wiki is available only for team members4595 when user is guest4596 returns 404 Project Not Found4597 when user is developer4598 pushes attachment to the wiki repository4599 responds with validation error on empty file4600 responds with validation error on invalid temp file4601 is backward compatible with regular multipart uploads4602 when user is maintainer4603 pushes attachment to the wiki repository4604 responds with validation error on empty file4605 responds with validation error on invalid temp file4606 is backward compatible with regular multipart uploads4607 when wiki is available for everyone with access4608 when user is guest4609 returns 404 Project Not Found4610 when user is developer4611 pushes attachment to the wiki repository4612 responds with validation error on empty file4613 responds with validation error on invalid temp file4614 is backward compatible with regular multipart uploads4615 when user is maintainer4616 pushes attachment to the wiki repository4617 responds with validation error on empty file4618 responds with validation error on invalid temp file4619 is backward compatible with regular multipart uploads4620API::Release::Links4621 GET /projects/:id/releases/:tag_name/assets/links4622 when there are two release links4623 returns 200 HTTP status4624 returns release links ordered by created_at4625 matches response schema4626 when using JOB-TOKEN auth4627 returns releases links4628 when release does not exist4629 behaves like 404 response4630 returns 4044631 when user is not a project member4632 behaves like 404 response4633 returns 4044634 when project is public4635 allows the request4636 when project is public and the repository is private4637 behaves like 403 response4638 returns 4034639 when the release does not exists4640 behaves like 403 response4641 returns 4034642 GET /projects/:id/releases/:tag_name/assets/links/:link_id4643 returns 200 HTTP status4644 returns a link entry4645 matches response schema4646 when using JOB-TOKEN auth4647 returns releases link4648 when specified tag is not found in the project4649 behaves like 404 response4650 returns 4044651 when user is not a project member4652 behaves like 404 response4653 returns 4044654 when project is public4655 allows the request4656 #direct_asset_url4657 when filepath is provided4658 is expected to eq "http://localhost/namespace621/project644/-/releases/v0.1/downloads/bin/bigfile.exe"4659 when filepath is not provided4660 is expected to eq "https://google.com/-/jobs/140463678/artifacts/download"4661 POST /projects/:id/releases/:tag_name/assets/links4662 accepts the request4663 creates a new release4664 matches response schema4665 when using JOB-TOKEN auth4666 creates a new release link4667 with protected tag4668 when user has access to the protected tag4669 accepts the request4670 when user does not have access to the protected tag4671 forbids the request4672 when name is empty4673 behaves like 400 response4674 returns 4004675 when user is a reporter4676 behaves like 403 response4677 returns 4034678 when user is not a project member4679 forbids the request4680 when project is public4681 forbids the request4682 when the same link already exists4683 behaves like 400 response4684 returns 4004685 PUT /projects/:id/releases/:tag_name/assets/links/:link_id4686 accepts the request4687 updates the name4688 does not update the url4689 matches response schema4690 when using JOB-TOKEN auth4691 updates the release link4692 with protected tag4693 when user has access to the protected tag4694 accepts the request4695 when user does not have access to the protected tag4696 forbids the request4697 when params is empty4698 does not allow the request4699 when there are no corresponding release link4700 behaves like 404 response4701 returns 4044702 when user is a reporter4703 behaves like 403 response4704 returns 4034705 when user is not a project member4706 behaves like 404 response4707 returns 4044708 when project is public4709 behaves like 403 response4710 returns 4034711 DELETE /projects/:id/releases/:tag_name/assets/links/:link_id4712 accepts the request4713 destroys the release link4714 matches response schema4715 when using JOB-TOKEN auth4716 deletes the release link4717 with protected tag4718 when user has access to the protected tag4719 accepts the request4720 when user does not have access to the protected tag4721 forbids the request4722 when there are no corresponding release link4723 behaves like 404 response4724 returns 4044725 when user is a reporter4726 behaves like 403 response4727 returns 4034728 when user is not a project member4729 behaves like 404 response4730 returns 4044731 when project is public4732 behaves like 403 response4733 returns 4034734API::Ci::Variables4735 GET /projects/:id/variables4736 authorized user with proper permissions4737 returns project variables4738 authorized user with invalid permissions4739 does not return project variables4740 unauthorized user4741 does not return project variables4742 GET /projects/:id/variables/:key4743 authorized user with proper permissions4744 returns project variable details4745 responds with 404 Not Found if requesting non-existing variable4746 when there are two variables with the same key on different env4747 when filter[environment_scope] is not passed4748 returns 4094749 when filter[environment_scope] is passed4750 returns the variable4751 when wrong filter[environment_scope] is passed4752 returns not_found4753 when there is only one variable with provided key4754 returns not_found4755 authorized user with invalid permissions4756 does not return project variable details4757 unauthorized user4758 does not return project variable details4759 POST /projects/:id/variables4760 authorized user with proper permissions4761 creates variable4762 creates variable with optional attributes4763 does not allow to duplicate variable key4764 creates variable with a specific environment scope4765 allows duplicated variable key given different environment scopes4766 authorized user with invalid permissions4767 does not create variable4768 unauthorized user4769 does not create variable4770 PUT /projects/:id/variables/:key4771 authorized user with proper permissions4772 updates variable data4773 responds with 404 Not Found if requesting non-existing variable4774 when there are two variables with the same key on different env4775 when filter[environment_scope] is not passed4776 returns 4094777 when filter[environment_scope] is passed4778 updates the variable4779 when wrong filter[environment_scope] is passed4780 returns not_found4781 authorized user with invalid permissions4782 does not update variable4783 unauthorized user4784 does not update variable4785 DELETE /projects/:id/variables/:key4786 authorized user with proper permissions4787 deletes variable4788 responds with 404 Not Found if requesting non-existing variable4789 when there are two variables with the same key on different env4790 when filter[environment_scope] is not passed4791 returns 4094792 when filter[environment_scope] is passed4793 deletes the variable4794 when wrong filter[environment_scope] is passed4795 returns not_found4796 authorized user with invalid permissions4797 does not delete variable4798 unauthorized user4799 does not delete variable4800API::ProjectDebianDistributions4801 POST projects/:id/debian_distributions4802 behaves like Debian distributions write endpoint4803 with valid container4804 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/4805 behaves like Debian distributions POST request4806 creates distribution4807 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4808 behaves like Debian distributions POST request4809 returns unauthorized4810 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4811 behaves like Debian distributions POST request4812 returns forbidden4813 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4814 behaves like Debian distributions POST request4815 returns forbidden4816 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4817 behaves like Debian distributions POST request4818 returns unauthorized4819 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4820 behaves like Debian distributions POST request4821 returns unauthorized4822 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/4823 behaves like Debian distributions POST request4824 creates distribution4825 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4826 behaves like Debian distributions POST request4827 returns forbidden4828 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4829 behaves like Debian distributions POST request4830 returns not_found4831 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4832 behaves like Debian distributions POST request4833 returns not_found4834 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4835 behaves like Debian distributions POST request4836 returns unauthorized4837 behaves like rejects Debian access with unknown container id4838 with an unknown container4839 as anonymous4840 behaves like Debian packages GET request4841 returns not_found4842 behaves like Debian API FIPS mode4843 when FIPS mode is enabled4844 behaves like returning response status4845 returns not_found4846 as authenticated user4847 behaves like Debian packages GET request4848 returns not_found4849 behaves like Debian API FIPS mode4850 when FIPS mode is enabled4851 behaves like returning response status4852 returns not_found4853 with invalid parameters4854 behaves like Debian distributions write endpoint4855 with valid container4856 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"codename":\["has already been taken"\]}}$/4857 behaves like Debian distributions GET request4858 returns bad_request and expected body4859 behaves like Debian API FIPS mode4860 when FIPS mode is enabled4861 behaves like returning response status4862 returns not_found4863 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil4864 behaves like Debian distributions GET request4865 returns unauthorized4866 behaves like Debian API FIPS mode4867 when FIPS mode is enabled4868 behaves like returning response status4869 returns not_found4870 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4871 behaves like Debian distributions GET request4872 returns forbidden4873 behaves like Debian API FIPS mode4874 when FIPS mode is enabled4875 behaves like returning response status4876 returns not_found4877 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4878 behaves like Debian distributions GET request4879 returns forbidden4880 behaves like Debian API FIPS mode4881 when FIPS mode is enabled4882 behaves like returning response status4883 returns not_found4884 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4885 behaves like Debian distributions GET request4886 returns unauthorized4887 behaves like Debian API FIPS mode4888 when FIPS mode is enabled4889 behaves like returning response status4890 returns not_found4891 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4892 behaves like Debian distributions GET request4893 returns unauthorized4894 behaves like Debian API FIPS mode4895 when FIPS mode is enabled4896 behaves like returning response status4897 returns not_found4898 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"codename":\["has already been taken"\]}}$/4899 behaves like Debian distributions GET request4900 returns bad_request and expected body4901 behaves like Debian API FIPS mode4902 when FIPS mode is enabled4903 behaves like returning response status4904 returns not_found4905 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4906 behaves like Debian distributions GET request4907 returns forbidden4908 behaves like Debian API FIPS mode4909 when FIPS mode is enabled4910 behaves like returning response status4911 returns not_found4912 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil4913 behaves like Debian distributions GET request4914 returns not_found4915 behaves like Debian API FIPS mode4916 when FIPS mode is enabled4917 behaves like returning response status4918 returns not_found4919 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil4920 behaves like Debian distributions GET request4921 returns not_found4922 behaves like Debian API FIPS mode4923 when FIPS mode is enabled4924 behaves like returning response status4925 returns not_found4926 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4927 behaves like Debian distributions GET request4928 returns unauthorized4929 behaves like Debian API FIPS mode4930 when FIPS mode is enabled4931 behaves like returning response status4932 returns not_found4933 behaves like rejects Debian access with unknown container id4934 with an unknown container4935 as anonymous4936 behaves like Debian packages GET request4937 returns not_found4938 behaves like Debian API FIPS mode4939 when FIPS mode is enabled4940 behaves like returning response status4941 returns not_found4942 as authenticated user4943 behaves like Debian packages GET request4944 returns not_found4945 behaves like Debian API FIPS mode4946 when FIPS mode is enabled4947 behaves like returning response status4948 returns not_found4949 GET projects/:id/debian_distributions4950 behaves like Debian distributions read endpoint4951 with valid container4952 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"\]/4953 behaves like Debian distributions GET request4954 returns success and expected body4955 behaves like Debian API FIPS mode4956 when FIPS mode is enabled4957 behaves like returning response status4958 returns not_found4959 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"\]/4960 behaves like Debian distributions GET request4961 returns success and expected body4962 behaves like Debian API FIPS mode4963 when FIPS mode is enabled4964 behaves like returning response status4965 returns not_found4966 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"\]/4967 behaves like Debian distributions GET request4968 returns success and expected body4969 behaves like Debian API FIPS mode4970 when FIPS mode is enabled4971 behaves like returning response status4972 returns not_found4973 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil4974 behaves like Debian distributions GET request4975 returns unauthorized4976 behaves like Debian API FIPS mode4977 when FIPS mode is enabled4978 behaves like returning response status4979 returns not_found4980 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"\]/4981 behaves like Debian distributions GET request4982 returns success and expected body4983 behaves like Debian API FIPS mode4984 when FIPS mode is enabled4985 behaves like returning response status4986 returns not_found4987 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil4988 behaves like Debian distributions GET request4989 returns not_found4990 behaves like Debian API FIPS mode4991 when FIPS mode is enabled4992 behaves like returning response status4993 returns not_found4994 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil4995 behaves like Debian distributions GET request4996 returns forbidden4997 behaves like Debian API FIPS mode4998 when FIPS mode is enabled4999 behaves like returning response status5000 returns not_found5001 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5002 behaves like Debian distributions GET request5003 returns not_found5004 behaves like Debian API FIPS mode5005 when FIPS mode is enabled5006 behaves like returning response status5007 returns not_found5008 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5009 behaves like Debian distributions GET request5010 returns not_found5011 behaves like Debian API FIPS mode5012 when FIPS mode is enabled5013 behaves like returning response status5014 returns not_found5015 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5016 behaves like Debian distributions GET request5017 returns unauthorized5018 behaves like Debian API FIPS mode5019 when FIPS mode is enabled5020 behaves like returning response status5021 returns not_found5022 behaves like rejects Debian access with unknown container id5023 with an unknown container5024 as anonymous5025 behaves like Debian packages GET request5026 returns not_found5027 behaves like Debian API FIPS mode5028 when FIPS mode is enabled5029 behaves like returning response status5030 returns not_found5031 as authenticated user5032 behaves like Debian packages GET request5033 returns not_found5034 behaves like Debian API FIPS mode5035 when FIPS mode is enabled5036 behaves like returning response status5037 returns not_found5038 GET projects/:id/debian_distributions/:codename5039 behaves like Debian distributions read endpoint5040 with valid container5041 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"\]/5042 behaves like Debian distributions GET request5043 returns success and expected body5044 behaves like Debian API FIPS mode5045 when FIPS mode is enabled5046 behaves like returning response status5047 returns not_found5048 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"\]/5049 behaves like Debian distributions GET request5050 returns success and expected body5051 behaves like Debian API FIPS mode5052 when FIPS mode is enabled5053 behaves like returning response status5054 returns not_found5055 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"\]/5056 behaves like Debian distributions GET request5057 returns success and expected body5058 behaves like Debian API FIPS mode5059 when FIPS mode is enabled5060 behaves like returning response status5061 returns not_found5062 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5063 behaves like Debian distributions GET request5064 returns unauthorized5065 behaves like Debian API FIPS mode5066 when FIPS mode is enabled5067 behaves like returning response status5068 returns not_found5069 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"\]/5070 behaves like Debian distributions GET request5071 returns success and expected body5072 behaves like Debian API FIPS mode5073 when FIPS mode is enabled5074 behaves like returning response status5075 returns not_found5076 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil5077 behaves like Debian distributions GET request5078 returns not_found5079 behaves like Debian API FIPS mode5080 when FIPS mode is enabled5081 behaves like returning response status5082 returns not_found5083 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5084 behaves like Debian distributions GET request5085 returns forbidden5086 behaves like Debian API FIPS mode5087 when FIPS mode is enabled5088 behaves like returning response status5089 returns not_found5090 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5091 behaves like Debian distributions GET request5092 returns not_found5093 behaves like Debian API FIPS mode5094 when FIPS mode is enabled5095 behaves like returning response status5096 returns not_found5097 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5098 behaves like Debian distributions GET request5099 returns not_found5100 behaves like Debian API FIPS mode5101 when FIPS mode is enabled5102 behaves like returning response status5103 returns not_found5104 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5105 behaves like Debian distributions GET request5106 returns unauthorized5107 behaves like Debian API FIPS mode5108 when FIPS mode is enabled5109 behaves like returning response status5110 returns not_found5111 behaves like rejects Debian access with unknown container id5112 with an unknown container5113 as anonymous5114 behaves like Debian packages GET request5115 returns not_found5116 behaves like Debian API FIPS mode5117 when FIPS mode is enabled5118 behaves like returning response status5119 returns not_found5120 as authenticated user5121 behaves like Debian packages GET request5122 returns not_found5123 behaves like Debian API FIPS mode5124 when FIPS mode is enabled5125 behaves like returning response status5126 returns not_found5127 GET projects/:id/debian_distributions/:codename/key.asc5128 behaves like Debian distributions read endpoint5129 with valid container5130 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5131 behaves like Debian distributions GET request5132 returns success and expected body5133 behaves like Debian API FIPS mode5134 when FIPS mode is enabled5135 behaves like returning response status5136 returns not_found5137 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5138 behaves like Debian distributions GET request5139 returns success and expected body5140 behaves like Debian API FIPS mode5141 when FIPS mode is enabled5142 behaves like returning response status5143 returns not_found5144 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5145 behaves like Debian distributions GET request5146 returns success and expected body5147 behaves like Debian API FIPS mode5148 when FIPS mode is enabled5149 behaves like returning response status5150 returns not_found5151 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5152 behaves like Debian distributions GET request5153 returns unauthorized5154 behaves like Debian API FIPS mode5155 when FIPS mode is enabled5156 behaves like returning response status5157 returns not_found5158 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5159 behaves like Debian distributions GET request5160 returns success and expected body5161 behaves like Debian API FIPS mode5162 when FIPS mode is enabled5163 behaves like returning response status5164 returns not_found5165 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil5166 behaves like Debian distributions GET request5167 returns not_found5168 behaves like Debian API FIPS mode5169 when FIPS mode is enabled5170 behaves like returning response status5171 returns not_found5172 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5173 behaves like Debian distributions GET request5174 returns forbidden5175 behaves like Debian API FIPS mode5176 when FIPS mode is enabled5177 behaves like returning response status5178 returns not_found5179 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5180 behaves like Debian distributions GET request5181 returns not_found5182 behaves like Debian API FIPS mode5183 when FIPS mode is enabled5184 behaves like returning response status5185 returns not_found5186 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5187 behaves like Debian distributions GET request5188 returns not_found5189 behaves like Debian API FIPS mode5190 when FIPS mode is enabled5191 behaves like returning response status5192 returns not_found5193 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5194 behaves like Debian distributions GET request5195 returns unauthorized5196 behaves like Debian API FIPS mode5197 when FIPS mode is enabled5198 behaves like returning response status5199 returns not_found5200 behaves like rejects Debian access with unknown container id5201 with an unknown container5202 as anonymous5203 behaves like Debian packages GET request5204 returns not_found5205 behaves like Debian API FIPS mode5206 when FIPS mode is enabled5207 behaves like returning response status5208 returns not_found5209 as authenticated user5210 behaves like Debian packages GET request5211 returns not_found5212 behaves like Debian API FIPS mode5213 when FIPS mode is enabled5214 behaves like returning response status5215 returns not_found5216 PUT projects/:id/debian_distributions/:codename5217 behaves like Debian distributions write endpoint5218 with valid container5219 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/5220 behaves like Debian distributions PUT request5221 updates distribution5222 behaves like Debian API FIPS mode5223 when FIPS mode is enabled5224 behaves like returning response status5225 returns not_found5226 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5227 behaves like Debian distributions PUT request5228 returns unauthorized5229 behaves like Debian API FIPS mode5230 when FIPS mode is enabled5231 behaves like returning response status5232 returns not_found5233 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5234 behaves like Debian distributions PUT request5235 returns forbidden5236 behaves like Debian API FIPS mode5237 when FIPS mode is enabled5238 behaves like returning response status5239 returns not_found5240 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5241 behaves like Debian distributions PUT request5242 returns forbidden5243 behaves like Debian API FIPS mode5244 when FIPS mode is enabled5245 behaves like returning response status5246 returns not_found5247 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5248 behaves like Debian distributions PUT request5249 returns unauthorized5250 behaves like Debian API FIPS mode5251 when FIPS mode is enabled5252 behaves like returning response status5253 returns not_found5254 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5255 behaves like Debian distributions PUT request5256 returns unauthorized5257 behaves like Debian API FIPS mode5258 when FIPS mode is enabled5259 behaves like returning response status5260 returns not_found5261 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/5262 behaves like Debian distributions PUT request5263 updates distribution5264 behaves like Debian API FIPS mode5265 when FIPS mode is enabled5266 behaves like returning response status5267 returns not_found5268 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5269 behaves like Debian distributions PUT request5270 returns forbidden5271 behaves like Debian API FIPS mode5272 when FIPS mode is enabled5273 behaves like returning response status5274 returns not_found5275 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5276 behaves like Debian distributions PUT request5277 returns not_found5278 behaves like Debian API FIPS mode5279 when FIPS mode is enabled5280 behaves like returning response status5281 returns not_found5282 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5283 behaves like Debian distributions PUT request5284 returns not_found5285 behaves like Debian API FIPS mode5286 when FIPS mode is enabled5287 behaves like returning response status5288 returns not_found5289 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5290 behaves like Debian distributions PUT request5291 returns unauthorized5292 behaves like Debian API FIPS mode5293 when FIPS mode is enabled5294 behaves like returning response status5295 returns not_found5296 behaves like rejects Debian access with unknown container id5297 with an unknown container5298 as anonymous5299 behaves like Debian packages GET request5300 returns not_found5301 behaves like Debian API FIPS mode5302 when FIPS mode is enabled5303 behaves like returning response status5304 returns not_found5305 as authenticated user5306 behaves like Debian packages GET request5307 returns not_found5308 behaves like Debian API FIPS mode5309 when FIPS mode is enabled5310 behaves like returning response status5311 returns not_found5312 with invalid parameters5313 behaves like Debian distributions write endpoint5314 with valid container5315 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"suite":\["has already been taken as Codename"\]}}$/5316 behaves like Debian distributions GET request5317 returns bad_request and expected body5318 behaves like Debian API FIPS mode5319 when FIPS mode is enabled5320 behaves like returning response status5321 returns not_found5322 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5323 behaves like Debian distributions GET request5324 returns unauthorized5325 behaves like Debian API FIPS mode5326 when FIPS mode is enabled5327 behaves like returning response status5328 returns not_found5329 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5330 behaves like Debian distributions GET request5331 returns forbidden5332 behaves like Debian API FIPS mode5333 when FIPS mode is enabled5334 behaves like returning response status5335 returns not_found5336 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5337 behaves like Debian distributions GET request5338 returns forbidden5339 behaves like Debian API FIPS mode5340 when FIPS mode is enabled5341 behaves like returning response status5342 returns not_found5343 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5344 behaves like Debian distributions GET request5345 returns unauthorized5346 behaves like Debian API FIPS mode5347 when FIPS mode is enabled5348 behaves like returning response status5349 returns not_found5350 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5351 behaves like Debian distributions GET request5352 returns unauthorized5353 behaves like Debian API FIPS mode5354 when FIPS mode is enabled5355 behaves like returning response status5356 returns not_found5357 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"suite":\["has already been taken as Codename"\]}}$/5358 behaves like Debian distributions GET request5359 returns bad_request and expected body5360 behaves like Debian API FIPS mode5361 when FIPS mode is enabled5362 behaves like returning response status5363 returns not_found5364 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5365 behaves like Debian distributions GET request5366 returns forbidden5367 behaves like Debian API FIPS mode5368 when FIPS mode is enabled5369 behaves like returning response status5370 returns not_found5371 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5372 behaves like Debian distributions GET request5373 returns not_found5374 behaves like Debian API FIPS mode5375 when FIPS mode is enabled5376 behaves like returning response status5377 returns not_found5378 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5379 behaves like Debian distributions GET request5380 returns not_found5381 behaves like Debian API FIPS mode5382 when FIPS mode is enabled5383 behaves like returning response status5384 returns not_found5385 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5386 behaves like Debian distributions GET request5387 returns unauthorized5388 behaves like Debian API FIPS mode5389 when FIPS mode is enabled5390 behaves like returning response status5391 returns not_found5392 behaves like rejects Debian access with unknown container id5393 with an unknown container5394 as anonymous5395 behaves like Debian packages GET request5396 returns not_found5397 behaves like Debian API FIPS mode5398 when FIPS mode is enabled5399 behaves like returning response status5400 returns not_found5401 as authenticated user5402 behaves like Debian packages GET request5403 returns not_found5404 behaves like Debian API FIPS mode5405 when FIPS mode is enabled5406 behaves like returning response status5407 returns not_found5408 DELETE projects/:id/debian_distributions/:codename5409 behaves like Debian distributions maintainer write endpoint5410 with valid container5411 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{\"message\":\"202 Accepted\"}$/5412 behaves like Debian distributions DELETE request5413 updates distribution5414 behaves like Debian API FIPS mode5415 when FIPS mode is enabled5416 behaves like returning response status5417 returns not_found5418 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5419 behaves like Debian distributions DELETE request5420 returns unauthorized5421 behaves like Debian API FIPS mode5422 when FIPS mode is enabled5423 behaves like returning response status5424 returns not_found5425 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5426 behaves like Debian distributions DELETE request5427 returns forbidden5428 behaves like Debian API FIPS mode5429 when FIPS mode is enabled5430 behaves like returning response status5431 returns not_found5432 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5433 behaves like Debian distributions DELETE request5434 returns forbidden5435 behaves like Debian API FIPS mode5436 when FIPS mode is enabled5437 behaves like returning response status5438 returns not_found5439 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5440 behaves like Debian distributions DELETE request5441 returns unauthorized5442 behaves like Debian API FIPS mode5443 when FIPS mode is enabled5444 behaves like returning response status5445 returns not_found5446 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5447 behaves like Debian distributions DELETE request5448 returns unauthorized5449 behaves like Debian API FIPS mode5450 when FIPS mode is enabled5451 behaves like returning response status5452 returns not_found5453 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{\"message\":\"202 Accepted\"}$/5454 behaves like Debian distributions DELETE request5455 updates distribution5456 behaves like Debian API FIPS mode5457 when FIPS mode is enabled5458 behaves like returning response status5459 returns not_found5460 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5461 behaves like Debian distributions DELETE request5462 returns forbidden5463 behaves like Debian API FIPS mode5464 when FIPS mode is enabled5465 behaves like returning response status5466 returns not_found5467 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5468 behaves like Debian distributions DELETE request5469 returns not_found5470 behaves like Debian API FIPS mode5471 when FIPS mode is enabled5472 behaves like returning response status5473 returns not_found5474 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5475 behaves like Debian distributions DELETE request5476 returns not_found5477 behaves like Debian API FIPS mode5478 when FIPS mode is enabled5479 behaves like returning response status5480 returns not_found5481 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5482 behaves like Debian distributions DELETE request5483 returns unauthorized5484 behaves like Debian API FIPS mode5485 when FIPS mode is enabled5486 behaves like returning response status5487 returns not_found5488 behaves like rejects Debian access with unknown container id5489 with an unknown container5490 as anonymous5491 behaves like Debian packages GET request5492 returns not_found5493 behaves like Debian API FIPS mode5494 when FIPS mode is enabled5495 behaves like returning response status5496 returns not_found5497 as authenticated user5498 behaves like Debian packages GET request5499 returns not_found5500 behaves like Debian API FIPS mode5501 when FIPS mode is enabled5502 behaves like returning response status5503 returns not_found5504 when destroy fails5505 behaves like Debian distributions maintainer write endpoint5506 with valid container5507 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":"Failed to delete distribution"}$/5508 behaves like Debian distributions GET request5509 returns bad_request and expected body5510 behaves like Debian API FIPS mode5511 when FIPS mode is enabled5512 behaves like returning response status5513 returns not_found5514 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5515 behaves like Debian distributions GET request5516 returns unauthorized5517 behaves like Debian API FIPS mode5518 when FIPS mode is enabled5519 behaves like returning response status5520 returns not_found5521 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5522 behaves like Debian distributions GET request5523 returns forbidden5524 behaves like Debian API FIPS mode5525 when FIPS mode is enabled5526 behaves like returning response status5527 returns not_found5528 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5529 behaves like Debian distributions GET request5530 returns forbidden5531 behaves like Debian API FIPS mode5532 when FIPS mode is enabled5533 behaves like returning response status5534 returns not_found5535 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5536 behaves like Debian distributions GET request5537 returns unauthorized5538 behaves like Debian API FIPS mode5539 when FIPS mode is enabled5540 behaves like returning response status5541 returns not_found5542 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5543 behaves like Debian distributions GET request5544 returns unauthorized5545 behaves like Debian API FIPS mode5546 when FIPS mode is enabled5547 behaves like returning response status5548 returns not_found5549 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":"Failed to delete distribution"}$/5550 behaves like Debian distributions GET request5551 returns bad_request and expected body5552 behaves like Debian API FIPS mode5553 when FIPS mode is enabled5554 behaves like returning response status5555 returns not_found5556 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5557 behaves like Debian distributions GET request5558 returns forbidden5559 behaves like Debian API FIPS mode5560 when FIPS mode is enabled5561 behaves like returning response status5562 returns not_found5563 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5564 behaves like Debian distributions GET request5565 returns not_found5566 behaves like Debian API FIPS mode5567 when FIPS mode is enabled5568 behaves like returning response status5569 returns not_found5570 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5571 behaves like Debian distributions GET request5572 returns not_found5573 behaves like Debian API FIPS mode5574 when FIPS mode is enabled5575 behaves like returning response status5576 returns not_found5577 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5578 behaves like Debian distributions GET request5579 returns unauthorized5580 behaves like Debian API FIPS mode5581 when FIPS mode is enabled5582 behaves like returning response status5583 returns not_found5584 behaves like rejects Debian access with unknown container id5585 with an unknown container5586 as anonymous5587 behaves like Debian packages GET request5588 returns not_found5589 behaves like Debian API FIPS mode5590 when FIPS mode is enabled5591 behaves like returning response status5592 returns not_found5593 as authenticated user5594 behaves like Debian packages GET request5595 returns not_found5596 behaves like Debian API FIPS mode5597 when FIPS mode is enabled5598 behaves like returning response status5599 returns not_found5600Projects::UploadsController5601 behaves like handle uploads5602 behaves like handle uploads authorize5603 POST #authorize5604 when a user is not authorized to upload a file5605 returns 404 status5606 when id is not passed as a param5607 returns 404 status5608 when a user can upload a file5609 and the request bypassed workhorse5610 raises an exception5611 and request is sent by gitlab-workhorse to authorize the request5612 when using local storage5613 behaves like a local file5614 behaves like a valid response5615 responds with status 2005616 uses the gitlab-workhorse content type5617 responds with status 200, location of uploads store and object details5618 when using remote storage5619 when direct upload is enabled5620 behaves like a valid response5621 responds with status 2005622 uses the gitlab-workhorse content type5623 responds with status 200, location of uploads remote store and object details5624 when direct upload is disabled5625 behaves like a local file5626 behaves like a valid response5627 responds with status 2005628 uses the gitlab-workhorse content type5629 responds with status 200, location of uploads store and object details5630 POST #create5631 when a user is not authorized to upload a file5632 returns 404 status5633 when a user can upload a file5634 without params['file']5635 returns an error5636 with valid image5637 returns a content with original filename, new link, and correct type.5638 creates a corresponding Upload record5639 with valid non-image file5640 returns a content with original filename, new link, and correct type.5641 GET #show5642 when the secret is invalid5643 responds with status 4045644 is a working exploit without the validation5645 when accessing a specific upload via different model5646 responds with status 4045647 when the upload does not have a MIME type that Rails knows5648 falls back to the null type5649 when the model is public5650 when not signed in5651 when the file exists5652 responds with status 2005653 when neither the uploader nor the model exists5654 responds with status 4045655 when the file doesn't exist5656 responds with status 4045657 when signed in5658 when the file exists5659 responds with status 2005660 when the file doesn't exist5661 responds with status 4045662 when the model is private5663 when not signed in5664 when the file exists5665 when the file is an image5666 enforce_auth_checks_on_uploads feature flag5667 with flag enabled5668 responds with appropriate status5669 with flag disabled5670 responds with status 2005671 when the file is not an image5672 redirects to the sign in page5673 when the file doesn't exist5674 redirects to the sign in page5675 when signed in5676 when the user has access to the project5677 when the file exists5678 responds with status 2005679 when the file doesn't exist5680 responds with status 4045681 when the user doesn't have access to the model5682 when the file exists5683 when the file is an image5684 enforce_auth_checks_on_uploads feature flag5685 with flag enabled5686 responds with status 4045687 with flag disabled5688 responds with status 2005689 when the file is not an image5690 responds with status 4045691 when the file doesn't exist5692 responds with status 4045693 when the URL the old style, without /-/system5694 responds with a redirect to the login page5695 with a moved project5696 redirects to a file with the proper extension5697 when exception occurs5698 responds with status internal_server_error5699 GET #show5700 when project is private do5701 when not signed in5702 enforce_auth_checks_on_uploads feature flag5703 with flag enabled5704 when the project has setting enforce_auth_checks_on_uploads true5705 responds with status 3025706 when the project has setting enforce_auth_checks_on_uploads false5707 responds with status 2005708 with flag disabled5709 responds with status 2005710 when signed in5711 when the user doesn't have access to the model5712 enforce_auth_checks_on_uploads feature flag5713 with flag enabled5714 when the project has setting enforce_auth_checks_on_uploads true5715 responds with status 4045716 when the project has setting enforce_auth_checks_on_uploads false5717 responds with status 2005718 with flag disabled5719 responds with status 2005720 when project is public5721 when not signed in5722 enforce_auth_checks_on_uploads feature flag5723 with flag enabled5724 when the project has setting enforce_auth_checks_on_uploads true5725 responds with status 2005726 when the project has setting enforce_auth_checks_on_uploads false5727 responds with status 2005728 with flag disabled5729 responds with status 2005730 when signed in5731 when the user doesn't have access to the model5732 enforce_auth_checks_on_uploads feature flag5733 with flag enabled5734 when the project has setting enforce_auth_checks_on_uploads true5735 responds with status 2005736 when the project has setting enforce_auth_checks_on_uploads false5737 responds with status 2005738 with flag disabled5739 responds with status 2005740API::GroupDebianDistributions5741 POST groups/:id/-/debian_distributions5742 behaves like Debian distributions write endpoint5743 with valid container5744 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/5745 behaves like Debian distributions POST request5746 creates distribution5747 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil5748 behaves like Debian distributions POST request5749 returns unauthorized5750 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5751 behaves like Debian distributions POST request5752 returns forbidden5753 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5754 behaves like Debian distributions POST request5755 returns forbidden5756 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5757 behaves like Debian distributions POST request5758 returns unauthorized5759 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5760 behaves like Debian distributions POST request5761 returns unauthorized5762 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/5763 behaves like Debian distributions POST request5764 creates distribution5765 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5766 behaves like Debian distributions POST request5767 returns forbidden5768 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5769 behaves like Debian distributions POST request5770 returns not_found5771 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5772 behaves like Debian distributions POST request5773 returns not_found5774 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5775 behaves like Debian distributions POST request5776 returns unauthorized5777 behaves like rejects Debian access with unknown container id5778 with an unknown container5779 as anonymous5780 behaves like Debian packages GET request5781 returns not_found5782 behaves like Debian API FIPS mode5783 when FIPS mode is enabled5784 behaves like returning response status5785 returns not_found5786 as authenticated user5787 behaves like Debian packages GET request5788 returns not_found5789 behaves like Debian API FIPS mode5790 when FIPS mode is enabled5791 behaves like returning response status5792 returns not_found5793 GET groups/:id/-/debian_distributions5794 behaves like Debian distributions read endpoint5795 with valid container5796 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"\]/5797 behaves like Debian distributions GET request5798 returns success and expected body5799 behaves like Debian API FIPS mode5800 when FIPS mode is enabled5801 behaves like returning response status5802 returns not_found5803 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"\]/5804 behaves like Debian distributions GET request5805 returns success and expected body5806 behaves like Debian API FIPS mode5807 when FIPS mode is enabled5808 behaves like returning response status5809 returns not_found5810 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"\]/5811 behaves like Debian distributions GET request5812 returns success and expected body5813 behaves like Debian API FIPS mode5814 when FIPS mode is enabled5815 behaves like returning response status5816 returns not_found5817 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5818 behaves like Debian distributions GET request5819 returns unauthorized5820 behaves like Debian API FIPS mode5821 when FIPS mode is enabled5822 behaves like returning response status5823 returns not_found5824 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"\]/5825 behaves like Debian distributions GET request5826 returns success and expected body5827 behaves like Debian API FIPS mode5828 when FIPS mode is enabled5829 behaves like returning response status5830 returns not_found5831 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil5832 behaves like Debian distributions GET request5833 returns not_found5834 behaves like Debian API FIPS mode5835 when FIPS mode is enabled5836 behaves like returning response status5837 returns not_found5838 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5839 behaves like Debian distributions GET request5840 returns forbidden5841 behaves like Debian API FIPS mode5842 when FIPS mode is enabled5843 behaves like returning response status5844 returns not_found5845 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5846 behaves like Debian distributions GET request5847 returns not_found5848 behaves like Debian API FIPS mode5849 when FIPS mode is enabled5850 behaves like returning response status5851 returns not_found5852 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5853 behaves like Debian distributions GET request5854 returns not_found5855 behaves like Debian API FIPS mode5856 when FIPS mode is enabled5857 behaves like returning response status5858 returns not_found5859 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5860 behaves like Debian distributions GET request5861 returns unauthorized5862 behaves like Debian API FIPS mode5863 when FIPS mode is enabled5864 behaves like returning response status5865 returns not_found5866 behaves like rejects Debian access with unknown container id5867 with an unknown container5868 as anonymous5869 behaves like Debian packages GET request5870 returns not_found5871 behaves like Debian API FIPS mode5872 when FIPS mode is enabled5873 behaves like returning response status5874 returns not_found5875 as authenticated user5876 behaves like Debian packages GET request5877 returns not_found5878 behaves like Debian API FIPS mode5879 when FIPS mode is enabled5880 behaves like returning response status5881 returns not_found5882 GET groups/:id/-/debian_distributions/:codename5883 behaves like Debian distributions read endpoint5884 with valid container5885 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"\]/5886 behaves like Debian distributions GET request5887 returns success and expected body5888 behaves like Debian API FIPS mode5889 when FIPS mode is enabled5890 behaves like returning response status5891 returns not_found5892 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"\]/5893 behaves like Debian distributions GET request5894 returns success and expected body5895 behaves like Debian API FIPS mode5896 when FIPS mode is enabled5897 behaves like returning response status5898 returns not_found5899 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"\]/5900 behaves like Debian distributions GET request5901 returns success and expected body5902 behaves like Debian API FIPS mode5903 when FIPS mode is enabled5904 behaves like returning response status5905 returns not_found5906 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5907 behaves like Debian distributions GET request5908 returns unauthorized5909 behaves like Debian API FIPS mode5910 when FIPS mode is enabled5911 behaves like returning response status5912 returns not_found5913 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"\]/5914 behaves like Debian distributions GET request5915 returns success and expected body5916 behaves like Debian API FIPS mode5917 when FIPS mode is enabled5918 behaves like returning response status5919 returns not_found5920 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil5921 behaves like Debian distributions GET request5922 returns not_found5923 behaves like Debian API FIPS mode5924 when FIPS mode is enabled5925 behaves like returning response status5926 returns not_found5927 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil5928 behaves like Debian distributions GET request5929 returns forbidden5930 behaves like Debian API FIPS mode5931 when FIPS mode is enabled5932 behaves like returning response status5933 returns not_found5934 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil5935 behaves like Debian distributions GET request5936 returns not_found5937 behaves like Debian API FIPS mode5938 when FIPS mode is enabled5939 behaves like returning response status5940 returns not_found5941 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil5942 behaves like Debian distributions GET request5943 returns not_found5944 behaves like Debian API FIPS mode5945 when FIPS mode is enabled5946 behaves like returning response status5947 returns not_found5948 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5949 behaves like Debian distributions GET request5950 returns unauthorized5951 behaves like Debian API FIPS mode5952 when FIPS mode is enabled5953 behaves like returning response status5954 returns not_found5955 behaves like rejects Debian access with unknown container id5956 with an unknown container5957 as anonymous5958 behaves like Debian packages GET request5959 returns not_found5960 behaves like Debian API FIPS mode5961 when FIPS mode is enabled5962 behaves like returning response status5963 returns not_found5964 as authenticated user5965 behaves like Debian packages GET request5966 returns not_found5967 behaves like Debian API FIPS mode5968 when FIPS mode is enabled5969 behaves like returning response status5970 returns not_found5971 GET groups/:id/-/debian_distributions/:codename/key.asc5972 behaves like Debian distributions read endpoint5973 with valid container5974 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5975 behaves like Debian distributions GET request5976 returns success and expected body5977 behaves like Debian API FIPS mode5978 when FIPS mode is enabled5979 behaves like returning response status5980 returns not_found5981 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5982 behaves like Debian distributions GET request5983 returns success and expected body5984 behaves like Debian API FIPS mode5985 when FIPS mode is enabled5986 behaves like returning response status5987 returns not_found5988 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/5989 behaves like Debian distributions GET request5990 returns success and expected body5991 behaves like Debian API FIPS mode5992 when FIPS mode is enabled5993 behaves like returning response status5994 returns not_found5995 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil5996 behaves like Debian distributions GET request5997 returns unauthorized5998 behaves like Debian API FIPS mode5999 when FIPS mode is enabled6000 behaves like returning response status6001 returns not_found6002 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/6003 behaves like Debian distributions GET request6004 returns success and expected body6005 behaves like Debian API FIPS mode6006 when FIPS mode is enabled6007 behaves like returning response status6008 returns not_found6009 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil6010 behaves like Debian distributions GET request6011 returns not_found6012 behaves like Debian API FIPS mode6013 when FIPS mode is enabled6014 behaves like returning response status6015 returns not_found6016 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6017 behaves like Debian distributions GET request6018 returns forbidden6019 behaves like Debian API FIPS mode6020 when FIPS mode is enabled6021 behaves like returning response status6022 returns not_found6023 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6024 behaves like Debian distributions GET request6025 returns not_found6026 behaves like Debian API FIPS mode6027 when FIPS mode is enabled6028 behaves like returning response status6029 returns not_found6030 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6031 behaves like Debian distributions GET request6032 returns not_found6033 behaves like Debian API FIPS mode6034 when FIPS mode is enabled6035 behaves like returning response status6036 returns not_found6037 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6038 behaves like Debian distributions GET request6039 returns unauthorized6040 behaves like Debian API FIPS mode6041 when FIPS mode is enabled6042 behaves like returning response status6043 returns not_found6044 behaves like rejects Debian access with unknown container id6045 with an unknown container6046 as anonymous6047 behaves like Debian packages GET request6048 returns not_found6049 behaves like Debian API FIPS mode6050 when FIPS mode is enabled6051 behaves like returning response status6052 returns not_found6053 as authenticated user6054 behaves like Debian packages GET request6055 returns not_found6056 behaves like Debian API FIPS mode6057 when FIPS mode is enabled6058 behaves like returning response status6059 returns not_found6060 PUT groups/:id/-/debian_distributions/:codename6061 behaves like Debian distributions write endpoint6062 with valid container6063 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/6064 behaves like Debian distributions PUT request6065 updates distribution6066 behaves like Debian API FIPS mode6067 when FIPS mode is enabled6068 behaves like returning response status6069 returns not_found6070 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6071 behaves like Debian distributions PUT request6072 returns unauthorized6073 behaves like Debian API FIPS mode6074 when FIPS mode is enabled6075 behaves like returning response status6076 returns not_found6077 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6078 behaves like Debian distributions PUT request6079 returns forbidden6080 behaves like Debian API FIPS mode6081 when FIPS mode is enabled6082 behaves like returning response status6083 returns not_found6084 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6085 behaves like Debian distributions PUT request6086 returns forbidden6087 behaves like Debian API FIPS mode6088 when FIPS mode is enabled6089 behaves like returning response status6090 returns not_found6091 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6092 behaves like Debian distributions PUT request6093 returns unauthorized6094 behaves like Debian API FIPS mode6095 when FIPS mode is enabled6096 behaves like returning response status6097 returns not_found6098 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6099 behaves like Debian distributions PUT request6100 returns unauthorized6101 behaves like Debian API FIPS mode6102 when FIPS mode is enabled6103 behaves like returning response status6104 returns not_found6105 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/6106 behaves like Debian distributions PUT request6107 updates distribution6108 behaves like Debian API FIPS mode6109 when FIPS mode is enabled6110 behaves like returning response status6111 returns not_found6112 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6113 behaves like Debian distributions PUT request6114 returns forbidden6115 behaves like Debian API FIPS mode6116 when FIPS mode is enabled6117 behaves like returning response status6118 returns not_found6119 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6120 behaves like Debian distributions PUT request6121 returns not_found6122 behaves like Debian API FIPS mode6123 when FIPS mode is enabled6124 behaves like returning response status6125 returns not_found6126 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6127 behaves like Debian distributions PUT request6128 returns not_found6129 behaves like Debian API FIPS mode6130 when FIPS mode is enabled6131 behaves like returning response status6132 returns not_found6133 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6134 behaves like Debian distributions PUT request6135 returns unauthorized6136 behaves like Debian API FIPS mode6137 when FIPS mode is enabled6138 behaves like returning response status6139 returns not_found6140 behaves like rejects Debian access with unknown container id6141 with an unknown container6142 as anonymous6143 behaves like Debian packages GET request6144 returns not_found6145 behaves like Debian API FIPS mode6146 when FIPS mode is enabled6147 behaves like returning response status6148 returns not_found6149 as authenticated user6150 behaves like Debian packages GET request6151 returns not_found6152 behaves like Debian API FIPS mode6153 when FIPS mode is enabled6154 behaves like returning response status6155 returns not_found6156 DELETE groups/:id/-/debian_distributions/:codename6157 behaves like Debian distributions maintainer write endpoint6158 with valid container6159 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/6160 behaves like Debian distributions DELETE request6161 updates distribution6162 behaves like Debian API FIPS mode6163 when FIPS mode is enabled6164 behaves like returning response status6165 returns not_found6166 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6167 behaves like Debian distributions DELETE request6168 returns unauthorized6169 behaves like Debian API FIPS mode6170 when FIPS mode is enabled6171 behaves like returning response status6172 returns not_found6173 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6174 behaves like Debian distributions DELETE request6175 returns forbidden6176 behaves like Debian API FIPS mode6177 when FIPS mode is enabled6178 behaves like returning response status6179 returns not_found6180 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6181 behaves like Debian distributions DELETE request6182 returns forbidden6183 behaves like Debian API FIPS mode6184 when FIPS mode is enabled6185 behaves like returning response status6186 returns not_found6187 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6188 behaves like Debian distributions DELETE request6189 returns unauthorized6190 behaves like Debian API FIPS mode6191 when FIPS mode is enabled6192 behaves like returning response status6193 returns not_found6194 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6195 behaves like Debian distributions DELETE request6196 returns unauthorized6197 behaves like Debian API FIPS mode6198 when FIPS mode is enabled6199 behaves like returning response status6200 returns not_found6201 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/6202 behaves like Debian distributions DELETE request6203 updates distribution6204 behaves like Debian API FIPS mode6205 when FIPS mode is enabled6206 behaves like returning response status6207 returns not_found6208 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6209 behaves like Debian distributions DELETE request6210 returns forbidden6211 behaves like Debian API FIPS mode6212 when FIPS mode is enabled6213 behaves like returning response status6214 returns not_found6215 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6216 behaves like Debian distributions DELETE request6217 returns not_found6218 behaves like Debian API FIPS mode6219 when FIPS mode is enabled6220 behaves like returning response status6221 returns not_found6222 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6223 behaves like Debian distributions DELETE request6224 returns not_found6225 behaves like Debian API FIPS mode6226 when FIPS mode is enabled6227 behaves like returning response status6228 returns not_found6229 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6230 behaves like Debian distributions DELETE request6231 returns unauthorized6232 behaves like Debian API FIPS mode6233 when FIPS mode is enabled6234 behaves like returning response status6235 returns not_found6236 behaves like rejects Debian access with unknown container id6237 with an unknown container6238 as anonymous6239 behaves like Debian packages GET request6240 returns not_found6241 behaves like Debian API FIPS mode6242 when FIPS mode is enabled6243 behaves like returning response status6244 returns not_found6245 as authenticated user6246 behaves like Debian packages GET request6247 returns not_found6248 behaves like Debian API FIPS mode6249 when FIPS mode is enabled6250 behaves like returning response status6251 returns not_found6252Projects::CommitController6253 GET show6254 handles binary files6255 only loads blobs in the current page6256 with valid id6257 responds with 2006258 when a pipeline job is running6259 defines last pipeline information6260 with invalid id6261 responds with 4046262 with valid page6263 responds with 2006264 with invalid page6265 does not return an error6266 as diff6267 triggers workhorse to serve the request6268 as patch6269 contains a git diff6270 commit that removes a submodule6271 renders it6272 in the context of a merge_request6273 prepare diff notes in the context of the merge request6274 GET branches6275 contains branch and tags information6276 returns :limit_exceeded when number of branches/tags reach a threshhold6277 when commit is not found6278 responds with 4046279 POST revert6280 when target branch is not provided6281 renders the 404 page6282 when the revert commit is missing6283 renders the 404 page6284 when the revert was successful6285 redirects to the commits page6286 when the revert failed6287 redirects to the commit page6288 POST cherry_pick6289 when target branch is not provided6290 renders the 404 page6291 when the cherry-pick commit is missing6292 renders the 404 page6293 when the cherry-pick was successful6294 redirects to the commits page6295 when the cherry_pick failed6296 redirects to the commit page6297 when a project has a fork6298 successfully cherry picks a commit from fork to upstream project6299 when the cherry pick is performed via merge request6300 successfully cherry picks a commit from fork to a cherry pick branch6301 when a user cannot push to upstream project6302 cherry picks a commit to the fork6303 when a user do not have access to the target project6304 cherry picks a commit to the fork6305 GET diff_for_path6306 when the commit exists6307 when the user has access to the project6308 when the path exists in the diff6309 enables diff notes6310 only renders the diffs for the path given6311 when the path does not exist in the diff6312 returns a 4046313 when the user does not have access to the project6314 returns a 4046315 when the commit does not exist6316 returns a 4046317 GET pipelines6318 when the commit exists6319 when the commit has pipelines6320 when rendering a HTML format6321 shows pipelines6322 defines last pipeline information6323 when rendering a JSON format6324 responds with serialized pipelines6325 with pagination6326 paginates the result when ref is blank6327 paginates the result when ref is present6328 when the commit does not exist6329 returns a 4046330API::Ci::PipelineSchedules6331 GET /projects/:id/pipeline_schedules6332 authenticated user with valid permissions6333 returns list of pipeline_schedules6334 avoids N + 1 queries6335 when scope is active6336 returns matched pipeline schedules6337 when scope is inactive6338 returns matched pipeline schedules6339 authenticated user with invalid permissions6340 does not return pipeline_schedules list6341 unauthenticated user6342 does not return pipeline_schedules list6343 GET /projects/:id/pipeline_schedules/:pipeline_schedule_id6344 with private project6345 behaves like request with schedule ownership6346 authenticated user with pipeline schedule ownership6347 returns pipeline_schedule details6348 behaves like request with project permissions6349 authenticated user with project permisions6350 returns pipeline_schedule details6351 behaves like request with unauthenticated user6352 with unauthenticated user6353 does not return pipeline_schedule6354 behaves like request with non-existing pipeline_schedule6355 responds with 404 Not Found if requesting non-existing pipeline_schedule6356 authenticated user with no project permissions6357 does not return pipeline_schedule6358 authenticated user with insufficient project permissions6359 does not return pipeline_schedule6360 with public project6361 behaves like request with schedule ownership6362 authenticated user with pipeline schedule ownership6363 returns pipeline_schedule details6364 behaves like request with project permissions6365 authenticated user with project permisions6366 returns pipeline_schedule details6367 behaves like request with unauthenticated user6368 with unauthenticated user6369 does not return pipeline_schedule6370 behaves like request with non-existing pipeline_schedule6371 responds with 404 Not Found if requesting non-existing pipeline_schedule6372 authenticated user with no project permissions6373 returns pipeline_schedule with no variables6374 authenticated user with insufficient project permissions6375 returns pipeline_schedule with no variables6376 GET /projects/:id/pipeline_schedules/:pipeline_schedule_id/pipelines6377 with private project6378 behaves like request with schedule ownership6379 authenticated user with pipeline schedule ownership6380 returns the details of pipelines triggered from the pipeline schedule6381 behaves like request with project permissions6382 authenticated user with project permissions6383 returns the details of pipelines triggered from the pipeline schedule6384 behaves like request with unauthenticated user6385 with unauthenticated user6386 does not return the details of pipelines triggered from the pipeline schedule6387 behaves like request with non-existing pipeline_schedule6388 responds with 404 Not Found if requesting for a non-existing pipeline schedule's pipelines6389 authenticated user with no project permissions6390 does not return the details of pipelines triggered from the pipeline schedule6391 authenticated user with insufficient project permissions6392 does not return the details of pipelines triggered from the pipeline schedule6393 with public project6394 behaves like request with schedule ownership6395 authenticated user with pipeline schedule ownership6396 returns the details of pipelines triggered from the pipeline schedule6397 behaves like request with project permissions6398 authenticated user with project permissions6399 returns the details of pipelines triggered from the pipeline schedule6400 behaves like request with unauthenticated user6401 with unauthenticated user6402 does not return the details of pipelines triggered from the pipeline schedule6403 behaves like request with non-existing pipeline_schedule6404 responds with 404 Not Found if requesting for a non-existing pipeline schedule's pipelines6405 authenticated user with no project permissions6406 returns the details of pipelines triggered from the pipeline schedule6407 POST /projects/:id/pipeline_schedules6408 authenticated user with valid permissions6409 with required parameters6410 creates pipeline_schedule6411 without required parameters6412 does not create pipeline_schedule6413 when cron has validation error6414 does not create pipeline_schedule6415 authenticated user with invalid permissions6416 does not create pipeline_schedule6417 unauthenticated user6418 does not create pipeline_schedule6419 PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id6420 authenticated user with valid permissions6421 updates cron6422 when cron has validation error6423 does not update pipeline_schedule6424 authenticated user with invalid permissions6425 as a project maintainer6426 does not update pipeline_schedule6427 as a project owner6428 does not update pipeline_schedule6429 with no special role6430 does not update pipeline_schedule6431 unauthenticated user6432 does not update pipeline_schedule6433 POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/take_ownership6434 as an authenticated user with valid permissions6435 updates owner6436 as an authenticated user with invalid permissions6437 does not update owner6438 as an unauthenticated user6439 does not update owner6440 as the existing owner of the schedule6441 rejects the request and leaves the schedule unchanged6442 DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id6443 authenticated user with valid permissions6444 deletes pipeline_schedule6445 responds with 404 Not Found if requesting non-existing pipeline_schedule6446 behaves like 412 response6447 for a modified ressource6448 returns 412 with a JSON error6449 for an unmodified ressource6450 returns 204 with an empty body6451 authenticated user with invalid permissions6452 does not delete pipeline_schedule6453 unauthenticated user6454 does not delete pipeline_schedule6455 POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/play6456 authenticated user with `:play_pipeline_schedule` permission6457 schedules a pipeline worker6458 renders an error if scheduling failed6459 authenticated user with insufficient access6460 responds with not found6461 unauthenticated user6462 responds with unauthorized6463 POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables6464 authenticated user with valid permissions6465 with required parameters6466 creates pipeline_schedule_variable6467 without required parameters6468 does not create pipeline_schedule_variable6469 when key has validation error6470 does not create pipeline_schedule_variable6471 authenticated user with invalid permissions6472 does not create pipeline_schedule_variable6473 unauthenticated user6474 does not create pipeline_schedule_variable6475 PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key6476 authenticated user with valid permissions6477 updates pipeline_schedule_variable6478 authenticated user with invalid permissions6479 does not update pipeline_schedule_variable6480 unauthenticated user6481 does not update pipeline_schedule_variable6482 DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key6483 authenticated user with valid permissions6484 deletes pipeline_schedule_variable6485 responds with 404 Not Found if requesting non-existing pipeline_schedule_variable6486 authenticated user with invalid permissions6487 does not delete pipeline_schedule_variable6488 unauthenticated user6489 does not delete pipeline_schedule_variable6490Emails::MergeRequests6491 #new_mention_in_merge_request_email6492 has the correct subject and body6493 #merge_request_unmergeable_email6494 is sent as the merge request author6495 has the correct subject and body6496 behaves like an answer to an existing thread with reply-by-email enabled6497 has X-GitLab-Project headers6498 has X-GitLab-*-ID header6499 has X-GitLab-*-IID header if model has iid defined6500 has X-GitLab-Project headers6501 has X-GitLab-*-ID header6502 has X-GitLab-*-IID header if model has iid defined6503 has the characteristics of a threaded reply6504 when reply-by-email is enabled with incoming address with %{key}6505 has a Reply-To header6506 when reply-by-email is enabled with incoming address without %{key}6507 has X-GitLab-Project headers6508 has X-GitLab-*-ID header6509 has X-GitLab-*-IID header if model has iid defined6510 has the characteristics of a threaded reply6511 has a Reply-To header6512 behaves like a multiple recipients email6513 is sent to the given recipient6514 behaves like it should show Gmail Actions View Merge request link6515 is expected to have body including "View Merge request"6516 behaves like it should have Gmail Actions links6517 is expected to have body including "ViewAction"6518 behaves like an unsubscribeable thread6519 has a List-Unsubscribe header in the correct format, and a body link6520 behaves like an unsubscribeable thread with incoming address without %{key}6521 has a List-Unsubscribe header in the correct format, and a body link6522 behaves like appearance header and footer enabled6523 contains header and footer6524 behaves like appearance header and footer not enabled6525 does not contain header and footer6526 #closed_merge_request_email6527 is sent as the author6528 has the correct subject and body6529 behaves like an answer to an existing thread with reply-by-email enabled6530 has X-GitLab-Project headers6531 has X-GitLab-*-ID header6532 has X-GitLab-*-IID header if model has iid defined6533 has X-GitLab-Project headers6534 has X-GitLab-*-ID header6535 has X-GitLab-*-IID header if model has iid defined6536 has the characteristics of a threaded reply6537 when reply-by-email is enabled with incoming address with %{key}6538 has a Reply-To header6539 when reply-by-email is enabled with incoming address without %{key}6540 has X-GitLab-Project headers6541 has X-GitLab-*-ID header6542 has X-GitLab-*-IID header if model has iid defined6543 has the characteristics of a threaded reply6544 has a Reply-To header6545 behaves like it should show Gmail Actions View Merge request link6546 is expected to have body including "View Merge request"6547 behaves like it should have Gmail Actions links6548 is expected to have body including "ViewAction"6549 behaves like an unsubscribeable thread6550 has a List-Unsubscribe header in the correct format, and a body link6551 behaves like an unsubscribeable thread with incoming address without %{key}6552 has a List-Unsubscribe header in the correct format, and a body link6553 behaves like appearance header and footer enabled6554 contains header and footer6555 behaves like appearance header and footer not enabled6556 does not contain header and footer6557 #merged_merge_request_email6558 is sent as the merge author6559 has the correct subject and body6560 behaves like a multiple recipients email6561 is sent to the given recipient6562 behaves like an answer to an existing thread with reply-by-email enabled6563 has X-GitLab-Project headers6564 has X-GitLab-*-ID header6565 has X-GitLab-*-IID header if model has iid defined6566 has X-GitLab-Project headers6567 has X-GitLab-*-ID header6568 has X-GitLab-*-IID header if model has iid defined6569 has the characteristics of a threaded reply6570 when reply-by-email is enabled with incoming address with %{key}6571 has a Reply-To header6572 when reply-by-email is enabled with incoming address without %{key}6573 has X-GitLab-Project headers6574 has X-GitLab-*-ID header6575 has X-GitLab-*-IID header if model has iid defined6576 has the characteristics of a threaded reply6577 has a Reply-To header6578 behaves like it should show Gmail Actions View Merge request link6579 is expected to have body including "View Merge request"6580 behaves like it should have Gmail Actions links6581 is expected to have body including "ViewAction"6582 behaves like an unsubscribeable thread6583 has a List-Unsubscribe header in the correct format, and a body link6584 behaves like an unsubscribeable thread with incoming address without %{key}6585 has a List-Unsubscribe header in the correct format, and a body link6586 behaves like appearance header and footer enabled6587 contains header and footer6588 behaves like appearance header and footer not enabled6589 does not contain header and footer6590 #merge_request_status_email6591 is sent as the author6592 has the correct subject and body6593 behaves like an answer to an existing thread with reply-by-email enabled6594 has X-GitLab-Project headers6595 has X-GitLab-*-ID header6596 has X-GitLab-*-IID header if model has iid defined6597 has X-GitLab-Project headers6598 has X-GitLab-*-ID header6599 has X-GitLab-*-IID header if model has iid defined6600 has the characteristics of a threaded reply6601 when reply-by-email is enabled with incoming address with %{key}6602 has a Reply-To header6603 when reply-by-email is enabled with incoming address without %{key}6604 has X-GitLab-Project headers6605 has X-GitLab-*-ID header6606 has X-GitLab-*-IID header if model has iid defined6607 has the characteristics of a threaded reply6608 has a Reply-To header6609 behaves like it should show Gmail Actions View Merge request link6610 is expected to have body including "View Merge request"6611 behaves like it should have Gmail Actions links6612 is expected to have body including "ViewAction"6613 behaves like an unsubscribeable thread6614 has a List-Unsubscribe header in the correct format, and a body link6615 behaves like an unsubscribeable thread with incoming address without %{key}6616 has a List-Unsubscribe header in the correct format, and a body link6617 behaves like appearance header and footer enabled6618 contains header and footer6619 behaves like appearance header and footer not enabled6620 does not contain header and footer6621 #merge_when_pipeline_succeeds_email6622 has required details6623 #approved_merge_request_email6624 has the correct body6625 #unapproved_merge_request_email6626 has the correct body6627 #resolved_all_discussions_email6628 includes the name of the resolver6629 #merge_requests_csv_email6630 is expected to eq "project859 | Exported merge requests"6631 is expected to contain exactly "notifications@example.com"6632 is expected to have text "Your CSV export of 10 merge requests from project"6633 is expected to have text "Your CSV export of 10 merge requests from project"6634 when truncated6635 is expected to have text "attachment has been truncated to avoid exceeding the maximum allowed attachment size of 15 MB."6636GroupsController6637 token authentication6638 when public group6639 behaves like authenticates sessionless user for the request spec6640 show atom6641 when the 'private_token' param is populated with the personal access token6642 when valid token6643 when resource is public6644 authenticates user and returns response with ok status6645 when user with expired password6646 does not authenticate user and returns response with ok status6647 when the personal access token has no api scope6648 when resource is public6649 does not authenticate user and returns response with ok status6650 when invalid token6651 when resource is public6652 does not authenticate user and returns response with ok status6653 when the 'PRIVATE-TOKEN' header is populated with the personal access token6654 when valid token6655 when resource is public6656 authenticates user and returns response with ok status6657 when user with expired password6658 does not authenticate user and returns response with ok status6659 when the personal access token has no api scope6660 when resource is public6661 does not authenticate user and returns response with ok status6662 when invalid token6663 when resource is public6664 does not authenticate user and returns response with ok status6665 when the 'feed_token' param is populated with the feed token6666 when valid token6667 when resource is public6668 authenticates user and returns response with ok status6669 when user with expired password6670 does not authenticate user and returns response with ok status6671 when invalid token6672 when resource is public6673 does not authenticate user and returns response with ok status6674 behaves like authenticates sessionless user for the request spec6675 issues atom6676 when the 'private_token' param is populated with the personal access token6677 when valid token6678 when resource is public6679 authenticates user and returns response with ok status6680 when user with expired password6681 does not authenticate user and returns response with ok status6682 when the personal access token has no api scope6683 when resource is public6684 does not authenticate user and returns response with ok status6685 when invalid token6686 when resource is public6687 does not authenticate user and returns response with ok status6688 when the 'PRIVATE-TOKEN' header is populated with the personal access token6689 when valid token6690 when resource is public6691 authenticates user and returns response with ok status6692 when user with expired password6693 does not authenticate user and returns response with ok status6694 when the personal access token has no api scope6695 when resource is public6696 does not authenticate user and returns response with ok status6697 when invalid token6698 when resource is public6699 does not authenticate user and returns response with ok status6700 when the 'feed_token' param is populated with the feed token6701 when valid token6702 when resource is public6703 authenticates user and returns response with ok status6704 when user with expired password6705 does not authenticate user and returns response with ok status6706 when invalid token6707 when resource is public6708 does not authenticate user and returns response with ok status6709 behaves like authenticates sessionless user for the request spec6710 issues_calendar ics6711 when the 'private_token' param is populated with the personal access token6712 when valid token6713 when resource is public6714 authenticates user and returns response with ok status6715 when user with expired password6716 does not authenticate user and returns response with ok status6717 when the personal access token has no api scope6718 when resource is public6719 does not authenticate user and returns response with ok status6720 when invalid token6721 when resource is public6722 does not authenticate user and returns response with ok status6723 when the 'PRIVATE-TOKEN' header is populated with the personal access token6724 when valid token6725 when resource is public6726 authenticates user and returns response with ok status6727 when user with expired password6728 does not authenticate user and returns response with ok status6729 when the personal access token has no api scope6730 when resource is public6731 does not authenticate user and returns response with ok status6732 when invalid token6733 when resource is public6734 does not authenticate user and returns response with ok status6735 when the 'feed_token' param is populated with the feed token6736 when valid token6737 when resource is public6738 authenticates user and returns response with ok status6739 when user with expired password6740 does not authenticate user and returns response with ok status6741 when invalid token6742 when resource is public6743 does not authenticate user and returns response with ok status6744 when private project6745 behaves like authenticates sessionless user for the request spec6746 show atom6747 when the 'private_token' param is populated with the personal access token6748 when valid token6749 when resource is private6750 authenticates user and returns response with ok status6751 when user with expired password6752 does not return response with ok status6753 when password expiration is not applicable6754 when ldap user6755 authenticates user and returns response with ok status6756 when the personal access token has no api scope6757 when resource is private6758 does not return response with ok status6759 when invalid token6760 when resource is private6761 does not return response with ok status6762 when the 'PRIVATE-TOKEN' header is populated with the personal access token6763 when valid token6764 when resource is private6765 authenticates user and returns response with ok status6766 when user with expired password6767 does not return response with ok status6768 when password expiration is not applicable6769 when ldap user6770 authenticates user and returns response with ok status6771 when the personal access token has no api scope6772 when resource is private6773 does not return response with ok status6774 when invalid token6775 when resource is private6776 does not return response with ok status6777 when the 'feed_token' param is populated with the feed token6778 when valid token6779 when resource is private6780 authenticates user and returns response with ok status6781 when user with expired password6782 does not return response with ok status6783 when password expiration is not applicable6784 when ldap user6785 authenticates user and returns response with ok status6786 when invalid token6787 when resource is private6788 does not return response with ok status6789 behaves like authenticates sessionless user for the request spec6790 issues atom6791 when the 'private_token' param is populated with the personal access token6792 when valid token6793 when resource is private6794 authenticates user and returns response with ok status6795 when user with expired password6796 does not return response with ok status6797 when password expiration is not applicable6798 when ldap user6799 authenticates user and returns response with ok status6800 when the personal access token has no api scope6801 when resource is private6802 does not return response with ok status6803 when invalid token6804 when resource is private6805 does not return response with ok status6806 when the 'PRIVATE-TOKEN' header is populated with the personal access token6807 when valid token6808 when resource is private6809 authenticates user and returns response with ok status6810 when user with expired password6811 does not return response with ok status6812 when password expiration is not applicable6813 when ldap user6814 authenticates user and returns response with ok status6815 when the personal access token has no api scope6816 when resource is private6817 does not return response with ok status6818 when invalid token6819 when resource is private6820 does not return response with ok status6821 when the 'feed_token' param is populated with the feed token6822 when valid token6823 when resource is private6824 authenticates user and returns response with ok status6825 when user with expired password6826 does not return response with ok status6827 when password expiration is not applicable6828 when ldap user6829 authenticates user and returns response with ok status6830 when invalid token6831 when resource is private6832 does not return response with ok status6833 behaves like authenticates sessionless user for the request spec6834 issues_calendar ics6835 when the 'private_token' param is populated with the personal access token6836 when valid token6837 when resource is private6838 authenticates user and returns response with ok status6839 when user with expired password6840 does not return response with ok status6841 when password expiration is not applicable6842 when ldap user6843 authenticates user and returns response with ok status6844 when the personal access token has no api scope6845 when resource is private6846 does not return response with ok status6847 when invalid token6848 when resource is private6849 does not return response with ok status6850 when the 'PRIVATE-TOKEN' header is populated with the personal access token6851 when valid token6852 when resource is private6853 authenticates user and returns response with ok status6854 when user with expired password6855 does not return response with ok status6856 when password expiration is not applicable6857 when ldap user6858 authenticates user and returns response with ok status6859 when the personal access token has no api scope6860 when resource is private6861 does not return response with ok status6862 when invalid token6863 when resource is private6864 does not return response with ok status6865 when the 'feed_token' param is populated with the feed token6866 when valid token6867 when resource is private6868 authenticates user and returns response with ok status6869 when user with expired password6870 does not return response with ok status6871 when password expiration is not applicable6872 when ldap user6873 authenticates user and returns response with ok status6874 when invalid token6875 when resource is private6876 does not return response with ok status6877Projects::Settings::CiCdController6878 as a maintainer6879 GET show6880 renders show with 200 status code6881 with CI/CD disabled6882 renders show with 404 status code6883 with group runners6884 sets assignable project runners only6885 prevents N+1 queries for tags6886 has the same number of queries with one tag or with many tags6887 #reset_cache6888 calls reset project cache service6889 when service returns successfully6890 returns a success header6891 when service does not return successfully6892 returns an error header6893 PUT #reset_registration_token6894 resets runner registration token6895 redirects the user to admin runners page6896 PATCH update6897 redirects to the settings page6898 when updating the auto_devops settings6899 following the instance default6900 allows enabled to be set to nil6901 when run_auto_devops_pipeline is true6902 when the project repository is empty6903 sets a notice flash6904 does not queue a CreatePipelineWorker6905 when the project repository is not empty6906 displays a toast message6907 queues a CreatePipelineWorker6908 creates a pipeline6909 when run_auto_devops_pipeline is not true6910 does not queue a CreatePipelineWorker6911 when updating general settings6912 when build_timeout_human_readable is not specified6913 set default timeout6914 when build_timeout_human_readable is specified6915 set specified timeout6916 when build_timeout_human_readable is invalid6917 set specified timeout6918 when default_git_depth is not specified6919 set specified git depth6920 when forward_deployment_enabled is not specified6921 sets forward deployment enabled6922 when max_artifacts_size is specified6923 and user is not an admin6924 does not set max_artifacts_size6925 and user is an admin6926 with admin mode disabled6927 does not set max_artifacts_size6928 with admin mode enabled6929 sets max_artifacts_size6930 GET #runner_setup_scripts6931 renders the setup scripts6932 renders errors if they occur6933 as a developer6934 responds with 4046935 as a reporter6936 responds with 4046937 as an unauthenticated user6938 redirects to sign in6939GitLab metrics server6940 behaves like spawns a server6941 targeting puma when using Golang server is true6942 behaves like serves metrics endpoint6943 serves /metrics endpoint6944 when using Pathname instance as target directory6945 behaves like serves metrics endpoint6946 serves /metrics endpoint6947 behaves like spawns a server6948 targeting puma when using Golang server is false6949 behaves like serves metrics endpoint6950 serves /metrics endpoint6951 when using Pathname instance as target directory6952 behaves like serves metrics endpoint6953 serves /metrics endpoint6954 behaves like spawns a server6955 targeting sidekiq when using Golang server is true6956 behaves like serves metrics endpoint6957 serves /metrics endpoint6958 when using Pathname instance as target directory6959 behaves like serves metrics endpoint6960 serves /metrics endpoint6961 behaves like spawns a server6962 targeting sidekiq when using Golang server is false6963 behaves like serves metrics endpoint6964 serves /metrics endpoint6965 when using Pathname instance as target directory6966 behaves like serves metrics endpoint6967 serves /metrics endpoint6968HealthController6969 GET /-/health6970 accessed from whitelisted ip6971 behaves like endpoint responding with health data6972 responds with health checks data6973 behaves like endpoint not querying database6974 does not query database6975 accessed from not whitelisted ip6976 behaves like endpoint not querying database6977 does not query database6978 behaves like endpoint not found6979 responds with resource not found6980 GET /-/readiness6981 accessed from whitelisted ip6982 behaves like endpoint not querying database6983 does not query database6984 behaves like endpoint responding with readiness data6985 when requesting instance-checks6986 when Puma runs in Clustered mode6987 responds with readiness checks data6988 responds with readiness checks data when a failure happens6989 when Puma runs in Single mode6990 does not invoke MasterCheck, succeedes6991 when requesting all checks6992 when Puma runs in Clustered mode6993 behaves like endpoint responding with readiness data for all checks6994 responds with readiness checks data6995 responds with readiness checks data when a failure happens6996 when DB is not accessible and connection raises an exception6997 responds with 500 including the exception info6998 when any exception happens during the probing6999 responds with 500 including the exception info7000 when Puma runs in Single mode7001 behaves like endpoint responding with readiness data for all checks7002 responds with readiness checks data7003 responds with readiness checks data when a failure happens7004 when DB is not accessible and connection raises an exception7005 responds with 500 including the exception info7006 when any exception happens during the probing7007 responds with 500 including the exception info7008 when requesting all checks7009 behaves like endpoint querying database7010 does query database7011 accessed from not whitelisted ip7012 behaves like endpoint not querying database7013 does not query database7014 behaves like endpoint not found7015 responds with resource not found7016 accessed with valid token7017 token passed in request header7018 behaves like endpoint responding with readiness data7019 when requesting instance-checks7020 when Puma runs in Clustered mode7021 responds with readiness checks data7022 responds with readiness checks data when a failure happens7023 when Puma runs in Single mode7024 does not invoke MasterCheck, succeedes7025 when requesting all checks7026 when Puma runs in Clustered mode7027 behaves like endpoint responding with readiness data for all checks7028 responds with readiness checks data7029 responds with readiness checks data when a failure happens7030 when DB is not accessible and connection raises an exception7031 responds with 500 including the exception info7032 when any exception happens during the probing7033 responds with 500 including the exception info7034 when Puma runs in Single mode7035 behaves like endpoint responding with readiness data for all checks7036 responds with readiness checks data7037 responds with readiness checks data when a failure happens7038 when DB is not accessible and connection raises an exception7039 responds with 500 including the exception info7040 when any exception happens during the probing7041 responds with 500 including the exception info7042 behaves like endpoint querying database7043 does query database7044 token passed as URL param7045 behaves like endpoint responding with readiness data7046 when requesting instance-checks7047 when Puma runs in Clustered mode7048 responds with readiness checks data7049 responds with readiness checks data when a failure happens7050 when Puma runs in Single mode7051 does not invoke MasterCheck, succeedes7052 when requesting all checks7053 when Puma runs in Clustered mode7054 behaves like endpoint responding with readiness data for all checks7055 responds with readiness checks data7056 responds with readiness checks data when a failure happens7057 when DB is not accessible and connection raises an exception7058 responds with 500 including the exception info7059 when any exception happens during the probing7060 responds with 500 including the exception info7061 when Puma runs in Single mode7062 behaves like endpoint responding with readiness data for all checks7063 responds with readiness checks data7064 responds with readiness checks data when a failure happens7065 when DB is not accessible and connection raises an exception7066 responds with 500 including the exception info7067 when any exception happens during the probing7068 responds with 500 including the exception info7069 behaves like endpoint querying database7070 does query database7071 GET /-/liveness7072 accessed from whitelisted ip7073 behaves like endpoint not querying database7074 does not query database7075 behaves like endpoint responding with liveness data7076 responds with liveness checks data7077 accessed from not whitelisted ip7078 behaves like endpoint not querying database7079 does not query database7080 behaves like endpoint not found7081 responds with resource not found7082 accessed with valid token7083 token passed in request header7084 behaves like endpoint responding with liveness data7085 responds with liveness checks data7086 behaves like endpoint querying database7087 does query database7088 token passed as URL param7089 behaves like endpoint responding with liveness data7090 responds with liveness checks data7091 behaves like endpoint querying database7092 does query database7093Updating the package settings7094 post graphql mutation7095 with existing package settings7096 user_role: :maintainer, shared_examples_name: "accepting the mutation request updating the package settings"7097 behaves like accepting the mutation request updating the package settings7098 behaves like updating the namespace package setting attributes7099 updates the namespace package setting7100 behaves like not creating the namespace package setting7101 doesn't create the namespace package setting7102 behaves like returning a success7103 returns the updated package settings7104 behaves like returning response status7105 returns success7106 behaves like rejecting invalid regex7107 for field mavenDuplicateExceptionRegex7108 returns an error7109 behaves like returning response status7110 returns success7111 behaves like not creating the namespace package setting7112 doesn't create the namespace package setting7113 user_role: :developer, shared_examples_name: "denying the mutation request"7114 behaves like denying the mutation request7115 returns no response7116 behaves like not creating the namespace package setting7117 doesn't create the namespace package setting7118 behaves like returning response status7119 returns success7120 user_role: :reporter, shared_examples_name: "denying the mutation request"7121 behaves like denying the mutation request7122 returns no response7123 behaves like not creating the namespace package setting7124 doesn't create the namespace package setting7125 behaves like returning response status7126 returns success7127 user_role: :guest, shared_examples_name: "denying the mutation request"7128 behaves like denying the mutation request7129 returns no response7130 behaves like not creating the namespace package setting7131 doesn't create the namespace package setting7132 behaves like returning response status7133 returns success7134 user_role: :anonymous, shared_examples_name: "denying the mutation request"7135 behaves like denying the mutation request7136 returns no response7137 behaves like not creating the namespace package setting7138 doesn't create the namespace package setting7139 behaves like returning response status7140 returns success7141 without existing package settings7142 user_role: :maintainer, shared_examples_name: "accepting the mutation request creating the package settings"7143 behaves like accepting the mutation request creating the package settings7144 behaves like creating the namespace package setting7145 creates a new package setting7146 saves the settings7147 behaves like returning a success7148 returns the updated package settings7149 behaves like returning response status7150 returns success7151 behaves like returning a success7152 returns the updated package settings7153 behaves like returning response status7154 returns success7155 behaves like rejecting invalid regex7156 for field mavenDuplicateExceptionRegex7157 returns an error7158 behaves like returning response status7159 returns success7160 behaves like not creating the namespace package setting7161 doesn't create the namespace package setting7162 user_role: :developer, shared_examples_name: "denying the mutation request"7163 behaves like denying the mutation request7164 returns no response7165 behaves like not creating the namespace package setting7166 doesn't create the namespace package setting7167 behaves like returning response status7168 returns success7169 user_role: :reporter, shared_examples_name: "denying the mutation request"7170 behaves like denying the mutation request7171 returns no response7172 behaves like not creating the namespace package setting7173 doesn't create the namespace package setting7174 behaves like returning response status7175 returns success7176 user_role: :guest, shared_examples_name: "denying the mutation request"7177 behaves like denying the mutation request7178 returns no response7179 behaves like not creating the namespace package setting7180 doesn't create the namespace package setting7181 behaves like returning response status7182 returns success7183 user_role: :anonymous, shared_examples_name: "denying the mutation request"7184 behaves like denying the mutation request7185 returns no response7186 behaves like not creating the namespace package setting7187 doesn't create the namespace package setting7188 behaves like returning response status7189 returns success7190Projects::VariablesController7191 GET #show7192 renders the variables as json7193 has only one variable7194 PATCH #update7195 with invalid new variable parameters7196 does not update the existing variable7197 does not create the new variable7198 returns a bad request response7199 with duplicate new variable parameters7200 does not update the existing variable7201 does not create the new variable7202 returns a bad request response7203 with valid new variable parameters7204 updates the existing variable7205 creates the new variable7206 returns a successful response7207 has all variables in response7208 with a deleted variable7209 destroys the variable7210 returns a successful response7211 has all variables in response7212 with missing variable7213 returns not found response7214 for variables of type file7215 creates new variable of type file7216 with environment scope7217 with same key and different environment scope7218 does not update the existing variable7219 creates the new variable7220 returns a successful response including all variables7221 with same key and same environment scope7222 does not update the existing variable7223 does not create the new variable7224 returns a bad request response7225Projects::RawController7226 GET #show7227 regular filename7228 delivers ASCII file7229 makes a single Gitaly request7230 behaves like project cache control headers7231 when project is public7232 returns cache_control public header to true7233 when project is private7234 returns cache_control public header to true7235 when project is internal7236 returns cache_control public header to true7237 behaves like content disposition headers7238 sets content disposition to inline7239 when inline param is false7240 sets content disposition to attachment7241 image header7242 leaves image content disposition7243 makes a single Gitaly request7244 behaves like project cache control headers7245 when project is public7246 returns cache_control public header to true7247 when project is private7248 returns cache_control public header to true7249 when project is internal7250 returns cache_control public header to true7251 behaves like content disposition headers7252 sets content disposition to inline7253 when inline param is false7254 sets content disposition to attachment7255 with LFS files7256 makes a single Gitaly request7257 behaves like a controller that can serve LFS files7258 when lfs is enabled7259 when the project is linked to the LfsObject7260 serves the file7261 and lfs uses object storage7262 responds with redirect to file7263 sets content disposition7264 when project is not linked to the LfsObject7265 does not serve the file7266 when the project is part of a fork network7267 when the project is the root of the fork network7268 behaves like a controller that correctly serves lfs files within a fork network7269 is expected not to eq #<Project id:877 namespace862/project888>>7270 does not serve the file if no members are linked to the LfsObject7271 serves the file when the fork network root is linked to the LfsObject7272 serves the file when the fork network member is linked to the LfsObject7273 when the project is a downstream member of the fork network7274 behaves like a controller that correctly serves lfs files within a fork network7275 is expected not to eq #<Project id:882 namespace867/project893>>7276 does not serve the file if no members are linked to the LfsObject7277 serves the file when the fork network root is linked to the LfsObject7278 serves the file when the fork network member is linked to the LfsObject7279 when lfs is not enabled7280 delivers ASCII file7281 behaves like project cache control headers7282 when project is public7283 returns cache_control public header to true7284 when project is private7285 returns cache_control public header to true7286 when project is internal7287 returns cache_control public header to true7288 when the endpoint receives requests above the limit7289 prevents from accessing the raw file7290 when receiving an external storage request7291 does not prevent from accessing the raw file7292 as a sessionless user7293 when no token is provided7294 redirects to sign in page7295 when a token param is present7296 when token is correct7297 calls the action normally7298 when user with expired password7299 redirects to sign in page7300 when password expiration is not applicable7301 when ldap user7302 calls the action normally7303 when token is incorrect7304 redirects to sign in page7305 when a token header is present7306 when token is correct7307 calls the action normally7308 when user with expired password7309 redirects to sign in page7310 when password expiration is not applicable7311 when ldap user7312 calls the action normally7313 when token is incorrect7314 redirects to sign in page7315 caching7316 sets appropriate caching headers7317 when a public project has private repo7318 does not set public caching header7319 when If-None-Match header is set7320 returns a 304 status7321Groups::ReleasesController7322 GET #index7323 as json7324 json_response7325 returns an application/json content_type7326 returns OK7327 the user is not authorized7328 does not return any releases7329 returns OK7330 the user is authorized7331 returns all group's public and private project's releases as JSON, ordered by released_at7332 N+1 queries7333 avoids N+1 database queries7334Toggling an AwardEmoji7335 when the user has permission7336 when the given awardable is not an Awardable7337 behaves like a mutation that does not create or destroy an AwardEmoji7338 is expected not to change `AwardEmoji.count`7339 behaves like a mutation that returns top-level errors7340 is expected to include /was provided invalid value for awardableId/7341 when the given awardable is an Awardable but still cannot be awarded an emoji7342 behaves like a mutation that does not create or destroy an AwardEmoji7343 is expected not to change `AwardEmoji.count`7344 behaves like a mutation that returns top-level errors7345 is expected to contain exactly "You cannot award emoji to this resource."7346 when the given awardable is an Awardable7347 when no emoji has been awarded by the current_user yet7348 creates an emoji7349 returns the emoji7350 returns toggledOn as true7351 marking Todos as done7352 type: :issue, expectation: true7353 is expected to eq true7354 type: :merge_request, expectation: true7355 is expected to eq true7356 type: :project_snippet, expectation: false7357 is expected to eq false7358 for notes7359 regular Notes7360 marks the Todo as done7361 PersonalSnippet Notes7362 does not mark the Todo as done7363 when there were active record validation errors7364 returns an empty awardEmoji7365 behaves like a mutation that does not create or destroy an AwardEmoji7366 is expected not to change `AwardEmoji.count`7367 behaves like a mutation that returns errors in the response7368 is expected to contain exactly "Error 1" and "Error 2"7369 when an emoji has been awarded by the current_user7370 removes the emoji7371 returns no errors7372 returns an empty awardEmoji7373 returns toggledOn as false7374 when the user does not have permission7375 behaves like a mutation that does not create or destroy an AwardEmoji7376 is expected not to change `AwardEmoji.count`7377 behaves like a mutation that returns a top-level access error7378 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"7379getting Alert Management Alerts7380 with alert data7381 without project permissions7382 is expected to equal nil7383 behaves like a working graphql query7384 returns a successful response7385 with project permissions7386 is expected to eq 27387 returns the correct properties of the alerts7388 behaves like a working graphql query7389 returns a successful response7390 with iid given7391 is expected to eq 17392 is expected to eq "1"7393 behaves like a working graphql query7394 returns a successful response7395 with statuses given7396 is expected to eq 17397 is expected to eq "2"7398 behaves like a working graphql query7399 returns a successful response7400 sorting data given7401 sorts in the correct order7402 behaves like a working graphql query7403 returns a successful response7404 ascending order7405 sorts in the correct order7406 searching7407 is expected to eq 17408 is expected to eq "1"7409 behaves like a working graphql query7410 returns a successful response7411 unknown criteria7412 is expected to eq 07413 assignee_username7414 is expected to eq "2"7415 behaves like a working graphql query7416 returns a successful response7417Update a work item7418 the user is not allowed to update a work item7419 behaves like a mutation that returns a top-level access error7420 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"7421 when user has permissions to update a work item7422 behaves like has spam protection7423 #check_spam_action_response!7424 when the object is spam (DISALLOW)7425 and no CAPTCHA is available7426 behaves like disallow response7427 informs the client that the request was denied as spam7428 and a CAPTCHA is required7429 behaves like disallow response7430 informs the client that the request was denied as spam7431 when the object is not spam (CONDITIONAL ALLOW)7432 and no CAPTCHA is required7433 does not return a top-level error7434 and a CAPTCHA is required7435 informs the client that the request may be retried after solving the CAPTCHA7436 when the work item is open7437 closes and updates the work item7438 when the work item is closed7439 reopens the work item7440 when updating confidentiality7441 when setting as confidential7442 behaves like toggling confidentiality7443 successfully updates work item7444 when setting as non-confidential7445 behaves like toggling confidentiality7446 successfully updates work item7447 with description widget input7448 behaves like update work item description widget7449 updates the description widget7450 when the updated work item is not valid7451 returns validation errors without the work item7452 with hierarchy widget input7453 when updating parent7454 when parent work item type is invalid7455 returns response with errors7456 when parent work item has a valid type7457 sets the parent for the work item7458 when a parent is already present7459 is replaced with new parent7460 when parentId is null7461 when parent is present7462 removes parent and returns success message7463 when parent is not present7464 does not change work item and returns success message7465 when parent work item is not found7466 returns a top level error7467 when updating children7468 when child work item type is invalid7469 returns response with errors7470 when there is a mix of existing and non existing work items7471 returns a top level error and does not add valid work item7472 when child work item type is valid7473 updates the work item children7474 when unsupported widget input is sent7475 behaves like a mutation that returns top-level errors7476 is expected to contain exactly "Following widget keys are not supported by some_test_case_name type: [:hierarchy_widget]"7477 when the work_items feature flag is disabled7478 does not update the work item and returns and error7479Oauth::ApplicationsController7480 project members7481 GET #new7482 is expected to respond with numeric status code ok7483 behaves like redirects to login page when the user is not signed in7484 is expected to redirect to "/users/sign_in"7485 behaves like redirects to 2fa setup page when the user requires it7486 when 2fa is set up on application level7487 is expected to redirect to "/-/profile/two_factor_auth"7488 when 2fa is set up on group level7489 is expected to redirect to "/-/profile/two_factor_auth"7490 DELETE #destroy7491 is expected to redirect to "http://test.host/oauth/applications"7492 behaves like redirects to login page when the user is not signed in7493 is expected to redirect to "/users/sign_in"7494 behaves like redirects to 2fa setup page when the user requires it7495 when 2fa is set up on application level7496 is expected to redirect to "/-/profile/two_factor_auth"7497 when 2fa is set up on group level7498 is expected to redirect to "/-/profile/two_factor_auth"7499 GET #edit7500 is expected to respond with numeric status code ok7501 behaves like redirects to login page when the user is not signed in7502 is expected to redirect to "/users/sign_in"7503 behaves like redirects to 2fa setup page when the user requires it7504 when 2fa is set up on application level7505 is expected to redirect to "/-/profile/two_factor_auth"7506 when 2fa is set up on group level7507 is expected to redirect to "/-/profile/two_factor_auth"7508 PUT #update7509 is expected to redirect to "http://test.host/oauth/applications/10"7510 behaves like redirects to login page when the user is not signed in7511 is expected to redirect to "/users/sign_in"7512 behaves like redirects to 2fa setup page when the user requires it7513 when 2fa is set up on application level7514 is expected to redirect to "/-/profile/two_factor_auth"7515 when 2fa is set up on group level7516 is expected to redirect to "/-/profile/two_factor_auth"7517 GET #show7518 is expected to respond with numeric status code ok7519 behaves like redirects to login page when the user is not signed in7520 is expected to redirect to "/users/sign_in"7521 behaves like redirects to 2fa setup page when the user requires it7522 when 2fa is set up on application level7523 is expected to redirect to "/-/profile/two_factor_auth"7524 when 2fa is set up on group level7525 is expected to redirect to "/-/profile/two_factor_auth"7526 GET #index7527 is expected to respond with numeric status code ok7528 when OAuth applications are disabled7529 is expected to respond with numeric status code ok7530 behaves like redirects to login page when the user is not signed in7531 is expected to redirect to "/users/sign_in"7532 behaves like redirects to 2fa setup page when the user requires it7533 when 2fa is set up on application level7534 is expected to redirect to "/-/profile/two_factor_auth"7535 when 2fa is set up on group level7536 is expected to redirect to "/-/profile/two_factor_auth"7537 POST #create7538 creates an application7539 redirects back to profile page if OAuth applications are disabled7540 when redirect_uri is invalid7541 shows an error for a forbidden URI7542 when scopes are not present7543 shows an error for blank scopes7544 when scopes are invalid7545 shows an error for invalid scopes7546 behaves like redirects to login page when the user is not signed in7547 is expected to redirect to "/users/sign_in"7548 behaves like redirects to 2fa setup page when the user requires it7549 when 2fa is set up on application level7550 is expected to redirect to "/-/profile/two_factor_auth"7551 when 2fa is set up on group level7552 is expected to redirect to "/-/profile/two_factor_auth"7553 Helpers7554 current_user_mode available7555 includes Two-factor enforcement concern7556 locale7557 sets user's locale7558Updating an image DiffNote7559 when the user does not have permission7560 does not update the DiffNote7561 behaves like a mutation that returns a top-level access error7562 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"7563 when the user has permission7564DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7565DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7566 updates the DiffNote7567DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7568DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7569 returns the updated DiffNote7570 updating single properties at a time7571 property: :body, new_value: "foo"7572DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7573DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7574 updates the DiffNote correctly7575 property: :width, new_value: 197576DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7577DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7578 updates the DiffNote correctly7579 property: :height, new_value: 187580DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7581DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7582 updates the DiffNote correctly7583 property: :x, new_value: 177584DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7585DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7586 updates the DiffNote correctly7587 property: :y, new_value: 167588DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7589DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7590 updates the DiffNote correctly7591 when position is nil7592DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7593DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7594 updates the DiffNote correctly7595 when both body and position args are blank7596 behaves like a mutation that returns top-level errors7597 is expected to contain exactly "body or position arguments are required"7598 when the resource is not a Note7599 behaves like a Note mutation when the given resource id is not for a Note7600 behaves like a mutation that returns top-level errors7601 is expected to include /does not represent an instance of Note/7602 when resource is not a DiffNote on an image7603 behaves like a mutation that returns top-level errors7604 is expected to contain exactly "Resource is not an ImageDiffNote"7605 when there are ActiveRecord validation errors7606DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7607DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7608 does not update the DiffNote7609DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7610DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7611 returns the DiffNote with its original body7612 behaves like a mutation that returns errors in the response7613DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7614DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7615 is expected to contain exactly "Error 1" and "Error 2"7616 when body only contains quick actions7617 returns a nil note and empty errors7618Projects::Releases::EvidencesController7619 GET #show7620 when the user is a developer7621 returns the correct evidence summary as a json7622 when the release was created before evidence existed7623 behaves like not found7624 renders 4047625 when the user is a guest for the project7626 when the project is private7627 behaves like not found7628 renders 4047629 when the project is public7630 behaves like successful request7631 renders a 2007632 when release is associated to a milestone which includes an issue7633 when user is non-project member7634 behaves like does not show the issue in evidence7635 is expected to eq true7636 when project is private7637 behaves like evidence not found7638 is expected to respond with numeric status code not_found7639 when project restricts the visibility of issues to project members only7640 behaves like evidence not found7641 is expected to respond with numeric status code not_found7642 when user is auditor7643 behaves like does not show the issue in evidence7644 is expected to eq true7645 when project is private7646 behaves like does not show the issue in evidence7647 is expected to eq true7648 when project restricts the visibility of issues to project members only7649 behaves like does not show the issue in evidence7650 is expected to eq true7651 when external authorization control is enabled7652 behaves like evidence not found7653 is expected to respond with numeric status code not_found7654API::SnippetRepositoryStorageMoves7655 behaves like repository_storage_moves API7656 GET /snippets/:id/repository_storage_moves7657 behaves like get container repository storage move list7658 returns container repository storage moves7659 avoids N+1 queries7660 returns the most recently created first7661 permissions7662 is expected to be allowed for :admin7663 is expected to be denied for :user7664 non-existent container7665 returns not found7666 GET /snippets/:id/repository_storage_moves/:repository_storage_move_id7667 behaves like get single container repository storage move7668 returns a container repository storage move7669 non-existent container repository storage move7670 returns not found7671 permissions7672 is expected to be allowed for :admin7673 is expected to be denied for :user7674 non-existent container7675 returns not found7676 GET /snippet_repository_storage_moves7677 behaves like get container repository storage move list7678 returns container repository storage moves7679 avoids N+1 queries7680 returns the most recently created first7681 permissions7682 is expected to be allowed for :admin7683 is expected to be denied for :user7684 GET /snippet_repository_storage_moves/:repository_storage_move_id7685 behaves like get single container repository storage move7686 returns a container repository storage move7687 non-existent container repository storage move7688 returns not found7689 permissions7690 is expected to be allowed for :admin7691 is expected to be denied for :user7692 POST /snippets/:id/repository_storage_moves7693 schedules a container repository storage move7694 permissions7695 is expected to be allowed for :admin7696 is expected to be denied for :user7697 destination_storage_name is missing7698 schedules a container repository storage move7699 when container does not exist7700 returns not found7701 POST /snippet_repository_storage_moves7702 schedules the worker7703 source_storage_name is invalid7704 gives an error7705 destination_storage_name is missing7706 schedules the worker7707 destination_storage_name is invalid7708 gives an error7709 normal user7710 is expected to be denied for :user7711API::Metrics::Dashboard::Annotations7712 environment7713 behaves like POST /:source_type/:id/metrics_dashboard/annotations7714 with :source_type == environments7715 with correct permissions7716 with valid parameters7717 creates a new annotation7718 with invalid parameters7719 returns error messsage7720 with undeclared params7721 filters out undeclared params7722 with special characers in dashboard_path in request body7723 with escaped characters7724 behaves like special characters unescaped7725 unescapes the dashboard_path7726 with unescaped characers7727 behaves like special characters unescaped7728 unescapes the dashboard_path7729 without correct permissions7730 returns error message7731 group cluster7732 behaves like POST /:source_type/:id/metrics_dashboard/annotations7733 with :source_type == clusters7734 with correct permissions7735 with valid parameters7736 creates a new annotation7737 with invalid parameters7738 returns error messsage7739 with undeclared params7740 filters out undeclared params7741 with special characers in dashboard_path in request body7742 with escaped characters7743 behaves like special characters unescaped7744 unescapes the dashboard_path7745 with unescaped characers7746 behaves like special characters unescaped7747 unescapes the dashboard_path7748 without correct permissions7749 returns error message7750 project cluster7751 behaves like POST /:source_type/:id/metrics_dashboard/annotations7752 with :source_type == clusters7753 with correct permissions7754 with valid parameters7755 creates a new annotation7756 with invalid parameters7757 returns error messsage7758 with undeclared params7759 filters out undeclared params7760 with special characers in dashboard_path in request body7761 with escaped characters7762 behaves like special characters unescaped7763 unescapes the dashboard_path7764 with unescaped characers7765 behaves like special characters unescaped7766 unescapes the dashboard_path7767 without correct permissions7768 returns error message7769Query.project.pipeline7770 .stages.groups.jobs7771 returns the jobs of a pipeline stage7772 when there is more than one stage and job needs7773DEPRECATION 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.7780DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7781DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7782DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7783DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7784DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7785DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7786DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7787DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7788DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7789DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7790DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7791DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7792DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7793DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7794DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7795DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7796DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7797DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7798DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7799DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7800 does not generate N+1 queries7801 .jobs.kind7802 when the job is a build7803 returns BUILD7804 when the job is a bridge7805 returns BRIDGE7806 .jobs.artifacts7807 when the job is a build7808 returns the build's artifacts7809 when the job is not a build7810 returns nil7811 .jobs.count7812 returns the number of jobs7813 with limit value7814 returns a limited number of jobs7815 with invalid value7816 returns a validation error7817 with jobs filter7818 returns the number of failed jobs7819HelpController7820 GET #index7821 with absolute url7822 keeps the URL absolute7823 with relative url7824 prefixes it with /help/7825 when url is an external link7826 does not change it7827 when relative url with external on same line7828 prefix it with /help/7829 when relative url with http:// in query7830 prefix it with /help/7831 when mailto URL7832 do not change it7833 when protocol-relative link7834 do not change it7835 restricted visibility set to public7836 redirects to sign_in path7837 when two factor is required7838 does not redirect to two factor auth7839 GET #show7840 for Markdown formats7841 when requested file exists7842 assigns to @markdown7843 behaves like documentation pages local render7844 renders HTML7845 when two factor is required7846 does not redirect to two factor auth7847 when a custom help_page_documentation_url is set in database7848 behaves like documentation pages redirect7849 redirects user to custom documentation url with a specified version7850 when it is a pre-release7851 redirects user to custom documentation url without a version7852 when a custom help_page_documentation_url is set in configuration file7853 behaves like documentation pages redirect7854 redirects user to custom documentation url with a specified version7855 when it is a pre-release7856 redirects user to custom documentation url without a version7857 when gitlab_docs is disabled7858 behaves like documentation pages local render7859 renders HTML7860 when host is missing7861 behaves like documentation pages local render7862 renders HTML7863 when help_page_documentation_url is set in both db and configuration file7864 behaves like documentation pages redirect7865 redirects user to custom documentation url with a specified version7866 when it is a pre-release7867 redirects user to custom documentation url without a version7868 when help_page_documentation_url has a trailing slash7869 behaves like documentation pages redirect7870 redirects user to custom documentation url with a specified version7871 when it is a pre-release7872 redirects user to custom documentation url without a version7873 when requested file is missing7874 renders not found7875 for image formats7876 when requested file exists7877 renders the raw file7878 when requested file is missing7879 renders not found7880 for other formats7881 always renders not found7882API::ProjectEvents7883 GET /projects/:id/events7884 when unauthenticated7885 returns 404 for private project7886 returns 200 status for a public project7887 with inaccessible events7888 returns only accessible events7889 returns all events when the user has access7890 pagination7891 correctly returns the second page without inaccessible events7892 correctly returns the first page without inaccessible events7893 when not permitted to read7894 returns 4047895 when authenticated7896 returns project events7897 returns 404 if project does not exist7898 when the requesting token does not have "api" scope7899 returns a "403" response7900 when exists some events7901 avoids N+1 queries7902Create a timelog7903 when issuable is an Issue7904 behaves like issuable supports timelog creation mutation7905 when the user is anonymous7906 behaves like a mutation that returns a top-level access error7907 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"7908 when the user is a guest member of the namespace7909 behaves like a mutation that returns a top-level access error7910 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"7911 when user has permissions to create a timelog7912 with valid data7913 creates the timelog7914 with invalid time_spent7915 returns an error7916 when issuable is a MergeRequest7917 behaves like issuable supports timelog creation mutation7918 when the user is anonymous7919 behaves like a mutation that returns a top-level access error7920 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"7921 when the user is a guest member of the namespace7922 behaves like a mutation that returns a top-level access error7923 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"7924 when user has permissions to create a timelog7925 with valid data7926 creates the timelog7927 with invalid time_spent7928 returns an error7929 when issuable is a WorkItem7930 behaves like issuable supports timelog creation mutation7931 when the user is anonymous7932 behaves like a mutation that returns a top-level access error7933 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"7934 when the user is a guest member of the namespace7935 behaves like a mutation that returns a top-level access error7936 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"7937 when user has permissions to create a timelog7938 with valid data7939 creates the timelog7940 with invalid time_spent7941 returns an error7942 when issuable is an Incident7943 behaves like issuable supports timelog creation mutation7944 when the user is anonymous7945 behaves like a mutation that returns a top-level access error7946 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"7947 when the user is a guest member of the namespace7948 behaves like a mutation that returns a top-level access error7949 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"7950 when user has permissions to create a timelog7951 with valid data7952 creates the timelog7953 with invalid time_spent7954 returns an error7955getting project members information7956 when the request is correct7957 returns project members successfully7958 behaves like a working graphql query7959 returns a successful response7960 search argument7961 returns members that match the search query7962 when paginating7963 returns correct results7964 member relations7965 returns direct members7966 returns invited members plus inherited members7967 returns direct, inherited, descendant, and invited members7968 returns an error for an invalid member relation7969 when a member is invited only via email and current_user is a maintainer7970 returns null in the user field7971 when project is owned by a member7972 returns the owner in the response7973 merge request interactions7974 avoids N+1 queries, when requesting multiple MRs7975 avoids N+1 queries, when more users are involved7976 when unauthenticated7977 returns members7978API::BroadcastMessages7979 GET /broadcast_messages7980 returns an Array of BroadcastMessages7981 GET /broadcast_messages/:id7982 returns the specified message7983 POST /broadcast_messages7984 returns a 401 for anonymous users7985 returns a 403 for users7986 as an admin7987 requires the `message` parameter7988 defines sane default start and end times7989 accepts a custom background and foreground color7990 accepts target access levels7991 accepts a target path7992 accepts a broadcast type7993 uses default broadcast type7994 errors for invalid broadcast type7995 accepts an active dismissable value7996 PUT /broadcast_messages/:id7997 returns a 401 for anonymous users7998 returns a 403 for users7999 as an admin8000 accepts new background and foreground colors8001 accepts new start and end times8002 accepts a new message8003 accepts a new target_access_levels8004 accepts a new target_path8005 accepts a new broadcast_type8006 errors for invalid broadcast type8007 accepts a new dismissable value8008 DELETE /broadcast_messages/:id8009 returns a 401 for anonymous users8010 returns a 403 for users8011 deletes the broadcast message for admins8012 behaves like 412 response8013 for a modified ressource8014 returns 412 with a JSON error8015 for an unmodified ressource8016 returns 204 with an empty body8017Groups::Settings::CiCdController8018 GET #show8019 when user is owner8020 renders show with 200 status code8021 when user is not owner8022 renders a 4048023 external authorization8024 renders show with 200 status code8025 PATCH #update_auto_devops8026 when user does not have enough permission8027 is expected to respond with numeric status code not_found8028 when user has enough privileges8029 is expected to redirect to "/groups/group46/-/settings/ci_cd"8030 when service execution went wrong8031 returns a flash alert8032 when service execution was successful8033 returns a flash notice8034 when changing auto devops value8035 when explicitly enabling auto devops8036 updates group attribute8037 when explicitly disabling auto devops8038 updates group attribute8039 PATCH #update8040 when user is not an admin8041 is expected to respond with numeric status code not_found8042 when user is an admin8043 when admin mode is disabled8044 is expected to respond with numeric status code not_found8045 when admin mode is enabled8046 is expected to redirect to "/groups/group46/-/settings/ci_cd"8047 when service execution went wrong8048 returns a flash alert8049 when service execution was successful8050 returns a flash notice8051getting project information8052 when the user has full access to the project8053DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8054DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8055 includes the project8056 when the user has access to the project8057DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8058DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8059 includes the project8060 includes inherited members in project_members8061 behaves like a working graphql query8062DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8063DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8064 returns a successful response8065 when there are pipelines present8066 is included in the pipelines connection8067 topics8068DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8069DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8070 includes empty topics array if no topics set8071DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8072DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8073 includes topics array8074 when the user has reporter access to the project8075 allows fetching project statistics8076 when the user has guest access8077 when the project has public pipelines8078 shows all jobs8079 when the user does not have access to the project8080 returns an empty field8081 behaves like a working graphql query8082 returns a successful response8083API::Clusters::AgentTokens8084 GET /projects/:id/cluster_agents/:agent_id/tokens8085 avoids N+1 queries8086 with authorized user8087 returns tokens8088 with unauthorized user8089 cannot access agent tokens8090 GET /projects/:id/cluster_agents/:agent_id/tokens/:token_id8091 with authorized user8092 returns an agent token8093 returns a 404 error if agent token id is not available8094 with unauthorized user8095 cannot access single agent token8096 cannot access token from agent of another project8097 POST /projects/:id/cluster_agents/:agent_id/tokens8098 creates a new agent token8099 returns a 400 error if name not given8100 returns 404 error if project does not exist8101 returns 404 error if agent does not exist8102 with unauthorized user8103 prevents to create agent token8104 DELETE /projects/:id/cluster_agents/:agent_id/tokens/:token_id8105 revokes agent token8106 returns a 404 error when revoking non existent agent token8107 returns a 404 if the user is unauthorized to revoke8108 cannot revoke token from agent of another project8109Removing an AwardEmoji8110 when the current_user does not own the award emoji8111 behaves like a mutation that does not authorize the user8112 behaves like a mutation that does not destroy an AwardEmoji8113 is expected not to change `AwardEmoji.count`8114 behaves like a mutation that returns a top-level access error8115 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"8116 when the current_user owns the award emoji8117 when the given awardable is not an Awardable8118 behaves like a mutation that does not destroy an AwardEmoji8119 is expected not to change `AwardEmoji.count`8120 behaves like a mutation that returns top-level errors8121 is expected to include /was provided invalid value for awardableId/8122 when the given awardable is an Awardable8123 removes the emoji8124 returns no errors8125 returns an empty awardEmoji8126get board lists8127 for a project8128 behaves like group and project board lists query8129 when the user does not have access to the board8130 returns nil8131 when user can read the board8132 sorting and pagination8133 when using default sorting8134 when ascending8135 behaves like sorted paginated query8136 behaves like requires variables8137 shared example requires variables to be set8139 when sorting8140 sorts correctly8141 when paginating8142 paginates correctly8143 when querying for a single list8144 returns the correct list with issue count for matching issue filters8145 for a group8146 behaves like group and project board lists query8147 when the user does not have access to the board8148 returns nil8149 when user can read the board8150 sorting and pagination8151 when using default sorting8152 when ascending8153 behaves like sorted paginated query8154 behaves like requires variables8155 shared example requires variables to be set8157 when sorting8158 sorts correctly8159 when paginating8160 paginates correctly8161 when querying for a single list8162 returns the correct list with issue count for matching issue filters8163Setting locked status of a merge request8164 returns an error if the user is not allowed to update the merge request8165 marks the merge request as WIP8166 does not do anything if the merge request was already locked8167 when passing locked false as input8168 does not do anything if the merge request was not marked locked8169 unmarks the merge request as locked8170Projects::Harbor::TagsController8171 behaves like a harbor tags controller8172 GET #index.json8173 with harbor registry feature flag enabled8174 behaves like responds with 200 status with json8175 renders the index template8176 with harbor registry feature flag disabled8177 behaves like responds with 404 status8178 returns 4048179 with anonymous user8180 behaves like responds with 302 status8181 returns 3028182 with unauthorized user8183 behaves like responds with 404 status8184 returns 4048185 with valid params8186 with valid repository8187 behaves like responds with 200 status with json8188 renders the index template8189 with valid page8190 behaves like responds with 200 status with json8191 renders the index template8192 with valid limit8193 behaves like responds with 200 status with json8194 renders the index template8195 with invalid params8196 with invalid page8197 behaves like responds with 422 status with json8198 returns 4228199 with invalid limit8200 behaves like responds with 422 status with json8201 returns 4228202Groups::Harbor::TagsController8203 behaves like a harbor tags controller8204 GET #index.json8205 with harbor registry feature flag enabled8206 behaves like responds with 200 status with json8207 renders the index template8208 with harbor registry feature flag disabled8209 behaves like responds with 404 status8210 returns 4048211 with anonymous user8212 behaves like responds with 404 status8213 returns 4048214 with unauthorized user8215 behaves like responds with 404 status8216 returns 4048217 with valid params8218 with valid repository8219 behaves like responds with 200 status with json8220 renders the index template8221 with valid page8222 behaves like responds with 200 status with json8223 renders the index template8224 with valid limit8225 behaves like responds with 200 status with json8226 renders the index template8227 with invalid params8228 with invalid page8229 behaves like responds with 422 status with json8230 returns 4228231 with invalid limit8232 behaves like responds with 422 status with json8233 returns 4228234API::Metrics::UserStarredDashboards8235 POST /projects/:id/metrics/user_starred_dashboards8236 with correct permissions8237 with valid parameters8238 dashboard_path as url param url escaped8239 creates a new user starred metrics dashboard8240 dashboard_path in request body unescaped8241 creates a new user starred metrics dashboard8242 with invalid parameters8243 returns error message8244 user is missing8245 returns 404 not found8246 project is missing8247 returns 404 not found8248 without correct permissions8249 returns 404 not found8250 DELETE /projects/:id/metrics/user_starred_dashboards8251 with correct permissions8252 with valid parameters8253 dashboard_path as url param url escaped8254 deletes given user starred metrics dashboard8255 dashboard_path in request body unescaped8256 deletes given user starred metrics dashboard8257 dashboard_path has not been specified8258 deletes all starred dashboards for that user within given project8259 with invalid parameters8260 user is missing8261 returns 404 not found8262 project is missing8263 returns 404 not found8264 without correct permissions8265 returns 404 not found8266Groups::LabelsController8267 GET #index8268 returns group and project labels by default8269 with ancestor group8270 returns ancestor group labels8271 external authorization8272 behaves like disabled when using an external authorization service8273 works when the feature is not enabled8274 renders a 404 with a message when the feature is enabled8275 with views rendered8276 avoids N+1 queries8277 POST #toggle_subscription8278 allows user to toggle subscription on group labels8279 DELETE #destroy8280 when current user has ability to destroy the label8281 removes the label8282 when label is succesfuly destroyed8283 redirects to the group labels page8284 when current_user does not have ability to destroy the label8285 responds with status 4048286Requests on a read-only node8287 when db is read-only8288 behaves like graphql on a read-only GitLab instance8289 mutations8290 disallows the query8291 does not destroy the Note8292 read-only queries8293DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8294DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8295 allows the query8296StaticObjectExternalStorage8297 when external storage is not configured8298 calls the action normally8299 when external storage is configured8300 when external storage token is empty8301 when project is public8302 redirects to external storage URL without adding a token parameter8303 when project is not public8304 redirects to external storage URL a token parameter added8305 when path includes extra parameters8306 includes the parameters in the redirect URL8307 when external storage token is present8308 when token is correct8309 calls the action normally8310 when token is incorrect8311 return 4038312Project.cluster_agents8313DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8314DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8315DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8316DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8317DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8318DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8319 can retrieve cluster agents8320 selecting page info8321 can paginate cluster agents8322 selecting tokens8323 can select tokens in last_used_at order8324 does not suffer from N+1 performance issues8325 selecting connections8326 can retrieve connections and agent metadata8327 selecting activity events8328 retrieves activity event details8329Setting assignees of a merge request8330 returns an error if the user is not allowed to update the merge request8331 when the current user does not have permission to add assignees8332 does not change the assignees8333 with assignees already assigned8334Skipping ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb[1:3:1] 'Setting assignees of a merge request with assignees already assigned replaces the assignee' because it's flaky.8335 replaces the assignee (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)8336 when passing an empty list of assignees8337Skipping ./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.8338 removes assignee (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)8339 when passing append as true8340Skipping ./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.8341 does not replace the assignee in CE (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)8342 when passing remove as true8343Skipping ./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.8344 removes the users in the list, while adding none (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)8345Querying a Board list8346 does not have an N+1 performance issue8347 when the user has access to the list8348 is expected to include {"issuesCount" => 2, "title" => "foo"}8349 behaves like a working graphql query8350 returns a successful response8351 issue filters8352 with matching assignee username issue filters8353 filters issues metadata8354 with unmatching assignee username issue filters8355 filters issues metadata8356 when filtering by confidential8357 filters issues metadata8358 when the user does not have access to the list8359 is expected to be nil8360 when ID argument is missing8361 raises an exception8362 when list ID is not found8363 is expected to be nil8364Projects::Settings::IntegrationHookLogsController8365 GET #show8366 is expected to be successful8367 renders a 404 if the hook does not exist8368 POST #retry8369 executes the hook and redirects to the service form8370 renders a 404 if the hook does not exist8371Querying a Milestone8372 when we post the query8373 when the user has access to the milestone8374 is expected to include {"title" => "My title 391"}8375 contains release information8376 behaves like a working graphql query8377 returns a successful response8378 when the user does not have access to the milestone8379 is expected to be nil8380 behaves like a working graphql query8381 returns a successful response8382 when ID argument is missing8383 raises an exception8384 when there are two milestones8385 produces correct results8386 does not suffer from N+1 performance issues8387Mark snippet as spam8388 behaves like when the snippet is not found8389 behaves like a mutation that returns top-level errors8390 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"8391 when the user does not have permission8392 behaves like a mutation that returns top-level errors8393 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"8394 behaves like does not mark the snippet as spam8395 is expected not to change `snippet.reload.user_agent_detail.submitted`8396 when the user has permission8397 when user can not mark snippet as spam8398 behaves like does not mark the snippet as spam8399 is expected not to change `snippet.reload.user_agent_detail.submitted`8400 when user can mark snippet as spam8401 marks snippet as spam8402Groups::Harbor::ArtifactsController8403 behaves like a harbor artifacts controller8404 GET #index.json8405 with harbor registry feature flag enabled8406 behaves like responds with 200 status with json8407 renders the index template8408 with harbor registry feature flag disabled8409 behaves like responds with 404 status8410 returns 4048411 with anonymous user8412 behaves like responds with 404 status8413 returns 4048414 with unauthorized user8415 behaves like responds with 404 status8416 returns 4048417 with valid params8418 with valid repository8419 behaves like responds with 200 status with json8420 renders the index template8421 with valid page8422 behaves like responds with 200 status with json8423 renders the index template8424 with valid limit8425 behaves like responds with 200 status with json8426 renders the index template8427 with invalid params8428 with invalid page8429 behaves like responds with 422 status with json8430 returns 4228431 with invalid limit8432 behaves like responds with 422 status with json8433 returns 4228434Projects::UsageQuotasController8435 GET #index8436 when user does not have read_usage_quotas permission8437 renders not_found8438 when user has read_usage_quotas permission8439 renders index with 200 status code8440Projects::Prometheus::AlertsController8441 POST #notify8442 returns ok if notification succeeds8443 returns unprocessable entity if notification fails8444 bearer token8445 when set8446 extracts bearer token8447 pass nil if cannot extract a non-bearer token8448 when missing8449 passes nil8450 GET #metrics_dashboard8451 returns a json object with the correct keys8452 is the correct embed8453 finds the first alert embed without environment_id8454 returns 404 for non-existant alerts8455Projects::Ci::DailyBuildGroupReportResultsController8456 GET index8457 when format is JSON8458 behaves like JSON results8459 serves the results in JSON8460 when given date range spans more than 90 days8461 limits the result to 90 days from the given start_date8462 behaves like validating param_type8463 when given param_type is invalid8464 responds with 422 error8465 behaves like ensuring policy8466 when user is not allowed to read build report results8467 responds with 404 error8468 when format is CSV8469 behaves like CSV results8470 serves the results in CSV8471 when given date range spans more than 90 days8472 limits the result to 90 days from the given start_date8473 behaves like validating param_type8474 when given param_type is invalid8475 responds with 422 error8476 behaves like ensuring policy8477 when user is not allowed to read build report results8478 responds with 404 error8479Project noteable notes8480 #index8481 does not set a Gitlab::EtagCaching ETag if there is a note8482 sets a Gitlab::EtagCaching ETag if there is no note8483query Jira service8484 behaves like unauthorized users cannot read services8485 when anonymous user8486 is expected to equal nil8487 when user developer8488 is expected to equal nil8489 when user can access project services8490 returns list of jira integrations8491 behaves like a working graphql query8492 returns a successful response8493Mutations::Boards::Destroy8494 when the user does not have permission8495 does not destroy the board8496 behaves like a mutation that returns a top-level access error8497 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"8498 when the user has permission8499 when given id is not for a board8500 returns an error8501 when everything is ok8502 destroys the board8503 returns an empty board8504 when there is only 1 board for the parent8505 does destroy the board8506query Jira projects8507 when user does not have access8508 behaves like unauthorized users cannot read services8509 when anonymous user8510 is expected to equal nil8511 when user developer8512 is expected to equal nil8513 when user can access project services8514 retuns list of jira projects8515 behaves like a working graphql query8516 returns a successful response8517 with pagination8518 when fetching limited number of projects8519 without cursor8520 behaves like fetches first project8521 retuns first project from list of fetched projects8522Getting designs related to an issue8523 is not too deep for anonymous users8524 behaves like a working graphql query8525 returns a successful response8526 behaves like a noteable graphql type we can query8527 .discussions8528 can fetch discussions8529 can fetch discussion noteable8530 .notes8531DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8532DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8533DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8534DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.8535 can fetch notes8536Explore::GroupsController8537 renders group trees8538 includes public projects8539 restricted visibility level is public8540 redirects to login page8541ChaosController8542 #leakmem8543 calls synchronously8544 call synchronously with params8545 calls asynchronously8546 #cpu_spin8547 calls synchronously8548 calls synchronously with params8549 calls asynchronously8550 #db_spin8551 calls synchronously8552 calls synchronously with params8553 calls asynchronously8554 #sleep8555 calls synchronously8556 calls synchronously with params8557 calls asynchronously8558 #kill8559 calls synchronously8560 calls asynchronously8561 #quit8562 calls synchronously8563 calls asynchronously8564 #gc8565 runs a full GC on the current web worker8566API::Ci::Runner8567 /api/v4/runners8568 DELETE /api/v4/runners8569 when no token is provided8570 returns 400 error8571 when invalid token is provided8572 returns 403 error8573 when valid token is provided8574 deletes Runner8575 behaves like 412 response8576 for a modified ressource8577 returns 412 with a JSON error8578 for an unmodified ressource8579 returns 204 with an empty body8580 behaves like storing arguments in the application context for the API8581 places the expected params in the application context8582Create a label or backlog board list8583 behaves like board lists create request8584 the user is not allowed to read board lists8585 behaves like a mutation that returns a top-level access error8586 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"8587 when user has permissions to admin board lists8588 backlog list8589 creates the list8590 label list8591 creates the list8592Oauth::TokensController8593 POST /oauth/token8594 behaves like cross-origin POST request8595 allows cross-origin requests8596 OPTIONS /oauth/token8597 behaves like CORS preflight OPTIONS request8598 returns 2008599 allows cross-origin requests8600 POST /oauth/revoke8601 returns 2008602 behaves like cross-origin POST request8603 allows cross-origin requests8604 OPTIONS /oauth/revoke8605 behaves like CORS preflight OPTIONS request8606 returns 2008607 allows cross-origin requests8608SpammableActions::CaptchaCheck::HtmlFormatActionsSupport8609 #convert_html_spam_params_to_headers8610 converts params to headers8611 #with_captcha_check_html_format8612 when spammable.render_recaptcha? is true8613 renders :captcha_check8614 when spammable.render_recaptcha? is false8615 yields to block8616Profiles::KeysController8617 POST #create8618 creates a new key8619 with FIPS mode8620 creates a new key without MD5 fingerprint8621Admin::IntegrationsController8622 GET #overrides8623 format html8624 renders8625 format json8626 returns the project overrides data8627Admin::JobsController8628 GET #index8629 with an authenticated admin user8630 paginates builds without a total count8631 without admin access8632 returns `not_found`8633User sends malformed strings8634 raises a 400 error with a null byte8635 raises a 400 error with an invalid string8636 raises a 400 error with null bytes in the auth headers8637Deletes a release asset link8638 deletes the release asset link and returns the deleted link8639PipelineDestroy8640 returns an error if the user is not allowed to destroy the pipeline8641 destroys a pipeline8642 when project is undergoing stats refresh8643 returns an error and does not destroy the pipeline8644Oauth::AuthorizedApplicationsController8645 includes Two-factor enforcement concern8646 GET #index8647 responds with 4048648 DELETE #destroy8649 revokes both access grants and tokens8650Setting the status of an alert8651 updates the status of the alert8652JwksController8653 Endpoints from the parent Doorkeeper::OpenidConnect::DiscoveryController8654 respond successfully8655 GET /-/jwks8656 returns signing keys used to sign CI_JOB_JWT8657 does not leak private key data8658Users::UnsubscribesController8659 show8660 responds with success8661 behaves the same if email address isn't known in the system8662 create8663 unsubscribes the connected user8664 behaves the same if email address isn't known in the system8665JiraConnect::SubscriptionsController8666 GET /-/jira_connect/subscriptions8667 is expected to include "http://self-managed-gitlab.com/-/jira_connect/oauth_application_ids"8668 with no self-managed instance configured8669 is expected not to include "http://self-managed-gitlab.com"8670JiraConnect::OauthCallbacksController8671 GET /-/jira_connect/oauth_callbacks8672 when logged in8673 renders a page prompting the user to close the window8674Sessions8675 authentication8676 logout does not require a csrf token8677Admin::BroadcastMessagesController8678 POST /preview8679 renders preview partial8680Knapsack report was generated. Preview:8681{8682 "spec/requests/api/npm_instance_packages_spec.rb": 431.50327359300036,8683 "spec/requests/api/conan_project_packages_spec.rb": 220.42422696500034,8684 "spec/controllers/projects/merge_requests_controller_spec.rb": 152.647047423,8685 "spec/controllers/projects/merge_requests/diffs_controller_spec.rb": 130.93604093400063,8686 "spec/controllers/projects/branches_controller_spec.rb": 111.2111372670006,8687 "spec/requests/api/wikis_spec.rb": 79.0016575539994,8688 "spec/requests/api/release/links_spec.rb": 99.12649309500011,8689 "spec/requests/api/ci/variables_spec.rb": 58.24024822499996,8690 "spec/requests/api/project_debian_distributions_spec.rb": 35.535890737000045,8691 "spec/controllers/projects/uploads_controller_spec.rb": 34.85420973700002,8692 "spec/requests/api/group_debian_distributions_spec.rb": 33.164285988999836,8693 "spec/controllers/projects/commit_controller_spec.rb": 37.613304232999326,8694 "spec/requests/api/ci/pipeline_schedules_spec.rb": 31.617678022999826,8695 "spec/mailers/emails/merge_requests_spec.rb": 27.247393218999605,8696 "spec/requests/groups_controller_spec.rb": 26.07902255300087,8697 "spec/controllers/projects/settings/ci_cd_controller_spec.rb": 22.489734780000617,8698 "spec/commands/metrics_server/metrics_server_spec.rb": 22.300326280000263,8699 "spec/requests/health_controller_spec.rb": 15.172397725999872,8700 "spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb": 11.966890817000603,8701 "spec/controllers/projects/variables_controller_spec.rb": 19.73566019699956,8702 "spec/controllers/projects/raw_controller_spec.rb": 13.724658080000154,8703 "spec/controllers/groups/releases_controller_spec.rb": 16.466886021999926,8704 "spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb": 12.732445673000257,8705 "spec/requests/api/graphql/project/alert_management/alerts_spec.rb": 10.976625794000029,8706 "spec/requests/api/graphql/mutations/work_items/update_spec.rb": 8.25628166200022,8707 "spec/controllers/oauth/applications_controller_spec.rb": 8.158655024999462,8708 "spec/requests/api/graphql/mutations/notes/update/image_diff_note_spec.rb": 10.19461261700053,8709 "spec/controllers/projects/releases/evidences_controller_spec.rb": 16.32418864900046,8710 "spec/requests/api/snippet_repository_storage_moves_spec.rb": 6.378552219000085,8711 "spec/requests/api/metrics/dashboard/annotations_spec.rb": 6.021328265999728,8712 "spec/requests/api/graphql/ci/jobs_spec.rb": 7.147936107999158,8713 "spec/controllers/help_controller_spec.rb": 6.114418882999416,8714 "spec/requests/api/project_events_spec.rb": 11.49855120400025,8715 "spec/requests/api/graphql/mutations/timelogs/create_spec.rb": 7.8517379149998305,8716 "spec/requests/api/graphql/project/project_members_spec.rb": 8.92964041200048,8717 "spec/requests/api/broadcast_messages_spec.rb": 2.68317082700014,8718 "spec/controllers/groups/settings/ci_cd_controller_spec.rb": 4.576537126999938,8719 "spec/requests/api/graphql/project_query_spec.rb": 6.390912048000246,8720 "spec/requests/api/clusters/agent_tokens_spec.rb": 4.616970560999107,8721 "spec/requests/api/graphql/mutations/award_emojis/remove_spec.rb": 7.4862854839993815,8722 "spec/requests/api/graphql/boards/board_lists_query_spec.rb": 6.294631360000494,8723 "spec/requests/api/graphql/mutations/merge_requests/set_locked_spec.rb": 10.006163951000417,8724 "spec/requests/projects/harbor/tags_controller_spec.rb": 2.7429868389999683,8725 "spec/requests/groups/harbor/tags_controller_spec.rb": 3.27567309799997,8726 "spec/requests/api/metrics/user_starred_dashboards_spec.rb": 4.148386133999338,8727 "spec/controllers/groups/labels_controller_spec.rb": 6.233548987999711,8728 "spec/requests/api/graphql/read_only_spec.rb": 3.9089624749994982,8729 "spec/controllers/concerns/static_object_external_storage_spec.rb": 5.276676634999603,8730 "spec/requests/api/graphql/project/cluster_agents_spec.rb": 3.90931593500045,8731 "spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb": 2.6404562820007413,8732 "spec/requests/api/graphql/boards/board_list_query_spec.rb": 4.047179715999846,8733 "spec/controllers/projects/settings/integration_hook_logs_controller_spec.rb": 5.1988995150004484,8734 "spec/requests/api/graphql/milestone_spec.rb": 3.5741606789997604,8735 "spec/requests/api/graphql/mutations/snippets/mark_as_spam_spec.rb": 2.308377764999932,8736 "spec/requests/groups/harbor/artifacts_controller_spec.rb": 3.6323659820000103,8737 "spec/controllers/projects/usage_quotas_controller_spec.rb": 3.1706449020002765,8738 "spec/controllers/projects/prometheus/alerts_controller_spec.rb": 2.7576377959994716,8739 "spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb": 3.396524662000047,8740 "spec/requests/projects/noteable_notes_spec.rb": 1.7109441940001489,8741 "spec/requests/api/graphql/project/jira_service_spec.rb": 1.2607390240000313,8742 "spec/requests/api/graphql/mutations/boards/destroy_spec.rb": 3.2579946899995775,8743 "spec/requests/api/graphql/project/jira_projects_spec.rb": 2.6196921950004253,8744 "spec/requests/api/graphql/project/issue/designs/notes_spec.rb": 3.560583580999264,8745 "spec/controllers/explore/groups_controller_spec.rb": 1.8942369599999438,8746 "spec/controllers/chaos_controller_spec.rb": 1.6961143360003916,8747 "spec/requests/api/ci/runner/runners_delete_spec.rb": 0.9029954509996969,8748 "spec/requests/api/graphql/mutations/boards/lists/create_spec.rb": 1.755090329000268,8749 "spec/requests/oauth/tokens_controller_spec.rb": 0.7262100940006349,8750 "spec/controllers/concerns/spammable_actions/captcha_check/html_format_actions_support_spec.rb": 1.3391151229998286,8751 "spec/controllers/profiles/keys_controller_spec.rb": 0.4136599350003962,8752 "spec/requests/admin/integrations_controller_spec.rb": 1.5454240070002925,8753 "spec/controllers/admin/jobs_controller_spec.rb": 1.2274181180000596,8754 "spec/requests/user_sends_malformed_strings_spec.rb": 0.2797870829999738,8755 "spec/requests/api/graphql/mutations/release_asset_links/delete_spec.rb": 1.307634761999907,8756 "spec/requests/api/graphql/mutations/ci/pipeline_destroy_spec.rb": 1.0573424730000625,8757 "spec/controllers/oauth/authorized_applications_controller_spec.rb": 0.8574667860002592,8758 "spec/requests/api/graphql/mutations/alert_management/alerts/update_alert_status_spec.rb": 0.7334150380002029,8759 "spec/requests/jwks_controller_spec.rb": 0.7132861009995395,8760 "spec/controllers/users/unsubscribes_controller_spec.rb": 0.6879985550003767,8761 "spec/requests/jira_connect/subscriptions_controller_spec.rb": 0.6721374270000524,8762 "spec/requests/jira_connect/oauth_callbacks_controller_spec.rb": 0.42805608899925573,8763 "spec/requests/sessions_spec.rb": 0.6635311290001482,8764 "spec/requests/admin/broadcast_messages_controller_spec.rb": 0.330905844999506378765}8766Knapsack global time execution for tests: 31m 25s8767Pending: (Failures listed here are expected and do not affect your suite's status)8768 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: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries8769 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8770 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:328771 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: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries8772 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8773 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:328774 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: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries8775 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8776 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:328777 4) 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: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries8778 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8779 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:328780 5) Setting assignees of a merge request with assignees already assigned replaces the assignee8781 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8782 # ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb:908783 6) Setting assignees of a merge request when passing an empty list of assignees removes assignee8784 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8785 # ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb:1078786 7) Setting assignees of a merge request when passing append as true does not replace the assignee in CE8787 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8788 # ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb:1298789 8) Setting assignees of a merge request when passing remove as true removes the users in the list, while adding none8790 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8791 # ./spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb:1488792Finished in 31 minutes 29 seconds (files took 1 minute 7.05 seconds to load)87933342 examples, 0 failures, 8 pending8794RSpec exited with 0.8795No examples to retry, congrats!8797Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-14 due to policy8798Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-14 due to policy8800Uploading artifacts...8801coverage/: found 5 matching files and directories 8802crystalball/: found 2 matching files and directories 8803deprecations/: found 4 matching files and directories 8804knapsack/: found 3 matching files and directories 8805rspec/: found 9 matching files and directories 8806WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 8807log/*.log: found 17 matching files and directories 8808WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2799741062/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8809WARNING: Retrying... context=artifacts-uploader error=request redirected8810Uploading artifacts as "archive" to coordinator... 201 Created id=2799741062 responseStatus=201 Created token=Rywz-Pz38811Uploading artifacts...8812rspec/junit_rspec.xml: found 1 matching files and directories 8813WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2799741062/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8814WARNING: Retrying... context=artifacts-uploader error=request redirected8815Uploading artifacts as "junit" to coordinator... 201 Created id=2799741062 responseStatus=201 Created token=Rywz-Pz38817Job succeeded