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

Luke Duncalfe
1GRANT2==> 'setup_db_user_only' succeeded in 0 seconds.3$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee4Dropped database 'gitlabhq_test'5Dropped database 'gitlabhq_geo_test'6Created database 'gitlabhq_test'7Created database 'gitlabhq_geo_test'8DEPRECATION WARNING: Using `bin/rails db:structure:load` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:load` instead. (called from load at /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/bin/rake:23)9Dropped database 'gitlabhq_geo_test'10Created database 'gitlabhq_geo_test'11==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 29 seconds.12$ run_timed_command "gem install knapsack --no-document"13$ gem install knapsack --no-document14Successfully installed knapsack-4.0.0151 gem installed16==> 'gem install knapsack --no-document' succeeded in 1 seconds.17$ run_timed_command "scripts/gitaly-test-spawn"18$ scripts/gitaly-test-spawn19Don't run Bundler as root. Bundler can ask for sudo if it is needed, and20installing your bundle as root will break this application for all non-root21users on this machine.22Using abstract_type 0.0.723Using concurrent-ruby 1.1.924Using i18n 1.8.1025Using minitest 5.14.426Using tzinfo 2.0.427Using zeitwerk 2.4.228Using activesupport 6.1.4.129Using builder 3.2.430Using erubi 1.10.031Using mini_portile2 2.5.132Using racc 1.5.233Using nokogiri 1.11.7 (x86_64-linux)34Using rails-dom-testing 2.0.335Using crass 1.0.636Using loofah 2.12.037Using rails-html-sanitizer 1.4.238Using actionview 6.1.4.139Using rack 2.2.340Using rack-test 1.1.041Using actionpack 6.1.4.142Using ice_nine 0.11.243Using thread_safe 0.3.644Using memoizable 0.4.245Using adamantium 0.2.046Using public_suffix 4.0.647Using addressable 2.7.048Using ast 2.4.149Using binding_ninja 0.2.350Using bundler 2.1.451Using charlock_holmes 0.7.752Using coderay 1.1.253Using equalizer 0.0.1154Using concord 0.1.555Using diff-lcs 1.356Using dotenv 2.7.657Using escape_utils 1.2.158Using factory_bot 5.0.259Using multipart-post 2.1.160Using faraday 1.0.161Using ffi 1.15.362Using json 2.5.163Using gemojione 3.3.064Using mini_mime 1.0.265Using rugged 1.2.066Using github-linguist 7.12.167Using github-markup 1.7.068Using mime-types-data 3.2020.110469Using mime-types 3.3.170Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.171Using rouge 3.26.072Using nokogumbo 1.5.073Using sanitize 4.6.674Using stringex 2.8.575Using gitlab-gollum-lib 4.2.7.10.gitlab.176Using google-protobuf 3.17.3 (x86_64-linux)77Using googleapis-common-protos-types 1.1.078Using grpc 1.30.2 (x86_64-linux)79Using opentracing 0.5.080Using thrift 0.15.081Using jaeger-client 1.1.082Using pg_query 2.1.183Using redis 4.4.084Using gitlab-labkit 0.21.285Using rubyzip 2.3.286Using thor 1.1.087Using tomlrb 2.0.188Using with_env 1.1.089Using rexml 3.2.490Using xml-simple 1.1.991Using gitlab-license_finder 6.14.2.192Using gitlab-markup 1.7.193Using grpc-tools 1.30.294Using sawyer 0.8.295Using octokit 4.20.096Using reverse_markdown 1.4.097Using licensee 9.14.198Using method_source 0.9.299Using msgpack 1.3.3100Using optimist 3.0.1101Using parallel 1.19.2102Using parser 2.7.2.0103Using procto 0.0.3104Using unparser 0.4.7105Using proc_to_ast 0.1.0106Using pry 0.12.2107Using rainbow 3.0.0108Using rbtrace 0.4.14109Using rdoc 6.3.2110Using regexp_parser 1.8.1111Using rspec-support 3.8.0112Using rspec-core 3.8.0113Using rspec-expectations 3.8.3114Using rspec-mocks 3.8.0115Using rspec 3.8.0116Using rspec-parameterized 0.4.2117Using rubocop-ast 0.2.0118Using ruby-progressbar 1.10.1119Using unicode-display_width 1.7.0120Using rubocop 0.86.0121Using sentry-raven 3.0.4122Using timecop 0.9.1123Bundle complete! 22 Gemfile dependencies, 101 gems now installed.124Gems in the groups production and development were not installed.125Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`126Checking gitaly-ruby Gemfile...127Checking gitaly-ruby bundle...128The Gemfile's dependencies are satisfied129Trying to connect to gitaly: ........................................... OK130Trying to connect to gitaly2: ............................................................... OK131Trying to connect to praefect: ........ OK132==> 'scripts/gitaly-test-spawn' succeeded in 13 seconds.133$ source ./scripts/rspec_helpers.sh134$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"135KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb136SKIP_FLAKY_TESTS_AUTOMATICALLY: true137Knapsack node specs:138spec/requests/api/npm_instance_packages_spec.rb139spec/requests/api/issues/get_project_issues_spec.rb140spec/requests/api/composer_packages_spec.rb141spec/requests/api/ci/runner/jobs_request_post_spec.rb142spec/requests/api/labels_spec.rb143spec/requests/api/helpers_spec.rb144spec/controllers/explore/projects_controller_spec.rb145spec/controllers/ldap/omniauth_callbacks_controller_spec.rb146spec/controllers/uploads_controller_spec.rb147spec/requests/api/lint_spec.rb148spec/controllers/projects/merge_requests/drafts_controller_spec.rb149spec/controllers/groups/group_links_controller_spec.rb150spec/controllers/projects/deploy_keys_controller_spec.rb151spec/requests/api/protected_branches_spec.rb152spec/requests/api/graphql/mutations/snippets/update_spec.rb153spec/requests/api/deploy_tokens_spec.rb154spec/requests/api/graphql/project/container_repositories_spec.rb155spec/controllers/projects/prometheus/alerts_controller_spec.rb156spec/controllers/import/bitbucket_controller_spec.rb157spec/requests/api/graphql/mutations/notes/create/image_diff_note_spec.rb158spec/requests/api/environments_spec.rb159spec/requests/api/feature_flags_user_lists_spec.rb160spec/requests/api/feature_flags_spec.rb161spec/controllers/projects/design_management/designs/raw_images_controller_spec.rb162spec/requests/api/issue_links_spec.rb163spec/controllers/groups/boards_controller_spec.rb164spec/requests/api/namespaces_spec.rb165spec/requests/projects/metrics_dashboard_spec.rb166spec/controllers/admin/projects_controller_spec.rb167spec/mailers/emails/issues_spec.rb168spec/controllers/projects/tracings_controller_spec.rb169spec/requests/api/graphql/project/merge_request/diff_notes_spec.rb170spec/controllers/projects/hooks_controller_spec.rb171spec/controllers/groups/settings/applications_controller_spec.rb172spec/controllers/projects/runners_controller_spec.rb173spec/controllers/admin/ci/variables_controller_spec.rb174spec/controllers/projects/error_tracking_controller_spec.rb175spec/mailers/emails/auto_devops_spec.rb176spec/controllers/users/terms_controller_spec.rb177spec/requests/api/remote_mirrors_spec.rb178spec/requests/api/internal/kubernetes_spec.rb179spec/requests/api/graphql/mutations/ci/ci_cd_settings_update_spec.rb180spec/requests/api/graphql/mutations/labels/create_spec.rb181spec/requests/projects/merge_requests/content_spec.rb182spec/requests/api/group_avatar_spec.rb183spec/requests/api/graphql/project/milestones_spec.rb184spec/requests/api/graphql/mutations/clusters/agents/create_spec.rb185spec/requests/product_analytics/collector_app_attack_spec.rb186spec/requests/api/graphql/packages/package_spec.rb187spec/controllers/projects/autocomplete_sources_controller_spec.rb188spec/controllers/concerns/spammable_actions/akismet_mark_as_spam_action_spec.rb189spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb190spec/controllers/profiles/personal_access_tokens_controller_spec.rb191spec/controllers/users/unsubscribes_controller_spec.rb192spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb193spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb194spec/requests/api/graphql/project/alert_management/alert/metrics_dashboard_url_spec.rb195spec/controllers/projects/ci/pipeline_editor_controller_spec.rb196spec/requests/api/graphql/project/grafana_integration_spec.rb197spec/controllers/projects/refs_controller_spec.rb198spec/requests/users/group_callouts_spec.rb199spec/requests/api/graphql/project/terraform/states_spec.rb200spec/requests/api/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb201spec/requests/api/graphql/mutations/todos/create_spec.rb202spec/controllers/projects/usage_quotas_controller_spec.rb203spec/requests/api/graphql/ci/groups_spec.rb204spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb205spec/requests/api/api_guard/admin_mode_middleware_spec.rb206spec/requests/import/url_controller_spec.rb207spec/requests/api/graphql/current_user_query_spec.rb208spec/requests/runner_setup_controller_spec.rb209spec/requests/api/container_registry_event_spec.rb210spec/mailers/emails/admin_notification_spec.rb211spec/requests/admin/integrations_controller_spec.rb212Filter specs:213Running specs:214Running all node tests without filter215spec/requests/api/npm_instance_packages_spec.rb216spec/requests/api/issues/get_project_issues_spec.rb217spec/requests/api/composer_packages_spec.rb218spec/requests/api/ci/runner/jobs_request_post_spec.rb219spec/requests/api/labels_spec.rb220spec/requests/api/helpers_spec.rb221spec/controllers/explore/projects_controller_spec.rb222spec/controllers/ldap/omniauth_callbacks_controller_spec.rb223spec/controllers/uploads_controller_spec.rb224spec/requests/api/lint_spec.rb225spec/controllers/projects/merge_requests/drafts_controller_spec.rb226spec/controllers/groups/group_links_controller_spec.rb227spec/controllers/projects/deploy_keys_controller_spec.rb228spec/requests/api/protected_branches_spec.rb229spec/requests/api/graphql/mutations/snippets/update_spec.rb230spec/requests/api/deploy_tokens_spec.rb231spec/requests/api/graphql/project/container_repositories_spec.rb232spec/controllers/projects/prometheus/alerts_controller_spec.rb233spec/controllers/import/bitbucket_controller_spec.rb234spec/requests/api/graphql/mutations/notes/create/image_diff_note_spec.rb235spec/requests/api/environments_spec.rb236spec/requests/api/feature_flags_user_lists_spec.rb237spec/requests/api/feature_flags_spec.rb238spec/controllers/projects/design_management/designs/raw_images_controller_spec.rb239spec/requests/api/issue_links_spec.rb240spec/controllers/groups/boards_controller_spec.rb241spec/requests/api/namespaces_spec.rb242spec/requests/projects/metrics_dashboard_spec.rb243spec/controllers/admin/projects_controller_spec.rb244spec/mailers/emails/issues_spec.rb245spec/controllers/projects/tracings_controller_spec.rb246spec/requests/api/graphql/project/merge_request/diff_notes_spec.rb247spec/controllers/projects/hooks_controller_spec.rb248spec/controllers/groups/settings/applications_controller_spec.rb249spec/controllers/projects/runners_controller_spec.rb250spec/controllers/admin/ci/variables_controller_spec.rb251spec/controllers/projects/error_tracking_controller_spec.rb252spec/mailers/emails/auto_devops_spec.rb253spec/controllers/users/terms_controller_spec.rb254spec/requests/api/remote_mirrors_spec.rb255spec/requests/api/internal/kubernetes_spec.rb256spec/requests/api/graphql/mutations/ci/ci_cd_settings_update_spec.rb257spec/requests/api/graphql/mutations/labels/create_spec.rb258spec/requests/projects/merge_requests/content_spec.rb259spec/requests/api/group_avatar_spec.rb260spec/requests/api/graphql/project/milestones_spec.rb261spec/requests/api/graphql/mutations/clusters/agents/create_spec.rb262spec/requests/product_analytics/collector_app_attack_spec.rb263spec/requests/api/graphql/packages/package_spec.rb264spec/controllers/projects/autocomplete_sources_controller_spec.rb265spec/controllers/concerns/spammable_actions/akismet_mark_as_spam_action_spec.rb266spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb267spec/controllers/profiles/personal_access_tokens_controller_spec.rb268spec/controllers/users/unsubscribes_controller_spec.rb269spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb270spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb271spec/requests/api/graphql/project/alert_management/alert/metrics_dashboard_url_spec.rb272spec/controllers/projects/ci/pipeline_editor_controller_spec.rb273spec/requests/api/graphql/project/grafana_integration_spec.rb274spec/controllers/projects/refs_controller_spec.rb275spec/requests/users/group_callouts_spec.rb276spec/requests/api/graphql/project/terraform/states_spec.rb277spec/requests/api/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb278spec/requests/api/graphql/mutations/todos/create_spec.rb279spec/controllers/projects/usage_quotas_controller_spec.rb280spec/requests/api/graphql/ci/groups_spec.rb281spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb282spec/requests/api/api_guard/admin_mode_middleware_spec.rb283spec/requests/import/url_controller_spec.rb284spec/requests/api/graphql/current_user_query_spec.rb285spec/requests/runner_setup_controller_spec.rb286spec/requests/api/container_registry_event_spec.rb287spec/mailers/emails/admin_notification_spec.rbKnapsack report generator started!288warning: parser/current is loading parser/ruby27, which recognizes289warning: 2.7.4-compliant syntax, but you are running 2.7.5.290warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.291undefined method `[]' for #<RspecFlaky::FlakyExample:0x00007fad8bd93c40>292WARNING: Shared example group agent token tracking was defined without a block and will have no effect. Please define a block or remove the definition.. Called from /builds/gitlab-org/gitlab/spec/requests/api/internal/kubernetes_spec.rb:152:in `block (3 levels) in <top (required)>'.293Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}294==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.061778403 seconds...295Test environment set up in 1.454446421 seconds296API::NpmInstancePackages297 GET /api/v4/packages/npm/*package_name298 behaves like handling get metadata requests299 with a group namespace300 behaves like handling all conditions301 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok302 behaves like accept metadata request303 accepts the metadata request304 avoids N+1 database queries305 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok306 behaves like accept metadata request307 accepts the metadata request308 avoids N+1 database queries309 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok310 behaves like redirect metadata request311 redirects metadata request312 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok313 behaves like reject metadata request314 rejects the metadata request315 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok316 behaves like redirect metadata request317 redirects metadata request318 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok319 behaves like reject metadata request320 rejects the metadata request321 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected322 behaves like redirect metadata request323 redirects metadata request324 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found325 behaves like reject metadata request326 rejects the metadata request327 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found328 behaves like reject metadata request329 rejects the metadata request330 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found331 behaves like reject metadata request332 rejects the metadata request333 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found334 behaves like redirect metadata request335 redirects metadata request336 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found337 behaves like reject metadata request338 rejects the metadata request339 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found340 behaves like redirect metadata request341 redirects metadata request342 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found343 behaves like reject metadata request344 rejects the metadata request345 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected346 behaves like redirect metadata request347 redirects metadata request348 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found349 behaves like reject metadata request350 rejects the metadata request351 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found352 behaves like reject metadata request353 rejects the metadata request354 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found355 behaves like reject metadata request356 rejects the metadata request357 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found358 behaves like redirect metadata request359 redirects metadata request360 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found361 behaves like reject metadata request362 rejects the metadata request363 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found364 behaves like redirect metadata request365 redirects metadata request366 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found367 behaves like reject metadata request368 rejects the metadata request369 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected370 behaves like redirect metadata request371 redirects metadata request372 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found373 behaves like reject metadata request374 rejects the metadata request375 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok376 behaves like accept metadata request377 accepts the metadata request378 avoids N+1 database queries379 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok380 behaves like accept metadata request381 accepts the metadata request382 avoids N+1 database queries383 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok384 behaves like accept metadata request385 accepts the metadata request386 avoids N+1 database queries387 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok388 behaves like accept metadata request389 accepts the metadata request390 avoids N+1 database queries391 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok392 behaves like redirect metadata request393 redirects metadata request394 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok395 behaves like redirect metadata request396 redirects metadata request397 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok398 behaves like reject metadata request399 rejects the metadata request400 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok401 behaves like reject metadata request402 rejects the metadata request403 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok404 behaves like redirect metadata request405 redirects metadata request406 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok407 behaves like redirect metadata request408 redirects metadata request409 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok410 behaves like reject metadata request411 rejects the metadata request412 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok413 behaves like reject metadata request414 rejects the metadata request415 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected416 behaves like redirect metadata request417 redirects metadata request418 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected419 behaves like redirect metadata request420 redirects metadata request421 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found422 behaves like reject metadata request423 rejects the metadata request424 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found425 behaves like reject metadata request426 rejects the metadata request427 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden428 behaves like reject metadata request429 rejects the metadata request430 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok431 behaves like accept metadata request432 accepts the metadata request433 avoids N+1 database queries434 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden435 behaves like reject metadata request436 rejects the metadata request437 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok438 behaves like accept metadata request439 accepts the metadata request440 avoids N+1 database queries441 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden442 behaves like redirect metadata request443 redirects metadata request444 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok445 behaves like redirect metadata request446 redirects metadata request447 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden448 behaves like reject metadata request449 rejects the metadata request450 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok451 behaves like reject metadata request452 rejects the metadata request453 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden454 behaves like redirect metadata request455 redirects metadata request456 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok457 behaves like redirect metadata request458 redirects metadata request459 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden460 behaves like reject metadata request461 rejects the metadata request462 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok463 behaves like reject metadata request464 rejects the metadata request465 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected466 behaves like redirect metadata request467 redirects metadata request468 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected469 behaves like redirect metadata request470 redirects metadata request471 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden472 behaves like reject metadata request473 rejects the metadata request474 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found475 behaves like reject metadata request476 rejects the metadata request477 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok478 behaves like accept metadata request479 accepts the metadata request480 avoids N+1 database queries481 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok482 behaves like accept metadata request483 accepts the metadata request484 avoids N+1 database queries485 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok486 behaves like accept metadata request487 accepts the metadata request488 avoids N+1 database queries489 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok490 behaves like accept metadata request491 accepts the metadata request492 avoids N+1 database queries493 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok494 behaves like redirect metadata request495 redirects metadata request496 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok497 behaves like redirect metadata request498 redirects metadata request499 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok500 behaves like reject metadata request501 rejects the metadata request502 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok503 behaves like reject metadata request504 rejects the metadata request505 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok506 behaves like redirect metadata request507 redirects metadata request508 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok509 behaves like redirect metadata request510 redirects metadata request511 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok512 behaves like reject metadata request513 rejects the metadata request514 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok515 behaves like reject metadata request516 rejects the metadata request517 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected518 behaves like redirect metadata request519 redirects metadata request520 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected521 behaves like redirect metadata request522 redirects metadata request523 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found524 behaves like reject metadata request525 rejects the metadata request526 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found527 behaves like reject metadata request528 rejects the metadata request529 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok530 behaves like accept metadata request531 accepts the metadata request532 avoids N+1 database queries533 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok534 behaves like accept metadata request535 accepts the metadata request536 avoids N+1 database queries537 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok538 behaves like accept metadata request539 accepts the metadata request540 avoids N+1 database queries541 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok542 behaves like accept metadata request543 accepts the metadata request544 avoids N+1 database queries545 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok546 behaves like redirect metadata request547 redirects metadata request548 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok549 behaves like redirect metadata request550 redirects metadata request551 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok552 behaves like reject metadata request553 rejects the metadata request554 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok555 behaves like reject metadata request556 rejects the metadata request557 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok558 behaves like redirect metadata request559 redirects metadata request560 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok561 behaves like redirect metadata request562 redirects metadata request563 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok564 behaves like reject metadata request565 rejects the metadata request566 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok567 behaves like reject metadata request568 rejects the metadata request569 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected570 behaves like redirect metadata request571 redirects metadata request572 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected573 behaves like redirect metadata request574 redirects metadata request575 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found576 behaves like reject metadata request577 rejects the metadata request578 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found579 behaves like reject metadata request580 rejects the metadata request581 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden582 behaves like reject metadata request583 rejects the metadata request584 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok585 behaves like accept metadata request586 accepts the metadata request587 avoids N+1 database queries588 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden589 behaves like reject metadata request590 rejects the metadata request591 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok592 behaves like accept metadata request593 accepts the metadata request594 avoids N+1 database queries595 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden596 behaves like redirect metadata request597 redirects metadata request598 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok599 behaves like redirect metadata request600 redirects metadata request601 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden602 behaves like reject metadata request603 rejects the metadata request604 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok605 behaves like reject metadata request606 rejects the metadata request607 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden608 behaves like redirect metadata request609 redirects metadata request610 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok611 behaves like redirect metadata request612 redirects metadata request613 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden614 behaves like reject metadata request615 rejects the metadata request616 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok617 behaves like reject metadata request618 rejects the metadata request619 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected620 behaves like redirect metadata request621 redirects metadata request622 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected623 behaves like redirect metadata request624 redirects metadata request625 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden626 behaves like reject metadata request627 rejects the metadata request628 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found629 behaves like reject metadata request630 rejects the metadata request631 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok632 behaves like accept metadata request633 accepts the metadata request634 avoids N+1 database queries635 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok636 behaves like accept metadata request637 accepts the metadata request638 avoids N+1 database queries639 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok640 behaves like accept metadata request641 accepts the metadata request642 avoids N+1 database queries643 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok644 behaves like accept metadata request645 accepts the metadata request646 avoids N+1 database queries647 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok648 behaves like redirect metadata request649 redirects metadata request650 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok651 behaves like redirect metadata request652 redirects metadata request653 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok654 behaves like reject metadata request655 rejects the metadata request656 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok657 behaves like reject metadata request658 rejects the metadata request659 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok660 behaves like redirect metadata request661 redirects metadata request662 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok663 behaves like redirect metadata request664 redirects metadata request665 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok666 behaves like reject metadata request667 rejects the metadata request668 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok669 behaves like reject metadata request670 rejects the metadata request671 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected672 behaves like redirect metadata request673 redirects metadata request674 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected675 behaves like redirect metadata request676 redirects metadata request677 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found678 behaves like reject metadata request679 rejects the metadata request680 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found681 behaves like reject metadata request682 rejects the metadata request683 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok684 behaves like accept metadata request685 accepts the metadata request686 avoids N+1 database queries687 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok688 behaves like accept metadata request689 accepts the metadata request690 avoids N+1 database queries691 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok692 behaves like redirect metadata request693 redirects metadata request694 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok695 behaves like reject metadata request696 rejects the metadata request697 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok698 behaves like redirect metadata request699 redirects metadata request700 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok701 behaves like reject metadata request702 rejects the metadata request703 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected704 behaves like redirect metadata request705 redirects metadata request706 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found707 behaves like reject metadata request708 rejects the metadata request709 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok710 behaves like accept metadata request711 accepts the metadata request712 avoids N+1 database queries713 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok714 behaves like accept metadata request715 accepts the metadata request716 avoids N+1 database queries717 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok718 behaves like redirect metadata request719 redirects metadata request720 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok721 behaves like reject metadata request722 rejects the metadata request723 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok724 behaves like redirect metadata request725 redirects metadata request726 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok727 behaves like reject metadata request728 rejects the metadata request729 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected730 behaves like redirect metadata request731 redirects metadata request732 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found733 behaves like reject metadata request734 rejects the metadata request735 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok736 behaves like accept metadata request737 accepts the metadata request738 avoids N+1 database queries739 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok740 behaves like accept metadata request741 accepts the metadata request742 avoids N+1 database queries743 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok744 behaves like redirect metadata request745 redirects metadata request746 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok747 behaves like reject metadata request748 rejects the metadata request749 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok750 behaves like redirect metadata request751 redirects metadata request752 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok753 behaves like reject metadata request754 rejects the metadata request755 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected756 behaves like redirect metadata request757 redirects metadata request758 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found759 behaves like reject metadata request760 rejects the metadata request761 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok762 behaves like accept metadata request763 accepts the metadata request764 avoids N+1 database queries765 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok766 behaves like accept metadata request767 accepts the metadata request768 avoids N+1 database queries769 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok770 behaves like redirect metadata request771 redirects metadata request772 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok773 behaves like reject metadata request774 rejects the metadata request775 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok776 behaves like redirect metadata request777 redirects metadata request778 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok779 behaves like reject metadata request780 rejects the metadata request781 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected782 behaves like redirect metadata request783 redirects metadata request784 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found785 behaves like reject metadata request786 rejects the metadata request787 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok788 behaves like accept metadata request789 accepts the metadata request790 avoids N+1 database queries791 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok792 behaves like accept metadata request793 accepts the metadata request794 avoids N+1 database queries795 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok796 behaves like redirect metadata request797 redirects metadata request798 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok799 behaves like reject metadata request800 rejects the metadata request801 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok802 behaves like redirect metadata request803 redirects metadata request804 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok805 behaves like reject metadata request806 rejects the metadata request807 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected808 behaves like redirect metadata request809 redirects metadata request810 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found811 behaves like reject metadata request812 rejects the metadata request813 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok814 behaves like accept metadata request815 accepts the metadata request816 avoids N+1 database queries817 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok818 behaves like accept metadata request819 accepts the metadata request820 avoids N+1 database queries821 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok822 behaves like redirect metadata request823 redirects metadata request824 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok825 behaves like reject metadata request826 rejects the metadata request827 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok828 behaves like redirect metadata request829 redirects metadata request830 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok831 behaves like reject metadata request832 rejects the metadata request833 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected834 behaves like redirect metadata request835 redirects metadata request836 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found837 behaves like reject metadata request838 rejects the metadata request839 with a user namespace840 behaves like handling all conditions841 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok842 behaves like accept metadata request843 accepts the metadata request844 avoids N+1 database queries845 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok846 behaves like accept metadata request847 accepts the metadata request848 avoids N+1 database queries849 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok850 behaves like redirect metadata request851 redirects metadata request852 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok853 behaves like reject metadata request854 rejects the metadata request855 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok856 behaves like redirect metadata request857 redirects metadata request858 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok859 behaves like reject metadata request860 rejects the metadata request861 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected862 behaves like redirect metadata request863 redirects metadata request864 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found865 behaves like reject metadata request866 rejects the metadata request867 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found868 behaves like reject metadata request869 rejects the metadata request870 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found871 behaves like reject metadata request872 rejects the metadata request873 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found874 behaves like redirect metadata request875 redirects metadata request876 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found877 behaves like reject metadata request878 rejects the metadata request879 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found880 behaves like redirect metadata request881 redirects metadata request882 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found883 behaves like reject metadata request884 rejects the metadata request885 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected886 behaves like redirect metadata request887 redirects metadata request888 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found889 behaves like reject metadata request890 rejects the metadata request891 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found892 behaves like reject metadata request893 rejects the metadata request894 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found895 behaves like reject metadata request896 rejects the metadata request897 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found898 behaves like redirect metadata request899 redirects metadata request900 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found901 behaves like reject metadata request902 rejects the metadata request903 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found904 behaves like redirect metadata request905 redirects metadata request906 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found907 behaves like reject metadata request908 rejects the metadata request909 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected910 behaves like redirect metadata request911 redirects metadata request912 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found913 behaves like reject metadata request914 rejects the metadata request915 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok916 behaves like accept metadata request917 accepts the metadata request918 avoids N+1 database queries919 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok920 behaves like accept metadata request921 accepts the metadata request922 avoids N+1 database queries923 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok924 behaves like accept metadata request925 accepts the metadata request926 avoids N+1 database queries927 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok928 behaves like accept metadata request929 accepts the metadata request930 avoids N+1 database queries931 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok932 behaves like redirect metadata request933 redirects metadata request934 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok935 behaves like redirect metadata request936 redirects metadata request937 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok938 behaves like reject metadata request939 rejects the metadata request940 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok941 behaves like reject metadata request942 rejects the metadata request943 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok944 behaves like redirect metadata request945 redirects metadata request946 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok947 behaves like redirect metadata request948 redirects metadata request949 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok950 behaves like reject metadata request951 rejects the metadata request952 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok953 behaves like reject metadata request954 rejects the metadata request955 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected956 behaves like redirect metadata request957 redirects metadata request958 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected959 behaves like redirect metadata request960 redirects metadata request961 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found962 behaves like reject metadata request963 rejects the metadata request964 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found965 behaves like reject metadata request966 rejects the metadata request967 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden968 behaves like reject metadata request969 rejects the metadata request970 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok971 behaves like accept metadata request972 accepts the metadata request973 avoids N+1 database queries974 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden975 behaves like reject metadata request976 rejects the metadata request977 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok978 behaves like accept metadata request979 accepts the metadata request980 avoids N+1 database queries981 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden982 behaves like redirect metadata request983 redirects metadata request984 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok985 behaves like redirect metadata request986 redirects metadata request987 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden988 behaves like reject metadata request989 rejects the metadata request990 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok991 behaves like reject metadata request992 rejects the metadata request993 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden994 behaves like redirect metadata request995 redirects metadata request996 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok997 behaves like redirect metadata request998 redirects metadata request999 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1000 behaves like reject metadata request1001 rejects the metadata request1002 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1003 behaves like reject metadata request1004 rejects the metadata request1005 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1006 behaves like redirect metadata request1007 redirects metadata request1008 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1009 behaves like redirect metadata request1010 redirects metadata request1011 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1012 behaves like reject metadata request1013 rejects the metadata request1014 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1015 behaves like reject metadata request1016 rejects the metadata request1017 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1018 behaves like accept metadata request1019 accepts the metadata request1020 avoids N+1 database queries1021 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1022 behaves like accept metadata request1023 accepts the metadata request1024 avoids N+1 database queries1025 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1026 behaves like accept metadata request1027 accepts the metadata request1028 avoids N+1 database queries1029 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1030 behaves like accept metadata request1031 accepts the metadata request1032 avoids N+1 database queries1033 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1034 behaves like redirect metadata request1035 redirects metadata request1036 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1037 behaves like redirect metadata request1038 redirects metadata request1039 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1040 behaves like reject metadata request1041 rejects the metadata request1042 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1043 behaves like reject metadata request1044 rejects the metadata request1045 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1046 behaves like redirect metadata request1047 redirects metadata request1048 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1049 behaves like redirect metadata request1050 redirects metadata request1051 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1052 behaves like reject metadata request1053 rejects the metadata request1054 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1055 behaves like reject metadata request1056 rejects the metadata request1057 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1058 behaves like redirect metadata request1059 redirects metadata request1060 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1061 behaves like redirect metadata request1062 redirects metadata request1063 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1064 behaves like reject metadata request1065 rejects the metadata request1066 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1067 behaves like reject metadata request1068 rejects the metadata request1069 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1070 behaves like accept metadata request1071 accepts the metadata request1072 avoids N+1 database queries1073 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1074 behaves like accept metadata request1075 accepts the metadata request1076 avoids N+1 database queries1077 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1078 behaves like accept metadata request1079 accepts the metadata request1080 avoids N+1 database queries1081 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1082 behaves like accept metadata request1083 accepts the metadata request1084 avoids N+1 database queries1085 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1086 behaves like redirect metadata request1087 redirects metadata request1088 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1089 behaves like redirect metadata request1090 redirects metadata request1091 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1092 behaves like reject metadata request1093 rejects the metadata request1094 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1095 behaves like reject metadata request1096 rejects the metadata request1097 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1098 behaves like redirect metadata request1099 redirects metadata request1100 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1101 behaves like redirect metadata request1102 redirects metadata request1103 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1104 behaves like reject metadata request1105 rejects the metadata request1106 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1107 behaves like reject metadata request1108 rejects the metadata request1109 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1110 behaves like redirect metadata request1111 redirects metadata request1112 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1113 behaves like redirect metadata request1114 redirects metadata request1115 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1116 behaves like reject metadata request1117 rejects the metadata request1118 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1119 behaves like reject metadata request1120 rejects the metadata request1121 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1122 behaves like reject metadata request1123 rejects the metadata request1124 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1125 behaves like accept metadata request1126 accepts the metadata request1127 avoids N+1 database queries1128 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1129 behaves like reject metadata request1130 rejects the metadata request1131 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1132 behaves like accept metadata request1133 accepts the metadata request1134 avoids N+1 database queries1135 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1136 behaves like redirect metadata request1137 redirects metadata request1138 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1139 behaves like redirect metadata request1140 redirects metadata request1141 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1142 behaves like reject metadata request1143 rejects the metadata request1144 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1145 behaves like reject metadata request1146 rejects the metadata request1147 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1148 behaves like redirect metadata request1149 redirects metadata request1150 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1151 behaves like redirect metadata request1152 redirects metadata request1153 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1154 behaves like reject metadata request1155 rejects the metadata request1156 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1157 behaves like reject metadata request1158 rejects the metadata request1159 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1160 behaves like redirect metadata request1161 redirects metadata request1162 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1163 behaves like redirect metadata request1164 redirects metadata request1165 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1166 behaves like reject metadata request1167 rejects the metadata request1168 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1169 behaves like reject metadata request1170 rejects the metadata request1171 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1172 behaves like accept metadata request1173 accepts the metadata request1174 avoids N+1 database queries1175 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1176 behaves like accept metadata request1177 accepts the metadata request1178 avoids N+1 database queries1179 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1180 behaves like accept metadata request1181 accepts the metadata request1182 avoids N+1 database queries1183 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1184 behaves like accept metadata request1185 accepts the metadata request1186 avoids N+1 database queries1187 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1188 behaves like redirect metadata request1189 redirects metadata request1190 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1191 behaves like redirect metadata request1192 redirects metadata request1193 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1194 behaves like reject metadata request1195 rejects the metadata request1196 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1197 behaves like reject metadata request1198 rejects the metadata request1199 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1200 behaves like redirect metadata request1201 redirects metadata request1202 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1203 behaves like redirect metadata request1204 redirects metadata request1205 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1206 behaves like reject metadata request1207 rejects the metadata request1208 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1209 behaves like reject metadata request1210 rejects the metadata request1211 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1212 behaves like redirect metadata request1213 redirects metadata request1214 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1215 behaves like redirect metadata request1216 redirects metadata request1217 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1218 behaves like reject metadata request1219 rejects the metadata request1220 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1221 behaves like reject metadata request1222 rejects the metadata request1223 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1224 behaves like accept metadata request1225 accepts the metadata request1226 avoids N+1 database queries1227 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1228 behaves like accept metadata request1229 accepts the metadata request1230 avoids N+1 database queries1231 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1232 behaves like redirect metadata request1233 redirects metadata request1234 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1235 behaves like reject metadata request1236 rejects the metadata request1237 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1238 behaves like redirect metadata request1239 redirects metadata request1240 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1241 behaves like reject metadata request1242 rejects the metadata request1243 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected1244 behaves like redirect metadata request1245 redirects metadata request1246 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1247 behaves like reject metadata request1248 rejects the metadata request1249 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1250 behaves like accept metadata request1251 accepts the metadata request1252 avoids N+1 database queries1253 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1254 behaves like accept metadata request1255 accepts the metadata request1256 avoids N+1 database queries1257 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1258 behaves like redirect metadata request1259 redirects metadata request1260 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1261 behaves like reject metadata request1262 rejects the metadata request1263 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1264 behaves like redirect metadata request1265 redirects metadata request1266 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1267 behaves like reject metadata request1268 rejects the metadata request1269 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected1270 behaves like redirect metadata request1271 redirects metadata request1272 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1273 behaves like reject metadata request1274 rejects the metadata request1275 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1276 behaves like accept metadata request1277 accepts the metadata request1278 avoids N+1 database queries1279 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1280 behaves like accept metadata request1281 accepts the metadata request1282 avoids N+1 database queries1283 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1284 behaves like redirect metadata request1285 redirects metadata request1286 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1287 behaves like reject metadata request1288 rejects the metadata request1289 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1290 behaves like redirect metadata request1291 redirects metadata request1292 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1293 behaves like reject metadata request1294 rejects the metadata request1295 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected1296 behaves like redirect metadata request1297 redirects metadata request1298 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1299 behaves like reject metadata request1300 rejects the metadata request1301 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1302 behaves like accept metadata request1303 accepts the metadata request1304 avoids N+1 database queries1305 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1306 behaves like accept metadata request1307 accepts the metadata request1308 avoids N+1 database queries1309 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1310 behaves like redirect metadata request1311 redirects metadata request1312 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1313 behaves like reject metadata request1314 rejects the metadata request1315 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1316 behaves like redirect metadata request1317 redirects metadata request1318 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1319 behaves like reject metadata request1320 rejects the metadata request1321 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected1322 behaves like redirect metadata request1323 redirects metadata request1324 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1325 behaves like reject metadata request1326 rejects the metadata request1327 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1328 behaves like accept metadata request1329 accepts the metadata request1330 avoids N+1 database queries1331 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1332 behaves like accept metadata request1333 accepts the metadata request1334 avoids N+1 database queries1335 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1336 behaves like redirect metadata request1337 redirects metadata request1338 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1339 behaves like reject metadata request1340 rejects the metadata request1341 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1342 behaves like redirect metadata request1343 redirects metadata request1344 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1345 behaves like reject metadata request1346 rejects the metadata request1347 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected1348 behaves like redirect metadata request1349 redirects metadata request1350 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1351 behaves like reject metadata request1352 rejects the metadata request1353 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1354 behaves like accept metadata request1355 accepts the metadata request1356 avoids N+1 database queries1357 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1358 behaves like accept metadata request1359 accepts the metadata request1360 avoids N+1 database queries1361 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1362 behaves like redirect metadata request1363 redirects metadata request1364 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1365 behaves like reject metadata request1366 rejects the metadata request1367 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1368 behaves like redirect metadata request1369 redirects metadata request1370 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1371 behaves like reject metadata request1372 rejects the metadata request1373 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1374 behaves like redirect metadata request1375 redirects metadata request1376 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1377 behaves like reject metadata request1378 rejects the metadata request1379 with a developer1380 project path with a dot1381 behaves like accept metadata request1382 accepts the metadata request1383 avoids N+1 database queries1384 with a job token1385 behaves like reject metadata request1386 rejects the metadata request1387 GET /api/v4/packages/npm/-/package/*package_name/dist-tags1388 behaves like handling get dist tags requests1389 with a group namespace1390 behaves like handling all conditions1391 with oauth token1392 behaves like handling different package names, visibilities and user roles1393 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1394 behaves like accept package tags request1395 with valid package name1396 returns a valid json response1397 returns two package tags1398 behaves like returning response status1399 returns ok1400 with invalid package name1401 package_name: "%20", status: :bad_request1402 behaves like returning response status1403 returns bad_request1404 package_name: nil, status: :not_found1405 behaves like returning response status1406 returns not_found1407 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1408 behaves like accept package tags request1409 with valid package name1410 returns a valid json response1411 returns two package tags1412 behaves like returning response status1413 returns ok1414 with invalid package name1415 package_name: "%20", status: :bad_request1416 behaves like returning response status1417 returns bad_request1418 package_name: nil, status: :not_found1419 behaves like returning response status1420 returns not_found1421 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1422 behaves like accept package tags request1423 with valid package name1424 returns a valid json response1425 returns two package tags1426 behaves like returning response status1427 returns ok1428 with invalid package name1429 package_name: "%20", status: :bad_request1430 behaves like returning response status1431 returns bad_request1432 package_name: nil, status: :not_found1433 behaves like returning response status1434 returns not_found1435 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1436 behaves like reject package tags request1437 behaves like returning response status1438 returns not_found1439 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1440 behaves like reject package tags request1441 behaves like returning response status1442 returns not_found1443 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1444 behaves like reject package tags request1445 behaves like returning response status1446 returns not_found1447 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1448 behaves like reject package tags request1449 behaves like returning response status1450 returns not_found1451 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1452 behaves like reject package tags request1453 behaves like returning response status1454 returns not_found1455 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1456 behaves like reject package tags request1457 behaves like returning response status1458 returns not_found1459 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1460 behaves like reject package tags request1461 behaves like returning response status1462 returns not_found1463 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1464 behaves like reject package tags request1465 behaves like returning response status1466 returns not_found1467 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1468 behaves like reject package tags request1469 behaves like returning response status1470 returns not_found1471 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1472 behaves like reject package tags request1473 behaves like returning response status1474 returns not_found1475 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1476 behaves like reject package tags request1477 behaves like returning response status1478 returns forbidden1479 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1480 behaves like accept package tags request1481 with valid package name1482 returns a valid json response1483 returns two package tags1484 behaves like returning response status1485 returns ok1486 with invalid package name1487 package_name: "%20", status: :bad_request1488 behaves like returning response status1489 returns bad_request1490 package_name: nil, status: :not_found1491 behaves like returning response status1492 returns not_found1493 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1494 behaves like reject package tags request1495 behaves like returning response status1496 returns not_found1497 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1498 behaves like reject package tags request1499 behaves like returning response status1500 returns not_found1501 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1502 behaves like reject package tags request1503 behaves like returning response status1504 returns not_found1505 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1506 behaves like reject package tags request1507 behaves like returning response status1508 returns not_found1509 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1510 behaves like reject package tags request1511 behaves like returning response status1512 returns not_found1513 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1514 behaves like reject package tags request1515 behaves like returning response status1516 returns not_found1517 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1518 behaves like reject package tags request1519 behaves like returning response status1520 returns not_found1521 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1522 behaves like reject package tags request1523 behaves like returning response status1524 returns not_found1525 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1526 behaves like reject package tags request1527 behaves like returning response status1528 returns not_found1529 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1530 behaves like reject package tags request1531 behaves like returning response status1532 returns not_found1533 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1534 behaves like accept package tags request1535 with valid package name1536 returns a valid json response1537 returns two package tags1538 behaves like returning response status1539 returns ok1540 with invalid package name1541 package_name: "%20", status: :bad_request1542 behaves like returning response status1543 returns bad_request1544 package_name: nil, status: :not_found1545 behaves like returning response status1546 returns not_found1547 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1548 behaves like accept package tags request1549 with valid package name1550 returns a valid json response1551 returns two package tags1552 behaves like returning response status1553 returns ok1554 with invalid package name1555 package_name: "%20", status: :bad_request1556 behaves like returning response status1557 returns bad_request1558 package_name: nil, status: :not_found1559 behaves like returning response status1560 returns not_found1561 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1562 behaves like reject package tags request1563 behaves like returning response status1564 returns not_found1565 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1566 behaves like reject package tags request1567 behaves like returning response status1568 returns not_found1569 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1570 behaves like reject package tags request1571 behaves like returning response status1572 returns not_found1573 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1574 behaves like reject package tags request1575 behaves like returning response status1576 returns not_found1577 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1578 behaves like reject package tags request1579 behaves like returning response status1580 returns not_found1581 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1582 behaves like reject package tags request1583 behaves like returning response status1584 returns not_found1585 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1586 behaves like reject package tags request1587 behaves like returning response status1588 returns not_found1589 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1590 behaves like reject package tags request1591 behaves like returning response status1592 returns not_found1593 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1594 behaves like reject package tags request1595 behaves like returning response status1596 returns not_found1597 with personal access token1598 behaves like handling different package names, visibilities and user roles1599 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1600 behaves like accept package tags request1601 with valid package name1602 returns a valid json response1603 returns two package tags1604 behaves like returning response status1605 returns ok1606 with invalid package name1607 package_name: "%20", status: :bad_request1608 behaves like returning response status1609 returns bad_request1610 package_name: nil, status: :not_found1611 behaves like returning response status1612 returns not_found1613 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1614 behaves like accept package tags request1615 with valid package name1616 returns a valid json response1617 returns two package tags1618 behaves like returning response status1619 returns ok1620 with invalid package name1621 package_name: "%20", status: :bad_request1622 behaves like returning response status1623 returns bad_request1624 package_name: nil, status: :not_found1625 behaves like returning response status1626 returns not_found1627 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1628 behaves like accept package tags request1629 with valid package name1630 returns a valid json response1631 returns two package tags1632 behaves like returning response status1633 returns ok1634 with invalid package name1635 package_name: "%20", status: :bad_request1636 behaves like returning response status1637 returns bad_request1638 package_name: nil, status: :not_found1639 behaves like returning response status1640 returns not_found1641 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1642 behaves like reject package tags request1643 behaves like returning response status1644 returns not_found1645 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1646 behaves like reject package tags request1647 behaves like returning response status1648 returns not_found1649 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1650 behaves like reject package tags request1651 behaves like returning response status1652 returns not_found1653 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1654 behaves like reject package tags request1655 behaves like returning response status1656 returns not_found1657 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1658 behaves like reject package tags request1659 behaves like returning response status1660 returns not_found1661 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1662 behaves like reject package tags request1663 behaves like returning response status1664 returns not_found1665 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1666 behaves like reject package tags request1667 behaves like returning response status1668 returns not_found1669 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1670 behaves like reject package tags request1671 behaves like returning response status1672 returns not_found1673 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1674 behaves like reject package tags request1675 behaves like returning response status1676 returns not_found1677 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1678 behaves like reject package tags request1679 behaves like returning response status1680 returns not_found1681 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1682 behaves like reject package tags request1683 behaves like returning response status1684 returns forbidden1685 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1686 behaves like accept package tags request1687 with valid package name1688 returns a valid json response1689 returns two package tags1690 behaves like returning response status1691 returns ok1692 with invalid package name1693 package_name: "%20", status: :bad_request1694 behaves like returning response status1695 returns bad_request1696 package_name: nil, status: :not_found1697 behaves like returning response status1698 returns not_found1699 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1700 behaves like reject package tags request1701 behaves like returning response status1702 returns not_found1703 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1704 behaves like reject package tags request1705 behaves like returning response status1706 returns not_found1707 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1708 behaves like reject package tags request1709 behaves like returning response status1710 returns not_found1711 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1712 behaves like reject package tags request1713 behaves like returning response status1714 returns not_found1715 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1716 behaves like reject package tags request1717 behaves like returning response status1718 returns not_found1719 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1720 behaves like reject package tags request1721 behaves like returning response status1722 returns not_found1723 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1724 behaves like reject package tags request1725 behaves like returning response status1726 returns not_found1727 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1728 behaves like reject package tags request1729 behaves like returning response status1730 returns not_found1731 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1732 behaves like reject package tags request1733 behaves like returning response status1734 returns not_found1735 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1736 behaves like reject package tags request1737 behaves like returning response status1738 returns not_found1739 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1740 behaves like accept package tags request1741 with valid package name1742 returns a valid json response1743 returns two package tags1744 behaves like returning response status1745 returns ok1746 with invalid package name1747 package_name: "%20", status: :bad_request1748 behaves like returning response status1749 returns bad_request1750 package_name: nil, status: :not_found1751 behaves like returning response status1752 returns not_found1753 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1754 behaves like accept package tags request1755 with valid package name1756 returns a valid json response1757 returns two package tags1758 behaves like returning response status1759 returns ok1760 with invalid package name1761 package_name: "%20", status: :bad_request1762 behaves like returning response status1763 returns bad_request1764 package_name: nil, status: :not_found1765 behaves like returning response status1766 returns not_found1767 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1768 behaves like reject package tags request1769 behaves like returning response status1770 returns not_found1771 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1772 behaves like reject package tags request1773 behaves like returning response status1774 returns not_found1775 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1776 behaves like reject package tags request1777 behaves like returning response status1778 returns not_found1779 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1780 behaves like reject package tags request1781 behaves like returning response status1782 returns not_found1783 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1784 behaves like reject package tags request1785 behaves like returning response status1786 returns not_found1787 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1788 behaves like reject package tags request1789 behaves like returning response status1790 returns not_found1791 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1792 behaves like reject package tags request1793 behaves like returning response status1794 returns not_found1795 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1796 behaves like reject package tags request1797 behaves like returning response status1798 returns not_found1799 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1800 behaves like reject package tags request1801 behaves like returning response status1802 returns not_found1803 with a user namespace1804 behaves like handling all conditions1805 with oauth token1806 behaves like handling different package names, visibilities and user roles1807 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1808 behaves like accept package tags request1809 with valid package name1810 returns a valid json response1811 returns two package tags1812 behaves like returning response status1813 returns ok1814 with invalid package name1815 package_name: "%20", status: :bad_request1816 behaves like returning response status1817 returns bad_request1818 package_name: nil, status: :not_found1819 behaves like returning response status1820 returns not_found1821 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1822 behaves like accept package tags request1823 with valid package name1824 returns a valid json response1825 returns two package tags1826 behaves like returning response status1827 returns ok1828 with invalid package name1829 package_name: "%20", status: :bad_request1830 behaves like returning response status1831 returns bad_request1832 package_name: nil, status: :not_found1833 behaves like returning response status1834 returns not_found1835 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1836 behaves like accept package tags request1837 with valid package name1838 returns a valid json response1839 returns two package tags1840 behaves like returning response status1841 returns ok1842 with invalid package name1843 package_name: "%20", status: :bad_request1844 behaves like returning response status1845 returns bad_request1846 package_name: nil, status: :not_found1847 behaves like returning response status1848 returns not_found1849 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1850 behaves like reject package tags request1851 behaves like returning response status1852 returns not_found1853 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1854 behaves like reject package tags request1855 behaves like returning response status1856 returns not_found1857 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1858 behaves like reject package tags request1859 behaves like returning response status1860 returns not_found1861 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1862 behaves like reject package tags request1863 behaves like returning response status1864 returns not_found1865 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1866 behaves like reject package tags request1867 behaves like returning response status1868 returns not_found1869 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1870 behaves like reject package tags request1871 behaves like returning response status1872 returns not_found1873 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1874 behaves like reject package tags request1875 behaves like returning response status1876 returns not_found1877 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1878 behaves like reject package tags request1879 behaves like returning response status1880 returns not_found1881 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1882 behaves like reject package tags request1883 behaves like returning response status1884 returns not_found1885 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1886 behaves like reject package tags request1887 behaves like returning response status1888 returns not_found1889 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1890 behaves like reject package tags request1891 behaves like returning response status1892 returns forbidden1893 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1894 behaves like accept package tags request1895 with valid package name1896 returns a valid json response1897 returns two package tags1898 behaves like returning response status1899 returns ok1900 with invalid package name1901 package_name: "%20", status: :bad_request1902 behaves like returning response status1903 returns bad_request1904 package_name: nil, status: :not_found1905 behaves like returning response status1906 returns not_found1907 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1908 behaves like reject package tags request1909 behaves like returning response status1910 returns not_found1911 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1912 behaves like reject package tags request1913 behaves like returning response status1914 returns not_found1915 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1916 behaves like reject package tags request1917 behaves like returning response status1918 returns not_found1919 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1920 behaves like reject package tags request1921 behaves like returning response status1922 returns not_found1923 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1924 behaves like reject package tags request1925 behaves like returning response status1926 returns not_found1927 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1928 behaves like reject package tags request1929 behaves like returning response status1930 returns not_found1931 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1932 behaves like reject package tags request1933 behaves like returning response status1934 returns not_found1935 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1936 behaves like reject package tags request1937 behaves like returning response status1938 returns not_found1939 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1940 behaves like reject package tags request1941 behaves like returning response status1942 returns not_found1943 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1944 behaves like reject package tags request1945 behaves like returning response status1946 returns not_found1947 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1948 behaves like accept package tags request1949 with valid package name1950 returns a valid json response1951 returns two package tags1952 behaves like returning response status1953 returns ok1954 with invalid package name1955 package_name: "%20", status: :bad_request1956 behaves like returning response status1957 returns bad_request1958 package_name: nil, status: :not_found1959 behaves like returning response status1960 returns not_found1961 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1962 behaves like accept package tags request1963 with valid package name1964 returns a valid json response1965 returns two package tags1966 behaves like returning response status1967 returns ok1968 with invalid package name1969 package_name: "%20", status: :bad_request1970 behaves like returning response status1971 returns bad_request1972 package_name: nil, status: :not_found1973 behaves like returning response status1974 returns not_found1975 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1976 behaves like reject package tags request1977 behaves like returning response status1978 returns not_found1979 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1980 behaves like reject package tags request1981 behaves like returning response status1982 returns not_found1983 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1984 behaves like reject package tags request1985 behaves like returning response status1986 returns not_found1987 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1988 behaves like reject package tags request1989 behaves like returning response status1990 returns not_found1991 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1992 behaves like reject package tags request1993 behaves like returning response status1994 returns not_found1995 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1996 behaves like reject package tags request1997 behaves like returning response status1998 returns not_found1999 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2000 behaves like reject package tags request2001 behaves like returning response status2002 returns not_found2003 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2004 behaves like reject package tags request2005 behaves like returning response status2006 returns not_found2007 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2008 behaves like reject package tags request2009 behaves like returning response status2010 returns not_found2011 with personal access token2012 behaves like handling different package names, visibilities and user roles2013 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2014 behaves like accept package tags request2015 with valid package name2016 returns a valid json response2017 returns two package tags2018 behaves like returning response status2019 returns ok2020 with invalid package name2021 package_name: "%20", status: :bad_request2022 behaves like returning response status2023 returns bad_request2024 package_name: nil, status: :not_found2025 behaves like returning response status2026 returns not_found2027 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2028 behaves like accept package tags request2029 with valid package name2030 returns a valid json response2031 returns two package tags2032 behaves like returning response status2033 returns ok2034 with invalid package name2035 package_name: "%20", status: :bad_request2036 behaves like returning response status2037 returns bad_request2038 package_name: nil, status: :not_found2039 behaves like returning response status2040 returns not_found2041 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2042 behaves like accept package tags request2043 with valid package name2044 returns a valid json response2045 returns two package tags2046 behaves like returning response status2047 returns ok2048 with invalid package name2049 package_name: "%20", status: :bad_request2050 behaves like returning response status2051 returns bad_request2052 package_name: nil, status: :not_found2053 behaves like returning response status2054 returns not_found2055 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2056 behaves like reject package tags request2057 behaves like returning response status2058 returns not_found2059 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2060 behaves like reject package tags request2061 behaves like returning response status2062 returns not_found2063 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2064 behaves like reject package tags request2065 behaves like returning response status2066 returns not_found2067 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2068 behaves like reject package tags request2069 behaves like returning response status2070 returns not_found2071 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2072 behaves like reject package tags request2073 behaves like returning response status2074 returns not_found2075 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2076 behaves like reject package tags request2077 behaves like returning response status2078 returns not_found2079 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2080 behaves like reject package tags request2081 behaves like returning response status2082 returns not_found2083 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found2084 behaves like reject package tags request2085 behaves like returning response status2086 returns not_found2087 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found2088 behaves like reject package tags request2089 behaves like returning response status2090 returns not_found2091 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2092 behaves like reject package tags request2093 behaves like returning response status2094 returns not_found2095 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2096 behaves like reject package tags request2097 behaves like returning response status2098 returns forbidden2099 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2100 behaves like accept package tags request2101 with valid package name2102 returns a valid json response2103 returns two package tags2104 behaves like returning response status2105 returns ok2106 with invalid package name2107 package_name: "%20", status: :bad_request2108 behaves like returning response status2109 returns bad_request2110 package_name: nil, status: :not_found2111 behaves like returning response status2112 returns not_found2113 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2114 behaves like reject package tags request2115 behaves like returning response status2116 returns not_found2117 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2118 behaves like reject package tags request2119 behaves like returning response status2120 returns not_found2121 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2122 behaves like reject package tags request2123 behaves like returning response status2124 returns not_found2125 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2126 behaves like reject package tags request2127 behaves like returning response status2128 returns not_found2129 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2130 behaves like reject package tags request2131 behaves like returning response status2132 returns not_found2133 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2134 behaves like reject package tags request2135 behaves like returning response status2136 returns not_found2137 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2138 behaves like reject package tags request2139 behaves like returning response status2140 returns not_found2141 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2142 behaves like reject package tags request2143 behaves like returning response status2144 returns not_found2145 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found2146 behaves like reject package tags request2147 behaves like returning response status2148 returns not_found2149 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2150 behaves like reject package tags request2151 behaves like returning response status2152 returns not_found2153 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2154 behaves like accept package tags request2155 with valid package name2156 returns a valid json response2157 returns two package tags2158 behaves like returning response status2159 returns ok2160 with invalid package name2161 package_name: "%20", status: :bad_request2162 behaves like returning response status2163 returns bad_request2164 package_name: nil, status: :not_found2165 behaves like returning response status2166 returns not_found2167 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2168 behaves like accept package tags request2169 with valid package name2170 returns a valid json response2171 returns two package tags2172 behaves like returning response status2173 returns ok2174 with invalid package name2175 package_name: "%20", status: :bad_request2176 behaves like returning response status2177 returns bad_request2178 package_name: nil, status: :not_found2179 behaves like returning response status2180 returns not_found2181 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2182 behaves like reject package tags request2183 behaves like returning response status2184 returns not_found2185 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2186 behaves like reject package tags request2187 behaves like returning response status2188 returns not_found2189 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2190 behaves like reject package tags request2191 behaves like returning response status2192 returns not_found2193 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2194 behaves like reject package tags request2195 behaves like returning response status2196 returns not_found2197 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2198 behaves like reject package tags request2199 behaves like returning response status2200 returns not_found2201 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2202 behaves like reject package tags request2203 behaves like returning response status2204 returns not_found2205 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2206 behaves like reject package tags request2207 behaves like returning response status2208 returns not_found2209 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2210 behaves like reject package tags request2211 behaves like returning response status2212 returns not_found2213 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2214 behaves like reject package tags request2215 behaves like returning response status2216 returns not_found2217 PUT /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag2218 behaves like handling create dist tag requests2219 with a group namespace2220 behaves like handling all conditions2221 with oauth token2222 behaves like handling different package names, visibilities and user roles2223 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2224 behaves like reject create package tag request2225 behaves like returning response status2226 returns forbidden2227 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2228 behaves like reject create package tag request2229 behaves like returning response status2230 returns forbidden2231 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2232 behaves like accept create package tag request2233 with valid package name2234 creates the package tag2235 returns a valid response2236 behaves like returning response status2237 returns no_content2238 with already existing tag2239 reuses existing tag2240 returns a valid response2241 behaves like returning response status2242 returns no_content2243 with invalid package name2244 package_name: "unknown", status: :not_found2245 behaves like returning response status2246 returns not_found2247 package_name: "", status: :not_found2248 behaves like returning response status2249 returns not_found2250 package_name: "%20", status: :bad_request2251 behaves like returning response status2252 returns bad_request2253 with invalid tag name2254 tag_name: "", status: :not_found2255 behaves like returning response status2256 returns not_found2257 tag_name: "%20", status: :bad_request2258 behaves like returning response status2259 returns bad_request2260 with invalid version2261 version: " ", status: :bad_request2262 behaves like returning response status2263 returns bad_request2264 version: "", status: :bad_request2265 behaves like returning response status2266 returns bad_request2267 version: nil, status: :bad_request2268 behaves like returning response status2269 returns bad_request2270 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2271 behaves like reject create package tag request2272 behaves like returning response status2273 returns not_found2274 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2275 behaves like reject create package tag request2276 behaves like returning response status2277 returns not_found2278 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2279 behaves like reject create package tag request2280 behaves like returning response status2281 returns not_found2282 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2283 behaves like reject create package tag request2284 behaves like returning response status2285 returns not_found2286 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2287 behaves like reject create package tag request2288 behaves like returning response status2289 returns not_found2290 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2291 behaves like reject create package tag request2292 behaves like returning response status2293 returns not_found2294 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2295 behaves like reject create package tag request2296 behaves like returning response status2297 returns not_found2298 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2299 behaves like reject create package tag request2300 behaves like returning response status2301 returns not_found2302 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2303 behaves like reject create package tag request2304 behaves like returning response status2305 returns not_found2306 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2307 behaves like reject create package tag request2308 behaves like returning response status2309 returns not_found2310 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2311 behaves like reject create package tag request2312 behaves like returning response status2313 returns forbidden2314 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2315 behaves like accept create package tag request2316 with valid package name2317 creates the package tag2318 returns a valid response2319 behaves like returning response status2320 returns no_content2321 with already existing tag2322 reuses existing tag2323 returns a valid response2324 behaves like returning response status2325 returns no_content2326 with invalid package name2327 package_name: "unknown", status: :not_found2328 behaves like returning response status2329 returns not_found2330 package_name: "", status: :not_found2331 behaves like returning response status2332 returns not_found2333 package_name: "%20", status: :bad_request2334 behaves like returning response status2335 returns bad_request2336 with invalid tag name2337 tag_name: "", status: :not_found2338 behaves like returning response status2339 returns not_found2340 tag_name: "%20", status: :bad_request2341 behaves like returning response status2342 returns bad_request2343 with invalid version2344 version: " ", status: :bad_request2345 behaves like returning response status2346 returns bad_request2347 version: "", status: :bad_request2348 behaves like returning response status2349 returns bad_request2350 version: nil, status: :bad_request2351 behaves like returning response status2352 returns bad_request2353 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2354 behaves like reject create package tag request2355 behaves like returning response status2356 returns not_found2357 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2358 behaves like reject create package tag request2359 behaves like returning response status2360 returns not_found2361 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2362 behaves like reject create package tag request2363 behaves like returning response status2364 returns not_found2365 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2366 behaves like reject create package tag request2367 behaves like returning response status2368 returns not_found2369 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2370 behaves like reject create package tag request2371 behaves like returning response status2372 returns not_found2373 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2374 behaves like reject create package tag request2375 behaves like returning response status2376 returns not_found2377 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2378 behaves like reject create package tag request2379 behaves like returning response status2380 returns not_found2381 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2382 behaves like reject create package tag request2383 behaves like returning response status2384 returns not_found2385 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2386 behaves like reject create package tag request2387 behaves like returning response status2388 returns not_found2389 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2390 behaves like reject create package tag request2391 behaves like returning response status2392 returns forbidden2393 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2394 behaves like reject create package tag request2395 behaves like returning response status2396 returns forbidden2397 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2398 behaves like accept create package tag request2399 with valid package name2400 creates the package tag2401 returns a valid response2402 behaves like returning response status2403 returns no_content2404 with already existing tag2405 reuses existing tag2406 returns a valid response2407 behaves like returning response status2408 returns no_content2409 with invalid package name2410 package_name: "unknown", status: :not_found2411 behaves like returning response status2412 returns not_found2413 package_name: "", status: :not_found2414 behaves like returning response status2415 returns not_found2416 package_name: "%20", status: :bad_request2417 behaves like returning response status2418 returns bad_request2419 with invalid tag name2420 tag_name: "", status: :not_found2421 behaves like returning response status2422 returns not_found2423 tag_name: "%20", status: :bad_request2424 behaves like returning response status2425 returns bad_request2426 with invalid version2427 version: " ", status: :bad_request2428 behaves like returning response status2429 returns bad_request2430 version: "", status: :bad_request2431 behaves like returning response status2432 returns bad_request2433 version: nil, status: :bad_request2434 behaves like returning response status2435 returns bad_request2436 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2437 behaves like reject create package tag request2438 behaves like returning response status2439 returns not_found2440 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2441 behaves like reject create package tag request2442 behaves like returning response status2443 returns not_found2444 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2445 behaves like reject create package tag request2446 behaves like returning response status2447 returns not_found2448 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2449 behaves like reject create package tag request2450 behaves like returning response status2451 returns not_found2452 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2453 behaves like reject create package tag request2454 behaves like returning response status2455 returns not_found2456 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2457 behaves like reject create package tag request2458 behaves like returning response status2459 returns not_found2460 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2461 behaves like reject create package tag request2462 behaves like returning response status2463 returns not_found2464 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2465 behaves like reject create package tag request2466 behaves like returning response status2467 returns not_found2468 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2469 behaves like reject create package tag request2470 behaves like returning response status2471 returns not_found2472 with personal access token2473 behaves like handling different package names, visibilities and user roles2474 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2475 behaves like reject create package tag request2476 behaves like returning response status2477 returns forbidden2478 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2479 behaves like reject create package tag request2480 behaves like returning response status2481 returns forbidden2482 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2483 behaves like accept create package tag request2484 with valid package name2485 creates the package tag2486 returns a valid response2487 behaves like returning response status2488 returns no_content2489 with already existing tag2490 reuses existing tag2491 returns a valid response2492 behaves like returning response status2493 returns no_content2494 with invalid package name2495 package_name: "unknown", status: :not_found2496 behaves like returning response status2497 returns not_found2498 package_name: "", status: :not_found2499 behaves like returning response status2500 returns not_found2501 package_name: "%20", status: :bad_request2502 behaves like returning response status2503 returns bad_request2504 with invalid tag name2505 tag_name: "", status: :not_found2506 behaves like returning response status2507 returns not_found2508 tag_name: "%20", status: :bad_request2509 behaves like returning response status2510 returns bad_request2511 with invalid version2512 version: " ", status: :bad_request2513 behaves like returning response status2514 returns bad_request2515 version: "", status: :bad_request2516 behaves like returning response status2517 returns bad_request2518 version: nil, status: :bad_request2519 behaves like returning response status2520 returns bad_request2521 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2522 behaves like reject create package tag request2523 behaves like returning response status2524 returns not_found2525 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2526 behaves like reject create package tag request2527 behaves like returning response status2528 returns not_found2529 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2530 behaves like reject create package tag request2531 behaves like returning response status2532 returns not_found2533 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2534 behaves like reject create package tag request2535 behaves like returning response status2536 returns not_found2537 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2538 behaves like reject create package tag request2539 behaves like returning response status2540 returns not_found2541 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2542 behaves like reject create package tag request2543 behaves like returning response status2544 returns not_found2545 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2546 behaves like reject create package tag request2547 behaves like returning response status2548 returns not_found2549 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2550 behaves like reject create package tag request2551 behaves like returning response status2552 returns not_found2553 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2554 behaves like reject create package tag request2555 behaves like returning response status2556 returns not_found2557 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2558 behaves like reject create package tag request2559 behaves like returning response status2560 returns not_found2561 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2562 behaves like reject create package tag request2563 behaves like returning response status2564 returns forbidden2565 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2566 behaves like accept create package tag request2567 with valid package name2568 creates the package tag2569 returns a valid response2570 behaves like returning response status2571 returns no_content2572 with already existing tag2573 reuses existing tag2574 returns a valid response2575 behaves like returning response status2576 returns no_content2577 with invalid package name2578 package_name: "unknown", status: :not_found2579 behaves like returning response status2580 returns not_found2581 package_name: "", status: :not_found2582 behaves like returning response status2583 returns not_found2584 package_name: "%20", status: :bad_request2585 behaves like returning response status2586 returns bad_request2587 with invalid tag name2588 tag_name: "", status: :not_found2589 behaves like returning response status2590 returns not_found2591 tag_name: "%20", status: :bad_request2592 behaves like returning response status2593 returns bad_request2594 with invalid version2595 version: " ", status: :bad_request2596 behaves like returning response status2597 returns bad_request2598 version: "", status: :bad_request2599 behaves like returning response status2600 returns bad_request2601 version: nil, status: :bad_request2602 behaves like returning response status2603 returns bad_request2604 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2605 behaves like reject create package tag request2606 behaves like returning response status2607 returns not_found2608 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2609 behaves like reject create package tag request2610 behaves like returning response status2611 returns not_found2612 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2613 behaves like reject create package tag request2614 behaves like returning response status2615 returns not_found2616 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2617 behaves like reject create package tag request2618 behaves like returning response status2619 returns not_found2620 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2621 behaves like reject create package tag request2622 behaves like returning response status2623 returns not_found2624 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2625 behaves like reject create package tag request2626 behaves like returning response status2627 returns not_found2628 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2629 behaves like reject create package tag request2630 behaves like returning response status2631 returns not_found2632 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2633 behaves like reject create package tag request2634 behaves like returning response status2635 returns not_found2636 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2637 behaves like reject create package tag request2638 behaves like returning response status2639 returns not_found2640 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2641 behaves like reject create package tag request2642 behaves like returning response status2643 returns forbidden2644 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2645 behaves like reject create package tag request2646 behaves like returning response status2647 returns forbidden2648 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2649 behaves like accept create package tag request2650 with valid package name2651 creates the package tag2652 returns a valid response2653 behaves like returning response status2654 returns no_content2655 with already existing tag2656 reuses existing tag2657 returns a valid response2658 behaves like returning response status2659 returns no_content2660 with invalid package name2661 package_name: "unknown", status: :not_found2662 behaves like returning response status2663 returns not_found2664 package_name: "", status: :not_found2665 behaves like returning response status2666 returns not_found2667 package_name: "%20", status: :bad_request2668 behaves like returning response status2669 returns bad_request2670 with invalid tag name2671 tag_name: "", status: :not_found2672 behaves like returning response status2673 returns not_found2674 tag_name: "%20", status: :bad_request2675 behaves like returning response status2676 returns bad_request2677 with invalid version2678 version: " ", status: :bad_request2679 behaves like returning response status2680 returns bad_request2681 version: "", status: :bad_request2682 behaves like returning response status2683 returns bad_request2684 version: nil, status: :bad_request2685 behaves like returning response status2686 returns bad_request2687 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2688 behaves like reject create package tag request2689 behaves like returning response status2690 returns not_found2691 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2692 behaves like reject create package tag request2693 behaves like returning response status2694 returns not_found2695 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2696 behaves like reject create package tag request2697 behaves like returning response status2698 returns not_found2699 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2700 behaves like reject create package tag request2701 behaves like returning response status2702 returns not_found2703 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2704 behaves like reject create package tag request2705 behaves like returning response status2706 returns not_found2707 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2708 behaves like reject create package tag request2709 behaves like returning response status2710 returns not_found2711 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2712 behaves like reject create package tag request2713 behaves like returning response status2714 returns not_found2715 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2716 behaves like reject create package tag request2717 behaves like returning response status2718 returns not_found2719 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2720 behaves like reject create package tag request2721 behaves like returning response status2722 returns not_found2723 with a user namespace2724 behaves like handling all conditions2725 with oauth token2726 behaves like handling different package names, visibilities and user roles2727 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2728 behaves like reject create package tag request2729 behaves like returning response status2730 returns forbidden2731 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2732 behaves like reject create package tag request2733 behaves like returning response status2734 returns forbidden2735 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2736 behaves like accept create package tag request2737 with valid package name2738 creates the package tag2739 returns a valid response2740 behaves like returning response status2741 returns no_content2742 with already existing tag2743 reuses existing tag2744 returns a valid response2745 behaves like returning response status2746 returns no_content2747 with invalid package name2748 package_name: "unknown", status: :not_found2749 behaves like returning response status2750 returns not_found2751 package_name: "", status: :not_found2752 behaves like returning response status2753 returns not_found2754 package_name: "%20", status: :bad_request2755 behaves like returning response status2756 returns bad_request2757 with invalid tag name2758 tag_name: "", status: :not_found2759 behaves like returning response status2760 returns not_found2761 tag_name: "%20", status: :bad_request2762 behaves like returning response status2763 returns bad_request2764 with invalid version2765 version: " ", status: :bad_request2766 behaves like returning response status2767 returns bad_request2768 version: "", status: :bad_request2769 behaves like returning response status2770 returns bad_request2771 version: nil, status: :bad_request2772 behaves like returning response status2773 returns bad_request2774 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2775 behaves like reject create package tag request2776 behaves like returning response status2777 returns not_found2778 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2779 behaves like reject create package tag request2780 behaves like returning response status2781 returns not_found2782 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2783 behaves like reject create package tag request2784 behaves like returning response status2785 returns not_found2786 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2787 behaves like reject create package tag request2788 behaves like returning response status2789 returns not_found2790 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2791 behaves like reject create package tag request2792 behaves like returning response status2793 returns not_found2794 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2795 behaves like reject create package tag request2796 behaves like returning response status2797 returns not_found2798 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2799 behaves like reject create package tag request2800 behaves like returning response status2801 returns not_found2802 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2803 behaves like reject create package tag request2804 behaves like returning response status2805 returns not_found2806 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2807 behaves like reject create package tag request2808 behaves like returning response status2809 returns not_found2810 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2811 behaves like reject create package tag request2812 behaves like returning response status2813 returns not_found2814 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2815 behaves like reject create package tag request2816 behaves like returning response status2817 returns forbidden2818 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2819 behaves like accept create package tag request2820 with valid package name2821 creates the package tag2822 returns a valid response2823 behaves like returning response status2824 returns no_content2825 with already existing tag2826 reuses existing tag2827 returns a valid response2828 behaves like returning response status2829 returns no_content2830 with invalid package name2831 package_name: "unknown", status: :not_found2832 behaves like returning response status2833 returns not_found2834 package_name: "", status: :not_found2835 behaves like returning response status2836 returns not_found2837 package_name: "%20", status: :bad_request2838 behaves like returning response status2839 returns bad_request2840 with invalid tag name2841 tag_name: "", status: :not_found2842 behaves like returning response status2843 returns not_found2844 tag_name: "%20", status: :bad_request2845 behaves like returning response status2846 returns bad_request2847 with invalid version2848 version: " ", status: :bad_request2849 behaves like returning response status2850 returns bad_request2851 version: "", status: :bad_request2852 behaves like returning response status2853 returns bad_request2854 version: nil, status: :bad_request2855 behaves like returning response status2856 returns bad_request2857 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2858 behaves like reject create package tag request2859 behaves like returning response status2860 returns not_found2861 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2862 behaves like reject create package tag request2863 behaves like returning response status2864 returns not_found2865 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2866 behaves like reject create package tag request2867 behaves like returning response status2868 returns not_found2869 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2870 behaves like reject create package tag request2871 behaves like returning response status2872 returns not_found2873 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2874 behaves like reject create package tag request2875 behaves like returning response status2876 returns not_found2877 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2878 behaves like reject create package tag request2879 behaves like returning response status2880 returns not_found2881 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2882 behaves like reject create package tag request2883 behaves like returning response status2884 returns not_found2885 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2886 behaves like reject create package tag request2887 behaves like returning response status2888 returns not_found2889 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2890 behaves like reject create package tag request2891 behaves like returning response status2892 returns not_found2893 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2894 behaves like reject create package tag request2895 behaves like returning response status2896 returns forbidden2897 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2898 behaves like reject create package tag request2899 behaves like returning response status2900 returns forbidden2901 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2902 behaves like accept create package tag request2903 with valid package name2904 creates the package tag2905 returns a valid response2906 behaves like returning response status2907 returns no_content2908 with already existing tag2909 reuses existing tag2910 returns a valid response2911 behaves like returning response status2912 returns no_content2913 with invalid package name2914 package_name: "unknown", status: :not_found2915 behaves like returning response status2916 returns not_found2917 package_name: "", status: :not_found2918 behaves like returning response status2919 returns not_found2920 package_name: "%20", status: :bad_request2921 behaves like returning response status2922 returns bad_request2923 with invalid tag name2924 tag_name: "", status: :not_found2925 behaves like returning response status2926 returns not_found2927 tag_name: "%20", status: :bad_request2928 behaves like returning response status2929 returns bad_request2930 with invalid version2931 version: " ", status: :bad_request2932 behaves like returning response status2933 returns bad_request2934 version: "", status: :bad_request2935 behaves like returning response status2936 returns bad_request2937 version: nil, status: :bad_request2938 behaves like returning response status2939 returns bad_request2940 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2941 behaves like reject create package tag request2942 behaves like returning response status2943 returns not_found2944 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2945 behaves like reject create package tag request2946 behaves like returning response status2947 returns not_found2948 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2949 behaves like reject create package tag request2950 behaves like returning response status2951 returns not_found2952 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2953 behaves like reject create package tag request2954 behaves like returning response status2955 returns not_found2956 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2957 behaves like reject create package tag request2958 behaves like returning response status2959 returns not_found2960 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2961 behaves like reject create package tag request2962 behaves like returning response status2963 returns not_found2964 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2965 behaves like reject create package tag request2966 behaves like returning response status2967 returns not_found2968 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2969 behaves like reject create package tag request2970 behaves like returning response status2971 returns not_found2972 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2973 behaves like reject create package tag request2974 behaves like returning response status2975 returns not_found2976 with personal access token2977 behaves like handling different package names, visibilities and user roles2978 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2979 behaves like reject create package tag request2980 behaves like returning response status2981 returns forbidden2982 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2983 behaves like reject create package tag request2984 behaves like returning response status2985 returns forbidden2986 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2987 behaves like accept create package tag request2988 with valid package name2989 creates the package tag2990 returns a valid response2991 behaves like returning response status2992 returns no_content2993 with already existing tag2994 reuses existing tag2995 returns a valid response2996 behaves like returning response status2997 returns no_content2998 with invalid package name2999 package_name: "unknown", status: :not_found3000 behaves like returning response status3001 returns not_found3002 package_name: "", status: :not_found3003 behaves like returning response status3004 returns not_found3005 package_name: "%20", status: :bad_request3006 behaves like returning response status3007 returns bad_request3008 with invalid tag name3009 tag_name: "", status: :not_found3010 behaves like returning response status3011 returns not_found3012 tag_name: "%20", status: :bad_request3013 behaves like returning response status3014 returns bad_request3015 with invalid version3016 version: " ", status: :bad_request3017 behaves like returning response status3018 returns bad_request3019 version: "", status: :bad_request3020 behaves like returning response status3021 returns bad_request3022 version: nil, status: :bad_request3023 behaves like returning response status3024 returns bad_request3025 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3026 behaves like reject create package tag request3027 behaves like returning response status3028 returns not_found3029 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3030 behaves like reject create package tag request3031 behaves like returning response status3032 returns not_found3033 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3034 behaves like reject create package tag request3035 behaves like returning response status3036 returns not_found3037 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3038 behaves like reject create package tag request3039 behaves like returning response status3040 returns not_found3041 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3042 behaves like reject create package tag request3043 behaves like returning response status3044 returns not_found3045 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3046 behaves like reject create package tag request3047 behaves like returning response status3048 returns not_found3049 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3050 behaves like reject create package tag request3051 behaves like returning response status3052 returns not_found3053 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3054 behaves like reject create package tag request3055 behaves like returning response status3056 returns not_found3057 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found3058 behaves like reject create package tag request3059 behaves like returning response status3060 returns not_found3061 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3062 behaves like reject create package tag request3063 behaves like returning response status3064 returns not_found3065 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3066 behaves like reject create package tag request3067 behaves like returning response status3068 returns forbidden3069 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3070 behaves like accept create package tag request3071 with valid package name3072 creates the package tag3073 returns a valid response3074 behaves like returning response status3075 returns no_content3076 with already existing tag3077 reuses existing tag3078 returns a valid response3079 behaves like returning response status3080 returns no_content3081 with invalid package name3082 package_name: "unknown", status: :not_found3083 behaves like returning response status3084 returns not_found3085 package_name: "", status: :not_found3086 behaves like returning response status3087 returns not_found3088 package_name: "%20", status: :bad_request3089 behaves like returning response status3090 returns bad_request3091 with invalid tag name3092 tag_name: "", status: :not_found3093 behaves like returning response status3094 returns not_found3095 tag_name: "%20", status: :bad_request3096 behaves like returning response status3097 returns bad_request3098 with invalid version3099 version: " ", status: :bad_request3100 behaves like returning response status3101 returns bad_request3102 version: "", status: :bad_request3103 behaves like returning response status3104 returns bad_request3105 version: nil, status: :bad_request3106 behaves like returning response status3107 returns bad_request3108 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3109 behaves like reject create package tag request3110 behaves like returning response status3111 returns not_found3112 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3113 behaves like reject create package tag request3114 behaves like returning response status3115 returns not_found3116 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3117 behaves like reject create package tag request3118 behaves like returning response status3119 returns not_found3120 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3121 behaves like reject create package tag request3122 behaves like returning response status3123 returns not_found3124 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3125 behaves like reject create package tag request3126 behaves like returning response status3127 returns not_found3128 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3129 behaves like reject create package tag request3130 behaves like returning response status3131 returns not_found3132 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3133 behaves like reject create package tag request3134 behaves like returning response status3135 returns not_found3136 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3137 behaves like reject create package tag request3138 behaves like returning response status3139 returns not_found3140 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found3141 behaves like reject create package tag request3142 behaves like returning response status3143 returns not_found3144 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3145 behaves like reject create package tag request3146 behaves like returning response status3147 returns forbidden3148 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3149 behaves like reject create package tag request3150 behaves like returning response status3151 returns forbidden3152 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3153 behaves like accept create package tag request3154 with valid package name3155 creates the package tag3156 returns a valid response3157 behaves like returning response status3158 returns no_content3159 with already existing tag3160 reuses existing tag3161 returns a valid response3162 behaves like returning response status3163 returns no_content3164 with invalid package name3165 package_name: "unknown", status: :not_found3166 behaves like returning response status3167 returns not_found3168 package_name: "", status: :not_found3169 behaves like returning response status3170 returns not_found3171 package_name: "%20", status: :bad_request3172 behaves like returning response status3173 returns bad_request3174 with invalid tag name3175 tag_name: "", status: :not_found3176 behaves like returning response status3177 returns not_found3178 tag_name: "%20", status: :bad_request3179 behaves like returning response status3180 returns bad_request3181 with invalid version3182 version: " ", status: :bad_request3183 behaves like returning response status3184 returns bad_request3185 version: "", status: :bad_request3186 behaves like returning response status3187 returns bad_request3188 version: nil, status: :bad_request3189 behaves like returning response status3190 returns bad_request3191 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3192 behaves like reject create package tag request3193 behaves like returning response status3194 returns not_found3195 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3196 behaves like reject create package tag request3197 behaves like returning response status3198 returns not_found3199 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3200 behaves like reject create package tag request3201 behaves like returning response status3202 returns not_found3203 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3204 behaves like reject create package tag request3205 behaves like returning response status3206 returns not_found3207 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3208 behaves like reject create package tag request3209 behaves like returning response status3210 returns not_found3211 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3212 behaves like reject create package tag request3213 behaves like returning response status3214 returns not_found3215 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3216 behaves like reject create package tag request3217 behaves like returning response status3218 returns not_found3219 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3220 behaves like reject create package tag request3221 behaves like returning response status3222 returns not_found3223 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3224 behaves like reject create package tag request3225 behaves like returning response status3226 returns not_found3227 DELETE /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag3228 behaves like handling delete dist tag requests3229 with a group namespace3230 behaves like handling all conditions3231 with oauth token3232 behaves like handling different package names, visibilities and user roles3233 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3234 behaves like reject delete package tag request3235 behaves like returning response status3236 returns forbidden3237 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3238 behaves like reject delete package tag request3239 behaves like returning response status3240 returns forbidden3241 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3242 behaves like accept delete package tag request3243 with valid package name3244 returns a valid response3245 destroy the package tag3246 behaves like returning response status3247 returns no_content3248 with tag from other package3249 behaves like returning response status3250 returns not_found3251 with invalid package name3252 package_name: "unknown", status: :not_found3253 behaves like returning response status3254 returns not_found3255 package_name: "", status: :not_found3256 behaves like returning response status3257 returns not_found3258 package_name: "%20", status: :bad_request3259 behaves like returning response status3260 returns bad_request3261 with invalid tag name3262 tag_name: "unknown", status: :not_found3263 behaves like returning response status3264 returns not_found3265 tag_name: "", status: :not_found3266 behaves like returning response status3267 returns not_found3268 tag_name: "%20", status: :bad_request3269 behaves like returning response status3270 returns bad_request3271 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3272 behaves like reject delete package tag request3273 behaves like returning response status3274 returns not_found3275 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3276 behaves like reject delete package tag request3277 behaves like returning response status3278 returns not_found3279 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3280 behaves like reject delete package tag request3281 behaves like returning response status3282 returns not_found3283 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3284 behaves like reject delete package tag request3285 behaves like returning response status3286 returns not_found3287 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3288 behaves like reject delete package tag request3289 behaves like returning response status3290 returns not_found3291 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3292 behaves like reject delete package tag request3293 behaves like returning response status3294 returns not_found3295 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3296 behaves like reject delete package tag request3297 behaves like returning response status3298 returns not_found3299 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3300 behaves like reject delete package tag request3301 behaves like returning response status3302 returns not_found3303 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3304 behaves like reject delete package tag request3305 behaves like returning response status3306 returns not_found3307 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3308 behaves like reject delete package tag request3309 behaves like returning response status3310 returns not_found3311 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3312 behaves like reject delete package tag request3313 behaves like returning response status3314 returns forbidden3315 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3316 behaves like accept delete package tag request3317 with valid package name3318 returns a valid response3319 destroy the package tag3320 behaves like returning response status3321 returns no_content3322 with tag from other package3323 behaves like returning response status3324 returns not_found3325 with invalid package name3326 package_name: "unknown", status: :not_found3327 behaves like returning response status3328 returns not_found3329 package_name: "", status: :not_found3330 behaves like returning response status3331 returns not_found3332 package_name: "%20", status: :bad_request3333 behaves like returning response status3334 returns bad_request3335 with invalid tag name3336 tag_name: "unknown", status: :not_found3337 behaves like returning response status3338 returns not_found3339 tag_name: "", status: :not_found3340 behaves like returning response status3341 returns not_found3342 tag_name: "%20", status: :bad_request3343 behaves like returning response status3344 returns bad_request3345 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3346 behaves like reject delete package tag request3347 behaves like returning response status3348 returns not_found3349 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3350 behaves like reject delete package tag request3351 behaves like returning response status3352 returns not_found3353 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3354 behaves like reject delete package tag request3355 behaves like returning response status3356 returns not_found3357 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3358 behaves like reject delete package tag request3359 behaves like returning response status3360 returns not_found3361 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3362 behaves like reject delete package tag request3363 behaves like returning response status3364 returns not_found3365 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3366 behaves like reject delete package tag request3367 behaves like returning response status3368 returns not_found3369 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3370 behaves like reject delete package tag request3371 behaves like returning response status3372 returns not_found3373 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3374 behaves like reject delete package tag request3375 behaves like returning response status3376 returns not_found3377 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3378 behaves like reject delete package tag request3379 behaves like returning response status3380 returns not_found3381 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3382 behaves like reject delete package tag request3383 behaves like returning response status3384 returns forbidden3385 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3386 behaves like reject delete package tag request3387 behaves like returning response status3388 returns forbidden3389 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3390 behaves like accept delete package tag request3391 with valid package name3392 returns a valid response3393 destroy the package tag3394 behaves like returning response status3395 returns no_content3396 with tag from other package3397 behaves like returning response status3398 returns not_found3399 with invalid package name3400 package_name: "unknown", status: :not_found3401 behaves like returning response status3402 returns not_found3403 package_name: "", status: :not_found3404 behaves like returning response status3405 returns not_found3406 package_name: "%20", status: :bad_request3407 behaves like returning response status3408 returns bad_request3409 with invalid tag name3410 tag_name: "unknown", status: :not_found3411 behaves like returning response status3412 returns not_found3413 tag_name: "", status: :not_found3414 behaves like returning response status3415 returns not_found3416 tag_name: "%20", status: :bad_request3417 behaves like returning response status3418 returns bad_request3419 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3420 behaves like reject delete package tag request3421 behaves like returning response status3422 returns not_found3423 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3424 behaves like reject delete package tag request3425 behaves like returning response status3426 returns not_found3427 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3428 behaves like reject delete package tag request3429 behaves like returning response status3430 returns not_found3431 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3432 behaves like reject delete package tag request3433 behaves like returning response status3434 returns not_found3435 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3436 behaves like reject delete package tag request3437 behaves like returning response status3438 returns not_found3439 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3440 behaves like reject delete package tag request3441 behaves like returning response status3442 returns not_found3443 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3444 behaves like reject delete package tag request3445 behaves like returning response status3446 returns not_found3447 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3448 behaves like reject delete package tag request3449 behaves like returning response status3450 returns not_found3451 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3452 behaves like reject delete package tag request3453 behaves like returning response status3454 returns not_found3455 with personal access token3456 behaves like handling different package names, visibilities and user roles3457 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3458 behaves like reject delete package tag request3459 behaves like returning response status3460 returns forbidden3461 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3462 behaves like reject delete package tag request3463 behaves like returning response status3464 returns forbidden3465 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3466 behaves like accept delete package tag request3467 with valid package name3468 returns a valid response3469 destroy the package tag3470 behaves like returning response status3471 returns no_content3472 with tag from other package3473 behaves like returning response status3474 returns not_found3475 with invalid package name3476 package_name: "unknown", status: :not_found3477 behaves like returning response status3478 returns not_found3479 package_name: "", status: :not_found3480 behaves like returning response status3481 returns not_found3482 package_name: "%20", status: :bad_request3483 behaves like returning response status3484 returns bad_request3485 with invalid tag name3486 tag_name: "unknown", status: :not_found3487 behaves like returning response status3488 returns not_found3489 tag_name: "", status: :not_found3490 behaves like returning response status3491 returns not_found3492 tag_name: "%20", status: :bad_request3493 behaves like returning response status3494 returns bad_request3495 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3496 behaves like reject delete package tag request3497 behaves like returning response status3498 returns not_found3499 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3500 behaves like reject delete package tag request3501 behaves like returning response status3502 returns not_found3503 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3504 behaves like reject delete package tag request3505 behaves like returning response status3506 returns not_found3507 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3508 behaves like reject delete package tag request3509 behaves like returning response status3510 returns not_found3511 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3512 behaves like reject delete package tag request3513 behaves like returning response status3514 returns not_found3515 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3516 behaves like reject delete package tag request3517 behaves like returning response status3518 returns not_found3519 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3520 behaves like reject delete package tag request3521 behaves like returning response status3522 returns not_found3523 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3524 behaves like reject delete package tag request3525 behaves like returning response status3526 returns not_found3527 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3528 behaves like reject delete package tag request3529 behaves like returning response status3530 returns not_found3531 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3532 behaves like reject delete package tag request3533 behaves like returning response status3534 returns not_found3535 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3536 behaves like reject delete package tag request3537 behaves like returning response status3538 returns forbidden3539 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3540 behaves like accept delete package tag request3541 with valid package name3542 returns a valid response3543 destroy the package tag3544 behaves like returning response status3545 returns no_content3546 with tag from other package3547 behaves like returning response status3548 returns not_found3549 with invalid package name3550 package_name: "unknown", status: :not_found3551 behaves like returning response status3552 returns not_found3553 package_name: "", status: :not_found3554 behaves like returning response status3555 returns not_found3556 package_name: "%20", status: :bad_request3557 behaves like returning response status3558 returns bad_request3559 with invalid tag name3560 tag_name: "unknown", status: :not_found3561 behaves like returning response status3562 returns not_found3563 tag_name: "", status: :not_found3564 behaves like returning response status3565 returns not_found3566 tag_name: "%20", status: :bad_request3567 behaves like returning response status3568 returns bad_request3569 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3570 behaves like reject delete package tag request3571 behaves like returning response status3572 returns not_found3573 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3574 behaves like reject delete package tag request3575 behaves like returning response status3576 returns not_found3577 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3578 behaves like reject delete package tag request3579 behaves like returning response status3580 returns not_found3581 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3582 behaves like reject delete package tag request3583 behaves like returning response status3584 returns not_found3585 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3586 behaves like reject delete package tag request3587 behaves like returning response status3588 returns not_found3589 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3590 behaves like reject delete package tag request3591 behaves like returning response status3592 returns not_found3593 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3594 behaves like reject delete package tag request3595 behaves like returning response status3596 returns not_found3597 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3598 behaves like reject delete package tag request3599 behaves like returning response status3600 returns not_found3601 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3602 behaves like reject delete package tag request3603 behaves like returning response status3604 returns not_found3605 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3606 behaves like reject delete package tag request3607 behaves like returning response status3608 returns forbidden3609 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3610 behaves like reject delete package tag request3611 behaves like returning response status3612 returns forbidden3613 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3614 behaves like accept delete package tag request3615 with valid package name3616 returns a valid response3617 destroy the package tag3618 behaves like returning response status3619 returns no_content3620 with tag from other package3621 behaves like returning response status3622 returns not_found3623 with invalid package name3624 package_name: "unknown", status: :not_found3625 behaves like returning response status3626 returns not_found3627 package_name: "", status: :not_found3628 behaves like returning response status3629 returns not_found3630 package_name: "%20", status: :bad_request3631 behaves like returning response status3632 returns bad_request3633 with invalid tag name3634 tag_name: "unknown", status: :not_found3635 behaves like returning response status3636 returns not_found3637 tag_name: "", status: :not_found3638 behaves like returning response status3639 returns not_found3640 tag_name: "%20", status: :bad_request3641 behaves like returning response status3642 returns bad_request3643 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3644 behaves like reject delete package tag request3645 behaves like returning response status3646 returns not_found3647 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3648 behaves like reject delete package tag request3649 behaves like returning response status3650 returns not_found3651 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3652 behaves like reject delete package tag request3653 behaves like returning response status3654 returns not_found3655 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3656 behaves like reject delete package tag request3657 behaves like returning response status3658 returns not_found3659 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3660 behaves like reject delete package tag request3661 behaves like returning response status3662 returns not_found3663 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3664 behaves like reject delete package tag request3665 behaves like returning response status3666 returns not_found3667 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3668 behaves like reject delete package tag request3669 behaves like returning response status3670 returns not_found3671 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3672 behaves like reject delete package tag request3673 behaves like returning response status3674 returns not_found3675 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3676 behaves like reject delete package tag request3677 behaves like returning response status3678 returns not_found3679 with a user namespace3680 behaves like handling all conditions3681 with oauth token3682 behaves like handling different package names, visibilities and user roles3683 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3684 behaves like reject delete package tag request3685 behaves like returning response status3686 returns forbidden3687 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3688 behaves like reject delete package tag request3689 behaves like returning response status3690 returns forbidden3691 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3692 behaves like accept delete package tag request3693 with valid package name3694 returns a valid response3695 destroy the package tag3696 behaves like returning response status3697 returns no_content3698 with tag from other package3699 behaves like returning response status3700 returns not_found3701 with invalid package name3702 package_name: "unknown", status: :not_found3703 behaves like returning response status3704 returns not_found3705 package_name: "", status: :not_found3706 behaves like returning response status3707 returns not_found3708 package_name: "%20", status: :bad_request3709 behaves like returning response status3710 returns bad_request3711 with invalid tag name3712 tag_name: "unknown", status: :not_found3713 behaves like returning response status3714 returns not_found3715 tag_name: "", status: :not_found3716 behaves like returning response status3717 returns not_found3718 tag_name: "%20", status: :bad_request3719 behaves like returning response status3720 returns bad_request3721 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3722 behaves like reject delete package tag request3723 behaves like returning response status3724 returns not_found3725 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3726 behaves like reject delete package tag request3727 behaves like returning response status3728 returns not_found3729 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3730 behaves like reject delete package tag request3731 behaves like returning response status3732 returns not_found3733 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3734 behaves like reject delete package tag request3735 behaves like returning response status3736 returns not_found3737 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3738 behaves like reject delete package tag request3739 behaves like returning response status3740 returns not_found3741 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3742 behaves like reject delete package tag request3743 behaves like returning response status3744 returns not_found3745 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3746 behaves like reject delete package tag request3747 behaves like returning response status3748 returns not_found3749 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3750 behaves like reject delete package tag request3751 behaves like returning response status3752 returns not_found3753 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3754 behaves like reject delete package tag request3755 behaves like returning response status3756 returns not_found3757 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3758 behaves like reject delete package tag request3759 behaves like returning response status3760 returns not_found3761 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3762 behaves like reject delete package tag request3763 behaves like returning response status3764 returns forbidden3765 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3766 behaves like accept delete package tag request3767 with valid package name3768 returns a valid response3769 destroy the package tag3770 behaves like returning response status3771 returns no_content3772 with tag from other package3773 behaves like returning response status3774 returns not_found3775 with invalid package name3776 package_name: "unknown", status: :not_found3777 behaves like returning response status3778 returns not_found3779 package_name: "", status: :not_found3780 behaves like returning response status3781 returns not_found3782 package_name: "%20", status: :bad_request3783 behaves like returning response status3784 returns bad_request3785 with invalid tag name3786 tag_name: "unknown", status: :not_found3787 behaves like returning response status3788 returns not_found3789 tag_name: "", status: :not_found3790 behaves like returning response status3791 returns not_found3792 tag_name: "%20", status: :bad_request3793 behaves like returning response status3794 returns bad_request3795 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3796 behaves like reject delete package tag request3797 behaves like returning response status3798 returns not_found3799 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3800 behaves like reject delete package tag request3801 behaves like returning response status3802 returns not_found3803 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3804 behaves like reject delete package tag request3805 behaves like returning response status3806 returns not_found3807 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3808 behaves like reject delete package tag request3809 behaves like returning response status3810 returns not_found3811 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3812 behaves like reject delete package tag request3813 behaves like returning response status3814 returns not_found3815 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3816 behaves like reject delete package tag request3817 behaves like returning response status3818 returns not_found3819 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3820 behaves like reject delete package tag request3821 behaves like returning response status3822 returns not_found3823 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3824 behaves like reject delete package tag request3825 behaves like returning response status3826 returns not_found3827 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3828 behaves like reject delete package tag request3829 behaves like returning response status3830 returns not_found3831 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3832 behaves like reject delete package tag request3833 behaves like returning response status3834 returns forbidden3835 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3836 behaves like reject delete package tag request3837 behaves like returning response status3838 returns forbidden3839 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3840 behaves like accept delete package tag request3841 with valid package name3842 returns a valid response3843 destroy the package tag3844 behaves like returning response status3845 returns no_content3846 with tag from other package3847 behaves like returning response status3848 returns not_found3849 with invalid package name3850 package_name: "unknown", status: :not_found3851 behaves like returning response status3852 returns not_found3853 package_name: "", status: :not_found3854 behaves like returning response status3855 returns not_found3856 package_name: "%20", status: :bad_request3857 behaves like returning response status3858 returns bad_request3859 with invalid tag name3860 tag_name: "unknown", status: :not_found3861 behaves like returning response status3862 returns not_found3863 tag_name: "", status: :not_found3864 behaves like returning response status3865 returns not_found3866 tag_name: "%20", status: :bad_request3867 behaves like returning response status3868 returns bad_request3869 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3870 behaves like reject delete package tag request3871 behaves like returning response status3872 returns not_found3873 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3874 behaves like reject delete package tag request3875 behaves like returning response status3876 returns not_found3877 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3878 behaves like reject delete package tag request3879 behaves like returning response status3880 returns not_found3881 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3882 behaves like reject delete package tag request3883 behaves like returning response status3884 returns not_found3885 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3886 behaves like reject delete package tag request3887 behaves like returning response status3888 returns not_found3889 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3890 behaves like reject delete package tag request3891 behaves like returning response status3892 returns not_found3893 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3894 behaves like reject delete package tag request3895 behaves like returning response status3896 returns not_found3897 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3898 behaves like reject delete package tag request3899 behaves like returning response status3900 returns not_found3901 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3902 behaves like reject delete package tag request3903 behaves like returning response status3904 returns not_found3905 with personal access token3906 behaves like handling different package names, visibilities and user roles3907 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3908 behaves like reject delete package tag request3909 behaves like returning response status3910 returns forbidden3911 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3912 behaves like reject delete package tag request3913 behaves like returning response status3914 returns forbidden3915 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3916 behaves like accept delete package tag request3917 with valid package name3918 returns a valid response3919 destroy the package tag3920 behaves like returning response status3921 returns no_content3922 with tag from other package3923 behaves like returning response status3924 returns not_found3925 with invalid package name3926 package_name: "unknown", status: :not_found3927 behaves like returning response status3928 returns not_found3929 package_name: "", status: :not_found3930 behaves like returning response status3931 returns not_found3932 package_name: "%20", status: :bad_request3933 behaves like returning response status3934 returns bad_request3935 with invalid tag name3936 tag_name: "unknown", status: :not_found3937 behaves like returning response status3938 returns not_found3939 tag_name: "", status: :not_found3940 behaves like returning response status3941 returns not_found3942 tag_name: "%20", status: :bad_request3943 behaves like returning response status3944 returns bad_request3945 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3946 behaves like reject delete package tag request3947 behaves like returning response status3948 returns not_found3949 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3950 behaves like reject delete package tag request3951 behaves like returning response status3952 returns not_found3953 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3954 behaves like reject delete package tag request3955 behaves like returning response status3956 returns not_found3957 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3958 behaves like reject delete package tag request3959 behaves like returning response status3960 returns not_found3961 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3962 behaves like reject delete package tag request3963 behaves like returning response status3964 returns not_found3965 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3966 behaves like reject delete package tag request3967 behaves like returning response status3968 returns not_found3969 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3970 behaves like reject delete package tag request3971 behaves like returning response status3972 returns not_found3973 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3974 behaves like reject delete package tag request3975 behaves like returning response status3976 returns not_found3977 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3978 behaves like reject delete package tag request3979 behaves like returning response status3980 returns not_found3981 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3982 behaves like reject delete package tag request3983 behaves like returning response status3984 returns not_found3985 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3986 behaves like reject delete package tag request3987 behaves like returning response status3988 returns forbidden3989 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3990 behaves like accept delete package tag request3991 with valid package name3992 returns a valid response3993 destroy the package tag3994 behaves like returning response status3995 returns no_content3996 with tag from other package3997 behaves like returning response status3998 returns not_found3999 with invalid package name4000 package_name: "unknown", status: :not_found4001 behaves like returning response status4002 returns not_found4003 package_name: "", status: :not_found4004 behaves like returning response status4005 returns not_found4006 package_name: "%20", status: :bad_request4007 behaves like returning response status4008 returns bad_request4009 with invalid tag name4010 tag_name: "unknown", status: :not_found4011 behaves like returning response status4012 returns not_found4013 tag_name: "", status: :not_found4014 behaves like returning response status4015 returns not_found4016 tag_name: "%20", status: :bad_request4017 behaves like returning response status4018 returns bad_request4019 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4020 behaves like reject delete package tag request4021 behaves like returning response status4022 returns not_found4023 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4024 behaves like reject delete package tag request4025 behaves like returning response status4026 returns not_found4027 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4028 behaves like reject delete package tag request4029 behaves like returning response status4030 returns not_found4031 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4032 behaves like reject delete package tag request4033 behaves like returning response status4034 returns not_found4035 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4036 behaves like reject delete package tag request4037 behaves like returning response status4038 returns not_found4039 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4040 behaves like reject delete package tag request4041 behaves like returning response status4042 returns not_found4043 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4044 behaves like reject delete package tag request4045 behaves like returning response status4046 returns not_found4047 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4048 behaves like reject delete package tag request4049 behaves like returning response status4050 returns not_found4051 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4052 behaves like reject delete package tag request4053 behaves like returning response status4054 returns not_found4055 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4056 behaves like reject delete package tag request4057 behaves like returning response status4058 returns forbidden4059 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4060 behaves like reject delete package tag request4061 behaves like returning response status4062 returns forbidden4063 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4064 behaves like accept delete package tag request4065 with valid package name4066 returns a valid response4067 destroy the package tag4068 behaves like returning response status4069 returns no_content4070 with tag from other package4071 behaves like returning response status4072 returns not_found4073 with invalid package name4074 package_name: "unknown", status: :not_found4075 behaves like returning response status4076 returns not_found4077 package_name: "", status: :not_found4078 behaves like returning response status4079 returns not_found4080 package_name: "%20", status: :bad_request4081 behaves like returning response status4082 returns bad_request4083 with invalid tag name4084 tag_name: "unknown", status: :not_found4085 behaves like returning response status4086 returns not_found4087 tag_name: "", status: :not_found4088 behaves like returning response status4089 returns not_found4090 tag_name: "%20", status: :bad_request4091 behaves like returning response status4092 returns bad_request4093 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4094 behaves like reject delete package tag request4095 behaves like returning response status4096 returns not_found4097 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4098 behaves like reject delete package tag request4099 behaves like returning response status4100 returns not_found4101 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4102 behaves like reject delete package tag request4103 behaves like returning response status4104 returns not_found4105 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4106 behaves like reject delete package tag request4107 behaves like returning response status4108 returns not_found4109 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4110 behaves like reject delete package tag request4111 behaves like returning response status4112 returns not_found4113 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4114 behaves like reject delete package tag request4115 behaves like returning response status4116 returns not_found4117 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4118 behaves like reject delete package tag request4119 behaves like returning response status4120 returns not_found4121 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4122 behaves like reject delete package tag request4123 behaves like returning response status4124 returns not_found4125 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4126 behaves like reject delete package tag request4127 behaves like returning response status4128 returns not_found4129API::Issues4130 GET /projects/:id/issues4131 avoids N+1 queries4132 returns 404 when project does not exist4133 returns 404 on private projects for other users4134 returns no issues when user has access to project but not issues4135 returns project issues without confidential issues for non project members4136 returns project issues without confidential issues for project members with guest role4137 returns project confidential issues for author4138 returns only confidential issues4139 returns only public issues4140 returns project confidential issues for assignee4141 returns project issues with confidential issues for project members4142 returns project confidential issues for admin4143 returns an array of labeled project issues4144 returns an array of labeled project issues with labels param as array4145 returns issues matching given search string for title4146 returns issues matching given search string for description4147 returns an array of issues found by iids4148 returns an empty array if iid does not exist4149 returns an empty array if not all labels matches4150 returns an array of project issues with any label4151 returns an array of project issues with any label with labels param as array4152 returns an array of project issues with no label4153 returns an array of project issues with no label with labels param as array4154 returns an empty array if no project issue matches labels4155 returns an empty array if no issue matches milestone4156 returns an empty array if milestone does not exist4157 returns an array of issues in given milestone4158 returns an array of issues matching state in milestone4159 returns an array of issues with no milestone4160 returns an array of issues with any milestone4161 sorts ascending when requested4162 sorts by updated_at descending when requested4163 sorts by updated_at ascending when requested4164 exposes known attributes4165 when unauthenticated4166 returns public project issues4167 issues_statistics4168 no state is treated as all state4169 behaves like project issues statistics4170 returns project issues statistics4171 statistics when all state is passed4172 behaves like project issues statistics4173 returns project issues statistics4174 closed state is treated as all state4175 behaves like project issues statistics4176 returns project issues statistics4177 opened state is treated as all state4178 behaves like project issues statistics4179 returns project issues statistics4180 when filtering by milestone and no state treated as all state4181 behaves like project issues statistics4182 returns project issues statistics4183 when filtering by milestone and all state4184 behaves like project issues statistics4185 returns project issues statistics4186 when filtering by milestone and closed state treated as all state4187 behaves like project issues statistics4188 returns project issues statistics4189 when filtering by milestone and opened state treated as all state4190 behaves like project issues statistics4191 returns project issues statistics4192 sort does not affect statistics4193 behaves like project issues statistics4194 returns project issues statistics4195 behaves like accessible merge requests count4196 returns anonymous accessible merge requests count4197 returns guest accessible merge requests count4198 returns reporter accessible merge requests count4199 returns admin accessible merge requests count4200 with labeled issues4201 behaves like labeled issues with labels and label_name params4202 array of labeled issues when all labels match4203 behaves like returns label names4204 returns label names4205 array of labeled issues when all labels match with labels param as array4206 behaves like returns label names4207 returns label names4208 negation4209 array of labeled issues when all labels match with negation4210 behaves like returns negated label names4211 returns label names4212 array of labeled issues when all labels match with negation with label params as array4213 behaves like returns negated label names4214 returns label names4215 when with_labels_details provided4216 array of labeled issues when all labels match4217 behaves like returns basic label entity4218 returns basic label entity4219 array of labeled issues when all labels match with labels param as array4220 behaves like returns basic label entity4221 returns basic label entity4222 with_labels_details4223 avoids N+1 queries4224 without sort params4225 sorts by created_at descending by default4226 with 2 issues with same created_at4227 page breaks first page correctly4228 page breaks second page correctly4229 issues_statistics4230 no state is treated as all state4231 behaves like project issues statistics4232 returns project issues statistics4233 statistics when all state is passed4234 behaves like project issues statistics4235 returns project issues statistics4236 closed state is treated as all state4237 behaves like project issues statistics4238 returns project issues statistics4239 opened state is treated as all state4240 behaves like project issues statistics4241 returns project issues statistics4242 when filtering by milestone and no state treated as all state4243 behaves like project issues statistics4244 returns project issues statistics4245 when filtering by milestone and all state4246 behaves like project issues statistics4247 returns project issues statistics4248 when filtering by milestone and closed state treated as all state4249 behaves like project issues statistics4250 returns project issues statistics4251 when filtering by milestone and opened state treated as all state4252 behaves like project issues statistics4253 returns project issues statistics4254 sort does not affect statistics4255 behaves like project issues statistics4256 returns project issues statistics4257 filtering by assignee_username4258 returns issues by assignee_username4259 returns issues by assignee_username as string4260 returns error when multiple assignees are passed4261 returns error when assignee_username and assignee_id are passed together4262 GET /projects/:id/issues/:issue_iid4263 exposes known attributes4264 exposes the closed_at attribute4265 returns a project issue by internal id4266 returns 404 if issue id not found4267 returns 404 if the issue ID is used4268 when unauthenticated4269 returns public issues4270 moved_to_id4271 returns null when not moved4272 returns issue id when moved4273 links exposure4274 exposes related resources full URIs4275 confidential issues4276 returns 404 for non project members4277 returns 404 for project members with guest role4278 returns confidential issue for project members4279 returns confidential issue for author4280 returns confidential issue for assignee4281 returns confidential issue for admin4282 behaves like accessible merge requests count4283 returns anonymous accessible merge requests count4284 returns guest accessible merge requests count4285 returns reporter accessible merge requests count4286 returns admin accessible merge requests count4287 GET :id/issues/:issue_iid/closed_by4288 returns merge requests that will close issue on merge4289 returns 404 when issue doesn't exists4290 when unauthenticated4291 return public project issues4292 when no merge requests will close issue4293 returns empty array4294 GET :id/issues/:issue_iid/related_merge_requests4295 returns merge requests that mentioned a issue4296 returns merge requests cross-project wide4297 does not generate references to projects with no access4298 returns 404 when issue doesn't exists4299 when unauthenticated4300 return list of referenced merge requests from issue4301 renders 404 if project is not visible4302 no merge request mentioned a issue4303 returns empty array4304 GET /projects/:id/issues/:issue_iid/user_agent_detail4305 exposes known attributes4306 returns unauthorized for non-admin users4307 when unauthenticated4308 returns unauthorized4309 GET projects/:id/issues/:issue_iid/participants4310 returns 404 if the issue is confidential4311 behaves like issuable participants endpoint4312 returns participants4313 returns a 404 when iid does not exist4314 returns a 404 when id is used instead of iid4315 with a confidential note4316 returns a full list of participants4317 when user cannot see a confidential note4318 returns a limited list of participants4319API::ComposerPackages4320 GET /api/v4/group/:id/-/packages/composer/packages4321 with valid project4322 with a public group4323 with basic auth4324 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, include_package: :include_package4325 behaves like Composer package index4326 behaves like Composer package index with version4327 returns the package index4328 with version 24329 behaves like Composer package index with version4330 returns the package index4331 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, include_package: :include_package4332 behaves like Composer package index4333 behaves like Composer package index with version4334 returns the package index4335 with version 24336 behaves like Composer package index with version4337 returns the package index4338 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, include_package: :include_package4339 behaves like Composer package index4340 behaves like Composer package index with version4341 returns the package index4342 with version 24343 behaves like Composer package index with version4344 returns the package index4345 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, include_package: :include_package4346 behaves like Composer package index4347 behaves like Composer package index with version4348 returns the package index4349 with version 24350 behaves like Composer package index with version4351 returns the package index4352 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, include_package: :include_package4353 behaves like Composer package index4354 behaves like Composer package index with version4355 returns the package index4356 with version 24357 behaves like Composer package index with version4358 returns the package index4359 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, include_package: :include_package4360 behaves like Composer package index4361 behaves like Composer package index with version4362 returns the package index4363 with version 24364 behaves like Composer package index with version4365 returns the package index4366 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, include_package: :does_not_include_package4367 behaves like Composer package index4368 behaves like Composer package index with version4369 returns the package index4370 with version 24371 behaves like Composer package index with version4372 returns the package index4373 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, include_package: :does_not_include_package4374 behaves like Composer package index4375 behaves like Composer package index with version4376 returns the package index4377 with version 24378 behaves like Composer package index with version4379 returns the package index4380 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, include_package: :does_not_include_package4381 behaves like Composer package index4382 behaves like Composer package index with version4383 returns the package index4384 with version 24385 behaves like Composer package index with version4386 returns the package index4387 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, include_package: :does_not_include_package4388 behaves like Composer package index4389 behaves like Composer package index with version4390 returns the package index4391 with version 24392 behaves like Composer package index with version4393 returns the package index4394 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, include_package: :does_not_include_package4395 behaves like Composer package index4396 behaves like Composer package index with version4397 returns the package index4398 with version 24399 behaves like Composer package index with version4400 returns the package index4401 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, include_package: :does_not_include_package4402 behaves like Composer package index4403 behaves like Composer package index with version4404 returns the package index4405 with version 24406 behaves like Composer package index with version4407 returns the package index4408 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, include_package: :does_not_include_package4409 behaves like Composer package index4410 behaves like Composer package index with version4411 returns the package index4412 with version 24413 behaves like Composer package index with version4414 returns the package index4415 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, include_package: :does_not_include_package4416 behaves like Composer package index4417 behaves like Composer package index with version4418 returns the package index4419 with version 24420 behaves like Composer package index with version4421 returns the package index4422 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, include_package: :include_package4423 behaves like Composer package index4424 behaves like Composer package index with version4425 returns the package index4426 with version 24427 behaves like Composer package index with version4428 returns the package index4429 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, include_package: :include_package4430 behaves like Composer package index4431 behaves like Composer package index with version4432 returns the package index4433 with version 24434 behaves like Composer package index with version4435 returns the package index4436 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, include_package: :include_package4437 behaves like Composer package index4438 behaves like Composer package index with version4439 returns the package index4440 with version 24441 behaves like Composer package index with version4442 returns the package index4443 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, include_package: :include_package4444 behaves like Composer package index4445 behaves like Composer package index with version4446 returns the package index4447 with version 24448 behaves like Composer package index with version4449 returns the package index4450 with private token header auth4451 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, expected_status: :success, include_package: :include_package4452 behaves like Composer package index4453 behaves like Composer package index with version4454 returns the package index4455 with version 24456 behaves like Composer package index with version4457 returns the package index4458 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, expected_status: :success, include_package: :include_package4459 behaves like Composer package index4460 behaves like Composer package index with version4461 returns the package index4462 with version 24463 behaves like Composer package index with version4464 returns the package index4465 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, expected_status: :success, include_package: :include_package4466 behaves like Composer package index4467 behaves like Composer package index with version4468 returns the package index4469 with version 24470 behaves like Composer package index with version4471 returns the package index4472 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, expected_status: :success, include_package: :include_package4473 behaves like Composer package index4474 behaves like Composer package index with version4475 returns the package index4476 with version 24477 behaves like Composer package index with version4478 returns the package index4479 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, expected_status: :success, include_package: :include_package4480 behaves like Composer package index4481 behaves like Composer package index with version4482 returns the package index4483 with version 24484 behaves like Composer package index with version4485 returns the package index4486 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, expected_status: :success, include_package: :include_package4487 behaves like Composer package index4488 behaves like Composer package index with version4489 returns the package index4490 with version 24491 behaves like Composer package index with version4492 returns the package index4493 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, expected_status: :success, include_package: :does_not_include_package4494 behaves like Composer package index4495 behaves like Composer package index with version4496 returns the package index4497 with version 24498 behaves like Composer package index with version4499 returns the package index4500 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, expected_status: :success, include_package: :does_not_include_package4501 behaves like Composer package index4502 behaves like Composer package index with version4503 returns the package index4504 with version 24505 behaves like Composer package index with version4506 returns the package index4507 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, expected_status: :success, include_package: :does_not_include_package4508 behaves like Composer package index4509 behaves like Composer package index with version4510 returns the package index4511 with version 24512 behaves like Composer package index with version4513 returns the package index4514 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, expected_status: :success, include_package: :does_not_include_package4515 behaves like Composer package index4516 behaves like Composer package index with version4517 returns the package index4518 with version 24519 behaves like Composer package index with version4520 returns the package index4521 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, expected_status: :unauthorized, include_package: nil4522 behaves like Composer package index4523 behaves like Composer package index with version4524 returns the package index4525 with version 24526 behaves like Composer package index with version4527 returns the package index4528 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, expected_status: :unauthorized, include_package: nil4529 behaves like Composer package index4530 behaves like Composer package index with version4531 returns the package index4532 with version 24533 behaves like Composer package index with version4534 returns the package index4535 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, expected_status: :unauthorized, include_package: nil4536 behaves like Composer package index4537 behaves like Composer package index with version4538 returns the package index4539 with version 24540 behaves like Composer package index with version4541 returns the package index4542 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, expected_status: :unauthorized, include_package: nil4543 behaves like Composer package index4544 behaves like Composer package index with version4545 returns the package index4546 with version 24547 behaves like Composer package index with version4548 returns the package index4549 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, expected_status: :unauthorized, include_package: nil4550 behaves like Composer package index4551 behaves like Composer package index with version4552 returns the package index4553 with version 24554 behaves like Composer package index with version4555 returns the package index4556 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, expected_status: :unauthorized, include_package: nil4557 behaves like Composer package index4558 behaves like Composer package index with version4559 returns the package index4560 with version 24561 behaves like Composer package index with version4562 returns the package index4563 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, expected_status: :unauthorized, include_package: nil4564 behaves like Composer package index4565 behaves like Composer package index with version4566 returns the package index4567 with version 24568 behaves like Composer package index with version4569 returns the package index4570 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, expected_status: :unauthorized, include_package: nil4571 behaves like Composer package index4572 behaves like Composer package index with version4573 returns the package index4574 with version 24575 behaves like Composer package index with version4576 returns the package index4577 with a private group4578 with access to the api4579 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, include_package: :include_package4580 behaves like Composer package index4581 behaves like Composer package index with version4582 returns the package index4583 with version 24584 behaves like Composer package index with version4585 returns the package index4586 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, include_package: :does_not_include_package4587 behaves like Composer package index4588 behaves like Composer package index with version4589 returns the package index4590 with version 24591 behaves like Composer package index with version4592 returns the package index4593 without access to the api4594 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false4595 behaves like process Composer api request4596 for user type developer4597 behaves like returning response status4598 returns not_found4599 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true4600 behaves like process Composer api request4601 for user type developer4602 behaves like returning response status4603 returns not_found4604 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false4605 behaves like process Composer api request4606 for user type developer4607 behaves like returning response status4608 returns not_found4609 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false4610 behaves like process Composer api request4611 for user type guest4612 behaves like returning response status4613 returns not_found4614 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true4615 behaves like process Composer api request4616 for user type guest4617 behaves like returning response status4618 returns not_found4619 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false4620 behaves like process Composer api request4621 for user type guest4622 behaves like returning response status4623 returns not_found4624 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true4625 behaves like process Composer api request4626 for user type anonymous4627 behaves like returning response status4628 returns not_found4629 behaves like rejects Composer access with unknown group id4630 with an unknown group4631 as anonymous4632 behaves like process Composer api request4633 for user type anonymous4634 behaves like returning response status4635 returns not_found4636 as authenticated user4637 behaves like process Composer api request4638 for user type anonymous4639 behaves like returning response status4640 returns not_found4641 GET /api/v4/group/:id/-/packages/composer/p/:sha.json4642 with valid project4643 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success4644 behaves like Composer provider index4645 returns the package index4646 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4647 behaves like process Composer api request4648 for user type developer4649 behaves like returning response status4650 returns unauthorized4651 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success4652 behaves like Composer provider index4653 returns the package index4654 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4655 behaves like process Composer api request4656 for user type developer4657 behaves like returning response status4658 returns unauthorized4659 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success4660 behaves like Composer provider index4661 returns the package index4662 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4663 behaves like process Composer api request4664 for user type guest4665 behaves like returning response status4666 returns unauthorized4667 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success4668 behaves like Composer provider index4669 returns the package index4670 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4671 behaves like process Composer api request4672 for user type guest4673 behaves like returning response status4674 returns unauthorized4675 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success4676 behaves like Composer provider index4677 returns the package index4678 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer provider index", expected_status: :success4679 behaves like Composer provider index4680 returns the package index4681 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4682 behaves like process Composer api request4683 for user type developer4684 behaves like returning response status4685 returns unauthorized4686 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4687 behaves like process Composer api request4688 for user type developer4689 behaves like returning response status4690 returns not_found4691 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4692 behaves like process Composer api request4693 for user type developer4694 behaves like returning response status4695 returns unauthorized4696 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "Composer empty provider index", expected_status: :success4697 behaves like Composer empty provider index4698 returns the package index4699 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4700 behaves like process Composer api request4701 for user type guest4702 behaves like returning response status4703 returns unauthorized4704 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4705 behaves like process Composer api request4706 for user type guest4707 behaves like returning response status4708 returns not_found4709 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4710 behaves like process Composer api request4711 for user type guest4712 behaves like returning response status4713 returns unauthorized4714 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4715 behaves like process Composer api request4716 for user type anonymous4717 behaves like returning response status4718 returns not_found4719 behaves like rejects Composer access with unknown group id4720 with an unknown group4721 as anonymous4722 behaves like process Composer api request4723 for user type anonymous4724 behaves like returning response status4725 returns not_found4726 as authenticated user4727 behaves like process Composer api request4728 for user type anonymous4729 behaves like returning response status4730 returns not_found4731 GET /api/v4/group/:id/-/packages/composer/*package_name.json4732 with no packages4733 behaves like returning response status4734 returns not_found4735 with valid project4736 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4737 behaves like Composer package api request4738 returns the package index4739 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4740 behaves like process Composer api request4741 for user type developer4742 behaves like returning response status4743 returns unauthorized4744 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4745 behaves like Composer package api request4746 returns the package index4747 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4748 behaves like process Composer api request4749 for user type developer4750 behaves like returning response status4751 returns unauthorized4752 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4753 behaves like Composer package api request4754 returns the package index4755 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4756 behaves like process Composer api request4757 for user type guest4758 behaves like returning response status4759 returns unauthorized4760 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4761 behaves like Composer package api request4762 returns the package index4763 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4764 behaves like process Composer api request4765 for user type guest4766 behaves like returning response status4767 returns unauthorized4768 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4769 behaves like Composer package api request4770 returns the package index4771 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4772 behaves like Composer package api request4773 returns the package index4774 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4775 behaves like process Composer api request4776 for user type developer4777 behaves like returning response status4778 returns unauthorized4779 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4780 behaves like process Composer api request4781 for user type developer4782 behaves like returning response status4783 returns not_found4784 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4785 behaves like process Composer api request4786 for user type developer4787 behaves like returning response status4788 returns unauthorized4789 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4790 behaves like process Composer api request4791 for user type guest4792 behaves like returning response status4793 returns not_found4794 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4795 behaves like process Composer api request4796 for user type guest4797 behaves like returning response status4798 returns unauthorized4799 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4800 behaves like process Composer api request4801 for user type guest4802 behaves like returning response status4803 returns not_found4804 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4805 behaves like process Composer api request4806 for user type guest4807 behaves like returning response status4808 returns unauthorized4809 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4810 behaves like process Composer api request4811 for user type anonymous4812 behaves like returning response status4813 returns not_found4814 without a sha4815 behaves like process Composer api request4816 for user type developer4817 behaves like returning response status4818 returns not_found4819 behaves like rejects Composer access with unknown group id4820 with an unknown group4821 as anonymous4822 behaves like process Composer api request4823 for user type anonymous4824 behaves like returning response status4825 returns not_found4826 as authenticated user4827 behaves like process Composer api request4828 for user type anonymous4829 behaves like returning response status4830 returns not_found4831 GET /api/v4/group/:id/-/packages/composer/p2/*package_name.json4832 with no packages4833 behaves like returning response status4834 returns not_found4835 with valid project4836 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4837 behaves like Composer package api request4838 returns the package index4839 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4840 behaves like process Composer api request4841 for user type developer4842 behaves like returning response status4843 returns unauthorized4844 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4845 behaves like Composer package api request4846 returns the package index4847 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4848 behaves like process Composer api request4849 for user type developer4850 behaves like returning response status4851 returns unauthorized4852 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4853 behaves like Composer package api request4854 returns the package index4855 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4856 behaves like process Composer api request4857 for user type guest4858 behaves like returning response status4859 returns unauthorized4860 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4861 behaves like Composer package api request4862 returns the package index4863 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4864 behaves like process Composer api request4865 for user type guest4866 behaves like returning response status4867 returns unauthorized4868 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4869 behaves like Composer package api request4870 returns the package index4871 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package api request", expected_status: :success4872 behaves like Composer package api request4873 returns the package index4874 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4875 behaves like process Composer api request4876 for user type developer4877 behaves like returning response status4878 returns unauthorized4879 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4880 behaves like process Composer api request4881 for user type developer4882 behaves like returning response status4883 returns not_found4884 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4885 behaves like process Composer api request4886 for user type developer4887 behaves like returning response status4888 returns unauthorized4889 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4890 behaves like process Composer api request4891 for user type guest4892 behaves like returning response status4893 returns not_found4894 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4895 behaves like process Composer api request4896 for user type guest4897 behaves like returning response status4898 returns unauthorized4899 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4900 behaves like process Composer api request4901 for user type guest4902 behaves like returning response status4903 returns not_found4904 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4905 behaves like process Composer api request4906 for user type guest4907 behaves like returning response status4908 returns unauthorized4909 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found4910 behaves like process Composer api request4911 for user type anonymous4912 behaves like returning response status4913 returns not_found4914 behaves like rejects Composer access with unknown group id4915 with an unknown group4916 as anonymous4917 behaves like process Composer api request4918 for user type anonymous4919 behaves like returning response status4920 returns not_found4921 as authenticated user4922 behaves like process Composer api request4923 for user type anonymous4924 behaves like returning response status4925 returns not_found4926 POST /api/v4/projects/:id/packages/composer4927 with no tag or branch params4928 behaves like process Composer api request4929 for user type developer4930 behaves like returning response status4931 returns bad_request4932 with a tag4933 with an existing branch4934 behaves like composer package publish4935 with valid project4936 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package creation", expected_status: :created4937 behaves like Composer package creation4938 for user type developer4939 creates package files4940 behaves like a package tracking event4941 creates a gitlab tracking event push_package4942 when package creation fails4943 behaves like not a package tracking event4944 does not create a gitlab tracking event4945 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4946 behaves like process Composer api request4947 for user type developer4948 behaves like returning response status4949 returns unauthorized4950 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden4951 behaves like process Composer api request4952 for user type developer4953 behaves like returning response status4954 returns forbidden4955 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4956 behaves like process Composer api request4957 for user type developer4958 behaves like returning response status4959 returns unauthorized4960 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden4961 behaves like process Composer api request4962 for user type guest4963 behaves like returning response status4964 returns forbidden4965 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4966 behaves like process Composer api request4967 for user type guest4968 behaves like returning response status4969 returns unauthorized4970 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden4971 behaves like process Composer api request4972 for user type guest4973 behaves like returning response status4974 returns forbidden4975 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4976 behaves like process Composer api request4977 for user type guest4978 behaves like returning response status4979 returns unauthorized4980 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :unauthorized4981 behaves like process Composer api request4982 for user type anonymous4983 behaves like returning response status4984 returns unauthorized4985 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package creation", expected_status: :created4986 behaves like Composer package creation4987 for user type developer4988 creates package files4989 behaves like a package tracking event4990 creates a gitlab tracking event push_package4991 when package creation fails4992 behaves like not a package tracking event4993 does not create a gitlab tracking event4994 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized4995 behaves like process Composer api request4996 for user type developer4997 behaves like returning response status4998 returns unauthorized4999 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found5000 behaves like process Composer api request5001 for user type developer5002 behaves like returning response status5003 returns not_found5004 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5005 behaves like process Composer api request5006 for user type developer5007 behaves like returning response status5008 returns unauthorized5009 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden5010 behaves like process Composer api request5011 for user type guest5012 behaves like returning response status5013 returns forbidden5014 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5015 behaves like process Composer api request5016 for user type guest5017 behaves like returning response status5018 returns unauthorized5019 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found5020 behaves like process Composer api request5021 for user type guest5022 behaves like returning response status5023 returns not_found5024 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5025 behaves like process Composer api request5026 for user type guest5027 behaves like returning response status5028 returns unauthorized5029 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :unauthorized5030 behaves like process Composer api request5031 for user type anonymous5032 behaves like returning response status5033 returns unauthorized5034 behaves like rejects Composer access with unknown project id5035 with an unknown project5036 as anonymous5037 behaves like process Composer api request5038 for user type anonymous5039 behaves like returning response status5040 returns not_found5041 as authenticated user5042 behaves like process Composer api request5043 for user type anonymous5044 behaves like returning response status5045 returns not_found5046 with a non existing tag5047 behaves like process Composer api request5048 for user type developer5049 behaves like returning response status5050 returns not_found5051 with a branch5052 with an existing branch5053 behaves like composer package publish5054 with valid project5055 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package creation", expected_status: :created5056 behaves like Composer package creation5057 for user type developer5058 creates package files5059 behaves like a package tracking event5060 creates a gitlab tracking event push_package5061 when package creation fails5062 behaves like not a package tracking event5063 does not create a gitlab tracking event5064 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5065 behaves like process Composer api request5066 for user type developer5067 behaves like returning response status5068 returns unauthorized5069 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden5070 behaves like process Composer api request5071 for user type developer5072 behaves like returning response status5073 returns forbidden5074 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5075 behaves like process Composer api request5076 for user type developer5077 behaves like returning response status5078 returns unauthorized5079 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden5080 behaves like process Composer api request5081 for user type guest5082 behaves like returning response status5083 returns forbidden5084 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5085 behaves like process Composer api request5086 for user type guest5087 behaves like returning response status5088 returns unauthorized5089 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden5090 behaves like process Composer api request5091 for user type guest5092 behaves like returning response status5093 returns forbidden5094 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5095 behaves like process Composer api request5096 for user type guest5097 behaves like returning response status5098 returns unauthorized5099 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :unauthorized5100 behaves like process Composer api request5101 for user type anonymous5102 behaves like returning response status5103 returns unauthorized5104 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "Composer package creation", expected_status: :created5105 behaves like Composer package creation5106 for user type developer5107 creates package files5108 behaves like a package tracking event5109 creates a gitlab tracking event push_package5110 when package creation fails5111 behaves like not a package tracking event5112 does not create a gitlab tracking event5113 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5114 behaves like process Composer api request5115 for user type developer5116 behaves like returning response status5117 returns unauthorized5118 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found5119 behaves like process Composer api request5120 for user type developer5121 behaves like returning response status5122 returns not_found5123 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5124 behaves like process Composer api request5125 for user type developer5126 behaves like returning response status5127 returns unauthorized5128 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "process Composer api request", expected_status: :forbidden5129 behaves like process Composer api request5130 for user type guest5131 behaves like returning response status5132 returns forbidden5133 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5134 behaves like process Composer api request5135 for user type guest5136 behaves like returning response status5137 returns unauthorized5138 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :not_found5139 behaves like process Composer api request5140 for user type guest5141 behaves like returning response status5142 returns not_found5143 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "process Composer api request", expected_status: :unauthorized5144 behaves like process Composer api request5145 for user type guest5146 behaves like returning response status5147 returns unauthorized5148 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process Composer api request", expected_status: :unauthorized5149 behaves like process Composer api request5150 for user type anonymous5151 behaves like returning response status5152 returns unauthorized5153 behaves like rejects Composer access with unknown project id5154 with an unknown project5155 as anonymous5156 behaves like process Composer api request5157 for user type anonymous5158 behaves like returning response status5159 returns not_found5160 as authenticated user5161 behaves like process Composer api request5162 for user type anonymous5163 behaves like returning response status5164 returns not_found5165 with a non existing branch5166 behaves like process Composer api request5167 for user type developer5168 behaves like returning response status5169 returns not_found5170 with invalid composer.json5171 with a missing composer.json file5172 behaves like process Composer api request5173 for user type developer5174 behaves like returning response status5175 returns unprocessable_entity5176 with an empty composer.json file5177 behaves like process Composer api request5178 for user type developer5179 behaves like returning response status5180 returns unprocessable_entity5181 with a malformed composer.json file5182 behaves like process Composer api request5183 for user type developer5184 behaves like returning response status5185 returns unprocessable_entity5186 GET /api/v4/projects/:id/packages/composer/archives/*package_name?sha=:sha5187 with valid project5188 when the sha does not match the package name5189 behaves like process Composer api request5190 for user type anonymous5191 behaves like returning response status5192 returns not_found5193 when the package name does not match the sha5194 behaves like process Composer api request5195 for user type anonymous5196 behaves like returning response status5197 returns not_found5198 with a match package name and sha5199 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, expected_status: :success5200 behaves like process Composer api request5201 for user type developer5202 behaves like returning response status5203 returns success5204 behaves like a package tracking event5205 creates a gitlab tracking event pull_package5206 project_visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, expected_status: :success5207 behaves like process Composer api request5208 for user type developer5209 behaves like returning response status5210 returns success5211 behaves like a package tracking event5212 creates a gitlab tracking event pull_package5213 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, expected_status: :success5214 behaves like process Composer api request5215 for user type developer5216 behaves like returning response status5217 returns success5218 behaves like a package tracking event5219 creates a gitlab tracking event pull_package5220 project_visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, expected_status: :success5221 behaves like process Composer api request5222 for user type developer5223 behaves like returning response status5224 returns success5225 behaves like a package tracking event5226 creates a gitlab tracking event pull_package5227 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, expected_status: :success5228 behaves like process Composer api request5229 for user type guest5230 behaves like returning response status5231 returns success5232 behaves like a package tracking event5233 creates a gitlab tracking event pull_package5234 project_visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, expected_status: :success5235 behaves like process Composer api request5236 for user type guest5237 behaves like returning response status5238 returns success5239 behaves like a package tracking event5240 creates a gitlab tracking event pull_package5241 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, expected_status: :success5242 behaves like process Composer api request5243 for user type guest5244 behaves like returning response status5245 returns success5246 behaves like a package tracking event5247 creates a gitlab tracking event pull_package5248 project_visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, expected_status: :success5249 behaves like process Composer api request5250 for user type guest5251 behaves like returning response status5252 returns success5253 behaves like a package tracking event5254 creates a gitlab tracking event pull_package5255 project_visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, expected_status: :success5256 behaves like process Composer api request5257 for user type anonymous5258 behaves like returning response status5259 returns success5260 behaves like a package tracking event5261 creates a gitlab tracking event pull_package5262 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, expected_status: :success5263 behaves like process Composer api request5264 for user type developer5265 behaves like returning response status5266 returns success5267 behaves like a package tracking event5268 creates a gitlab tracking event pull_package5269 project_visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, expected_status: :success5270 behaves like process Composer api request5271 for user type developer5272 behaves like returning response status5273 returns success5274 behaves like a package tracking event5275 creates a gitlab tracking event pull_package5276 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, expected_status: :success5277 behaves like process Composer api request5278 for user type developer5279 behaves like returning response status5280 returns success5281 behaves like a package tracking event5282 creates a gitlab tracking event pull_package5283 project_visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, expected_status: :success5284 behaves like process Composer api request5285 for user type developer5286 behaves like returning response status5287 returns success5288 behaves like a package tracking event5289 creates a gitlab tracking event pull_package5290 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, expected_status: :success5291 behaves like process Composer api request5292 for user type guest5293 behaves like returning response status5294 returns success5295 behaves like a package tracking event5296 creates a gitlab tracking event pull_package5297 project_visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, expected_status: :success5298 behaves like process Composer api request5299 for user type guest5300 behaves like returning response status5301 returns success5302 behaves like a package tracking event5303 creates a gitlab tracking event pull_package5304 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, expected_status: :success5305 behaves like process Composer api request5306 for user type guest5307 behaves like returning response status5308 returns success5309 behaves like a package tracking event5310 creates a gitlab tracking event pull_package5311 project_visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, expected_status: :success5312 behaves like process Composer api request5313 for user type guest5314 behaves like returning response status5315 returns success5316 behaves like a package tracking event5317 creates a gitlab tracking event pull_package5318 project_visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, expected_status: :success5319 behaves like process Composer api request5320 for user type anonymous5321 behaves like returning response status5322 returns success5323 behaves like a package tracking event5324 creates a gitlab tracking event pull_package5325 behaves like rejects Composer access with unknown project id5326 with an unknown project5327 as anonymous5328 behaves like process Composer api request5329 for user type anonymous5330 behaves like returning response status5331 returns not_found5332 as authenticated user5333 behaves like process Composer api request5334 for user type anonymous5335 behaves like returning response status5336 returns not_found5337API::Ci::Runner5338 /api/v4/jobs5339 POST /api/v4/jobs/request5340 when no token is provided5341 returns 400 error5342 when invalid token is provided5343 returns 403 error5344 when valid token is provided5345 when Runner is not active5346 returns 204 error5347 when jobs are finished5348 behaves like no jobs available5349 when runner sends version in User-Agent5350 for stable version5351 gives 204 and set X-GitLab-Last-Update5352 when last_update is up-to-date5353 gives 204 and set the same X-GitLab-Last-Update5354 when last_update is outdated5355 gives 204 and set a new X-GitLab-Last-Update5356 when beta version is sent5357 is expected to respond with numeric status code no_content5358 when pre-9-0 version is sent5359 is expected to respond with numeric status code no_content5360 when pre-9-0 beta version is sent5361 is expected to respond with numeric status code no_content5362 when other projects have pending jobs5363 behaves like no jobs available5364 when runner sends version in User-Agent5365 for stable version5366 gives 204 and set X-GitLab-Last-Update5367 when last_update is up-to-date5368 gives 204 and set the same X-GitLab-Last-Update5369 when last_update is outdated5370 gives 204 and set a new X-GitLab-Last-Update5371 when beta version is sent5372 is expected to respond with numeric status code no_content5373 when pre-9-0 version is sent5374 is expected to respond with numeric status code no_content5375 when pre-9-0 beta version is sent5376 is expected to respond with numeric status code no_content5377 when shared runner requests job for project without shared_runners_enabled5378 behaves like no jobs available5379 when runner sends version in User-Agent5380 for stable version5381 gives 204 and set X-GitLab-Last-Update5382 when last_update is up-to-date5383 gives 204 and set the same X-GitLab-Last-Update5384 when last_update is outdated5385 gives 204 and set a new X-GitLab-Last-Update5386 when beta version is sent5387 is expected to respond with numeric status code no_content5388 when pre-9-0 version is sent5389 is expected to respond with numeric status code no_content5390 when pre-9-0 beta version is sent5391 is expected to respond with numeric status code no_content5392 when there is a pending job5393 picks a job5394 creates persistent ref5395 updates runner info5396 sets the runner's config5397 sets the runner's ip_address5398 handles multiple X-Forwarded-For addresses5399 when job is made for tag5400 sets branch as ref_type5401 when GIT_DEPTH is specified5402 specifies refspecs5403 when a Gitaly exception is thrown during response5404 fails the job as a scheduler failure5405 when GIT_DEPTH is not specified and there is no default git depth for the project5406 specifies refspecs5407 when job filtered by job_age5408 job is queued less than job_age parameter5409 gives 2045410 job is queued more than job_age parameter5411 picks a job5412 when job is made for branch5413 sets tag as ref_type5414 when GIT_DEPTH is specified5415 specifies refspecs5416 when GIT_DEPTH is not specified and there is no default git depth for the project5417 specifies refspecs5418 when job is for a release5419 when `multi_build_steps` is passed by the runner5420 exposes release info5421 when `multi_build_steps` is not passed by the runner5422 drops the job5423 when job is made for merge request5424 sets branch as ref_type5425 when GIT_DEPTH is specified5426 returns the overwritten git depth for merge request refspecs5427 when info parameter 'version' is present5428 updates provided Runner's parameter5429 when info parameter 'revision' is present5430 updates provided Runner's parameter5431 when info parameter 'platform' is present5432 updates provided Runner's parameter5433 when info parameter 'architecture' is present5434 updates provided Runner's parameter5435 when concurrently updating a job5436 returns a conflict5437 when project and pipeline have multiple jobs5438 returns dependent jobs5439 preloading job_artifacts_archive5440 queries the ci_job_artifacts table once only5441 queries the ci_builds table five times5442 when pipeline have jobs with artifacts5443 returns dependent jobs5444 when explicit dependencies are defined5445 returns dependent jobs5446 when dependencies is an empty array5447 returns an empty array5448 when job has no tags5449 when runner is allowed to pick untagged jobs5450 picks job5451 when runner is not allowed to pick untagged jobs5452 behaves like no jobs available5453 when runner sends version in User-Agent5454 for stable version5455 gives 204 and set X-GitLab-Last-Update5456 when last_update is up-to-date5457 gives 204 and set the same X-GitLab-Last-Update5458 when last_update is outdated5459 gives 204 and set a new X-GitLab-Last-Update5460 when beta version is sent5461 is expected to respond with numeric status code no_content5462 when pre-9-0 version is sent5463 is expected to respond with numeric status code no_content5464 when pre-9-0 beta version is sent5465 is expected to respond with numeric status code no_content5466 when triggered job is available5467 when variables are stored in trigger_request5468 behaves like expected variables behavior5469 returns variables for triggers5470 when variables are stored in pipeline_variables5471 behaves like expected variables behavior5472 returns variables for triggers5473 registry credentials support5474 when registry is enabled5475 sends registry credentials key5476 when registry is disabled5477 does not send registry credentials5478 timeout support5479 when project specifies job timeout5480 contains info about timeout taken from project5481 when runner specifies lower timeout5482 contains info about timeout overridden by runner5483 when runner specifies bigger timeout5484 contains info about timeout not overridden by runner5485 port support5486 when job image has ports5487 returns the image ports5488 when job services settings has ports5489 returns the service ports5490 a job with excluded artifacts5491 does not expose excluded paths when these are empty5492 when excluded paths are defined5493 when a runner supports this feature5494 exposes excluded paths5495 when a runner does not support this feature5496 does not expose the build at all5497 setting the application context5498 when triggered by a user5499 behaves like storing arguments in the application context for the API5500 places the expected params in the application context5501 behaves like not executing any extra queries for the application context5502 does not execute more queries than without adding anything to the application context5503 when the runner is of project type5504 behaves like storing arguments in the application context for the API5505 places the expected params in the application context5506 behaves like not executing any extra queries for the application context5507 does not execute more queries than without adding anything to the application context5508 when the runner is of group type5509 behaves like storing arguments in the application context for the API5510 places the expected params in the application context5511 behaves like not executing any extra queries for the application context5512 does not execute more queries than without adding anything to the application context5513 for web-ide job5514 when runner has matching tag5515 successfully picks job5516 when runner does not have matching tags5517 does not pick a job5518API::Labels5519 GET /projects/:id/labels5520 returns all available labels to the project5521 when search param is provided5522 and user is subscribed5523 returns subscribed true5524 and user is not subscribed5525 returns subscribed false5526 when the with_counts parameter is set5527 includes counts in the response5528 with subgroups5529 when the include_ancestor_groups parameter is not set5530 behaves like fetches labels5531 returns correct labels5532 when search param is provided5533 behaves like fetches labels5534 returns correct labels5535 when the include_ancestor_groups parameter is set to false5536 behaves like fetches labels5537 returns correct labels5538 when search param is provided5539 behaves like fetches labels5540 returns correct labels5541 POST /projects/:id/labels5542 returns created label when all params5543 returns created label when only required params5544 creates a prioritized label5545 returns a 400 bad request if name not given5546 returns a 400 bad request if color not given5547 returns 400 for invalid color5548 returns 400 for too long color code5549 returns 400 for invalid name5550 returns 409 if label already exists in group5551 returns 400 for invalid priority5552 returns 409 if label already exists in project5553 DELETE /projects/:id/labels5554 returns 404 for non existing label5555 returns 400 for wrong parameters5556 fails if label_id and name are given in params5557 behaves like label delete API5558 returns 204 for existing label (deprecated route)5559 returns 204 for existing label (rest route)5560 behaves like label delete API5561 returns 204 for existing label (deprecated route)5562 returns 204 for existing label (rest route)5563 behaves like 412 response5564 for a modified ressource5565 returns 412 with a JSON error5566 for an unmodified ressource5567 returns 204 with an empty body5568 PUT /projects/:id/labels5569 returns 404 if label does not exist5570 returns 404 if label by id does not exist5571 returns 400 if no label name and id is given5572 fails if label_id and name are given in params5573 when using name5574 behaves like label update API5575 returns 200 if name is changed (deprecated route)5576 returns 200 if colors is changed (deprecated route)5577 returns 200 if a priority is added (deprecated route)5578 returns 400 if no new parameters given (deprecated route)5579 returns 400 when color code is too short (deprecated route)5580 returns 400 for too long color code (deprecated route)5581 returns 400 for invalid priority (deprecated route)5582 returns 200 if name and colors and description are changed (deprecated route)5583 returns 400 for invalid name (deprecated route)5584 returns 200 if description is changed (deprecated route)5585 returns 200 if priority is changed (deprecated route)5586 returns 200 if name is changed (rest route)5587 returns 200 if colors is changed (rest route)5588 returns 200 if a priority is added (rest route)5589 returns 400 if no new parameters given (rest route)5590 returns 400 when color code is too short (rest route)5591 returns 400 for too long color code (rest route)5592 returns 400 for invalid priority (rest route)5593 returns 200 if name and colors and description are changed (rest route)5594 returns 400 for invalid name (rest route)5595 returns 200 if description is changed (rest route)5596 returns 200 if priority is changed (rest route)5597 returns 200 if a priority is removed (deprecated route)5598 returns 200 if a priority is removed (rest route)5599 when using label_id5600 behaves like label update API5601 returns 200 if name is changed (deprecated route)5602 returns 200 if colors is changed (deprecated route)5603 returns 200 if a priority is added (deprecated route)5604 returns 400 if no new parameters given (deprecated route)5605 returns 400 when color code is too short (deprecated route)5606 returns 400 for too long color code (deprecated route)5607 returns 400 for invalid priority (deprecated route)5608 returns 200 if name and colors and description are changed (deprecated route)5609 returns 400 for invalid name (deprecated route)5610 returns 200 if description is changed (deprecated route)5611 returns 200 if priority is changed (deprecated route)5612 returns 200 if name is changed (rest route)5613 returns 200 if colors is changed (rest route)5614 returns 200 if a priority is added (rest route)5615 returns 400 if no new parameters given (rest route)5616 returns 400 when color code is too short (rest route)5617 returns 400 for too long color code (rest route)5618 returns 400 for invalid priority (rest route)5619 returns 200 if name and colors and description are changed (rest route)5620 returns 400 for invalid name (rest route)5621 returns 200 if description is changed (rest route)5622 returns 200 if priority is changed (rest route)5623 returns 200 if a priority is removed (deprecated route)5624 returns 200 if a priority is removed (rest route)5625 PUT /projects/:id/labels/promote5626 returns 200 if label is promoted5627 returns 403 if guest promotes label5628 returns 403 if reporter promotes label5629 returns 404 if label does not exist5630 returns 400 if no label name given5631 returns 400 if project does not have a group5632 if group label already exists5633 returns a status of 2005634 does not change the group label count5635 does not change the group label max (reuses the same ID)5636 changes the project label count5637 POST /projects/:id/labels/:label_id/subscribe5638 when label_id is a label title5639 subscribes to the label5640 when label_id is a label ID5641 subscribes to the label5642 when user is already subscribed to label5643 returns 3045644 when label ID is not found5645 returns 404 error5646 POST /projects/:id/labels/:label_id/unsubscribe5647 when label_id is a label title5648 unsubscribes from the label5649 when label_id is a label ID5650 unsubscribes from the label5651 when user is already unsubscribed from label5652 returns 3045653 when label ID is not found5654 returns 404 error5655API::Helpers5656 .current_user5657 Warden authentication5658 with invalid credentials5659 GET request5660 is expected to be nil5661 with valid credentials5662 GET request5663 is expected to eq #<User id:237 @user214>5664 sets the environment with data of the current user5665 HEAD request5666 is expected to eq #<User id:237 @user214>5667 when user should have 2fa enabled5668 when 2fa is not enabled5669 is expected to be nil5670 when 2fa is enabled5671 is expected to eq #<User id:237 @user214>5672 PUT request5673 without CSRF token5674 is expected to be nil5675 with CSRF token5676 is expected to eq #<User id:237 @user214>5677 POST request5678 without CSRF token5679 is expected to be nil5680 with CSRF token5681 is expected to eq #<User id:237 @user214>5682 DELETE request5683 without CSRF token5684 is expected to be nil5685 with CSRF token5686 is expected to eq #<User id:237 @user214>5687 when authenticating using a user's personal access tokens5688 returns a 401 response for an invalid token5689 returns a 403 response for a user without access5690 returns a 403 response for a user who is blocked5691 sets current_user5692 does not allow tokens without the appropriate scope5693 does not allow revoked tokens5694 does not allow expired tokens5695 when terms are enforced5696 returns a 403 when a user has not accepted the terms5697 sets the current user when the user accepted the terms5698 when impersonation is disabled5699 does not allow impersonation tokens5700 when authenticating using a job token5701 when route is allowed to be authenticated5702 returns a 401 response for an invalid token5703 returns a 401 response for a job that's not running5704 returns a 403 response for a user without access5705 returns a 403 response for a user who is blocked5706 sets current_user5707 when route is not allowed to be authenticated5708 sets current_user to nil5709 .handle_api_exception5710 does not report a MethodNotAllowed exception to Sentry5711 does report RuntimeError to Sentry5712 with a personal access token given5713 does not raise an additional exception because of missing `request`5714 .authenticate_non_get!5715 method is HEAD5716 does not raise an error5717 method is GET5718 does not raise an error5719 method is POST5720 calls authenticate!5721 method is PUT5722 calls authenticate!5723 method is PATCH5724 calls authenticate!5725 method is DELETE5726 calls authenticate!5727 .authenticate!5728 current_user is nil5729 returns a 401 response5730 current_user is present5731 does not raise an error5732 sudo5733 using an OAuth token5734 behaves like sudo5735 when admin5736 when token has sudo scope5737 when user exists5738 when using header5739 when providing username5740 behaves like successful sudo5741 sets current_user5742 sets sudo?5743 when providing username (case insensitive)5744 behaves like successful sudo5745 sets current_user5746 sets sudo?5747 when providing user ID5748 behaves like successful sudo5749 sets current_user5750 sets sudo?5751 when using param5752 when providing username5753 behaves like successful sudo5754 sets current_user5755 sets sudo?5756 when providing username (case insensitive)5757 behaves like successful sudo5758 sets current_user5759 sets sudo?5760 when providing user ID5761 behaves like successful sudo5762 sets current_user5763 sets sudo?5764 when user does not exist5765 raises an error5766 when token does not have sudo scope5767 raises an error5768 when not admin5769 raises an error5770 using a personal access token5771 passed as param5772 behaves like sudo5773 when admin5774 when token has sudo scope5775 when user exists5776 when using header5777 when providing username5778 behaves like successful sudo5779 sets current_user5780 sets sudo?5781 when providing username (case insensitive)5782 behaves like successful sudo5783 sets current_user5784 sets sudo?5785 when providing user ID5786 behaves like successful sudo5787 sets current_user5788 sets sudo?5789 when using param5790 when providing username5791 behaves like successful sudo5792 sets current_user5793 sets sudo?5794 when providing username (case insensitive)5795 behaves like successful sudo5796 sets current_user5797 sets sudo?5798 when providing user ID5799 behaves like successful sudo5800 sets current_user5801 sets sudo?5802 when user does not exist5803 raises an error5804 when token does not have sudo scope5805 raises an error5806 when not admin5807 raises an error5808 passed as header5809 behaves like sudo5810 when admin5811 when token has sudo scope5812 when user exists5813 when using header5814 when providing username5815 behaves like successful sudo5816 sets current_user5817 sets sudo?5818 when providing username (case insensitive)5819 behaves like successful sudo5820 sets current_user5821 sets sudo?5822 when providing user ID5823 behaves like successful sudo5824 sets current_user5825 sets sudo?5826 when using param5827 when providing username5828 behaves like successful sudo5829 sets current_user5830 sets sudo?5831 when providing username (case insensitive)5832 behaves like successful sudo5833 sets current_user5834 sets sudo?5835 when providing user ID5836 behaves like successful sudo5837 sets current_user5838 sets sudo?5839 when user does not exist5840 raises an error5841 when token does not have sudo scope5842 raises an error5843 when not admin5844 raises an error5845 using warden authentication5846 raises an error5847Explore::ProjectsController5848 when user is signed in5849 GET #index.json5850 is expected to respond with 2005851 sets a default sort parameter5852 GET #trending.json5853 is expected to respond with 2005854 sets a default sort parameter5855 GET #starred.json5856 is expected to respond with 2005857 sets a default sort parameter5858 GET #trending5859 sorting by update date5860 sorts by last updated5861 sorts by oldest updated5862 GET #topic5863 when topic does not exist5864 renders a 404 error5865 when topic exists5866 renders the template5867 page number is too high5868 GET index5869 is expected to respond with 4005870 is expected to render template explore/projects/page_out_of_bounds5871 assigns the page number5872 GET index.json5873 is expected to respond with 4005874 metrics recording5875 records the interception5876 GET trending5877 is expected to respond with 4005878 is expected to render template explore/projects/page_out_of_bounds5879 assigns the page number5880 GET trending.json5881 is expected to respond with 4005882 metrics recording5883 records the interception5884 GET starred5885 is expected to respond with 4005886 is expected to render template explore/projects/page_out_of_bounds5887 assigns the page number5888 GET starred.json5889 is expected to respond with 4005890 metrics recording5891 records the interception5892 page number is acceptable5893 GET index5894 is expected to respond with 2005895 is expected to render template explore/projects/index5896 GET index.json5897 is expected to respond with 2005898 GET trending5899 is expected to respond with 2005900 is expected to render template explore/projects/trending5901 GET trending.json5902 is expected to respond with 2005903 GET starred5904 is expected to respond with 2005905 is expected to render template explore/projects/starred5906 GET starred.json5907 is expected to respond with 2005908 GET index5909 avoids N+1 queries5910 GET trending5911 avoids N+1 queries5912 GET starred5913 avoids N+1 queries5914 user preference sorting5915 behaves like set sort order from user preference5916 #set_sort_order_from_user_preference5917 when database is in read-only mode5918 does not update user preference5919 when database is not in read-only mode5920 updates user preference5921 GET #index5922 when disable_anonymous_project_search is enabled5923 does not show a flash message5924 when user is not signed in5925 GET #index.json5926 is expected to respond with 2005927 sets a default sort parameter5928 GET #trending.json5929 is expected to respond with 2005930 sets a default sort parameter5931 GET #starred.json5932 is expected to respond with 2005933 sets a default sort parameter5934 GET #trending5935 sorting by update date5936 sorts by last updated5937 sorts by oldest updated5938 GET #topic5939 when topic does not exist5940 renders a 404 error5941 when topic exists5942 renders the template5943 page number is too high5944 GET index5945 is expected to respond with 4005946 is expected to render template explore/projects/page_out_of_bounds5947 assigns the page number5948 GET index.json5949 is expected to respond with 4005950 metrics recording5951 records the interception5952 GET trending5953 is expected to respond with 4005954 is expected to render template explore/projects/page_out_of_bounds5955 assigns the page number5956 GET trending.json5957 is expected to respond with 4005958 metrics recording5959 records the interception5960 GET starred5961 is expected to respond with 4005962 is expected to render template explore/projects/page_out_of_bounds5963 assigns the page number5964 GET starred.json5965 is expected to respond with 4005966 metrics recording5967 records the interception5968 page number is acceptable5969 GET index5970 is expected to respond with 2005971 is expected to render template explore/projects/index5972 GET index.json5973 is expected to respond with 2005974 GET trending5975 is expected to respond with 2005976 is expected to render template explore/projects/trending5977 GET trending.json5978 is expected to respond with 2005979 GET starred5980 is expected to respond with 2005981 is expected to render template explore/projects/starred5982 GET starred.json5983 is expected to respond with 2005984 GET index5985 avoids N+1 queries5986 GET trending5987 avoids N+1 queries5988 GET starred5989 avoids N+1 queries5990 user preference sorting5991 does not set sort order from user preference5992 restricted visibility level is public5993 redirects to login page5994 GET #index5995 when disable_anonymous_project_search is enabled5996 shows a flash message5997 when search param is not given5998 does not show a flash message5999 when format is not HTML6000 does not show a flash message6001 when disable_anonymous_project_search is disabled6002 does not show a flash message6003Ldap::OmniauthCallbacksController6004 allows sign in6005 creates an authentication event record6006 respects remember me checkbox6007 with sign in prevented6008 does not allow sign in6009 with 2FA6010 passes remember_me to the Devise view6011 access denied6012 warns the user6013 doesn't authenticate user6014 sign up6015 is allowed6016 enable admin mode6017 with a regular user6018 cannot be enabled6019 with an admin user6020 when requested first6021 can be enabled6022 when not requested first6023 cannot be enabled6024UploadsController6025 POST #authorize6026 behaves like handle uploads authorize6027 POST #authorize6028 when a user is not authorized to upload a file6029 returns 404 status6030 when id is not passed as a param6031 returns 404 status6032 when a user can upload a file6033 and the request bypassed workhorse6034 raises an exception6035 and request is sent by gitlab-workhorse to authorize the request6036 when using local storage6037 behaves like a local file6038 behaves like a valid response6039 responds with status 2006040 uses the gitlab-workhorse content type6041 responds with status 200, location of uploads store and object details6042 when using remote storage6043 when direct upload is enabled6044 behaves like a valid response6045 responds with status 2006046 uses the gitlab-workhorse content type6047 responds with status 200, location of uploads remote store and object details6048 when direct upload is disabled6049 behaves like a local file6050 behaves like a valid response6051 responds with status 2006052 uses the gitlab-workhorse content type6053 responds with status 200, location of uploads store and object details6054 POST create6055 snippet uploads6056 when a user does not have permissions to upload a file6057 returns 401 when the user is not logged in6058 returns 404 when user can't comment on a snippet6059 when a user is logged in6060 returns an error without file6061 returns an error with invalid model6062 returns 404 status when object not found6063 with valid image6064 returns a content with original filename, new link, and correct type.6065 creates a corresponding Upload record6066 with valid non-image file6067 returns a content with original filename, new link, and correct type.6068 creates a corresponding Upload record6069 user uploads6070 returns 401 when the user has no access6071 when user is logged in6072 returns a content with original filename, new link, and correct type.6073 creates a corresponding Upload record6074 returns 404 when given user is not the logged in one6075 with valid non-image file6076 returns a content with original filename, new link, and correct type.6077 creates a corresponding Upload record6078 GET show6079 Content-Disposition security measures6080 for PNG files6081 behaves like uploaded file with disposition6082 returns correct Content-Disposition6083 for PDF files6084 behaves like uploaded file with disposition6085 returns correct Content-Disposition6086 for SVG files6087 behaves like uploaded file with disposition6088 returns correct Content-Disposition6089 when viewing a user avatar6090 when signed in6091 when the user is blocked6092 responds with status 4016093 when the user isn't blocked6094 responds with status 2006095 behaves like content publicly cached6096 ensures content is publicly cached6097 when not signed in6098 responds with status 2006099 behaves like content publicly cached6100 ensures content is publicly cached6101 when viewing a project avatar6102 when the project is public6103 when not signed in6104 responds with status 2006105 behaves like content 5 min private cached with revalidation6106 ensures content will not be cached without revalidation6107 when signed in6108 responds with status 2006109 behaves like content 5 min private cached with revalidation6110 ensures content will not be cached without revalidation6111 when the project is private6112 when not signed in6113 responds with status 4016114 when signed in6115 when the user has access to the project6116 when the user is blocked6117 responds with status 4016118 when the user isn't blocked6119 responds with status 2006120 behaves like content 5 min private cached with revalidation6121 ensures content will not be cached without revalidation6122 when the user doesn't have access to the project6123 responds with status 4046124 when viewing a group avatar6125 when the group is public6126 when not signed in6127 responds with status 2006128 behaves like content 5 min private cached with revalidation6129 ensures content will not be cached without revalidation6130 when signed in6131 responds with status 2006132 behaves like content 5 min private cached with revalidation6133 ensures content will not be cached without revalidation6134 when the group is private6135 when signed in6136 when the user has access to the project6137 when the user is blocked6138 responds with status 4016139 when the user isn't blocked6140 responds with status 2006141 behaves like content 5 min private cached with revalidation6142 ensures content will not be cached without revalidation6143 when the user doesn't have access to the project6144 responds with status 4046145 when viewing a note attachment6146 when the project is public6147 when not signed in6148 responds with status 2006149 behaves like content not cached6150 ensures content will not be cached without revalidation6151 when signed in6152 responds with status 2006153 behaves like content not cached6154 ensures content will not be cached without revalidation6155 when the project is private6156 when not signed in6157 responds with status 4016158 when signed in6159 when the user has access to the project6160 when the user is blocked6161 responds with status 4016162 when the user isn't blocked6163 responds with status 2006164 behaves like content not cached6165 ensures content will not be cached without revalidation6166 when the user doesn't have access to the project6167 responds with status 4046168 when viewing a topic avatar6169 when signed in6170 responds with status 2006171 behaves like content publicly cached6172 ensures content is publicly cached6173 when not signed in6174 responds with status 2006175 behaves like content publicly cached6176 ensures content is publicly cached6177 Appearance6178 when viewing a custom header logo6179 when not signed in6180 responds with status 2006181 behaves like content publicly cached6182 ensures content is publicly cached6183 when viewing a custom logo6184 when not signed in6185 responds with status 2006186 behaves like content publicly cached6187 ensures content is publicly cached6188 original filename or a version filename must match6189 has a valid filename on the original file6190 successfully returns the file6191 has an invalid filename on the original file6192 returns a 4046193API::Lint6194 POST /ci/lint6195 when signup settings are disabled6196 when unauthenticated6197 returns authentication error6198 when authenticated6199 returns authorized6200 when authenticated as external user6201 when reporter in a project6202 returns authorization failure6203 when developer in a project6204 returns authorization success6205 when signup is enabled and not limited6206 when unauthenticated6207 returns authorized success6208 when authenticated6209 returns authentication success6210 when limited signup is enabled6211 when unauthenticated6212 returns unauthorized6213 when authenticated6214 returns authentication success6215 when authenticated6216 with valid .gitlab-ci.yaml content6217 passes validation without warnings or errors6218 outputs expanded yaml content6219 outputs jobs6220 with valid .gitlab-ci.yaml with warnings6221 passes validation but returns warnings6222 with an invalid .gitlab_ci.yml6223 with invalid syntax6224 responds with errors about invalid syntax6225 outputs expanded yaml content6226 outputs jobs6227 with invalid configuration6228 responds with errors about invalid configuration6229 outputs expanded yaml content6230 outputs jobs6231 without the content parameter6232 responds with validation error about missing content6233 GET /projects/:id/ci/lint6234 when unauthenticated6235 returns authentication error6236 when authenticated as non-member6237 when project is private6238 returns authentication error6239 when project is public6240 when running as dry run6241 returns pipeline creation error6242 when running static validation6243 behaves like valid config without warnings6244 passes validation6245 when authenticated as project guest6246 returns authentication error6247 when authenticated as project developer6248 with valid .gitlab-ci.yml content6249 when running as dry run6250 behaves like valid config without warnings6251 passes validation6252 when running static validation6253 behaves like valid config without warnings6254 passes validation6255 when running with include jobs6256 returns jobs key6257 behaves like valid config without warnings6258 passes validation6259 when running without include jobs6260 does not return jobs key6261 behaves like valid config without warnings6262 passes validation6263 With warnings6264 behaves like valid config with warnings6265 passes validation with warnings6266 with invalid .gitlab-ci.yml content6267 when running as dry run6268 behaves like invalid config6269 responds with errors about invalid configuration6270 when running static validation6271 behaves like invalid config6272 responds with errors about invalid configuration6273 when running with include jobs6274 returns jobs key6275 behaves like invalid config6276 responds with errors about invalid configuration6277 when running without include jobs6278 does not return jobs key6279 behaves like invalid config6280 responds with errors about invalid configuration6281 POST /projects/:id/ci/lint6282 with an empty repository6283 passes validation without errors6284 when unauthenticated6285 returns authentication error6286 when project is public6287 returns authentication error6288 when authenticated as non-member6289 when project is private6290 returns authentication error6291 when project is public6292 when running as dry run6293 returns authentication error6294 when running static validation6295 returns authentication error6296 when authenticated as project guest6297 returns authentication error6298 when authenticated as project developer6299 with valid .gitlab-ci.yml content6300 when running as dry run6301 behaves like valid project config6302 passes validation6303 when running static validation6304 behaves like valid project config6305 passes validation6306 when running with include jobs param6307 contains jobs key6308 behaves like valid project config6309 passes validation6310 when running without include jobs param6311 does not contain jobs key6312 behaves like valid project config6313 passes validation6314 with invalid .gitlab-ci.yml content6315 when running as dry run6316 behaves like invalid project config6317 responds with errors about invalid configuration6318 when running static validation6319 behaves like invalid project config6320 responds with errors about invalid configuration6321 when running with include jobs set to false6322 does not contain jobs key6323 behaves like invalid project config6324 responds with errors about invalid configuration6325 when running with param include jobs6326 contains jobs key6327 behaves like invalid project config6328 responds with errors about invalid configuration6329Projects::MergeRequests::DraftsController6330 GET #index6331 list merge request draft notes for current user6332 POST #create6333 creates a draft note6334 creates draft note with position6335 creates a draft note with quick actions6336 without permissions6337 does not allow draft note creation6338 in a thread6339 creates draft note as a reply6340 creates a draft note that will resolve a thread6341 cannot create more than one draft note per thread6342 commit_id is present6343 value is a commit sha6344 creates the draft note with commit ID6345 value is "undefined"6346 creates the draft note with nil commit ID6347 PUT #update6348 updates the draft6349 without permissions6350 does not allow editing draft note belonging to someone else6351 POST #publish6352 publishes draft notes with position6353 does nothing if there are no draft notes6354 publishes a draft note with quick actions and applies them6355 publishes all draft notes for an MR6356 can publish just a single draft note6357 without permissions6358 when note belongs to someone else6359 behaves like action that does not allow publishing draft note6360 does not allow publishing draft note6361 when merge request discussion is locked6362 behaves like action that does not allow publishing draft note6363 does not allow publishing draft note6364 when PublishService errors6365 returns message and 500 response6366 when publishing drafts in a thread6367 resolves a thread if the draft note resolves it6368 unresolves a thread if the draft note unresolves it6369 DELETE #destroy6370 destroys the draft note when ID is given6371 without permissions6372 does not allow destroying a draft note belonging to someone else6373 without permissions6374 does not allow editing draft note belonging to someone else6375 DELETE #discard6376 deletes all DraftNotes belonging to a user in a Merge Request6377 without permissions6378 does not destroys a draft note belonging to someone else6379Groups::GroupLinksController6380 #create6381 returns a 4046382 when user has correct access to both groups6383 updates project permissions6384 when default access level is requested6385 links group with selected group6386 redirects to group links page6387 allows access for group member6388 when owner access is requested6389 links group with selected group6390 redirects to group links page6391 allows access for group member6392 allows admin access for group member6393 when shared with group id is not present6394 redirects to group links page6395 when link is not persisted in the database6396 redirects to group links page6397 when user does not have access to the group6398 renders 4046399 when user does not have admin access to the shared group6400 renders 4046401 #update6402 returns a 4046403 when user has admin access to the shared group6404 updates existing link6405 updates project permissions6406 when `expires_at` is set6407 returns correct json response6408 when `expires_at` is not set6409 returns empty json response6410 when user does not have admin access to the shared group6411 renders 4046412 #destroy6413 returns a 4046414 when user has admin access to the shared group6415 deletes existing link6416 updates project permissions6417 when user does not have admin access to the shared group6418 renders 4046419Projects::DeployKeysController6420 GET index6421 when html requested6422 redirects to project settings with the correct anchor6423 when json requested6424 when user has access to all projects where deploy keys are used6425 returns json in a correct format6426 when user has no access to all projects where deploy keys are used6427 returns json in a correct format6428 POST create6429 creates a new deploy key for the project6430 redirects to project settings with the correct anchor6431 when the deploy key is invalid6432 shows an alert with the validations errors6433 /enable/:id6434 with anonymous user6435 redirects to login6436 with user with no permission6437 returns 4046438 with user with permission6439 returns 3026440 returns 4046441 with admin6442 returns 3026443 /disable/:id6444 with anonymous user6445 redirects to login6446 with user with no permission6447 returns 4046448 with user with permission6449 returns 3026450 returns 4046451 with admin6452 returns 3026453 PUT update6454 with project maintainer6455 public deploy key attached to project6456 does not update the title of the deploy key6457 updates can_push of deploy_keys_project6458 with admin6459 public deploy key attached to project6460 updates the title of the deploy key6461 updates can_push of deploy_keys_project6462 when a different deploy key id param is injected6463 and that deploy key id exists6464 does not update the can_push attribute6465 and that deploy key id does not exist6466 returns 4046467 with admin as project maintainer6468 public deploy key attached to project6469 updates can_push of deploy_keys_project6470 admin mode disabled6471 does not update the title of the deploy key6472 admin mode enabled6473 updates the title of the deploy key6474API::ProtectedBranches6475 GET /projects/:id/protected_branches6476 when authenticated as a maintainer6477 when search param is not present6478 behaves like protected branches6479 returns the protected branches6480 when search param is present6481 behaves like protected branches6482 returns the protected branches6483 when authenticated as a guest6484 behaves like 403 response6485 returns 4036486 GET /projects/:id/protected_branches/:branch6487 when authenticated as a maintainer6488 behaves like protected branch6489 returns the protected branch6490 when protected branch does not exist6491 behaves like 404 response6492 returns 4046493 when protected branch contains a wildcard6494 behaves like protected branch6495 returns the protected branch6496 when protected branch does not exist6497 behaves like 404 response6498 returns 4046499 when protected branch contains a period6500 behaves like protected branch6501 returns the protected branch6502 when protected branch does not exist6503 behaves like 404 response6504 returns 4046505 when authenticated as a guest6506 behaves like 403 response6507 returns 4036508 POST /projects/:id/protected_branches6509 when authenticated as a maintainer6510 protects a single branch6511 protects a single branch and developers can push6512 protects a single branch and developers can merge6513 protects a single branch and developers can push and merge6514 protects a single branch and no one can push6515 protects a single branch and no one can merge6516 protects a single branch and no one can push or merge6517 protects a single branch and allows force pushes6518 returns a 409 error if the same branch is protected twice6519 when branch has a wildcard in its name6520 protects multiple branches with a wildcard in the name6521 when a policy restricts rule deletion6522 prevents deletion of the protected branch rule6523 when authenticated as a guest6524 returns a 403 error if guest6525 DELETE /projects/:id/protected_branches/unprotect/:branch6526 unprotects a single branch6527 returns 404 if branch does not exist6528 behaves like 412 response6529 for a modified ressource6530 returns 412 with a JSON error6531 for an unmodified ressource6532 returns 204 with an empty body6533 when a policy restricts rule deletion6534 prevents deletion of the protected branch rule6535 when branch has a wildcard in its name6536 unprotects a wildcard branch6537Updating a Snippet6538 PersonalSnippet6539 behaves like graphql update actions6540 when the user does not have permission6541 does not update the Snippet6542 behaves like a mutation that returns top-level errors6543 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]6544 when the user has permission6545 updates the snippet record6546 updates the Snippet6547 when there are ActiveRecord validation errors6548 does not update the Snippet6549 returns the Snippet with its original values6550 behaves like a mutation that returns errors in the response6551 is expected to contain exactly "Title can't be blank"6552 behaves like a mutation which can mutate a spammable6553 #spam_params6554 passes spam params to the service constructor6555 #spam_action_response_fields6556 resolves with spam action fields6557 behaves like when the snippet is not found6558 behaves like a mutation that returns top-level errors6559 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]6560 behaves like snippet edit usage data counters6561 when user is sessionless6562 does not track usage data actions6563 when user is not sessionless6564 tracks usage data actions6565 when mutation result raises an error6566 does not track usage data actions6567 behaves like has spam protection6568 #check_spam_action_response!6569 when the object is spam (DISALLOW)6570 and no CAPTCHA is available6571 behaves like disallow response6572 informs the client that the request was denied as spam6573 and a CAPTCHA is required6574 behaves like disallow response6575 informs the client that the request was denied as spam6576 when the object is not spam (CONDITIONAL ALLOW)6577 and no CAPTCHA is required6578 does not return a top-level error6579 and a CAPTCHA is required6580 informs the client that the request may be retried after solving the CAPTCHA6581 ProjectSnippet6582 when the author is not a member of the project6583 returns an an error6584 when the author is a member of the project6585 behaves like graphql update actions6586 when the user does not have permission6587 does not update the Snippet6588 behaves like a mutation that returns top-level errors6589 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]6590 when the user has permission6591DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6592DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6593 updates the snippet record6594DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6595DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6596 updates the Snippet6597 when there are ActiveRecord validation errors6598DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6599DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6600 does not update the Snippet6601DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6602DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6603 returns the Snippet with its original values6604 behaves like a mutation that returns errors in the response6605DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6606DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6607 is expected to contain exactly "Title can't be blank"6608 behaves like a mutation which can mutate a spammable6609 #spam_params6610DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6611DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6612 passes spam params to the service constructor6613 #spam_action_response_fields6614DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6615DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6616 resolves with spam action fields6617 when the snippet project feature is disabled6618 returns an an error6619 behaves like snippet edit usage data counters6620 when user is sessionless6621DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6622DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6623 does not track usage data actions6624 when user is not sessionless6625DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6626DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6627 tracks usage data actions6628 when mutation result raises an error6629DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6630DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6631 does not track usage data actions6632 behaves like has spam protection6633 #check_spam_action_response!6634 when the object is spam (DISALLOW)6635 and no CAPTCHA is available6636 behaves like disallow response6637 informs the client that the request was denied as spam6638 and a CAPTCHA is required6639 behaves like disallow response6640 informs the client that the request was denied as spam6641 when the object is not spam (CONDITIONAL ALLOW)6642 and no CAPTCHA is required6643DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6644DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6645 does not return a top-level error6646 and a CAPTCHA is required6647 informs the client that the request may be retried after solving the CAPTCHA6648 behaves like when the snippet is not found6649 behaves like a mutation that returns top-level errors6650 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]6651API::DeployTokens6652 GET /deploy_tokens6653 when unauthenticated6654 is expected to respond with numeric status code unauthorized6655 when authenticated as non-admin user6656 is expected to respond with numeric status code forbidden6657 when authenticated as admin6658 is expected to respond with numeric status code ok6659 returns all deploy tokens6660 and active=true6661 only returns active deploy tokens6662 GET /projects/:id/deploy_tokens6663 when unauthenticated6664 is expected to respond with numeric status code not_found6665 when authenticated as non-admin user6666 is expected to respond with numeric status code forbidden6667 when authenticated as maintainer6668 is expected to respond with numeric status code ok6669 returns all deploy tokens for the project6670 does not return deploy tokens for other projects6671 and active=true6672 only returns active deploy tokens for the project6673 GET /groups/:id/deploy_tokens6674 when unauthenticated6675 is expected to respond with numeric status code forbidden6676 when authenticated as non-admin user6677 is expected to respond with numeric status code forbidden6678 when authenticated as maintainer6679 is expected to respond with numeric status code ok6680 returns all deploy tokens for the group6681 does not return deploy tokens for other groups6682 and active=true6683 only returns active deploy tokens for the group6684 DELETE /projects/:id/deploy_tokens/:token_id6685 when unauthenticated6686 is expected to respond with numeric status code not_found6687 when authenticated as non-admin user6688 is expected to respond with numeric status code forbidden6689 when authenticated as maintainer6690 is expected to respond with numeric status code no_content6691 calls the deploy token destroy service6692 invalid request6693 returns not found with invalid group id6694 returns bad_request with invalid token id6695 deploy token creation6696 POST /projects/:id/deploy_tokens6697 behaves like creating a deploy token6698 when unauthenticated6699 is expected to respond with numeric status code not_found6700 when authenticated as non-admin user6701 is expected to respond with numeric status code forbidden6702 when authenticated as maintainer6703 creates the deploy token6704 with no optional params given6705 creates the deploy token with default values6706 with an invalid scope6707 is expected to respond with numeric status code bad_request6708 POST /groups/:id/deploy_tokens6709 behaves like creating a deploy token6710 when unauthenticated6711 is expected to respond with numeric status code forbidden6712 when authenticated as non-admin user6713 is expected to respond with numeric status code forbidden6714 when authenticated as owner6715 creates the deploy token6716 with no optional params given6717 creates the deploy token with default values6718 with an invalid scope6719 is expected to respond with numeric status code bad_request6720 when authenticated as maintainer6721 is expected to respond with numeric status code forbidden6722 DELETE /groups/:id/deploy_tokens/:token_id6723 when unauthenticated6724 is expected to respond with numeric status code forbidden6725 when authenticated as non-admin user6726 is expected to respond with numeric status code forbidden6727 when authenticated as maintainer6728 is expected to respond with numeric status code forbidden6729 when authenticated as owner6730 calls the deploy token destroy service6731 invalid request6732 returns bad request with invalid group id6733 returns not found with invalid deploy token id6734getting container repositories in a project6735DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6736DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6737DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6738DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6739DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6740DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6741DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6742DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6743DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6744DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6745 returns the total count of container repositories6746 behaves like a working graphql query6747DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6748DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6749DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6750DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6751DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6752DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6753DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6754DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6755DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6756DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6757 returns a successful response6758DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6759DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6760DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6761DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6762DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6763DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6764DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6765DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6766DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6767DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6768 matches the JSON schema6769 with different permissions6770 project_visibility: :private, role: :maintainer, access_granted: true, can_delete: true6771DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6772DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6773DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6774DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6775DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6776DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6777DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6778DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6779DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6780DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6781 return the proper response6782 project_visibility: :private, role: :developer, access_granted: true, can_delete: true6783DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6784DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6785DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6786DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6787DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6788DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6789DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6790DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6791DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6792DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6793 return the proper response6794 project_visibility: :private, role: :reporter, access_granted: true, can_delete: false6795DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6796DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6797DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6798DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6799DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6800DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6801DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6802DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6803DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6804DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6805 return the proper response6806 project_visibility: :private, role: :guest, access_granted: false, can_delete: false6807 return the proper response6808 project_visibility: :private, role: :anonymous, access_granted: false, can_delete: false6809 return the proper response6810 project_visibility: :public, role: :maintainer, access_granted: true, can_delete: true6811DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6812DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6813DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6814DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6815DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6816DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6817DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6818DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6819DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6820DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6821 return the proper response6822 project_visibility: :public, role: :developer, access_granted: true, can_delete: true6823DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6824DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6825DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6826DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6827DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6828DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6829DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6830DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6831DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6832DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6833 return the proper response6834 project_visibility: :public, role: :reporter, access_granted: true, can_delete: false6835DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6836DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6837DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6838DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6839DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6840DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6841DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6842DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6843DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6844DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6845 return the proper response6846 project_visibility: :public, role: :guest, access_granted: true, can_delete: false6847DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6848DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6849DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6850DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6851DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6852DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6853DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6854DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6855DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6856DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6857 return the proper response6858 project_visibility: :public, role: :anonymous, access_granted: true, can_delete: false6859DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6860DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6861DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6862DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6863DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6864DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6865DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6866DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6867DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6868DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6869 return the proper response6870 limiting the number of repositories6871DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6872DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6873 only returns N repositories6874 filter by name6875DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6876DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6877 returns the searched container repository6878 behaves like handling graphql network errors with the container registry6879 returns a connection error6880 behaves like not hitting graphql network errors with the container registry6881DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6882DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6883DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6884DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6885DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6886DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6887DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6888DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6889DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6890DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6891 does not return any error6892 sorting and pagination6893 when sorting by name6894 when ascending6895 behaves like sorted paginated query6896 behaves like requires variables6897 shared example requires variables to be set6899 when sorting6900 sorts correctly6901 when paginating6902 paginates correctly6903 when descending6904 behaves like sorted paginated query6905 behaves like requires variables6906 shared example requires variables to be set6908 when sorting6909 sorts correctly6910 when paginating6911 paginates correctly6912Projects::Prometheus::AlertsController6913 GET #index6914 when project has no prometheus alert6915 returns an empty response6916 when project has prometheus alerts6917 contains prometheus alerts only for the production environment6918 contains prometheus alerts only for the staging environment6919 does not return prometheus alerts without environment6920 behaves like unprivileged6921 returns not_found6922 behaves like project non-specific environment6923 returns ok6924 returns no prometheus alerts6925 GET #show6926 when alert does not exist6927 returns not_found6928 when alert exists6929 renders the alert6930 behaves like unprivileged6931 returns not_found6932 behaves like project non-specific environment6933 returns not_found6934 behaves like project non-specific metric6935 returns not_found6936 POST #notify6937 returns ok if notification succeeds6938 returns unprocessable entity if notification fails6939 bearer token6940 when set6941 extracts bearer token6942 pass nil if cannot extract a non-bearer token6943 when missing6944 passes nil6945 POST #create6946 creates a new prometheus alert6947 returns bad_request for an invalid metric6948 behaves like unprivileged6949 returns not_found6950 behaves like project non-specific environment6951 returns bad_request6952 PUT #update6953 updates an already existing prometheus alert6954 returns bad_request for an invalid alert data6955 behaves like unprivileged6956 returns not_found6957 behaves like project non-specific environment6958 returns not_found6959 behaves like project non-specific metric6960 returns not_found6961 DELETE #destroy6962 destroys the specified prometheus alert6963 behaves like unprivileged6964 returns not_found6965 behaves like project non-specific environment6966 returns not_found6967 behaves like project non-specific metric6968 returns not_found6969 GET #metrics_dashboard6970 returns a json object with the correct keys6971 is the correct embed6972 finds the first alert embed without environment_id6973 returns 404 for non-existant alerts6974Import::BitbucketController6975 GET callback6976 updates access token6977 GET status6978 returns invalid repos6979 behaves like import controller status6980 returns variables for json request6981 when filtering6982 passes sanitized filter param to bitbucket client6983 POST create6984 returns 200 response when the project is imported successfully6985 returns 422 response when the project could not be imported6986 behaves like project import rate limiter6987 when limit exceeds6988 notifies and redirects user6989 when the repository owner is the Bitbucket user6990 when the Bitbucket user and GitLab user's usernames match6991 takes the current user's namespace6992 when the Bitbucket user and GitLab user's usernames don't match6993 takes the current user's namespace6994 when the Bitbucket user is unauthorized6995 returns unauthorized6996 when the repository owner is not the Bitbucket user6997 when a namespace with the Bitbucket user's username already exists6998 when the namespace is owned by the GitLab user6999 takes the existing namespace7000 when the namespace is not owned by the GitLab user7001 doesn't create a project7002 when a namespace with the Bitbucket user's username doesn't exist7003 when current user can create namespaces7004 creates the namespace7005 takes the new namespace7006 when current user can't create namespaces7007 doesn't create the namespace7008 takes the current user's namespace7009 when exceptions occur7010 for OAuth2 errors7011 behaves like handles exceptions7012 logs an exception7013 for Bitbucket errors7014 behaves like handles exceptions7015 logs an exception7016 user has chosen an existing nested namespace and name for the project7017 takes the selected namespace and name7018 user has chosen a non-existent nested namespaces and name for the project7019 takes the selected namespace and name7020 creates the namespaces7021 new namespace has the right parent7022 user has chosen existent and non-existent nested namespaces and name for the project7023 takes the selected namespace and name7024 creates the namespaces7025 when user can not create projects in the chosen namespace7026 returns 422 response7027Adding an image DiffNote7028 behaves like a Note mutation when the user does not have permission7029 behaves like a Note mutation that does not create a Note7030 is expected not to change `Note.count`7031 behaves like a mutation that returns top-level errors7032 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]7033 when the user has permission7034DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7035DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7036 returns the note with the correct position7037 behaves like a Note mutation that creates a Note7038DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7039DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7040 is expected to change `Note.count` by 17041 behaves like a Note mutation when there are active record validation errors7042 returns an empty Note7043 behaves like a Note mutation that does not create a Note7044 is expected not to change `Note.count`7045 behaves like a mutation that returns errors in the response7046 is expected to contain exactly "Error 1" and "Error 2"7047 behaves like a Note mutation when there are rate limit validation errors7048 with rate limiter7049 behaves like a Note mutation that does not create a Note7050DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7051DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7052DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7053DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7054DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7055DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7056 is expected not to change `Note.count`7057 behaves like a mutation that returns top-level errors7058DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7059DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7060DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7061DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7062DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7063DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7064 is expected to eq ["This endpoint has been requested too many times. Try again later."]7065 when the user is in the allowlist7066 behaves like a Note mutation that creates a Note7067DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7068DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7069DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7070DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7071DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7072DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7073DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7074DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7075 is expected to change `Note.count` by 17077 behaves like a Note mutation when the given resource id is not for a Noteable7078 behaves like a Note mutation that does not create a Note7079 is expected not to change `Note.count`7080 behaves like a mutation that returns top-level errors7081 is expected to include / does not represent an instance of Noteable/7082API::Environments7083 GET /projects/:id/environments7084 as member of the project7085 returns project environments7086 when the user can read pod logs7087 with successful deployment on cluster7088 returns environment with enable_advanced_logs_querying and logs_api_path7089 when elastic stack is available7090 returns environment with enable_advanced_logs_querying and logs_api_path7091 when elastic stack is not available7092 returns environment with enable_advanced_logs_querying logs_api_path7093 when the user cannot read pod logs7094 does not contain enable_advanced_logs_querying7095 when filtering7096 returns environment by name7097 returns no environment by non-existent name7098 returns environments by name_like7099 returns no environment by non-existent name_like7100 as non member7101 returns a 404 status code7102 POST /projects/:id/environments7103 as a member7104 creates a environment with valid params7105 requires name to be passed7106 returns a 400 if environment already exists7107 returns a 400 if slug is specified7108 a non member7109 rejects the request7110 returns a 400 when the required params are missing7111 PUT /projects/:id/environments/:environment_id7112 returns a 200 if name and external_url are changed7113 won't allow slug to be changed7114 won't update the external_url if only the name is passed7115 returns a 404 if the environment does not exist7116 DELETE /projects/:id/environments/:environment_id7117 as a maintainer7118 rejects the requests in environment isn't stopped7119 returns a 204 for stopped environment7120 returns a 404 for non existing id7121 behaves like 412 response7122 for a modified ressource7123 returns 412 with a JSON error7124 for an unmodified ressource7125 returns 204 with an empty body7126 a non member7127 rejects the request7128 POST /projects/:id/environments/:environment_id/stop7129 as a maintainer7130 returns a 404 for non existing id7131 with a stoppable environment7132 returns a 2007133 actually stops the environment7134 a non member7135 rejects the request7136 GET /projects/:id/environments/:environment_id7137 as member of the project7138 returns project environments7139 as non member7140 returns a 404 status code7141 DELETE /projects/:id/environments/review_apps7142 as a maintainer7143 behaves like delete stopped review environments7144 deletes the old stopped review apps7145 as a developer7146 behaves like delete stopped review environments7147 deletes the old stopped review apps7148 as a reporter7149 rejects the request7150 as a non member7151 rejects the request7152API::FeatureFlagsUserLists7153 GET /projects/:id/feature_flags_user_lists7154 forbids the request for a reporter7155 returns forbidden if the feature is unavailable7156 returns all the user lists7157 returns all the data for a user list7158 paginates user lists7159 returns the user lists for only the specified project7160 returns an empty list7161 when filtering7162 returns lists matching the search term7163 returns lists matching multiple search terms7164 returns all lists with no query7165 GET /projects/:id/feature_flags_user_lists/:iid7166 forbids the request for a reporter7167 returns forbidden if the feature is unavailable7168 returns the user list7169 returns the correct user list identified by the iid7170 scopes the iid search to the project7171 returns not found when the list does not exist7172 POST /projects/:id/feature_flags_user_lists7173 forbids the request for a reporter7174 returns forbidden if the feature is unavailable7175 creates the flag7176 requires name7177 requires user_xids7178 returns an error when name is already taken7179 does not create a flag for a project of which the developer is not a member7180 PUT /projects/:id/feature_flags_user_lists/:iid7181 forbids the request for a reporter7182 returns forbidden if the feature is unavailable7183 updates the list7184 preserves attributes not listed in the request7185 returns an error when the update is invalid7186 returns not found when the list does not exist7187 DELETE /projects/:id/feature_flags_user_lists/:iid7188 forbids the request for a reporter7189 returns forbidden if the feature is unavailable7190 returns not found when the list does not exist7191 deletes the list7192 does not delete the list if it is associated with a strategy7193API::FeatureFlags7194 GET /projects/:id/feature_flags7195 when there are two feature flags7196 returns feature flags ordered by name7197 returns the legacy flag version7198 does not have N+1 problem7199 behaves like check user permission7200 when user is reporter7201 forbids the request7202 with version 2 feature flags7203 returns the feature flags7204 GET /projects/:id/feature_flags/:name7205 when there is a feature flag7206 returns a feature flag entry7207 behaves like check user permission7208 when user is reporter7209 forbids the request7210 with a version 2 feature_flag7211 returns the feature flag7212 POST /projects/:id/feature_flags7213 creates a new feature flag7214 defaults to a version 2 (new) feature flag7215 returns version7216 behaves like check user permission7217 when user is reporter7218 forbids the request7219 when there is a feature flag with the same name already7220 fails to create a new feature flag7221 when creating a version 2 feature flag7222 creates a new feature flag7223 creates a new feature flag that is inactive7224 creates a new feature flag with strategies7225 creates a new feature flag with gradual rollout strategy with scopes7226 creates a new feature flag with flexible rollout strategy with scopes7227 when given invalid parameters7228 responds with a 400 when given an invalid version7229 PUT /projects/:id/feature_flags/:name7230 with a version 2 feature flag7231 returns a 404 if the feature flag does not exist7232 forbids a request for a reporter7233 returns an error for an invalid update of gradual rollout7234 returns an error for an invalid update of flexible rollout7235 updates the feature flag7236 updates the flag active value7237 updates the feature flag name7238 ignores a provided version parameter7239 returns the feature flag json7240 updates an existing feature flag strategy to be gradual rollout strategy7241 updates an existing feature flag strategy to be flexible rollout strategy7242 adds a new gradual rollout strategy to a feature flag7243 adds a new gradual flexible strategy to a feature flag7244 deletes a feature flag strategy7245 updates an existing feature flag scope7246 deletes an existing feature flag scope7247 DELETE /projects/:id/feature_flags/:name7248 destroys the feature flag7249 returns version7250 with a version 2 feature flag7251 destroys the flag7252Projects::DesignManagement::Designs::RawImagesController7253 GET #show7254 when the design is not an LFS file7255 serves files with `Content-Disposition` header set to attachment plus the filename7256 serves files with Workhorse7257 behaves like project cache control headers7258 when project is public7259 returns cache_control public header to true7260 when project is private7261 returns cache_control public header to true7262 when project is internal7263 returns cache_control public header to true7264 when the user does not have permission7265 is expected to respond with numeric status code not_found7266 when design does not exist7267 is expected to respond with numeric status code not_found7268 sha param7269 is expected not to eq "58da8c6a2673f0943b18b16aeda88d31bc1c4dda"7270 when sha is the newest version sha7271 behaves like a successful request for sha7272 is expected to respond with numeric status code ok7273 when sha is the oldest version sha7274 behaves like a successful request for sha7275 is expected to respond with numeric status code ok7276 when sha is nil7277 behaves like a successful request for sha7278 is expected to respond with numeric status code ok7279 when the design is an LFS file7280 serves files with `Content-Disposition: attachment`7281 sets appropriate caching headers7282 behaves like a controller that can serve LFS files7283 when lfs is enabled7284 when the project is linked to the LfsObject7285 serves the file7286 and lfs uses object storage7287 responds with redirect to file7288 sets content disposition7289 when project is not linked to the LfsObject7290 does not serve the file7291 when the project is part of a fork network7292 when the project is the root of the fork network7293 behaves like a controller that correctly serves lfs files within a fork network7294 is expected not to eq #<Project id:460 namespace286/project463>>7295 does not serve the file if no members are linked to the LfsObject7296 serves the file when the fork network root is linked to the LfsObject7297 serves the file when the fork network member is linked to the LfsObject7298 when the project is a downstream member of the fork network7299 behaves like a controller that correctly serves lfs files within a fork network7300 is expected not to eq #<Project id:465 namespace291/project468>>7301 does not serve the file if no members are linked to the LfsObject7302 serves the file when the fork network root is linked to the LfsObject7303 serves the file when the fork network member is linked to the LfsObject7304 when lfs is not enabled7305 delivers ASCII file (PENDING: Calling spec asked to skip testing LFS disabled scenario)7306API::IssueLinks7307 GET /links7308 when unauthenticated7309 returns 4017310 when authenticated7311 returns related issues7312 returns multiple links without N + 17313 POST /links7314 when unauthenticated7315 returns 4017316 when authenticated7317 given target project not found7318 returns 4047319 given target issue not found7320 returns 4047321 when user does not have write access to given issue7322 returns 4047323 when trying to relate to a confidential issue7324 returns 4047325 when trying to relate to a private project issue7326 returns 4047327 when user has ability to create an issue link7328 returns 201 status and contains the expected link response7329 returns 201 when sending full path of target project7330 DELETE /links/:issue_link_id7331 when unauthenticated7332 returns 4017333 when authenticated7334 when user does not have write access to given issue link7335 returns 4047336 issue link not found7337 returns 4047338 when trying to delete a link with a private project issue7339 returns 4047340 when user has ability to delete the issue link7341 returns 2007342Groups::BoardsController7343 GET index7344 creates a new board when group does not have one7345 pushes swimlanes_buffered_rendering feature flag7346 when format is HTML7347 renders template7348 with unauthorized user7349 returns a not found 404 response7350 when user is signed out7351 renders template7352 when format is JSON7353 return an array with one group board7354 with unauthorized user7355 returns a not found 404 response7356 behaves like disabled when using an external authorization service7357 works when the feature is not enabled7358 renders a 404 with a message when the feature is enabled7359 GET show7360 pushes swimlanes_buffered_rendering feature flag7361 when format is HTML7362 renders template7363 with unauthorized user7364 returns a not found 404 response7365 when user is signed out7366 does not save visit7367 when format is JSON7368 returns project board7369 with unauthorized user7370 returns a not found 404 response7371 when board does not belong to group7372 returns a not found 404 response7373 behaves like disabled when using an external authorization service7374 works when the feature is not enabled7375 renders a 404 with a message when the feature is enabled7376API::Namespaces7377 GET /namespaces7378 when unauthenticated7379 returns authentication error7380 when authenticated as admin7381 returns correct attributes7382 admin: returns an array of all namespaces7383 admin: returns an array of matched namespaces7384 when authenticated as a regular user7385 returns correct attributes when user can admin group7386 returns correct attributes when user cannot admin group7387 user: returns an array of namespaces7388 admin: returns an array of matched namespaces7389 with owned_only param7390 returns only owned groups7391 GET /namespaces/:id7392 when unauthenticated7393 returns authentication error7394 returns authentication error7395 when authenticated as regular user7396 when requested namespace is not owned by user7397 when requesting group7398 returns not-found7399 when requesting personal namespace7400 returns not-found7401 when requested namespace is owned by user7402 behaves like namespace reader7403 when namespace exists7404 when requested by ID7405 when requesting group7406 behaves like can access namespace7407 returns namespace details7408 when requesting personal namespace7409 behaves like can access namespace7410 returns namespace details7411 when requesting project_namespace7412 returns not-found7413 when requested by path7414 when requesting group7415 behaves like can access namespace7416 returns namespace details7417 when requesting personal namespace7418 behaves like can access namespace7419 returns namespace details7420 when requesting project_namespace7421 returns not-found7422 when namespace doesn't exist7423 returns not-found7424 when authenticated as admin7425 when requested namespace is not owned by user7426 when requesting group7427 behaves like can access namespace7428 returns namespace details7429 when requesting personal namespace7430 behaves like can access namespace7431 returns namespace details7432 when requested namespace is owned by user7433 behaves like namespace reader7434 when namespace exists7435 when requested by ID7436 when requesting group7437 behaves like can access namespace7438 returns namespace details7439 when requesting personal namespace7440 behaves like can access namespace7441 returns namespace details7442 when requesting project_namespace7443 returns not-found7444 when requested by path7445 when requesting group7446 behaves like can access namespace7447 returns namespace details7448 when requesting personal namespace7449 behaves like can access namespace7450 returns namespace details7451 when requesting project_namespace7452 returns not-found7453 when namespace doesn't exist7454 returns not-found7455 GET /namespaces/:namespace/exists7456 when unauthenticated7457 returns authentication error7458 when requesting project_namespace7459 returns authentication error7460 when authenticated7461 returns JSON indicating the namespace exists and a suggestion7462 returns JSON indicating the namespace does not exist without a suggestion7463 checks the existence of a namespace in case-insensitive manner7464 checks the existence within the parent namespace only7465 ignores nested namespaces when checking for top-level namespace7466 ignores top-level namespaces when checking with parent_id7467 ignores namespaces of other parent namespaces when checking with parent_id7468 when requesting project_namespace7469 returns JSON indicating the namespace does not exist without a suggestion7470Projects::MetricsDashboardController7471 GET /:namespace/:project/-/metrics7472 redirects to default environment's metrics dashboard7473 assigns default_environment7474 retains existing parameters when redirecting7475 with anonymous user and public dashboard visibility7476 returns 2007477 GET /:namespace/:project/-/metrics?environment=:environment.id7478 returns 2007479 assigns query param environment7480 when query param environment does not exist7481 responds with 4047482 GET /:namespace/:project/-/metrics/:dashboard_path7483 returns 2007484 assigns environment7485 GET :/namespace/:project/-/metrics/:dashboard_path?environment=:environment.id7486 returns 2007487 assigns query param environment7488 when query param environment does not exist7489 responds with 4047490 GET :/namespace/:project/-/metrics/:page7491 returns 200 with path param page7492 returns 200 with dashboard and path param page7493Admin::ProjectsController7494 GET /projects7495 retrieves the project for the given visibility level7496 does not retrieve the project7497 retrieves archived and non archived corrupted projects when last_repository_check_failed is true7498 does not respond with projects pending deletion7499 does not have N+1 queries7500 GET /projects.json7501 is expected to respond with 2007502 GET /projects/:id7503 renders show page7504 PUT /projects/transfer/:id7505 updates namespace7506 when project transfer fails7507 flashes error7508Emails::Issues7509 adds email methods to Notify7510 #import_issues_csv_email7511 shows number of successful issues imported7512 shows error when file is invalid7513 shows line numbers with errors7514 with header and footer7515 behaves like appearance header and footer enabled7516 contains header and footer7517 behaves like appearance header and footer not enabled7518 does not contain header and footer7519 #issues_csv_email7520 attachment has csv mime type7521 generates a useful filename7522 mentions number of issues and project name7523 doesn't need to mention truncation by default7524 when truncated7525 mentions that the csv has been truncated7526 mentions the number of issues written and expected7527Projects::TracingsController7528 GET show7529 with maintainer role7530 behaves like user with read access7531 with a public project and developer role7532 renders OK7533 with a public project and maintainer role7534 renders OK7535 behaves like user with read access7536 with a internal project and developer role7537 renders OK7538 with a internal project and maintainer role7539 renders OK7540 behaves like user with read access7541 with a private project and developer role7542 renders OK7543 with a private project and maintainer role7544 renders OK7545 without maintainer role7546 behaves like user without read access7547 with a public project and guest role7548 returns 4047549 with a public project and reporter role7550 returns 4047551 behaves like user without read access7552 with a internal project and guest role7553 returns 4047554 with a internal project and reporter role7555 returns 4047556 behaves like user without read access7557 with a private project and guest role7558 returns 4047559 with a private project and reporter role7560 returns 4047561getting notes for a merge request7562 behaves like exposing regular notes on a noteable in GraphQL7563 for regular notes7564 includes the note7565 behaves like a working graphql query7566 returns a successful response7567 for discussions7568DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7569DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7570DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7571DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7572 includes all discussion notes7573 behaves like a working graphql query7574DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7575DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7576DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7577DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7578 returns a successful response7579 diff notes on a merge request7580DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7581DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7582 includes the note7583 behaves like a working graphql query7584DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7585DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7586 returns a successful response7587 the position of the diffnote7588DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7589DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7590 includes a correct position7591 with a note on an image7592DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7593DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7594 includes a correct position7595Projects::HooksController7596 #index7597 renders index with 200 status code7598 #edit7599 does not error if the hook cannot be found7600 assigns hook_logs7601 handles when logs are present7602 can paginate logs7603 #create7604 sets all parameters7605 DELETE #destroy7606 behaves like Web hook destroyer7607 displays a message about synchronous delete7608 displays a message about async delete7609 displays an error if deletion failed7610 #test7611 when the endpoint receives requests above the limit7612 prevents making test requests7613Groups::Settings::ApplicationsController7614 GET #index7615 when user is owner7616 renders the application form7617 when user is not owner7618 renders a 4047619 GET #edit7620 when user is owner7621 renders the application form7622 when user is not owner7623 renders a 4047624 POST #create7625 when user is owner7626 creates the application7627 renders the application form on errors7628 when the params are for a confidential application7629 creates a confidential application7630 when scopes are not present7631 renders the application form on errors7632 when user is not owner7633 renders a 4047634 PATCH #update7635 when user is owner7636 updates the application7637 renders the application form on errors7638 when updating the application to be confidential7639 successfully sets the application to confidential7640 when user is not owner7641 renders a 4047642 DELETE #destroy7643 when user is owner7644 deletes the application7645 when user is not owner7646 renders a 4047647Projects::RunnersController7648 #update7649 updates the runner and ticks the queue7650 #destroy7651 destroys the runner7652 #resume7653 marks the runner as active and ticks the queue7654 #pause7655 marks the runner as inactive and ticks the queue7656 #toggle_shared_runners7657 toggles shared_runners_enabled when the group allows shared runners7658 toggles shared_runners_enabled when the group disallows shared runners but allows overrides7659 does not enable if the group disallows shared runners7660Admin::Ci::VariablesController7661 GET #show7662 when signed in as admin7663 renders the variables as json7664 has only one variable7665 when signed in as regular user7666 returns 4047667 PATCH #update7668 when signed in as admin7669 with invalid new variable parameters7670 does not update the existing variable7671 does not create the new variable7672 returns a bad request response7673 with duplicate new variable parameters7674 does not update the existing variable7675 does not create the new variable7676 returns a bad request response7677 with valid new variable parameters7678 updates the existing variable7679 creates the new variable7680 returns a successful response7681 has all variables in response7682 with a deleted variable7683 destroys the variable7684 returns a successful response7685 has all variables in response7686 with missing variable7687 returns not found response7688 for variables of type file7689 creates new variable of type file7690 when signed in as regular user7691 returns 4047692Projects::ErrorTrackingController7693 GET #index7694 html7695 renders index with 200 status code7696 with insufficient permissions7697 returns 4047698 with an anonymous user7699 redirects to sign-in page7700 format json7701 no data7702 returns no data7703 with extra params7704 service result is successful7705 returns a list of errors7706 behaves like sets the polling header7707 is expected to eq "1000"7708 without extra params7709 service result is successful7710 returns a list of errors7711 service result is erroneous7712 without http_status7713 returns 400 with message7714 with explicit http_status7715 returns http_status with message7716 GET #issue_details7717 format json7718 no data7719 returns no data7720 behaves like sets the polling header7721 is expected to eq "1000"7722 service result is successful7723 returns an error7724 behaves like sets the polling header7725 is expected to eq "1000"7726 service result is erroneous7727 without http_status7728 returns 400 with message7729 with explicit http_status7730 returns http_status with message7731 PUT #update7732 format json7733 update result is successful7734 returns a success7735 update result is erroneous7736 returns 400 with message7737Emails::AutoDevops7738 #auto_devops_disabled_email7739 sents email with correct subject7740 sents an email to the user7741 is sent as GitLab email7742 behaves like appearance header and footer enabled7743 contains header and footer7744 behaves like appearance header and footer not enabled7745 does not contain header and footer7746Users::TermsController7747 GET #index7748 when a user is signed in7749 redirects when no terms exist7750 when terms exist7751 shows terms when they exist7752 shows a message when the user already accepted the terms7753 when a user is not signed in7754 when terms exist7755 returns success response7756 when no terms exist7757 redirects7758 POST #accept7759 when a user is signed in7760 saves that the user accepted the terms7761 redirects to a path when specified7762 redirects to the referer when no redirect specified7763 redirecting to another domain7764 is prevented when passing a redirect param7765 is prevented when redirecting to the referer7766 when a user is not signed in7767 redirects to login page7768 POST #decline7769 when a user is signed in7770 stores that the user declined the terms7771 signs out the user7772 when a user is not signed in7773 redirects to login page7774API::RemoteMirrors7775 GET /projects/:id/remote_mirrors7776 requires `admin_remote_mirror` permission7777 returns a list of remote mirrors7778 POST /projects/:id/remote_mirrors7779 requires `admin_remote_mirror` permission7780 returns error if url is invalid7781 creates a remote mirror7782 disabled by default7783 behaves like creates a remote mirror7784 creates a remote mirror and returns reponse7785 enabled7786 behaves like creates a remote mirror7787 creates a remote mirror and returns reponse7788 PUT /projects/:id/remote_mirrors/:mirror_id7789 requires `admin_remote_mirror` permission7790 updates a remote mirror7791API::Internal::Kubernetes7792 POST /internal/kubernetes/usage_metrics7793 not authenticated7794 returns 4017795 kubernetes_agent_internal_api feature flag disabled7796 returns 4047797 is authenticated for an agent7798 returns no_content for valid events7799 returns no_content for counts of zero7800 returns 400 for non number7801 returns 400 for negative number7802 POST /internal/kubernetes/agent_configuration7803 not authenticated7804 returns 4017805 kubernetes_agent_internal_api feature flag disabled7806 returns 4047807 agent exists7808 configures the agent and returns a 2047809 agent does not exist7810 returns a 4047811 GET /internal/kubernetes/agent_info7812 returns 401 if Authorization header not sent7813 returns 401 if Authorization is for non-existent agent7814 not authenticated7815 returns 4017816 kubernetes_agent_internal_api feature flag disabled7817 returns 4047818 an agent is found7819 returns expected data7820CiCdSettingsUpdate7821 when unauthorized7822 when not a project member7823 behaves like unauthorized7824 returns an error7825 when a non-admin project member7826 behaves like unauthorized7827 returns an error7828 when authorized7829DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7830DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7831 updates ci cd settings7832DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7833DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7834 updates job_token_scope_enabled7835DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7836DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7837 does not update job_token_scope_enabled if not specified7838 when bad arguments are provided7839 returns the errors7840Mutations::Labels::Create7841 when creating a project label7842 behaves like labels create mutation7843 when the user does not have permission to create a label7844 does not create the label7845 behaves like a mutation that returns a top-level access error7846 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]7847 when the user has permission to create a label7848 when the parent (project_path or group_path) param is given7849 creates the label7850 does not create a label when there are errors7851 when creating a group label7852 behaves like labels create mutation7853 when the user does not have permission to create a label7854 does not create the label7855 behaves like a mutation that returns a top-level access error7856 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]7857 when the user has permission to create a label7858 when the parent (project_path or group_path) param is given7859 creates the label7860 does not create a label when there are errors7861 when neither project_path nor group_path param is given7862 does not create the label7863 behaves like a mutation that returns top-level errors7864 is expected to eq ["Exactly one of group_path or project_path arguments is required"]7865merge request content spec7866 GET cached_widget7867 behaves like cached widget request7868 avoids N+1 queries when multiple job artifacts are present7869 with non_public_artifacts disabled7870 behaves like cached widget request7871 avoids N+1 queries when multiple job artifacts are present7872API::GroupAvatar7873 GET /groups/:id/avatar7874 when the group is public7875 retrieves the avatar successfully7876 when the avatar is in the object storage7877 redirects to the file in the object storage7878 when the group does not have avatar7879 returns :not_found7880 when the group is a subgroup7881 returns :ok7882 when the group is private7883 when the user is not authenticated7884 returns :not_found7885 when the the group user is authenticated7886 and have access to the group7887 retrieves the avatar successfully7888 and does not have access to the group7889 returns :not_found7890getting milestone listings nested in a project7891 behaves like a working graphql query7892 returns a successful response7893 there are no search params7894 behaves like searching with parameters7895 finds the right milestones7896 the search params do not match anything7897 behaves like searching with parameters7898 finds the right milestones7899 searching by state:closed7900 behaves like searching with parameters7901 finds the right milestones7902 searching by state:active7903 behaves like searching with parameters7904 finds the right milestones7905 searching by title7906 behaves like searching with parameters7907 finds the right milestones7908 searching by search_title7909 behaves like searching with parameters7910 finds the right milestones7911 searching by containing_date7912 behaves like searching with parameters7913 finds the right milestones7914 searching by containing_date = today7915 behaves like searching with parameters7916 finds the right milestones7917 searching by custom range7918 behaves like searching with parameters7919 finds the right milestones7920 using timeframe argument7921 behaves like searching with parameters7922 finds the right milestones7923 timeframe validations7924 is invalid to provide timeframe and start_date/end_date7925 is invalid to invert the timeframe arguments7926 behaves like a working graphql query7927 returns a successful response7928Create a new cluster agent7929 without project permissions7930 does not create cluster agent7931 behaves like a mutation that returns a top-level access error7932 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]7933 with user permissions7934DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7935DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7936 creates a new cluster agent7937ProductAnalytics::CollectorApp throttle7938 per application id7939 throttles the endpoint7940package details7941 behaves like a working graphql query7942DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7943DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7944 returns a successful response7945DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7946DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7947 matches the JSON schema7948 there are other versions of this package7949 includes the sibling versions7950 going deeper7951 does not create a cycle of versions7952 with a batched query7953 returns an error for the second package and data for the first7954 when loading pipelines ordered by ID DESC7955 loads the second page correctly7956Projects::AutocompleteSourcesController7957 GET members7958 returns an array of member object7959 GET milestones7960 lists milestones7961 when user cannot read project issues and merge requests7962 renders 4047963SpammableActions::AkismetMarkAsSpamAction7964 #mark_as_spam7965 when user is admin7966 when service returns truthy7967 redirects with notice7968 when service returns falsey7969 redirects with notice7970 when user is not admin7971 calls #access_denied!7972Creating a new HTTP Integration7973 behaves like creating a new HTTP integration7974 creates a new integration7975 without required argument project_path7976 behaves like an invalid argument to the mutation7977 behaves like a mutation that returns top-level errors7978 is expected to contain exactly (include "invalid value for projectPath")7979 without required argument active7980 behaves like an invalid argument to the mutation7981 behaves like a mutation that returns top-level errors7982 is expected to contain exactly (include "invalid value for active")7983 without required argument name7984 behaves like an invalid argument to the mutation7985 behaves like a mutation that returns top-level errors7986 is expected to contain exactly (include "invalid value for name")7987Profiles::PersonalAccessTokensController7988 #create7989 allows creation of a token with scopes7990 allows creation of a token with an expiry date7991 #index7992 retrieves active personal access tokens7993 retrieves inactive personal access tokens7994 does not retrieve impersonation personal access tokens7995 retrieves newly created personal access token value7996 sets PAT name and scopes7997Users::UnsubscribesController7998 show7999 responds with success8000 behaves the same if email address isn't known in the system8001 create8002 unsubscribes the connected user8003 behaves the same if email address isn't known in the system8004getting Alert Management Alert Assignees8005 returns the correct assignees8006 applies appropriate filters for non-visible users8007 performance8008 can limit results8009 can include all results8010 avoids N+1 queries8011accepting a merge request8012 when the user is not allowed to accept a merge request8013 behaves like a mutation that returns a top-level access error8014 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]8015 when user has permissions to create a merge request8016 merges the merge request8017getting Alert Management Alert Assignees8018 with self-managed prometheus payload8019 includes the correct metrics dashboard url8020 with gitlab-managed prometheus payload8021 includes the correct metrics dashboard url8022Projects::Ci::PipelineEditorController8023 GET #show8024 with enough privileges8025DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in setup_walkthrough_experiment at /builds/gitlab-org/gitlab/app/controllers/projects/ci/pipeline_editor_controller.rb:26)8026 is expected to respond with numeric status code ok8027DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in setup_walkthrough_experiment at /builds/gitlab-org/gitlab/app/controllers/projects/ci/pipeline_editor_controller.rb:26)8028 renders show page8029 without enough privileges8030 responds with 4048031 pipeline_editor_walkthrough experiment8032 behaves like tracks assignment and records the subject8033DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in setup_walkthrough_experiment at /builds/gitlab-org/gitlab/app/controllers/projects/ci/pipeline_editor_controller.rb:26)8034 tracks the assignment8035DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in setup_walkthrough_experiment at /builds/gitlab-org/gitlab/app/controllers/projects/ci/pipeline_editor_controller.rb:26)8036 records the subject8037Getting Grafana Integration8038 with grafana integration data8039 without project admin permissions8040 is expected to equal nil8041 behaves like a working graphql query8042 returns a successful response8043 with project admin permissions8044 is expected to eql "https://grafana.example.com"8045 is expected to eql "2021-12-14T01:53:13Z"8046 is expected to eql "2021-12-14T01:53:13Z"8047 behaves like a working graphql query8048 returns a successful response8049Projects::RefsController8050 GET #logs_tree8051 never throws MissingTemplate8052 renders 404 for HTML requests8053 when json is requested8054 renders JSON8055Group callouts8056 POST /-/users/group_callouts8057 with valid feature name and group8058 when callout entry does not exist8059 creates a callout entry with dismissed state8060 returns success8061 when callout entry already exists8062 returns success8063 with invalid feature name8064 returns bad request8065query terraform states8066 returns terraform state data8067 returns count of terraform states8068 unauthorized users8069 is expected to be nil8070Resetting a token on an existing Prometheus Integration8071 creates a token8072 with an existing alerting setting8073 updates the token8074Create a todo8075 the user is not allowed to create todo8076 behaves like a mutation that returns a top-level access error8077 is expected to eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]8078 when user has permissions to create todo8079 creates todo8080Projects::UsageQuotasController8081 GET #index8082 does not render search settings partial8083Query.project.pipeline.stages.groups8084 returns a array of jobs belonging to a pipeline8085 behaves like a working graphql query8086 returns a successful response8087Updating the dependency proxy group settings8088 post graphql mutation8089 without permission8090 returns no response8091 with permission8092 returns the updated dependency proxy settings8093API::APIGuard::AdminModeMiddleware8094 is loaded8095 when there is an exception in the api call8096 resets admin mode8097Import::UrlController8098 POST #validate8099 reports success when service reports success status8100 exposes error message when service reports error8101 with an anonymous user8102 redirects to sign-in page8103getting project information8104 when there is a current_user8105 is expected to include {"name" => "Sidney Jones1316", "namespace" => {"id" => "gid://gitlab/Namespaces::UserNamespace/2118"}}8106 behaves like a working graphql query8107 returns a successful response8108 when there is no current_user8109 is expected to be nil8110 behaves like a working graphql query8111 returns a successful response8112RunnerSetupController8113 GET /-/runner_setup/platforms8114 renders the platforms8115API::ContainerRegistryEvent8116 POST /container_registry_event/events8117 returns 200 status and events are passed to event handler8118 returns 401 error status when token is invalid8119Emails::AdminNotification8120 adds email methods to Notify8121Admin::IntegrationsController8122 GET #overrides8123 format html8124 renders8125 format json8126 returns the project overrides data8127Knapsack report was generated. Preview:8128{8129 "spec/requests/api/npm_instance_packages_spec.rb": 439.59125988799997,8130 "spec/requests/api/issues/get_project_issues_spec.rb": 142.36144490200002,8131 "spec/requests/api/composer_packages_spec.rb": 83.54509141899996,8132 "spec/requests/api/ci/runner/jobs_request_post_spec.rb": 82.4930483569999,8133 "spec/requests/api/labels_spec.rb": 72.93164910100006,8134 "spec/requests/api/helpers_spec.rb": 57.81457028199998,8135 "spec/controllers/explore/projects_controller_spec.rb": 42.59129218399994,8136 "spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 48.867892183000095,8137 "spec/controllers/uploads_controller_spec.rb": 33.260099843000035,8138 "spec/requests/api/lint_spec.rb": 32.65600866,8139 "spec/controllers/projects/merge_requests/drafts_controller_spec.rb": 34.249053986000035,8140 "spec/controllers/groups/group_links_controller_spec.rb": 31.772920260999854,8141 "spec/controllers/projects/deploy_keys_controller_spec.rb": 26.686951926999882,8142 "spec/requests/api/protected_branches_spec.rb": 24.768197409000095,8143 "spec/requests/api/graphql/mutations/snippets/update_spec.rb": 21.66603541199993,8144 "spec/requests/api/deploy_tokens_spec.rb": 18.504128591999915,8145 "spec/requests/api/graphql/project/container_repositories_spec.rb": 19.641619780999918,8146 "spec/controllers/projects/prometheus/alerts_controller_spec.rb": 14.09179657300001,8147 "spec/controllers/import/bitbucket_controller_spec.rb": 17.27917599700004,8148 "spec/requests/api/graphql/mutations/notes/create/image_diff_note_spec.rb": 17.038905854000177,8149 "spec/requests/api/environments_spec.rb": 11.687341337000134,8150 "spec/requests/api/feature_flags_user_lists_spec.rb": 7.998633312000038,8151 "spec/requests/api/feature_flags_spec.rb": 9.251707132999854,8152 "spec/controllers/projects/design_management/designs/raw_images_controller_spec.rb": 9.494702228000051,8153 "spec/requests/api/issue_links_spec.rb": 10.821876950999922,8154 "spec/controllers/groups/boards_controller_spec.rb": 8.44739203600011,8155 "spec/requests/api/namespaces_spec.rb": 9.327949274000048,8156 "spec/requests/projects/metrics_dashboard_spec.rb": 7.284402898000053,8157 "spec/controllers/admin/projects_controller_spec.rb": 9.492722947999937,8158 "spec/mailers/emails/issues_spec.rb": 6.41744281199999,8159 "spec/controllers/projects/tracings_controller_spec.rb": 7.413112555999987,8160 "spec/requests/api/graphql/project/merge_request/diff_notes_spec.rb": 8.793859956999995,8161 "spec/controllers/projects/hooks_controller_spec.rb": 6.352359403000037,8162 "spec/controllers/groups/settings/applications_controller_spec.rb": 3.7326832730000206,8163 "spec/controllers/projects/runners_controller_spec.rb": 6.729270049999968,8164 "spec/controllers/admin/ci/variables_controller_spec.rb": 4.154436470000064,8165 "spec/controllers/projects/error_tracking_controller_spec.rb": 3.3471618849998777,8166 "spec/mailers/emails/auto_devops_spec.rb": 5.664516951999985,8167 "spec/controllers/users/terms_controller_spec.rb": 2.4158767100000205,8168 "spec/requests/api/remote_mirrors_spec.rb": 3.1546588470000643,8169 "spec/requests/api/internal/kubernetes_spec.rb": 4.377888765999842,8170 "spec/requests/api/graphql/mutations/ci/ci_cd_settings_update_spec.rb": 2.07857953000007,8171 "spec/requests/api/graphql/mutations/labels/create_spec.rb": 3.3396192970001266,8172 "spec/requests/projects/merge_requests/content_spec.rb": 4.040984864999928,8173 "spec/requests/api/group_avatar_spec.rb": 1.957693516000063,8174 "spec/requests/api/graphql/project/milestones_spec.rb": 3.334508037000205,8175 "spec/requests/api/graphql/mutations/clusters/agents/create_spec.rb": 2.5717516510001133,8176 "spec/requests/product_analytics/collector_app_attack_spec.rb": 2.9943261959999745,8177 "spec/requests/api/graphql/packages/package_spec.rb": 3.681238396000026,8178 "spec/controllers/projects/autocomplete_sources_controller_spec.rb": 2.007428533999928,8179 "spec/controllers/concerns/spammable_actions/akismet_mark_as_spam_action_spec.rb": 2.1249048060001314,8180 "spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb": 1.3738446909999311,8181 "spec/controllers/profiles/personal_access_tokens_controller_spec.rb": 1.631842706000043,8182 "spec/controllers/users/unsubscribes_controller_spec.rb": 0.7839489340001364,8183 "spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb": 2.067742629000122,8184 "spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb": 2.0901762890000555,8185 "spec/requests/api/graphql/project/alert_management/alert/metrics_dashboard_url_spec.rb": 1.0312450100000206,8186 "spec/controllers/projects/ci/pipeline_editor_controller_spec.rb": 1.6735673029997997,8187 "spec/requests/api/graphql/project/grafana_integration_spec.rb": 2.3570690629999262,8188 "spec/controllers/projects/refs_controller_spec.rb": 2.4449407379997865,8189 "spec/requests/users/group_callouts_spec.rb": 0.8649540799999613,8190 "spec/requests/api/graphql/project/terraform/states_spec.rb": 1.6015991369999938,8191 "spec/requests/api/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb": 1.1520788630000425,8192 "spec/requests/api/graphql/mutations/todos/create_spec.rb": 1.330578413000012,8193 "spec/controllers/projects/usage_quotas_controller_spec.rb": 1.329828142999986,8194 "spec/requests/api/graphql/ci/groups_spec.rb": 1.5200689820001116,8195 "spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb": 0.7273643369999263,8196 "spec/requests/api/api_guard/admin_mode_middleware_spec.rb": 0.5021100209999076,8197 "spec/requests/import/url_controller_spec.rb": 0.38892731800001457,8198 "spec/requests/api/graphql/current_user_query_spec.rb": 0.7218276679998326,8199 "spec/requests/runner_setup_controller_spec.rb": 0.355359658999987,8200 "spec/requests/api/container_registry_event_spec.rb": 0.5297317590000148,8201 "spec/mailers/emails/admin_notification_spec.rb": 0.3902034369998546,8202 "spec/requests/admin/integrations_controller_spec.rb": 1.19045139099989688203}8204Knapsack global time execution for tests: 24m 24s8205Pending: (Failures listed here are expected and do not affect your suite's status)8206 1) Projects::DesignManagement::Designs::RawImagesController GET #show behaves like a controller that can serve LFS files when lfs is not enabled delivers ASCII file8207 # Calling spec asked to skip testing LFS disabled scenario8208 # ./spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb:1508209Finished in 24 minutes 28 seconds (files took 55.52 seconds to load)82102802 examples, 0 failures, 1 pending8211Tue Dec 14 01:53:44 UTC 20218213Not uploading cache ruby-gems-v1-9 due to policy8214Not uploading cache gitaly-ruby-gems-v1-9 due to policy8216Uploading artifacts...8217coverage/: found 5 matching files and directories 8218crystalball/: found 2 matching files and directories 8219deprecations/: found 5 matching files and directories 8220knapsack/: found 3 matching files and directories 8221rspec_flaky/: found 5 matching files and directories 8222rspec_profiling/: found 1 matching files and directories 8223WARNING: tmp/capybara/: no matching files 8224tmp/memory_test/: found 2 matching files and directories 8225log/*.log: found 15 matching files and directories 8226Uploading artifacts as "archive" to coordinator... ok id=1880798008 responseStatus=201 Created token=hsNsdU-S8227Uploading artifacts...8228junit_rspec.xml: found 1 matching files and directories 8229Uploading artifacts as "junit" to coordinator... ok id=1880798008 responseStatus=201 Created token=hsNsdU-S8231Job succeeded