rspec integration pg14 single-redis 2/12
Passed Started
by
@seggenberger

Sascha Eggenberger
1 returns not_found and error message2 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found3 behaves like returning response status with error4 returns not_found and error message5 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok6 behaves like accept package tags request7 with valid package name8 returns a valid json response9 returns two package tags10 behaves like returning response status11 returns ok12 behaves like track event13 behaves like a package tracking event14 creates a gitlab tracking event list_tags15 with invalid package name16 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"17 behaves like returning response status with error18 returns bad_request and error message19 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/20 behaves like returning response status with error21 returns not_found and error message22 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok23 behaves like accept package tags request24 with valid package name25 returns a valid json response26 returns two package tags27 behaves like returning response status28 returns ok29 behaves like track event30 behaves like a package tracking event31 creates a gitlab tracking event list_tags32 with invalid package name33 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"34 behaves like returning response status with error35 returns bad_request and error message36 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/37 behaves like returning response status with error38 returns not_found and error message39 auth: :job_token, package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok40 behaves like accept package tags request41 with valid package name42 returns a valid json response43 returns two package tags44 behaves like returning response status45 returns ok46 behaves like track event47 behaves like a package tracking event48 creates a gitlab tracking event list_tags49 with invalid package name50 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"51 behaves like returning response status with error52 returns bad_request and error message53 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/54 behaves like returning response status with error55 returns not_found and error message56 auth: :job_token, package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found57 behaves like returning response status with error58 returns not_found and error message59 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok60 behaves like accept package tags request61 with valid package name62 returns a valid json response63 returns two package tags64 behaves like returning response status65 returns ok66 behaves like track event67 behaves like a package tracking event68 creates a gitlab tracking event list_tags69 with invalid package name70 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"71 behaves like returning response status with error72 returns bad_request and error message73 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/74 behaves like returning response status with error75 returns not_found and error message76 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok77 behaves like accept package tags request78 with valid package name79 returns a valid json response80 returns two package tags81 behaves like returning response status82 returns ok83 behaves like track event84 behaves like a package tracking event85 creates a gitlab tracking event list_tags86 with invalid package name87 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"88 behaves like returning response status with error89 returns bad_request and error message90 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/91 behaves like returning response status with error92 returns not_found and error message93 auth: :job_token, package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok94 behaves like accept package tags request95 with valid package name96 returns a valid json response97 returns two package tags98 behaves like returning response status99 returns ok100 behaves like track event101 behaves like a package tracking event102 creates a gitlab tracking event list_tags103 with invalid package name104 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"105 behaves like returning response status with error106 returns bad_request and error message107 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/108 behaves like returning response status with error109 returns not_found and error message110 auth: :job_token, package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found111 behaves like returning response status with error112 returns not_found and error message113 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok114 behaves like accept package tags request115 with valid package name116 returns a valid json response117 returns two package tags118 behaves like returning response status119 returns ok120 behaves like track event121 behaves like a package tracking event122 creates a gitlab tracking event list_tags123 with invalid package name124 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"125 behaves like returning response status with error126 returns bad_request and error message127 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/128 behaves like returning response status with error129 returns not_found and error message130 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok131 behaves like accept package tags request132 with valid package name133 returns a valid json response134 returns two package tags135 behaves like returning response status136 returns ok137 behaves like track event138 behaves like a package tracking event139 creates a gitlab tracking event list_tags140 with invalid package name141 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"142 behaves like returning response status with error143 returns bad_request and error message144 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/145 behaves like returning response status with error146 returns not_found and error message147 auth: :job_token, package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok148 behaves like accept package tags request149 with valid package name150 returns a valid json response151 returns two package tags152 behaves like returning response status153 returns ok154 behaves like track event155 behaves like a package tracking event156 creates a gitlab tracking event list_tags157 with invalid package name158 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"159 behaves like returning response status with error160 returns bad_request and error message161 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/162 behaves like returning response status with error163 returns not_found and error message164 auth: :job_token, package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found165 behaves like returning response status with error166 returns not_found and error message167 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok168 behaves like accept package tags request169 with valid package name170 returns a valid json response171 returns two package tags172 behaves like returning response status173 returns ok174 behaves like track event175 behaves like a package tracking event176 creates a gitlab tracking event list_tags177 with invalid package name178 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"179 behaves like returning response status with error180 returns bad_request and error message181 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/182 behaves like returning response status with error183 returns not_found and error message184 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok185 behaves like accept package tags request186 with valid package name187 returns a valid json response188 returns two package tags189 behaves like returning response status190 returns ok191 behaves like track event192 behaves like a package tracking event193 creates a gitlab tracking event list_tags194 with invalid package name195 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"196 behaves like returning response status with error197 returns bad_request and error message198 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/199 behaves like returning response status with error200 returns not_found and error message201 auth: :deploy_token, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok202 behaves like accept package tags request203 with valid package name204 returns a valid json response205 returns two package tags206 behaves like returning response status207 returns ok208 behaves like track event209 behaves like a package tracking event210 creates a gitlab tracking event list_tags211 with invalid package name212 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"213 behaves like returning response status with error214 returns bad_request and error message215 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/216 behaves like returning response status with error217 returns not_found and error message218 auth: :deploy_token, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found219 behaves like returning response status with error220 returns not_found and error message221 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok222 behaves like accept package tags request223 with valid package name224 returns a valid json response225 returns two package tags226 behaves like returning response status227 returns ok228 behaves like track event229 behaves like a package tracking event230 creates a gitlab tracking event list_tags231 with invalid package name232 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"233 behaves like returning response status with error234 returns bad_request and error message235 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/236 behaves like returning response status with error237 returns not_found and error message238 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok239 behaves like accept package tags request240 with valid package name241 returns a valid json response242 returns two package tags243 behaves like returning response status244 returns ok245 behaves like track event246 behaves like a package tracking event247 creates a gitlab tracking event list_tags248 with invalid package name249 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"250 behaves like returning response status with error251 returns bad_request and error message252 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/253 behaves like returning response status with error254 returns not_found and error message255 auth: :deploy_token, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok256 behaves like accept package tags request257 with valid package name258 returns a valid json response259 returns two package tags260 behaves like returning response status261 returns ok262 behaves like track event263 behaves like a package tracking event264 creates a gitlab tracking event list_tags265 with invalid package name266 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"267 behaves like returning response status with error268 returns bad_request and error message269 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/270 behaves like returning response status with error271 returns not_found and error message272 auth: :deploy_token, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found273 behaves like returning response status with error274 returns not_found and error message275 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok276 behaves like accept package tags request277 with valid package name278 returns a valid json response279 returns two package tags280 behaves like returning response status281 returns ok282 behaves like track event283 behaves like a package tracking event284 creates a gitlab tracking event list_tags285 with invalid package name286 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"287 behaves like returning response status with error288 returns bad_request and error message289 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/290 behaves like returning response status with error291 returns not_found and error message292 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok293 behaves like accept package tags request294 with valid package name295 returns a valid json response296 returns two package tags297 behaves like returning response status298 returns ok299 behaves like track event300 behaves like a package tracking event301 creates a gitlab tracking event list_tags302 with invalid package name303 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"304 behaves like returning response status with error305 returns bad_request and error message306 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/307 behaves like returning response status with error308 returns not_found and error message309 auth: :deploy_token, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok310 behaves like accept package tags request311 with valid package name312 returns a valid json response313 returns two package tags314 behaves like returning response status315 returns ok316 behaves like track event317 behaves like a package tracking event318 creates a gitlab tracking event list_tags319 with invalid package name320 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"321 behaves like returning response status with error322 returns bad_request and error message323 package_name: nil, status: :not_found, error: /\A(Packages|Project) not found\z/324 behaves like returning response status with error325 returns not_found and error message326 auth: :deploy_token, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found327 behaves like returning response status with error328 returns not_found and error message329 behaves like accept get request on private project with access to package registry for everyone330 behaves like returning response status331 returns ok332 PUT /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag333 behaves like handling create dist tag requests334 with a group namespace335 behaves like handling all conditions336 behaves like handling different package names, visibilities and user roles for tags create or delete337 auth: nil, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized338 behaves like reject create package tag request339 behaves like returning response status340 returns unauthorized341 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized342 behaves like reject create package tag request343 behaves like returning response status344 returns unauthorized345 auth: nil, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized346 behaves like reject create package tag request347 behaves like returning response status348 returns unauthorized349 auth: nil, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized350 behaves like reject create package tag request351 behaves like returning response status352 returns unauthorized353 auth: nil, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized354 behaves like reject create package tag request355 behaves like returning response status356 returns unauthorized357 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized358 behaves like reject create package tag request359 behaves like returning response status360 returns unauthorized361 auth: nil, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized362 behaves like reject create package tag request363 behaves like returning response status364 returns unauthorized365 auth: nil, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized366 behaves like reject create package tag request367 behaves like returning response status368 returns unauthorized369 auth: nil, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized370 behaves like reject create package tag request371 behaves like returning response status372 returns unauthorized373 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized374 behaves like reject create package tag request375 behaves like returning response status376 returns unauthorized377 auth: nil, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized378 behaves like reject create package tag request379 behaves like returning response status380 returns unauthorized381 auth: nil, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized382 behaves like reject create package tag request383 behaves like returning response status384 returns unauthorized385 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden386 behaves like reject create package tag request387 behaves like returning response status388 returns forbidden389 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok390 behaves like accept create package tag request391 with valid package name392 creates the package tag393 returns a valid response394 behaves like returning response status395 returns no_content396 behaves like track event397 behaves like a package tracking event398 creates a gitlab tracking event create_tag399 with already existing tag400 reuses existing tag401 returns a valid response402 behaves like returning response status403 returns no_content404 with ActiveRecord::RecordInvalid error405 behaves like returning response status with error406 returns bad_request and error message407 with invalid package name408 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/409 behaves like returning response status with error410 returns not_found and error message411 package_name: "", status: :not_found, error: "404 Not Found"412 behaves like returning response status with error413 returns not_found and error message414 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"415 behaves like returning response status with error416 returns bad_request and error message417 with invalid tag name418 tag_name: "", status: :not_found, error: "404 Not Found"419 behaves like returning response status with error420 returns not_found and error message421 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"422 behaves like returning response status with error423 returns bad_request and error message424 with invalid version425 version: " ", status: :bad_request, error: "\"Version\" not given"426 behaves like returning response status with error427 returns bad_request and error message428 version: "", status: :bad_request, error: "\"Version\" not given"429 behaves like returning response status with error430 returns bad_request and error message431 version: nil, status: :bad_request, error: "\"Version\" not given"432 behaves like returning response status with error433 returns bad_request and error message434 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden435 behaves like reject create package tag request436 behaves like returning response status437 returns forbidden438 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok439 behaves like accept create package tag request440 with valid package name441 creates the package tag442 returns a valid response443 behaves like returning response status444 returns no_content445 behaves like track event446 behaves like a package tracking event447 creates a gitlab tracking event create_tag448 with already existing tag449 reuses existing tag450 returns a valid response451 behaves like returning response status452 returns no_content453 with ActiveRecord::RecordInvalid error454 behaves like returning response status with error455 returns bad_request and error message456 with invalid package name457 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/458 behaves like returning response status with error459 returns not_found and error message460 package_name: "", status: :not_found, error: "404 Not Found"461 behaves like returning response status with error462 returns not_found and error message463 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"464 behaves like returning response status with error465 returns bad_request and error message466 with invalid tag name467 tag_name: "", status: :not_found, error: "404 Not Found"468 behaves like returning response status with error469 returns not_found and error message470 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"471 behaves like returning response status with error472 returns bad_request and error message473 with invalid version474 version: " ", status: :bad_request, error: "\"Version\" not given"475 behaves like returning response status with error476 returns bad_request and error message477 version: "", status: :bad_request, error: "\"Version\" not given"478 behaves like returning response status with error479 returns bad_request and error message480 version: nil, status: :bad_request, error: "\"Version\" not given"481 behaves like returning response status with error482 returns bad_request and error message483 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden484 behaves like reject create package tag request485 behaves like returning response status486 returns forbidden487 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok488 behaves like accept create package tag request489 with valid package name490 creates the package tag491 returns a valid response492 behaves like returning response status493 returns no_content494 behaves like track event495 behaves like a package tracking event496 creates a gitlab tracking event create_tag497 with already existing tag498 reuses existing tag499 returns a valid response500 behaves like returning response status501 returns no_content502 with ActiveRecord::RecordInvalid error503 behaves like returning response status with error504 returns bad_request and error message505 with invalid package name506 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/507 behaves like returning response status with error508 returns not_found and error message509 package_name: "", status: :not_found, error: "404 Not Found"510 behaves like returning response status with error511 returns not_found and error message512 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"513 behaves like returning response status with error514 returns bad_request and error message515 with invalid tag name516 tag_name: "", status: :not_found, error: "404 Not Found"517 behaves like returning response status with error518 returns not_found and error message519 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"520 behaves like returning response status with error521 returns bad_request and error message522 with invalid version523 version: " ", status: :bad_request, error: "\"Version\" not given"524 behaves like returning response status with error525 returns bad_request and error message526 version: "", status: :bad_request, error: "\"Version\" not given"527 behaves like returning response status with error528 returns bad_request and error message529 version: nil, status: :bad_request, error: "\"Version\" not given"530 behaves like returning response status with error531 returns bad_request and error message532 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden533 behaves like reject create package tag request534 behaves like returning response status535 returns forbidden536 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found537 behaves like returning response status with error538 returns not_found and error message539 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden540 behaves like reject create package tag request541 behaves like returning response status542 returns forbidden543 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok544 behaves like accept create package tag request545 with valid package name546 creates the package tag547 returns a valid response548 behaves like returning response status549 returns no_content550 behaves like track event551 behaves like a package tracking event552 creates a gitlab tracking event create_tag553 with already existing tag554 reuses existing tag555 returns a valid response556 behaves like returning response status557 returns no_content558 with ActiveRecord::RecordInvalid error559 behaves like returning response status with error560 returns bad_request and error message561 with invalid package name562 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/563 behaves like returning response status with error564 returns not_found and error message565 package_name: "", status: :not_found, error: "404 Not Found"566 behaves like returning response status with error567 returns not_found and error message568 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"569 behaves like returning response status with error570 returns bad_request and error message571 with invalid tag name572 tag_name: "", status: :not_found, error: "404 Not Found"573 behaves like returning response status with error574 returns not_found and error message575 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"576 behaves like returning response status with error577 returns bad_request and error message578 with invalid version579 version: " ", status: :bad_request, error: "\"Version\" not given"580 behaves like returning response status with error581 returns bad_request and error message582 version: "", status: :bad_request, error: "\"Version\" not given"583 behaves like returning response status with error584 returns bad_request and error message585 version: nil, status: :bad_request, error: "\"Version\" not given"586 behaves like returning response status with error587 returns bad_request and error message588 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden589 behaves like reject create package tag request590 behaves like returning response status591 returns forbidden592 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok593 behaves like accept create package tag request594 with valid package name595 creates the package tag596 returns a valid response597 behaves like returning response status598 returns no_content599 behaves like track event600 behaves like a package tracking event601 creates a gitlab tracking event create_tag602 with already existing tag603 reuses existing tag604 returns a valid response605 behaves like returning response status606 returns no_content607 with ActiveRecord::RecordInvalid error608 behaves like returning response status with error609 returns bad_request and error message610 with invalid package name611 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/612 behaves like returning response status with error613 returns not_found and error message614 package_name: "", status: :not_found, error: "404 Not Found"615 behaves like returning response status with error616 returns not_found and error message617 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"618 behaves like returning response status with error619 returns bad_request and error message620 with invalid tag name621 tag_name: "", status: :not_found, error: "404 Not Found"622 behaves like returning response status with error623 returns not_found and error message624 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"625 behaves like returning response status with error626 returns bad_request and error message627 with invalid version628 version: " ", status: :bad_request, error: "\"Version\" not given"629 behaves like returning response status with error630 returns bad_request and error message631 version: "", status: :bad_request, error: "\"Version\" not given"632 behaves like returning response status with error633 returns bad_request and error message634 version: nil, status: :bad_request, error: "\"Version\" not given"635 behaves like returning response status with error636 returns bad_request and error message637 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden638 behaves like reject create package tag request639 behaves like returning response status640 returns forbidden641 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok642 behaves like accept create package tag request643 with valid package name644 creates the package tag645 returns a valid response646 behaves like returning response status647 returns no_content648 behaves like track event649 behaves like a package tracking event650 creates a gitlab tracking event create_tag651 with already existing tag652 reuses existing tag653 returns a valid response654 behaves like returning response status655 returns no_content656 with ActiveRecord::RecordInvalid error657 behaves like returning response status with error658 returns bad_request and error message659 with invalid package name660 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/661 behaves like returning response status with error662 returns not_found and error message663 package_name: "", status: :not_found, error: "404 Not Found"664 behaves like returning response status with error665 returns not_found and error message666 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"667 behaves like returning response status with error668 returns bad_request and error message669 with invalid tag name670 tag_name: "", status: :not_found, error: "404 Not Found"671 behaves like returning response status with error672 returns not_found and error message673 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"674 behaves like returning response status with error675 returns bad_request and error message676 with invalid version677 version: " ", status: :bad_request, error: "\"Version\" not given"678 behaves like returning response status with error679 returns bad_request and error message680 version: "", status: :bad_request, error: "\"Version\" not given"681 behaves like returning response status with error682 returns bad_request and error message683 version: nil, status: :bad_request, error: "\"Version\" not given"684 behaves like returning response status with error685 returns bad_request and error message686 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden687 behaves like reject create package tag request688 behaves like returning response status689 returns forbidden690 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found691 behaves like returning response status with error692 returns not_found and error message693 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden694 behaves like reject create package tag request695 behaves like returning response status696 returns forbidden697 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok698 behaves like accept create package tag request699 with valid package name700 creates the package tag701 returns a valid response702 behaves like returning response status703 returns no_content704 behaves like track event705 behaves like a package tracking event706 creates a gitlab tracking event create_tag707 with already existing tag708 reuses existing tag709 returns a valid response710 behaves like returning response status711 returns no_content712 with ActiveRecord::RecordInvalid error713 behaves like returning response status with error714 returns bad_request and error message715 with invalid package name716 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/717 behaves like returning response status with error718 returns not_found and error message719 package_name: "", status: :not_found, error: "404 Not Found"720 behaves like returning response status with error721 returns not_found and error message722 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"723 behaves like returning response status with error724 returns bad_request and error message725 with invalid tag name726 tag_name: "", status: :not_found, error: "404 Not Found"727 behaves like returning response status with error728 returns not_found and error message729 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"730 behaves like returning response status with error731 returns bad_request and error message732 with invalid version733 version: " ", status: :bad_request, error: "\"Version\" not given"734 behaves like returning response status with error735 returns bad_request and error message736 version: "", status: :bad_request, error: "\"Version\" not given"737 behaves like returning response status with error738 returns bad_request and error message739 version: nil, status: :bad_request, error: "\"Version\" not given"740 behaves like returning response status with error741 returns bad_request and error message742 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden743 behaves like reject create package tag request744 behaves like returning response status745 returns forbidden746 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok747 behaves like accept create package tag request748 with valid package name749 creates the package tag750 returns a valid response751 behaves like returning response status752 returns no_content753 behaves like track event754 behaves like a package tracking event755 creates a gitlab tracking event create_tag756 with already existing tag757 reuses existing tag758 returns a valid response759 behaves like returning response status760 returns no_content761 with ActiveRecord::RecordInvalid error762 behaves like returning response status with error763 returns bad_request and error message764 with invalid package name765 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/766 behaves like returning response status with error767 returns not_found and error message768 package_name: "", status: :not_found, error: "404 Not Found"769 behaves like returning response status with error770 returns not_found and error message771 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"772 behaves like returning response status with error773 returns bad_request and error message774 with invalid tag name775 tag_name: "", status: :not_found, error: "404 Not Found"776 behaves like returning response status with error777 returns not_found and error message778 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"779 behaves like returning response status with error780 returns bad_request and error message781 with invalid version782 version: " ", status: :bad_request, error: "\"Version\" not given"783 behaves like returning response status with error784 returns bad_request and error message785 version: "", status: :bad_request, error: "\"Version\" not given"786 behaves like returning response status with error787 returns bad_request and error message788 version: nil, status: :bad_request, error: "\"Version\" not given"789 behaves like returning response status with error790 returns bad_request and error message791 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden792 behaves like reject create package tag request793 behaves like returning response status794 returns forbidden795 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok796 behaves like accept create package tag request797 with valid package name798 creates the package tag799 returns a valid response800 behaves like returning response status801 returns no_content802 behaves like track event803 behaves like a package tracking event804 creates a gitlab tracking event create_tag805 with already existing tag806 reuses existing tag807 returns a valid response808 behaves like returning response status809 returns no_content810 with ActiveRecord::RecordInvalid error811 behaves like returning response status with error812 returns bad_request and error message813 with invalid package name814 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/815 behaves like returning response status with error816 returns not_found and error message817 package_name: "", status: :not_found, error: "404 Not Found"818 behaves like returning response status with error819 returns not_found and error message820 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"821 behaves like returning response status with error822 returns bad_request and error message823 with invalid tag name824 tag_name: "", status: :not_found, error: "404 Not Found"825 behaves like returning response status with error826 returns not_found and error message827 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"828 behaves like returning response status with error829 returns bad_request and error message830 with invalid version831 version: " ", status: :bad_request, error: "\"Version\" not given"832 behaves like returning response status with error833 returns bad_request and error message834 version: "", status: :bad_request, error: "\"Version\" not given"835 behaves like returning response status with error836 returns bad_request and error message837 version: nil, status: :bad_request, error: "\"Version\" not given"838 behaves like returning response status with error839 returns bad_request and error message840 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden841 behaves like reject create package tag request842 behaves like returning response status843 returns forbidden844 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found845 behaves like returning response status with error846 returns not_found and error message847 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden848 behaves like reject create package tag request849 behaves like returning response status850 returns forbidden851 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok852 behaves like accept create package tag request853 with valid package name854 creates the package tag855 returns a valid response856 behaves like returning response status857 returns no_content858 behaves like track event859 behaves like a package tracking event860 creates a gitlab tracking event create_tag861 with already existing tag862 reuses existing tag863 returns a valid response864 behaves like returning response status865 returns no_content866 with ActiveRecord::RecordInvalid error867 behaves like returning response status with error868 returns bad_request and error message869 with invalid package name870 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/871 behaves like returning response status with error872 returns not_found and error message873 package_name: "", status: :not_found, error: "404 Not Found"874 behaves like returning response status with error875 returns not_found and error message876 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"877 behaves like returning response status with error878 returns bad_request and error message879 with invalid tag name880 tag_name: "", status: :not_found, error: "404 Not Found"881 behaves like returning response status with error882 returns not_found and error message883 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"884 behaves like returning response status with error885 returns bad_request and error message886 with invalid version887 version: " ", status: :bad_request, error: "\"Version\" not given"888 behaves like returning response status with error889 returns bad_request and error message890 version: "", status: :bad_request, error: "\"Version\" not given"891 behaves like returning response status with error892 returns bad_request and error message893 version: nil, status: :bad_request, error: "\"Version\" not given"894 behaves like returning response status with error895 returns bad_request and error message896 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden897 behaves like reject create package tag request898 behaves like returning response status899 returns forbidden900 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok901 behaves like accept create package tag request902 with valid package name903 creates the package tag904 returns a valid response905 behaves like returning response status906 returns no_content907 behaves like track event908 behaves like a package tracking event909 creates a gitlab tracking event create_tag910 with already existing tag911 reuses existing tag912 returns a valid response913 behaves like returning response status914 returns no_content915 with ActiveRecord::RecordInvalid error916 behaves like returning response status with error917 returns bad_request and error message918 with invalid package name919 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/920 behaves like returning response status with error921 returns not_found and error message922 package_name: "", status: :not_found, error: "404 Not Found"923 behaves like returning response status with error924 returns not_found and error message925 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"926 behaves like returning response status with error927 returns bad_request and error message928 with invalid tag name929 tag_name: "", status: :not_found, error: "404 Not Found"930 behaves like returning response status with error931 returns not_found and error message932 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"933 behaves like returning response status with error934 returns bad_request and error message935 with invalid version936 version: " ", status: :bad_request, error: "\"Version\" not given"937 behaves like returning response status with error938 returns bad_request and error message939 version: "", status: :bad_request, error: "\"Version\" not given"940 behaves like returning response status with error941 returns bad_request and error message942 version: nil, status: :bad_request, error: "\"Version\" not given"943 behaves like returning response status with error944 returns bad_request and error message945 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden946 behaves like reject create package tag request947 behaves like returning response status948 returns forbidden949 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok950 behaves like accept create package tag request951 with valid package name952 creates the package tag953 returns a valid response954 behaves like returning response status955 returns no_content956 behaves like track event957 behaves like a package tracking event958 creates a gitlab tracking event create_tag959 with already existing tag960 reuses existing tag961 returns a valid response962 behaves like returning response status963 returns no_content964 with ActiveRecord::RecordInvalid error965 behaves like returning response status with error966 returns bad_request and error message967 with invalid package name968 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/969 behaves like returning response status with error970 returns not_found and error message971 package_name: "", status: :not_found, error: "404 Not Found"972 behaves like returning response status with error973 returns not_found and error message974 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"975 behaves like returning response status with error976 returns bad_request and error message977 with invalid tag name978 tag_name: "", status: :not_found, error: "404 Not Found"979 behaves like returning response status with error980 returns not_found and error message981 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"982 behaves like returning response status with error983 returns bad_request and error message984 with invalid version985 version: " ", status: :bad_request, error: "\"Version\" not given"986 behaves like returning response status with error987 returns bad_request and error message988 version: "", status: :bad_request, error: "\"Version\" not given"989 behaves like returning response status with error990 returns bad_request and error message991 version: nil, status: :bad_request, error: "\"Version\" not given"992 behaves like returning response status with error993 returns bad_request and error message994 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden995 behaves like reject create package tag request996 behaves like returning response status997 returns forbidden998 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found999 behaves like returning response status with error1000 returns not_found and error message1001 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1002 behaves like reject create package tag request1003 behaves like returning response status1004 returns forbidden1005 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1006 behaves like accept create package tag request1007 with valid package name1008 creates the package tag1009 returns a valid response1010 behaves like returning response status1011 returns no_content1012 behaves like track event1013 behaves like a package tracking event1014 creates a gitlab tracking event create_tag1015 with already existing tag1016 reuses existing tag1017 returns a valid response1018 behaves like returning response status1019 returns no_content1020 with ActiveRecord::RecordInvalid error1021 behaves like returning response status with error1022 returns bad_request and error message1023 with invalid package name1024 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1025 behaves like returning response status with error1026 returns not_found and error message1027 package_name: "", status: :not_found, error: "404 Not Found"1028 behaves like returning response status with error1029 returns not_found and error message1030 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1031 behaves like returning response status with error1032 returns bad_request and error message1033 with invalid tag name1034 tag_name: "", status: :not_found, error: "404 Not Found"1035 behaves like returning response status with error1036 returns not_found and error message1037 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1038 behaves like returning response status with error1039 returns bad_request and error message1040 with invalid version1041 version: " ", status: :bad_request, error: "\"Version\" not given"1042 behaves like returning response status with error1043 returns bad_request and error message1044 version: "", status: :bad_request, error: "\"Version\" not given"1045 behaves like returning response status with error1046 returns bad_request and error message1047 version: nil, status: :bad_request, error: "\"Version\" not given"1048 behaves like returning response status with error1049 returns bad_request and error message1050 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1051 behaves like reject create package tag request1052 behaves like returning response status1053 returns forbidden1054 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1055 behaves like accept create package tag request1056 with valid package name1057 creates the package tag1058 returns a valid response1059 behaves like returning response status1060 returns no_content1061 behaves like track event1062 behaves like a package tracking event1063 creates a gitlab tracking event create_tag1064 with already existing tag1065 reuses existing tag1066 returns a valid response1067 behaves like returning response status1068 returns no_content1069 with ActiveRecord::RecordInvalid error1070 behaves like returning response status with error1071 returns bad_request and error message1072 with invalid package name1073 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1074 behaves like returning response status with error1075 returns not_found and error message1076 package_name: "", status: :not_found, error: "404 Not Found"1077 behaves like returning response status with error1078 returns not_found and error message1079 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1080 behaves like returning response status with error1081 returns bad_request and error message1082 with invalid tag name1083 tag_name: "", status: :not_found, error: "404 Not Found"1084 behaves like returning response status with error1085 returns not_found and error message1086 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1087 behaves like returning response status with error1088 returns bad_request and error message1089 with invalid version1090 version: " ", status: :bad_request, error: "\"Version\" not given"1091 behaves like returning response status with error1092 returns bad_request and error message1093 version: "", status: :bad_request, error: "\"Version\" not given"1094 behaves like returning response status with error1095 returns bad_request and error message1096 version: nil, status: :bad_request, error: "\"Version\" not given"1097 behaves like returning response status with error1098 returns bad_request and error message1099 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1100 behaves like reject create package tag request1101 behaves like returning response status1102 returns forbidden1103 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1104 behaves like accept create package tag request1105 with valid package name1106 creates the package tag1107 returns a valid response1108 behaves like returning response status1109 returns no_content1110 behaves like track event1111 behaves like a package tracking event1112 creates a gitlab tracking event create_tag1113 with already existing tag1114 reuses existing tag1115 returns a valid response1116 behaves like returning response status1117 returns no_content1118 with ActiveRecord::RecordInvalid error1119 behaves like returning response status with error1120 returns bad_request and error message1121 with invalid package name1122 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1123 behaves like returning response status with error1124 returns not_found and error message1125 package_name: "", status: :not_found, error: "404 Not Found"1126 behaves like returning response status with error1127 returns not_found and error message1128 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1129 behaves like returning response status with error1130 returns bad_request and error message1131 with invalid tag name1132 tag_name: "", status: :not_found, error: "404 Not Found"1133 behaves like returning response status with error1134 returns not_found and error message1135 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1136 behaves like returning response status with error1137 returns bad_request and error message1138 with invalid version1139 version: " ", status: :bad_request, error: "\"Version\" not given"1140 behaves like returning response status with error1141 returns bad_request and error message1142 version: "", status: :bad_request, error: "\"Version\" not given"1143 behaves like returning response status with error1144 returns bad_request and error message1145 version: nil, status: :bad_request, error: "\"Version\" not given"1146 behaves like returning response status with error1147 returns bad_request and error message1148 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1149 behaves like reject create package tag request1150 behaves like returning response status1151 returns forbidden1152 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1153 behaves like returning response status with error1154 returns not_found and error message1155 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1156 behaves like reject create package tag request1157 behaves like returning response status1158 returns forbidden1159 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1160 behaves like accept create package tag request1161 with valid package name1162 creates the package tag1163 returns a valid response1164 behaves like returning response status1165 returns no_content1166 behaves like track event1167 behaves like a package tracking event1168 creates a gitlab tracking event create_tag1169 with already existing tag1170 reuses existing tag1171 returns a valid response1172 behaves like returning response status1173 returns no_content1174 with ActiveRecord::RecordInvalid error1175 behaves like returning response status with error1176 returns bad_request and error message1177 with invalid package name1178 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1179 behaves like returning response status with error1180 returns not_found and error message1181 package_name: "", status: :not_found, error: "404 Not Found"1182 behaves like returning response status with error1183 returns not_found and error message1184 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1185 behaves like returning response status with error1186 returns bad_request and error message1187 with invalid tag name1188 tag_name: "", status: :not_found, error: "404 Not Found"1189 behaves like returning response status with error1190 returns not_found and error message1191 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1192 behaves like returning response status with error1193 returns bad_request and error message1194 with invalid version1195 version: " ", status: :bad_request, error: "\"Version\" not given"1196 behaves like returning response status with error1197 returns bad_request and error message1198 version: "", status: :bad_request, error: "\"Version\" not given"1199 behaves like returning response status with error1200 returns bad_request and error message1201 version: nil, status: :bad_request, error: "\"Version\" not given"1202 behaves like returning response status with error1203 returns bad_request and error message1204 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1205 behaves like reject create package tag request1206 behaves like returning response status1207 returns forbidden1208 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1209 behaves like accept create package tag request1210 with valid package name1211 creates the package tag1212 returns a valid response1213 behaves like returning response status1214 returns no_content1215 behaves like track event1216 behaves like a package tracking event1217 creates a gitlab tracking event create_tag1218 with already existing tag1219 reuses existing tag1220 returns a valid response1221 behaves like returning response status1222 returns no_content1223 with ActiveRecord::RecordInvalid error1224 behaves like returning response status with error1225 returns bad_request and error message1226 with invalid package name1227 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1228 behaves like returning response status with error1229 returns not_found and error message1230 package_name: "", status: :not_found, error: "404 Not Found"1231 behaves like returning response status with error1232 returns not_found and error message1233 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1234 behaves like returning response status with error1235 returns bad_request and error message1236 with invalid tag name1237 tag_name: "", status: :not_found, error: "404 Not Found"1238 behaves like returning response status with error1239 returns not_found and error message1240 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1241 behaves like returning response status with error1242 returns bad_request and error message1243 with invalid version1244 version: " ", status: :bad_request, error: "\"Version\" not given"1245 behaves like returning response status with error1246 returns bad_request and error message1247 version: "", status: :bad_request, error: "\"Version\" not given"1248 behaves like returning response status with error1249 returns bad_request and error message1250 version: nil, status: :bad_request, error: "\"Version\" not given"1251 behaves like returning response status with error1252 returns bad_request and error message1253 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1254 behaves like reject create package tag request1255 behaves like returning response status1256 returns forbidden1257 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1258 behaves like accept create package tag request1259 with valid package name1260 creates the package tag1261 returns a valid response1262 behaves like returning response status1263 returns no_content1264 behaves like track event1265 behaves like a package tracking event1266 creates a gitlab tracking event create_tag1267 with already existing tag1268 reuses existing tag1269 returns a valid response1270 behaves like returning response status1271 returns no_content1272 with ActiveRecord::RecordInvalid error1273 behaves like returning response status with error1274 returns bad_request and error message1275 with invalid package name1276 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1277 behaves like returning response status with error1278 returns not_found and error message1279 package_name: "", status: :not_found, error: "404 Not Found"1280 behaves like returning response status with error1281 returns not_found and error message1282 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1283 behaves like returning response status with error1284 returns bad_request and error message1285 with invalid tag name1286 tag_name: "", status: :not_found, error: "404 Not Found"1287 behaves like returning response status with error1288 returns not_found and error message1289 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1290 behaves like returning response status with error1291 returns bad_request and error message1292 with invalid version1293 version: " ", status: :bad_request, error: "\"Version\" not given"1294 behaves like returning response status with error1295 returns bad_request and error message1296 version: "", status: :bad_request, error: "\"Version\" not given"1297 behaves like returning response status with error1298 returns bad_request and error message1299 version: nil, status: :bad_request, error: "\"Version\" not given"1300 behaves like returning response status with error1301 returns bad_request and error message1302 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden1303 behaves like reject create package tag request1304 behaves like returning response status1305 returns forbidden1306 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1307 behaves like returning response status with error1308 returns not_found and error message1309 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1310 behaves like accept create package tag request1311 with valid package name1312 creates the package tag1313 returns a valid response1314 behaves like returning response status1315 returns no_content1316 behaves like track event1317 behaves like a package tracking event1318 creates a gitlab tracking event create_tag1319 with already existing tag1320 reuses existing tag1321 returns a valid response1322 behaves like returning response status1323 returns no_content1324 with ActiveRecord::RecordInvalid error1325 behaves like returning response status with error1326 returns bad_request and error message1327 with invalid package name1328 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1329 behaves like returning response status with error1330 returns not_found and error message1331 package_name: "", status: :not_found, error: "404 Not Found"1332 behaves like returning response status with error1333 returns not_found and error message1334 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1335 behaves like returning response status with error1336 returns bad_request and error message1337 with invalid tag name1338 tag_name: "", status: :not_found, error: "404 Not Found"1339 behaves like returning response status with error1340 returns not_found and error message1341 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1342 behaves like returning response status with error1343 returns bad_request and error message1344 with invalid version1345 version: " ", status: :bad_request, error: "\"Version\" not given"1346 behaves like returning response status with error1347 returns bad_request and error message1348 version: "", status: :bad_request, error: "\"Version\" not given"1349 behaves like returning response status with error1350 returns bad_request and error message1351 version: nil, status: :bad_request, error: "\"Version\" not given"1352 behaves like returning response status with error1353 returns bad_request and error message1354 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1355 behaves like accept create package tag request1356 with valid package name1357 creates the package tag1358 returns a valid response1359 behaves like returning response status1360 returns no_content1361 behaves like track event1362 behaves like a package tracking event1363 creates a gitlab tracking event create_tag1364 with already existing tag1365 reuses existing tag1366 returns a valid response1367 behaves like returning response status1368 returns no_content1369 with ActiveRecord::RecordInvalid error1370 behaves like returning response status with error1371 returns bad_request and error message1372 with invalid package name1373 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1374 behaves like returning response status with error1375 returns not_found and error message1376 package_name: "", status: :not_found, error: "404 Not Found"1377 behaves like returning response status with error1378 returns not_found and error message1379 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1380 behaves like returning response status with error1381 returns bad_request and error message1382 with invalid tag name1383 tag_name: "", status: :not_found, error: "404 Not Found"1384 behaves like returning response status with error1385 returns not_found and error message1386 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1387 behaves like returning response status with error1388 returns bad_request and error message1389 with invalid version1390 version: " ", status: :bad_request, error: "\"Version\" not given"1391 behaves like returning response status with error1392 returns bad_request and error message1393 version: "", status: :bad_request, error: "\"Version\" not given"1394 behaves like returning response status with error1395 returns bad_request and error message1396 version: nil, status: :bad_request, error: "\"Version\" not given"1397 behaves like returning response status with error1398 returns bad_request and error message1399 auth: :job_token, package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1400 behaves like accept create package tag request1401 with valid package name1402 creates the package tag1403 returns a valid response1404 behaves like returning response status1405 returns no_content1406 behaves like track event1407 behaves like a package tracking event1408 creates a gitlab tracking event create_tag1409 with already existing tag1410 reuses existing tag1411 returns a valid response1412 behaves like returning response status1413 returns no_content1414 with ActiveRecord::RecordInvalid error1415 behaves like returning response status with error1416 returns bad_request and error message1417 with invalid package name1418 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1419 behaves like returning response status with error1420 returns not_found and error message1421 package_name: "", status: :not_found, error: "404 Not Found"1422 behaves like returning response status with error1423 returns not_found and error message1424 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1425 behaves like returning response status with error1426 returns bad_request and error message1427 with invalid tag name1428 tag_name: "", status: :not_found, error: "404 Not Found"1429 behaves like returning response status with error1430 returns not_found and error message1431 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1432 behaves like returning response status with error1433 returns bad_request and error message1434 with invalid version1435 version: " ", status: :bad_request, error: "\"Version\" not given"1436 behaves like returning response status with error1437 returns bad_request and error message1438 version: "", status: :bad_request, error: "\"Version\" not given"1439 behaves like returning response status with error1440 returns bad_request and error message1441 version: nil, status: :bad_request, error: "\"Version\" not given"1442 behaves like returning response status with error1443 returns bad_request and error message1444 auth: :job_token, package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1445 behaves like returning response status with error1446 returns not_found and error message1447 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1448 behaves like accept create package tag request1449 with valid package name1450 creates the package tag1451 returns a valid response1452 behaves like returning response status1453 returns no_content1454 behaves like track event1455 behaves like a package tracking event1456 creates a gitlab tracking event create_tag1457 with already existing tag1458 reuses existing tag1459 returns a valid response1460 behaves like returning response status1461 returns no_content1462 with ActiveRecord::RecordInvalid error1463 behaves like returning response status with error1464 returns bad_request and error message1465 with invalid package name1466 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1467 behaves like returning response status with error1468 returns not_found and error message1469 package_name: "", status: :not_found, error: "404 Not Found"1470 behaves like returning response status with error1471 returns not_found and error message1472 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1473 behaves like returning response status with error1474 returns bad_request and error message1475 with invalid tag name1476 tag_name: "", status: :not_found, error: "404 Not Found"1477 behaves like returning response status with error1478 returns not_found and error message1479 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1480 behaves like returning response status with error1481 returns bad_request and error message1482 with invalid version1483 version: " ", status: :bad_request, error: "\"Version\" not given"1484 behaves like returning response status with error1485 returns bad_request and error message1486 version: "", status: :bad_request, error: "\"Version\" not given"1487 behaves like returning response status with error1488 returns bad_request and error message1489 version: nil, status: :bad_request, error: "\"Version\" not given"1490 behaves like returning response status with error1491 returns bad_request and error message1492 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :private, 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 behaves like track event1500 behaves like a package tracking event1501 creates a gitlab tracking event create_tag1502 with already existing tag1503 reuses existing tag1504 returns a valid response1505 behaves like returning response status1506 returns no_content1507 with ActiveRecord::RecordInvalid error1508 behaves like returning response status with error1509 returns bad_request and error message1510 with invalid package name1511 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1512 behaves like returning response status with error1513 returns not_found and error message1514 package_name: "", status: :not_found, error: "404 Not Found"1515 behaves like returning response status with error1516 returns not_found and error message1517 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1518 behaves like returning response status with error1519 returns bad_request and error message1520 with invalid tag name1521 tag_name: "", status: :not_found, error: "404 Not Found"1522 behaves like returning response status with error1523 returns not_found and error message1524 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1525 behaves like returning response status with error1526 returns bad_request and error message1527 with invalid version1528 version: " ", status: :bad_request, error: "\"Version\" not given"1529 behaves like returning response status with error1530 returns bad_request and error message1531 version: "", status: :bad_request, error: "\"Version\" not given"1532 behaves like returning response status with error1533 returns bad_request and error message1534 version: nil, status: :bad_request, error: "\"Version\" not given"1535 behaves like returning response status with error1536 returns bad_request and error message1537 auth: :job_token, package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1538 behaves like accept create package tag request1539 with valid package name1540 creates the package tag1541 returns a valid response1542 behaves like returning response status1543 returns no_content1544 behaves like track event1545 behaves like a package tracking event1546 creates a gitlab tracking event create_tag1547 with already existing tag1548 reuses existing tag1549 returns a valid response1550 behaves like returning response status1551 returns no_content1552 with ActiveRecord::RecordInvalid error1553 behaves like returning response status with error1554 returns bad_request and error message1555 with invalid package name1556 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1557 behaves like returning response status with error1558 returns not_found and error message1559 package_name: "", status: :not_found, error: "404 Not Found"1560 behaves like returning response status with error1561 returns not_found and error message1562 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1563 behaves like returning response status with error1564 returns bad_request and error message1565 with invalid tag name1566 tag_name: "", status: :not_found, error: "404 Not Found"1567 behaves like returning response status with error1568 returns not_found and error message1569 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1570 behaves like returning response status with error1571 returns bad_request and error message1572 with invalid version1573 version: " ", status: :bad_request, error: "\"Version\" not given"1574 behaves like returning response status with error1575 returns bad_request and error message1576 version: "", status: :bad_request, error: "\"Version\" not given"1577 behaves like returning response status with error1578 returns bad_request and error message1579 version: nil, status: :bad_request, error: "\"Version\" not given"1580 behaves like returning response status with error1581 returns bad_request and error message1582 auth: :job_token, package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1583 behaves like returning response status with error1584 returns not_found and error message1585 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1586 behaves like accept create package tag request1587 with valid package name1588 creates the package tag1589 returns a valid response1590 behaves like returning response status1591 returns no_content1592 behaves like track event1593 behaves like a package tracking event1594 creates a gitlab tracking event create_tag1595 with already existing tag1596 reuses existing tag1597 returns a valid response1598 behaves like returning response status1599 returns no_content1600 with ActiveRecord::RecordInvalid error1601 behaves like returning response status with error1602 returns bad_request and error message1603 with invalid package name1604 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1605 behaves like returning response status with error1606 returns not_found and error message1607 package_name: "", status: :not_found, error: "404 Not Found"1608 behaves like returning response status with error1609 returns not_found and error message1610 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1611 behaves like returning response status with error1612 returns bad_request and error message1613 with invalid tag name1614 tag_name: "", status: :not_found, error: "404 Not Found"1615 behaves like returning response status with error1616 returns not_found and error message1617 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1618 behaves like returning response status with error1619 returns bad_request and error message1620 with invalid version1621 version: " ", status: :bad_request, error: "\"Version\" not given"1622 behaves like returning response status with error1623 returns bad_request and error message1624 version: "", status: :bad_request, error: "\"Version\" not given"1625 behaves like returning response status with error1626 returns bad_request and error message1627 version: nil, status: :bad_request, error: "\"Version\" not given"1628 behaves like returning response status with error1629 returns bad_request and error message1630 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1631 behaves like accept create package tag request1632 with valid package name1633 creates the package tag1634 returns a valid response1635 behaves like returning response status1636 returns no_content1637 behaves like track event1638 behaves like a package tracking event1639 creates a gitlab tracking event create_tag1640 with already existing tag1641 reuses existing tag1642 returns a valid response1643 behaves like returning response status1644 returns no_content1645 with ActiveRecord::RecordInvalid error1646 behaves like returning response status with error1647 returns bad_request and error message1648 with invalid package name1649 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1650 behaves like returning response status with error1651 returns not_found and error message1652 package_name: "", status: :not_found, error: "404 Not Found"1653 behaves like returning response status with error1654 returns not_found and error message1655 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1656 behaves like returning response status with error1657 returns bad_request and error message1658 with invalid tag name1659 tag_name: "", status: :not_found, error: "404 Not Found"1660 behaves like returning response status with error1661 returns not_found and error message1662 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1663 behaves like returning response status with error1664 returns bad_request and error message1665 with invalid version1666 version: " ", status: :bad_request, error: "\"Version\" not given"1667 behaves like returning response status with error1668 returns bad_request and error message1669 version: "", status: :bad_request, error: "\"Version\" not given"1670 behaves like returning response status with error1671 returns bad_request and error message1672 version: nil, status: :bad_request, error: "\"Version\" not given"1673 behaves like returning response status with error1674 returns bad_request and error message1675 auth: :job_token, package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1676 behaves like accept create package tag request1677 with valid package name1678 creates the package tag1679 returns a valid response1680 behaves like returning response status1681 returns no_content1682 behaves like track event1683 behaves like a package tracking event1684 creates a gitlab tracking event create_tag1685 with already existing tag1686 reuses existing tag1687 returns a valid response1688 behaves like returning response status1689 returns no_content1690 with ActiveRecord::RecordInvalid error1691 behaves like returning response status with error1692 returns bad_request and error message1693 with invalid package name1694 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1695 behaves like returning response status with error1696 returns not_found and error message1697 package_name: "", status: :not_found, error: "404 Not Found"1698 behaves like returning response status with error1699 returns not_found and error message1700 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1701 behaves like returning response status with error1702 returns bad_request and error message1703 with invalid tag name1704 tag_name: "", status: :not_found, error: "404 Not Found"1705 behaves like returning response status with error1706 returns not_found and error message1707 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1708 behaves like returning response status with error1709 returns bad_request and error message1710 with invalid version1711 version: " ", status: :bad_request, error: "\"Version\" not given"1712 behaves like returning response status with error1713 returns bad_request and error message1714 version: "", status: :bad_request, error: "\"Version\" not given"1715 behaves like returning response status with error1716 returns bad_request and error message1717 version: nil, status: :bad_request, error: "\"Version\" not given"1718 behaves like returning response status with error1719 returns bad_request and error message1720 auth: :job_token, package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1721 behaves like returning response status with error1722 returns not_found and error message1723 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1724 behaves like accept create package tag request1725 with valid package name1726 creates the package tag1727 returns a valid response1728 behaves like returning response status1729 returns no_content1730 behaves like track event1731 behaves like a package tracking event1732 creates a gitlab tracking event create_tag1733 with already existing tag1734 reuses existing tag1735 returns a valid response1736 behaves like returning response status1737 returns no_content1738 with ActiveRecord::RecordInvalid error1739 behaves like returning response status with error1740 returns bad_request and error message1741 with invalid package name1742 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1743 behaves like returning response status with error1744 returns not_found and error message1745 package_name: "", status: :not_found, error: "404 Not Found"1746 behaves like returning response status with error1747 returns not_found and error message1748 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1749 behaves like returning response status with error1750 returns bad_request and error message1751 with invalid tag name1752 tag_name: "", status: :not_found, error: "404 Not Found"1753 behaves like returning response status with error1754 returns not_found and error message1755 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1756 behaves like returning response status with error1757 returns bad_request and error message1758 with invalid version1759 version: " ", status: :bad_request, error: "\"Version\" not given"1760 behaves like returning response status with error1761 returns bad_request and error message1762 version: "", status: :bad_request, error: "\"Version\" not given"1763 behaves like returning response status with error1764 returns bad_request and error message1765 version: nil, status: :bad_request, error: "\"Version\" not given"1766 behaves like returning response status with error1767 returns bad_request and error message1768 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1769 behaves like accept create package tag request1770 with valid package name1771 creates the package tag1772 returns a valid response1773 behaves like returning response status1774 returns no_content1775 behaves like track event1776 behaves like a package tracking event1777 creates a gitlab tracking event create_tag1778 with already existing tag1779 reuses existing tag1780 returns a valid response1781 behaves like returning response status1782 returns no_content1783 with ActiveRecord::RecordInvalid error1784 behaves like returning response status with error1785 returns bad_request and error message1786 with invalid package name1787 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1788 behaves like returning response status with error1789 returns not_found and error message1790 package_name: "", status: :not_found, error: "404 Not Found"1791 behaves like returning response status with error1792 returns not_found and error message1793 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1794 behaves like returning response status with error1795 returns bad_request and error message1796 with invalid tag name1797 tag_name: "", status: :not_found, error: "404 Not Found"1798 behaves like returning response status with error1799 returns not_found and error message1800 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1801 behaves like returning response status with error1802 returns bad_request and error message1803 with invalid version1804 version: " ", status: :bad_request, error: "\"Version\" not given"1805 behaves like returning response status with error1806 returns bad_request and error message1807 version: "", status: :bad_request, error: "\"Version\" not given"1808 behaves like returning response status with error1809 returns bad_request and error message1810 version: nil, status: :bad_request, error: "\"Version\" not given"1811 behaves like returning response status with error1812 returns bad_request and error message1813 auth: :deploy_token, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1814 behaves like accept create package tag request1815 with valid package name1816 creates the package tag1817 returns a valid response1818 behaves like returning response status1819 returns no_content1820 behaves like track event1821 behaves like a package tracking event1822 creates a gitlab tracking event create_tag1823 with already existing tag1824 reuses existing tag1825 returns a valid response1826 behaves like returning response status1827 returns no_content1828 with ActiveRecord::RecordInvalid error1829 behaves like returning response status with error1830 returns bad_request and error message1831 with invalid package name1832 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1833 behaves like returning response status with error1834 returns not_found and error message1835 package_name: "", status: :not_found, error: "404 Not Found"1836 behaves like returning response status with error1837 returns not_found and error message1838 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1839 behaves like returning response status with error1840 returns bad_request and error message1841 with invalid tag name1842 tag_name: "", status: :not_found, error: "404 Not Found"1843 behaves like returning response status with error1844 returns not_found and error message1845 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1846 behaves like returning response status with error1847 returns bad_request and error message1848 with invalid version1849 version: " ", status: :bad_request, error: "\"Version\" not given"1850 behaves like returning response status with error1851 returns bad_request and error message1852 version: "", status: :bad_request, error: "\"Version\" not given"1853 behaves like returning response status with error1854 returns bad_request and error message1855 version: nil, status: :bad_request, error: "\"Version\" not given"1856 behaves like returning response status with error1857 returns bad_request and error message1858 auth: :deploy_token, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1859 behaves like returning response status with error1860 returns not_found and error message1861 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1862 behaves like accept create package tag request1863 with valid package name1864 creates the package tag1865 returns a valid response1866 behaves like returning response status1867 returns no_content1868 behaves like track event1869 behaves like a package tracking event1870 creates a gitlab tracking event create_tag1871 with already existing tag1872 reuses existing tag1873 returns a valid response1874 behaves like returning response status1875 returns no_content1876 with ActiveRecord::RecordInvalid error1877 behaves like returning response status with error1878 returns bad_request and error message1879 with invalid package name1880 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1881 behaves like returning response status with error1882 returns not_found and error message1883 package_name: "", status: :not_found, error: "404 Not Found"1884 behaves like returning response status with error1885 returns not_found and error message1886 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1887 behaves like returning response status with error1888 returns bad_request and error message1889 with invalid tag name1890 tag_name: "", status: :not_found, error: "404 Not Found"1891 behaves like returning response status with error1892 returns not_found and error message1893 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1894 behaves like returning response status with error1895 returns bad_request and error message1896 with invalid version1897 version: " ", status: :bad_request, error: "\"Version\" not given"1898 behaves like returning response status with error1899 returns bad_request and error message1900 version: "", status: :bad_request, error: "\"Version\" not given"1901 behaves like returning response status with error1902 returns bad_request and error message1903 version: nil, status: :bad_request, error: "\"Version\" not given"1904 behaves like returning response status with error1905 returns bad_request and error message1906 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1907 behaves like accept create package tag request1908 with valid package name1909 creates the package tag1910 returns a valid response1911 behaves like returning response status1912 returns no_content1913 behaves like track event1914 behaves like a package tracking event1915 creates a gitlab tracking event create_tag1916 with already existing tag1917 reuses existing tag1918 returns a valid response1919 behaves like returning response status1920 returns no_content1921 with ActiveRecord::RecordInvalid error1922 behaves like returning response status with error1923 returns bad_request and error message1924 with invalid package name1925 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1926 behaves like returning response status with error1927 returns not_found and error message1928 package_name: "", status: :not_found, error: "404 Not Found"1929 behaves like returning response status with error1930 returns not_found and error message1931 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1932 behaves like returning response status with error1933 returns bad_request and error message1934 with invalid tag name1935 tag_name: "", status: :not_found, error: "404 Not Found"1936 behaves like returning response status with error1937 returns not_found and error message1938 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1939 behaves like returning response status with error1940 returns bad_request and error message1941 with invalid version1942 version: " ", status: :bad_request, error: "\"Version\" not given"1943 behaves like returning response status with error1944 returns bad_request and error message1945 version: "", status: :bad_request, error: "\"Version\" not given"1946 behaves like returning response status with error1947 returns bad_request and error message1948 version: nil, status: :bad_request, error: "\"Version\" not given"1949 behaves like returning response status with error1950 returns bad_request and error message1951 auth: :deploy_token, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1952 behaves like accept create package tag request1953 with valid package name1954 creates the package tag1955 returns a valid response1956 behaves like returning response status1957 returns no_content1958 behaves like track event1959 behaves like a package tracking event1960 creates a gitlab tracking event create_tag1961 with already existing tag1962 reuses existing tag1963 returns a valid response1964 behaves like returning response status1965 returns no_content1966 with ActiveRecord::RecordInvalid error1967 behaves like returning response status with error1968 returns bad_request and error message1969 with invalid package name1970 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/1971 behaves like returning response status with error1972 returns not_found and error message1973 package_name: "", status: :not_found, error: "404 Not Found"1974 behaves like returning response status with error1975 returns not_found and error message1976 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"1977 behaves like returning response status with error1978 returns bad_request and error message1979 with invalid tag name1980 tag_name: "", status: :not_found, error: "404 Not Found"1981 behaves like returning response status with error1982 returns not_found and error message1983 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"1984 behaves like returning response status with error1985 returns bad_request and error message1986 with invalid version1987 version: " ", status: :bad_request, error: "\"Version\" not given"1988 behaves like returning response status with error1989 returns bad_request and error message1990 version: "", status: :bad_request, error: "\"Version\" not given"1991 behaves like returning response status with error1992 returns bad_request and error message1993 version: nil, status: :bad_request, error: "\"Version\" not given"1994 behaves like returning response status with error1995 returns bad_request and error message1996 auth: :deploy_token, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1997 behaves like returning response status with error1998 returns not_found and error message1999 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok2000 behaves like accept create package tag request2001 with valid package name2002 creates the package tag2003 returns a valid response2004 behaves like returning response status2005 returns no_content2006 behaves like track event2007 behaves like a package tracking event2008 creates a gitlab tracking event create_tag2009 with already existing tag2010 reuses existing tag2011 returns a valid response2012 behaves like returning response status2013 returns no_content2014 with ActiveRecord::RecordInvalid error2015 behaves like returning response status with error2016 returns bad_request and error message2017 with invalid package name2018 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/2019 behaves like returning response status with error2020 returns not_found and error message2021 package_name: "", status: :not_found, error: "404 Not Found"2022 behaves like returning response status with error2023 returns not_found and error message2024 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2025 behaves like returning response status with error2026 returns bad_request and error message2027 with invalid tag name2028 tag_name: "", status: :not_found, error: "404 Not Found"2029 behaves like returning response status with error2030 returns not_found and error message2031 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2032 behaves like returning response status with error2033 returns bad_request and error message2034 with invalid version2035 version: " ", status: :bad_request, error: "\"Version\" not given"2036 behaves like returning response status with error2037 returns bad_request and error message2038 version: "", status: :bad_request, error: "\"Version\" not given"2039 behaves like returning response status with error2040 returns bad_request and error message2041 version: nil, status: :bad_request, error: "\"Version\" not given"2042 behaves like returning response status with error2043 returns bad_request and error message2044 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok2045 behaves like accept create package tag request2046 with valid package name2047 creates the package tag2048 returns a valid response2049 behaves like returning response status2050 returns no_content2051 behaves like track event2052 behaves like a package tracking event2053 creates a gitlab tracking event create_tag2054 with already existing tag2055 reuses existing tag2056 returns a valid response2057 behaves like returning response status2058 returns no_content2059 with ActiveRecord::RecordInvalid error2060 behaves like returning response status with error2061 returns bad_request and error message2062 with invalid package name2063 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/2064 behaves like returning response status with error2065 returns not_found and error message2066 package_name: "", status: :not_found, error: "404 Not Found"2067 behaves like returning response status with error2068 returns not_found and error message2069 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2070 behaves like returning response status with error2071 returns bad_request and error message2072 with invalid tag name2073 tag_name: "", status: :not_found, error: "404 Not Found"2074 behaves like returning response status with error2075 returns not_found and error message2076 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2077 behaves like returning response status with error2078 returns bad_request and error message2079 with invalid version2080 version: " ", status: :bad_request, error: "\"Version\" not given"2081 behaves like returning response status with error2082 returns bad_request and error message2083 version: "", status: :bad_request, error: "\"Version\" not given"2084 behaves like returning response status with error2085 returns bad_request and error message2086 version: nil, status: :bad_request, error: "\"Version\" not given"2087 behaves like returning response status with error2088 returns bad_request and error message2089 auth: :deploy_token, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok2090 behaves like accept create package tag request2091 with valid package name2092 creates the package tag2093 returns a valid response2094 behaves like returning response status2095 returns no_content2096 behaves like track event2097 behaves like a package tracking event2098 creates a gitlab tracking event create_tag2099 with already existing tag2100 reuses existing tag2101 returns a valid response2102 behaves like returning response status2103 returns no_content2104 with ActiveRecord::RecordInvalid error2105 behaves like returning response status with error2106 returns bad_request and error message2107 with invalid package name2108 package_name: "unknown", status: :not_found, error: /\A(Package|Project) not found\z/2109 behaves like returning response status with error2110 returns not_found and error message2111 package_name: "", status: :not_found, error: "404 Not Found"2112 behaves like returning response status with error2113 returns not_found and error message2114 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2115 behaves like returning response status with error2116 returns bad_request and error message2117 with invalid tag name2118 tag_name: "", status: :not_found, error: "404 Not Found"2119 behaves like returning response status with error2120 returns not_found and error message2121 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2122 behaves like returning response status with error2123 returns bad_request and error message2124 with invalid version2125 version: " ", status: :bad_request, error: "\"Version\" not given"2126 behaves like returning response status with error2127 returns bad_request and error message2128 version: "", status: :bad_request, error: "\"Version\" not given"2129 behaves like returning response status with error2130 returns bad_request and error message2131 version: nil, status: :bad_request, error: "\"Version\" not given"2132 behaves like returning response status with error2133 returns bad_request and error message2134 auth: :deploy_token, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found2135 behaves like returning response status with error2136 returns not_found and error message2137 behaves like enqueue a worker to sync a metadata cache2138 enqueues a worker to create a metadata cache2139 with npm_metadata_cache disabled2140 behaves like does not enqueue a worker to sync a metadata cache2141 does not enqueue a worker to sync a metadata cache2142 DELETE /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag2143 behaves like handling delete dist tag requests2144 with a group namespace2145 behaves like handling all conditions2146 behaves like handling different package names, visibilities and user roles for tags create or delete2147 auth: nil, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized2148 behaves like reject delete package tag request2149 behaves like returning response status2150 returns unauthorized2151 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized2152 behaves like reject delete package tag request2153 behaves like returning response status2154 returns unauthorized2155 auth: nil, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized2156 behaves like reject delete package tag request2157 behaves like returning response status2158 returns unauthorized2159 auth: nil, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized2160 behaves like reject delete package tag request2161 behaves like returning response status2162 returns unauthorized2163 auth: nil, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized2164 behaves like reject delete package tag request2165 behaves like returning response status2166 returns unauthorized2167 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized2168 behaves like reject delete package tag request2169 behaves like returning response status2170 returns unauthorized2171 auth: nil, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized2172 behaves like reject delete package tag request2173 behaves like returning response status2174 returns unauthorized2175 auth: nil, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized2176 behaves like reject delete package tag request2177 behaves like returning response status2178 returns unauthorized2179 auth: nil, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized2180 behaves like reject delete package tag request2181 behaves like returning response status2182 returns unauthorized2183 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized2184 behaves like reject delete package tag request2185 behaves like returning response status2186 returns unauthorized2187 auth: nil, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized2188 behaves like reject delete package tag request2189 behaves like returning response status2190 returns unauthorized2191 auth: nil, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized2192 behaves like reject delete package tag request2193 behaves like returning response status2194 returns unauthorized2195 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2196 behaves like reject delete package tag request2197 behaves like returning response status2198 returns forbidden2199 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2200 behaves like accept delete package tag request2201 with valid package name2202 returns a valid response2203 destroy the package tag2204 behaves like returning response status2205 returns no_content2206 behaves like track event2207 behaves like a package tracking event2208 creates a gitlab tracking event delete_tag2209 with tag from other package2210 behaves like returning response status2211 returns not_found2212 with ActiveRecord::RecordInvalid error2213 behaves like returning response status with error2214 returns bad_request and error message2215 with invalid package name2216 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2217 behaves like returning response status with error2218 returns not_found and error message2219 package_name: "", status: :not_found, error: "404 Not Found"2220 behaves like returning response status with error2221 returns not_found and error message2222 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2223 behaves like returning response status with error2224 returns bad_request and error message2225 with invalid tag name2226 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2227 behaves like returning response status with error2228 returns not_found and error message2229 tag_name: "", status: :not_found, error: "404 Not Found"2230 behaves like returning response status with error2231 returns not_found and error message2232 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2233 behaves like returning response status with error2234 returns bad_request and error message2235 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2236 behaves like reject delete package tag request2237 behaves like returning response status2238 returns forbidden2239 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2240 behaves like accept delete package tag request2241 with valid package name2242 returns a valid response2243 destroy the package tag2244 behaves like returning response status2245 returns no_content2246 behaves like track event2247 behaves like a package tracking event2248 creates a gitlab tracking event delete_tag2249 with tag from other package2250 behaves like returning response status2251 returns not_found2252 with ActiveRecord::RecordInvalid error2253 behaves like returning response status with error2254 returns bad_request and error message2255 with invalid package name2256 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2257 behaves like returning response status with error2258 returns not_found and error message2259 package_name: "", status: :not_found, error: "404 Not Found"2260 behaves like returning response status with error2261 returns not_found and error message2262 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2263 behaves like returning response status with error2264 returns bad_request and error message2265 with invalid tag name2266 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2267 behaves like returning response status with error2268 returns not_found and error message2269 tag_name: "", status: :not_found, error: "404 Not Found"2270 behaves like returning response status with error2271 returns not_found and error message2272 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2273 behaves like returning response status with error2274 returns bad_request and error message2275 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2276 behaves like reject delete package tag request2277 behaves like returning response status2278 returns forbidden2279 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2280 behaves like accept delete package tag request2281 with valid package name2282 returns a valid response2283 destroy the package tag2284 behaves like returning response status2285 returns no_content2286 behaves like track event2287 behaves like a package tracking event2288 creates a gitlab tracking event delete_tag2289 with tag from other package2290 behaves like returning response status2291 returns not_found2292 with ActiveRecord::RecordInvalid error2293 behaves like returning response status with error2294 returns bad_request and error message2295 with invalid package name2296 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2297 behaves like returning response status with error2298 returns not_found and error message2299 package_name: "", status: :not_found, error: "404 Not Found"2300 behaves like returning response status with error2301 returns not_found and error message2302 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2303 behaves like returning response status with error2304 returns bad_request and error message2305 with invalid tag name2306 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2307 behaves like returning response status with error2308 returns not_found and error message2309 tag_name: "", status: :not_found, error: "404 Not Found"2310 behaves like returning response status with error2311 returns not_found and error message2312 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2313 behaves like returning response status with error2314 returns bad_request and error message2315 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2316 behaves like reject delete package tag request2317 behaves like returning response status2318 returns forbidden2319 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2320 behaves like returning response status with error2321 returns not_found and error message2322 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2323 behaves like reject delete package tag request2324 behaves like returning response status2325 returns forbidden2326 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2327 behaves like accept delete package tag request2328 with valid package name2329 returns a valid response2330 destroy the package tag2331 behaves like returning response status2332 returns no_content2333 behaves like track event2334 behaves like a package tracking event2335 creates a gitlab tracking event delete_tag2336 with tag from other package2337 behaves like returning response status2338 returns not_found2339 with ActiveRecord::RecordInvalid error2340 behaves like returning response status with error2341 returns bad_request and error message2342 with invalid package name2343 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2344 behaves like returning response status with error2345 returns not_found and error message2346 package_name: "", status: :not_found, error: "404 Not Found"2347 behaves like returning response status with error2348 returns not_found and error message2349 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2350 behaves like returning response status with error2351 returns bad_request and error message2352 with invalid tag name2353 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2354 behaves like returning response status with error2355 returns not_found and error message2356 tag_name: "", status: :not_found, error: "404 Not Found"2357 behaves like returning response status with error2358 returns not_found and error message2359 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2360 behaves like returning response status with error2361 returns bad_request and error message2362 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2363 behaves like reject delete package tag request2364 behaves like returning response status2365 returns forbidden2366 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2367 behaves like accept delete package tag request2368 with valid package name2369 returns a valid response2370 destroy the package tag2371 behaves like returning response status2372 returns no_content2373 behaves like track event2374 behaves like a package tracking event2375 creates a gitlab tracking event delete_tag2376 with tag from other package2377 behaves like returning response status2378 returns not_found2379 with ActiveRecord::RecordInvalid error2380 behaves like returning response status with error2381 returns bad_request and error message2382 with invalid package name2383 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2384 behaves like returning response status with error2385 returns not_found and error message2386 package_name: "", status: :not_found, error: "404 Not Found"2387 behaves like returning response status with error2388 returns not_found and error message2389 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2390 behaves like returning response status with error2391 returns bad_request and error message2392 with invalid tag name2393 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2394 behaves like returning response status with error2395 returns not_found and error message2396 tag_name: "", status: :not_found, error: "404 Not Found"2397 behaves like returning response status with error2398 returns not_found and error message2399 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2400 behaves like returning response status with error2401 returns bad_request and error message2402 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2403 behaves like reject delete package tag request2404 behaves like returning response status2405 returns forbidden2406 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2407 behaves like accept delete package tag request2408 with valid package name2409 returns a valid response2410 destroy the package tag2411 behaves like returning response status2412 returns no_content2413 behaves like track event2414 behaves like a package tracking event2415 creates a gitlab tracking event delete_tag2416 with tag from other package2417 behaves like returning response status2418 returns not_found2419 with ActiveRecord::RecordInvalid error2420 behaves like returning response status with error2421 returns bad_request and error message2422 with invalid package name2423 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2424 behaves like returning response status with error2425 returns not_found and error message2426 package_name: "", status: :not_found, error: "404 Not Found"2427 behaves like returning response status with error2428 returns not_found and error message2429 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2430 behaves like returning response status with error2431 returns bad_request and error message2432 with invalid tag name2433 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2434 behaves like returning response status with error2435 returns not_found and error message2436 tag_name: "", status: :not_found, error: "404 Not Found"2437 behaves like returning response status with error2438 returns not_found and error message2439 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2440 behaves like returning response status with error2441 returns bad_request and error message2442 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2443 behaves like reject delete package tag request2444 behaves like returning response status2445 returns forbidden2446 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2447 behaves like returning response status with error2448 returns not_found and error message2449 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2450 behaves like reject delete package tag request2451 behaves like returning response status2452 returns forbidden2453 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2454 behaves like accept delete package tag request2455 with valid package name2456 returns a valid response2457 destroy the package tag2458 behaves like returning response status2459 returns no_content2460 behaves like track event2461 behaves like a package tracking event2462 creates a gitlab tracking event delete_tag2463 with tag from other package2464 behaves like returning response status2465 returns not_found2466 with ActiveRecord::RecordInvalid error2467 behaves like returning response status with error2468 returns bad_request and error message2469 with invalid package name2470 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2471 behaves like returning response status with error2472 returns not_found and error message2473 package_name: "", status: :not_found, error: "404 Not Found"2474 behaves like returning response status with error2475 returns not_found and error message2476 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2477 behaves like returning response status with error2478 returns bad_request and error message2479 with invalid tag name2480 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2481 behaves like returning response status with error2482 returns not_found and error message2483 tag_name: "", status: :not_found, error: "404 Not Found"2484 behaves like returning response status with error2485 returns not_found and error message2486 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2487 behaves like returning response status with error2488 returns bad_request and error message2489 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2490 behaves like reject delete package tag request2491 behaves like returning response status2492 returns forbidden2493 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2494 behaves like accept delete package tag request2495 with valid package name2496 returns a valid response2497 destroy the package tag2498 behaves like returning response status2499 returns no_content2500 behaves like track event2501 behaves like a package tracking event2502 creates a gitlab tracking event delete_tag2503 with tag from other package2504 behaves like returning response status2505 returns not_found2506 with ActiveRecord::RecordInvalid error2507 behaves like returning response status with error2508 returns bad_request and error message2509 with invalid package name2510 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2511 behaves like returning response status with error2512 returns not_found and error message2513 package_name: "", status: :not_found, error: "404 Not Found"2514 behaves like returning response status with error2515 returns not_found and error message2516 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2517 behaves like returning response status with error2518 returns bad_request and error message2519 with invalid tag name2520 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2521 behaves like returning response status with error2522 returns not_found and error message2523 tag_name: "", status: :not_found, error: "404 Not Found"2524 behaves like returning response status with error2525 returns not_found and error message2526 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2527 behaves like returning response status with error2528 returns bad_request and error message2529 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2530 behaves like reject delete package tag request2531 behaves like returning response status2532 returns forbidden2533 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2534 behaves like accept delete package tag request2535 with valid package name2536 returns a valid response2537 destroy the package tag2538 behaves like returning response status2539 returns no_content2540 behaves like track event2541 behaves like a package tracking event2542 creates a gitlab tracking event delete_tag2543 with tag from other package2544 behaves like returning response status2545 returns not_found2546 with ActiveRecord::RecordInvalid error2547 behaves like returning response status with error2548 returns bad_request and error message2549 with invalid package name2550 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2551 behaves like returning response status with error2552 returns not_found and error message2553 package_name: "", status: :not_found, error: "404 Not Found"2554 behaves like returning response status with error2555 returns not_found and error message2556 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2557 behaves like returning response status with error2558 returns bad_request and error message2559 with invalid tag name2560 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2561 behaves like returning response status with error2562 returns not_found and error message2563 tag_name: "", status: :not_found, error: "404 Not Found"2564 behaves like returning response status with error2565 returns not_found and error message2566 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2567 behaves like returning response status with error2568 returns bad_request and error message2569 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2570 behaves like reject delete package tag request2571 behaves like returning response status2572 returns forbidden2573 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2574 behaves like returning response status with error2575 returns not_found and error message2576 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2577 behaves like reject delete package tag request2578 behaves like returning response status2579 returns forbidden2580 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2581 behaves like accept delete package tag request2582 with valid package name2583 returns a valid response2584 destroy the package tag2585 behaves like returning response status2586 returns no_content2587 behaves like track event2588 behaves like a package tracking event2589 creates a gitlab tracking event delete_tag2590 with tag from other package2591 behaves like returning response status2592 returns not_found2593 with ActiveRecord::RecordInvalid error2594 behaves like returning response status with error2595 returns bad_request and error message2596 with invalid package name2597 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2598 behaves like returning response status with error2599 returns not_found and error message2600 package_name: "", status: :not_found, error: "404 Not Found"2601 behaves like returning response status with error2602 returns not_found and error message2603 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2604 behaves like returning response status with error2605 returns bad_request and error message2606 with invalid tag name2607 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2608 behaves like returning response status with error2609 returns not_found and error message2610 tag_name: "", status: :not_found, error: "404 Not Found"2611 behaves like returning response status with error2612 returns not_found and error message2613 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2614 behaves like returning response status with error2615 returns bad_request and error message2616 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2617 behaves like reject delete package tag request2618 behaves like returning response status2619 returns forbidden2620 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2621 behaves like accept delete package tag request2622 with valid package name2623 returns a valid response2624 destroy the package tag2625 behaves like returning response status2626 returns no_content2627 behaves like track event2628 behaves like a package tracking event2629 creates a gitlab tracking event delete_tag2630 with tag from other package2631 behaves like returning response status2632 returns not_found2633 with ActiveRecord::RecordInvalid error2634 behaves like returning response status with error2635 returns bad_request and error message2636 with invalid package name2637 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2638 behaves like returning response status with error2639 returns not_found and error message2640 package_name: "", status: :not_found, error: "404 Not Found"2641 behaves like returning response status with error2642 returns not_found and error message2643 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2644 behaves like returning response status with error2645 returns bad_request and error message2646 with invalid tag name2647 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2648 behaves like returning response status with error2649 returns not_found and error message2650 tag_name: "", status: :not_found, error: "404 Not Found"2651 behaves like returning response status with error2652 returns not_found and error message2653 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2654 behaves like returning response status with error2655 returns bad_request and error message2656 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2657 behaves like reject delete package tag request2658 behaves like returning response status2659 returns forbidden2660 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2661 behaves like accept delete package tag request2662 with valid package name2663 returns a valid response2664 destroy the package tag2665 behaves like returning response status2666 returns no_content2667 behaves like track event2668 behaves like a package tracking event2669 creates a gitlab tracking event delete_tag2670 with tag from other package2671 behaves like returning response status2672 returns not_found2673 with ActiveRecord::RecordInvalid error2674 behaves like returning response status with error2675 returns bad_request and error message2676 with invalid package name2677 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2678 behaves like returning response status with error2679 returns not_found and error message2680 package_name: "", status: :not_found, error: "404 Not Found"2681 behaves like returning response status with error2682 returns not_found and error message2683 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2684 behaves like returning response status with error2685 returns bad_request and error message2686 with invalid tag name2687 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2688 behaves like returning response status with error2689 returns not_found and error message2690 tag_name: "", status: :not_found, error: "404 Not Found"2691 behaves like returning response status with error2692 returns not_found and error message2693 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2694 behaves like returning response status with error2695 returns bad_request and error message2696 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2697 behaves like reject delete package tag request2698 behaves like returning response status2699 returns forbidden2700 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2701 behaves like returning response status with error2702 returns not_found and error message2703 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2704 behaves like reject delete package tag request2705 behaves like returning response status2706 returns forbidden2707 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2708 behaves like accept delete package tag request2709 with valid package name2710 returns a valid response2711 destroy the package tag2712 behaves like returning response status2713 returns no_content2714 behaves like track event2715 behaves like a package tracking event2716 creates a gitlab tracking event delete_tag2717 with tag from other package2718 behaves like returning response status2719 returns not_found2720 with ActiveRecord::RecordInvalid error2721 behaves like returning response status with error2722 returns bad_request and error message2723 with invalid package name2724 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2725 behaves like returning response status with error2726 returns not_found and error message2727 package_name: "", status: :not_found, error: "404 Not Found"2728 behaves like returning response status with error2729 returns not_found and error message2730 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2731 behaves like returning response status with error2732 returns bad_request and error message2733 with invalid tag name2734 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2735 behaves like returning response status with error2736 returns not_found and error message2737 tag_name: "", status: :not_found, error: "404 Not Found"2738 behaves like returning response status with error2739 returns not_found and error message2740 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2741 behaves like returning response status with error2742 returns bad_request and error message2743 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2744 behaves like reject delete package tag request2745 behaves like returning response status2746 returns forbidden2747 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2748 behaves like accept delete package tag request2749 with valid package name2750 returns a valid response2751 destroy the package tag2752 behaves like returning response status2753 returns no_content2754 behaves like track event2755 behaves like a package tracking event2756 creates a gitlab tracking event delete_tag2757 with tag from other package2758 behaves like returning response status2759 returns not_found2760 with ActiveRecord::RecordInvalid error2761 behaves like returning response status with error2762 returns bad_request and error message2763 with invalid package name2764 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2765 behaves like returning response status with error2766 returns not_found and error message2767 package_name: "", status: :not_found, error: "404 Not Found"2768 behaves like returning response status with error2769 returns not_found and error message2770 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2771 behaves like returning response status with error2772 returns bad_request and error message2773 with invalid tag name2774 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2775 behaves like returning response status with error2776 returns not_found and error message2777 tag_name: "", status: :not_found, error: "404 Not Found"2778 behaves like returning response status with error2779 returns not_found and error message2780 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2781 behaves like returning response status with error2782 returns bad_request and error message2783 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2784 behaves like reject delete package tag request2785 behaves like returning response status2786 returns forbidden2787 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok2788 behaves like accept delete package tag request2789 with valid package name2790 returns a valid response2791 destroy the package tag2792 behaves like returning response status2793 returns no_content2794 behaves like track event2795 behaves like a package tracking event2796 creates a gitlab tracking event delete_tag2797 with tag from other package2798 behaves like returning response status2799 returns not_found2800 with ActiveRecord::RecordInvalid error2801 behaves like returning response status with error2802 returns bad_request and error message2803 with invalid package name2804 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2805 behaves like returning response status with error2806 returns not_found and error message2807 package_name: "", status: :not_found, error: "404 Not Found"2808 behaves like returning response status with error2809 returns not_found and error message2810 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2811 behaves like returning response status with error2812 returns bad_request and error message2813 with invalid tag name2814 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2815 behaves like returning response status with error2816 returns not_found and error message2817 tag_name: "", status: :not_found, error: "404 Not Found"2818 behaves like returning response status with error2819 returns not_found and error message2820 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2821 behaves like returning response status with error2822 returns bad_request and error message2823 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2824 behaves like reject delete package tag request2825 behaves like returning response status2826 returns forbidden2827 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2828 behaves like returning response status with error2829 returns not_found and error message2830 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2831 behaves like reject delete package tag request2832 behaves like returning response status2833 returns forbidden2834 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2835 behaves like accept delete package tag request2836 with valid package name2837 returns a valid response2838 destroy the package tag2839 behaves like returning response status2840 returns no_content2841 behaves like track event2842 behaves like a package tracking event2843 creates a gitlab tracking event delete_tag2844 with tag from other package2845 behaves like returning response status2846 returns not_found2847 with ActiveRecord::RecordInvalid error2848 behaves like returning response status with error2849 returns bad_request and error message2850 with invalid package name2851 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2852 behaves like returning response status with error2853 returns not_found and error message2854 package_name: "", status: :not_found, error: "404 Not Found"2855 behaves like returning response status with error2856 returns not_found and error message2857 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2858 behaves like returning response status with error2859 returns bad_request and error message2860 with invalid tag name2861 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2862 behaves like returning response status with error2863 returns not_found and error message2864 tag_name: "", status: :not_found, error: "404 Not Found"2865 behaves like returning response status with error2866 returns not_found and error message2867 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2868 behaves like returning response status with error2869 returns bad_request and error message2870 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2871 behaves like reject delete package tag request2872 behaves like returning response status2873 returns forbidden2874 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2875 behaves like accept delete package tag request2876 with valid package name2877 returns a valid response2878 destroy the package tag2879 behaves like returning response status2880 returns no_content2881 behaves like track event2882 behaves like a package tracking event2883 creates a gitlab tracking event delete_tag2884 with tag from other package2885 behaves like returning response status2886 returns not_found2887 with ActiveRecord::RecordInvalid error2888 behaves like returning response status with error2889 returns bad_request and error message2890 with invalid package name2891 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2892 behaves like returning response status with error2893 returns not_found and error message2894 package_name: "", status: :not_found, error: "404 Not Found"2895 behaves like returning response status with error2896 returns not_found and error message2897 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2898 behaves like returning response status with error2899 returns bad_request and error message2900 with invalid tag name2901 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2902 behaves like returning response status with error2903 returns not_found and error message2904 tag_name: "", status: :not_found, error: "404 Not Found"2905 behaves like returning response status with error2906 returns not_found and error message2907 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2908 behaves like returning response status with error2909 returns bad_request and error message2910 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2911 behaves like reject delete package tag request2912 behaves like returning response status2913 returns forbidden2914 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok2915 behaves like accept delete package tag request2916 with valid package name2917 returns a valid response2918 destroy the package tag2919 behaves like returning response status2920 returns no_content2921 behaves like track event2922 behaves like a package tracking event2923 creates a gitlab tracking event delete_tag2924 with tag from other package2925 behaves like returning response status2926 returns not_found2927 with ActiveRecord::RecordInvalid error2928 behaves like returning response status with error2929 returns bad_request and error message2930 with invalid package name2931 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2932 behaves like returning response status with error2933 returns not_found and error message2934 package_name: "", status: :not_found, error: "404 Not Found"2935 behaves like returning response status with error2936 returns not_found and error message2937 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2938 behaves like returning response status with error2939 returns bad_request and error message2940 with invalid tag name2941 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2942 behaves like returning response status with error2943 returns not_found and error message2944 tag_name: "", status: :not_found, error: "404 Not Found"2945 behaves like returning response status with error2946 returns not_found and error message2947 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2948 behaves like returning response status with error2949 returns bad_request and error message2950 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2951 behaves like reject delete package tag request2952 behaves like returning response status2953 returns forbidden2954 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found2955 behaves like returning response status with error2956 returns not_found and error message2957 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2958 behaves like accept delete package tag request2959 with valid package name2960 returns a valid response2961 destroy the package tag2962 behaves like returning response status2963 returns no_content2964 behaves like track event2965 behaves like a package tracking event2966 creates a gitlab tracking event delete_tag2967 with tag from other package2968 behaves like returning response status2969 returns not_found2970 with ActiveRecord::RecordInvalid error2971 behaves like returning response status with error2972 returns bad_request and error message2973 with invalid package name2974 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2975 behaves like returning response status with error2976 returns not_found and error message2977 package_name: "", status: :not_found, error: "404 Not Found"2978 behaves like returning response status with error2979 returns not_found and error message2980 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"2981 behaves like returning response status with error2982 returns bad_request and error message2983 with invalid tag name2984 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/2985 behaves like returning response status with error2986 returns not_found and error message2987 tag_name: "", status: :not_found, error: "404 Not Found"2988 behaves like returning response status with error2989 returns not_found and error message2990 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"2991 behaves like returning response status with error2992 returns bad_request and error message2993 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok2994 behaves like accept delete package tag request2995 with valid package name2996 returns a valid response2997 destroy the package tag2998 behaves like returning response status2999 returns no_content3000 behaves like track event3001 behaves like a package tracking event3002 creates a gitlab tracking event delete_tag3003 with tag from other package3004 behaves like returning response status3005 returns not_found3006 with ActiveRecord::RecordInvalid error3007 behaves like returning response status with error3008 returns bad_request and error message3009 with invalid package name3010 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3011 behaves like returning response status with error3012 returns not_found and error message3013 package_name: "", status: :not_found, error: "404 Not Found"3014 behaves like returning response status with error3015 returns not_found and error message3016 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3017 behaves like returning response status with error3018 returns bad_request and error message3019 with invalid tag name3020 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3021 behaves like returning response status with error3022 returns not_found and error message3023 tag_name: "", status: :not_found, error: "404 Not Found"3024 behaves like returning response status with error3025 returns not_found and error message3026 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3027 behaves like returning response status with error3028 returns bad_request and error message3029 auth: :job_token, package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3030 behaves like accept delete package tag request3031 with valid package name3032 returns a valid response3033 destroy the package tag3034 behaves like returning response status3035 returns no_content3036 behaves like track event3037 behaves like a package tracking event3038 creates a gitlab tracking event delete_tag3039 with tag from other package3040 behaves like returning response status3041 returns not_found3042 with ActiveRecord::RecordInvalid error3043 behaves like returning response status with error3044 returns bad_request and error message3045 with invalid package name3046 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3047 behaves like returning response status with error3048 returns not_found and error message3049 package_name: "", status: :not_found, error: "404 Not Found"3050 behaves like returning response status with error3051 returns not_found and error message3052 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3053 behaves like returning response status with error3054 returns bad_request and error message3055 with invalid tag name3056 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3057 behaves like returning response status with error3058 returns not_found and error message3059 tag_name: "", status: :not_found, error: "404 Not Found"3060 behaves like returning response status with error3061 returns not_found and error message3062 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3063 behaves like returning response status with error3064 returns bad_request and error message3065 auth: :job_token, package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3066 behaves like returning response status with error3067 returns not_found and error message3068 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3069 behaves like accept delete package tag request3070 with valid package name3071 returns a valid response3072 destroy the package tag3073 behaves like returning response status3074 returns no_content3075 behaves like track event3076 behaves like a package tracking event3077 creates a gitlab tracking event delete_tag3078 with tag from other package3079 behaves like returning response status3080 returns not_found3081 with ActiveRecord::RecordInvalid error3082 behaves like returning response status with error3083 returns bad_request and error message3084 with invalid package name3085 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3086 behaves like returning response status with error3087 returns not_found and error message3088 package_name: "", status: :not_found, error: "404 Not Found"3089 behaves like returning response status with error3090 returns not_found and error message3091 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3092 behaves like returning response status with error3093 returns bad_request and error message3094 with invalid tag name3095 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3096 behaves like returning response status with error3097 returns not_found and error message3098 tag_name: "", status: :not_found, error: "404 Not Found"3099 behaves like returning response status with error3100 returns not_found and error message3101 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3102 behaves like returning response status with error3103 returns bad_request and error message3104 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3105 behaves like accept delete package tag request3106 with valid package name3107 returns a valid response3108 destroy the package tag3109 behaves like returning response status3110 returns no_content3111 behaves like track event3112 behaves like a package tracking event3113 creates a gitlab tracking event delete_tag3114 with tag from other package3115 behaves like returning response status3116 returns not_found3117 with ActiveRecord::RecordInvalid error3118 behaves like returning response status with error3119 returns bad_request and error message3120 with invalid package name3121 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3122 behaves like returning response status with error3123 returns not_found and error message3124 package_name: "", status: :not_found, error: "404 Not Found"3125 behaves like returning response status with error3126 returns not_found and error message3127 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3128 behaves like returning response status with error3129 returns bad_request and error message3130 with invalid tag name3131 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3132 behaves like returning response status with error3133 returns not_found and error message3134 tag_name: "", status: :not_found, error: "404 Not Found"3135 behaves like returning response status with error3136 returns not_found and error message3137 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3138 behaves like returning response status with error3139 returns bad_request and error message3140 auth: :job_token, package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3141 behaves like accept delete package tag request3142 with valid package name3143 returns a valid response3144 destroy the package tag3145 behaves like returning response status3146 returns no_content3147 behaves like track event3148 behaves like a package tracking event3149 creates a gitlab tracking event delete_tag3150 with tag from other package3151 behaves like returning response status3152 returns not_found3153 with ActiveRecord::RecordInvalid error3154 behaves like returning response status with error3155 returns bad_request and error message3156 with invalid package name3157 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3158 behaves like returning response status with error3159 returns not_found and error message3160 package_name: "", status: :not_found, error: "404 Not Found"3161 behaves like returning response status with error3162 returns not_found and error message3163 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3164 behaves like returning response status with error3165 returns bad_request and error message3166 with invalid tag name3167 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3168 behaves like returning response status with error3169 returns not_found and error message3170 tag_name: "", status: :not_found, error: "404 Not Found"3171 behaves like returning response status with error3172 returns not_found and error message3173 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3174 behaves like returning response status with error3175 returns bad_request and error message3176 auth: :job_token, package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3177 behaves like returning response status with error3178 returns not_found and error message3179 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3180 behaves like accept delete package tag request3181 with valid package name3182 returns a valid response3183 destroy the package tag3184 behaves like returning response status3185 returns no_content3186 behaves like track event3187 behaves like a package tracking event3188 creates a gitlab tracking event delete_tag3189 with tag from other package3190 behaves like returning response status3191 returns not_found3192 with ActiveRecord::RecordInvalid error3193 behaves like returning response status with error3194 returns bad_request and error message3195 with invalid package name3196 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3197 behaves like returning response status with error3198 returns not_found and error message3199 package_name: "", status: :not_found, error: "404 Not Found"3200 behaves like returning response status with error3201 returns not_found and error message3202 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3203 behaves like returning response status with error3204 returns bad_request and error message3205 with invalid tag name3206 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3207 behaves like returning response status with error3208 returns not_found and error message3209 tag_name: "", status: :not_found, error: "404 Not Found"3210 behaves like returning response status with error3211 returns not_found and error message3212 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3213 behaves like returning response status with error3214 returns bad_request and error message3215 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3216 behaves like accept delete package tag request3217 with valid package name3218 returns a valid response3219 destroy the package tag3220 behaves like returning response status3221 returns no_content3222 behaves like track event3223 behaves like a package tracking event3224 creates a gitlab tracking event delete_tag3225 with tag from other package3226 behaves like returning response status3227 returns not_found3228 with ActiveRecord::RecordInvalid error3229 behaves like returning response status with error3230 returns bad_request and error message3231 with invalid package name3232 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3233 behaves like returning response status with error3234 returns not_found and error message3235 package_name: "", status: :not_found, error: "404 Not Found"3236 behaves like returning response status with error3237 returns not_found and error message3238 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3239 behaves like returning response status with error3240 returns bad_request and error message3241 with invalid tag name3242 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3243 behaves like returning response status with error3244 returns not_found and error message3245 tag_name: "", status: :not_found, error: "404 Not Found"3246 behaves like returning response status with error3247 returns not_found and error message3248 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3249 behaves like returning response status with error3250 returns bad_request and error message3251 auth: :job_token, package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3252 behaves like accept delete package tag request3253 with valid package name3254 returns a valid response3255 destroy the package tag3256 behaves like returning response status3257 returns no_content3258 behaves like track event3259 behaves like a package tracking event3260 creates a gitlab tracking event delete_tag3261 with tag from other package3262 behaves like returning response status3263 returns not_found3264 with ActiveRecord::RecordInvalid error3265 behaves like returning response status with error3266 returns bad_request and error message3267 with invalid package name3268 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3269 behaves like returning response status with error3270 returns not_found and error message3271 package_name: "", status: :not_found, error: "404 Not Found"3272 behaves like returning response status with error3273 returns not_found and error message3274 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3275 behaves like returning response status with error3276 returns bad_request and error message3277 with invalid tag name3278 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3279 behaves like returning response status with error3280 returns not_found and error message3281 tag_name: "", status: :not_found, error: "404 Not Found"3282 behaves like returning response status with error3283 returns not_found and error message3284 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3285 behaves like returning response status with error3286 returns bad_request and error message3287 auth: :job_token, package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3288 behaves like returning response status with error3289 returns not_found and error message3290 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3291 behaves like accept delete package tag request3292 with valid package name3293 returns a valid response3294 destroy the package tag3295 behaves like returning response status3296 returns no_content3297 behaves like track event3298 behaves like a package tracking event3299 creates a gitlab tracking event delete_tag3300 with tag from other package3301 behaves like returning response status3302 returns not_found3303 with ActiveRecord::RecordInvalid error3304 behaves like returning response status with error3305 returns bad_request and error message3306 with invalid package name3307 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3308 behaves like returning response status with error3309 returns not_found and error message3310 package_name: "", status: :not_found, error: "404 Not Found"3311 behaves like returning response status with error3312 returns not_found and error message3313 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3314 behaves like returning response status with error3315 returns bad_request and error message3316 with invalid tag name3317 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3318 behaves like returning response status with error3319 returns not_found and error message3320 tag_name: "", status: :not_found, error: "404 Not Found"3321 behaves like returning response status with error3322 returns not_found and error message3323 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3324 behaves like returning response status with error3325 returns bad_request and error message3326 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3327 behaves like accept delete package tag request3328 with valid package name3329 returns a valid response3330 destroy the package tag3331 behaves like returning response status3332 returns no_content3333 behaves like track event3334 behaves like a package tracking event3335 creates a gitlab tracking event delete_tag3336 with tag from other package3337 behaves like returning response status3338 returns not_found3339 with ActiveRecord::RecordInvalid error3340 behaves like returning response status with error3341 returns bad_request and error message3342 with invalid package name3343 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3344 behaves like returning response status with error3345 returns not_found and error message3346 package_name: "", status: :not_found, error: "404 Not Found"3347 behaves like returning response status with error3348 returns not_found and error message3349 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3350 behaves like returning response status with error3351 returns bad_request and error message3352 with invalid tag name3353 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3354 behaves like returning response status with error3355 returns not_found and error message3356 tag_name: "", status: :not_found, error: "404 Not Found"3357 behaves like returning response status with error3358 returns not_found and error message3359 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3360 behaves like returning response status with error3361 returns bad_request and error message3362 auth: :deploy_token, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3363 behaves like accept delete package tag request3364 with valid package name3365 returns a valid response3366 destroy the package tag3367 behaves like returning response status3368 returns no_content3369 behaves like track event3370 behaves like a package tracking event3371 creates a gitlab tracking event delete_tag3372 with tag from other package3373 behaves like returning response status3374 returns not_found3375 with ActiveRecord::RecordInvalid error3376 behaves like returning response status with error3377 returns bad_request and error message3378 with invalid package name3379 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3380 behaves like returning response status with error3381 returns not_found and error message3382 package_name: "", status: :not_found, error: "404 Not Found"3383 behaves like returning response status with error3384 returns not_found and error message3385 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3386 behaves like returning response status with error3387 returns bad_request and error message3388 with invalid tag name3389 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3390 behaves like returning response status with error3391 returns not_found and error message3392 tag_name: "", status: :not_found, error: "404 Not Found"3393 behaves like returning response status with error3394 returns not_found and error message3395 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3396 behaves like returning response status with error3397 returns bad_request and error message3398 auth: :deploy_token, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found3399 behaves like returning response status with error3400 returns not_found and error message3401 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3402 behaves like accept delete package tag request3403 with valid package name3404 returns a valid response3405 destroy the package tag3406 behaves like returning response status3407 returns no_content3408 behaves like track event3409 behaves like a package tracking event3410 creates a gitlab tracking event delete_tag3411 with tag from other package3412 behaves like returning response status3413 returns not_found3414 with ActiveRecord::RecordInvalid error3415 behaves like returning response status with error3416 returns bad_request and error message3417 with invalid package name3418 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3419 behaves like returning response status with error3420 returns not_found and error message3421 package_name: "", status: :not_found, error: "404 Not Found"3422 behaves like returning response status with error3423 returns not_found and error message3424 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3425 behaves like returning response status with error3426 returns bad_request and error message3427 with invalid tag name3428 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3429 behaves like returning response status with error3430 returns not_found and error message3431 tag_name: "", status: :not_found, error: "404 Not Found"3432 behaves like returning response status with error3433 returns not_found and error message3434 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3435 behaves like returning response status with error3436 returns bad_request and error message3437 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3438 behaves like accept delete package tag request3439 with valid package name3440 returns a valid response3441 destroy the package tag3442 behaves like returning response status3443 returns no_content3444 behaves like track event3445 behaves like a package tracking event3446 creates a gitlab tracking event delete_tag3447 with tag from other package3448 behaves like returning response status3449 returns not_found3450 with ActiveRecord::RecordInvalid error3451 behaves like returning response status with error3452 returns bad_request and error message3453 with invalid package name3454 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3455 behaves like returning response status with error3456 returns not_found and error message3457 package_name: "", status: :not_found, error: "404 Not Found"3458 behaves like returning response status with error3459 returns not_found and error message3460 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3461 behaves like returning response status with error3462 returns bad_request and error message3463 with invalid tag name3464 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3465 behaves like returning response status with error3466 returns not_found and error message3467 tag_name: "", status: :not_found, error: "404 Not Found"3468 behaves like returning response status with error3469 returns not_found and error message3470 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3471 behaves like returning response status with error3472 returns bad_request and error message3473 auth: :deploy_token, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3474 behaves like accept delete package tag request3475 with valid package name3476 returns a valid response3477 destroy the package tag3478 behaves like returning response status3479 returns no_content3480 behaves like track event3481 behaves like a package tracking event3482 creates a gitlab tracking event delete_tag3483 with tag from other package3484 behaves like returning response status3485 returns not_found3486 with ActiveRecord::RecordInvalid error3487 behaves like returning response status with error3488 returns bad_request and error message3489 with invalid package name3490 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3491 behaves like returning response status with error3492 returns not_found and error message3493 package_name: "", status: :not_found, error: "404 Not Found"3494 behaves like returning response status with error3495 returns not_found and error message3496 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3497 behaves like returning response status with error3498 returns bad_request and error message3499 with invalid tag name3500 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3501 behaves like returning response status with error3502 returns not_found and error message3503 tag_name: "", status: :not_found, error: "404 Not Found"3504 behaves like returning response status with error3505 returns not_found and error message3506 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3507 behaves like returning response status with error3508 returns bad_request and error message3509 auth: :deploy_token, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found3510 behaves like returning response status with error3511 returns not_found and error message3512 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3513 behaves like accept delete package tag request3514 with valid package name3515 returns a valid response3516 destroy the package tag3517 behaves like returning response status3518 returns no_content3519 behaves like track event3520 behaves like a package tracking event3521 creates a gitlab tracking event delete_tag3522 with tag from other package3523 behaves like returning response status3524 returns not_found3525 with ActiveRecord::RecordInvalid error3526 behaves like returning response status with error3527 returns bad_request and error message3528 with invalid package name3529 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3530 behaves like returning response status with error3531 returns not_found and error message3532 package_name: "", status: :not_found, error: "404 Not Found"3533 behaves like returning response status with error3534 returns not_found and error message3535 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3536 behaves like returning response status with error3537 returns bad_request and error message3538 with invalid tag name3539 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3540 behaves like returning response status with error3541 returns not_found and error message3542 tag_name: "", status: :not_found, error: "404 Not Found"3543 behaves like returning response status with error3544 returns not_found and error message3545 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3546 behaves like returning response status with error3547 returns bad_request and error message3548 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3549 behaves like accept delete package tag request3550 with valid package name3551 returns a valid response3552 destroy the package tag3553 behaves like returning response status3554 returns no_content3555 behaves like track event3556 behaves like a package tracking event3557 creates a gitlab tracking event delete_tag3558 with tag from other package3559 behaves like returning response status3560 returns not_found3561 with ActiveRecord::RecordInvalid error3562 behaves like returning response status with error3563 returns bad_request and error message3564 with invalid package name3565 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3566 behaves like returning response status with error3567 returns not_found and error message3568 package_name: "", status: :not_found, error: "404 Not Found"3569 behaves like returning response status with error3570 returns not_found and error message3571 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3572 behaves like returning response status with error3573 returns bad_request and error message3574 with invalid tag name3575 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3576 behaves like returning response status with error3577 returns not_found and error message3578 tag_name: "", status: :not_found, error: "404 Not Found"3579 behaves like returning response status with error3580 returns not_found and error message3581 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3582 behaves like returning response status with error3583 returns bad_request and error message3584 auth: :deploy_token, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3585 behaves like accept delete package tag request3586 with valid package name3587 returns a valid response3588 destroy the package tag3589 behaves like returning response status3590 returns no_content3591 behaves like track event3592 behaves like a package tracking event3593 creates a gitlab tracking event delete_tag3594 with tag from other package3595 behaves like returning response status3596 returns not_found3597 with ActiveRecord::RecordInvalid error3598 behaves like returning response status with error3599 returns bad_request and error message3600 with invalid package name3601 package_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3602 behaves like returning response status with error3603 returns not_found and error message3604 package_name: "", status: :not_found, error: "404 Not Found"3605 behaves like returning response status with error3606 returns not_found and error message3607 package_name: "%20", status: :bad_request, error: "\"Package Name\" not given"3608 behaves like returning response status with error3609 returns bad_request and error message3610 with invalid tag name3611 tag_name: "unknown", status: :not_found, error: /\A(Package tag|Project) not found\z/3612 behaves like returning response status with error3613 returns not_found and error message3614 tag_name: "", status: :not_found, error: "404 Not Found"3615 behaves like returning response status with error3616 returns not_found and error message3617 tag_name: "%20", status: :bad_request, error: "\"Tag\" not given"3618 behaves like returning response status with error3619 returns bad_request and error message3620 auth: :deploy_token, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found3621 behaves like returning response status with error3622 returns not_found and error message3623 behaves like enqueue a worker to sync a metadata cache3624 enqueues a worker to create a metadata cache3625 with npm_metadata_cache disabled3626 behaves like does not enqueue a worker to sync a metadata cache3627 does not enqueue a worker to sync a metadata cache3628 POST /api/v4/projects/:id/packages/npm/-/npm/v1/security/advisories/bulk3629 behaves like handling audit request3630 with a group namespace3631 behaves like handling all conditions3632 auth: nil, request_forward: true, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized3633 behaves like reject audit request3634 behaves like returning response status3635 returns unauthorized3636 auth: nil, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized3637 behaves like reject audit request3638 behaves like returning response status3639 returns unauthorized3640 auth: nil, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized3641 behaves like reject audit request3642 behaves like returning response status3643 returns unauthorized3644 auth: nil, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized3645 behaves like reject audit request3646 behaves like returning response status3647 returns unauthorized3648 auth: nil, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized3649 behaves like reject audit request3650 behaves like returning response status3651 returns unauthorized3652 auth: nil, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized3653 behaves like reject audit request3654 behaves like returning response status3655 returns unauthorized3656 auth: :oauth, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3657 behaves like redirect audit request3658 redirects audit request3659 auth: :oauth, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3660 behaves like redirect audit request3661 redirects audit request3662 auth: :oauth, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok3663 behaves like accept audit request3664 accepts the audit request3665 auth: :oauth, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok3666 behaves like accept audit request3667 accepts the audit request3668 auth: :oauth, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3669 behaves like redirect audit request3670 redirects audit request3671 auth: :oauth, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3672 behaves like reject audit request3673 behaves like returning response status3674 returns forbidden3675 auth: :oauth, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok3676 behaves like accept audit request3677 accepts the audit request3678 auth: :oauth, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3679 behaves like redirect audit request3680 redirects audit request3681 auth: :oauth, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3682 behaves like redirect audit request3683 redirects audit request3684 auth: :oauth, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3685 behaves like redirect audit request3686 redirects audit request3687 auth: :oauth, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok3688 behaves like accept audit request3689 accepts the audit request3690 auth: :oauth, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok3691 behaves like accept audit request3692 accepts the audit request3693 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3694 behaves like redirect audit request3695 redirects audit request3696 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3697 behaves like redirect audit request3698 redirects audit request3699 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok3700 behaves like accept audit request3701 accepts the audit request3702 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok3703 behaves like accept audit request3704 accepts the audit request3705 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3706 behaves like redirect audit request3707 redirects audit request3708 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3709 behaves like redirect audit request3710 redirects audit request3711 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3712 behaves like reject audit request3713 behaves like returning response status3714 returns forbidden3715 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok3716 behaves like accept audit request3717 accepts the audit request3718 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3719 behaves like redirect audit request3720 redirects audit request3721 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3722 behaves like redirect audit request3723 redirects audit request3724 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok3725 behaves like accept audit request3726 accepts the audit request3727 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok3728 behaves like accept audit request3729 accepts the audit request3730 auth: :job_token, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3731 behaves like redirect audit request3732 redirects audit request3733 auth: :job_token, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3734 behaves like accept audit request3735 accepts the audit request3736 auth: :job_token, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3737 behaves like redirect audit request3738 redirects audit request3739 auth: :job_token, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3740 behaves like accept audit request3741 accepts the audit request3742 auth: :job_token, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3743 behaves like redirect audit request3744 redirects audit request3745 auth: :job_token, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3746 behaves like accept audit request3747 accepts the audit request3748 auth: :deploy_token, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3749 behaves like redirect audit request3750 redirects audit request3751 auth: :deploy_token, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3752 behaves like accept audit request3753 accepts the audit request3754 auth: :deploy_token, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3755 behaves like redirect audit request3756 redirects audit request3757 auth: :deploy_token, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3758 behaves like accept audit request3759 accepts the audit request3760 auth: :deploy_token, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3761 behaves like redirect audit request3762 redirects audit request3763 auth: :deploy_token, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3764 behaves like accept audit request3765 accepts the audit request3766 with a developer3767 with a job token3768 behaves like reject audit request3769 behaves like returning response status3770 returns unauthorized3771 POST /api/v4/projects/:id/packages/npm/-/npm/v1/security/audits/quick3772 behaves like handling audit request3773 with a group namespace3774 behaves like handling all conditions3775 auth: nil, request_forward: true, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized3776 behaves like reject audit request3777 behaves like returning response status3778 returns unauthorized3779 auth: nil, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized3780 behaves like reject audit request3781 behaves like returning response status3782 returns unauthorized3783 auth: nil, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized3784 behaves like reject audit request3785 behaves like returning response status3786 returns unauthorized3787 auth: nil, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized3788 behaves like reject audit request3789 behaves like returning response status3790 returns unauthorized3791 auth: nil, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized3792 behaves like reject audit request3793 behaves like returning response status3794 returns unauthorized3795 auth: nil, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized3796 behaves like reject audit request3797 behaves like returning response status3798 returns unauthorized3799 auth: :oauth, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3800 behaves like redirect audit request3801 redirects audit request3802 auth: :oauth, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3803 behaves like redirect audit request3804 redirects audit request3805 auth: :oauth, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok3806 behaves like accept audit request3807 accepts the audit request3808 auth: :oauth, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok3809 behaves like accept audit request3810 accepts the audit request3811 auth: :oauth, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3812 behaves like redirect audit request3813 redirects audit request3814 auth: :oauth, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3815 behaves like reject audit request3816 behaves like returning response status3817 returns forbidden3818 auth: :oauth, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok3819 behaves like accept audit request3820 accepts the audit request3821 auth: :oauth, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3822 behaves like redirect audit request3823 redirects audit request3824 auth: :oauth, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3825 behaves like redirect audit request3826 redirects audit request3827 auth: :oauth, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3828 behaves like redirect audit request3829 redirects audit request3830 auth: :oauth, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok3831 behaves like accept audit request3832 accepts the audit request3833 auth: :oauth, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok3834 behaves like accept audit request3835 accepts the audit request3836 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3837 behaves like redirect audit request3838 redirects audit request3839 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3840 behaves like redirect audit request3841 redirects audit request3842 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok3843 behaves like accept audit request3844 accepts the audit request3845 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok3846 behaves like accept audit request3847 accepts the audit request3848 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3849 behaves like redirect audit request3850 redirects audit request3851 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3852 behaves like redirect audit request3853 redirects audit request3854 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3855 behaves like reject audit request3856 behaves like returning response status3857 returns forbidden3858 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok3859 behaves like accept audit request3860 accepts the audit request3861 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect3862 behaves like redirect audit request3863 redirects audit request3864 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect3865 behaves like redirect audit request3866 redirects audit request3867 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok3868 behaves like accept audit request3869 accepts the audit request3870 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok3871 behaves like accept audit request3872 accepts the audit request3873 auth: :job_token, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3874 behaves like redirect audit request3875 redirects audit request3876 auth: :job_token, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3877 behaves like accept audit request3878 accepts the audit request3879 auth: :job_token, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3880 behaves like redirect audit request3881 redirects audit request3882 auth: :job_token, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3883 behaves like accept audit request3884 accepts the audit request3885 auth: :job_token, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect3886 behaves like redirect audit request3887 redirects audit request3888 auth: :job_token, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3889 behaves like accept audit request3890 accepts the audit request3891 auth: :deploy_token, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3892 behaves like redirect audit request3893 redirects audit request3894 auth: :deploy_token, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3895 behaves like accept audit request3896 accepts the audit request3897 auth: :deploy_token, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3898 behaves like redirect audit request3899 redirects audit request3900 auth: :deploy_token, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3901 behaves like accept audit request3902 accepts the audit request3903 auth: :deploy_token, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect3904 behaves like redirect audit request3905 redirects audit request3906 auth: :deploy_token, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3907 behaves like accept audit request3908 accepts the audit request3909 with a developer3910 with a job token3911 behaves like reject audit request3912 behaves like returning response status3913 returns unauthorized3914 GET /api/v4/projects/:id/packages/npm/*package_name/-/*file_name3915 a public project3916 behaves like successfully downloads the file3917 returns the file3918 behaves like a package tracking event3919 creates a gitlab tracking event pull_package3920 behaves like bumping the package last downloaded at field3921 bumps last_downloaded_at3922 with a job token for a different user3923 behaves like successfully downloads the file3924 returns the file3925 private project3926 behaves like a package file that requires auth3927 denies download with no token3928 with access token3929 behaves like successfully downloads the file3930 returns the file3931 behaves like a package tracking event3932 creates a gitlab tracking event pull_package3933 behaves like bumping the package last downloaded at field3934 bumps last_downloaded_at3935 with job token3936 behaves like successfully downloads the file3937 returns the file3938 behaves like a package tracking event3939 creates a gitlab tracking event pull_package3940 behaves like bumping the package last downloaded at field3941 bumps last_downloaded_at3942 with guest3943 denies download when not enough permissions3944 with access to package registry for everyone3945 behaves like successfully downloads the file3946 returns the file3947 internal project3948 behaves like a package file that requires auth3949 denies download with no token3950 with access token3951 behaves like successfully downloads the file3952 returns the file3953 behaves like a package tracking event3954 creates a gitlab tracking event pull_package3955 behaves like bumping the package last downloaded at field3956 bumps last_downloaded_at3957 with job token3958 behaves like successfully downloads the file3959 returns the file3960 behaves like a package tracking event3961 creates a gitlab tracking event pull_package3962 behaves like bumping the package last downloaded at field3963 bumps last_downloaded_at3964 with a job token for a different user3965 behaves like successfully downloads the file3966 returns the file3967 PUT /api/v4/projects/:id/packages/npm/:package_name3968 when params are correct3969 invalid package record3970 invalid package name3971 behaves like handling invalid record with 400 error3972 handles an ActiveRecord::RecordInvalid exception with 400 error3973 behaves like not a package tracking event3974 does not create a gitlab tracking event3975 invalid package version3976 version: "1"3977 behaves like handling invalid record with 400 error3978 handles an ActiveRecord::RecordInvalid exception with 400 error3979 behaves like not a package tracking event3980 does not create a gitlab tracking event3981 version: "1.2"3982 behaves like handling invalid record with 400 error3983 handles an ActiveRecord::RecordInvalid exception with 400 error3984 behaves like not a package tracking event3985 does not create a gitlab tracking event3986 version: "1./2.3"3987 behaves like handling invalid record with 400 error3988 handles an ActiveRecord::RecordInvalid exception with 400 error3989 behaves like not a package tracking event3990 does not create a gitlab tracking event3991 version: "../../../../../1.2.3"3992 behaves like handling invalid record with 400 error3993 handles an ActiveRecord::RecordInvalid exception with 400 error3994 behaves like not a package tracking event3995 does not create a gitlab tracking event3996 version: "%2e%2e%2f1.2.3"3997 behaves like handling invalid record with 400 error3998 handles an ActiveRecord::RecordInvalid exception with 400 error3999 behaves like not a package tracking event4000 does not create a gitlab tracking event4001 invalid package attachment data4002 behaves like handling invalid record with 400 error4003 handles an ActiveRecord::RecordInvalid exception with 400 error4004 behaves like not a package tracking event4005 does not create a gitlab tracking event4006 valid package params4007 with a scoped name4008 behaves like handling upload with different authentications4009 creates npm package with file with job token4010 with access token4011 behaves like a package tracking event4012 creates a gitlab tracking event push_package4013 behaves like a successful package creation4014 creates npm package with file4015 with an authenticated job token4016 creates the package metadata4017 with any scoped name4018 behaves like handling upload with different authentications4019 creates npm package with file with job token4020 with access token4021 behaves like a package tracking event4022 creates a gitlab tracking event push_package4023 behaves like a successful package creation4024 creates npm package with file4025 with an authenticated job token4026 creates the package metadata4027 with an unscoped name4028 behaves like handling upload with different authentications4029 creates npm package with file with job token4030 with access token4031 behaves like a package tracking event4032 creates a gitlab tracking event push_package4033 behaves like a successful package creation4034 creates npm package with file4035 with an authenticated job token4036 creates the package metadata4037 behaves like enqueue a worker to sync a metadata cache4038 enqueues a worker to create a metadata cache4039 with npm_metadata_cache disabled4040 behaves like does not enqueue a worker to sync a metadata cache4041 does not enqueue a worker to sync a metadata cache4042 with an existing package4043 following the naming convention4044 behaves like handling invalid record with 400 error4045 handles an ActiveRecord::RecordInvalid exception with 400 error4046 behaves like not a package tracking event4047 does not create a gitlab tracking event4048 with a new version4049 behaves like uploading the package4050 uploads the package4051 not following the naming convention4052 behaves like uploading the package4053 uploads the package4054 package creation fails4055 returns an error if the package already exists4056 behaves like not a package tracking event4057 does not create a gitlab tracking event4058 behaves like does not enqueue a worker to sync a metadata cache4059 does not enqueue a worker to sync a metadata cache4060 with dependencies4061 creates npm package with file and dependencies4062 with existing dependencies4063 reuses them4064 when the lease to create a package is already taken4065 returns an error4066 behaves like not a package tracking event4067 does not create a gitlab tracking event4068 with a too large metadata structure4069 when a large value for readme is set4070 behaves like a successful package creation4071 creates npm package with file4072 when a large value for readmeFilename is set4073 behaves like a successful package creation4074 creates npm package with file4075 when a large value for licenseText is set4076 behaves like a successful package creation4077 creates npm package with file4078 when a large value for contributors is set4079 behaves like a successful package creation4080 creates npm package with file4081 when a large value for exports is set4082 behaves like a successful package creation4083 creates npm package with file4084 when the large field is not one of the ignored fields4085 behaves like handling invalid record with 400 error4086 handles an ActiveRecord::RecordInvalid exception with 400 error4087 behaves like not a package tracking event4088 does not create a gitlab tracking event4089 when the Npm-Command in headers is deprecate4090 when the user is not authorized to destroy the package4091 does not call DeprecatePackageService4092 when the user is authorized to destroy the package4093 calls DeprecatePackageService with the correct arguments4094Git LFS API and storage4095 with projects4096 behaves like LFS http requests4097 when LFS is disabled globally4098 download request4099 behaves like LFS http 501 response4100 behaves like LFS http expected response code and message4101 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4102 upload request4103 behaves like LFS http 501 response4104 behaves like LFS http expected response code and message4105 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4106 unauthenticated4107 download request4108 behaves like LFS http 401 response4109 behaves like LFS http expected response code and message4110 is expected to match "text/plain"4111 upload request4112 behaves like LFS http 401 response4113 behaves like LFS http expected response code and message4114 is expected to match "text/plain"4115 without access4116 download request4117 behaves like LFS http 404 response4118 behaves like LFS http expected response code and message4119 is expected to match "application/vnd.git-lfs+json"4120 upload request4121 behaves like LFS http 404 response4122 behaves like LFS http expected response code and message4123 is expected to match "application/vnd.git-lfs+json"4124 with guest access4125 download request4126 behaves like LFS http 404 response4127 behaves like LFS http expected response code and message4128 is expected to match "application/vnd.git-lfs+json"4129 upload request4130 behaves like LFS http 404 response4131 behaves like LFS http expected response code and message4132 is expected to match "application/vnd.git-lfs+json"4133 with download permission4134 download request4135 behaves like LFS http 200 blob response4136 behaves like LFS http expected response code and message4137 is expected to match "application/octet-stream"4138 when container does not exist4139 behaves like LFS http 404 response4140 behaves like LFS http expected response code and message4141 is expected to match "application/vnd.git-lfs+json"4142 upload request4143 behaves like LFS http 403 response4144 behaves like LFS http expected response code and message4145 is expected to eq "Access forbidden. Check your access level."4146 with upload permission4147 upload request4148 behaves like LFS http 200 response4149 behaves like LFS http expected response code and message4150 is expected to match "application/vnd.git-lfs+json"4151 deprecated API4152 when fetching LFS object using deprecated API4153 behaves like deprecated request4154 behaves like LFS http expected response code and message4155 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4156 when handling LFS request using deprecated API4157 behaves like deprecated request4158 behaves like LFS http expected response code and message4159 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4160 project specific LFS settings4161 LFS disabled in project4162 when uploading4163 behaves like LFS http 404 response4164 behaves like LFS http expected response code and message4165 is expected to match "application/vnd.git-lfs+json"4166 when downloading4167 behaves like LFS http 404 response4168 behaves like LFS http expected response code and message4169 is expected to match "application/vnd.git-lfs+json"4170 LFS enabled in project4171 when uploading4172 behaves like LFS http 200 response4173 behaves like LFS http expected response code and message4174 is expected to match "application/vnd.git-lfs+json"4175 when downloading4176 behaves like LFS http 200 blob response4177 behaves like LFS http expected response code and message4178 is expected to match "application/octet-stream"4179 when fetching LFS object4180 when LFS uses object storage4181 when proxy download is enabled4182 responds with the workhorse send-url4183 when proxy download is disabled4184 responds with redirect4185 responds with the file location4186 when deploy key is authorized4187 behaves like LFS http 200 blob response4188 behaves like LFS http expected response code and message4189 is expected to match "application/octet-stream"4190 when using a user key (LFSToken)4191 when user allowed4192 behaves like LFS http 200 blob response4193 behaves like LFS http expected response code and message4194 is expected to match "application/octet-stream"4195 when user password is expired4196 behaves like LFS http 401 response4197 behaves like LFS http expected response code and message4198 is expected to match "text/plain"4199 when user is blocked4200 behaves like LFS http 401 response4201 behaves like LFS http expected response code and message4202 is expected to match "text/plain"4203 when user not allowed4204 behaves like LFS http 404 response4205 behaves like LFS http expected response code and message4206 is expected to match "application/vnd.git-lfs+json"4207 when build is authorized as4208 administrator4209 behaves like can download LFS only from own projects4210 for owned project4211 behaves like LFS http 200 blob response4212 behaves like LFS http expected response code and message4213 is expected to match "application/octet-stream"4214 for member of project4215 behaves like LFS http 200 blob response4216 behaves like LFS http expected response code and message4217 is expected to match "application/octet-stream"4218 for other project4219 rejects downloading code4220 regular user4221 behaves like can download LFS only from own projects4222 for owned project4223 behaves like LFS http 200 blob response4224 behaves like LFS http expected response code and message4225 is expected to match "application/octet-stream"4226 for member of project4227 behaves like LFS http 200 blob response4228 behaves like LFS http expected response code and message4229 is expected to match "application/octet-stream"4230 for other project4231 rejects downloading code4232 does not have user4233 behaves like can download LFS only from own projects4234 for owned project4235 behaves like LFS http 200 blob response4236 behaves like LFS http expected response code and message4237 is expected to match "application/octet-stream"4238 for member of project4239 behaves like LFS http 200 blob response4240 behaves like LFS http expected response code and message4241 is expected to match "application/octet-stream"4242 for other project4243 rejects downloading code4244 when handling LFS batch request4245 download4246 when user is authenticated4247 behaves like an authorized request4248 when downloading an LFS object that is assigned to our project4249 with href to download4250 behaves like LFS http 200 response4251 behaves like LFS http expected response code and message4252 is expected to match "application/vnd.git-lfs+json"4253 behaves like process authorization header4254 when the authorization comes from a user4255 returns a new valid LFS token authorization4256 returns a valid token4257 generates only one new token per each request4258 when downloading an LFS object that is assigned to other project4259 with an 404 for specific object4260 behaves like LFS http 200 response4261 behaves like LFS http expected response code and message4262 is expected to match "application/vnd.git-lfs+json"4263 when downloading a LFS object that does not exist4264 with an 404 for specific object4265 behaves like LFS http 200 response4266 behaves like LFS http expected response code and message4267 is expected to match "application/vnd.git-lfs+json"4268 when downloading one existing and one missing LFS object4269 responds with download hypermedia link for the existing object4270 behaves like LFS http 200 response4271 behaves like LFS http expected response code and message4272 is expected to match "application/vnd.git-lfs+json"4273 behaves like process authorization header4274 when the authorization comes from a user4275 returns a new valid LFS token authorization4276 returns a valid token4277 generates only one new token per each request4278 when downloading two existing LFS objects4279 responds with the download hypermedia link for each object4280 behaves like process authorization header4281 when the authorization comes from a user4282 returns a new valid LFS token authorization4283 returns a valid token4284 generates only one new token per each request4285 when downloading an LFS object that is stored on object storage4286 when lfs.object_store.proxy_download=true4287 does return proxied address URL4288 behaves like LFS http 200 response4289 behaves like LFS http expected response code and message4290 is expected to match "application/vnd.git-lfs+json"4291 when "lfs.object_store.proxy_download" is "false"4292 does return direct object storage URL4293 behaves like LFS http 200 response4294 behaves like LFS http expected response code and message4295 is expected to match "application/vnd.git-lfs+json"4296 when sending objects=[]4297 behaves like LFS http expected response code and message4298 is expected to eq "Not found."4299 when user is not a member of the project4300 behaves like LFS http 404 response4301 behaves like LFS http expected response code and message4302 is expected to match "application/vnd.git-lfs+json"4303 when user does not have download access4304 behaves like LFS http 404 response4305 behaves like LFS http expected response code and message4306 is expected to match "application/vnd.git-lfs+json"4307 when user password is expired4308 behaves like LFS http 401 response4309 behaves like LFS http expected response code and message4310 is expected to match "text/plain"4311 when user is blocked4312 behaves like LFS http 401 response4313 behaves like LFS http expected response code and message4314 is expected to match "text/plain"4315 when using Deploy Tokens4316 when Deploy Token is not valid4317 behaves like LFS http 401 response4318 behaves like LFS http expected response code and message4319 is expected to match "text/plain"4320 when Deploy Token is not related to the project4321 behaves like LFS http 401 response4322 behaves like LFS http expected response code and message4323 is expected to match "text/plain"4324 when deploy token is from an unrelated group to the project4325 behaves like LFS http 401 response4326 behaves like LFS http expected response code and message4327 is expected to match "text/plain"4328 when deploy token is from a parent group of the project and valid4329 behaves like an authorized request4330 when downloading an LFS object that is assigned to our project4331 with href to download4332 behaves like LFS http 200 response4333 behaves like LFS http expected response code and message4334 is expected to match "application/vnd.git-lfs+json"4335 behaves like process authorization header4336 when the authorization comes from a token4337 returns the same authorization header4338 when downloading an LFS object that is assigned to other project4339 with an 404 for specific object4340 behaves like LFS http 200 response4341 behaves like LFS http expected response code and message4342 is expected to match "application/vnd.git-lfs+json"4343 when downloading a LFS object that does not exist4344 with an 404 for specific object4345 behaves like LFS http 200 response4346 behaves like LFS http expected response code and message4347 is expected to match "application/vnd.git-lfs+json"4348 when downloading one existing and one missing LFS object4349 responds with download hypermedia link for the existing object4350 behaves like LFS http 200 response4351 behaves like LFS http expected response code and message4352 is expected to match "application/vnd.git-lfs+json"4353 behaves like process authorization header4354 when the authorization comes from a token4355 returns the same authorization header4356 when downloading two existing LFS objects4357 responds with the download hypermedia link for each object4358 behaves like process authorization header4359 when the authorization comes from a token4360 returns the same authorization header4361 when downloading an LFS object that is stored on object storage4362 when lfs.object_store.proxy_download=true4363 does return proxied address URL4364 behaves like LFS http 200 response4365 behaves like LFS http expected response code and message4366 is expected to match "application/vnd.git-lfs+json"4367 when "lfs.object_store.proxy_download" is "false"4368 does return direct object storage URL4369 behaves like LFS http 200 response4370 behaves like LFS http expected response code and message4371 is expected to match "application/vnd.git-lfs+json"4372 when sending objects=[]4373 behaves like LFS http expected response code and message4374 is expected to eq "Not found."4375 when Deploy Token is valid4376 behaves like an authorized request4377 when downloading an LFS object that is assigned to our project4378 with href to download4379 behaves like LFS http 200 response4380 behaves like LFS http expected response code and message4381 is expected to match "application/vnd.git-lfs+json"4382 behaves like process authorization header4383 when the authorization comes from a token4384 returns the same authorization header4385 when downloading an LFS object that is assigned to other project4386 with an 404 for specific object4387 behaves like LFS http 200 response4388 behaves like LFS http expected response code and message4389 is expected to match "application/vnd.git-lfs+json"4390 when downloading a LFS object that does not exist4391 with an 404 for specific object4392 behaves like LFS http 200 response4393 behaves like LFS http expected response code and message4394 is expected to match "application/vnd.git-lfs+json"4395 when downloading one existing and one missing LFS object4396 responds with download hypermedia link for the existing object4397 behaves like LFS http 200 response4398 behaves like LFS http expected response code and message4399 is expected to match "application/vnd.git-lfs+json"4400 behaves like process authorization header4401 when the authorization comes from a token4402 returns the same authorization header4403 when downloading two existing LFS objects4404 responds with the download hypermedia link for each object4405 behaves like process authorization header4406 when the authorization comes from a token4407 returns the same authorization header4408 when downloading an LFS object that is stored on object storage4409 when lfs.object_store.proxy_download=true4410 does return proxied address URL4411 behaves like LFS http 200 response4412 behaves like LFS http expected response code and message4413 is expected to match "application/vnd.git-lfs+json"4414 when "lfs.object_store.proxy_download" is "false"4415 does return direct object storage URL4416 behaves like LFS http 200 response4417 behaves like LFS http expected response code and message4418 is expected to match "application/vnd.git-lfs+json"4419 when sending objects=[]4420 behaves like LFS http expected response code and message4421 is expected to eq "Not found."4422 when build is authorized as4423 administrator4424 behaves like can download LFS only from own projects4425 for own project4426 behaves like an authorized request4427 when downloading an LFS object that is assigned to our project4428 with href to download4429 behaves like LFS http 200 response4430 behaves like LFS http expected response code and message4431 is expected to match "application/vnd.git-lfs+json"4432 behaves like process authorization header4433 when the authorization comes from a user4434 returns a new valid LFS token authorization4435 returns a valid token4436 generates only one new token per each request4437 when downloading an LFS object that is assigned to other project4438 with an 404 for specific object4439 behaves like LFS http 200 response4440 behaves like LFS http expected response code and message4441 is expected to match "application/vnd.git-lfs+json"4442 when downloading a LFS object that does not exist4443 with an 404 for specific object4444 behaves like LFS http 200 response4445 behaves like LFS http expected response code and message4446 is expected to match "application/vnd.git-lfs+json"4447 when downloading one existing and one missing LFS object4448 responds with download hypermedia link for the existing object4449 behaves like LFS http 200 response4450 behaves like LFS http expected response code and message4451 is expected to match "application/vnd.git-lfs+json"4452 behaves like process authorization header4453 when the authorization comes from a user4454 returns a new valid LFS token authorization4455 returns a valid token4456 generates only one new token per each request4457 when downloading two existing LFS objects4458 responds with the download hypermedia link for each object4459 behaves like process authorization header4460 when the authorization comes from a user4461 returns a new valid LFS token authorization4462 returns a valid token4463 generates only one new token per each request4464 when downloading an LFS object that is stored on object storage4465 when lfs.object_store.proxy_download=true4466 does return proxied address URL4467 behaves like LFS http 200 response4468 behaves like LFS http expected response code and message4469 is expected to match "application/vnd.git-lfs+json"4470 when "lfs.object_store.proxy_download" is "false"4471 does return direct object storage URL4472 behaves like LFS http 200 response4473 behaves like LFS http expected response code and message4474 is expected to match "application/vnd.git-lfs+json"4475 when sending objects=[]4476 behaves like LFS http expected response code and message4477 is expected to eq "Not found."4478 for other project4479 rejects downloading code4480 regular user4481 behaves like can download LFS only from own projects4482 for own project4483 behaves like an authorized request4484 when downloading an LFS object that is assigned to our project4485 with href to download4486 behaves like LFS http 200 response4487 behaves like LFS http expected response code and message4488 is expected to match "application/vnd.git-lfs+json"4489 behaves like process authorization header4490 when the authorization comes from a user4491 returns a new valid LFS token authorization4492 returns a valid token4493 generates only one new token per each request4494 when downloading an LFS object that is assigned to other project4495 with an 404 for specific object4496 behaves like LFS http 200 response4497 behaves like LFS http expected response code and message4498 is expected to match "application/vnd.git-lfs+json"4499 when downloading a LFS object that does not exist4500 with an 404 for specific object4501 behaves like LFS http 200 response4502 behaves like LFS http expected response code and message4503 is expected to match "application/vnd.git-lfs+json"4504 when downloading one existing and one missing LFS object4505 responds with download hypermedia link for the existing object4506 behaves like LFS http 200 response4507 behaves like LFS http expected response code and message4508 is expected to match "application/vnd.git-lfs+json"4509 behaves like process authorization header4510 when the authorization comes from a user4511 returns a new valid LFS token authorization4512 returns a valid token4513 generates only one new token per each request4514 when downloading two existing LFS objects4515 responds with the download hypermedia link for each object4516 behaves like process authorization header4517 when the authorization comes from a user4518 returns a new valid LFS token authorization4519 returns a valid token4520 generates only one new token per each request4521 when downloading an LFS object that is stored on object storage4522 when lfs.object_store.proxy_download=true4523 does return proxied address URL4524 behaves like LFS http 200 response4525 behaves like LFS http expected response code and message4526 is expected to match "application/vnd.git-lfs+json"4527 when "lfs.object_store.proxy_download" is "false"4528 does return direct object storage URL4529 behaves like LFS http 200 response4530 behaves like LFS http expected response code and message4531 is expected to match "application/vnd.git-lfs+json"4532 when sending objects=[]4533 behaves like LFS http expected response code and message4534 is expected to eq "Not found."4535 for other project4536 rejects downloading code4537 does not have user4538 behaves like can download LFS only from own projects4539 for own project4540 behaves like an authorized request4541 when downloading an LFS object that is assigned to our project4542 with href to download4543 behaves like LFS http 200 response4544 behaves like LFS http expected response code and message4545 is expected to match "application/vnd.git-lfs+json"4546 behaves like process authorization header4547 when the authorization comes from a token4548 returns the same authorization header4549 when downloading an LFS object that is assigned to other project4550 with an 404 for specific object4551 behaves like LFS http 200 response4552 behaves like LFS http expected response code and message4553 is expected to match "application/vnd.git-lfs+json"4554 when downloading a LFS object that does not exist4555 with an 404 for specific object4556 behaves like LFS http 200 response4557 behaves like LFS http expected response code and message4558 is expected to match "application/vnd.git-lfs+json"4559 when downloading one existing and one missing LFS object4560 responds with download hypermedia link for the existing object4561 behaves like LFS http 200 response4562 behaves like LFS http expected response code and message4563 is expected to match "application/vnd.git-lfs+json"4564 behaves like process authorization header4565 when the authorization comes from a token4566 returns the same authorization header4567 when downloading two existing LFS objects4568 responds with the download hypermedia link for each object4569 behaves like process authorization header4570 when the authorization comes from a token4571 returns the same authorization header4572 when downloading an LFS object that is stored on object storage4573 when lfs.object_store.proxy_download=true4574 does return proxied address URL4575 behaves like LFS http 200 response4576 behaves like LFS http expected response code and message4577 is expected to match "application/vnd.git-lfs+json"4578 when "lfs.object_store.proxy_download" is "false"4579 does return direct object storage URL4580 behaves like LFS http 200 response4581 behaves like LFS http expected response code and message4582 is expected to match "application/vnd.git-lfs+json"4583 when sending objects=[]4584 behaves like LFS http expected response code and message4585 is expected to eq "Not found."4586 for other project4587 rejects downloading code4588 when user is not authenticated4589 is accessing public project4590 returns href to download4591 behaves like LFS http 200 response4592 behaves like LFS http expected response code and message4593 is expected to match "application/vnd.git-lfs+json"4594 is accessing non-public project4595 behaves like LFS http 401 response4596 behaves like LFS http expected response code and message4597 is expected to match "text/plain"4598 upload4599 when request is authenticated4600 when user has project push access4601 when pushing an LFS object that already exists4602 in another project4603 behaves like batch upload with existing LFS object4604 responds with links to the object in the project4605 behaves like LFS http 200 response4606 behaves like LFS http expected response code and message4607 is expected to match "application/vnd.git-lfs+json"4608 behaves like process authorization header4609 when the authorization comes from a user4610 returns a new valid LFS token authorization4611 returns a valid token4612 generates only one new token per each request4613 in source of fork project4614 when user has access to both the parent and fork4615 links existing LFS objects to other project4616 when user does not have access to parent4617 behaves like batch upload with existing LFS object4618 responds with links to the object in the project4619 behaves like LFS http 200 response4620 behaves like LFS http expected response code and message4621 is expected to match "application/vnd.git-lfs+json"4622 behaves like process authorization header4623 when the authorization comes from a user4624 returns a new valid LFS token authorization4625 returns a valid token4626 generates only one new token per each request4627 when pushing a LFS object that does not exist4628 behaves like pushes new LFS objects4629 responds with upload hypermedia link4630 behaves like LFS http 200 response4631 behaves like LFS http expected response code and message4632 is expected to match "application/vnd.git-lfs+json"4633 behaves like process authorization header4634 when the authorization comes from a user4635 returns a new valid LFS token authorization4636 returns a valid token4637 generates only one new token per each request4638 when pushing one new and one existing LFS object4639 responds with upload hypermedia link for the new object4640 behaves like LFS http 200 response4641 behaves like LFS http expected response code and message4642 is expected to match "application/vnd.git-lfs+json"4643 behaves like process authorization header4644 when the authorization comes from a user4645 returns a new valid LFS token authorization4646 returns a valid token4647 generates only one new token per each request4648 when user does not have push access4649 behaves like LFS http 403 response4650 behaves like LFS http expected response code and message4651 is expected to eq "Access forbidden. Check your access level."4652 when build is authorized4653 build has an user4654 tries to push to own project4655 behaves like LFS http 403 response4656 behaves like LFS http expected response code and message4657 is expected to eq "Access forbidden. Check your access level."4658 tries to push to other project4659 behaves like LFS http 404 response4660 behaves like LFS http expected response code and message4661 is expected to match "application/vnd.git-lfs+json"4662 does not have user4663 behaves like LFS http 403 response4664 behaves like LFS http expected response code and message4665 is expected to eq "Access forbidden. Check your access level."4666 when deploy key has project push access4667 behaves like pushes new LFS objects4668 responds with upload hypermedia link4669 behaves like LFS http 200 response4670 behaves like LFS http expected response code and message4671 is expected to match "application/vnd.git-lfs+json"4672 behaves like process authorization header4673 when the authorization comes from a token4674 returns the same authorization header4675 when user is not authenticated4676 when user has push access4677 behaves like LFS http 401 response4678 behaves like LFS http expected response code and message4679 is expected to match "text/plain"4680 when user does not have push access4681 behaves like LFS http 401 response4682 behaves like LFS http expected response code and message4683 is expected to match "text/plain"4684 unsupported4685 behaves like LFS http 404 response4686 behaves like LFS http expected response code and message4687 is expected to match "application/vnd.git-lfs+json"4688 when handling LFS batch request on a read-only GitLab instance4689 when downloading4690 behaves like LFS http 200 response4691 behaves like LFS http expected response code and message4692 is expected to match "application/vnd.git-lfs+json"4693 when uploading4694 behaves like LFS http expected response code and message4695 is expected to eq "You cannot write to this read-only GitLab instance."4696 when pushing a LFS object4697 to one project4698 when user is authenticated4699 when user has push access to the project4700 and the request bypassed workhorse4701 raises an exception4702 and request is sent by gitlab-workhorse to authorize the request4703 when using local storage4704 behaves like a local file4705 behaves like a valid response4706 responds with status 200, location of LFS store and object details4707 behaves like LFS http 200 workhorse response4708 behaves like LFS http expected response code and message4709 is expected to match "application/vnd.gitlab-workhorse+json"4710 when using remote storage4711 when direct upload is enabled4712 behaves like a valid response4713 responds with status 200, location of LFS remote store and object details4714 behaves like LFS http 200 workhorse response4715 behaves like LFS http expected response code and message4716 is expected to match "application/vnd.gitlab-workhorse+json"4717 when direct upload is disabled4718 behaves like a local file4719 behaves like a valid response4720 responds with status 200, location of LFS store and object details4721 behaves like LFS http 200 workhorse response4722 behaves like LFS http expected response code and message4723 is expected to match "application/vnd.gitlab-workhorse+json"4724 and request is sent by gitlab-workhorse to finalize the upload4725 LFS object is linked to the project4726 behaves like LFS http 200 response4727 behaves like LFS http expected response code and message4728 is expected to match "application/vnd.git-lfs+json"4729 and request to finalize the upload is not sent by gitlab-workhorse4730 fails with a JWT decode error4731 and the uploaded file is invalid4732 size: nil, sha256: nil, status: :ok4733 validates the upload size and SHA2564734 size: 0, sha256: nil, status: :bad_request4735 validates the upload size and SHA2564736 size: nil, sha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", status: :bad_request4737 validates the upload size and SHA2564738 and workhorse requests upload finalize for a new LFS object4739 with object storage enabled4740 and direct upload enabled4741 with invalid remote_id: 1231234742 responds with status 4034743 with invalid remote_id: ../../1231234744 responds with status 4034745 with valid remote_id4746 responds with status 2004747 schedules migration of file to object storage4748 have valid file4749 without the lfs object4750 rejects slashes in the tempfile name (path traversal)4751 not sending the workhorse jwt header4752 rejects the request4753 and user does not have push access4754 behaves like forbidden4755 and request is sent by gitlab-workhorse to authorize the request4756 behaves like LFS http 403 response4757 behaves like LFS http expected response code and message4758 is expected to eq "Access forbidden. Check your access level."4759 and request is sent by gitlab-workhorse to finalize the upload4760 behaves like LFS http 403 response4761 behaves like LFS http expected response code and message4762 is expected to eq "Access forbidden. Check your access level."4763 and request is sent with a malformed headers4764 behaves like LFS http 403 response4765 behaves like LFS http expected response code and message4766 is expected to eq "Access forbidden. Check your access level."4767 when build is authorized4768 build has an user4769 tries to push to own project4770 behaves like LFS http 403 response4771 behaves like LFS http expected response code and message4772 is expected to eq "Access forbidden. Check your access level."4773 tries to push to other project4774 behaves like LFS http 404 response4775 behaves like LFS http expected response code and message4776 is expected to match "application/vnd.git-lfs+json"4777 does not have user4778 behaves like LFS http 403 response4779 behaves like LFS http expected response code and message4780 is expected to eq "Access forbidden. Check your access level."4781 when using a user key (LFSToken)4782 when user allowed4783 behaves like LFS http 200 workhorse response4784 behaves like LFS http expected response code and message4785 is expected to match "application/vnd.gitlab-workhorse+json"4786 when user password is expired4787 behaves like LFS http 401 response4788 behaves like LFS http expected response code and message4789 is expected to match "text/plain"4790 when user is blocked4791 behaves like LFS http 401 response4792 behaves like LFS http expected response code and message4793 is expected to match "text/plain"4794 when user not allowed4795 behaves like LFS http 404 response4796 behaves like LFS http expected response code and message4797 is expected to match "application/vnd.git-lfs+json"4798 for unauthenticated4799 behaves like unauthorized4800 and request is sent by gitlab-workhorse to authorize the request4801 behaves like LFS http 401 response4802 behaves like LFS http expected response code and message4803 is expected to match "text/plain"4804 and request is sent by gitlab-workhorse to finalize the upload4805 behaves like LFS http 401 response4806 behaves like LFS http expected response code and message4807 is expected to match "text/plain"4808 and request is sent with a malformed headers4809 behaves like LFS http 401 response4810 behaves like LFS http expected response code and message4811 is expected to match "text/plain"4812 to a forked project4813 when user is authenticated4814 when user has push access to the project4815 and request is sent by gitlab-workhorse to authorize the request4816 with location of LFS store and object details4817 behaves like LFS http 200 workhorse response4818 behaves like LFS http expected response code and message4819 is expected to match "application/vnd.gitlab-workhorse+json"4820 and request is sent by gitlab-workhorse to finalize the upload4821 LFS object is linked to the forked project4822 behaves like LFS http 200 response4823 behaves like LFS http expected response code and message4824 is expected to match "application/vnd.git-lfs+json"4825 when user has push access to upstream project4826 an MR exists on target forked project4827 with allow_collaboration option set to true4828 and request is sent by gitlab-workhorse to authorize the request4829 behaves like LFS http 200 workhorse response4830 behaves like LFS http expected response code and message4831 is expected to match "application/vnd.gitlab-workhorse+json"4832 and request is sent by gitlab-workhorse to finalize the upload4833 behaves like LFS http 200 response4834 behaves like LFS http expected response code and message4835 is expected to match "application/vnd.git-lfs+json"4836 with allow_collaboration option set to false4837 request is sent by gitlab-workhorse to authorize the request4838 behaves like forbidden4839 and request is sent by gitlab-workhorse to authorize the request4840 behaves like LFS http 403 response4841 behaves like LFS http expected response code and message4842 is expected to eq "Access forbidden. Check your access level."4843 and request is sent by gitlab-workhorse to finalize the upload4844 behaves like LFS http 403 response4845 behaves like LFS http expected response code and message4846 is expected to eq "Access forbidden. Check your access level."4847 and request is sent with a malformed headers4848 behaves like LFS http 403 response4849 behaves like LFS http expected response code and message4850 is expected to eq "Access forbidden. Check your access level."4851 and user does not have push access4852 behaves like forbidden4853 and request is sent by gitlab-workhorse to authorize the request4854 behaves like LFS http 403 response4855 behaves like LFS http expected response code and message4856 is expected to eq "Access forbidden. Check your access level."4857 and request is sent by gitlab-workhorse to finalize the upload4858 behaves like LFS http 403 response4859 behaves like LFS http expected response code and message4860 is expected to eq "Access forbidden. Check your access level."4861 and request is sent with a malformed headers4862 behaves like LFS http 403 response4863 behaves like LFS http expected response code and message4864 is expected to eq "Access forbidden. Check your access level."4865 when build is authorized4866 build has an user4867 tries to push to own project4868 behaves like LFS http 403 response4869 behaves like LFS http expected response code and message4870 is expected to eq "Access forbidden. Check your access level."4871 tries to push to other project4872 behaves like LFS http 404 response4873 behaves like LFS http expected response code and message4874 is expected to match "application/vnd.git-lfs+json"4875 does not have user4876 behaves like LFS http 403 response4877 behaves like LFS http expected response code and message4878 is expected to eq "Access forbidden. Check your access level."4879 for unauthenticated4880 behaves like unauthorized4881 and request is sent by gitlab-workhorse to authorize the request4882 behaves like LFS http 401 response4883 behaves like LFS http expected response code and message4884 is expected to match "text/plain"4885 and request is sent by gitlab-workhorse to finalize the upload4886 behaves like LFS http 401 response4887 behaves like LFS http expected response code and message4888 is expected to match "text/plain"4889 and request is sent with a malformed headers4890 behaves like LFS http 401 response4891 behaves like LFS http expected response code and message4892 is expected to match "text/plain"4893 and second project not related to fork or a source project4894 when pushing the same LFS object to the second project4895 links the LFS object to the project4896 behaves like LFS http 200 response4897 behaves like LFS http expected response code and message4898 is expected to match "application/vnd.git-lfs+json"4899 with project wikis4900 behaves like LFS http requests4901 when LFS is disabled globally4902 download request4903 behaves like LFS http 501 response4904 behaves like LFS http expected response code and message4905 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4906 upload request4907 behaves like LFS http 501 response4908 behaves like LFS http expected response code and message4909 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4910 unauthenticated4911 download request4912 behaves like LFS http 401 response4913 behaves like LFS http expected response code and message4914 is expected to match "text/plain"4915 upload request4916 behaves like LFS http 401 response4917 behaves like LFS http expected response code and message4918 is expected to match "text/plain"4919 without access4920 download request4921 behaves like LFS http 404 response4922 behaves like LFS http expected response code and message4923 is expected to match "application/vnd.git-lfs+json"4924 upload request4925 behaves like LFS http 404 response4926 behaves like LFS http expected response code and message4927 is expected to match "application/vnd.git-lfs+json"4928 with guest access4929 download request4930 behaves like LFS http 404 response4931 behaves like LFS http expected response code and message4932 is expected to match "application/vnd.git-lfs+json"4933 upload request4934 behaves like LFS http 404 response4935 behaves like LFS http expected response code and message4936 is expected to match "application/vnd.git-lfs+json"4937 with download permission4938 download request4939 behaves like LFS http 200 blob response4940 behaves like LFS http expected response code and message4941 is expected to match "application/octet-stream"4942 when container does not exist4943 behaves like LFS http 404 response4944 behaves like LFS http expected response code and message4945 is expected to match "application/vnd.git-lfs+json"4946 upload request4947 behaves like LFS http 403 response4948 behaves like LFS http expected response code and message4949 is expected to eq "Access forbidden. Check your access level."4950 with upload permission4951 upload request4952 behaves like LFS http 200 response4953 behaves like LFS http expected response code and message4954 is expected to match "application/vnd.git-lfs+json"4955 deprecated API4956 when fetching LFS object using deprecated API4957 behaves like deprecated request4958 behaves like LFS http expected response code and message4959 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4960 when handling LFS request using deprecated API4961 behaves like deprecated request4962 behaves like LFS http expected response code and message4963 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."4964 with snippets4965 with project snippets4966 behaves like LFS http requests4967 when LFS is disabled globally4968 download request4969 behaves like LFS http 501 response4970 behaves like LFS http expected response code and message4971 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4972 upload request4973 behaves like LFS http 501 response4974 behaves like LFS http expected response code and message4975 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."4976 unauthenticated4977 download request4978 behaves like LFS http 401 response4979 behaves like LFS http expected response code and message4980 is expected to match "text/plain"4981 upload request4982 behaves like LFS http 401 response4983 behaves like LFS http expected response code and message4984 is expected to match "text/plain"4985 without access4986 download request4987 behaves like LFS http 404 response4988 behaves like LFS http expected response code and message4989 is expected to match "application/vnd.git-lfs+json"4990 upload request4991 behaves like LFS http 404 response4992 behaves like LFS http expected response code and message4993 is expected to match "application/vnd.git-lfs+json"4994 with guest access4995 download request4996 behaves like LFS http 404 response4997 behaves like LFS http expected response code and message4998 is expected to match "application/vnd.git-lfs+json"4999 upload request5000 behaves like LFS http 404 response5001 behaves like LFS http expected response code and message5002 is expected to match "application/vnd.git-lfs+json"5003 with download permission5004 download request5005 behaves like LFS http 200 blob response5006 behaves like LFS http 404 response5007 behaves like LFS http expected response code and message5008 is expected to match "application/vnd.git-lfs+json"5009 when container does not exist5010 behaves like LFS http 404 response5011 behaves like LFS http expected response code and message5012 is expected to match "application/vnd.git-lfs+json"5013 upload request5014 behaves like LFS http 403 response5015 behaves like LFS http 404 response5016 behaves like LFS http expected response code and message5017 is expected to match "application/vnd.git-lfs+json"5018 with upload permission5019 upload request5020 behaves like LFS http 200 response5021 behaves like LFS http 404 response5022 behaves like LFS http expected response code and message5023 is expected to match "application/vnd.git-lfs+json"5024 deprecated API5025 when fetching LFS object using deprecated API5026 behaves like deprecated request5027 behaves like LFS http expected response code and message5028 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."5029 when handling LFS request using deprecated API5030 behaves like deprecated request5031 behaves like LFS http expected response code and message5032 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."5033 with personal snippets5034 behaves like LFS http requests5035 when LFS is disabled globally5036 download request5037 behaves like LFS http 501 response5038 behaves like LFS http expected response code and message5039 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."5040 upload request5041 behaves like LFS http 501 response5042 behaves like LFS http expected response code and message5043 is expected to eq "Git LFS is not enabled on this GitLab server, contact your admin."5044 unauthenticated5045 download request5046 behaves like LFS http 401 response5047 behaves like LFS http expected response code and message5048 is expected to match "text/plain"5049 upload request5050 behaves like LFS http 401 response5051 behaves like LFS http expected response code and message5052 is expected to match "text/plain"5053 without access5054 download request5055 behaves like LFS http 404 response5056 behaves like LFS http expected response code and message5057 is expected to match "application/vnd.git-lfs+json"5058 upload request5059 behaves like LFS http 404 response5060 behaves like LFS http expected response code and message5061 is expected to match "application/vnd.git-lfs+json"5062 with guest access5063 download request5064 behaves like LFS http 404 response5065 behaves like LFS http expected response code and message5066 is expected to match "application/vnd.git-lfs+json"5067 upload request5068 behaves like LFS http 404 response5069 behaves like LFS http expected response code and message5070 is expected to match "application/vnd.git-lfs+json"5071 with download permission5072 download request5073 behaves like LFS http 200 blob response5074 behaves like LFS http 404 response5075 behaves like LFS http expected response code and message5076 is expected to match "application/vnd.git-lfs+json"5077 when container does not exist5078 behaves like LFS http 404 response5079 behaves like LFS http expected response code and message5080 is expected to match "application/vnd.git-lfs+json"5081 upload request5082 behaves like LFS http 403 response5083 behaves like LFS http 404 response5084 behaves like LFS http expected response code and message5085 is expected to match "application/vnd.git-lfs+json"5086 with upload permission5087 upload request5088 behaves like LFS http 200 response5089 behaves like LFS http 404 response5090 behaves like LFS http expected response code and message5091 is expected to match "application/vnd.git-lfs+json"5092 deprecated API5093 when fetching LFS object using deprecated API5094 behaves like deprecated request5095 behaves like LFS http expected response code and message5096 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."5097 when handling LFS request using deprecated API5098 behaves like deprecated request5099 behaves like LFS http expected response code and message5100 is expected to eq "Server supports batch API only, please update your Git LFS client to version 1.0.1 and up."5101value stream analytics events5102 GET /:namespace/:project/value_stream_analytics/events/issues5103 lists the issue events5104 lists the plan events5105 lists the code events5106 lists the test events5107 lists the review events5108 lists the staging events5109 with private project and builds5110 does not list the test events5111 does not list the staging events5112 lists the issue events5113API::Ci::Runner5114 /api/v4/jobs5115 POST /api/v4/jobs/request5116 behaves like runner migrations backoff5117 when executing locking database migrations5118 returns 429 error5119 with runner_migrations_backoff disabled5120 does not return 4295121 when no token is provided5122 returns 400 error5123 when invalid token is provided5124 returns 403 error5125 when valid token is provided5126 when Runner is not active5127 returns 204 error5128 when system_id parameter is specified5129 when ci_runner_machines with same system_xid does not exist5130 creates respective ci_runner_machines record5131 when ci_runner_machines with same system_xid already exists5132 does not create new ci_runner_machines record5133 updates the contacted_at field5134 when jobs are finished5135 behaves like no jobs available5136 when runner sends version in User-Agent5137 for stable version5138 gives 204 and set X-GitLab-Last-Update5139 when last_update is up-to-date5140 gives 204 and set the same X-GitLab-Last-Update5141 when last_update is outdated5142 gives 204 and set a new X-GitLab-Last-Update5143 when beta version is sent5144 is expected to respond with numeric status code no_content5145 when pre-9-0 version is sent5146 is expected to respond with numeric status code no_content5147 when pre-9-0 beta version is sent5148 is expected to respond with numeric status code no_content5149 when other projects have pending jobs5150 behaves like no jobs available5151 when runner sends version in User-Agent5152 for stable version5153 gives 204 and set X-GitLab-Last-Update5154 when last_update is up-to-date5155 gives 204 and set the same X-GitLab-Last-Update5156 when last_update is outdated5157 gives 204 and set a new X-GitLab-Last-Update5158 when beta version is sent5159 is expected to respond with numeric status code no_content5160 when pre-9-0 version is sent5161 is expected to respond with numeric status code no_content5162 when pre-9-0 beta version is sent5163 is expected to respond with numeric status code no_content5164 when shared runner requests job for project without shared_runners_enabled5165 behaves like no jobs available5166 when runner sends version in User-Agent5167 for stable version5168 gives 204 and set X-GitLab-Last-Update5169 when last_update is up-to-date5170 gives 204 and set the same X-GitLab-Last-Update5171 when last_update is outdated5172 gives 204 and set a new X-GitLab-Last-Update5173 when beta version is sent5174 is expected to respond with numeric status code no_content5175 when pre-9-0 version is sent5176 is expected to respond with numeric status code no_content5177 when pre-9-0 beta version is sent5178 is expected to respond with numeric status code no_content5179 when there is a pending job5180 picks a job5181 creates persistent ref5182 updates runner info5183 sets the runner's config5184 sets the runner's ip_address5185 handles multiple X-Forwarded-For addresses5186 when job is made for tag5187 sets branch as ref_type5188 when GIT_DEPTH is specified5189 specifies refspecs5190 when a Gitaly exception is thrown during response5191 fails the job as a scheduler failure5192 when GIT_DEPTH is not specified and there is no default git depth for the project5193 specifies refspecs5194 when job is made for branch5195 sets tag as ref_type5196 when GIT_DEPTH is specified5197 specifies refspecs5198 when GIT_DEPTH is not specified and there is no default git depth for the project5199 specifies refspecs5200 when job is for a release5201 when `multi_build_steps` is passed by the runner5202 exposes release info5203 when `multi_build_steps` is not passed by the runner5204 drops the job5205 when job is made for merge request5206 sets branch as ref_type5207 when GIT_DEPTH is specified5208 returns the overwritten git depth for merge request refspecs5209 when info parameter 'version' is present5210 updates provided Runner's parameter5211 when info parameter 'revision' is present5212 updates provided Runner's parameter5213 when info parameter 'platform' is present5214 updates provided Runner's parameter5215 when info parameter 'architecture' is present5216 updates provided Runner's parameter5217 when concurrently updating a job5218 returns a conflict5219 when project and pipeline have multiple jobs5220 returns dependent jobs with the token of the test job5221 preloading job_artifacts_archive5222 queries the ci_job_artifacts table once only5223 queries the ci_builds table five times5224 when pipeline have jobs with artifacts5225 returns dependent jobs with the token of the test job5226 when explicit dependencies are defined5227 returns dependent jobs with the token of the test job5228 when dependencies is an empty array5229 returns an empty array5230 when job has no tags5231 when runner is allowed to pick untagged jobs5232 picks job5233 when runner is not allowed to pick untagged jobs5234 behaves like no jobs available5235 when runner sends version in User-Agent5236 for stable version5237 gives 204 and set X-GitLab-Last-Update5238 when last_update is up-to-date5239 gives 204 and set the same X-GitLab-Last-Update5240 when last_update is outdated5241 gives 204 and set a new X-GitLab-Last-Update5242 when beta version is sent5243 is expected to respond with numeric status code no_content5244 when pre-9-0 version is sent5245 is expected to respond with numeric status code no_content5246 when pre-9-0 beta version is sent5247 is expected to respond with numeric status code no_content5248 when job has code coverage report5249 returns job with the correct artifact specification5250 when triggered job is available5251 when variables are stored in pipeline_variables5252 behaves like expected variables behavior5253 returns variables for triggers5254 registry credentials support5255 when registry is enabled5256 sends registry credentials key5257 when registry is disabled5258 does not send registry credentials5259 timeout support5260 when project specifies job timeout5261 contains info about timeout taken from project5262 when runner specifies lower timeout5263 contains info about timeout overridden by runner5264 when runner specifies bigger timeout5265 contains info about timeout not overridden by runner5266 time_in_queue_seconds support5267 presents the time_in_queue_seconds info in the payload5268 project_jobs_running_on_instance_runners_count support5269 when runner is not instance_type5270 presents the project_jobs_running_on_instance_runners_count info in the payload as +Inf5271 when runner is instance_type5272 when less than Project::INSTANCE_RUNNER_RUNNING_JOBS_MAX_BUCKET running jobs assigned to an instance runner are on the list5273 presents the project_jobs_running_on_instance_runners_count info in the payload as a correct number in a string format5274 when at least Project::INSTANCE_RUNNER_RUNNING_JOBS_MAX_BUCKET running jobs assigned to an instance runner are on the list5275 presents the project_jobs_running_on_instance_runners_count info in the payload as Project::INSTANCE_RUNNER_RUNNING_JOBS_MAX_BUCKET+5276 port support5277 when job image has ports5278 returns the image ports5279 when job services settings has ports5280 returns the service ports5281 when image has pull_policy5282 returns the image with pull policy5283 when service has pull_policy5284 returns the service with pull policy5285 a job with excluded artifacts5286 does not expose excluded paths when these are empty5287 when excluded paths are defined5288 when a runner supports this feature5289 exposes excluded paths5290 when a runner does not support this feature5291 does not expose the build at all5292 setting the application context5293 when triggered by a user5294 behaves like storing arguments in the application context for the API5295 places the expected params in the application context5296 behaves like not executing any extra queries for the application context5297 does not execute more queries than without adding anything to the application context5298 when the runner is of project type5299 behaves like storing arguments in the application context for the API5300 places the expected params in the application context5301 behaves like not executing any extra queries for the application context5302 does not execute more queries than without adding anything to the application context5303 when the runner is of group type5304 behaves like storing arguments in the application context for the API5305 places the expected params in the application context5306 behaves like not executing any extra queries for the application context5307 does not execute more queries than without adding anything to the application context5308 with session url set to local URL5309 with allow_local_requests_from_web_hooks_and_services? stubbed5310 as returning true5311 creates a new session5312 as returning false5313 returns :unprocessable_entity status code5314 for web-ide job5315 when runner has matching tag5316 successfully picks job5317 when runner does not have matching tags5318 does not pick a job5319API::GroupPackages5320 GET /groups/:id/packages5321 with sorting5322 without sorting params5323 sorts by created_at asc5324 behaves like package sorting5325 sorting by name5326 ascending order5327 returns the sorted packages5328 descending order5329 returns the sorted packages5330 behaves like package sorting5331 sorting by created_at5332 ascending order5333 returns the sorted packages5334 descending order5335 returns the sorted packages5336 behaves like package sorting5337 sorting by version5338 ascending order5339 returns the sorted packages5340 descending order5341 returns the sorted packages5342 behaves like package sorting5343 sorting by type5344 ascending order5345 returns the sorted packages5346 descending order5347 returns the sorted packages5348 behaves like package sorting5349 sorting by project_path5350 ascending order5351 returns the sorted packages5352 descending order5353 returns the sorted packages5354 with private group5355 with unauthenticated user5356 behaves like rejects packages access5357 for no_type5358 behaves like returning response status5359 returns not_found5360 with authenticated user5361 behaves like returns packages5362 for owner5363 returns success response5364 returns a valid response schema5365 returns two packages5366 behaves like returns packages5367 for maintainer5368 returns success response5369 returns a valid response schema5370 returns two packages5371 behaves like returns packages5372 for developer5373 returns success response5374 returns a valid response schema5375 returns two packages5376 behaves like returns packages5377 for reporter5378 returns success response5379 returns a valid response schema5380 returns two packages5381 behaves like rejects packages access5382 for guest5383 behaves like returning response status5384 returns forbidden5385 with subgroup5386 behaves like returns packages with subgroups5387 with subgroups for owner5388 returns success response5389 returns a valid response schema5390 returns three packages5391 behaves like returns packages with subgroups5392 with subgroups for maintainer5393 returns success response5394 returns a valid response schema5395 returns three packages5396 behaves like returns packages with subgroups5397 with subgroups for developer5398 returns success response5399 returns a valid response schema5400 returns three packages5401 behaves like returns packages with subgroups5402 with subgroups for reporter5403 returns success response5404 returns a valid response schema5405 returns three packages5406 behaves like rejects packages access5407 for guest5408 behaves like returning response status5409 returns forbidden5410 excluding subgroup5411 behaves like returns packages5412 for owner5413 returns success response5414 returns a valid response schema5415 returns two packages5416 behaves like returns packages5417 for maintainer5418 returns success response5419 returns a valid response schema5420 returns two packages5421 behaves like returns packages5422 for developer5423 returns success response5424 returns a valid response schema5425 returns two packages5426 behaves like returns packages5427 for reporter5428 returns success response5429 returns a valid response schema5430 returns two packages5431 behaves like rejects packages access5432 for guest5433 behaves like returning response status5434 returns forbidden5435 with public group5436 with unauthenticated user5437 behaves like returns packages5438 for no_type5439 returns success response5440 returns a valid response schema5441 returns two packages5442 with authenticated user5443 behaves like returns packages5444 for owner5445 returns success response5446 returns a valid response schema5447 returns two packages5448 behaves like returns packages5449 for maintainer5450 returns success response5451 returns a valid response schema5452 returns two packages5453 behaves like returns packages5454 for developer5455 returns success response5456 returns a valid response schema5457 returns two packages5458 behaves like returns packages5459 for reporter5460 returns success response5461 returns a valid response schema5462 returns two packages5463 behaves like returns packages5464 for guest5465 returns success response5466 returns a valid response schema5467 returns two packages5468 with pagination params5469 behaves like returns paginated packages5470 when viewing the first page5471 returns first 2 packages5472 when viewing the second page5473 returns first 2 packages5474 behaves like filters on each package_type5475 for package type maven5476 returns maven packages5477 for package type npm5478 returns npm packages5479 for package type conan5480 returns conan packages5481 for package type nuget5482 returns nuget packages5483 for package type pypi5484 returns pypi packages5485 for package type composer5486 returns composer packages5487 for package type generic5488 returns generic packages5489 for package type golang5490 returns golang packages5491 for package type debian5492 returns debian packages5493 for package type rubygems5494 returns rubygems packages5495 for package type helm5496 returns helm packages5497 for package type terraform_module5498 returns terraform_module packages5499 for package type rpm5500 returns rpm packages5501 for package type ml_model5502 returns ml_model packages5503 filtering on package_version5504 returns the versioned package5505 include_versionless has no effect5506 does not accept non supported package_type value5507 behaves like returning response status5508 returns bad_request5509 behaves like with versionless packages5510 with versionless package5511 behaves like not including the package5512 does not return the package5513 with include_versionless param5514 with true include_versionless param5515 for param true5516 returns the package5517 for param true5518 returns the package5519 for param 15520 returns the package5521 for param 15522 returns the package5523 with falsy include_versionless param5524 for param false5525 behaves like not including the package5526 does not return the package5527 for param5528 behaves like not including the package5529 does not return the package5530 for param5531 behaves like not including the package5532 does not return the package5533 for param false5534 behaves like not including the package5535 does not return the package5536 for param 05537 behaves like not including the package5538 does not return the package5539 for param 05540 behaves like not including the package5541 does not return the package5542 behaves like with status param5543 hidden packages5544 no status param5545 behaves like not including the hidden package5546 does not return the package5547 with hidden status param5548 returns the package5549 bad status param5550 returns the package5551 behaves like does not cause n^2 queries5552 avoids N^2 database queries5553API::Ci::Jobs5554 GET /job5555 when token is valid but not CI_JOB_TOKEN5556 returns not found5557 with job token authentication header5558 returns specific job data5559 avoids N+1 queries5560 behaves like returns common job data5561 returns common job data5562 behaves like returns common pipeline data5563 returns common pipeline data5564 with job token authentication params5565 returns specific job data5566 behaves like returns common job data5567 returns common job data5568 behaves like returns common pipeline data5569 returns common pipeline data5570 with non running job5571 behaves like returns unauthorized5572 returns unauthorized5573 with basic auth header5574 does not return a job5575 without authentication5576 behaves like returns unauthorized5577 returns unauthorized5578 GET /job/allowed_agents5579 when token is valid and user is authorized5580 behaves like valid allowed_agents request5581 returns the job info5582 returns the agents allowed for the job5583 when deployment5584 includes environment slug5585 includes environment tier5586 behaves like valid allowed_agents request for a job with environment5587 return the agents configured for the given environment5588 when non-deployment environment action5589 includes environment slug5590 includes environment tier5591 behaves like valid allowed_agents request for a job with environment5592 return the agents configured for the given environment5593 when passing the token as params5594 behaves like valid allowed_agents request5595 returns the job info5596 returns the agents allowed for the job5597 when user is anonymous5598 returns unauthorized5599 when token is invalid because job has finished5600 returns unauthorized5601 when token is invalid5602 returns unauthorized5603 when token is valid but not CI_JOB_TOKEN5604 returns not found5605 GET /projects/:id/jobs5606 authorized user5607 returns project jobs5608 returns correct values5609 returns pipeline data5610 avoids N+1 queries5611 without artifacts and trace5612 returns no artifacts nor trace data5613 behaves like a job with artifacts and trace5614 with artifacts and trace5615 returns artifacts and trace data5616 filter project with one scope element5617 is expected to be a kind of Array5618 filter project with array of scope elements5619 is expected to be a kind of Array5620 respond 400 when scope contains invalid state5621 is expected to respond with numeric status code bad_request5622 behaves like an endpoint with keyset pagination5623 on making requests with supported ordering structure5624 includes keyset url params in the url response5625 does not include pagination headers5626 paginates the records correctly5627 on making requests with unsupported ordering structure5628 returns error5629 unauthorized user5630 when user is not logged in5631 does not return project jobs5632 when user is guest5633 does not return project jobs5634 GET /projects/:id/jobs offset pagination5635 returns one record for the first page5636 returns second record when passed in offset and per_page params5637 GET /projects/:id/jobs keyset pagination5638 returns first page with cursor to next page5639 respects scope filters5640 GET /projects/:id/jobs rate limited5641 enforces rate limits for the endpoint5642 GET /projects/:id/jobs/:job_id5643 authorized user5644 returns specific job data5645 behaves like returns common job data5646 returns common job data5647 behaves like a job with artifacts and trace5648 with artifacts and trace5649 returns artifacts and trace data5650 behaves like returns common pipeline data5651 returns common pipeline data5652 unauthorized user5653 does not return specific job data5654 when job succeeded5655 does not return failure_reason5656 when job failed5657 returns failure_reason5658 when job is erased5659 returns specific job data5660 when trace artifact record exists with no stored file5661 returns no artifacts nor trace data5662 GET /projects/:id/jobs/:job_id/trace5663 authorized user5664 when log is in ObjectStorage5665 returns specific job logs5666 when log is artifact5667 returns specific job log5668 when incremental logging and uploadless log artifact5669 returns specific job log5670 when log is incremental5671 returns specific job log5672 when no log5673 returns empty log5674 when log artifact record exists with no stored file5675 returns empty trace5676 unauthorized user5677 does not return specific job log5678 when metadata debug_trace_enabled is set to true5679 behaves like additional access criteria5680 public_builds: true, user_project_role: "developer", expected_status: :ok5681 renders trace to authorized users5682 public_builds: true, user_project_role: "guest", expected_status: :forbidden5683 renders trace to authorized users5684 public_builds: false, user_project_role: "developer", expected_status: :ok5685 renders trace to authorized users5686 public_builds: false, user_project_role: "guest", expected_status: :forbidden5687 renders trace to authorized users5688 when ci_debug_trace is set to true5689 behaves like additional access criteria5690 public_builds: true, user_project_role: "developer", expected_status: :ok5691 renders trace to authorized users5692 public_builds: true, user_project_role: "guest", expected_status: :forbidden5693 renders trace to authorized users5694 public_builds: false, user_project_role: "developer", expected_status: :ok5695 renders trace to authorized users5696 public_builds: false, user_project_role: "guest", expected_status: :forbidden5697 renders trace to authorized users5698 when ci_debug_services is set to true5699 behaves like additional access criteria5700 public_builds: true, user_project_role: "developer", expected_status: :ok5701 renders trace to authorized users5702 public_builds: true, user_project_role: "guest", expected_status: :forbidden5703 renders trace to authorized users5704 public_builds: false, user_project_role: "developer", expected_status: :ok5705 renders trace to authorized users5706 public_builds: false, user_project_role: "guest", expected_status: :forbidden5707 renders trace to authorized users5708 POST /projects/:id/jobs/:job_id/cancel5709 authorized user5710 user with :cancel_build permission5711 cancels running or pending job5712 user without :cancel_build permission5713 does not cancel job5714 unauthorized user5715 does not cancel job5716 POST /projects/:id/jobs/:job_id/retry5717 authorized user5718 user with :update_build permission5719 retries non-running job5720 when a build is not retryable5721 responds with unprocessable entity5722 user without :update_build permission5723 does not retry job5724 unauthorized user5725 does not retry job5726 POST /projects/:id/jobs/:job_id/erase5727 when project is not undergoing stats refresh5728 job is erasable5729 updates job5730 behaves like erases job5731 erases job content5732 when job has an unarchived trace artifact5733 behaves like erases job5734 erases job content5735 job is not erasable5736 responds with forbidden5737 when a developer erases a build5738 when the build was created by the developer5739 is expected to respond with numeric status code created5740 when the build was created by another user5741 is expected to respond with numeric status code forbidden5742 when project is undergoing stats refresh5743 behaves like preventing request because of ongoing project stats refresh5744 logs about the rejected request5745 returns 409 error5746 does not delete artifacts5747 POST /projects/:id/jobs/:job_id/play5748 on a playable job5749 when user is authorized to trigger a manual action5750 that is a bridge5751 plays the job5752 that is a build5753 plays the job5754 when the user provides valid custom variables5755 applies the variables to the job5756 when the user provides a variable without a key5757 reports that the key is missing5758 when the user provides a variable without a value5759 reports that the value is missing5760 when the user provides both valid and invalid variables5761 reports the invalid variables and does not run the job5762 when user is not authorized to trigger a manual action5763 when user does not have access to the project5764 does not trigger a manual action5765 when user is not allowed to trigger the manual action5766 does not trigger a manual action5767 on a non-playable job5768 returns a status code 400, Bad Request5769SearchController5770 authorized user5771 GET #show5772 finds issue comments5773 increments the custom search sli apdex5774 behaves like when the user cannot read cross project5775 blocks access without a project_id5776 allows access with a project_id5777 still allows accessing the search page5778 behaves like with external authorization service enabled5779 renders a 403 when no project is given5780 renders a 200 when a project was set5781 behaves like support for active record query timeouts5782 renders a 408 when a timeout occurs5783 rate limit scope5784 uses current_user and search scope5785 uses just current_user when no search scope is used5786 uses just current_user when search scope is abusive5787 uses the right partials depending on scope5788 partial: "_blob", scope: :blobs5789 is expected to render template search/results/_blob5790 partial: "_wiki_blob", scope: :wiki_blobs5791 is expected to render template search/results/_wiki_blob5792 partial: "_commit", scope: :commits5793 is expected to render template search/results/_commit5794 global search5795 when block_anonymous_global_searches is disabled5796 omits pipeline status from load5797 check search term length5798 string_name: :chars_under_limit, expectation: :not_to_set_flash5799 is expected not to should set flash[:alert]5800 string_name: :chars_over_limit, expectation: :set_chars_flash5801 is expected to should set flash[:alert] to a value matching /characters/5802 string_name: :terms_under_limit, expectation: :not_to_set_flash5803 is expected not to should set flash[:alert]5804 string_name: :terms_over_limit, expectation: :set_terms_flash5805 is expected to should set flash[:alert] to a value matching /terms/5806 string_name: :term_length_under_limit, expectation: :not_to_set_flash5807 is expected not to should set flash[:alert]5808 string_name: :term_length_over_limit, expectation: :not_to_set_flash5809 is expected not to should set flash[:alert]5810 string_name: :blank, expectation: :not_to_set_flash5811 is expected not to should set flash[:alert]5812 when block_anonymous_global_searches is enabled5813 for unauthenticated user5814 redirects to login page5815 redirects to login page when trying to circumvent the restriction5816 for authenticated user5817 succeeds5818 handling abusive search_terms5819 succeeds but does NOT do anything5820 tab feature flags5821 feature_flag: :global_search_code_tab, scope: "blobs"5822 returns 200 if flag is enabled5823 redirects with alert if flag is disabled5824 feature_flag: :global_search_issues_tab, scope: "issues"5825 returns 200 if flag is enabled5826 redirects with alert if flag is disabled5827 feature_flag: :global_search_merge_requests_tab, scope: "merge_requests"5828 returns 200 if flag is enabled5829 redirects with alert if flag is disabled5830 feature_flag: :global_search_wiki_tab, scope: "wiki_blobs"5831 returns 200 if flag is enabled5832 redirects with alert if flag is disabled5833 feature_flag: :global_search_commits_tab, scope: "commits"5834 returns 200 if flag is enabled5835 redirects with alert if flag is disabled5836 feature_flag: :global_search_users_tab, scope: "users"5837 returns 200 if flag is enabled5838 redirects with alert if flag is disabled5839 unique users tracking5840 behaves like tracking unique hll events5841 tracks unique event5842 behaves like Snowplow event tracking with RedisHLL context5843 behaves like Snowplow event tracking5844 is emitted5845 on restricted projects5846 doesn't expose comments on merge_requests5847 doesn't expose comments on snippets5848 when signed out5849 doesn't expose comments on issues5850 behaves like rate limited endpoint5851 when rate limiter enabled5852 logs request and declines it when endpoint called more than the threshold5853 when rate limiter is disabled5854 does not log request and does not block the request5855 behaves like search request exceeding rate limit5856 allows user in allow-list to search without applying rate limit5857 when rate limiter enabled5858 logs request and declines it when endpoint called more than the threshold5859 when rate limiter is disabled5860 does not log request and does not block the request5861 custom search sli error rate5862 when the search is successful5863 increments the custom search sli error rate with error: false5864 when the search raises an error5865 increments the custom search sli error rate with error: true5866 when something goes wrong before a search is done5867 does not increment the error rate5868 GET #count5869 returns the result count for the given term and scope5870 raises an error if search term is missing5871 raises an error if search scope is missing5872 sets correct cache control headers5873 does NOT blow up if search param is NOT a string5874 does NOT blow up if repository_ref contains abusive characters5875 behaves like when the user cannot read cross project5876 blocks access without a project_id5877 allows access with a project_id5878 behaves like with external authorization service enabled5879 renders a 403 when no project is given5880 renders a 200 when a project was set5881 behaves like support for active record query timeouts5882 renders a 408 when a timeout occurs5883 rate limit scope5884 uses current_user and search scope5885 uses just current_user when search scope is abusive5886 behaves like rate limited endpoint5887 when rate limiter enabled5888 logs request and declines it when endpoint called more than the threshold5889 when rate limiter is disabled5890 does not log request and does not block the request5891 behaves like search request exceeding rate limit5892 allows user in allow-list to search without applying rate limit5893 when rate limiter enabled5894 logs request and declines it when endpoint called more than the threshold5895 when rate limiter is disabled5896 does not log request and does not block the request5897 GET #autocomplete5898 raises an error if search term is missing5899 returns an empty array when given abusive search term5900 can be filtered with params[:filter]5901 can be scoped with params[:scope]5902 makes a call to search_autocomplete_opts5903 sets correct cache control headers5904 behaves like when the user cannot read cross project5905 blocks access without a project_id5906 allows access with a project_id5907 behaves like with external authorization service enabled5908 renders a 403 when no project is given5909 renders a 200 when a project was set5910 behaves like support for active record query timeouts5911 renders a 408 when a timeout occurs5912 rate limit scope5913 uses current_user and search scope5914 uses just current_user when search scope is abusive5915 behaves like rate limited endpoint5916 when rate limiter enabled5917 logs request and declines it when endpoint called more than the threshold5918 when rate limiter is disabled5919 does not log request and does not block the request5920 behaves like search request exceeding rate limit5921 allows user in allow-list to search without applying rate limit5922 when rate limiter enabled5923 logs request and declines it when endpoint called more than the threshold5924 when rate limiter is disabled5925 does not log request and does not block the request5926 unique users tracking5927 behaves like tracking unique hll events5928 tracks unique event5929 behaves like Snowplow event tracking with RedisHLL context5930 behaves like Snowplow event tracking5931 is emitted5932 #append_info_to_payload5933 appends search metadata for logging5934 appends the default scope in meta.search.scope5935 appends the search time based on the search5936 abusive searches5937 returns EmptySearchResults5938 unauthorized user5939 search rate limits5940 endpoint: :show, params: {:search=>"hello", :scope=>"projects"}5941 uses request IP as rate limiting scope5942 behaves like rate limited endpoint5943 when rate limiter enabled5944 logs request and declines it when endpoint called more than the threshold5945 when rate limiter is disabled5946 does not log request and does not block the request5947 endpoint: :count, params: {:search=>"hello", :scope=>"projects"}5948 uses request IP as rate limiting scope5949 behaves like rate limited endpoint5950 when rate limiter enabled5951 logs request and declines it when endpoint called more than the threshold5952 when rate limiter is disabled5953 does not log request and does not block the request5954 endpoint: :autocomplete, params: {:term=>"hello", :scope=>"projects"}5955 uses request IP as rate limiting scope5956 behaves like rate limited endpoint5957 when rate limiter enabled5958 logs request and declines it when endpoint called more than the threshold5959 when rate limiter is disabled5960 does not log request and does not block the request5961 GET #opensearch5962 renders xml5963API::Deployments5964 GET /projects/:id/deployments5965 as member of the project5966 returns projects deployments sorted by id asc5967 returns multiple deployments without N + 15968 with updated_at filters specified5969 when using `order_by=updated_at`5970 returns projects deployments with last update in specified datetime range5971 when not using `order_by=updated_at`5972 returns an error5973 with finished after and before filters specified5974 for successful deployments5975 returns projects deployments finished before the specified datetime range5976 returns projects deployments finished after the specified datetime range5977 for unsuccessful deployments5978 returns an error5979 when a forbidden order_by is specified5980 returns an error5981 with the environment filter specifed5982 returns deployments for the environment5983 ordering5984 returns ordered deployments5985 with invalid order_by5986 returns error5987 with invalid sorting5988 returns error5989 as non member5990 returns a 404 status code5991 GET /projects/:id/deployments/:deployment_id5992 as a member of the project5993 when the deployable is a build5994 behaves like returns project deployments5995 returns the expected response5996 when the deployable is a bridge5997 behaves like returns project deployments5998 returns the expected response5999 as non member6000 when the deployable is a build6001 behaves like deployment will not be found6002 returns a 404 status code6003 when the deployable is a bridge6004 behaves like deployment will not be found6005 returns a 404 status code6006 POST /projects/:id/deployments6007 as a maintainer6008 creates a new deployment6009 errors when creating a deployment with an invalid name6010 links any merged merge requests to the deployment6011 as a developer6012 creates a new deployment6013 links any merged merge requests to the deployment6014 links any picked merge requests to the deployment6015 as non member6016 returns a 404 status code6017 PUT /projects/:id/deployments/:deployment_id6018 as a maintainer6019 returns a 403 when updating a deployment with a build6020 updates a deployment without an associated build6021 returns an error when an invalid status transition is detected6022 links merge requests when the deployment status changes to success6023 as a developer6024 returns a 403 when updating a deployment with a build6025 updates a deployment without an associated build6026 as non member6027 returns a 404 status code6028 DELETE /projects/:id/deployments/:deployment_id6029 as an maintainer6030 deletes a deployment6031 will not delete a running deployment6032 as a developer6033 is forbidden6034 as non member6035 is not found6036 for non-existent deployment6037 is not found6038 GET /projects/:id/deployments/:deployment_id/merge_requests6039 when a user is not a member of the deployment project6040 returns a 404 status code6041 when a user member of the deployment project6042 returns the relevant merge requests linked to a deployment for a project6043 when a deployment is not associated to any existing merge requests6044 returns an empty array6045 prevent N + 1 queries6046 when the endpoint returns multiple records6047 succeeds6048 with 10 more records6049 does not increase the query count6050Emails::Profile6051 for new users, the email6052 contains the password text6053 includes a link for user to set password6054 explains the reset link expiration6055 behaves like an email sent from GitLab6056 has the characteristics of an email sent from GitLab6057 behaves like a new user email6058 is sent to the new user with the correct subject and body6059 behaves like it should not have Gmail Actions links6060 is expected not to have body including "ViewAction"6061 behaves like a user cannot unsubscribe through footer link6062 does not have a List-Unsubscribe header or a body link6063 for users that signed up, the email6064 does not contain the new user's password6065 behaves like an email sent from GitLab6066 has the characteristics of an email sent from GitLab6067 behaves like a new user email6068 is sent to the new user with the correct subject and body6069 behaves like it should not have Gmail Actions links6070 is expected not to have body including "ViewAction"6071 behaves like a user cannot unsubscribe through footer link6072 does not have a List-Unsubscribe header or a body link6073 user added ssh key6074 is sent to the new user6075 has the correct subject6076 contains the new ssh key title6077 includes a link to ssh keys page6078 behaves like an email sent from GitLab6079 has the characteristics of an email sent from GitLab6080 behaves like it should not have Gmail Actions links6081 is expected not to have body including "ViewAction"6082 behaves like a user cannot unsubscribe through footer link6083 does not have a List-Unsubscribe header or a body link6084 with SSH key that does not exist6085 is expected not to raise Exception6086 user added gpg key6087 is sent to the new user6088 has the correct subject6089 contains the new gpg key title6090 includes a link to gpg keys page6091 behaves like an email sent from GitLab6092 has the characteristics of an email sent from GitLab6093 behaves like it should not have Gmail Actions links6094 is expected not to have body including "ViewAction"6095 behaves like a user cannot unsubscribe through footer link6096 does not have a List-Unsubscribe header or a body link6097 with GPG key that does not exist6098 is expected not to raise Exception6099 user personal access token has been created6100 when valid6101 is sent to the user6102 has the correct subject6103 provides the names of the token6104 includes a link to personal access tokens page6105 includes the email reason6106 behaves like an email sent from GitLab6107 has the characteristics of an email sent from GitLab6108 behaves like it should not have Gmail Actions links6109 is expected not to have body including "ViewAction"6110 behaves like a user cannot unsubscribe through footer link6111 does not have a List-Unsubscribe header or a body link6112 resource access token is about to expire6113 when access token belongs to a group6114 includes the email reason6115 behaves like an email sent from GitLab6116 has the characteristics of an email sent from GitLab6117 behaves like it should not have Gmail Actions links6118 is expected not to have body including "ViewAction"6119 behaves like a user cannot unsubscribe through footer link6120 does not have a List-Unsubscribe header or a body link6121 behaves like resource about to expire email6122 is sent to the owners6123 has the correct subject6124 includes a link to access tokens page6125 provides the names of expiring tokens6126 includes the email reason6127 when access token belongs to a project6128 includes the email reason6129 behaves like an email sent from GitLab6130 has the characteristics of an email sent from GitLab6131 behaves like it should not have Gmail Actions links6132 is expected not to have body including "ViewAction"6133 behaves like a user cannot unsubscribe through footer link6134 does not have a List-Unsubscribe header or a body link6135 behaves like resource about to expire email6136 is sent to the owners6137 has the correct subject6138 includes a link to access tokens page6139 provides the names of expiring tokens6140 includes the email reason6141 user personal access token has expired6142 when valid6143 is sent to the user6144 has the correct subject6145 mentions the access token has expired6146 includes a link to personal access tokens page6147 includes the email reason6148 behaves like an email sent from GitLab6149 has the characteristics of an email sent from GitLab6150 behaves like it should not have Gmail Actions links6151 is expected not to have body including "ViewAction"6152 behaves like a user cannot unsubscribe through footer link6153 does not have a List-Unsubscribe header or a body link6154 when invalid6155 when user does not exist6156 is expected not to change `ActionMailer::Base.deliveries.count`6157 when user is not active6158 is expected not to change `ActionMailer::Base.deliveries.count`6159 user personal access token has been revoked6160 when valid6161 is sent to the user6162 has the correct subject6163 provides the names of the token6164 wont include the revocation reason6165 includes the email reason6166 behaves like an email sent from GitLab6167 has the characteristics of an email sent from GitLab6168 behaves like it should not have Gmail Actions links6169 is expected not to have body including "ViewAction"6170 behaves like a user cannot unsubscribe through footer link6171 does not have a List-Unsubscribe header or a body link6172 when source is provided6173 is sent to the user6174 has the correct subject6175 provides the names of the token6176 includes the revocation reason6177 includes the email reason6178 behaves like an email sent from GitLab6179 has the characteristics of an email sent from GitLab6180 behaves like it should not have Gmail Actions links6181 is expected not to have body including "ViewAction"6182 behaves like a user cannot unsubscribe through footer link6183 does not have a List-Unsubscribe header or a body link6184 SSH key notification6185 notification email for expired ssh key6186 when valid6187 behaves like an email sent from GitLab6188 has the characteristics of an email sent from GitLab6189 behaves like it should not have Gmail Actions links6190 is expected not to have body including "ViewAction"6191 behaves like a user cannot unsubscribe through footer link6192 does not have a List-Unsubscribe header or a body link6193 behaves like is sent to the user6194 is expected to be delivered to ["user624@example.org"]6195 behaves like includes a link to ssh key page6196 is expected to have body matching /http:\/\/localhost\/-\/profile\/keys/6197 behaves like includes the email reason6198 is expected to have body matching /You're receiving this email because of your account on <a .*>localhost<\/a>/6199 behaves like has the correct subject6200 is expected to have subject matching /Your SSH key has expired/6201 behaves like has the correct body text6202 is expected to have body matching /SSH keys with the following fingerprints have expired/6203 when invalid6204 when user does not exist6205 behaves like does not send email6206 is expected not to change `ActionMailer::Base.deliveries.count`6207 when user is not active6208 behaves like does not send email6209 is expected not to change `ActionMailer::Base.deliveries.count`6210 notification email for expiring ssh key6211 when valid6212 behaves like an email sent from GitLab6213 has the characteristics of an email sent from GitLab6214 behaves like it should not have Gmail Actions links6215 is expected not to have body including "ViewAction"6216 behaves like a user cannot unsubscribe through footer link6217 does not have a List-Unsubscribe header or a body link6218 behaves like is sent to the user6219 is expected to be delivered to ["user624@example.org"]6220 behaves like includes a link to ssh key page6221 is expected to have body matching /http:\/\/localhost\/-\/profile\/keys/6222 behaves like includes the email reason6223 is expected to have body matching /You're receiving this email because of your account on <a .*>localhost<\/a>/6224 behaves like has the correct subject6225 is expected to have subject matching /Your SSH key is expiring soon/6226 behaves like has the correct body text6227 is expected to have body matching /SSH keys with the following fingerprints are scheduled to expire soon/6228 when invalid6229 when user does not exist6230 behaves like does not send email6231 is expected not to change `ActionMailer::Base.deliveries.count`6232 when user is not active6233 behaves like does not send email6234 is expected not to change `ActionMailer::Base.deliveries.count`6235 user unknown sign in email6236 is sent to the user6237 has the correct subject6238 mentions the username6239 mentions the new sign-in IP6240 mentions the time6241 includes a link to the change password documentation6242 mentions two factor authentication when two factor is not enabled6243 includes a link to two-factor authentication documentation6244 behaves like an email sent from GitLab6245 has the characteristics of an email sent from GitLab6246 behaves like it should not have Gmail Actions links6247 is expected not to have body including "ViewAction"6248 behaves like a user cannot unsubscribe through footer link6249 does not have a List-Unsubscribe header or a body link6250 when two factor authentication is enabled6251 does not mention two factor authentication6252 user attempted sign in with wrong 2FA OTP email6253 is sent to the user6254 has the correct subject6255 mentions the IP address6256 mentioned the time6257 includes a link to the change password documentation6258 behaves like an email sent from GitLab6259 has the characteristics of an email sent from GitLab6260 behaves like it should not have Gmail Actions links6261 is expected not to have body including "ViewAction"6262 behaves like a user cannot unsubscribe through footer link6263 does not have a List-Unsubscribe header or a body link6264 disabled two-factor authentication email6265 is sent to the user6266 has the correct subject6267 includes a link to two-factor authentication settings page6268 behaves like an email sent from GitLab6269 has the characteristics of an email sent from GitLab6270 behaves like it should not have Gmail Actions links6271 is expected not to have body including "ViewAction"6272 behaves like a user cannot unsubscribe through footer link6273 does not have a List-Unsubscribe header or a body link6274 added a new email address6275 is sent to the user6276 has the correct subject6277 includes a link to the email address page6278 behaves like an email sent from GitLab6279 has the characteristics of an email sent from GitLab6280 behaves like it should not have Gmail Actions links6281 is expected not to have body including "ViewAction"6282 behaves like a user cannot unsubscribe through footer link6283 does not have a List-Unsubscribe header or a body link6284 awarded a new achievement6285 is sent to the user6286 has the correct subject6287 includes a link to the profile page6288 includes a link to the awarding group6289 behaves like an email sent from GitLab6290 has the characteristics of an email sent from GitLab6291 behaves like it should not have Gmail Actions links6292 is expected not to have body including "ViewAction"6293 behaves like a user cannot unsubscribe through footer link6294 does not have a List-Unsubscribe header or a body link6295API::ProjectDebianDistributions6296 POST projects/:id/debian_distributions6297 behaves like Debian distributions write endpoint6298 with valid container6299 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/6300 behaves like Debian distributions POST request6301 creates distribution6302 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6303 behaves like Debian distributions POST request6304 returns unauthorized6305 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6306 behaves like Debian distributions POST request6307 returns forbidden6308 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6309 behaves like Debian distributions POST request6310 returns forbidden6311 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6312 behaves like Debian distributions POST request6313 returns unauthorized6314 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6315 behaves like Debian distributions POST request6316 returns unauthorized6317 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :created, expected_body: /^{.*"codename":"my-codename",.*"components":\["main"\],.*"architectures":\["all","amd64"\]/6318 behaves like Debian distributions POST request6319 creates distribution6320 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6321 behaves like Debian distributions POST request6322 returns forbidden6323 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6324 behaves like Debian distributions POST request6325 returns not_found6326 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6327 behaves like Debian distributions POST request6328 returns not_found6329 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6330 behaves like Debian distributions POST request6331 returns unauthorized6332 behaves like rejects Debian access with unknown container id6333 with an unknown container6334 as anonymous6335 behaves like Debian packages GET request6336 returns not_found6337 as authenticated user6338 behaves like Debian packages GET request6339 returns not_found6340 with invalid parameters6341 behaves like Debian distributions write endpoint6342 with valid container6343 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"codename":\["has already been taken"\]}}$/6344 behaves like Debian distributions GET request6345 returns bad_request and expected body6346 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6347 behaves like Debian distributions GET request6348 returns unauthorized6349 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6350 behaves like Debian distributions GET request6351 returns forbidden6352 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6353 behaves like Debian distributions GET request6354 returns forbidden6355 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6356 behaves like Debian distributions GET request6357 returns unauthorized6358 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6359 behaves like Debian distributions GET request6360 returns unauthorized6361 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"codename":\["has already been taken"\]}}$/6362 behaves like Debian distributions GET request6363 returns bad_request and expected body6364 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6365 behaves like Debian distributions GET request6366 returns forbidden6367 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6368 behaves like Debian distributions GET request6369 returns not_found6370 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6371 behaves like Debian distributions GET request6372 returns not_found6373 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6374 behaves like Debian distributions GET request6375 returns unauthorized6376 behaves like rejects Debian access with unknown container id6377 with an unknown container6378 as anonymous6379 behaves like Debian packages GET request6380 returns not_found6381 as authenticated user6382 behaves like Debian packages GET request6383 returns not_found6384 with access to package registry for everyone6385 behaves like Debian distributions POST request6386 returns not_found6387 GET projects/:id/debian_distributions6388 behaves like Debian distributions read endpoint6389 with valid container6390 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"\]/6391 behaves like Debian distributions GET request6392 returns success and expected body6393 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"\]/6394 behaves like Debian distributions GET request6395 returns success and expected body6396 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"\]/6397 behaves like Debian distributions GET request6398 returns success and expected body6399 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6400 behaves like Debian distributions GET request6401 returns unauthorized6402 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"\]/6403 behaves like Debian distributions GET request6404 returns success and expected body6405 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil6406 behaves like Debian distributions GET request6407 returns not_found6408 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6409 behaves like Debian distributions GET request6410 returns forbidden6411 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6412 behaves like Debian distributions GET request6413 returns not_found6414 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6415 behaves like Debian distributions GET request6416 returns not_found6417 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6418 behaves like Debian distributions GET request6419 returns unauthorized6420 behaves like rejects Debian access with unknown container id6421 with an unknown container6422 as anonymous6423 behaves like Debian packages GET request6424 returns not_found6425 as authenticated user6426 behaves like Debian packages GET request6427 returns not_found6428 behaves like accept GET request on private project with access to package registry for everyone6429 behaves like Debian distributions GET request6430 returns success6431 GET projects/:id/debian_distributions/:codename6432 behaves like Debian distributions read endpoint6433 with valid container6434 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"\]/6435 behaves like Debian distributions GET request6436 returns success and expected body6437 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"\]/6438 behaves like Debian distributions GET request6439 returns success and expected body6440 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"\]/6441 behaves like Debian distributions GET request6442 returns success and expected body6443 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6444 behaves like Debian distributions GET request6445 returns unauthorized6446 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"\]/6447 behaves like Debian distributions GET request6448 returns success and expected body6449 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil6450 behaves like Debian distributions GET request6451 returns not_found6452 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6453 behaves like Debian distributions GET request6454 returns forbidden6455 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6456 behaves like Debian distributions GET request6457 returns not_found6458 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6459 behaves like Debian distributions GET request6460 returns not_found6461 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6462 behaves like Debian distributions GET request6463 returns unauthorized6464 behaves like rejects Debian access with unknown container id6465 with an unknown container6466 as anonymous6467 behaves like Debian packages GET request6468 returns not_found6469 as authenticated user6470 behaves like Debian packages GET request6471 returns not_found6472 behaves like accept GET request on private project with access to package registry for everyone6473 behaves like Debian distributions GET request6474 returns success6475 GET projects/:id/debian_distributions/:codename/key.asc6476 behaves like Debian distributions read endpoint6477 with valid container6478 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/6479 behaves like Debian distributions GET request6480 returns success and expected body6481 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/6482 behaves like Debian distributions GET request6483 returns success and expected body6484 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/6485 behaves like Debian distributions GET request6486 returns success and expected body6487 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6488 behaves like Debian distributions GET request6489 returns unauthorized6490 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^-----BEGIN PGP PUBLIC KEY BLOCK-----/6491 behaves like Debian distributions GET request6492 returns success and expected body6493 visibility_level: :private, user_type: :developer, auth_method: :basic, expected_status: :not_found, expected_body: nil6494 behaves like Debian distributions GET request6495 returns not_found6496 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6497 behaves like Debian distributions GET request6498 returns forbidden6499 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6500 behaves like Debian distributions GET request6501 returns not_found6502 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6503 behaves like Debian distributions GET request6504 returns not_found6505 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6506 behaves like Debian distributions GET request6507 returns unauthorized6508 behaves like rejects Debian access with unknown container id6509 with an unknown container6510 as anonymous6511 behaves like Debian packages GET request6512 returns not_found6513 as authenticated user6514 behaves like Debian packages GET request6515 returns not_found6516 behaves like accept GET request on private project with access to package registry for everyone6517 behaves like Debian distributions GET request6518 returns success6519 PUT projects/:id/debian_distributions/:codename6520 behaves like Debian distributions write endpoint6521 with valid container6522 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/6523 behaves like Debian distributions PUT request6524 updates distribution6525 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6526 behaves like Debian distributions PUT request6527 returns unauthorized6528 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6529 behaves like Debian distributions PUT request6530 returns forbidden6531 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6532 behaves like Debian distributions PUT request6533 returns forbidden6534 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6535 behaves like Debian distributions PUT request6536 returns unauthorized6537 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6538 behaves like Debian distributions PUT request6539 returns unauthorized6540 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :success, expected_body: /^{.*"codename":"existing-codename",.*"suite":"my-suite",/6541 behaves like Debian distributions PUT request6542 updates distribution6543 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6544 behaves like Debian distributions PUT request6545 returns forbidden6546 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6547 behaves like Debian distributions PUT request6548 returns not_found6549 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6550 behaves like Debian distributions PUT request6551 returns not_found6552 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6553 behaves like Debian distributions PUT request6554 returns unauthorized6555 behaves like rejects Debian access with unknown container id6556 with an unknown container6557 as anonymous6558 behaves like Debian packages GET request6559 returns not_found6560 as authenticated user6561 behaves like Debian packages GET request6562 returns not_found6563 with invalid parameters6564 behaves like Debian distributions write endpoint6565 with valid container6566 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"suite":\["has already been taken as Codename"\]}}$/6567 behaves like Debian distributions GET request6568 returns bad_request and expected body6569 visibility_level: :public, user_type: :developer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6570 behaves like Debian distributions GET request6571 returns unauthorized6572 visibility_level: :public, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6573 behaves like Debian distributions GET request6574 returns forbidden6575 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6576 behaves like Debian distributions GET request6577 returns forbidden6578 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6579 behaves like Debian distributions GET request6580 returns unauthorized6581 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6582 behaves like Debian distributions GET request6583 returns unauthorized6584 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":{"suite":\["has already been taken as Codename"\]}}$/6585 behaves like Debian distributions GET request6586 returns bad_request and expected body6587 visibility_level: :private, user_type: :guest, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6588 behaves like Debian distributions GET request6589 returns forbidden6590 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6591 behaves like Debian distributions GET request6592 returns not_found6593 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6594 behaves like Debian distributions GET request6595 returns not_found6596 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6597 behaves like Debian distributions GET request6598 returns unauthorized6599 behaves like rejects Debian access with unknown container id6600 with an unknown container6601 as anonymous6602 behaves like Debian packages GET request6603 returns not_found6604 as authenticated user6605 behaves like Debian packages GET request6606 returns not_found6607 DELETE projects/:id/debian_distributions/:codename6608 behaves like Debian distributions maintainer write endpoint6609 with valid container6610 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/6611 behaves like Debian distributions DELETE request6612 updates distribution6613 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6614 behaves like Debian distributions DELETE request6615 returns unauthorized6616 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6617 behaves like Debian distributions DELETE request6618 returns forbidden6619 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6620 behaves like Debian distributions DELETE request6621 returns forbidden6622 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6623 behaves like Debian distributions DELETE request6624 returns unauthorized6625 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6626 behaves like Debian distributions DELETE request6627 returns unauthorized6628 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :success, expected_body: /^{"message":"202 Accepted"}$/6629 behaves like Debian distributions DELETE request6630 updates distribution6631 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6632 behaves like Debian distributions DELETE request6633 returns forbidden6634 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6635 behaves like Debian distributions DELETE request6636 returns not_found6637 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6638 behaves like Debian distributions DELETE request6639 returns not_found6640 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6641 behaves like Debian distributions DELETE request6642 returns unauthorized6643 behaves like rejects Debian access with unknown container id6644 with an unknown container6645 as anonymous6646 behaves like Debian packages GET request6647 returns not_found6648 as authenticated user6649 behaves like Debian packages GET request6650 returns not_found6651 when destroy fails6652 behaves like Debian distributions maintainer write endpoint6653 with valid container6654 visibility_level: :public, user_type: :maintainer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":"Failed to delete distribution"}$/6655 behaves like Debian distributions GET request6656 returns bad_request and expected body6657 visibility_level: :public, user_type: :maintainer, auth_method: :basic, expected_status: :unauthorized, expected_body: nil6658 behaves like Debian distributions GET request6659 returns unauthorized6660 visibility_level: :public, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6661 behaves like Debian distributions GET request6662 returns forbidden6663 visibility_level: :public, user_type: :not_a_member, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6664 behaves like Debian distributions GET request6665 returns forbidden6666 visibility_level: :public, user_type: :anonymous, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6667 behaves like Debian distributions GET request6668 returns unauthorized6669 visibility_level: :public, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6670 behaves like Debian distributions GET request6671 returns unauthorized6672 visibility_level: :private, user_type: :maintainer, auth_method: :private_token, expected_status: :bad_request, expected_body: /^{"message":"Failed to delete distribution"}$/6673 behaves like Debian distributions GET request6674 returns bad_request and expected body6675 visibility_level: :private, user_type: :developer, auth_method: :private_token, expected_status: :forbidden, expected_body: nil6676 behaves like Debian distributions GET request6677 returns forbidden6678 visibility_level: :private, user_type: :not_a_member, auth_method: :private_token, expected_status: :not_found, expected_body: nil6679 behaves like Debian distributions GET request6680 returns not_found6681 visibility_level: :private, user_type: :anonymous, auth_method: :private_token, expected_status: :not_found, expected_body: nil6682 behaves like Debian distributions GET request6683 returns not_found6684 visibility_level: :private, user_type: :invalid_token, auth_method: :private_token, expected_status: :unauthorized, expected_body: nil6685 behaves like Debian distributions GET request6686 returns unauthorized6687 behaves like rejects Debian access with unknown container id6688 with an unknown container6689 as anonymous6690 behaves like Debian packages GET request6691 returns not_found6692 as authenticated user6693 behaves like Debian packages GET request6694 returns not_found6695API::Internal::Kubernetes6696 POST /internal/kubernetes/usage_metrics6697 returns correct error for the endpoint6698 not authenticated6699 returns 4016700 kubernetes_agent_internal_api feature flag disabled6701 returns 4046702 is authenticated for an agent6703 returns no_content for valid events6704 returns no_content for counts of zero6705 returns 400 for non counter number6706 returns 400 for non unique_counter set6707 tracks events and unique events6708 POST /internal/kubernetes/agent_configuration6709 returns correct error for the endpoint6710 not authenticated6711 returns 4016712 kubernetes_agent_internal_api feature flag disabled6713 returns 4046714 agent exists6715 configures the agent and returns a 2046716 agent does not exist6717 returns a 4046718 GET /internal/kubernetes/agent_info6719 returns 401 if Authorization header not sent6720 returns 401 if Authorization is for non-existent agent6721 returns correct error for the endpoint6722 not authenticated6723 returns 4016724 kubernetes_agent_internal_api feature flag disabled6725 returns 4046726 an agent is found6727 tracks token usage6728 returns expected data6729 GET /internal/kubernetes/project_info6730 returns 401 if Authorization header not sent6731 returns 401 if Authorization is for non-existent agent6732 returns correct error for the endpoint6733 not authenticated6734 returns 4016735 kubernetes_agent_internal_api feature flag disabled6736 returns 4046737 an agent is found6738 tracks token usage6739 project is public6740 returns expected data6741 repository is for project members only6742 returns 4046743 project is private6744 returns 4046745 and agent belongs to project6746 returns 2006747 project is internal6748 returns 4046749 project does not exist6750 returns 4046751 GET /internal/kubernetes/verify_project_access6752 returns 401 if Authorization header not sent6753 returns 401 if Authorization is for non-existent agent6754 returns correct error for the endpoint6755 not authenticated6756 returns 4016757 kubernetes_agent_internal_api feature flag disabled6758 returns 4046759 an agent is found6760 tracks token usage6761 project is public6762 behaves like access is granted6763 returns success response6764 repository is for project members only6765 behaves like access is denied6766 returns 4046767 project is private6768 behaves like access is denied6769 returns 4046770 and agent belongs to project6771 behaves like access is granted6772 returns success response6773 project is internal6774 behaves like access is denied6775 returns 4046776 and agent belongs to project6777 behaves like access is granted6778 returns success response6779 project does not exist6780 behaves like access is denied6781 returns 4046782 POST /internal/kubernetes/authorize_proxy_user6783 when the access type is access_token6784 returns 200 when the user has access6785 returns 403 when user has no access6786 returns 403 when user has incorrect token scope6787 returns 403 when user has no access to requested agent6788 returns 404 for non-existent agent6789 when the access type is session_cookie6790 returns 400 when cookie is invalid6791 returns 401 when session is not found6792 returns 401 when CSRF token does not match6793 returns 404 for non-existent agent6794 returns 403 when user has no access6795 returns 200 when user has access6796 returns 401 when user has valid KAS cookie and CSRF token but has no access to requested agent6797 returns 401 when user id is not found in session6798Internal Project Pages Access6799 Project should be internal6800 #internal?6801 is expected to be truthy6802 GET /projects/:id/pages_access6803 access depends on the level6804 pages_access_level: 0, with_user: "admin", admin_mode: true, expected_result: 4036805 correct return value6806 pages_access_level: 0, with_user: "owner", admin_mode: false, expected_result: 4036807 correct return value6808 pages_access_level: 0, with_user: "master", admin_mode: false, expected_result: 4036809 correct return value6810 pages_access_level: 0, with_user: "developer", admin_mode: false, expected_result: 4036811 correct return value6812 pages_access_level: 0, with_user: "reporter", admin_mode: false, expected_result: 4036813 correct return value6814 pages_access_level: 0, with_user: "guest", admin_mode: false, expected_result: 4036815 correct return value6816 pages_access_level: 0, with_user: "user", admin_mode: false, expected_result: 4036817 correct return value6818 pages_access_level: 0, with_user: nil, admin_mode: false, expected_result: 4046819 correct return value6820 pages_access_level: 30, with_user: "admin", admin_mode: false, expected_result: 2006821 correct return value6822 pages_access_level: 30, with_user: "owner", admin_mode: false, expected_result: 2006823 correct return value6824 pages_access_level: 30, with_user: "master", admin_mode: false, expected_result: 2006825 correct return value6826 pages_access_level: 30, with_user: "developer", admin_mode: false, expected_result: 2006827 correct return value6828 pages_access_level: 30, with_user: "reporter", admin_mode: false, expected_result: 2006829 correct return value6830 pages_access_level: 30, with_user: "guest", admin_mode: false, expected_result: 2006831 correct return value6832 pages_access_level: 30, with_user: "user", admin_mode: false, expected_result: 2006833 correct return value6834 pages_access_level: 30, with_user: nil, admin_mode: false, expected_result: 4046835 correct return value6836 pages_access_level: 20, with_user: "admin", admin_mode: false, expected_result: 2006837 correct return value6838 pages_access_level: 20, with_user: "owner", admin_mode: false, expected_result: 2006839 correct return value6840 pages_access_level: 20, with_user: "master", admin_mode: false, expected_result: 2006841 correct return value6842 pages_access_level: 20, with_user: "developer", admin_mode: false, expected_result: 2006843 correct return value6844 pages_access_level: 20, with_user: "reporter", admin_mode: false, expected_result: 2006845 correct return value6846 pages_access_level: 20, with_user: "guest", admin_mode: false, expected_result: 2006847 correct return value6848 pages_access_level: 20, with_user: "user", admin_mode: false, expected_result: 2006849 correct return value6850 pages_access_level: 20, with_user: nil, admin_mode: false, expected_result: 4046851 correct return value6852 pages_access_level: 10, with_user: "admin", admin_mode: true, expected_result: 2006853 correct return value6854 pages_access_level: 10, with_user: "owner", admin_mode: false, expected_result: 2006855 correct return value6856 pages_access_level: 10, with_user: "master", admin_mode: false, expected_result: 2006857 correct return value6858 pages_access_level: 10, with_user: "developer", admin_mode: false, expected_result: 2006859 correct return value6860 pages_access_level: 10, with_user: "reporter", admin_mode: false, expected_result: 2006861 correct return value6862 pages_access_level: 10, with_user: "guest", admin_mode: false, expected_result: 2006863 correct return value6864 pages_access_level: 10, with_user: "user", admin_mode: false, expected_result: 4036865 correct return value6866 pages_access_level: 10, with_user: nil, admin_mode: false, expected_result: 4046867 correct return value6868Admin::IntegrationsController6869 behaves like Integrations::Actions6870 GET #edit6871 assigns the integration6872 behaves like unknown integration6873 returns 404 Not Found6874 PUT #update6875 updates the integration with the provided params and redirects to the form6876 when sending a password field6877 updates the integration with the password and other params6878 when sending a blank password field6879 ignores the password field and saves the other params6880 behaves like unknown integration6881 returns 404 Not Found6882 PUT #test6883 behaves like unknown integration6884 returns 404 Not Found6885 #edit6886 integration_name: "asana"6887 successfully displays the template6888 integration_name: "assembla"6889 successfully displays the template6890 integration_name: "bamboo"6891 successfully displays the template6892 integration_name: "bugzilla"6893 successfully displays the template6894 integration_name: "buildkite"6895 successfully displays the template6896 integration_name: "campfire"6897 successfully displays the template6898 integration_name: "clickup"6899 successfully displays the template6900 integration_name: "confluence"6901 successfully displays the template6902 integration_name: "custom_issue_tracker"6903 successfully displays the template6904 integration_name: "datadog"6905 successfully displays the template6906 integration_name: "discord"6907 successfully displays the template6908 integration_name: "drone_ci"6909 successfully displays the template6910 integration_name: "emails_on_push"6911 successfully displays the template6912 integration_name: "ewm"6913 successfully displays the template6914 integration_name: "external_wiki"6915 successfully displays the template6916 integration_name: "hangouts_chat"6917 successfully displays the template6918 integration_name: "harbor"6919 successfully displays the template6920 integration_name: "irker"6921 successfully displays the template6922 integration_name: "jira"6923 successfully displays the template6924 integration_name: "mattermost"6925 successfully displays the template6926 integration_name: "mattermost_slash_commands"6927 successfully displays the template6928 integration_name: "microsoft_teams"6929 successfully displays the template6930 integration_name: "mock_ci"6931 successfully displays the template6932 integration_name: "mock_monitoring"6933 successfully displays the template6934 integration_name: "packagist"6935 successfully displays the template6936 integration_name: "pipelines_email"6937 successfully displays the template6938 integration_name: "pivotaltracker"6939 successfully displays the template6940 integration_name: "prometheus"6941 successfully displays the template6942 integration_name: "pumble"6943 successfully displays the template6944 integration_name: "pushover"6945 successfully displays the template6946 integration_name: "redmine"6947 successfully displays the template6948 integration_name: "slack"6949 successfully displays the template6950 integration_name: "slack_slash_commands"6951 successfully displays the template6952 integration_name: "squash_tm"6953 successfully displays the template6954 integration_name: "teamcity"6955 successfully displays the template6956 integration_name: "telegram"6957 successfully displays the template6958 integration_name: "unify_circuit"6959 successfully displays the template6960 integration_name: "webex_teams"6961 successfully displays the template6962 integration_name: "youtrack"6963 successfully displays the template6964 integration_name: "zentao"6965 successfully displays the template6966 when GitLab.com6967 returns 4046968 #update6969 with valid params6970 updates the integration6971 calls to PropagateIntegrationWorker6972 with invalid params6973 does not update the integration6974 does not call to PropagateIntegrationWorker6975 #reset6976 returns 200 OK6977 deletes the integration and all inheriting integrations6978Update of an existing issue6979 the user is not allowed to update issue6980 behaves like a mutation that returns a top-level access error6981 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"6982 when user has permissions to update issue6983 updates the issue6984 when issue_type is updated6985 updates issue_type and work_item_type6986 setting labels6987 reset labels6988 resets labels6989 reset labels and add labels6990 returns error for mutually exclusive arguments6991 reset labels and remove labels6992 returns error for mutually exclusive arguments6993 with global label ids6994 resets labels6995 add and remove labels6996 returns correct labels6997 add labels6998 adds labels and keeps the title ordering6999 behaves like updating time estimate7000 when setting time estimate7001 when time estimate is not provided7002 does not update7003 when time estimate is not a valid numerical value7004 does not update7005 returns error7006 when time estimate is not a number7007 does not update7008 returns error7009 when time estimate is valid7010 behaves like a working GraphQL mutation7011 with a personal access token7012 behaves like prevents access to the mutation7013 does not resolve the mutation7014 behaves like allows access to the mutation7015 behaves like a working graphql query that returns data7016 contains data7017 behaves like a working graphql query7018 returns a successful response7019 with an OAuth token7020 behaves like prevents access to the mutation7021 does not resolve the mutation7022 behaves like allows access to the mutation7023 behaves like a working graphql query that returns data7024 contains data7025 behaves like a working graphql query7026 returns a successful response7027 time_estimate: "1h", value: 36007028 is expected to eq 36007029 time_estimate: "0h", value: 07030 is expected to eq 07031 time_estimate: "-0h", value: 07032 is expected to eq 07033 time_estimate: nil, value: 07034 is expected to eq 07035API::Todos7036 GET /todos7037 avoids N+1 queries7038 when unauthenticated7039 returns authentication error7040 when authenticated7041 returns an array of pending todos for current user7042 when invalid params7043 invalid action7044 returns 4007045 invalid state7046 returns 4007047 invalid type7048 returns 4007049 when current user does not have access to one of the TODO's target7050 filters out unauthorized todos7051 and using the author filter7052 filters based on author_id param7053 and using the type filter7054 filters based on type param7055 and using the state filter7056 filters based on state param7057 and using the project filter7058 filters based on project_id param7059 and using the group filter7060 filters based on project_id param7061 and using the action filter7062 filters based on action param7063 when there is a Design Todo7064 is expected to respond with numeric status code ok7065 avoids N+1 queries7066 includes the Design Todo in the response7067 POST /todos/:id/mark_as_done7068 when unauthenticated7069 returns authentication error7070 when authenticated7071 marks a todo as done7072 updates todos cache7073 returns 404 if the todo does not belong to the current user7074 POST /mark_as_done7075 when unauthenticated7076 returns authentication error7077 when authenticated7078 marks all todos as done7079 updates todos cache7080 POST :id/issuable_type/:issuable_id/todo7081 for an issue7082 returns an error if the issue author does not have access7083 behaves like an issuable7084 creates a todo on an issuable7085 returns 304 there already exist a todo on that issuable7086 returns 404 if the issuable is not found7087 returns an error if the issuable is not accessible7088 for a merge request7089 returns an error if the merge request author does not have access7090 behaves like an issuable7091 creates a todo on an issuable7092 returns 304 there already exist a todo on that issuable7093 returns 404 if the issuable is not found7094 returns an error if the issuable is not accessible7095getting a package list for a group7096 behaves like group and project packages query7097 when user has access to the resource7098 returns packages successfully7099 deals with metadata7100 returns the count of the packages7101 behaves like a working graphql query that returns data7102 contains data7103 behaves like a working graphql query7104 returns a successful response7105 _links7106 does not contain the web path of errored package7107 when the user does not have access to the resource7108 behaves like a working graphql query that returns no data7109 contains no data7110 behaves like a working graphql query7111 returns a successful response7112 when the user is not authenticated7113 behaves like a working graphql query that returns no data7114 contains no data7115 behaves like a working graphql query7116 returns a successful response7117 sorting and pagination7118 CREATED_ASC7119 behaves like sorted paginated query7120 behaves like requires variables7121 shared example requires variables to be set7123 when sorting7124 sorts correctly7125 when paginating7126 paginates correctly7127 NAME_ASC7128 behaves like sorted paginated query7129 behaves like requires variables7130 shared example requires variables to be set7132 when sorting7133 sorts correctly7134 when paginating7135 paginates correctly7136 VERSION_ASC7137 behaves like sorted paginated query7138 behaves like requires variables7139 shared example requires variables to be set7141 when sorting7142 sorts correctly7143 when paginating7144 paginates correctly7145 TYPE_ASC7146 behaves like sorted paginated query7147 behaves like requires variables7148 shared example requires variables to be set7150 when sorting7151 sorts correctly7152 when paginating7153 paginates correctly7154 CREATED_DESC7155 behaves like sorted paginated query7156 behaves like requires variables7157 shared example requires variables to be set7159 when sorting7160 sorts correctly7161 when paginating7162 paginates correctly7163 NAME_DESC7164 behaves like sorted paginated query7165 behaves like requires variables7166 shared example requires variables to be set7168 when sorting7169 sorts correctly7170 when paginating7171 paginates correctly7172 VERSION_DESC7173 behaves like sorted paginated query7174 behaves like requires variables7175 shared example requires variables to be set7177 when sorting7178 sorts correctly7179 when paginating7180 paginates correctly7181 TYPE_DESC7182 behaves like sorted paginated query7183 behaves like requires variables7184 shared example requires variables to be set7186 when sorting7187 sorts correctly7188 when paginating7189 paginates correctly7190 with an invalid sort7191 throws an error7192 filtering7193 package_name7194 is expected to contain exactly {"name"=>"bab"}7195 package_type7196 is expected to contain exactly {"name"=>"dab"}7197 status7198 is expected to contain exactly {"name"=>"my/company/app/my-app"}7199 include_versionless7200 is expected to include {"name" => "my/company/app/my-app"}7201 when reading pipelines7202 loads the second page with pagination first correctly7203 loads the second page with pagination last correctly7204 with a batched query7205 returns an error for the second group and data for the first7206Projects::RepositoriesController7207 POST create7208 when repository does not exist7209 creates the repository7210 when repository already exists7211 does not raise an exception7212 GET archive7213 as a guest7214 responds with redirect in correct format7215 as a user7216 uses Gitlab::Workhorse7217 responds with redirect to the short name archive if fully qualified7218 responds with redirect for a path with multiple slashes7219 prioritizes the id param over the ref param when both are specified7220 behaves like hotlink interceptor7221 DDOS prevention7222 hotlinked as media7223 response_status: :ok, accept_header: "*/*"7224 renders the response7225 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"7226 renders the response7227 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"7228 renders the response7229 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"7230 renders the response7231 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"7232 renders the response7233 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"7234 renders the response7235 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"7236 renders the response7237 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"7238 renders the response7239 response_status: :not_acceptable, accept_header: "image/webp,*/*"7240 renders the response7241 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"7242 renders the response7243 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"7244 renders the response7245 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"7246 renders the response7247 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"7248 renders the response7249 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"7250 renders the response7251 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"7252 renders the response7253 response_status: :not_acceptable, accept_header: "text/css"7254 renders the response7255 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"7256 renders the response7257 response_status: :not_acceptable, accept_header: "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"7258 renders the response7259 hotlinked as a script7260 response_status: :ok, fetch_mode: "navigate"7261 renders the response7262 response_status: :ok, fetch_mode: "nested-navigate"7263 renders the response7264 response_status: :ok, fetch_mode: "same-origin"7265 renders the response7266 response_status: :not_acceptable, fetch_mode: "cors"7267 renders the response7268 response_status: :not_acceptable, fetch_mode: "no-cors"7269 renders the response7270 response_status: :not_acceptable, fetch_mode: "websocket"7271 renders the response7272 when the service raises an error7273 renders Not Found7274 rate limiting7275 rate limits user when thresholds hit7276 caching7277 sets appropriate caching headers7278 when project is public7279 sets appropriate caching headers7280 and repo is private7281 sets appropriate caching headers7282 when ref is a commit SHA7283 max-age is set to 3600 in Cache-Control header7284 when If-None-Modified header is set7285 returns a 304 status7286 as a sessionless user7287 when no token is provided7288 redirects to sign in page7289 when a token param is present7290 when token is correct7291 calls the action normally7292 when user with expired password7293 redirects to sign in page7294 when password expiration is not applicable7295 when ldap user7296 calls the action normally7297 when token is incorrect7298 redirects to sign in page7299 when token is migrated7300 calls the action normally7301 when a token header is present7302 when token is correct7303 calls the action normally7304 when user with expired password7305 redirects to sign in page7306 when password expiration is not applicable7307 when ldap user7308 calls the action normally7309 when token is incorrect7310 redirects to sign in page7311Groups::Registry::RepositoriesController7312 GET #index7313 behaves like renders correctly7314 when user has access to registry7315 html format7316 show index page7317 when there is an invalid path error ContainerRegistry::Path::InvalidRegistryPathError7318 displays a connection error message7319 when there is an invalid path error Faraday::Error7320 displays a connection error message7321 json format7322 has the correct response schema7323 behaves like renders a list of repositories7324 returns a list of projects for json format7325 when there is a ContainerRegistry::Path::InvalidRegistryPathError7326 displays a connection error message7327 when there is a Faraday::Error7328 displays a connection error message7329 behaves like with name parameter7330 returns the searched repo7331 behaves like a package tracking event7332 creates a gitlab tracking event list_repositories7333 with project in subgroup7334 behaves like renders a list of repositories7335 returns a list of projects for json format7336 when there is a ContainerRegistry::Path::InvalidRegistryPathError7337 displays a connection error message7338 when there is a Faraday::Error7339 displays a connection error message7340 behaves like with name parameter7341 returns the searched repo7342 with project in subgroup and group7343 returns all the projects7344 behaves like with name parameter7345 returns the searched repo7346 user does not have access to container registry7347 json format7348 behaves like returning response status7349 returns not_found7350 html format7351 behaves like returning response status7352 returns not_found7353 GET #show7354 behaves like renders correctly7355 when user has access to registry7356 html format7357 show index page7358 when there is an invalid path error ContainerRegistry::Path::InvalidRegistryPathError7359 displays a connection error message7360 when there is an invalid path error Faraday::Error7361 displays a connection error message7362 json format7363 has the correct response schema7364 behaves like renders a list of repositories7365 returns a list of projects for json format7366 when there is a ContainerRegistry::Path::InvalidRegistryPathError7367 displays a connection error message7368 when there is a Faraday::Error7369 displays a connection error message7370 behaves like with name parameter7371 returns the searched repo7372 behaves like a package tracking event7373 creates a gitlab tracking event list_repositories7374 with project in subgroup7375 behaves like renders a list of repositories7376 returns a list of projects for json format7377 when there is a ContainerRegistry::Path::InvalidRegistryPathError7378 displays a connection error message7379 when there is a Faraday::Error7380 displays a connection error message7381 behaves like with name parameter7382 returns the searched repo7383 with project in subgroup and group7384 returns all the projects7385 behaves like with name parameter7386 returns the searched repo7387 user does not have access to container registry7388 json format7389 behaves like returning response status7390 returns not_found7391 html format7392 behaves like returning response status7393 returns not_found7394Projects::VariablesController7395 GET #show7396 renders the variables as json7397 has only one variable7398 PATCH #update7399 with invalid new variable parameters7400 does not update the existing variable7401 does not create the new variable7402 returns a bad request response7403 with duplicate new variable parameters7404 does not update the existing variable7405 does not create the new variable7406 returns a bad request response7407 with valid new variable parameters7408 updates the existing variable7409 creates the new variable7410 returns a successful response7411 has all variables in response7412 with a deleted variable7413 destroys the variable7414 returns a successful response7415 has all variables in response7416 with missing variable7417 returns not found response7418 for variables of type file7419 creates new variable of type file7420 with environment scope7421 with same key and different environment scope7422 does not update the existing variable7423 creates the new variable7424 returns a successful response including all variables7425 with same key and same environment scope7426 does not update the existing variable7427 does not create the new variable7428 returns a bad request response7429Query.jobs7430 returns the paths in each job of a pipeline7431 when requesting individual fields7432 field: "commitPath"7433 does not generate N+1 queries7434 field: "refPath"7435 does not generate N+1 queries7436 field: "webPath"7437 does not generate N+1 queries7438 field: "browseArtifactsPath"7439 does not generate N+1 queries7440 field: "playPath"7441 does not generate N+1 queries7442 field: "tags"7443 does not generate N+1 queries7444 field: "runner{id}"7445 does not generate N+1 queries7446Query.jobs.runner7447 when job has no runner7448 returns nil7449 when job has runner7450 returns runner attributes7451Query.project.pipeline7452 .stages.groups.jobs7453 returns the jobs of a pipeline stage7454 when there is more than one stage and job needs7455 reports the build needs and execution requirements7456 does not generate N+1 queries7457 .jobs.kind7458 when the job is a build7459 returns BUILD7460 when the job is a bridge7461 returns BRIDGE7462 .jobs.artifacts7463 when the job is a build7464 returns the build's artifacts7465 when the job is not a build7466 returns nil7467 .jobs.runnerManager7468 returns the runner manager in each job of a pipeline7469 does not generate N+1 queries7470 .jobs.count7471 returns the number of jobs7472 with limit value7473 returns a limited number of jobs7474 with invalid value7475 returns a validation error7476 with jobs filter7477 returns the number of failed jobs7478 when querying jobs for multiple projects7479 returns an error7480 when batched querying jobs for multiple projects7481 limits the specific field evaluation per query7482previousStageJobs7483 does not produce N+1 queries7484Projects::Settings::AccessTokensController7485 GET /:namespace/:project/-/settings/access_tokens7486 behaves like feature unavailable7487 user is not a maintainer7488 is expected to respond with numeric status code not_found7489 behaves like GET resource access tokens available7490 retrieves active access tokens7491 lists all available scopes7492 returns for json response7493 behaves like GET access tokens are paginated and ordered7494 when multiple access tokens are returned7495 returns paginated response7496 when access_token_pagination feature flag is disabled7497 returns all tokens in system7498 when tokens returned are ordered7499 orders token list ascending on expires_at7500 orders tokens on id in case token has same expires_at7501 POST /:namespace/:project/-/settings/access_tokens7502 behaves like feature unavailable7503 user is not a maintainer7504 is expected to respond with numeric status code not_found7505 behaves like POST resource access tokens available7506 renders JSON with a token7507 creates resource access token7508 creates project bot user7509 is expected to change `User.count` by 17510 is expected to change `PersonalAccessToken.count` by 17511 when unsuccessful7512 does not create the token7513 does not add the project bot as a member7514 does not create the project bot user7515 renders JSON with an error7516 when project access token creation is disabled7517 is expected to respond with numeric status code not_found7518 does not create the token7519 does not add the project bot as a member7520 does not create the project bot user7521 with custom access level7522 behaves like POST resource access tokens available7523 renders JSON with a token7524 creates resource access token7525 creates project bot user7526 is expected to change `User.count` by 17527 is expected to change `PersonalAccessToken.count` by 17528 when unsuccessful7529 does not create the token7530 does not add the project bot as a member7531 does not create the project bot user7532 renders JSON with an error7533 PUT /:namespace/:project/-/settings/access_tokens/:id7534 behaves like feature unavailable7535 user is not a maintainer7536 is expected to respond with numeric status code not_found7537 behaves like PUT resource access tokens available7538 calls delete user worker7539 removes membership of bot user7540 creates GhostUserMigration records to handle migration in a worker7541 when unsuccessful7542 shows a failure alert7543 #index7544 includes details of the active project access tokens7545 sets available scopes7546API::ProjectJobTokenScope7547 PATCH /projects/:id/job_token_scope7548 when unauthenticated user (missing user)7549 for public project7550 does not return ci cd settings of job token7551 when authenticated user as maintainer7552 returns unauthorized and blank response when invalid auth credentials are given7553 returns no content and updates the ci cd setting `ci_inbound_job_token_scope_enabled`7554 returns bad_request when ::Projects::UpdateService fails7555 returns bad_request when invalid value for parameter is given7556 returns bad_request when invalid parameter given, e.g. truthy value7557 returns bad_request when invalid parameter given, e.g. `nil`7558 returns bad_request and leaves it untouched when unpermitted parameter given7559 returns bad_request when param `outbound_scope_enabled` given7560 when authenticated user as developer7561 returns forbidden and no ci cd settings for public project7562 DELETE /projects/:id/job_token_scope/allowlist/:target_project_id7563 when unauthenticated user (missing user)7564 for public project7565 does not delete requested project from allowlist7566 when user has no permissions to project7567 responds with 401 forbidden7568 when authenticated user as a developer7569 returns 403 Forbidden7570 when authenticated user as a maintainer7571 for the target project member7572 returns no content and deletes requested project from allowlist7573 when fails to remove target project7574 returns a bad request7575 when user project does not exists7576 responds with 404 Not found7577 when target project does not exists7578 responds with 404 Not found7579 GET /projects/:id/job_token_scope7580 when unauthenticated user (missing user)7581 for public project7582 does not return ci cd settings of job token7583 when authenticated user as maintainer7584 returns ci cd settings for job token scope7585 returns the correct ci cd settings for job token scope after change7586 returns unauthorized and blank response when invalid auth credentials are given7587 when authenticated user as developer7588 returns forbidden and no ci cd settings for public project7589 GET /projects/:id/job_token_scope/allowlist7590 when unauthenticated user (missing user)7591 for public project7592 does not return ci cd settings of job token7593 when authenticated user as maintainer7594 returns allowlist containing only the source projects7595 returns allowlist of project7596 when authenticated user as developer7597 returns forbidden and no ci cd settings for public project7598 POST /projects/:id/job_token_scope/allowlist7599 when unauthenticated user (missing user)7600 for public project7601 does not return ci cd settings of job token7602 when authenticated user as maintainer7603 returns unauthorized and blank response when invalid auth credentials are given7604 returns created and creates job token scope link7605 returns bad_request and does not create an additional job token scope link7606 returns bad_request when adding the source project7607 returns not_found when project for param `project_id` does not exist7608 returns :bad_request when parameter `project_id` missing7609 returns :bad_request when parameter `project_id` is nil value7610 returns :bad_request when parameter `project_id` is empty value7611 returns :bad_request when parameter `project_id` is float value7612 when authenticated user as developer7613 for private project7614 returns forbidden and no ci cd settings7615 for public project7616 returns forbidden and no ci cd settings7617API::Unleash7618 GET /feature_flags/unleash/:project_id/client/features7619 is expected to have request urgency :medium7620 GET /feature_flags/unleash/:project_id/features7621 behaves like authenticated request7622 when using instance id7623 responds with OK7624 when repository is disabled7625 responds with forbidden7626 when repository is private7627 responds with OK7628 when using header7629 responds with OK7630 when using bogus instance id7631 responds with unauthorized7632 when using not existing project7633 responds with unauthorized7634 when a client fetches feature flags several times7635 serializes feature flags for the first time and read cached data from the second time7636 increments the cache key when feature flags are modified7637 with version 2 feature flags7638 does not return a flag without any strategies7639 returns a flag with a default strategy7640 returns a flag with a userWithId strategy7641 returns a flag with multiple strategies7642 returns only flags matching the environment scope7643 returns only strategies matching the environment scope7644 returns only flags for the given project7645 returns all strategies with a matching scope7646 returns a strategy with more than one matching scope7647 returns a disabled flag with a matching scope7648 returns a userWithId strategy for a gitlabUserList strategy7649 GET /feature_flags/unleash/:project_id/client/features7650 behaves like authenticated request7651 when using instance id7652 responds with OK7653 when repository is disabled7654 responds with forbidden7655 when repository is private7656 responds with OK7657 when using header7658 responds with OK7659 when using bogus instance id7660 responds with unauthorized7661 when using not existing project7662 responds with unauthorized7663 when a client fetches feature flags several times7664 serializes feature flags for the first time and read cached data from the second time7665 increments the cache key when feature flags are modified7666 with version 2 feature flags7667 does not return a flag without any strategies7668 returns a flag with a default strategy7669 returns a flag with a userWithId strategy7670 returns a flag with multiple strategies7671 returns only flags matching the environment scope7672 returns only strategies matching the environment scope7673 returns only flags for the given project7674 returns all strategies with a matching scope7675 returns a strategy with more than one matching scope7676 returns a disabled flag with a matching scope7677 returns a userWithId strategy for a gitlabUserList strategy7678 POST /feature_flags/unleash/:project_id/client/register7679 behaves like authenticated request7680 when using instance id7681 responds with OK7682 when repository is disabled7683 responds with forbidden7684 when repository is private7685 responds with OK7686 when using header7687 responds with OK7688 when using bogus instance id7689 responds with unauthorized7690 when using not existing project7691 responds with unauthorized7692 POST /feature_flags/unleash/:project_id/client/metrics7693 behaves like authenticated request7694 when using instance id7695 responds with OK7696 when repository is disabled7697 responds with forbidden7698 when repository is private7699 responds with OK7700 when using header7701 responds with OK7702 when using bogus instance id7703 responds with unauthorized7704 when using not existing project7705 responds with unauthorized7706getting an issue list for a group7707 behaves like a working graphql query7708 returns a successful response7709 when there are archived projects7710 excludes issues from archived projects by default7711 when include_archived is true7712 includes issues from archived projects7713 when there is a confidential issue7714 when the user cannot see confidential issues7715 returns issues without confidential issues for the group7716 filtering for confidential issues7717 returns no issues7718 filtering for non-confidential issues7719 returns correctly filtered issues7720 when the user can see confidential issues7721 returns issues with confidential issues for the group7722 filtering for confidential issues7723 returns correctly filtered issues7724 filtering for non-confidential issues7725 returns correctly filtered issues7726API::FeatureFlagsUserLists7727 GET /projects/:id/feature_flags_user_lists7728 forbids the request for a reporter7729 returns forbidden if the feature is unavailable7730 returns all the user lists7731 returns all the data for a user list7732 paginates user lists7733 returns the user lists for only the specified project7734 returns an empty list7735 when filtering7736 returns lists matching the search term7737 returns lists matching multiple search terms7738 returns all lists with no query7739 GET /projects/:id/feature_flags_user_lists/:iid7740 forbids the request for a reporter7741 returns forbidden if the feature is unavailable7742 returns the user list7743 returns the correct user list identified by the iid7744 scopes the iid search to the project7745 returns not found when the list does not exist7746 POST /projects/:id/feature_flags_user_lists7747 forbids the request for a reporter7748 returns forbidden if the feature is unavailable7749 creates the flag7750 requires name7751 requires user_xids7752 returns an error when name is already taken7753 does not create a flag for a project of which the developer is not a member7754 PUT /projects/:id/feature_flags_user_lists/:iid7755 forbids the request for a reporter7756 returns forbidden if the feature is unavailable7757 updates the list7758 preserves attributes not listed in the request7759 returns an error when the update is invalid7760 returns not found when the list does not exist7761 DELETE /projects/:id/feature_flags_user_lists/:iid7762 forbids the request for a reporter7763 returns forbidden if the feature is unavailable7764 returns not found when the list does not exist7765 deletes the list7766 does not delete the list if it is associated with a strategy7767Projects::DeploymentsController7768 GET #index7769 returns list of deployments from last 8 hours7770 returns a list with deployments information7771 anonymous user7772 project and metrics dashboard are public7773 returns a list with deployments information7774 project and metrics dashboard are private7775 responds with not found7776 GET #metrics7777 when metrics are disabled7778 responds with not found7779 when metrics are enabled7780 when environment has no metrics7781 returns an empty 204 response7782 when environment has some metrics7783 returns a metrics JSON document7784 returns a 404 if the deployment failed7785 GET #additional_metrics7786 when metrics are disabled7787 responds with not found7788 when metrics are enabled7789 when environment has no metrics7790 returns a empty response 204 response7791 when environment has some metrics7792 returns a metrics JSON document7793getting container repositories in a group7794 returns the total count of container repositories7795 behaves like a working graphql query7796 returns a successful response7797 with different permissions7798 group_visibility: :private, role: :maintainer, access_granted: true, can_delete: true7799 return the proper response7800 group_visibility: :private, role: :developer, access_granted: true, can_delete: true7801 return the proper response7802 group_visibility: :private, role: :reporter, access_granted: true, can_delete: false7803 return the proper response7804 group_visibility: :private, role: :guest, access_granted: false, can_delete: false7805 return the proper response7806 group_visibility: :private, role: :anonymous, access_granted: false, can_delete: false7807 return the proper response7808 group_visibility: :public, role: :maintainer, access_granted: true, can_delete: true7809 return the proper response7810 group_visibility: :public, role: :developer, access_granted: true, can_delete: true7811 return the proper response7812 group_visibility: :public, role: :reporter, access_granted: true, can_delete: false7813 return the proper response7814 group_visibility: :public, role: :guest, access_granted: false, can_delete: false7815 return the proper response7816 group_visibility: :public, role: :anonymous, access_granted: false, can_delete: false7817 return the proper response7818 limiting the number of repositories7819 only returns N repositories7820 filter by name7821 returns the searched container repository7822 behaves like handling graphql network errors with the container registry7823 returns a connection error7824 behaves like not hitting graphql network errors with the container registry7825 does not return any error7826Query.ciConfig7827 returns the correct structure7828 behaves like a working graphql query7829 returns a successful response7830 when the config file includes other files7831 returns the correct structure with included files7832 behaves like a working graphql query7833 returns a successful response7834 when the config file has multiple includes7835 returns correct includes7836 behaves like a working graphql query7837 returns a successful response7838 skip_verify_project_sha7839 when the sha is from the main project7840 behaves like when the sha exists in the main project7841 when skip_verify_project_sha is not provided7842 behaves like content is valid7843 returns the expected data without validation errors7844 when skip_verify_project_sha is false7845 behaves like content is valid7846 returns the expected data without validation errors7847 when skip_verify_project_sha is true7848 behaves like content is valid7849 returns the expected data without validation errors7850 when the sha is from a fork project7851 when the sha is associated with a main project ref7852 behaves like when the sha exists in the main project7853 when skip_verify_project_sha is not provided7854 behaves like content is valid7855 returns the expected data without validation errors7856 when skip_verify_project_sha is false7857 behaves like content is valid7858 returns the expected data without validation errors7859 when skip_verify_project_sha is true7860 behaves like content is valid7861 returns the expected data without validation errors7862 when the sha is not associated with a main project ref7863 when skip_verify_project_sha is not provided7864 behaves like returning error7865 returns an error7866 when skip_verify_project_sha is false7867 behaves like returning error7868 returns an error7869 when skip_verify_project_sha is true7870 behaves like content is valid7871 returns the expected data without validation errors7872 when the sha is invalid7873 behaves like when the sha exists in the main project7874 when skip_verify_project_sha is not provided7875 behaves like content is valid7876 returns the expected data without validation errors7877 when skip_verify_project_sha is false7878 behaves like content is valid7879 returns the expected data without validation errors7880 when skip_verify_project_sha is true7881 behaves like content is valid7882 returns the expected data without validation errors7883DeviseMailer7884 #confirmation_instructions7885 when confirming a new account7886 shows the expected text7887 when confirming the unconfirmed_email7888 shows the expected text7889 when re-confirming the primary email after a security issue7890 shows the expected text7891 #password_change_by_admin7892 is sent to the user7893 has the correct subject7894 includes the correct content7895 includes a link to GitLab7896 behaves like an email sent from GitLab7897 has the characteristics of an email sent from GitLab7898 behaves like it should not have Gmail Actions links7899 is expected not to have body including "ViewAction"7900 behaves like a user cannot unsubscribe through footer link7901 does not have a List-Unsubscribe header or a body link7902 #user_admin_approval7903 is sent to the user7904 has the correct subject7905 greets the user7906 includes the correct content7907 includes a link to GitLab7908 behaves like an email sent from GitLab7909 has the characteristics of an email sent from GitLab7910 behaves like it should not have Gmail Actions links7911 is expected not to have body including "ViewAction"7912 behaves like a user cannot unsubscribe through footer link7913 does not have a List-Unsubscribe header or a body link7914 #reset_password_instructions7915 is sent to the user7916 has the correct subject7917 greets the user7918 includes the correct content7919 includes a link to reset the password7920 has the mailgun suppression bypass header7921 behaves like an email sent from GitLab7922 has the characteristics of an email sent from GitLab7923 behaves like it should not have Gmail Actions links7924 is expected not to have body including "ViewAction"7925 behaves like a user cannot unsubscribe through footer link7926 does not have a List-Unsubscribe header or a body link7927 with email in params7928 is sent to the specified email7929 #email_changed7930 is sent to the user7931 has the correct subject7932 greets the user7933 behaves like an email sent from GitLab7934 has the characteristics of an email sent from GitLab7935 when self-managed7936 has the expected content of self managed instance7937 when saas7938 has the expected content of saas instance7939 email contains updated id7940 includes changed email id7941Projects::Settings::RepositoryController7942 GET show7943 renders show with 200 status code7944 PUT cleanup7945 enqueues a project cleanup7946 when project cleanup returns an error7947 shows an error7948 POST create_deploy_token7949 a good request7950 creates the deploy token7951 a bad request7952 does not create the deploy token7953 an invalid request7954 raises a validation error7955 PUT update7956 when updating default branch7957 with a good request7958 updates default branch and redirect to project_settings_repository_path7959 with a bad input7960 does not update default branch and shows an alert7961 when updating branch names template from issues7962 with a good request7963 updates issue_branch_template and redirect to project_settings_repository_path7964 with a bad input7965 updates issue_branch_template and redirect to project_settings_repository_path7966Gitlab::SidekiqCluster::CLI7967 #run7968 without any arguments7969 raises CommandError7970 with arguments7971 starts the Sidekiq workers7972 allows the special * selector7973 raises an error when the arguments contain newlines7974 with --negate flag7975 starts Sidekiq workers for all queues in all_queues.yml except the ones in argv7976 with --max-concurrency flag7977 starts Sidekiq workers for specified queues with a max concurrency7978 with --min-concurrency flag7979 starts Sidekiq workers for specified queues with a min concurrency7980 with --timeout flag7981 when given7982 when not given7983 with --list-queues flag7984 errors when given --list-queues and --dryrun7985 prints out a list of queues in alphabetical order7986 queue namespace expansion7987 starts Sidekiq workers for all queues in all_queues.yml with a namespace in argv7988 with --queue-selector7989 expands multiple queue groups correctly7990 allows the special * selector7991 errors when the selector matches no queues7992 errors on an invalid query multiple queue groups correctly7993 memory-bound queues7994 expands queues by attributes7995 works when negated7996 memory- or CPU-bound queues7997 expands queues by attributes7998 works when negated7999 high urgency CI queues8000 expands queues by attributes8001 works when negated8002 CPU-bound high urgency CI queues8003 expands queues by attributes8004 works when negated8005 CPU-bound high urgency non-CI queues8006 expands queues by attributes8007 works when negated8008 CI and SCM queues8009 expands queues by attributes8010 works when negated8011 with routing rules specified8012 starts Sidekiq workers only for given queues without any additional DEFAULT_QUEUES8013 with sidekiq settings not specified8014 does not throw an error8015 starts Sidekiq workers with given queues, and additional default and mailers queues (DEFAULT_QUEUES)8016 metrics server8017 starting the server8018 without --dryrun8019 wipes the metrics directory before starting workers8020 when sidekiq_exporter is not set up8021 does not start a sidekiq metrics server8022 with missing sidekiq_exporter setting8023 does not start a sidekiq metrics server8024 does not throw an error8025 when sidekiq_exporter is disabled8026 does not start a sidekiq metrics server8027 when sidekiq_exporter is enabled8028 starts the metrics server8029 when a PID is specified8030 writes the PID to a file8031 when no PID is specified8032 does not write a PID8033 with --dryrun set8034 does not start the server8035 supervising the cluster8036 stops the entire process cluster if one of the workers has been terminated8037 restarts the metrics server when it is down8038 when one of the workers has been terminated gracefully8039 stops the entire process cluster8040 when one of the workers has failed8041 stops the entire process cluster and exits with a non-zero code8042API::API8043 Record user last activity in after hook8044 updates the users last_activity_on to the current date8045 with a project-specific path8046 passes correct arguments to ActivityService8047 User with only read_api scope personal access token8048 when personal access token has only read_api scope8049 does authorize user for get request8050 does authorize user for head request8051 does not authorize user for revoked token8052 does not authorize user for post request8053 does not authorize user for put request8054 does not authorize user for delete request8055 authentication with deploy token8056 admin mode8057 does not bypass the session8058 logging8059 when the endpoint is handled by the application8060 skips context fields that do not apply8061 when the endpoint supports all possible fields8062 logs all application context fields and the route8063 when there is an unsupported media type8064 logs the route and context metadata for the client8065 when there is an OPTIONS request8066 logs the route and context metadata for the client8067 when the API version is not matched8068 logs the route and context metadata for the client8069 when there is an unhandled exception for an anonymous request8070 logs all application context fields and the route8071 Marginalia comments8072 GET /user/:id8073 generates a query that includes the expected annotations8074 supported content-types8075 GET /user/:id.txt8076 returns application/json8077 content security policy header8078 when CSP is not configured globally8079 does not set the CSP header8080 when CSP is configured globally8081 sets a stricter CSP header8082 when report_only is true8083 does not set any CSP header8084 admin mode support8085 with `admin_mode` scope8086 when admin mode setting is disabled8087 is expected to respond with numeric status code ok8088 when admin mode setting is enabled8089 is expected to respond with numeric status code ok8090 without `admin_mode` scope8091 when admin mode setting is disabled8092 is expected to respond with numeric status code ok8093 when admin mode setting is enabled8094 is expected to respond with numeric status code forbidden8095 Handle Gitlab::Git::ResourceExhaustedError exception8096 returns 503 status and Retry-After header8097getting project members information8098 when the request is correct8099 returns project members successfully8100 behaves like a working graphql query8101 returns a successful response8102 search argument8103 returns members that match the search query8104 when paginating8105 returns correct results8106 member relations8107 returns direct members8108 returns invited members plus inherited members8109 returns direct, inherited, descendant, and invited members8110 returns an error for an invalid member relation8111 when a member is invited only via email and current_user is a maintainer8112 returns null in the user field8113 when project is owned by a member8114 returns the owner in the response8115 merge request interactions8116 avoids N+1 queries, when requesting multiple MRs8117 avoids N+1 queries, when more users are involved8118 when unauthenticated8119 returns members8120Groups::Crm::ContactsController8121 GET #index8122 behaves like ok response with index template if authorized8123 private group8124 with authorized user8125 when crm_enabled is true8126 behaves like ok response with index template8127 renders the index template8128 when crm_enabled is false8129 behaves like response with 404 status8130 returns 4048131 when subgroup8132 behaves like response with 404 status8133 returns 4048134 with unauthorized user8135 behaves like response with 404 status8136 returns 4048137 with anonymous user8138 blah8139 public group8140 with anonymous user8141 behaves like response with 404 status8142 returns 4048143 GET #new8144 behaves like ok response with index template if authorized8145 private group8146 with authorized user8147 when crm_enabled is true8148 behaves like ok response with index template8149 renders the index template8150 when crm_enabled is false8151 behaves like response with 404 status8152 returns 4048153 when subgroup8154 behaves like response with 404 status8155 returns 4048156 with unauthorized user8157 behaves like response with 404 status8158 returns 4048159 with anonymous user8160 blah8161 public group8162 with anonymous user8163 behaves like response with 404 status8164 returns 4048165 GET #edit8166 behaves like ok response with index template if authorized8167 private group8168 with authorized user8169 when crm_enabled is true8170 behaves like ok response with index template8171 renders the index template8172 when crm_enabled is false8173 behaves like response with 404 status8174 returns 4048175 when subgroup8176 behaves like response with 404 status8177 returns 4048178 with unauthorized user8179 behaves like response with 404 status8180 returns 4048181 with anonymous user8182 blah8183 public group8184 with anonymous user8185 behaves like response with 404 status8186 returns 4048187Setting issues crm contacts8188 when the user has no permission8189 returns expected error8190 when the user has permission8191 behaves like successful mutation8192 replace8193 updates the issue with correct contacts8194 with an empty list of contacts8195 removes all contacts8196 append8197 updates the issue with correct contacts8198 remove8199 updates the issue with correct contacts8200 when the contact does not exist8201 returns expected error8202 when the contact belongs to a different group8203 returns expected error8204 when attempting to add more than 68205 returns expected error8206 when trying to remove non-existent contact8207 raises expected error8208 when crm_enabled is false8209 raises expected error8210Emails::Pipelines8211 #pipeline_success_email8212 behaves like correct pipeline information8213 has a correct information8214 when pipeline on master branch has a merge request8215 has correct information that there is no merge request link8216 when pipeline for merge requests8217 has correct information that there is a merge request link8218 when branch pipeline is set to a merge request as a head pipeline8219 has correct information that there is a merge request link8220 behaves like only accepts a single recipient8221 raises an ArgumentError8222 #pipeline_failed_email8223 behaves like correct pipeline information8224 has a correct information8225 when pipeline on master branch has a merge request8226 has correct information that there is no merge request link8227 when pipeline for merge requests8228 has correct information that there is a merge request link8229 when branch pipeline is set to a merge request as a head pipeline8230 has correct information that there is a merge request link8231 behaves like only accepts a single recipient8232 raises an ArgumentError8233 #pipeline_fixed_email8234 behaves like correct pipeline information8235 has a correct information8236 when pipeline on master branch has a merge request8237 has correct information that there is no merge request link8238 when pipeline for merge requests8239 has correct information that there is a merge request link8240 when branch pipeline is set to a merge request as a head pipeline8241 has correct information that there is a merge request link8242 behaves like only accepts a single recipient8243 raises an ArgumentError8244SendFileUpload8245 #send_upload8246 when local file is used8247 sends a file8248 behaves like handles image resize requests8249 with valid width parameter8250 renders OK with workhorse command header8251 with missing width parameter8252 does not write workhorse command header8253 with invalid width parameter8254 does not write workhorse command header8255 with width that is not allowed8256 does not write workhorse command header8257 when image file is not an avatar8258 does not write workhorse command header8259 when image file type is not considered safe for scaling8260 does not write workhorse command header8261 behaves like handles image resize requests8262 with valid width parameter8263 renders OK with workhorse command header8264 with missing width parameter8265 does not write workhorse command header8266 with invalid width parameter8267 does not write workhorse command header8268 with width that is not allowed8269 does not write workhorse command header8270 when image file is not an avatar8271 does not write workhorse command header8272 when image file type is not considered safe for scaling8273 does not write workhorse command header8274 with inline image8275 sends a file with inline disposition8276 with attachment8277 sends a file with content-type of text/plain8278 with a proxied file in object storage8279 sends a file with a custom type8280 when remote file is used8281 and proxying is enabled8282 behaves like proxied file8283 sends a file8284 and proxying is disabled8285 sends a file8286 with proxy requested8287 behaves like proxied file8288 sends a file8289 behaves like handles image resize requests8290 with valid width parameter8291 renders OK with workhorse command header8292 with missing width parameter8293 does not write workhorse command header8294 with invalid width parameter8295 does not write workhorse command header8296 with width that is not allowed8297 does not write workhorse command header8298 when image file is not an avatar8299 does not write workhorse command header8300 when image file type is not considered safe for scaling8301 does not write workhorse command header8302 behaves like handles image resize requests8303 with valid width parameter8304 renders OK with workhorse command header8305 with missing width parameter8306 does not write workhorse command header8307 with invalid width parameter8308 does not write workhorse command header8309 with width that is not allowed8310 does not write workhorse command header8311 when image file is not an avatar8312 does not write workhorse command header8313 when image file type is not considered safe for scaling8314 does not write workhorse command header8315 when CDN-enabled remote file is used8316 sends a file when CDN URL8317API::ImportBitbucketServer8318 POST /import/bitbucket_server8319 with no optional parameters8320 rejects requests when Bitbucket Server Importer is disabled8321 returns 201 response when the project is imported successfully8322 with a new project name8323 returns 201 response when the project is imported successfully with a new project name8324 with an invalid URL8325 returns 400 response due to a blocked URL8326 with an invalid timeout strategy8327 returns 400 response due to a blocked URL8328 with a new namespace8329 returns 201 response when the project is imported successfully to a new namespace8330 with a private inaccessible namespace8331 returns 401 response when user can not create projects in the chosen namespace8332 with an inaccessible bitbucket server instance8333 raises a connection error8334Projects::CycleAnalytics::EventsController8335 includes GracefulTimeoutHandling8336 value stream analytics not set up flag8337 with no data8338 is empty8339 with data8340 is not empty8341 contains event detais8342 with data older than start date8343 is empty8344API::SidekiqMetrics8345 GET sidekiq/*8346 defines the `queue_metrics` endpoint8347 defines the `process_metrics` endpoint8348 defines the `job_stats` endpoint8349 defines the `compound_metrics` endpoint8350 behaves like GET request permissions for admin mode8351 behaves like when admin8352 behaves like makes request8353 returns8354 behaves like makes request8355 returns8356 behaves like when user8357 returns8358 behaves like makes request8359 returns8360 behaves like GET request permissions for admin mode8361 behaves like when admin8362 behaves like makes request8363 returns8364 behaves like makes request8365 returns8366 behaves like when user8367 returns8368 behaves like makes request8369 returns8370 behaves like GET request permissions for admin mode8371 behaves like when admin8372 behaves like makes request8373 returns8374 behaves like makes request8375 returns8376 behaves like when user8377 returns8378 behaves like makes request8379 returns8380 behaves like GET request permissions for admin mode8381 behaves like when admin8382 behaves like makes request8383 returns8384 behaves like makes request8385 returns8386 behaves like when user8387 returns8388 behaves like makes request8389 returns8390Repositories::LfsStorageController8391 PUT #upload_authorize8392 with unauthorized roles8393 user_role: :guest, expected_status: :forbidden8394 behaves like returning response status8395 returns forbidden8396 user_role: :anonymous, expected_status: :unauthorized8397 behaves like returning response status8398 returns unauthorized8399 with at least developer role8400 sets Workhorse with a max limit8401 PUT #upload_finalize8402 with lfs enabled8403 with unauthorized roles8404 user_role: :guest, expected_status: :forbidden8405 behaves like returning response status8406 returns forbidden8407 user_role: :anonymous, expected_status: :unauthorized8408 behaves like returning response status8409 returns unauthorized8410 with at least developer role8411 creates the objects8412 without the workhorse header8413 is expected to raise JWT::DecodeError8414 without file8415 behaves like returning response status8416 returns unprocessable_entity8417 with an invalid file8418 behaves like returning response status8419 returns bad_request8420 when an expected error8421 ActiveRecord::RecordInvalid raised8422 renders lfs forbidden8423 UploadedFile::InvalidPathError raised8424 renders lfs forbidden8425 ObjectStorage::RemoteStoreError raised8426 renders lfs forbidden8427 when existing file has been deleted8428 replaces the file8429 with invalid file8430 renders bad request8431 when file is not stored8432 renders unprocessable entity8433 with lfs disabled8434 behaves like returning response status8435 returns not_implemented8436getting project flow metrics8437 behaves like value stream analytics flow metrics issueCount examples8438 returns the correct count8439 with partial filters8440 returns filtered count8441 with all filters8442 returns filtered count8443 when the user is not authorized8444 returns nil8445 behaves like validation on Time arguments8446 when `to` parameter is higher than `from`8447 returns error8448 when from and to parameter range is higher than 180 days8449 returns error8450 behaves like value stream analytics flow metrics deploymentCount examples8451 returns the correct count8452 when the user is not authorized8453 returns nil8454 when outside of the date range8455 returns 0 count8456 behaves like validation on Time arguments8457 when `to` parameter is higher than `from`8458 returns error8459 when from and to parameter range is higher than 180 days8460 returns error8461Remove items linked to a work item8462 when user has permissions to read the work item8463 unlinks the work items8464 when some items fail8465 remove valid item and include failing ids in response message8466 when there are more than the max allowed items to unlink8467 returns an error message8468 when workItemsIds is empty8469 behaves like a mutation that returns top-level errors8470 is expected to contain exactly "workItemsIds cannot be empty"8471 when `linked_work_items` feature flag is disabled8472 behaves like a mutation that returns a top-level access error8473 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"8474 when the user is not allowed to read the work item8475 behaves like a mutation that returns a top-level access error8476 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"8477Projects::Pipelines::StagesController8478 POST #play_manual.json8479 when user does not have access8480 returns not authorized8481 when user has access8482 when the stage does not exists8483 fails to play all manual8484 when the stage exists8485 starts all manual jobs8486Projects::BoardsController8487 GET index8488 creates a new project board when project does not have one8489 renders template8490 when there are recently visited boards8491 redirects to latest visited board8492 with unauthorized user8493 returns a not found 404 response8494 when user is signed out8495 renders template8496 issues are disabled8497 returns a not found 404 response8498 behaves like unauthorized when external service denies access8499 allows access when the authorization service allows it8500 allows access when the authorization service denies it8501 GET show8502 when format is HTML8503 renders template8504 with unauthorized user8505 returns a not found 404 response8506 when user is signed out8507 does not save visit8508 when board does not belong to project8509 returns a not found 404 response8510Query.group(fullPath).ciVariables8511 when the user can administer the group8512 returns the group's CI variables8513 when the user cannot administer the group8514 returns nothing8515 sorting and pagination8516 behaves like sorted paginated variables8517 when sorted by key ascending8518 behaves like sorted paginated query8519 behaves like requires variables8520 shared example requires variables to be set8522 when sorting8523 sorts correctly8524 when paginating8525 paginates correctly8526 when sorted by key descending8527 behaves like sorted paginated query8528 behaves like requires variables8529 shared example requires variables to be set8531 when sorting8532 sorts correctly8533 when paginating8534 paginates correctly8535Requests on a read-only node8536 when db is read-only8537 behaves like graphql on a read-only GitLab instance8538 mutations8539 disallows the query8540 does not destroy the Note8541 read-only queries8542 allows the query8543API::Ci::Runner8544 /api/v4/runners8545 DELETE /api/v4/runners8546 behaves like runner migrations backoff8547 when executing locking database migrations8548 returns 429 error8549 with runner_migrations_backoff disabled8550 does not return 4298551 when no token is provided8552 returns 400 error8553 when invalid token is provided8554 returns 403 error8555 when valid token is provided8556 deletes Runner8557 behaves like 412 response8558 for a modified resource8559 returns 412 with a JSON error8560 for an unmodified resource8561 returns 204 with an empty body8562 behaves like storing arguments in the application context for the API8563 places the expected params in the application context8564 /api/v4/runners/managers8565 DELETE /api/v4/runners/managers8566 with created runner8567 with matching system_id8568 when no token is provided8569 returns 400 error8570 when invalid token is provided8571 returns 403 error8572 when valid token is provided8573 with created runner8574 with matching system_id8575 deletes runner manager8576 behaves like 412 response8577 for a modified resource8578 returns 412 with a JSON error8579 for an unmodified resource8580 returns 204 with an empty body8581 behaves like storing arguments in the application context for the API8582 places the expected params in the application context8583 with unknown system_id8584 returns 404 error8585 without system_id8586 does not delete runner manager nor runner8587Groups::Harbor::TagsController8588 behaves like a harbor tags controller8589 GET #index.json8590 behaves like responds with 200 status with json8591 renders the index template8592 with anonymous user8593 behaves like responds with 404 status8594 returns 4048595 with unauthorized user8596 behaves like responds with 404 status8597 returns 4048598 with valid params8599 with valid repository8600 behaves like responds with 200 status with json8601 renders the index template8602 with valid page8603 behaves like responds with 200 status with json8604 renders the index template8605 with valid limit8606 behaves like responds with 200 status with json8607 renders the index template8608 with invalid params8609 with invalid page8610 behaves like responds with 422 status with json8611 returns 4228612 with invalid limit8613 behaves like responds with 422 status with json8614 returns 4228615Projects::PipelinesController8616 GET index.json8617 does not execute N+1 queries8618 GET stages.json8619 does not execute N+1 queries8620 with retried builds8621 does not execute N+1 queries8622rendering project storage type routes8623 when project is private8624 behaves like valid routes for storage type8625 contains all keys8626 contains valid paths8627 when user is nil8628 hides statisticsDetailsPaths for nil users8629 behaves like a working graphql query8630 returns a successful response8631 when project is public8632 behaves like valid routes for storage type8633 contains all keys8634 contains valid paths8635 when user is nil8636 behaves like valid routes for storage type8637 contains all keys8638 contains valid paths8639API::Admin::Migrations8640 POST /admin/migrations/:version/mark8641 when the migration exists8642 marks the migration as successful8643 behaves like POST request permissions for admin mode8644 behaves like when admin8645 behaves like makes request8646 returns8647 behaves like makes request8648 returns8649 behaves like when user8650 returns8651 behaves like makes request8652 returns8653 when the migration does not exist8654 returns 4048655 when the migration was already executed8656 returns 4228657 when multiple database is enabled8658 uses the correct connection8659 when the database name does not exist8660 returns bad request8661Projects::Ml::ModelVersionsController8662 show8663 renders the template8664 fetches the correct model_version8665 when version id does not exist8666 is expected to respond with numeric status code not_found8667 when version and model id are correct but project is not8668 is expected to respond with numeric status code not_found8669 when user does not have access8670 is expected to respond with numeric status code not_found8671moving designs8672 the user is not allowed to move designs8673 returns an error8674 the neighbors do not have positions8675 maintains the correct order in the presence of other unpositioned designs8676 behaves like a successful move8677 does not error, and reports the current order8678 moving a design between two others8679 behaves like a successful move8680 does not error, and reports the current order8681 moving a design to the start8682 behaves like a successful move8683 does not error, and reports the current order8684 moving a design to the end8685 behaves like a successful move8686 does not error, and reports the current order8687Repositioning an ImageDiffNote8688 updates the note8689 when the note is not a DiffNote8690 behaves like a mutation that returns top-level errors8691 is expected to include /does not represent an instance of DiffNote/8692 when a position arg is nil8693 does not set the property to nil8694 when all position args are nil8695 behaves like a mutation that returns top-level errors8696 is expected to include /At least one property of `UpdateDiffImagePositionInput` must be set/8697Projects::Settings::SlacksController8698 GET slack_auth8699 when valid CSRF token is provided8700 calls service and redirects with no alerts if result is successful8701 calls service and redirects with the alert if there is error8702 when no CSRF token is provided8703 returns 4038704 when there was an OAuth error8705 redirects with an alert8706 DELETE destroy8707 destroys the record8708 POST update8709 when alias is valid8710 updates the record8711 when alias is invalid8712 does not update the record8713UserAchievements8714 can lookahead to eliminate N+1 queries8715 returns the correct achievement and user_achievement counts8716 returns all non_revoked user_achievements8717 behaves like a working graphql query8718 returns a successful response8719 when the achievements feature flag is disabled8720 is expected to be empty8721 when user_achievement has priority set8722 returns achievements in correct order8723Admin::BatchedJobsController8724 GET #show8725 fetches the job8726 uses the default connection8727 returns a default database record8728 when the job does not exist8729 returns not found8730 when multiple database is enabled8731 when CI database is provided8732 uses CI database connection8733 returns a CI database record8734Subscriptions::Notes::Deleted8735 when user is authorized8736 receives note id that is removed8737 when last discussion note is deleted8738 receives note id that is removed8739 when note is confidential8740 receives note id that is removed8741 when user is unauthorized8742 does not receive any data8743Query.project.job8744 when the user can read jobs on the project8745 returns the job that matches the given ID8746 when no job matches the given ID8747 returns null8748 when the user cannot read jobs on the project8749 returns null8750Mutations::Metrics::Dashboard::Annotations::Delete8751 is expected to require graphql authorizations :admin_metrics_dashboard_annotation8752 when the user has permission to delete the annotation8753 with invalid params8754 behaves like a mutation that returns top-level errors8755 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"8756 when metrics dashboard feature is unavailable8757 behaves like a mutation that returns top-level errors8758 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"8759 when the user does not have permission to delete the annotation8760 behaves like a mutation that returns top-level errors8761 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"8762Importing Jira Users8763 with anonymous user8764 behaves like a mutation that returns top-level errors8765 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"8766 with user without permissions8767 behaves like a mutation that returns top-level errors8768 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"8769 when the user has permissions8770 when the project path is invalid8771 returns an an error8772 with start_at8773 when nil8774 behaves like start users import at zero8775 returns imported users8776 when not provided8777 behaves like start users import at zero8778 returns imported users8779 when all params and permissions are ok8780 when service returns a successful response8781 returns imported users8782 when service returns an error response8783 returns an error messaege8784Projects::Settings::PackagesAndRegistriesController8785 GET #cleanup_tags8786 when user is unauthorized8787 shows 4048788 when user is authorized8789 renders content8790 when registry is disabled8791 shows 4048792 when container registry is disabled on project8793 shows 4048794API::Admin::Dictionary8795 GET admin/databases/:database_name/dictionary/tables/:table_name8796 behaves like GET request permissions for admin mode8797 behaves like when admin8798 behaves like makes request8799 returns8800 behaves like makes request8801 returns8802 behaves like when user8803 returns8804 behaves like makes request8805 returns8806 when the database does not exist8807 returns bad request8808 when the table does not exist8809 returns not found8810 when the params are correct8811 fetches the table dictionary8812Query.project.mergeRequest.codequalityReportsComparer8813 when the user is not authorized to read the field8814 is expected to be nil8815 when the user is authorized to read the field8816 returns expected data8817 when when sast_reports_in_inline_diff FF is disabled8818 returns null for codequality_reports_comparer field8819getting group recent issue boards8820 behaves like querying a GraphQL type recent boards8821 Get list of recently visited boards8822 when the request is correct8823 returns recent boards for user successfully8824 behaves like a working graphql query8825 returns a successful response8826 when requests has errors8827 when there are no recently visited boards8828 returns empty result8829JobPlay8830 plays a job8831 returns an error if the user is not allowed to play the job8832 when given variables8833 provides those variables to the job8834ExternalRedirect::ExternalRedirectController requests8835 with invalid url params8836 when url is bad8837 returns 4048838 when url is empty8839 returns 4048840 when url param is missing8841 returns 4048842 with same origin url8843 redirects8844 with valid url param8845DEPRECATION WARNING: The asset "page_bundles/external_redirect.css" is not present in the asset pipeline.8846Falling back to an asset that may be in the public folder.8847This behavior is deprecated and will be removed.8848To bypass the asset pipeline and preserve this behavior,8849use the `skip_pipeline: true` option.8850 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:279)8851 returns 200 and renders URL8852DEPRECATION WARNING: The asset "page_bundles/external_redirect.css" is not present in the asset pipeline.8853Falling back to an asset that may be in the public folder.8854This behavior is deprecated and will be removed.8855To bypass the asset pipeline and preserve this behavior,8856use the `skip_pipeline: true` option.8857 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:279)8858 does not render nav8859Project Deployment query8860 returns the deployment of the project8861 when user is guest8862 returns nothing8863Oauth::AuthorizationsController8864 GET #new8865 when application redirect URI has a custom scheme8866 when CSP is disabled8867 does not add a CSP8868 when CSP contains form-action8869 adds custom scheme to CSP form-action8870 when CSP does not contain form-action8871 does not add form-action to the CSP8872Project.languages8873 when the languages haven't been detected yet8874 returns expected languages on second request as detection is done asynchronously8875 when the languages were detected before8876 returns repository languages8877Import::GithubGroupsController8878 GET status8879 when OAuth config is missing8880 returns missing config error8881 when OAuth config present8882 fetches organizations8883 with pagination8884 when no page is specified8885 requests first page8886 when page is specified8887 responds with organizations with specified page8888Projects::Packages::PackagesController8889 GET #index8890 behaves like returning response status8891 returns ok8892 GET #show8893 behaves like returning response status8894 returns ok8895Projects::ServicePingController8896 POST #web_ide_pipelines_count8897 behaves like counter is not increased8898 when the user is not authenticated8899 returns 3028900 when the user does not have access to the project8901 returns 4048902 behaves like counter is increased8903 when the authenticated user has access to the project8904 increments the usage counter8905PagerDuty webhook8906 POST /incidents/pagerduty8907 calls PagerDuty webhook processor with correct parameters8908 responds with 202 Accepted8909JwksController8910 Endpoints from the parent Doorkeeper::OpenidConnect::DiscoveryController8911 respond successfully8912 GET /-/jwks8913 returns signing keys used to sign CI_JOB_JWT8914 includes the OIDC signing key ID8915 does not leak private key data8916API::Geo8917 GET /geo/proxy8918 rejects requests that bypassed gitlab-workhorse8919 with valid auth8920 returns empty data8921ImportUrlParams8922 empty URL8923 returns empty hash8924 url and password separately provided8925 #import_url_params8926 returns hash with import_url8927 url with provided empty credentials8928 #import_url_params8929 does not change the url8930 url with provided mixed credentials8931 #import_url_params8932 returns import_url built from both url and hash credentials8933Projects::UploadsController8934 behaves like uploads actions8935 GET #show8936 with file traversal in filename parameter8937 responds with status 4008938JiraConnect::AppDescriptorController8939 #show8940 returns JSON app descriptor8941OmniAuth Rack middlewares8942 OmniAuth before_request_phase callback8943 increments Prometheus counter8944auto_explain log contains 1566 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-single-redis-2-12.334.main.ndjson.gz8945took 37.2011586328946auto_explain log contains 1567 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-single-redis-2-12.334.ci.ndjson.gz8947took 35.621848358948Knapsack report was generated. Preview:8949{8950 "spec/requests/api/npm_project_packages_spec.rb": 727.272045665,8951 "spec/requests/lfs_http_spec.rb": 116.43881529300006,8952 "spec/requests/projects/cycle_analytics_events_spec.rb": 112.80973865399983,8953 "spec/requests/api/ci/runner/jobs_request_post_spec.rb": 77.9069913569997,8954 "spec/requests/api/group_packages_spec.rb": 69.87335658000029,8955 "spec/requests/api/ci/jobs_spec.rb": 61.450087113000336,8956 "spec/controllers/search_controller_spec.rb": 42.182313186999636,8957 "spec/requests/api/deployments_spec.rb": 54.02691166600016,8958 "spec/mailers/emails/profile_spec.rb": 29.584355146000235,8959 "spec/requests/api/project_debian_distributions_spec.rb": 18.496791696999935,8960 "spec/requests/api/internal/kubernetes_spec.rb": 33.3429093890004,8961 "spec/requests/api/pages/internal_access_spec.rb": 34.62572137799998,8962 "spec/controllers/admin/integrations_controller_spec.rb": 22.42985965800017,8963 "spec/requests/api/graphql/mutations/issues/update_spec.rb": 26.745549400000073,8964 "spec/requests/api/todos_spec.rb": 25.929205838000144,8965 "spec/requests/api/graphql/group/packages_spec.rb": 24.323157707000064,8966 "spec/controllers/projects/repositories_controller_spec.rb": 22.127417822000098,8967 "spec/controllers/groups/registry/repositories_controller_spec.rb": 23.915917572000126,8968 "spec/controllers/projects/variables_controller_spec.rb": 19.053734878999876,8969 "spec/requests/api/graphql/ci/jobs_spec.rb": 18.80764171700048,8970 "spec/requests/projects/settings/access_tokens_controller_spec.rb": 15.249856120999993,8971 "spec/requests/api/project_job_token_scope_spec.rb": 10.510839549000139,8972 "spec/requests/api/unleash_spec.rb": 7.0499645770000825,8973 "spec/requests/api/graphql/group/issues_spec.rb": 14.170687817999806,8974 "spec/requests/api/feature_flags_user_lists_spec.rb": 8.902009324000119,8975 "spec/controllers/projects/deployments_controller_spec.rb": 12.50300127699984,8976 "spec/requests/api/graphql/group/container_repositories_spec.rb": 11.361138658999607,8977 "spec/requests/api/graphql/ci/config_spec.rb": 9.745225513999685,8978 "spec/mailers/devise_mailer_spec.rb": 4.483531750000111,8979 "spec/controllers/projects/settings/repository_controller_spec.rb": 9.211894331999702,8980 "spec/commands/sidekiq_cluster/cli_spec.rb": 2.1828145839999706,8981 "spec/requests/api/api_spec.rb": 5.536365885000123,8982 "spec/requests/api/graphql/project/project_members_spec.rb": 7.13116724099973,8983 "spec/requests/groups/crm/contacts_controller_spec.rb": 6.9692128309998225,8984 "spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb": 7.223543814000095,8985 "spec/mailers/emails/pipelines_spec.rb": 5.729686050000055,8986 "spec/controllers/concerns/send_file_upload_spec.rb": 2.053251793000072,8987 "spec/requests/api/import_bitbucket_server_spec.rb": 5.512766245999956,8988 "spec/controllers/projects/cycle_analytics/events_controller_spec.rb": 5.044537060000039,8989 "spec/requests/api/sidekiq_metrics_spec.rb": 3.677990686999692,8990 "spec/controllers/repositories/lfs_storage_controller_spec.rb": 3.843942384999991,8991 "spec/requests/api/graphql/project/flow_metrics_spec.rb": 3.9175687809997726,8992 "spec/requests/api/graphql/mutations/work_items/linked_items/remove_spec.rb": 3.0493281620001653,8993 "spec/controllers/projects/pipelines/stages_controller_spec.rb": 5.54867328399996,8994 "spec/controllers/projects/boards_controller_spec.rb": 4.1218776450000405,8995 "spec/requests/api/graphql/ci/group_variables_spec.rb": 3.242167239000082,8996 "spec/requests/api/graphql/read_only_spec.rb": 4.557776974000262,8997 "spec/requests/api/ci/runner/runners_delete_spec.rb": 1.62006426500011,8998 "spec/requests/groups/harbor/tags_controller_spec.rb": 2.679652279000038,8999 "spec/requests/projects/pipelines_controller_spec.rb": 4.260553006000009,9000 "spec/requests/api/graphql/project/project_statistics_redirect_spec.rb": 2.4123954169999706,9001 "spec/requests/api/admin/migrations_spec.rb": 1.8529562480002824,9002 "spec/requests/projects/ml/model_versions_controller_spec.rb": 2.3673752510003396,9003 "spec/requests/api/graphql/mutations/design_management/move_spec.rb": 2.3474931119999383,9004 "spec/requests/api/graphql/mutations/notes/reposition_image_diff_note_spec.rb": 1.9215785030000916,9005 "spec/controllers/projects/settings/slacks_controller_spec.rb": 2.5395583790000273,9006 "spec/requests/api/graphql/achievements/user_achievements_query_spec.rb": 2.479432703000384,9007 "spec/requests/admin/batched_jobs_controller_spec.rb": 2.370924321000075,9008 "spec/requests/api/graphql/subscriptions/notes/deleted_spec.rb": 2.1568367859999853,9009 "spec/requests/api/graphql/project/job_spec.rb": 3.0686094910001884,9010 "spec/requests/api/graphql/mutations/metrics/dashboard/annotations/delete_spec.rb": 1.420065779000197,9011 "spec/requests/api/graphql/mutations/jira_import/import_users_spec.rb": 2.3388400930002717,9012 "spec/requests/projects/settings/packages_and_registries_controller_spec.rb": 1.6549424919999183,9013 "spec/requests/api/admin/dictionary_spec.rb": 1.2087533039998561,9014 "spec/requests/api/graphql/merge_requests/codequality_reports_comparer_spec.rb": 1.7800935329996719,9015 "spec/requests/api/graphql/group/recent_issue_boards_query_spec.rb": 1.135179918999711,9016 "spec/requests/api/graphql/mutations/ci/job/play_spec.rb": 1.634464253999795,9017 "spec/requests/external_redirect/external_redirect_controller_spec.rb": 0.6453967039997224,9018 "spec/requests/api/graphql/project/deployment_spec.rb": 1.2025567640002919,9019 "spec/requests/oauth/authorizations_controller_spec.rb": 1.155114777000108,9020 "spec/requests/api/graphql/project/languages_spec.rb": 1.2923689570002352,9021 "spec/requests/import/github_groups_controller_spec.rb": 0.6925956109998879,9022 "spec/controllers/projects/packages/packages_controller_spec.rb": 0.5600434799998766,9023 "spec/controllers/projects/service_ping_controller_spec.rb": 0.7053961890001119,9024 "spec/requests/projects/incident_management/pagerduty_incidents_spec.rb": 0.5574738200002685,9025 "spec/requests/jwks_controller_spec.rb": 0.5788010390001546,9026 "spec/requests/api/geo_spec.rb": 0.2382819530002962,9027 "spec/controllers/concerns/import_url_params_spec.rb": 0.25755245100026514,9028 "spec/requests/projects/uploads_controller_spec.rb": 0.5619594600002529,9029 "spec/controllers/jira_connect/app_descriptor_controller_spec.rb": 0.20814059600024848,9030 "spec/requests/rack_middlewares/omniauth_spec.rb": 0.20024244500018549031}9032Knapsack global time execution for tests: 29m 55s9033Finished in 31 minutes 14 seconds (files took 48.19 seconds to load)90343919 examples, 0 failures9035Randomized with seed 457629036[TEST PROF INFO] Time spent in factories: 07:41.604 (24.49% of total time)9037RSpec exited with 0.9038No examples to retry, congrats!9040Running after script...9041$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"9049$ tooling/bin/push_job_metrics || true9050[job-metrics] Pushing job metrics file for the CI/CD job.9051[job-metrics] Pushed 4 CI job metric entries to InfluxDB.9053Not uploading cache ruby-gems-debian-bullseye-ruby-3.1-16 due to policy9055Uploading artifacts...9056auto_explain/: found 3 matching artifact files and directories 9057coverage/: found 5 matching artifact files and directories 9058crystalball/: found 2 matching artifact files and directories 9059deprecations/: found 4 matching artifact files and directories 9060knapsack/: found 4 matching artifact files and directories 9061rspec/: found 16 matching artifact files and directories 9062WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9063log/*.log: found 19 matching artifact files and directories 9064WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5597251428/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9065WARNING: Retrying... context=artifacts-uploader error=request redirected9066Uploading artifacts as "archive" to coordinator... 201 Created id=5597251428 responseStatus=201 Created token=64_sqoku9067Uploading artifacts...9068rspec/rspec-*.xml: found 1 matching artifact files and directories 9069WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5597251428/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9070WARNING: Retrying... context=artifacts-uploader error=request redirected9071Uploading artifacts as "junit" to coordinator... 201 Created id=5597251428 responseStatus=201 Created token=64_sqoku9073Job succeeded