rspec integration pg12 2/10
Passed Started
by
@lamportsapprentice

Hannes Moser
1Running with gitlab-runner 15.2.0~beta.17.g34ae4a68 (34ae4a68)2 on green-2.private.runners-manager.gitlab.com/gitlab.com/gitlab-org GaSD-S1F3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...18Running on runner-gasd-s1f-project-278964-concurrent-0 via runner-gasd-s1f-private-1656916791-e7d74fe8...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 116039, done. 25remote: Counting objects: 100% (116039/116039), done. 26remote: Compressing objects: 100% (81230/81230), done. 27remote: Total 116039 (delta 48550), reused 75347 (delta 30398), pack-reused 0 28Receiving objects: 100% (116039/116039), 108.46 MiB | 34.11 MiB/s, done.29Resolving deltas: 100% (48550/48550), done.31 * [new ref] refs/pipelines/579240176 -> refs/pipelines/57924017632Checking out ad477312 as refs/merge-requests/90914/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-10 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2673682644)...44Downloading artifacts from coordinator... ok id=2673682644 responseStatus=200 OK token=XyQuo8ei45Downloading artifacts for detect-tests (2673682683)...46Downloading artifacts from coordinator... ok id=2673682683 responseStatus=200 OK token=XyQuo8ei47Downloading artifacts for retrieve-tests-metadata (2673682698)...48Downloading artifacts from coordinator... ok id=2673682698 responseStatus=200 OK token=XyQuo8ei49Downloading artifacts for setup-test-env (2673682668)...50Downloading artifacts from coordinator... ok id=2673682668 responseStatus=200 OK token=XyQuo8ei52Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh593.2.3360Bundler version 2.2.3361Successfully installed bundler-2.3.15621 gem installed63production:development64Settings are listed in order of priority. The top value will be used.65clean66Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true67frozen68Set via BUNDLE_FROZEN: true69install_flags70Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"71path72Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"73without74Set via BUNDLE_WITHOUT: [:production, :development]75$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check76Don't run Bundler as root. Bundler can ask for sudo if it is needed, and77installing your bundle as root will break this application for all non-root78users on this machine.79The Gemfile's dependencies are satisfied80==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.81$ bundle pristine pg82Installing pg 1.3.5 with native extensions83==> 'bundle pristine pg' succeeded in 8 seconds.84Using decomposed database config (config/database.yml.decomposed-postgresql)85$ setup_db_user_only86CREATE ROLE87GRANT88==> 'setup_db_user_only' succeeded in 0 seconds.89$ bundle exec rake db:drop db:create db:schema:load db:migrate90Dropped database 'gitlabhq_test'91Dropped database 'gitlabhq_test_ci'92Dropped database 'gitlabhq_geo_test'93Created database 'gitlabhq_test'94Created database 'gitlabhq_test_ci'95Created database 'gitlabhq_geo_test'96==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 33 seconds.97$ setup_db_praefect98SELECT pg_catalog.set_config('search_path', '', false);99CREATE DATABASE praefect_test ENCODING 'UTF8';100==> 'setup_db_praefect' succeeded in 0 seconds.101$ run_timed_command "gem install knapsack --no-document"102$ gem install knapsack --no-document103Successfully installed knapsack-4.0.01041 gem installed105==> 'gem install knapsack --no-document' succeeded in 1 seconds.106$ run_timed_command "scripts/gitaly-test-spawn"107$ scripts/gitaly-test-spawn108find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory109Don't run Bundler as root. Bundler can ask for sudo if it is needed, and110installing your bundle as root will break this application for all non-root111users on this machine.112Using abstract_type 0.0.7113Using concurrent-ruby 1.1.10114Using i18n 1.10.0115Using minitest 5.15.0116Using tzinfo 2.0.4117Using zeitwerk 2.5.4118Using activesupport 6.1.4.7119Using builder 3.2.4120Using erubi 1.10.0121Using mini_portile2 2.8.0122Using racc 1.6.0123Using nokogiri 1.13.6 (x86_64-linux)124Using rails-dom-testing 2.0.3125Using crass 1.0.6126Using loofah 2.16.0127Using rails-html-sanitizer 1.4.2128Using actionview 6.1.4.7129Using rack 2.2.3130Using rack-test 1.1.0131Using actionpack 6.1.4.7132Using ice_nine 0.11.2133Using thread_safe 0.3.6134Using memoizable 0.4.2135Using adamantium 0.2.0136Using public_suffix 4.0.6137Using addressable 2.7.0138Using ast 2.4.2139Using binding_ninja 0.2.3140Using bundler 2.3.15141Using charlock_holmes 0.7.7142Using coderay 1.1.2143Using equalizer 0.0.11144Using concord 0.1.5145Using diff-lcs 1.3146Using dotenv 2.7.6147Using escape_utils 1.2.1148Using factory_bot 5.0.2149Using multipart-post 2.1.1150Using faraday 1.0.1151Using ffi 1.15.3152Using json 2.5.1153Using gemojione 3.3.0154Using mini_mime 1.0.2155Using rugged 1.2.0156Using github-linguist 7.12.1157Using github-markup 1.7.0158Using mime-types-data 3.2020.1104159Using mime-types 3.3.1160Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1161Using rouge 3.27.0162Using sanitize 6.0.0163Using stringex 2.8.5164Using gitlab-gollum-lib 4.2.7.10.gitlab.2165Using google-protobuf 3.19.1 (x86_64-linux)166Using googleapis-common-protos-types 1.3.0167Using grpc 1.42.0 (x86_64-linux)168Using opentracing 0.5.0169Using thrift 0.15.0170Using jaeger-client 1.1.0171Using pg_query 2.1.1172Using redis 4.4.0173Using gitlab-labkit 0.23.0174Using rubyzip 2.3.2175Using thor 1.1.0176Using tomlrb 2.0.1177Using with_env 1.1.0178Using rexml 3.2.5179Using xml-simple 1.1.9180Using gitlab-license_finder 6.14.2.1181Using gitlab-markup 1.7.1182Using grpc-tools 1.42.0183Using sawyer 0.8.2184Using octokit 4.20.0185Using reverse_markdown 1.4.0186Using licensee 9.14.1187Using method_source 0.9.2188Using msgpack 1.3.3189Using optimist 3.0.1190Using parallel 1.19.2191Using parser 3.0.3.2192Using procto 0.0.3193Using unparser 0.4.7194Using proc_to_ast 0.1.0195Using pry 0.12.2196Using rainbow 3.0.0197Using rbtrace 0.4.14198Using rdoc 6.3.2199Using regexp_parser 1.8.1200Using rspec-support 3.8.0201Using rspec-core 3.8.0202Using rspec-expectations 3.8.3203Using rspec-mocks 3.8.0204Using rspec 3.8.0205Using rspec-parameterized 0.4.2206Using rubocop-ast 0.2.0207Using ruby-progressbar 1.10.1208Using unicode-display_width 1.7.0209Using rubocop 0.86.0210Using sentry-raven 3.0.4211Using timecop 0.9.1212Bundle complete! 22 Gemfile dependencies, 100 gems now installed.213Gems in the groups 'production' and 'development' were not installed.214Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`215Checking gitaly-ruby Gemfile...216Checking gitaly-ruby bundle...217The Gemfile's dependencies are satisfied218Trying to connect to gitaly: ................................... OK219Trying to connect to gitaly2: .................................................... OK220Starting Praefect with in-memory election strategyTrying to connect to praefect: ........ OK221==> 'scripts/gitaly-test-spawn' succeeded in 10 seconds.222$ source ./scripts/rspec_helpers.sh223$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"224SKIP_FLAKY_TESTS_AUTOMATICALLY: true225RETRY_FAILED_TESTS_IN_NEW_PROCESS: true226KNAPSACK_GENERATE_REPORT: true227FLAKY_RSPEC_GENERATE_REPORT: true228KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb229KNAPSACK_LOG_LEVEL: debug230KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg12_2_10_report.json231FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json232FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg12_2_10_report.json233NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg12_2_10_report.json234SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_integration_pg12_2_10_report.txt235RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_integration_pg12_2_10_report.txt236CRYSTALBALL: 237Knapsack node specs:238spec/requests/api/npm_instance_packages_spec.rb239spec/requests/api/notes_spec.rb240spec/requests/api/discussions_spec.rb241spec/controllers/groups/clusters_controller_spec.rb242spec/requests/api/wikis_spec.rb243spec/requests/api/ci/job_artifacts_spec.rb244spec/requests/api/ci/variables_spec.rb245spec/controllers/groups/children_controller_spec.rb246spec/controllers/projects/wikis_controller_spec.rb247spec/requests/groups_controller_spec.rb248spec/requests/api/deployments_spec.rb249spec/requests/api/pages/private_access_spec.rb250spec/requests/openid_connect_spec.rb251spec/controllers/projects/repositories_controller_spec.rb252spec/requests/api/usage_data_queries_spec.rb253spec/controllers/groups/uploads_controller_spec.rb254spec/controllers/snippets/notes_controller_spec.rb255spec/requests/api/graphql/packages/maven_spec.rb256spec/requests/groups/settings/access_tokens_controller_spec.rb257spec/controllers/import/gitlab_controller_spec.rb258spec/requests/api/issue_links_spec.rb259spec/controllers/graphql_controller_spec.rb260spec/requests/api/graphql/boards/board_list_issues_query_spec.rb261spec/controllers/projects/imports_controller_spec.rb262spec/requests/lfs_locks_api_spec.rb263spec/controllers/projects/releases/evidences_controller_spec.rb264spec/requests/api/graphql/mutations/award_emojis/add_spec.rb265spec/requests/projects/issue_links_controller_spec.rb266spec/mailers/emails/service_desk_spec.rb267spec/controllers/repositories/git_http_controller_spec.rb268spec/requests/api/graphql/mutations/design_management/delete_spec.rb269spec/controllers/concerns/metrics_dashboard_spec.rb270spec/requests/api/doorkeeper_access_spec.rb271spec/controllers/concerns/group_tree_spec.rb272spec/requests/api/graphql/group/group_members_spec.rb273spec/requests/api/graphql/mutations/issues/create_spec.rb274spec/requests/api/graphql/mutations/merge_requests/set_locked_spec.rb275spec/controllers/projects/pipelines/stages_controller_spec.rb276spec/requests/admin/background_migrations_controller_spec.rb277spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb278spec/requests/api/graphql/project/alert_management/integrations_spec.rb279spec/controllers/repositories/lfs_storage_controller_spec.rb280spec/requests/api/graphql/namespace_query_spec.rb281spec/requests/api/graphql/project/repository_spec.rb282spec/requests/api/templates_spec.rb283spec/requests/admin/batched_jobs_controller_spec.rb284spec/requests/api/graphql/project/work_items_spec.rb285spec/requests/dashboard/projects_controller_spec.rb286spec/requests/api/graphql/project/jira_import_spec.rb287spec/controllers/users/terms_controller_spec.rb288spec/controllers/projects/find_file_controller_spec.rb289spec/requests/api/graphql/metrics/dashboard/annotations_spec.rb290spec/requests/api/graphql/mutations/clusters/agents/create_spec.rb291spec/controllers/admin/applications_controller_spec.rb292spec/requests/api/graphql/current_user_todos_spec.rb293spec/requests/api/graphql/mutations/boards/destroy_spec.rb294spec/controllers/admin/spam_logs_controller_spec.rb295spec/controllers/dashboard/groups_controller_spec.rb296spec/controllers/projects/usage_quotas_controller_spec.rb297spec/requests/api/graphql/mutations/remove_attention_request_spec.rb298spec/requests/api/project_statistics_spec.rb299spec/controllers/passwords_controller_spec.rb300spec/requests/api/oauth_tokens_spec.rb301spec/requests/api/graphql/mutations/metrics/dashboard/annotations/delete_spec.rb302spec/requests/robots_txt_spec.rb303spec/requests/api/import_github_spec.rb304spec/requests/oauth/applications_controller_spec.rb305spec/controllers/projects/feature_flags_clients_controller_spec.rb306spec/requests/api/graphql/ci/stages_spec.rb307spec/requests/api/graphql/mutations/issues/set_severity_spec.rb308spec/controllers/projects/terraform_controller_spec.rb309spec/requests/import/url_controller_spec.rb310spec/requests/api/graphql/ci/project_variables_spec.rb311spec/controllers/profiles/personal_access_tokens_controller_spec.rb312spec/requests/api/graphql/current_user_query_spec.rb313spec/requests/api/graphql/mutations/release_asset_links/create_spec.rb314spec/requests/jira_connect/users_controller_spec.rb315spec/requests/users/group_callouts_spec.rb316spec/requests/api/graphql/mutations/user_callouts/create_spec.rb317spec/controllers/admin/topics/avatars_controller_spec.rb318spec/requests/sessions_spec.rb319Filter specs:320Running specs:321Running all node tests without filter322spec/requests/api/npm_instance_packages_spec.rb323spec/requests/api/notes_spec.rb324spec/requests/api/discussions_spec.rb325spec/controllers/groups/clusters_controller_spec.rb326spec/requests/api/wikis_spec.rb327spec/requests/api/ci/job_artifacts_spec.rb328spec/requests/api/ci/variables_spec.rb329spec/controllers/groups/children_controller_spec.rb330spec/controllers/projects/wikis_controller_spec.rb331spec/requests/groups_controller_spec.rb332spec/requests/api/deployments_spec.rb333spec/requests/api/pages/private_access_spec.rb334spec/requests/openid_connect_spec.rb335spec/controllers/projects/repositories_controller_spec.rb336spec/requests/api/usage_data_queries_spec.rb337spec/controllers/groups/uploads_controller_spec.rb338spec/controllers/snippets/notes_controller_spec.rb339spec/requests/api/graphql/packages/maven_spec.rb340spec/requests/groups/settings/access_tokens_controller_spec.rb341spec/controllers/import/gitlab_controller_spec.rb342spec/requests/api/issue_links_spec.rb343spec/controllers/graphql_controller_spec.rb344spec/requests/api/graphql/boards/board_list_issues_query_spec.rb345spec/controllers/projects/imports_controller_spec.rb346spec/requests/lfs_locks_api_spec.rb347spec/controllers/projects/releases/evidences_controller_spec.rb348spec/requests/api/graphql/mutations/award_emojis/add_spec.rb349spec/requests/projects/issue_links_controller_spec.rb350spec/mailers/emails/service_desk_spec.rb351spec/controllers/repositories/git_http_controller_spec.rb352spec/requests/api/graphql/mutations/design_management/delete_spec.rb353spec/controllers/concerns/metrics_dashboard_spec.rb354spec/requests/api/doorkeeper_access_spec.rb355spec/controllers/concerns/group_tree_spec.rb356spec/requests/api/graphql/group/group_members_spec.rb357spec/requests/api/graphql/mutations/issues/create_spec.rb358spec/requests/api/graphql/mutations/merge_requests/set_locked_spec.rb359spec/controllers/projects/pipelines/stages_controller_spec.rb360spec/requests/admin/background_migrations_controller_spec.rb361spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb362spec/requests/api/graphql/project/alert_management/integrations_spec.rb363spec/controllers/repositories/lfs_storage_controller_spec.rb364spec/requests/api/graphql/namespace_query_spec.rb365spec/requests/api/graphql/project/repository_spec.rb366spec/requests/api/templates_spec.rb367spec/requests/admin/batched_jobs_controller_spec.rb368spec/requests/api/graphql/project/work_items_spec.rb369spec/requests/dashboard/projects_controller_spec.rb370spec/requests/api/graphql/project/jira_import_spec.rb371spec/controllers/users/terms_controller_spec.rb372spec/controllers/projects/find_file_controller_spec.rb373spec/requests/api/graphql/metrics/dashboard/annotations_spec.rb374spec/requests/api/graphql/mutations/clusters/agents/create_spec.rb375spec/controllers/admin/applications_controller_spec.rb376spec/requests/api/graphql/current_user_todos_spec.rb377spec/requests/api/graphql/mutations/boards/destroy_spec.rb378spec/controllers/admin/spam_logs_controller_spec.rb379spec/controllers/dashboard/groups_controller_spec.rb380spec/controllers/projects/usage_quotas_controller_spec.rb381spec/requests/api/graphql/mutations/remove_attention_request_spec.rb382spec/requests/api/project_statistics_spec.rb383spec/controllers/passwords_controller_spec.rb384spec/requests/api/oauth_tokens_spec.rb385spec/requests/api/graphql/mutations/metrics/dashboard/annotations/delete_spec.rb386spec/requests/robots_txt_spec.rb387spec/requests/api/import_github_spec.rb388spec/requests/oauth/applications_controller_spec.rb389spec/controllers/projects/feature_flags_clients_controller_spec.rb390spec/requests/api/graphql/ci/stages_spec.rb391spec/requests/api/graphql/mutations/issues/set_severity_spec.rb392spec/controllers/projects/terraform_controller_spec.rb393spec/requests/import/url_controller_spec.rb394spec/requests/api/graphql/ci/project_variables_spec.rb395spec/controllers/profiles/personal_access_tokens_controller_spec.rb396spec/requests/api/graphql/current_user_query_spec.rbKnapsack report generator started!397DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call398/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here399 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)400Run options: exclude {:quarantine=>true, :level=>"migration"}401Test environment set up in 0.477186755 seconds402API::NpmInstancePackages403 GET /api/v4/packages/npm/*package_name404 behaves like handling get metadata requests405 with a group namespace406 behaves like handling all conditions407 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok408 behaves like accept metadata request409 accepts the metadata request410 avoids N+1 database queries411 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok412 behaves like accept metadata request413 accepts the metadata request414 avoids N+1 database queries415 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok416 behaves like redirect metadata request417 redirects metadata request418 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok419 behaves like reject metadata request420 rejects the metadata request421 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok422 behaves like redirect metadata request423 redirects metadata request424 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok425 behaves like reject metadata request426 rejects the metadata request427 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected428 behaves like redirect metadata request429 redirects metadata request430 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found431 behaves like reject metadata request432 rejects the metadata request433 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found434 behaves like reject metadata request435 rejects the metadata request436 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found437 behaves like reject metadata request438 rejects the metadata request439 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found440 behaves like redirect metadata request441 redirects metadata request442 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found443 behaves like reject metadata request444 rejects the metadata request445 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found446 behaves like redirect metadata request447 redirects metadata request448 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found449 behaves like reject metadata request450 rejects the metadata request451 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected452 behaves like redirect metadata request453 redirects metadata request454 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found455 behaves like reject metadata request456 rejects the metadata request457 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found458 behaves like reject metadata request459 rejects the metadata request460 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found461 behaves like reject metadata request462 rejects the metadata request463 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found464 behaves like redirect metadata request465 redirects metadata request466 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found467 behaves like reject metadata request468 rejects the metadata request469 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found470 behaves like redirect metadata request471 redirects metadata request472 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found473 behaves like reject metadata request474 rejects the metadata request475 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected476 behaves like redirect metadata request477 redirects metadata request478 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found479 behaves like reject metadata request480 rejects the metadata request481 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, 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: true, visibility: :public, user_role: :reporter, 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: :public, user_role: :guest, 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_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok494 behaves like accept metadata request495 accepts the metadata request496 avoids N+1 database queries497 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok498 behaves like redirect metadata request499 redirects metadata request500 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok501 behaves like redirect metadata request502 redirects metadata request503 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok504 behaves like reject metadata request505 rejects the metadata request506 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok507 behaves like reject metadata request508 rejects the metadata request509 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok510 behaves like redirect metadata request511 redirects metadata request512 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok513 behaves like redirect metadata request514 redirects metadata request515 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok516 behaves like reject metadata request517 rejects the metadata request518 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok519 behaves like reject metadata request520 rejects the metadata request521 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected522 behaves like redirect metadata request523 redirects metadata request524 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected525 behaves like redirect metadata request526 redirects metadata request527 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found528 behaves like reject metadata request529 rejects the metadata request530 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found531 behaves like reject metadata request532 rejects the metadata request533 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden534 behaves like reject metadata request535 rejects the metadata request536 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok537 behaves like accept metadata request538 accepts the metadata request539 avoids N+1 database queries540 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden541 behaves like reject metadata request542 rejects the metadata request543 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok544 behaves like accept metadata request545 accepts the metadata request546 avoids N+1 database queries547 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden548 behaves like redirect metadata request549 redirects metadata request550 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok551 behaves like redirect metadata request552 redirects metadata request553 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden554 behaves like reject metadata request555 rejects the metadata request556 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok557 behaves like reject metadata request558 rejects the metadata request559 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden560 behaves like redirect metadata request561 redirects metadata request562 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok563 behaves like redirect metadata request564 redirects metadata request565 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden566 behaves like reject metadata request567 rejects the metadata request568 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok569 behaves like reject metadata request570 rejects the metadata request571 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected572 behaves like redirect metadata request573 redirects metadata request574 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected575 behaves like redirect metadata request576 redirects metadata request577 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden578 behaves like reject metadata request579 rejects the metadata request580 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found581 behaves like reject metadata request582 rejects the metadata request583 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok584 behaves like accept metadata request585 accepts the metadata request586 avoids N+1 database queries587 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok588 behaves like accept metadata request589 accepts the metadata request590 avoids N+1 database queries591 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok592 behaves like accept metadata request593 accepts the metadata request594 avoids N+1 database queries595 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok596 behaves like accept metadata request597 accepts the metadata request598 avoids N+1 database queries599 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok600 behaves like redirect metadata request601 redirects metadata request602 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok603 behaves like redirect metadata request604 redirects metadata request605 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok606 behaves like reject metadata request607 rejects the metadata request608 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok609 behaves like reject metadata request610 rejects the metadata request611 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok612 behaves like redirect metadata request613 redirects metadata request614 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok615 behaves like redirect metadata request616 redirects metadata request617 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok618 behaves like reject metadata request619 rejects the metadata request620 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok621 behaves like reject metadata request622 rejects the metadata request623 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected624 behaves like redirect metadata request625 redirects metadata request626 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected627 behaves like redirect metadata request628 redirects metadata request629 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found630 behaves like reject metadata request631 rejects the metadata request632 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found633 behaves like reject metadata request634 rejects the metadata request635 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, 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: true, visibility: :public, user_role: :reporter, 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: :public, user_role: :guest, 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_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok648 behaves like accept metadata request649 accepts the metadata request650 avoids N+1 database queries651 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok652 behaves like redirect metadata request653 redirects metadata request654 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok655 behaves like redirect metadata request656 redirects metadata request657 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok658 behaves like reject metadata request659 rejects the metadata request660 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok661 behaves like reject metadata request662 rejects the metadata request663 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok664 behaves like redirect metadata request665 redirects metadata request666 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok667 behaves like redirect metadata request668 redirects metadata request669 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok670 behaves like reject metadata request671 rejects the metadata request672 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok673 behaves like reject metadata request674 rejects the metadata request675 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected676 behaves like redirect metadata request677 redirects metadata request678 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected679 behaves like redirect metadata request680 redirects metadata request681 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found682 behaves like reject metadata request683 rejects the metadata request684 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found685 behaves like reject metadata request686 rejects the metadata request687 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden688 behaves like reject metadata request689 rejects the metadata request690 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok691 behaves like accept metadata request692 accepts the metadata request693 avoids N+1 database queries694 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden695 behaves like reject metadata request696 rejects the metadata request697 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok698 behaves like accept metadata request699 accepts the metadata request700 avoids N+1 database queries701 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden702 behaves like redirect metadata request703 redirects metadata request704 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok705 behaves like redirect metadata request706 redirects metadata request707 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden708 behaves like reject metadata request709 rejects the metadata request710 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok711 behaves like reject metadata request712 rejects the metadata request713 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden714 behaves like redirect metadata request715 redirects metadata request716 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok717 behaves like redirect metadata request718 redirects metadata request719 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden720 behaves like reject metadata request721 rejects the metadata request722 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok723 behaves like reject metadata request724 rejects the metadata request725 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected726 behaves like redirect metadata request727 redirects metadata request728 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected729 behaves like redirect metadata request730 redirects metadata request731 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden732 behaves like reject metadata request733 rejects the metadata request734 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found735 behaves like reject metadata request736 rejects the metadata request737 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok738 behaves like accept metadata request739 accepts the metadata request740 avoids N+1 database queries741 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok742 behaves like accept metadata request743 accepts the metadata request744 avoids N+1 database queries745 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok746 behaves like accept metadata request747 accepts the metadata request748 avoids N+1 database queries749 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok750 behaves like accept metadata request751 accepts the metadata request752 avoids N+1 database queries753 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok754 behaves like redirect metadata request755 redirects metadata request756 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok757 behaves like redirect metadata request758 redirects metadata request759 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok760 behaves like reject metadata request761 rejects the metadata request762 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok763 behaves like reject metadata request764 rejects the metadata request765 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok766 behaves like redirect metadata request767 redirects metadata request768 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok769 behaves like redirect metadata request770 redirects metadata request771 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok772 behaves like reject metadata request773 rejects the metadata request774 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok775 behaves like reject metadata request776 rejects the metadata request777 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected778 behaves like redirect metadata request779 redirects metadata request780 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected781 behaves like redirect metadata request782 redirects metadata request783 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found784 behaves like reject metadata request785 rejects the metadata request786 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found787 behaves like reject metadata request788 rejects the metadata request789 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok790 behaves like accept metadata request791 accepts the metadata request792 avoids N+1 database queries793 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok794 behaves like accept metadata request795 accepts the metadata request796 avoids N+1 database queries797 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok798 behaves like redirect metadata request799 redirects metadata request800 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok801 behaves like reject metadata request802 rejects the metadata request803 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok804 behaves like redirect metadata request805 redirects metadata request806 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok807 behaves like reject metadata request808 rejects the metadata request809 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected810 behaves like redirect metadata request811 redirects metadata request812 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found813 behaves like reject metadata request814 rejects the metadata request815 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok816 behaves like accept metadata request817 accepts the metadata request818 avoids N+1 database queries819 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok820 behaves like accept metadata request821 accepts the metadata request822 avoids N+1 database queries823 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok824 behaves like redirect metadata request825 redirects metadata request826 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok827 behaves like reject metadata request828 rejects the metadata request829 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok830 behaves like redirect metadata request831 redirects metadata request832 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok833 behaves like reject metadata request834 rejects the metadata request835 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected836 behaves like redirect metadata request837 redirects metadata request838 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found839 behaves like reject metadata request840 rejects the metadata request841 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok842 behaves like accept metadata request843 accepts the metadata request844 avoids N+1 database queries845 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok846 behaves like accept metadata request847 accepts the metadata request848 avoids N+1 database queries849 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok850 behaves like redirect metadata request851 redirects metadata request852 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok853 behaves like reject metadata request854 rejects the metadata request855 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok856 behaves like redirect metadata request857 redirects metadata request858 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok859 behaves like reject metadata request860 rejects the metadata request861 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected862 behaves like redirect metadata request863 redirects metadata request864 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found865 behaves like reject metadata request866 rejects the metadata request867 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok868 behaves like accept metadata request869 accepts the metadata request870 avoids N+1 database queries871 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok872 behaves like accept metadata request873 accepts the metadata request874 avoids N+1 database queries875 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok876 behaves like redirect metadata request877 redirects metadata request878 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok879 behaves like reject metadata request880 rejects the metadata request881 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok882 behaves like redirect metadata request883 redirects metadata request884 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok885 behaves like reject metadata request886 rejects the metadata request887 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected888 behaves like redirect metadata request889 redirects metadata request890 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found891 behaves like reject metadata request892 rejects the metadata request893 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok894 behaves like accept metadata request895 accepts the metadata request896 avoids N+1 database queries897 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok898 behaves like accept metadata request899 accepts the metadata request900 avoids N+1 database queries901 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok902 behaves like redirect metadata request903 redirects metadata request904 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok905 behaves like reject metadata request906 rejects the metadata request907 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok908 behaves like redirect metadata request909 redirects metadata request910 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok911 behaves like reject metadata request912 rejects the metadata request913 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected914 behaves like redirect metadata request915 redirects metadata request916 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found917 behaves like reject metadata request918 rejects the metadata request919 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok920 behaves like accept metadata request921 accepts the metadata request922 avoids N+1 database queries923 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok924 behaves like accept metadata request925 accepts the metadata request926 avoids N+1 database queries927 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok928 behaves like redirect metadata request929 redirects metadata request930 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok931 behaves like reject metadata request932 rejects the metadata request933 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok934 behaves like redirect metadata request935 redirects metadata request936 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok937 behaves like reject metadata request938 rejects the metadata request939 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected940 behaves like redirect metadata request941 redirects metadata request942 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found943 behaves like reject metadata request944 rejects the metadata request945 with a user namespace946 behaves like handling all conditions947 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok948 behaves like accept metadata request949 accepts the metadata request950 avoids N+1 database queries951 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok952 behaves like accept metadata request953 accepts the metadata request954 avoids N+1 database queries955 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok956 behaves like redirect metadata request957 redirects metadata request958 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok959 behaves like reject metadata request960 rejects the metadata request961 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok962 behaves like redirect metadata request963 redirects metadata request964 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok965 behaves like reject metadata request966 rejects the metadata request967 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected968 behaves like redirect metadata request969 redirects metadata request970 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found971 behaves like reject metadata request972 rejects the metadata request973 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found974 behaves like reject metadata request975 rejects the metadata request976 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found977 behaves like reject metadata request978 rejects the metadata request979 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found980 behaves like redirect metadata request981 redirects metadata request982 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found983 behaves like reject metadata request984 rejects the metadata request985 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found986 behaves like redirect metadata request987 redirects metadata request988 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found989 behaves like reject metadata request990 rejects the metadata request991 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected992 behaves like redirect metadata request993 redirects metadata request994 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found995 behaves like reject metadata request996 rejects the metadata request997 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found998 behaves like reject metadata request999 rejects the metadata request1000 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1001 behaves like reject metadata request1002 rejects the metadata request1003 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1004 behaves like redirect metadata request1005 redirects metadata request1006 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1007 behaves like reject metadata request1008 rejects the metadata request1009 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1010 behaves like redirect metadata request1011 redirects metadata request1012 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1013 behaves like reject metadata request1014 rejects the metadata request1015 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1016 behaves like redirect metadata request1017 redirects metadata request1018 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1019 behaves like reject metadata request1020 rejects the metadata request1021 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, 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: true, visibility: :public, user_role: :reporter, 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: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1030 behaves like accept metadata request1031 accepts the metadata request1032Skipping ./spec/requests/api/npm_instance_packages_spec.rb[1:1:1:2:1:27:1:2] 'API::NpmInstancePackages GET /api/v4/packages/npm/*package_name behaves like handling get metadata requests with a user namespace behaves like handling all conditions auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.1033 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)1034 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1035 behaves like accept metadata request1036 accepts the metadata request1037 avoids N+1 database queries1038 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1039 behaves like redirect metadata request1040 redirects metadata request1041 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1042 behaves like redirect metadata request1043 redirects metadata request1044 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1045 behaves like reject metadata request1046 rejects the metadata request1047 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1048 behaves like reject metadata request1049 rejects the metadata request1050 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1051 behaves like redirect metadata request1052 redirects metadata request1053 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1054 behaves like redirect metadata request1055 redirects metadata request1056 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1057 behaves like reject metadata request1058 rejects the metadata request1059 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1060 behaves like reject metadata request1061 rejects the metadata request1062 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1063 behaves like redirect metadata request1064 redirects metadata request1065 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1066 behaves like redirect metadata request1067 redirects metadata request1068 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1069 behaves like reject metadata request1070 rejects the metadata request1071 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1072 behaves like reject metadata request1073 rejects the metadata request1074 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1075 behaves like reject metadata request1076 rejects the metadata request1077 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1078 behaves like accept metadata request1079 accepts the metadata request1080 avoids N+1 database queries1081 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1082 behaves like reject metadata request1083 rejects the metadata request1084 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1085 behaves like accept metadata request1086 accepts the metadata request1087 avoids N+1 database queries1088 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1089 behaves like redirect metadata request1090 redirects metadata request1091 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1092 behaves like redirect metadata request1093 redirects metadata request1094 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1095 behaves like reject metadata request1096 rejects the metadata request1097 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1098 behaves like reject metadata request1099 rejects the metadata request1100 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1101 behaves like redirect metadata request1102 redirects metadata request1103 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1104 behaves like redirect metadata request1105 redirects metadata request1106 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1107 behaves like reject metadata request1108 rejects the metadata request1109 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1110 behaves like reject metadata request1111 rejects the metadata request1112 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1113 behaves like redirect metadata request1114 redirects metadata request1115 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1116 behaves like redirect metadata request1117 redirects metadata request1118 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1119 behaves like reject metadata request1120 rejects the metadata request1121 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1122 behaves like reject metadata request1123 rejects the metadata request1124 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1125 behaves like accept metadata request1126 accepts the metadata request1127 avoids N+1 database queries1128 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1129 behaves like accept metadata request1130 accepts the metadata request1131 avoids N+1 database queries1132 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1133 behaves like accept metadata request1134 accepts the metadata request1135 avoids N+1 database queries1136 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1137 behaves like accept metadata request1138 accepts the metadata request1139 avoids N+1 database queries1140 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1141 behaves like redirect metadata request1142 redirects metadata request1143 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1144 behaves like redirect metadata request1145 redirects metadata request1146 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1147 behaves like reject metadata request1148 rejects the metadata request1149 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1150 behaves like reject metadata request1151 rejects the metadata request1152 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1153 behaves like redirect metadata request1154 redirects metadata request1155 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1156 behaves like redirect metadata request1157 redirects metadata request1158 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1159 behaves like reject metadata request1160 rejects the metadata request1161 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1162 behaves like reject metadata request1163 rejects the metadata request1164 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1165 behaves like redirect metadata request1166 redirects metadata request1167 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1168 behaves like redirect metadata request1169 redirects metadata request1170 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1171 behaves like reject metadata request1172 rejects the metadata request1173 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1174 behaves like reject metadata request1175 rejects the metadata request1176 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1177 behaves like accept metadata request1178 accepts the metadata request1179 avoids N+1 database queries1180 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1181 behaves like accept metadata request1182 accepts the metadata request1183 avoids N+1 database queries1184 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1185 behaves like accept metadata request1186 accepts the metadata request1187 avoids N+1 database queries1188 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1189 behaves like accept metadata request1190 accepts the metadata request1191 avoids N+1 database queries1192 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1193 behaves like redirect metadata request1194 redirects metadata request1195 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1196 behaves like redirect metadata request1197 redirects metadata request1198 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1199 behaves like reject metadata request1200 rejects the metadata request1201 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1202 behaves like reject metadata request1203 rejects the metadata request1204 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1205 behaves like redirect metadata request1206 redirects metadata request1207 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1208 behaves like redirect metadata request1209 redirects metadata request1210 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1211 behaves like reject metadata request1212 rejects the metadata request1213 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1214 behaves like reject metadata request1215 rejects the metadata request1216 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1217 behaves like redirect metadata request1218 redirects metadata request1219 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1220 behaves like redirect metadata request1221 redirects metadata request1222 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1223 behaves like reject metadata request1224 rejects the metadata request1225 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1226 behaves like reject metadata request1227 rejects the metadata request1228 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1229 behaves like reject metadata request1230 rejects the metadata request1231 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1232 behaves like accept metadata request1233 accepts the metadata request1234 avoids N+1 database queries1235 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1236 behaves like reject metadata request1237 rejects the metadata request1238 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1239 behaves like accept metadata request1240 accepts the metadata request1241 avoids N+1 database queries1242 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1243 behaves like redirect metadata request1244 redirects metadata request1245 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1246 behaves like redirect metadata request1247 redirects metadata request1248 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1249 behaves like reject metadata request1250 rejects the metadata request1251 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1252 behaves like reject metadata request1253 rejects the metadata request1254 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1255 behaves like redirect metadata request1256 redirects metadata request1257 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1258 behaves like redirect metadata request1259 redirects metadata request1260 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1261 behaves like reject metadata request1262 rejects the metadata request1263 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1264 behaves like reject metadata request1265 rejects the metadata request1266 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1267 behaves like redirect metadata request1268 redirects metadata request1269 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1270 behaves like redirect metadata request1271 redirects metadata request1272 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1273 behaves like reject metadata request1274 rejects the metadata request1275 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1276 behaves like reject metadata request1277 rejects the metadata request1278 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1279 behaves like accept metadata request1280 accepts the metadata request1281 avoids N+1 database queries1282 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1283 behaves like accept metadata request1284 accepts the metadata request1285 avoids N+1 database queries1286 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1287 behaves like accept metadata request1288 accepts the metadata request1289 avoids N+1 database queries1290 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1291 behaves like accept metadata request1292 accepts the metadata request1293 avoids N+1 database queries1294 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1295 behaves like redirect metadata request1296 redirects metadata request1297 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1298 behaves like redirect metadata request1299 redirects metadata request1300 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1301 behaves like reject metadata request1302 rejects the metadata request1303 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1304 behaves like reject metadata request1305 rejects the metadata request1306 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1307 behaves like redirect metadata request1308 redirects metadata request1309 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1310 behaves like redirect metadata request1311 redirects metadata request1312 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1313 behaves like reject metadata request1314 rejects the metadata request1315 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1316 behaves like reject metadata request1317 rejects the metadata request1318 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1319 behaves like redirect metadata request1320 redirects metadata request1321 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1322 behaves like redirect metadata request1323 redirects metadata request1324 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1325 behaves like reject metadata request1326 rejects the metadata request1327 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1328 behaves like reject metadata request1329 rejects the metadata request1330 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1331 behaves like accept metadata request1332 accepts the metadata request1333 avoids N+1 database queries1334 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1335 behaves like accept metadata request1336 accepts the metadata request1337 avoids N+1 database queries1338 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1339 behaves like redirect metadata request1340 redirects metadata request1341 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1342 behaves like reject metadata request1343 rejects the metadata request1344 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1345 behaves like redirect metadata request1346 redirects metadata request1347 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1348 behaves like reject metadata request1349 rejects the metadata request1350 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected1351 behaves like redirect metadata request1352 redirects metadata request1353 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1354 behaves like reject metadata request1355 rejects the metadata request1356 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1357 behaves like accept metadata request1358 accepts the metadata request1359 avoids N+1 database queries1360 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1361 behaves like accept metadata request1362 accepts the metadata request1363 avoids N+1 database queries1364 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1365 behaves like redirect metadata request1366 redirects metadata request1367 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1368 behaves like reject metadata request1369 rejects the metadata request1370 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1371 behaves like redirect metadata request1372 redirects metadata request1373 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1374 behaves like reject metadata request1375 rejects the metadata request1376 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected1377 behaves like redirect metadata request1378 redirects metadata request1379 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1380 behaves like reject metadata request1381 rejects the metadata request1382 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1383 behaves like accept metadata request1384 accepts the metadata request1385 avoids N+1 database queries1386 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1387 behaves like accept metadata request1388 accepts the metadata request1389 avoids N+1 database queries1390 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1391 behaves like redirect metadata request1392 redirects metadata request1393 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1394 behaves like reject metadata request1395 rejects the metadata request1396 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1397 behaves like redirect metadata request1398 redirects metadata request1399 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1400 behaves like reject metadata request1401 rejects the metadata request1402 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected1403 behaves like redirect metadata request1404 redirects metadata request1405 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1406 behaves like reject metadata request1407 rejects the metadata request1408 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1409 behaves like accept metadata request1410 accepts the metadata request1411 avoids N+1 database queries1412 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1413 behaves like accept metadata request1414 accepts the metadata request1415 avoids N+1 database queries1416 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1417 behaves like redirect metadata request1418 redirects metadata request1419 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1420 behaves like reject metadata request1421 rejects the metadata request1422 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1423 behaves like redirect metadata request1424 redirects metadata request1425 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1426 behaves like reject metadata request1427 rejects the metadata request1428 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected1429 behaves like redirect metadata request1430 redirects metadata request1431 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1432 behaves like reject metadata request1433 rejects the metadata request1434 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1435 behaves like accept metadata request1436 accepts the metadata request1437 avoids N+1 database queries1438 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1439 behaves like accept metadata request1440 accepts the metadata request1441 avoids N+1 database queries1442 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1443 behaves like redirect metadata request1444 redirects metadata request1445 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1446 behaves like reject metadata request1447 rejects the metadata request1448 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1449 behaves like redirect metadata request1450 redirects metadata request1451 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1452 behaves like reject metadata request1453 rejects the metadata request1454 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected1455 behaves like redirect metadata request1456 redirects metadata request1457 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1458 behaves like reject metadata request1459 rejects the metadata request1460 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1461 behaves like accept metadata request1462 accepts the metadata request1463 avoids N+1 database queries1464 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1465 behaves like accept metadata request1466 accepts the metadata request1467 avoids N+1 database queries1468 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1469 behaves like redirect metadata request1470 redirects metadata request1471 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1472 behaves like reject metadata request1473 rejects the metadata request1474 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1475 behaves like redirect metadata request1476 redirects metadata request1477 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1478 behaves like reject metadata request1479 rejects the metadata request1480 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1481 behaves like redirect metadata request1482 redirects metadata request1483 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1484 behaves like reject metadata request1485 rejects the metadata request1486 with a developer1487 project path with a dot1488 behaves like accept metadata request1489 accepts the metadata request1490 avoids N+1 database queries1491 with a job token1492 behaves like reject metadata request1493 rejects the metadata request1494 GET /api/v4/packages/npm/-/package/*package_name/dist-tags1495 behaves like handling get dist tags requests1496 with a group namespace1497 behaves like handling all conditions1498 with oauth token1499 behaves like handling different package names, visibilities and user roles1500 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1501 behaves like accept package tags request1502 with valid package name1503 returns a valid json response1504 returns two package tags1505 behaves like returning response status1506 returns ok1507 with invalid package name1508 package_name: "%20", status: :bad_request1509 behaves like returning response status1510 returns bad_request1511 package_name: nil, status: :not_found1512 behaves like returning response status1513 returns not_found1514 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1515 behaves like accept package tags request1516 with valid package name1517 returns a valid json response1518 returns two package tags1519 behaves like returning response status1520 returns ok1521 with invalid package name1522 package_name: "%20", status: :bad_request1523 behaves like returning response status1524 returns bad_request1525 package_name: nil, status: :not_found1526 behaves like returning response status1527 returns not_found1528 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1529 behaves like accept package tags request1530 with valid package name1531 returns a valid json response1532 returns two package tags1533 behaves like returning response status1534 returns ok1535 with invalid package name1536 package_name: "%20", status: :bad_request1537 behaves like returning response status1538 returns bad_request1539 package_name: nil, status: :not_found1540 behaves like returning response status1541 returns not_found1542 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1543 behaves like reject package tags request1544 behaves like returning response status1545 returns not_found1546 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1547 behaves like reject package tags request1548 behaves like returning response status1549 returns not_found1550 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1551 behaves like reject package tags request1552 behaves like returning response status1553 returns not_found1554 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1555 behaves like reject package tags request1556 behaves like returning response status1557 returns not_found1558 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1559 behaves like reject package tags request1560 behaves like returning response status1561 returns not_found1562 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1563 behaves like reject package tags request1564 behaves like returning response status1565 returns not_found1566 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1567 behaves like reject package tags request1568 behaves like returning response status1569 returns not_found1570 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1571 behaves like reject package tags request1572 behaves like returning response status1573 returns not_found1574 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1575 behaves like reject package tags request1576 behaves like returning response status1577 returns not_found1578 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1579 behaves like reject package tags request1580 behaves like returning response status1581 returns not_found1582 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1583 behaves like reject package tags request1584 behaves like returning response status1585 returns forbidden1586 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1587 behaves like accept package tags request1588 with valid package name1589 returns a valid json response1590 returns two package tags1591 behaves like returning response status1592 returns ok1593 with invalid package name1594 package_name: "%20", status: :bad_request1595 behaves like returning response status1596 returns bad_request1597 package_name: nil, status: :not_found1598 behaves like returning response status1599 returns not_found1600 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1601 behaves like reject package tags request1602 behaves like returning response status1603 returns not_found1604 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1605 behaves like reject package tags request1606 behaves like returning response status1607 returns not_found1608 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1609 behaves like reject package tags request1610 behaves like returning response status1611 returns not_found1612 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1613 behaves like reject package tags request1614 behaves like returning response status1615 returns not_found1616 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1617 behaves like reject package tags request1618 behaves like returning response status1619 returns not_found1620 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1621 behaves like reject package tags request1622 behaves like returning response status1623 returns not_found1624 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1625 behaves like reject package tags request1626 behaves like returning response status1627 returns not_found1628 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1629 behaves like reject package tags request1630 behaves like returning response status1631 returns not_found1632 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1633 behaves like reject package tags request1634 behaves like returning response status1635 returns not_found1636 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1637 behaves like reject package tags request1638 behaves like returning response status1639 returns not_found1640 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1641 behaves like accept package tags request1642 with valid package name1643 returns a valid json response1644 returns two package tags1645 behaves like returning response status1646 returns ok1647 with invalid package name1648 package_name: "%20", status: :bad_request1649 behaves like returning response status1650 returns bad_request1651 package_name: nil, status: :not_found1652 behaves like returning response status1653 returns not_found1654 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1655 behaves like accept package tags request1656 with valid package name1657 returns a valid json response1658 returns two package tags1659 behaves like returning response status1660 returns ok1661 with invalid package name1662 package_name: "%20", status: :bad_request1663 behaves like returning response status1664 returns bad_request1665 package_name: nil, status: :not_found1666 behaves like returning response status1667 returns not_found1668 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1669 behaves like reject package tags request1670 behaves like returning response status1671 returns not_found1672 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1673 behaves like reject package tags request1674 behaves like returning response status1675 returns not_found1676 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1677 behaves like reject package tags request1678 behaves like returning response status1679 returns not_found1680 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1681 behaves like reject package tags request1682 behaves like returning response status1683 returns not_found1684 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1685 behaves like reject package tags request1686 behaves like returning response status1687 returns not_found1688 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1689 behaves like reject package tags request1690 behaves like returning response status1691 returns not_found1692 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1693 behaves like reject package tags request1694 behaves like returning response status1695 returns not_found1696 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1697 behaves like reject package tags request1698 behaves like returning response status1699 returns not_found1700 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1701 behaves like reject package tags request1702 behaves like returning response status1703 returns not_found1704 with personal access token1705 behaves like handling different package names, visibilities and user roles1706 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1707 behaves like accept package tags request1708 with valid package name1709 returns a valid json response1710 returns two package tags1711 behaves like returning response status1712 returns ok1713 with invalid package name1714 package_name: "%20", status: :bad_request1715 behaves like returning response status1716 returns bad_request1717 package_name: nil, status: :not_found1718 behaves like returning response status1719 returns not_found1720 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1721 behaves like accept package tags request1722 with valid package name1723 returns a valid json response1724 returns two package tags1725 behaves like returning response status1726 returns ok1727 with invalid package name1728 package_name: "%20", status: :bad_request1729 behaves like returning response status1730 returns bad_request1731 package_name: nil, status: :not_found1732 behaves like returning response status1733 returns not_found1734 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1735 behaves like accept package tags request1736 with valid package name1737 returns a valid json response1738 returns two package tags1739 behaves like returning response status1740 returns ok1741 with invalid package name1742 package_name: "%20", status: :bad_request1743 behaves like returning response status1744 returns bad_request1745 package_name: nil, status: :not_found1746 behaves like returning response status1747 returns not_found1748 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1749 behaves like reject package tags request1750 behaves like returning response status1751 returns not_found1752 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1753 behaves like reject package tags request1754 behaves like returning response status1755 returns not_found1756 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1757 behaves like reject package tags request1758 behaves like returning response status1759 returns not_found1760 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1761 behaves like reject package tags request1762 behaves like returning response status1763 returns not_found1764 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1765 behaves like reject package tags request1766 behaves like returning response status1767 returns not_found1768 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1769 behaves like reject package tags request1770 behaves like returning response status1771 returns not_found1772 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1773 behaves like reject package tags request1774 behaves like returning response status1775 returns not_found1776 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1777 behaves like reject package tags request1778 behaves like returning response status1779 returns not_found1780 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1781 behaves like reject package tags request1782 behaves like returning response status1783 returns not_found1784 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1785 behaves like reject package tags request1786 behaves like returning response status1787 returns not_found1788 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1789 behaves like reject package tags request1790 behaves like returning response status1791 returns forbidden1792 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1793 behaves like accept package tags request1794 with valid package name1795 returns a valid json response1796 returns two package tags1797 behaves like returning response status1798 returns ok1799 with invalid package name1800 package_name: "%20", status: :bad_request1801 behaves like returning response status1802 returns bad_request1803 package_name: nil, status: :not_found1804 behaves like returning response status1805 returns not_found1806 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1807 behaves like reject package tags request1808 behaves like returning response status1809 returns not_found1810 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1811 behaves like reject package tags request1812 behaves like returning response status1813 returns not_found1814 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1815 behaves like reject package tags request1816 behaves like returning response status1817 returns not_found1818 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1819 behaves like reject package tags request1820 behaves like returning response status1821 returns not_found1822 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1823 behaves like reject package tags request1824 behaves like returning response status1825 returns not_found1826 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1827 behaves like reject package tags request1828 behaves like returning response status1829 returns not_found1830 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1831 behaves like reject package tags request1832 behaves like returning response status1833 returns not_found1834 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1835 behaves like reject package tags request1836 behaves like returning response status1837 returns not_found1838 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1839 behaves like reject package tags request1840 behaves like returning response status1841 returns not_found1842 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1843 behaves like reject package tags request1844 behaves like returning response status1845 returns not_found1846 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1847 behaves like accept package tags request1848 with valid package name1849 returns a valid json response1850 returns two package tags1851 behaves like returning response status1852 returns ok1853 with invalid package name1854 package_name: "%20", status: :bad_request1855 behaves like returning response status1856 returns bad_request1857 package_name: nil, status: :not_found1858 behaves like returning response status1859 returns not_found1860 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1861 behaves like accept package tags request1862 with valid package name1863 returns a valid json response1864 returns two package tags1865 behaves like returning response status1866 returns ok1867 with invalid package name1868 package_name: "%20", status: :bad_request1869 behaves like returning response status1870 returns bad_request1871 package_name: nil, status: :not_found1872 behaves like returning response status1873 returns not_found1874 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1875 behaves like reject package tags request1876 behaves like returning response status1877 returns not_found1878 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1879 behaves like reject package tags request1880 behaves like returning response status1881 returns not_found1882 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1883 behaves like reject package tags request1884 behaves like returning response status1885 returns not_found1886 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1887 behaves like reject package tags request1888 behaves like returning response status1889 returns not_found1890 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1891 behaves like reject package tags request1892 behaves like returning response status1893 returns not_found1894 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1895 behaves like reject package tags request1896 behaves like returning response status1897 returns not_found1898 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1899 behaves like reject package tags request1900 behaves like returning response status1901 returns not_found1902 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1903 behaves like reject package tags request1904 behaves like returning response status1905 returns not_found1906 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1907 behaves like reject package tags request1908 behaves like returning response status1909 returns not_found1910 with a user namespace1911 behaves like handling all conditions1912 with oauth token1913 behaves like handling different package names, visibilities and user roles1914 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1915 behaves like accept package tags request1916 with valid package name1917 returns a valid json response1918 returns two package tags1919 behaves like returning response status1920 returns ok1921 with invalid package name1922 package_name: "%20", status: :bad_request1923 behaves like returning response status1924 returns bad_request1925 package_name: nil, status: :not_found1926 behaves like returning response status1927 returns not_found1928 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1929 behaves like accept package tags request1930 with valid package name1931 returns a valid json response1932 returns two package tags1933 behaves like returning response status1934 returns ok1935 with invalid package name1936 package_name: "%20", status: :bad_request1937 behaves like returning response status1938 returns bad_request1939 package_name: nil, status: :not_found1940 behaves like returning response status1941 returns not_found1942 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1943 behaves like accept package tags request1944 with valid package name1945 returns a valid json response1946 returns two package tags1947 behaves like returning response status1948 returns ok1949 with invalid package name1950 package_name: "%20", status: :bad_request1951 behaves like returning response status1952 returns bad_request1953 package_name: nil, status: :not_found1954 behaves like returning response status1955 returns not_found1956 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1957 behaves like reject package tags request1958 behaves like returning response status1959 returns not_found1960 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1961 behaves like reject package tags request1962 behaves like returning response status1963 returns not_found1964 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1965 behaves like reject package tags request1966 behaves like returning response status1967 returns not_found1968 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1969 behaves like reject package tags request1970 behaves like returning response status1971 returns not_found1972 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1973 behaves like reject package tags request1974 behaves like returning response status1975 returns not_found1976 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1977 behaves like reject package tags request1978 behaves like returning response status1979 returns not_found1980 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1981 behaves like reject package tags request1982 behaves like returning response status1983 returns not_found1984 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1985 behaves like reject package tags request1986 behaves like returning response status1987 returns not_found1988 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1989 behaves like reject package tags request1990 behaves like returning response status1991 returns not_found1992 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1993 behaves like reject package tags request1994 behaves like returning response status1995 returns not_found1996 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1997 behaves like reject package tags request1998 behaves like returning response status1999 returns forbidden2000 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2001 behaves like accept package tags request2002 with valid package name2003 returns a valid json response2004 returns two package tags2005 behaves like returning response status2006 returns ok2007 with invalid package name2008 package_name: "%20", status: :bad_request2009 behaves like returning response status2010 returns bad_request2011 package_name: nil, status: :not_found2012 behaves like returning response status2013 returns not_found2014 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2015 behaves like reject package tags request2016 behaves like returning response status2017 returns not_found2018 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2019 behaves like reject package tags request2020 behaves like returning response status2021 returns not_found2022 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2023 behaves like reject package tags request2024 behaves like returning response status2025 returns not_found2026 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2027 behaves like reject package tags request2028 behaves like returning response status2029 returns not_found2030 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2031 behaves like reject package tags request2032 behaves like returning response status2033 returns not_found2034 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2035 behaves like reject package tags request2036 behaves like returning response status2037 returns not_found2038 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2039 behaves like reject package tags request2040 behaves like returning response status2041 returns not_found2042 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2043 behaves like reject package tags request2044 behaves like returning response status2045 returns not_found2046 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found2047 behaves like reject package tags request2048 behaves like returning response status2049 returns not_found2050 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2051 behaves like reject package tags request2052 behaves like returning response status2053 returns not_found2054 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2055 behaves like accept package tags request2056 with valid package name2057 returns a valid json response2058 returns two package tags2059 behaves like returning response status2060 returns ok2061 with invalid package name2062 package_name: "%20", status: :bad_request2063 behaves like returning response status2064 returns bad_request2065 package_name: nil, status: :not_found2066 behaves like returning response status2067 returns not_found2068 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2069 behaves like accept package tags request2070 with valid package name2071 returns a valid json response2072 returns two package tags2073 behaves like returning response status2074 returns ok2075 with invalid package name2076 package_name: "%20", status: :bad_request2077 behaves like returning response status2078 returns bad_request2079 package_name: nil, status: :not_found2080 behaves like returning response status2081 returns not_found2082 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2083 behaves like reject package tags request2084 behaves like returning response status2085 returns not_found2086 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2087 behaves like reject package tags request2088 behaves like returning response status2089 returns not_found2090 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2091 behaves like reject package tags request2092 behaves like returning response status2093 returns not_found2094 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2095 behaves like reject package tags request2096 behaves like returning response status2097 returns not_found2098 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2099 behaves like reject package tags request2100 behaves like returning response status2101 returns not_found2102 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2103 behaves like reject package tags request2104 behaves like returning response status2105 returns not_found2106 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2107 behaves like reject package tags request2108 behaves like returning response status2109 returns not_found2110 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2111 behaves like reject package tags request2112 behaves like returning response status2113 returns not_found2114 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2115 behaves like reject package tags request2116 behaves like returning response status2117 returns not_found2118 with personal access token2119 behaves like handling different package names, visibilities and user roles2120 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2121 behaves like accept package tags request2122 with valid package name2123 returns a valid json response2124 returns two package tags2125 behaves like returning response status2126 returns ok2127 with invalid package name2128 package_name: "%20", status: :bad_request2129 behaves like returning response status2130 returns bad_request2131 package_name: nil, status: :not_found2132 behaves like returning response status2133 returns not_found2134 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2135 behaves like accept package tags request2136 with valid package name2137 returns a valid json response2138 returns two package tags2139 behaves like returning response status2140 returns ok2141 with invalid package name2142 package_name: "%20", status: :bad_request2143 behaves like returning response status2144 returns bad_request2145 package_name: nil, status: :not_found2146 behaves like returning response status2147 returns not_found2148 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2149 behaves like accept package tags request2150 with valid package name2151 returns a valid json response2152 returns two package tags2153 behaves like returning response status2154 returns ok2155 with invalid package name2156 package_name: "%20", status: :bad_request2157 behaves like returning response status2158 returns bad_request2159 package_name: nil, status: :not_found2160 behaves like returning response status2161 returns not_found2162 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2163 behaves like reject package tags request2164 behaves like returning response status2165 returns not_found2166 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2167 behaves like reject package tags request2168 behaves like returning response status2169 returns not_found2170 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2171 behaves like reject package tags request2172 behaves like returning response status2173 returns not_found2174 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2175 behaves like reject package tags request2176 behaves like returning response status2177 returns not_found2178 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2179 behaves like reject package tags request2180 behaves like returning response status2181 returns not_found2182 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2183 behaves like reject package tags request2184 behaves like returning response status2185 returns not_found2186 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2187 behaves like reject package tags request2188 behaves like returning response status2189 returns not_found2190 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found2191 behaves like reject package tags request2192 behaves like returning response status2193 returns not_found2194 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found2195 behaves like reject package tags request2196 behaves like returning response status2197 returns not_found2198 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2199 behaves like reject package tags request2200 behaves like returning response status2201 returns not_found2202 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2203 behaves like reject package tags request2204 behaves like returning response status2205 returns forbidden2206 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2207 behaves like accept package tags request2208 with valid package name2209 returns a valid json response2210 returns two package tags2211 behaves like returning response status2212 returns ok2213 with invalid package name2214 package_name: "%20", status: :bad_request2215 behaves like returning response status2216 returns bad_request2217 package_name: nil, status: :not_found2218 behaves like returning response status2219 returns not_found2220 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2221 behaves like reject package tags request2222 behaves like returning response status2223 returns not_found2224 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2225 behaves like reject package tags request2226 behaves like returning response status2227 returns not_found2228 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2229 behaves like reject package tags request2230 behaves like returning response status2231 returns not_found2232 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2233 behaves like reject package tags request2234 behaves like returning response status2235 returns not_found2236 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2237 behaves like reject package tags request2238 behaves like returning response status2239 returns not_found2240 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2241 behaves like reject package tags request2242 behaves like returning response status2243 returns not_found2244 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2245 behaves like reject package tags request2246 behaves like returning response status2247 returns not_found2248 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2249 behaves like reject package tags request2250 behaves like returning response status2251 returns not_found2252 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found2253 behaves like reject package tags request2254 behaves like returning response status2255 returns not_found2256 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2257 behaves like reject package tags request2258 behaves like returning response status2259 returns not_found2260 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2261 behaves like accept package tags request2262 with valid package name2263 returns a valid json response2264 returns two package tags2265 behaves like returning response status2266 returns ok2267 with invalid package name2268 package_name: "%20", status: :bad_request2269 behaves like returning response status2270 returns bad_request2271 package_name: nil, status: :not_found2272 behaves like returning response status2273 returns not_found2274 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2275 behaves like accept package tags request2276 with valid package name2277 returns a valid json response2278 returns two package tags2279 behaves like returning response status2280 returns ok2281 with invalid package name2282 package_name: "%20", status: :bad_request2283 behaves like returning response status2284 returns bad_request2285 package_name: nil, status: :not_found2286 behaves like returning response status2287 returns not_found2288 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2289 behaves like reject package tags request2290 behaves like returning response status2291 returns not_found2292 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2293 behaves like reject package tags request2294 behaves like returning response status2295 returns not_found2296 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2297 behaves like reject package tags request2298 behaves like returning response status2299 returns not_found2300 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2301 behaves like reject package tags request2302 behaves like returning response status2303 returns not_found2304 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2305 behaves like reject package tags request2306 behaves like returning response status2307 returns not_found2308 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2309 behaves like reject package tags request2310 behaves like returning response status2311 returns not_found2312 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2313 behaves like reject package tags request2314 behaves like returning response status2315 returns not_found2316 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2317 behaves like reject package tags request2318 behaves like returning response status2319 returns not_found2320 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2321 behaves like reject package tags request2322 behaves like returning response status2323 returns not_found2324 PUT /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag2325 behaves like handling create dist tag requests2326 with a group namespace2327 behaves like handling all conditions2328 with oauth token2329 behaves like handling different package names, visibilities and user roles2330 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2331 behaves like reject create package tag request2332 behaves like returning response status2333 returns forbidden2334 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2335 behaves like reject create package tag request2336 behaves like returning response status2337 returns forbidden2338 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2339 behaves like accept create package tag request2340 with valid package name2341 creates the package tag2342 returns a valid response2343 behaves like returning response status2344 returns no_content2345 with already existing tag2346 reuses existing tag2347 returns a valid response2348 behaves like returning response status2349 returns no_content2350 with invalid package name2351 package_name: "unknown", status: :not_found2352 behaves like returning response status2353 returns not_found2354 package_name: "", status: :not_found2355 behaves like returning response status2356 returns not_found2357 package_name: "%20", status: :bad_request2358 behaves like returning response status2359 returns bad_request2360 with invalid tag name2361 tag_name: "", status: :not_found2362 behaves like returning response status2363 returns not_found2364 tag_name: "%20", status: :bad_request2365 behaves like returning response status2366 returns bad_request2367 with invalid version2368 version: " ", status: :bad_request2369 behaves like returning response status2370 returns bad_request2371 version: "", status: :bad_request2372 behaves like returning response status2373 returns bad_request2374 version: nil, status: :bad_request2375 behaves like returning response status2376 returns bad_request2377 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2378 behaves like reject create package tag request2379 behaves like returning response status2380 returns not_found2381 package_name_type: :scoped_no_naming_convention, visibility: :public, 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: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2386 behaves like reject create package tag request2387 behaves like returning response status2388 returns not_found2389 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2390 behaves like reject create package tag request2391 behaves like returning response status2392 returns not_found2393 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2394 behaves like reject create package tag request2395 behaves like returning response status2396 returns not_found2397 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2398 behaves like reject create package tag request2399 behaves like returning response status2400 returns not_found2401 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2402 behaves like reject create package tag request2403 behaves like returning response status2404 returns not_found2405 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2406 behaves like reject create package tag request2407 behaves like returning response status2408 returns not_found2409 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2410 behaves like reject create package tag request2411 behaves like returning response status2412 returns not_found2413 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2414 behaves like reject create package tag request2415 behaves like returning response status2416 returns not_found2417 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2418 behaves like reject create package tag request2419 behaves like returning response status2420 returns forbidden2421 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2422 behaves like accept create package tag request2423 with valid package name2424 creates the package tag2425 returns a valid response2426 behaves like returning response status2427 returns no_content2428 with already existing tag2429 reuses existing tag2430 returns a valid response2431 behaves like returning response status2432 returns no_content2433 with invalid package name2434 package_name: "unknown", status: :not_found2435 behaves like returning response status2436 returns not_found2437 package_name: "", status: :not_found2438 behaves like returning response status2439 returns not_found2440 package_name: "%20", status: :bad_request2441 behaves like returning response status2442 returns bad_request2443 with invalid tag name2444 tag_name: "", status: :not_found2445 behaves like returning response status2446 returns not_found2447 tag_name: "%20", status: :bad_request2448 behaves like returning response status2449 returns bad_request2450 with invalid version2451 version: " ", status: :bad_request2452 behaves like returning response status2453 returns bad_request2454 version: "", status: :bad_request2455 behaves like returning response status2456 returns bad_request2457 version: nil, status: :bad_request2458 behaves like returning response status2459 returns bad_request2460 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2461 behaves like reject create package tag request2462 behaves like returning response status2463 returns not_found2464 package_name_type: :scoped_no_naming_convention, visibility: :private, 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: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2469 behaves like reject create package tag request2470 behaves like returning response status2471 returns not_found2472 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2473 behaves like reject create package tag request2474 behaves like returning response status2475 returns not_found2476 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2477 behaves like reject create package tag request2478 behaves like returning response status2479 returns not_found2480 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2481 behaves like reject create package tag request2482 behaves like returning response status2483 returns not_found2484 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2485 behaves like reject create package tag request2486 behaves like returning response status2487 returns not_found2488 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2489 behaves like reject create package tag request2490 behaves like returning response status2491 returns not_found2492 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2493 behaves like reject create package tag request2494 behaves like returning response status2495 returns not_found2496 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2497 behaves like reject create package tag request2498 behaves like returning response status2499 returns forbidden2500 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2501 behaves like reject create package tag request2502 behaves like returning response status2503 returns forbidden2504 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2505 behaves like accept create package tag request2506 with valid package name2507 creates the package tag2508 returns a valid response2509 behaves like returning response status2510 returns no_content2511 with already existing tag2512 reuses existing tag2513 returns a valid response2514 behaves like returning response status2515 returns no_content2516 with invalid package name2517 package_name: "unknown", status: :not_found2518 behaves like returning response status2519 returns not_found2520 package_name: "", status: :not_found2521 behaves like returning response status2522 returns not_found2523 package_name: "%20", status: :bad_request2524 behaves like returning response status2525 returns bad_request2526 with invalid tag name2527 tag_name: "", status: :not_found2528 behaves like returning response status2529 returns not_found2530 tag_name: "%20", status: :bad_request2531 behaves like returning response status2532 returns bad_request2533 with invalid version2534 version: " ", status: :bad_request2535 behaves like returning response status2536 returns bad_request2537 version: "", status: :bad_request2538 behaves like returning response status2539 returns bad_request2540 version: nil, status: :bad_request2541 behaves like returning response status2542 returns bad_request2543 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2544 behaves like reject create package tag request2545 behaves like returning response status2546 returns not_found2547 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2548 behaves like reject create package tag request2549 behaves like returning response status2550 returns not_found2551 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2552 behaves like reject create package tag request2553 behaves like returning response status2554 returns not_found2555 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2556 behaves like reject create package tag request2557 behaves like returning response status2558 returns not_found2559 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2560 behaves like reject create package tag request2561 behaves like returning response status2562 returns not_found2563 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2564 behaves like reject create package tag request2565 behaves like returning response status2566 returns not_found2567 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2568 behaves like reject create package tag request2569 behaves like returning response status2570 returns not_found2571 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2572 behaves like reject create package tag request2573 behaves like returning response status2574 returns not_found2575 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2576 behaves like reject create package tag request2577 behaves like returning response status2578 returns not_found2579 with personal access token2580 behaves like handling different package names, visibilities and user roles2581 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2582 behaves like reject create package tag request2583 behaves like returning response status2584 returns forbidden2585 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2586 behaves like reject create package tag request2587 behaves like returning response status2588 returns forbidden2589 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2590 behaves like accept create package tag request2591 with valid package name2592 creates the package tag2593 returns a valid response2594 behaves like returning response status2595 returns no_content2596 with already existing tag2597 reuses existing tag2598 returns a valid response2599 behaves like returning response status2600 returns no_content2601 with invalid package name2602 package_name: "unknown", status: :not_found2603 behaves like returning response status2604 returns not_found2605 package_name: "", status: :not_found2606 behaves like returning response status2607 returns not_found2608 package_name: "%20", status: :bad_request2609 behaves like returning response status2610 returns bad_request2611 with invalid tag name2612 tag_name: "", status: :not_found2613 behaves like returning response status2614 returns not_found2615 tag_name: "%20", status: :bad_request2616 behaves like returning response status2617 returns bad_request2618 with invalid version2619 version: " ", status: :bad_request2620 behaves like returning response status2621 returns bad_request2622 version: "", status: :bad_request2623 behaves like returning response status2624 returns bad_request2625 version: nil, status: :bad_request2626 behaves like returning response status2627 returns bad_request2628 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2629 behaves like reject create package tag request2630 behaves like returning response status2631 returns not_found2632 package_name_type: :scoped_no_naming_convention, visibility: :public, 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: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2637 behaves like reject create package tag request2638 behaves like returning response status2639 returns not_found2640 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2641 behaves like reject create package tag request2642 behaves like returning response status2643 returns not_found2644 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2645 behaves like reject create package tag request2646 behaves like returning response status2647 returns not_found2648 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2649 behaves like reject create package tag request2650 behaves like returning response status2651 returns not_found2652 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2653 behaves like reject create package tag request2654 behaves like returning response status2655 returns not_found2656 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2657 behaves like reject create package tag request2658 behaves like returning response status2659 returns not_found2660 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2661 behaves like reject create package tag request2662 behaves like returning response status2663 returns not_found2664 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2665 behaves like reject create package tag request2666 behaves like returning response status2667 returns not_found2668 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2669 behaves like reject create package tag request2670 behaves like returning response status2671 returns forbidden2672 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2673 behaves like accept create package tag request2674 with valid package name2675 creates the package tag2676 returns a valid response2677 behaves like returning response status2678 returns no_content2679 with already existing tag2680 reuses existing tag2681 returns a valid response2682 behaves like returning response status2683 returns no_content2684 with invalid package name2685 package_name: "unknown", status: :not_found2686 behaves like returning response status2687 returns not_found2688 package_name: "", status: :not_found2689 behaves like returning response status2690 returns not_found2691 package_name: "%20", status: :bad_request2692 behaves like returning response status2693 returns bad_request2694 with invalid tag name2695 tag_name: "", status: :not_found2696 behaves like returning response status2697 returns not_found2698 tag_name: "%20", status: :bad_request2699 behaves like returning response status2700 returns bad_request2701 with invalid version2702 version: " ", status: :bad_request2703 behaves like returning response status2704 returns bad_request2705 version: "", status: :bad_request2706 behaves like returning response status2707 returns bad_request2708 version: nil, status: :bad_request2709 behaves like returning response status2710 returns bad_request2711 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2712 behaves like reject create package tag request2713 behaves like returning response status2714 returns not_found2715 package_name_type: :scoped_no_naming_convention, visibility: :private, 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: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2720 behaves like reject create package tag request2721 behaves like returning response status2722 returns not_found2723 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2724 behaves like reject create package tag request2725 behaves like returning response status2726 returns not_found2727 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2728 behaves like reject create package tag request2729 behaves like returning response status2730 returns not_found2731 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2732 behaves like reject create package tag request2733 behaves like returning response status2734 returns not_found2735 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2736 behaves like reject create package tag request2737 behaves like returning response status2738 returns not_found2739 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2740 behaves like reject create package tag request2741 behaves like returning response status2742 returns not_found2743 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2744 behaves like reject create package tag request2745 behaves like returning response status2746 returns not_found2747 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2748 behaves like reject create package tag request2749 behaves like returning response status2750 returns forbidden2751 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2752 behaves like reject create package tag request2753 behaves like returning response status2754 returns forbidden2755 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2756 behaves like accept create package tag request2757 with valid package name2758 creates the package tag2759 returns a valid response2760 behaves like returning response status2761 returns no_content2762 with already existing tag2763 reuses existing tag2764 returns a valid response2765 behaves like returning response status2766 returns no_content2767 with invalid package name2768 package_name: "unknown", status: :not_found2769 behaves like returning response status2770 returns not_found2771 package_name: "", status: :not_found2772 behaves like returning response status2773 returns not_found2774 package_name: "%20", status: :bad_request2775 behaves like returning response status2776 returns bad_request2777 with invalid tag name2778 tag_name: "", status: :not_found2779 behaves like returning response status2780 returns not_found2781 tag_name: "%20", status: :bad_request2782 behaves like returning response status2783 returns bad_request2784 with invalid version2785 version: " ", status: :bad_request2786 behaves like returning response status2787 returns bad_request2788 version: "", status: :bad_request2789 behaves like returning response status2790 returns bad_request2791 version: nil, status: :bad_request2792 behaves like returning response status2793 returns bad_request2794 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2795 behaves like reject create package tag request2796 behaves like returning response status2797 returns not_found2798 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2799 behaves like reject create package tag request2800 behaves like returning response status2801 returns not_found2802 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2803 behaves like reject create package tag request2804 behaves like returning response status2805 returns not_found2806 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2807 behaves like reject create package tag request2808 behaves like returning response status2809 returns not_found2810 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2811 behaves like reject create package tag request2812 behaves like returning response status2813 returns not_found2814 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2815 behaves like reject create package tag request2816 behaves like returning response status2817 returns not_found2818 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2819 behaves like reject create package tag request2820 behaves like returning response status2821 returns not_found2822 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2823 behaves like reject create package tag request2824 behaves like returning response status2825 returns not_found2826 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2827 behaves like reject create package tag request2828 behaves like returning response status2829 returns not_found2830 with a user namespace2831 behaves like handling all conditions2832 with oauth token2833 behaves like handling different package names, visibilities and user roles2834 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2835 behaves like reject create package tag request2836 behaves like returning response status2837 returns forbidden2838 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2839 behaves like reject create package tag request2840 behaves like returning response status2841 returns forbidden2842 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2843 behaves like accept create package tag request2844 with valid package name2845 creates the package tag2846 returns a valid response2847 behaves like returning response status2848 returns no_content2849 with already existing tag2850 reuses existing tag2851 returns a valid response2852 behaves like returning response status2853 returns no_content2854 with invalid package name2855 package_name: "unknown", status: :not_found2856 behaves like returning response status2857 returns not_found2858 package_name: "", status: :not_found2859 behaves like returning response status2860 returns not_found2861 package_name: "%20", status: :bad_request2862 behaves like returning response status2863 returns bad_request2864 with invalid tag name2865 tag_name: "", status: :not_found2866 behaves like returning response status2867 returns not_found2868 tag_name: "%20", status: :bad_request2869 behaves like returning response status2870 returns bad_request2871 with invalid version2872 version: " ", status: :bad_request2873 behaves like returning response status2874 returns bad_request2875 version: "", status: :bad_request2876 behaves like returning response status2877 returns bad_request2878 version: nil, status: :bad_request2879 behaves like returning response status2880 returns bad_request2881 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2882 behaves like reject create package tag request2883 behaves like returning response status2884 returns not_found2885 package_name_type: :scoped_no_naming_convention, visibility: :public, 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: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2890 behaves like reject create package tag request2891 behaves like returning response status2892 returns not_found2893 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2894 behaves like reject create package tag request2895 behaves like returning response status2896 returns not_found2897 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2898 behaves like reject create package tag request2899 behaves like returning response status2900 returns not_found2901 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2902 behaves like reject create package tag request2903 behaves like returning response status2904 returns not_found2905 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2906 behaves like reject create package tag request2907 behaves like returning response status2908 returns not_found2909 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2910 behaves like reject create package tag request2911 behaves like returning response status2912 returns not_found2913 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2914 behaves like reject create package tag request2915 behaves like returning response status2916 returns not_found2917 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2918 behaves like reject create package tag request2919 behaves like returning response status2920 returns not_found2921 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2922 behaves like reject create package tag request2923 behaves like returning response status2924 returns forbidden2925 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2926 behaves like accept create package tag request2927 with valid package name2928 creates the package tag2929 returns a valid response2930 behaves like returning response status2931 returns no_content2932 with already existing tag2933 reuses existing tag2934 returns a valid response2935 behaves like returning response status2936 returns no_content2937 with invalid package name2938 package_name: "unknown", status: :not_found2939 behaves like returning response status2940 returns not_found2941 package_name: "", status: :not_found2942 behaves like returning response status2943 returns not_found2944 package_name: "%20", status: :bad_request2945 behaves like returning response status2946 returns bad_request2947 with invalid tag name2948 tag_name: "", status: :not_found2949 behaves like returning response status2950 returns not_found2951 tag_name: "%20", status: :bad_request2952 behaves like returning response status2953 returns bad_request2954 with invalid version2955 version: " ", status: :bad_request2956 behaves like returning response status2957 returns bad_request2958 version: "", status: :bad_request2959 behaves like returning response status2960 returns bad_request2961 version: nil, status: :bad_request2962 behaves like returning response status2963 returns bad_request2964 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2965 behaves like reject create package tag request2966 behaves like returning response status2967 returns not_found2968 package_name_type: :scoped_no_naming_convention, visibility: :private, 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: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2973 behaves like reject create package tag request2974 behaves like returning response status2975 returns not_found2976 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2977 behaves like reject create package tag request2978 behaves like returning response status2979 returns not_found2980 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2981 behaves like reject create package tag request2982 behaves like returning response status2983 returns not_found2984 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2985 behaves like reject create package tag request2986 behaves like returning response status2987 returns not_found2988 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2989 behaves like reject create package tag request2990 behaves like returning response status2991 returns not_found2992 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2993 behaves like reject create package tag request2994 behaves like returning response status2995 returns not_found2996 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2997 behaves like reject create package tag request2998 behaves like returning response status2999 returns not_found3000 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3001 behaves like reject create package tag request3002 behaves like returning response status3003 returns forbidden3004 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3005 behaves like reject create package tag request3006 behaves like returning response status3007 returns forbidden3008 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3009 behaves like accept create package tag request3010 with valid package name3011 creates the package tag3012 returns a valid response3013 behaves like returning response status3014 returns no_content3015 with already existing tag3016 reuses existing tag3017 returns a valid response3018 behaves like returning response status3019 returns no_content3020 with invalid package name3021 package_name: "unknown", status: :not_found3022 behaves like returning response status3023 returns not_found3024 package_name: "", status: :not_found3025 behaves like returning response status3026 returns not_found3027 package_name: "%20", status: :bad_request3028 behaves like returning response status3029 returns bad_request3030 with invalid tag name3031 tag_name: "", status: :not_found3032 behaves like returning response status3033 returns not_found3034 tag_name: "%20", status: :bad_request3035 behaves like returning response status3036 returns bad_request3037 with invalid version3038 version: " ", status: :bad_request3039 behaves like returning response status3040 returns bad_request3041 version: "", status: :bad_request3042 behaves like returning response status3043 returns bad_request3044 version: nil, status: :bad_request3045 behaves like returning response status3046 returns bad_request3047 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3048 behaves like reject create package tag request3049 behaves like returning response status3050 returns not_found3051 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3052 behaves like reject create package tag request3053 behaves like returning response status3054 returns not_found3055 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3056 behaves like reject create package tag request3057 behaves like returning response status3058 returns not_found3059 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3060 behaves like reject create package tag request3061 behaves like returning response status3062 returns not_found3063 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3064 behaves like reject create package tag request3065 behaves like returning response status3066 returns not_found3067 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3068 behaves like reject create package tag request3069 behaves like returning response status3070 returns not_found3071 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3072 behaves like reject create package tag request3073 behaves like returning response status3074 returns not_found3075 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3076 behaves like reject create package tag request3077 behaves like returning response status3078 returns not_found3079 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3080 behaves like reject create package tag request3081 behaves like returning response status3082 returns not_found3083 with personal access token3084 behaves like handling different package names, visibilities and user roles3085 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3086 behaves like reject create package tag request3087 behaves like returning response status3088 returns forbidden3089 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3090 behaves like reject create package tag request3091 behaves like returning response status3092 returns forbidden3093 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3094 behaves like accept create package tag request3095 with valid package name3096 creates the package tag3097 returns a valid response3098 behaves like returning response status3099 returns no_content3100 with already existing tag3101 reuses existing tag3102 returns a valid response3103 behaves like returning response status3104 returns no_content3105 with invalid package name3106 package_name: "unknown", status: :not_found3107 behaves like returning response status3108 returns not_found3109 package_name: "", status: :not_found3110 behaves like returning response status3111 returns not_found3112 package_name: "%20", status: :bad_request3113 behaves like returning response status3114 returns bad_request3115 with invalid tag name3116 tag_name: "", status: :not_found3117 behaves like returning response status3118 returns not_found3119 tag_name: "%20", status: :bad_request3120 behaves like returning response status3121 returns bad_request3122 with invalid version3123 version: " ", status: :bad_request3124 behaves like returning response status3125 returns bad_request3126 version: "", status: :bad_request3127 behaves like returning response status3128 returns bad_request3129 version: nil, status: :bad_request3130 behaves like returning response status3131 returns bad_request3132 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3133 behaves like reject create package tag request3134 behaves like returning response status3135 returns not_found3136 package_name_type: :scoped_no_naming_convention, visibility: :public, 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: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3141 behaves like reject create package tag request3142 behaves like returning response status3143 returns not_found3144 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3145 behaves like reject create package tag request3146 behaves like returning response status3147 returns not_found3148 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3149 behaves like reject create package tag request3150 behaves like returning response status3151 returns not_found3152 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3153 behaves like reject create package tag request3154 behaves like returning response status3155 returns not_found3156 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3157 behaves like reject create package tag request3158 behaves like returning response status3159 returns not_found3160 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3161 behaves like reject create package tag request3162 behaves like returning response status3163 returns not_found3164 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found3165 behaves like reject create package tag request3166 behaves like returning response status3167 returns not_found3168 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3169 behaves like reject create package tag request3170 behaves like returning response status3171 returns not_found3172 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3173 behaves like reject create package tag request3174 behaves like returning response status3175 returns forbidden3176 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3177 behaves like accept create package tag request3178 with valid package name3179 creates the package tag3180 returns a valid response3181 behaves like returning response status3182 returns no_content3183 with already existing tag3184 reuses existing tag3185 returns a valid response3186 behaves like returning response status3187 returns no_content3188 with invalid package name3189 package_name: "unknown", status: :not_found3190 behaves like returning response status3191 returns not_found3192 package_name: "", status: :not_found3193 behaves like returning response status3194 returns not_found3195 package_name: "%20", status: :bad_request3196 behaves like returning response status3197 returns bad_request3198 with invalid tag name3199 tag_name: "", status: :not_found3200 behaves like returning response status3201 returns not_found3202 tag_name: "%20", status: :bad_request3203 behaves like returning response status3204 returns bad_request3205 with invalid version3206 version: " ", status: :bad_request3207 behaves like returning response status3208 returns bad_request3209 version: "", status: :bad_request3210 behaves like returning response status3211 returns bad_request3212 version: nil, status: :bad_request3213 behaves like returning response status3214 returns bad_request3215 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3216 behaves like reject create package tag request3217 behaves like returning response status3218 returns not_found3219 package_name_type: :scoped_no_naming_convention, visibility: :private, 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: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3224 behaves like reject create package tag request3225 behaves like returning response status3226 returns not_found3227 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3228 behaves like reject create package tag request3229 behaves like returning response status3230 returns not_found3231 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3232 behaves like reject create package tag request3233 behaves like returning response status3234 returns not_found3235 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3236 behaves like reject create package tag request3237 behaves like returning response status3238 returns not_found3239 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3240 behaves like reject create package tag request3241 behaves like returning response status3242 returns not_found3243 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3244 behaves like reject create package tag request3245 behaves like returning response status3246 returns not_found3247 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found3248 behaves like reject create package tag request3249 behaves like returning response status3250 returns not_found3251 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3252 behaves like reject create package tag request3253 behaves like returning response status3254 returns forbidden3255 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3256 behaves like reject create package tag request3257 behaves like returning response status3258 returns forbidden3259 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3260 behaves like accept create package tag request3261 with valid package name3262 creates the package tag3263 returns a valid response3264 behaves like returning response status3265 returns no_content3266 with already existing tag3267 reuses existing tag3268 returns a valid response3269 behaves like returning response status3270 returns no_content3271 with invalid package name3272 package_name: "unknown", status: :not_found3273 behaves like returning response status3274 returns not_found3275 package_name: "", status: :not_found3276 behaves like returning response status3277 returns not_found3278 package_name: "%20", status: :bad_request3279 behaves like returning response status3280 returns bad_request3281 with invalid tag name3282 tag_name: "", status: :not_found3283 behaves like returning response status3284 returns not_found3285 tag_name: "%20", status: :bad_request3286 behaves like returning response status3287 returns bad_request3288 with invalid version3289 version: " ", status: :bad_request3290 behaves like returning response status3291 returns bad_request3292 version: "", status: :bad_request3293 behaves like returning response status3294 returns bad_request3295 version: nil, status: :bad_request3296 behaves like returning response status3297 returns bad_request3298 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3299 behaves like reject create package tag request3300 behaves like returning response status3301 returns not_found3302 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3303 behaves like reject create package tag request3304 behaves like returning response status3305 returns not_found3306 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3307 behaves like reject create package tag request3308 behaves like returning response status3309 returns not_found3310 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3311 behaves like reject create package tag request3312 behaves like returning response status3313 returns not_found3314 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3315 behaves like reject create package tag request3316 behaves like returning response status3317 returns not_found3318 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3319 behaves like reject create package tag request3320 behaves like returning response status3321 returns not_found3322 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3323 behaves like reject create package tag request3324 behaves like returning response status3325 returns not_found3326 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3327 behaves like reject create package tag request3328 behaves like returning response status3329 returns not_found3330 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3331 behaves like reject create package tag request3332 behaves like returning response status3333 returns not_found3334 DELETE /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag3335 behaves like handling delete dist tag requests3336 with a group namespace3337 behaves like handling all conditions3338 with oauth token3339 behaves like handling different package names, visibilities and user roles3340 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3341 behaves like reject delete package tag request3342 behaves like returning response status3343 returns forbidden3344 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3345 behaves like reject delete package tag request3346 behaves like returning response status3347 returns forbidden3348 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3349 behaves like accept delete package tag request3350 with valid package name3351 returns a valid response3352 destroy the package tag3353 behaves like returning response status3354 returns no_content3355 with tag from other package3356 behaves like returning response status3357 returns not_found3358 with invalid package name3359 package_name: "unknown", status: :not_found3360 behaves like returning response status3361 returns not_found3362 package_name: "", status: :not_found3363 behaves like returning response status3364 returns not_found3365 package_name: "%20", status: :bad_request3366 behaves like returning response status3367 returns bad_request3368 with invalid tag name3369 tag_name: "unknown", status: :not_found3370 behaves like returning response status3371 returns not_found3372 tag_name: "", status: :not_found3373 behaves like returning response status3374 returns not_found3375 tag_name: "%20", status: :bad_request3376 behaves like returning response status3377 returns bad_request3378 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3379 behaves like reject delete package tag request3380 behaves like returning response status3381 returns not_found3382 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3383 behaves like reject delete package tag request3384 behaves like returning response status3385 returns not_found3386 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3387 behaves like reject delete package tag request3388 behaves like returning response status3389 returns not_found3390 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3391 behaves like reject delete package tag request3392 behaves like returning response status3393 returns not_found3394 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3395 behaves like reject delete package tag request3396 behaves like returning response status3397 returns not_found3398 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3399 behaves like reject delete package tag request3400 behaves like returning response status3401 returns not_found3402 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3403 behaves like reject delete package tag request3404 behaves like returning response status3405 returns not_found3406 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3407 behaves like reject delete package tag request3408 behaves like returning response status3409 returns not_found3410 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3411 behaves like reject delete package tag request3412 behaves like returning response status3413 returns not_found3414 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3415 behaves like reject delete package tag request3416 behaves like returning response status3417 returns not_found3418 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3419 behaves like reject delete package tag request3420 behaves like returning response status3421 returns forbidden3422 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3423 behaves like accept delete package tag request3424 with valid package name3425 returns a valid response3426 destroy the package tag3427 behaves like returning response status3428 returns no_content3429 with tag from other package3430 behaves like returning response status3431 returns not_found3432 with invalid package name3433 package_name: "unknown", status: :not_found3434 behaves like returning response status3435 returns not_found3436 package_name: "", status: :not_found3437 behaves like returning response status3438 returns not_found3439 package_name: "%20", status: :bad_request3440 behaves like returning response status3441 returns bad_request3442 with invalid tag name3443 tag_name: "unknown", status: :not_found3444 behaves like returning response status3445 returns not_found3446 tag_name: "", status: :not_found3447 behaves like returning response status3448 returns not_found3449 tag_name: "%20", status: :bad_request3450 behaves like returning response status3451 returns bad_request3452 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3453 behaves like reject delete package tag request3454 behaves like returning response status3455 returns not_found3456 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3457 behaves like reject delete package tag request3458 behaves like returning response status3459 returns not_found3460 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3461 behaves like reject delete package tag request3462 behaves like returning response status3463 returns not_found3464 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3465 behaves like reject delete package tag request3466 behaves like returning response status3467 returns not_found3468 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3469 behaves like reject delete package tag request3470 behaves like returning response status3471 returns not_found3472 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3473 behaves like reject delete package tag request3474 behaves like returning response status3475 returns not_found3476 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3477 behaves like reject delete package tag request3478 behaves like returning response status3479 returns not_found3480 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3481 behaves like reject delete package tag request3482 behaves like returning response status3483 returns not_found3484 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3485 behaves like reject delete package tag request3486 behaves like returning response status3487 returns not_found3488 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3489 behaves like reject delete package tag request3490 behaves like returning response status3491 returns forbidden3492 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3493 behaves like reject delete package tag request3494 behaves like returning response status3495 returns forbidden3496 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3497 behaves like accept delete package tag request3498 with valid package name3499 returns a valid response3500 destroy the package tag3501 behaves like returning response status3502 returns no_content3503 with tag from other package3504 behaves like returning response status3505 returns not_found3506 with invalid package name3507 package_name: "unknown", status: :not_found3508 behaves like returning response status3509 returns not_found3510 package_name: "", status: :not_found3511 behaves like returning response status3512 returns not_found3513 package_name: "%20", status: :bad_request3514 behaves like returning response status3515 returns bad_request3516 with invalid tag name3517 tag_name: "unknown", status: :not_found3518 behaves like returning response status3519 returns not_found3520 tag_name: "", status: :not_found3521 behaves like returning response status3522 returns not_found3523 tag_name: "%20", status: :bad_request3524 behaves like returning response status3525 returns bad_request3526 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3527 behaves like reject delete package tag request3528 behaves like returning response status3529 returns not_found3530 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3531 behaves like reject delete package tag request3532 behaves like returning response status3533 returns not_found3534 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3535 behaves like reject delete package tag request3536 behaves like returning response status3537 returns not_found3538 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3539 behaves like reject delete package tag request3540 behaves like returning response status3541 returns not_found3542 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3543 behaves like reject delete package tag request3544 behaves like returning response status3545 returns not_found3546 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3547 behaves like reject delete package tag request3548 behaves like returning response status3549 returns not_found3550 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3551 behaves like reject delete package tag request3552 behaves like returning response status3553 returns not_found3554 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3555 behaves like reject delete package tag request3556 behaves like returning response status3557 returns not_found3558 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3559 behaves like reject delete package tag request3560 behaves like returning response status3561 returns not_found3562 with personal access token3563 behaves like handling different package names, visibilities and user roles3564 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3565 behaves like reject delete package tag request3566 behaves like returning response status3567 returns forbidden3568 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3569 behaves like reject delete package tag request3570 behaves like returning response status3571 returns forbidden3572 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3573 behaves like accept delete package tag request3574 with valid package name3575 returns a valid response3576 destroy the package tag3577 behaves like returning response status3578 returns no_content3579 with tag from other package3580 behaves like returning response status3581 returns not_found3582 with invalid package name3583 package_name: "unknown", status: :not_found3584 behaves like returning response status3585 returns not_found3586 package_name: "", status: :not_found3587 behaves like returning response status3588 returns not_found3589 package_name: "%20", status: :bad_request3590 behaves like returning response status3591 returns bad_request3592 with invalid tag name3593 tag_name: "unknown", status: :not_found3594 behaves like returning response status3595 returns not_found3596 tag_name: "", status: :not_found3597 behaves like returning response status3598 returns not_found3599 tag_name: "%20", status: :bad_request3600 behaves like returning response status3601 returns bad_request3602 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3603 behaves like reject delete package tag request3604 behaves like returning response status3605 returns not_found3606 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3607 behaves like reject delete package tag request3608 behaves like returning response status3609 returns not_found3610 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3611 behaves like reject delete package tag request3612 behaves like returning response status3613 returns not_found3614 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3615 behaves like reject delete package tag request3616 behaves like returning response status3617 returns not_found3618 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3619 behaves like reject delete package tag request3620 behaves like returning response status3621 returns not_found3622 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3623 behaves like reject delete package tag request3624 behaves like returning response status3625 returns not_found3626 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3627 behaves like reject delete package tag request3628 behaves like returning response status3629 returns not_found3630 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3631 behaves like reject delete package tag request3632 behaves like returning response status3633 returns not_found3634 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3635 behaves like reject delete package tag request3636 behaves like returning response status3637 returns not_found3638 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3639 behaves like reject delete package tag request3640 behaves like returning response status3641 returns not_found3642 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3643 behaves like reject delete package tag request3644 behaves like returning response status3645 returns forbidden3646 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3647 behaves like accept delete package tag request3648 with valid package name3649 returns a valid response3650 destroy the package tag3651 behaves like returning response status3652 returns no_content3653 with tag from other package3654 behaves like returning response status3655 returns not_found3656 with invalid package name3657 package_name: "unknown", status: :not_found3658 behaves like returning response status3659 returns not_found3660 package_name: "", status: :not_found3661 behaves like returning response status3662 returns not_found3663 package_name: "%20", status: :bad_request3664 behaves like returning response status3665 returns bad_request3666 with invalid tag name3667 tag_name: "unknown", status: :not_found3668 behaves like returning response status3669 returns not_found3670 tag_name: "", status: :not_found3671 behaves like returning response status3672 returns not_found3673 tag_name: "%20", status: :bad_request3674 behaves like returning response status3675 returns bad_request3676 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3677 behaves like reject delete package tag request3678 behaves like returning response status3679 returns not_found3680 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3681 behaves like reject delete package tag request3682 behaves like returning response status3683 returns not_found3684 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3685 behaves like reject delete package tag request3686 behaves like returning response status3687 returns not_found3688 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3689 behaves like reject delete package tag request3690 behaves like returning response status3691 returns not_found3692 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3693 behaves like reject delete package tag request3694 behaves like returning response status3695 returns not_found3696 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3697 behaves like reject delete package tag request3698 behaves like returning response status3699 returns not_found3700 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3701 behaves like reject delete package tag request3702 behaves like returning response status3703 returns not_found3704 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3705 behaves like reject delete package tag request3706 behaves like returning response status3707 returns not_found3708 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3709 behaves like reject delete package tag request3710 behaves like returning response status3711 returns not_found3712 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3713 behaves like reject delete package tag request3714 behaves like returning response status3715 returns forbidden3716 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3717 behaves like reject delete package tag request3718 behaves like returning response status3719 returns forbidden3720 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3721 behaves like accept delete package tag request3722 with valid package name3723 returns a valid response3724 destroy the package tag3725 behaves like returning response status3726 returns no_content3727 with tag from other package3728 behaves like returning response status3729 returns not_found3730 with invalid package name3731 package_name: "unknown", status: :not_found3732 behaves like returning response status3733 returns not_found3734 package_name: "", status: :not_found3735 behaves like returning response status3736 returns not_found3737 package_name: "%20", status: :bad_request3738 behaves like returning response status3739 returns bad_request3740 with invalid tag name3741 tag_name: "unknown", status: :not_found3742 behaves like returning response status3743 returns not_found3744 tag_name: "", status: :not_found3745 behaves like returning response status3746 returns not_found3747 tag_name: "%20", status: :bad_request3748 behaves like returning response status3749 returns bad_request3750 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3751 behaves like reject delete package tag request3752 behaves like returning response status3753 returns not_found3754 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3755 behaves like reject delete package tag request3756 behaves like returning response status3757 returns not_found3758 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3759 behaves like reject delete package tag request3760 behaves like returning response status3761 returns not_found3762 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3763 behaves like reject delete package tag request3764 behaves like returning response status3765 returns not_found3766 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3767 behaves like reject delete package tag request3768 behaves like returning response status3769 returns not_found3770 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3771 behaves like reject delete package tag request3772 behaves like returning response status3773 returns not_found3774 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3775 behaves like reject delete package tag request3776 behaves like returning response status3777 returns not_found3778 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3779 behaves like reject delete package tag request3780 behaves like returning response status3781 returns not_found3782 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3783 behaves like reject delete package tag request3784 behaves like returning response status3785 returns not_found3786 with a user namespace3787 behaves like handling all conditions3788 with oauth token3789 behaves like handling different package names, visibilities and user roles3790 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3791 behaves like reject delete package tag request3792 behaves like returning response status3793 returns forbidden3794 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3795 behaves like reject delete package tag request3796 behaves like returning response status3797 returns forbidden3798 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3799 behaves like accept delete package tag request3800 with valid package name3801 returns a valid response3802 destroy the package tag3803 behaves like returning response status3804 returns no_content3805 with tag from other package3806 behaves like returning response status3807 returns not_found3808 with invalid package name3809 package_name: "unknown", status: :not_found3810 behaves like returning response status3811 returns not_found3812 package_name: "", status: :not_found3813 behaves like returning response status3814 returns not_found3815 package_name: "%20", status: :bad_request3816 behaves like returning response status3817 returns bad_request3818 with invalid tag name3819 tag_name: "unknown", status: :not_found3820 behaves like returning response status3821 returns not_found3822 tag_name: "", status: :not_found3823 behaves like returning response status3824 returns not_found3825 tag_name: "%20", status: :bad_request3826 behaves like returning response status3827 returns bad_request3828 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3829 behaves like reject delete package tag request3830 behaves like returning response status3831 returns not_found3832 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3833 behaves like reject delete package tag request3834 behaves like returning response status3835 returns not_found3836 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3837 behaves like reject delete package tag request3838 behaves like returning response status3839 returns not_found3840 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3841 behaves like reject delete package tag request3842 behaves like returning response status3843 returns not_found3844 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3845 behaves like reject delete package tag request3846 behaves like returning response status3847 returns not_found3848 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3849 behaves like reject delete package tag request3850 behaves like returning response status3851 returns not_found3852 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3853 behaves like reject delete package tag request3854 behaves like returning response status3855 returns not_found3856 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3857 behaves like reject delete package tag request3858 behaves like returning response status3859 returns not_found3860 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3861 behaves like reject delete package tag request3862 behaves like returning response status3863 returns not_found3864 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3865 behaves like reject delete package tag request3866 behaves like returning response status3867 returns not_found3868 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3869 behaves like reject delete package tag request3870 behaves like returning response status3871 returns forbidden3872 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3873 behaves like accept delete package tag request3874 with valid package name3875 returns a valid response3876 destroy the package tag3877 behaves like returning response status3878 returns no_content3879 with tag from other package3880 behaves like returning response status3881 returns not_found3882 with invalid package name3883 package_name: "unknown", status: :not_found3884 behaves like returning response status3885 returns not_found3886 package_name: "", status: :not_found3887 behaves like returning response status3888 returns not_found3889 package_name: "%20", status: :bad_request3890 behaves like returning response status3891 returns bad_request3892 with invalid tag name3893 tag_name: "unknown", status: :not_found3894 behaves like returning response status3895 returns not_found3896 tag_name: "", status: :not_found3897 behaves like returning response status3898 returns not_found3899 tag_name: "%20", status: :bad_request3900 behaves like returning response status3901 returns bad_request3902 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3903 behaves like reject delete package tag request3904 behaves like returning response status3905 returns not_found3906 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3907 behaves like reject delete package tag request3908 behaves like returning response status3909 returns not_found3910 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3911 behaves like reject delete package tag request3912 behaves like returning response status3913 returns not_found3914 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3915 behaves like reject delete package tag request3916 behaves like returning response status3917 returns not_found3918 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3919 behaves like reject delete package tag request3920 behaves like returning response status3921 returns not_found3922 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3923 behaves like reject delete package tag request3924 behaves like returning response status3925 returns not_found3926 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3927 behaves like reject delete package tag request3928 behaves like returning response status3929 returns not_found3930 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3931 behaves like reject delete package tag request3932 behaves like returning response status3933 returns not_found3934 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3935 behaves like reject delete package tag request3936 behaves like returning response status3937 returns not_found3938 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3939 behaves like reject delete package tag request3940 behaves like returning response status3941 returns forbidden3942 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3943 behaves like reject delete package tag request3944 behaves like returning response status3945 returns forbidden3946 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3947 behaves like accept delete package tag request3948 with valid package name3949 returns a valid response3950 destroy the package tag3951 behaves like returning response status3952 returns no_content3953 with tag from other package3954 behaves like returning response status3955 returns not_found3956 with invalid package name3957 package_name: "unknown", status: :not_found3958 behaves like returning response status3959 returns not_found3960 package_name: "", status: :not_found3961 behaves like returning response status3962 returns not_found3963 package_name: "%20", status: :bad_request3964 behaves like returning response status3965 returns bad_request3966 with invalid tag name3967 tag_name: "unknown", status: :not_found3968 behaves like returning response status3969 returns not_found3970 tag_name: "", status: :not_found3971 behaves like returning response status3972 returns not_found3973 tag_name: "%20", status: :bad_request3974 behaves like returning response status3975 returns bad_request3976 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3977 behaves like reject delete package tag request3978 behaves like returning response status3979 returns not_found3980 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3981 behaves like reject delete package tag request3982 behaves like returning response status3983 returns not_found3984 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3985 behaves like reject delete package tag request3986 behaves like returning response status3987 returns not_found3988 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3989 behaves like reject delete package tag request3990 behaves like returning response status3991 returns not_found3992 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3993 behaves like reject delete package tag request3994 behaves like returning response status3995 returns not_found3996 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3997 behaves like reject delete package tag request3998 behaves like returning response status3999 returns not_found4000 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4001 behaves like reject delete package tag request4002 behaves like returning response status4003 returns not_found4004 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4005 behaves like reject delete package tag request4006 behaves like returning response status4007 returns not_found4008 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4009 behaves like reject delete package tag request4010 behaves like returning response status4011 returns not_found4012 with personal access token4013 behaves like handling different package names, visibilities and user roles4014 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4015 behaves like reject delete package tag request4016 behaves like returning response status4017 returns forbidden4018 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4019 behaves like reject delete package tag request4020 behaves like returning response status4021 returns forbidden4022 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4023 behaves like accept delete package tag request4024 with valid package name4025 returns a valid response4026 destroy the package tag4027 behaves like returning response status4028 returns no_content4029 with tag from other package4030 behaves like returning response status4031 returns not_found4032 with invalid package name4033 package_name: "unknown", status: :not_found4034 behaves like returning response status4035 returns not_found4036 package_name: "", status: :not_found4037 behaves like returning response status4038 returns not_found4039 package_name: "%20", status: :bad_request4040 behaves like returning response status4041 returns bad_request4042 with invalid tag name4043 tag_name: "unknown", status: :not_found4044 behaves like returning response status4045 returns not_found4046 tag_name: "", status: :not_found4047 behaves like returning response status4048 returns not_found4049 tag_name: "%20", status: :bad_request4050 behaves like returning response status4051 returns bad_request4052 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4053 behaves like reject delete package tag request4054 behaves like returning response status4055 returns not_found4056 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4057 behaves like reject delete package tag request4058 behaves like returning response status4059 returns not_found4060 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4061 behaves like reject delete package tag request4062 behaves like returning response status4063 returns not_found4064 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4065 behaves like reject delete package tag request4066 behaves like returning response status4067 returns not_found4068 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4069 behaves like reject delete package tag request4070 behaves like returning response status4071 returns not_found4072 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4073 behaves like reject delete package tag request4074 behaves like returning response status4075 returns not_found4076 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4077 behaves like reject delete package tag request4078 behaves like returning response status4079 returns not_found4080 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4081 behaves like reject delete package tag request4082 behaves like returning response status4083 returns not_found4084 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4085 behaves like reject delete package tag request4086 behaves like returning response status4087 returns not_found4088 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4089 behaves like reject delete package tag request4090 behaves like returning response status4091 returns not_found4092 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4093 behaves like reject delete package tag request4094 behaves like returning response status4095 returns forbidden4096 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4097 behaves like accept delete package tag request4098 with valid package name4099 returns a valid response4100 destroy the package tag4101 behaves like returning response status4102 returns no_content4103 with tag from other package4104 behaves like returning response status4105 returns not_found4106 with invalid package name4107 package_name: "unknown", status: :not_found4108 behaves like returning response status4109 returns not_found4110 package_name: "", status: :not_found4111 behaves like returning response status4112 returns not_found4113 package_name: "%20", status: :bad_request4114 behaves like returning response status4115 returns bad_request4116 with invalid tag name4117 tag_name: "unknown", status: :not_found4118 behaves like returning response status4119 returns not_found4120 tag_name: "", status: :not_found4121 behaves like returning response status4122 returns not_found4123 tag_name: "%20", status: :bad_request4124 behaves like returning response status4125 returns bad_request4126 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4127 behaves like reject delete package tag request4128 behaves like returning response status4129 returns not_found4130 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4131 behaves like reject delete package tag request4132 behaves like returning response status4133 returns not_found4134 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4135 behaves like reject delete package tag request4136 behaves like returning response status4137 returns not_found4138 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4139 behaves like reject delete package tag request4140 behaves like returning response status4141 returns not_found4142 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4143 behaves like reject delete package tag request4144 behaves like returning response status4145 returns not_found4146 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4147 behaves like reject delete package tag request4148 behaves like returning response status4149 returns not_found4150 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4151 behaves like reject delete package tag request4152 behaves like returning response status4153 returns not_found4154 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4155 behaves like reject delete package tag request4156 behaves like returning response status4157 returns not_found4158 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4159 behaves like reject delete package tag request4160 behaves like returning response status4161 returns not_found4162 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4163 behaves like reject delete package tag request4164 behaves like returning response status4165 returns forbidden4166 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4167 behaves like reject delete package tag request4168 behaves like returning response status4169 returns forbidden4170 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4171 behaves like accept delete package tag request4172 with valid package name4173 returns a valid response4174 destroy the package tag4175 behaves like returning response status4176 returns no_content4177 with tag from other package4178 behaves like returning response status4179 returns not_found4180 with invalid package name4181 package_name: "unknown", status: :not_found4182 behaves like returning response status4183 returns not_found4184 package_name: "", status: :not_found4185 behaves like returning response status4186 returns not_found4187 package_name: "%20", status: :bad_request4188 behaves like returning response status4189 returns bad_request4190 with invalid tag name4191 tag_name: "unknown", status: :not_found4192 behaves like returning response status4193 returns not_found4194 tag_name: "", status: :not_found4195 behaves like returning response status4196 returns not_found4197 tag_name: "%20", status: :bad_request4198 behaves like returning response status4199 returns bad_request4200 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4201 behaves like reject delete package tag request4202 behaves like returning response status4203 returns not_found4204 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4205 behaves like reject delete package tag request4206 behaves like returning response status4207 returns not_found4208 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4209 behaves like reject delete package tag request4210 behaves like returning response status4211 returns not_found4212 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4213 behaves like reject delete package tag request4214 behaves like returning response status4215 returns not_found4216 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4217 behaves like reject delete package tag request4218 behaves like returning response status4219 returns not_found4220 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4221 behaves like reject delete package tag request4222 behaves like returning response status4223 returns not_found4224 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4225 behaves like reject delete package tag request4226 behaves like returning response status4227 returns not_found4228 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4229 behaves like reject delete package tag request4230 behaves like returning response status4231 returns not_found4232 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4233 behaves like reject delete package tag request4234 behaves like returning response status4235 returns not_found4236API::Notes4237 when there are cross-reference system notes4238 behaves like with cross-reference system notes4239 returns only the note that the user should see4240 avoids Git calls and N+1 SQL queries4241 when noteable is an Issue4242 behaves like noteable API with confidential notes4243 behaves like noteable API4244 GET /projects/:id/issues/:noteable_id/notes4245 returns an array of notes4246 returns a 404 error when noteable id not found4247 returns 404 when not authorized4248 sorting4249 sorts by ascending order when requested4250 sorts by updated_at in descending order when requested4251 sorts by updated_at in ascending order when requested4252 without sort params4253 sorts by created_at in descending order by default4254 fetches notes using parent path as id paremeter4255 2 notes with equal created_at4256 page breaks first page correctly4257 page breaks second page correctly4258 GET /projects/:id/issues/:noteable_id/notes/:note_id4259 returns a note by id4260 returns a 404 error if note not found4261 POST /projects/:id/issues/:noteable_id/notes4262 creates a new note4263 returns a 400 bad request error if body not given4264 returns a 401 unauthorized error if user not authenticated4265 creates an activity event when a note is created4266 setting created_at4267 by an admin4268 sets the creation time on the new note4269 by a project owner4270 sets the creation time on the new note4271 by a group owner4272 sets the creation time on the new note4273 by another user4274 ignores the given creation time4275 when the user is posting an award emoji on a noteable created by someone else4276 creates a new note4277 when the user is posting an award emoji on their own noteable4278 creates a new note4279 when user does not have access to read the noteable4280 responds with 4044281 when request exceeds the rate limit4282 prevents user from creating more notes4283 allows user in allow-list to create notes4284 PUT /projects/:id/issues/:noteable_id/notes/:note_id4285 returns a 404 error when note id not found4286 returns a 400 bad request error if body is empty4287 when only body param is present4288 updates the note text4289 when confidential param is present4290 does not allow to change confidentiality4291 DELETE /projects/:id/issues/:noteable_id/notes/:note_id4292 deletes a note4293 returns a 404 error when note id not found4294 behaves like 412 response4295 for a modified ressource4296 returns 412 with a JSON error4297 for an unmodified ressource4298 returns 204 with an empty body4299 POST /projects/:id/issues/:noteable_id/notes4300 creates a confidential note if confidential is set to true4301 when user does not have access to create noteable4302 responds with resource not found error4303 does not create new note4304 when referencing other project4305 GET /projects/:id/noteable/:noteable_id/notes4306 current user cannot view the notes4307 returns an empty array4308 issue is confidential4309 returns 4044310 current user can view the note4311 returns a non-empty array4312 activity filters4313 when not provided4314 returns all the notes4315 behaves like a notes request4316 is a note array response4317 when all_notes provided4318 returns all the notes4319 behaves like a notes request4320 is a note array response4321 when provided4322 filter: "only_comments", count: 1, system_notable: false4323 properly filters the returned notables4324 behaves like a notes request4325 is a note array response4326 filter: "only_activity", count: 1, system_notable: true4327 properly filters the returned notables4328 behaves like a notes request4329 is a note array response4330 GET /projects/:id/noteable/:noteable_id/notes/:note_id4331 current user cannot view the notes4332 returns a 404 error4333 when issue is confidential4334 returns 4044335 current user can view the note4336 returns an issue note by id4337 when noteable is a Snippet4338 behaves like noteable API4339 GET /projects/:id/snippets/:noteable_id/notes4340 returns an array of notes4341 returns a 404 error when noteable id not found4342 returns 404 when not authorized4343 sorting4344 sorts by ascending order when requested4345 sorts by updated_at in descending order when requested4346 sorts by updated_at in ascending order when requested4347 without sort params4348 sorts by created_at in descending order by default4349 fetches notes using parent path as id paremeter4350 2 notes with equal created_at4351 page breaks first page correctly4352 page breaks second page correctly4353 GET /projects/:id/snippets/:noteable_id/notes/:note_id4354 returns a note by id4355 returns a 404 error if note not found4356 POST /projects/:id/snippets/:noteable_id/notes4357 creates a new note4358 returns a 400 bad request error if body not given4359 returns a 401 unauthorized error if user not authenticated4360 creates an activity event when a note is created4361 setting created_at4362 by an admin4363 sets the creation time on the new note4364 by a project owner4365 sets the creation time on the new note4366 by a group owner4367 sets the creation time on the new note4368 by another user4369 ignores the given creation time4370 when the user is posting an award emoji on a noteable created by someone else4371 creates a new note4372 when the user is posting an award emoji on their own noteable4373 creates a new note4374 when user does not have access to read the noteable4375 responds with 4044376 when request exceeds the rate limit4377 prevents user from creating more notes4378 allows user in allow-list to create notes4379 PUT /projects/:id/snippets/:noteable_id/notes/:note_id4380 returns a 404 error when note id not found4381 returns a 400 bad request error if body is empty4382 when only body param is present4383 updates the note text4384 when confidential param is present4385 does not allow to change confidentiality4386 DELETE /projects/:id/snippets/:noteable_id/notes/:note_id4387 deletes a note4388 returns a 404 error when note id not found4389 behaves like 412 response4390 for a modified ressource4391 returns 412 with a JSON error4392 for an unmodified ressource4393 returns 204 with an empty body4394 when noteable is a Merge Request4395 behaves like noteable API4396 GET /projects/:id/merge_requests/:noteable_id/notes4397 returns an array of notes4398 returns a 404 error when noteable id not found4399 returns 404 when not authorized4400 sorting4401 sorts by ascending order when requested4402 sorts by updated_at in descending order when requested4403 sorts by updated_at in ascending order when requested4404 without sort params4405 sorts by created_at in descending order by default4406 fetches notes using parent path as id paremeter4407 2 notes with equal created_at4408 page breaks first page correctly4409 page breaks second page correctly4410 GET /projects/:id/merge_requests/:noteable_id/notes/:note_id4411 returns a note by id4412 returns a 404 error if note not found4413 POST /projects/:id/merge_requests/:noteable_id/notes4414 creates a new note4415 returns a 400 bad request error if body not given4416 returns a 401 unauthorized error if user not authenticated4417 creates an activity event when a note is created4418 setting created_at4419 by an admin4420 sets the creation time on the new note4421 by a project owner4422 sets the creation time on the new note4423 by a group owner4424 sets the creation time on the new note4425 by another user4426 ignores the given creation time4427 when the user is posting an award emoji on a noteable created by someone else4428 creates a new note4429 when the user is posting an award emoji on their own noteable4430 creates a new note4431 when user does not have access to read the noteable4432 responds with 4044433 when request exceeds the rate limit4434 prevents user from creating more notes4435 allows user in allow-list to create notes4436 PUT /projects/:id/merge_requests/:noteable_id/notes/:note_id4437 returns a 404 error when note id not found4438 returns a 400 bad request error if body is empty4439 when only body param is present4440 updates the note text4441 when confidential param is present4442 does not allow to change confidentiality4443 DELETE /projects/:id/merge_requests/:noteable_id/notes/:note_id4444 deletes a note4445 returns a 404 error when note id not found4446 behaves like 412 response4447 for a modified ressource4448 returns 412 with a JSON error4449 for an unmodified ressource4450 returns 204 with an empty body4451 a command only note4452 /spend4453 returns 202 Accepted status4454 does not actually create a new note4455 does however create a system note about the change4456 applies the commands4457 reports the changes4458 /merge4459 returns 202 Accepted status4460 does not actually create a new note4461 applies the commands4462 reports the changes4463 when the merge request discussion is locked4464 when a user is a team member4465 returns 200 status4466 creates a new note4467 when a user is not a team member4468 returns 403 status4469 does not create a new note4470API::Discussions4471 when discussions have cross-reference system notes4472 behaves like with cross-reference system notes4473 returns only the note that the user should see4474 avoids Git calls and N+1 SQL queries4475 when noteable is an Issue4476 behaves like discussions API4477 GET /projects/:id/issues/:noteable_id/discussions4478 returns an array of discussions4479 returns a 404 error when noteable id not found4480 returns 404 when not authorized4481 GET /projects/:id/issues/:noteable_id/discussions/:discussion_id4482 returns a discussion by id4483 returns a 404 error if discussion not found4484 POST /projects/:id/issues/:noteable_id/discussions4485 creates a new note4486 returns a 400 bad request error if body not given4487 returns a 401 unauthorized error if user not authenticated4488 tracks a Notes::CreateService event4489 with notes_create_service_tracking feature flag disabled4490 does not track any events4491 when an admin or owner makes the request4492 accepts the creation date to be set4493 when user does not have access to read the discussion4494 responds with 4044495 when a project is public with private repo access4496 when user is not a team member of private repo4497 creating a new note4498 raises 404 error4499 fetching a discussion4500 raises 404 error4501 POST /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes4502 adds a new note to the discussion4503 returns a 400 bad request error if body not given4504 when the discussion is an individual note4505 creates a new discussion4506 PUT /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes/:note_id4507 returns modified note4508 returns a 404 error when note id not found4509 returns a 400 bad request error if body not given4510 DELETE /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes/:note_id4511 deletes a note4512 returns a 404 error when note id not found4513 behaves like 412 response4514 for a modified ressource4515 returns 412 with a JSON error4516 for an unmodified ressource4517 returns 204 with an empty body4518 when noteable is a Snippet4519 behaves like discussions API4520 GET /projects/:id/snippets/:noteable_id/discussions4521 returns an array of discussions4522 returns a 404 error when noteable id not found4523 returns 404 when not authorized4524 GET /projects/:id/snippets/:noteable_id/discussions/:discussion_id4525 returns a discussion by id4526 returns a 404 error if discussion not found4527 POST /projects/:id/snippets/:noteable_id/discussions4528 creates a new note4529 returns a 400 bad request error if body not given4530 returns a 401 unauthorized error if user not authenticated4531 tracks a Notes::CreateService event4532 with notes_create_service_tracking feature flag disabled4533 does not track any events4534 when an admin or owner makes the request4535 accepts the creation date to be set4536 when user does not have access to read the discussion4537 responds with 4044538 when a project is public with private repo access4539 when user is not a team member of private repo4540 creating a new note4541 raises 404 error4542 fetching a discussion4543 raises 404 error4544 POST /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes4545 adds a new note to the discussion4546 returns a 400 bad request error if body not given4547 when the discussion is an individual note4548 returns 400 bad request4549 PUT /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes/:note_id4550 returns modified note4551 returns a 404 error when note id not found4552 returns a 400 bad request error if body not given4553 DELETE /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes/:note_id4554 deletes a note4555 returns a 404 error when note id not found4556 behaves like 412 response4557 for a modified ressource4558 returns 412 with a JSON error4559 for an unmodified ressource4560 returns 204 with an empty body4561 when noteable is a Merge Request4562 behaves like discussions API4563 GET /projects/:id/merge_requests/:noteable_id/discussions4564 returns an array of discussions4565 returns a 404 error when noteable id not found4566 returns 404 when not authorized4567 GET /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id4568 returns a discussion by id4569 returns a 404 error if discussion not found4570 POST /projects/:id/merge_requests/:noteable_id/discussions4571 creates a new note4572 returns a 400 bad request error if body not given4573 returns a 401 unauthorized error if user not authenticated4574 tracks a Notes::CreateService event4575 with notes_create_service_tracking feature flag disabled4576 does not track any events4577 when an admin or owner makes the request4578 accepts the creation date to be set4579 when user does not have access to read the discussion4580 responds with 4044581 when a project is public with private repo access4582 when user is not a team member of private repo4583 creating a new note4584 raises 404 error4585 fetching a discussion4586 raises 404 error4587 POST /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes4588 adds a new note to the discussion4589 returns a 400 bad request error if body not given4590 when the discussion is an individual note4591 creates a new discussion4592 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id4593 returns modified note4594 returns a 404 error when note id not found4595 returns a 400 bad request error if body not given4596 DELETE /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id4597 deletes a note4598 returns a 404 error when note id not found4599 behaves like 412 response4600 for a modified ressource4601 returns 412 with a JSON error4602 for an unmodified ressource4603 returns 204 with an empty body4604 behaves like diff discussions API4605 GET /projects/:id/merge_requests/:noteable_id/discussions4606 includes diff discussions4607 GET /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id4608 returns a discussion by id4609 POST /projects/:id/merge_requests/:noteable_id/discussions4610 creates a new diff note4611 when position is invalid4612 returns a 400 bad request error when position is not plausible4613 returns a 400 bad request error when the position is not valid for this discussion4614 POST /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes4615 adds a new note to the diff discussion4616 behaves like resolvable discussions API4617 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id4618 resolves discussion if resolved is true4619 unresolves discussion if resolved is false4620 returns a 400 bad request error if resolved parameter is not passed4621 returns a 401 unauthorized error if user is not authenticated4622 returns a 403 error if user resolves discussion of someone else4623 when user does not have access to read the discussion4624 responds with 4044625 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id4626 returns resolved note when resolved parameter is true4627 returns a 404 error when note id not found4628 returns a 400 bad request error if neither body nor resolved parameter is given4629 returns a 403 error if user resolves note of someone else4630 when position is for a previous commit on the merge request4631 returns a 400 bad request error because the line_code is old4632 when a commit parameter is given4633 creates the discussion on that commit within the merge request4634 when noteable is a Commit4635 behaves like discussions API4636 GET /projects/:id/repository/commits/:noteable_id/discussions4637 returns an array of discussions4638 returns a 404 error when noteable id not found4639 returns 404 when not authorized4640 GET /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id4641 returns a discussion by id4642 returns a 404 error if discussion not found4643 POST /projects/:id/repository/commits/:noteable_id/discussions4644 creates a new note4645 returns a 400 bad request error if body not given4646 returns a 401 unauthorized error if user not authenticated4647 tracks a Notes::CreateService event4648 with notes_create_service_tracking feature flag disabled4649 does not track any events4650 when an admin or owner makes the request4651 accepts the creation date to be set4652 when user does not have access to read the discussion4653 responds with 4044654 when a project is public with private repo access4655 when user is not a team member of private repo4656 creating a new note4657 raises 404 error4658 fetching a discussion4659 raises 404 error4660 POST /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes4661 adds a new note to the discussion4662 returns a 400 bad request error if body not given4663 when the discussion is an individual note4664 returns 400 bad request4665 PUT /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes/:note_id4666 returns modified note4667 returns a 404 error when note id not found4668 returns a 400 bad request error if body not given4669 DELETE /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes/:note_id4670 deletes a note4671 returns a 404 error when note id not found4672 behaves like 412 response4673 for a modified ressource4674 returns 412 with a JSON error4675 for an unmodified ressource4676 returns 204 with an empty body4677 behaves like diff discussions API4678 GET /projects/:id/repository/commits/:noteable_id/discussions4679 includes diff discussions4680 GET /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id4681 returns a discussion by id4682 POST /projects/:id/repository/commits/:noteable_id/discussions4683 creates a new diff note4684 when position is invalid4685 returns a 400 bad request error when position is not plausible4686 returns a 400 bad request error when the position is not valid for this discussion4687 POST /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes4688 adds a new note to the diff discussion4689Groups::ClustersController4690 GET index4691 functionality4692 when group has one or more clusters4693 lists available clusters and renders html4694 lists available clusters with json serializer4695 sets the polling interval header for json requests4696 feature flag is disabled4697 responds with :not_found4698 when page is specified4699 redirects to the page4700 displays cluster list for associated page4701 when group does not have a cluster4702 returns an empty state page4703 security4704 is allowed for admin when admin mode is enabled4705 is denied for admin when admin mode is disabled4706 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2004707 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2004708 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2004709 is expected to be denied for reporter. Expected: 401,404 Got: 4044710 is expected to be denied for guest. Expected: 401,404 Got: 4044711 is expected to be denied for user. Expected: 401,404 Got: 4044712 is expected to be denied for external. Expected: 401,404 Got: 4044713 behaves like GET #metrics_dashboard for dashboard4714 returns correct dashboard4715 behaves like GET #metrics_dashboard correctly formatted response4716 returns a json object with the correct keys4717 GET #prometheus_proxy4718 behaves like metrics dashboard prometheus api proxy4719 with valid requests4720 with success result4721 returns prometheus response4722 with nil query4723 does not raise error4724 with nil result4725 returns 204 no_content4726 with 404 result4727 returns body4728 with error result4729 with http_status4730 sets the http response status code4731 without http_status4732 returns bad_request4733 with inappropriate requests4734 without correct permissions4735 returns 4044736 with invalid proxyable id4737 returns 4044738 with anonymous user4739 returns 4044740 POST create for existing cluster4741 feature flag is disabled4742 responds with :not_found4743 functionality4744 when creates a cluster4745 creates a new cluster4746 when creates a RBAC-enabled cluster4747 creates a new cluster4748 when creates a user-managed cluster4749 creates a new user-managed cluster4750 security4751 is allowed for admin when admin mode is enabled4752 is denied for admin when admin mode is disabled4753 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024754 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024755 is expected to be denied for developer. Expected: 401,404 Got: 4044756 is expected to be denied for reporter. Expected: 401,404 Got: 4044757 is expected to be denied for guest. Expected: 401,404 Got: 4044758 is expected to be denied for user. Expected: 401,404 Got: 4044759 is expected to be denied for external. Expected: 401,404 Got: 4044760 DELETE clear cluster cache4761 deletes the namespaces associated with the cluster4762 feature flag is disabled4763 responds with :not_found4764 security4765 is allowed for admin when admin mode is enabled4766 is denied for admin when admin mode is disabled4767 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024768 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024769 is expected to be denied for developer. Expected: 401,404 Got: 4044770 is expected to be denied for reporter. Expected: 401,404 Got: 4044771 is expected to be denied for guest. Expected: 401,404 Got: 4044772 is expected to be denied for user. Expected: 401,404 Got: 4044773 is expected to be denied for external. Expected: 401,404 Got: 4044774 GET cluster_status4775 feature flag is disabled4776 responds with :not_found4777 functionality4778 responds with matching schema4779 invokes schedule_status_update on each application4780 security4781 is allowed for admin when admin mode is enabled4782 is denied for admin when admin mode is disabled4783 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2004784 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2004785 is expected to be denied for developer. Expected: 401,404 Got: 4044786 is expected to be denied for reporter. Expected: 401,404 Got: 4044787 is expected to be denied for guest. Expected: 401,404 Got: 4044788 is expected to be denied for user. Expected: 401,404 Got: 4044789 is expected to be denied for external. Expected: 401,404 Got: 4044790 GET show4791 feature flag is disabled4792 responds with :not_found4793 functionality4794 renders view4795 renders integration tab view4796 security4797 is allowed for admin when admin mode is enabled4798 is denied for admin when admin mode is disabled4799 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2004800 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2004801 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2004802 is expected to be denied for reporter. Expected: 401,404 Got: 4044803 is expected to be denied for guest. Expected: 401,404 Got: 4044804 is expected to be denied for user. Expected: 401,404 Got: 4044805 is expected to be denied for external. Expected: 401,404 Got: 4044806 PUT update4807 updates and redirects back to show page4808 feature flag is disabled4809 responds with :not_found4810 when domain is invalid4811 does not update cluster attributes4812 when format is json4813 when changing parameters4814 when valid parameters are used4815 updates and redirects back to show page4816 when invalid parameters are used4817 rejects changes4818 security4819 is allowed for admin when admin mode is enabled4820 is denied for admin when admin mode is disabled4821 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024822 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024823 is expected to be denied for developer. Expected: 401,404 Got: 4044824 is expected to be denied for reporter. Expected: 401,404 Got: 4044825 is expected to be denied for guest. Expected: 401,404 Got: 4044826 is expected to be denied for user. Expected: 401,404 Got: 4044827 is expected to be denied for external. Expected: 401,404 Got: 4044828 DELETE destroy4829 feature flag is disabled4830 responds with :not_found4831 functionality4832 when cluster is provided by GCP4833 when cluster is created4834 destroys and redirects back to clusters list4835 when cluster is being created4836 destroys and redirects back to clusters list4837 when cluster is provided by user4838 destroys and redirects back to clusters list4839 security4840 is allowed for admin when admin mode is enabled4841 is denied for admin when admin mode is disabled4842 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024843 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024844 is expected to be denied for developer. Expected: 401,404 Got: 4044845 is expected to be denied for reporter. Expected: 401,404 Got: 4044846 is expected to be denied for guest. Expected: 401,404 Got: 4044847 is expected to be denied for user. Expected: 401,404 Got: 4044848 is expected to be denied for external. Expected: 401,404 Got: 4044849 no group_id param4850 does not respond to any action without group_id param4851API::Wikis4852 GET /projects/:id/wikis4853 when wiki is disabled4854 when user is guest4855 returns 404 Project Not Found4856 when user is developer4857 returns 403 Forbidden4858 when user is maintainer4859 returns 403 Forbidden4860 when wiki is available only for team members4861 when user is guest4862 returns 404 Project Not Found4863 when user is developer4864 return the empty list of wiki pages4865 when wiki has pages4866 returns the list of wiki pages without content4867 returns the list of wiki pages with content4868 when user is maintainer4869 return the empty list of wiki pages4870 when wiki has pages4871 returns the list of wiki pages without content4872 returns the list of wiki pages with content4873 when wiki is available for everyone with access4874 when user is guest4875 returns 404 Project Not Found4876 when user is developer4877 return the empty list of wiki pages4878 when wiki has pages4879 returns the list of wiki pages without content4880 returns the list of wiki pages with content4881 when user is maintainer4882 return the empty list of wiki pages4883 when wiki has pages4884 returns the list of wiki pages without content4885 returns the list of wiki pages with content4886 GET /projects/:id/wikis/:slug4887 when wiki is disabled4888 when user is guest4889 returns 404 Project Not Found4890 when user is developer4891 returns 403 Forbidden4892 when user is maintainer4893 returns 403 Forbidden4894 when wiki is available only for team members4895 when user is guest4896 returns 404 Project Not Found4897 when user is developer4898 behaves like returns wiki page4899 is expected to eq "Page 5"4900 when render param is false4901 behaves like returns wiki page4902 is expected to eq "Page 6"4903 when render param is true4904 behaves like returns wiki page4905 is expected to eq "Page 7"4906 when wiki page has versions4907 when version param is not present4908 retrieves the last version4909 when version param is set4910 retrieves the specific page version4911 when version param is not valid or inexistent4912 behaves like wiki API 404 Wiki Page Not Found4913 returns 404 Wiki Page Not Found4914 when page is not existing4915 returns 404 Wiki Page Not Found4916 when user is maintainer4917 behaves like returns wiki page4918 is expected to eq "Page 11"4919 when render param is false4920 behaves like returns wiki page4921 is expected to eq "Page 12"4922 when render param is true4923 behaves like returns wiki page4924 is expected to eq "Page 13"4925 when wiki page has versions4926 when version param is not present4927 retrieves the last version4928 when version param is set4929 retrieves the specific page version4930 when version param is not valid or inexistent4931 behaves like wiki API 404 Wiki Page Not Found4932 returns 404 Wiki Page Not Found4933 when page is not existing4934 returns 404 Wiki Page Not Found4935 when wiki is available for everyone with access4936 when user is guest4937 returns 404 Project Not Found4938 when user is developer4939 behaves like returns wiki page4940 is expected to eq "Page 18"4941 when render param is false4942 behaves like returns wiki page4943 is expected to eq "Page 19"4944 when render param is true4945 behaves like returns wiki page4946 is expected to eq "Page 20"4947 when wiki page has versions4948 when version param is not present4949 retrieves the last version4950 when version param is set4951 retrieves the specific page version4952 when version param is not valid or inexistent4953 behaves like wiki API 404 Wiki Page Not Found4954 returns 404 Wiki Page Not Found4955 when page is not existing4956 returns 404 Wiki Page Not Found4957 when user is maintainer4958 behaves like returns wiki page4959 is expected to eq "Page 24"4960 when render param is false4961 behaves like returns wiki page4962 is expected to eq "Page 25"4963 when render param is true4964 behaves like returns wiki page4965 is expected to eq "Page 26"4966 when wiki page has versions4967 when version param is not present4968 retrieves the last version4969 when version param is set4970 retrieves the specific page version4971 when version param is not valid or inexistent4972 behaves like wiki API 404 Wiki Page Not Found4973 returns 404 Wiki Page Not Found4974 when page is not existing4975 returns 404 Wiki Page Not Found4976 when content contains a reference4977 expands the reference in the content4978 POST /projects/:id/wikis4979 when wiki is disabled4980 when user is guest4981 returns 404 Project Not Found4982 when user is developer4983 returns 403 Forbidden4984 when user is maintainer4985 returns 403 Forbidden4986 when wiki is available only for team members4987 when user is guest4988 returns 404 Project Not Found4989 when user is developer4990DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4991 creates the wiki page4992 responds with validation error on empty title4993 responds with validation error on empty content4994 when user is maintainer4995DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)4996 creates the wiki page4997 responds with validation error on empty title4998 responds with validation error on empty content4999 when wiki is available for everyone with access5000 when user is guest5001 returns 404 Project Not Found5002 when user is developer5003DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5004 creates the wiki page5005 responds with validation error on empty title5006 responds with validation error on empty content5007 when user is maintainer5008DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5009 creates the wiki page5010 responds with validation error on empty title5011 responds with validation error on empty content5012 PUT /projects/:id/wikis/:slug5013 when wiki is disabled5014 when user is guest5015 returns 404 Project Not Found5016 when user is developer5017 returns 403 Forbidden5018 when user is maintainer5019 returns 403 Forbidden5020 when wiki is available only for team members5021 when user is guest5022 returns 404 Project Not Found5023 when user is developer5024DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5025 updates the wiki page5026DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5027 updates with wiki with missing title5028DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5029 updates with wiki with missing content5030DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5031 updates with wiki with missing format5032 when page is not existing5033 returns 404 Wiki Page Not Found5034 when user is maintainer5035DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5036 updates the wiki page5037DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5038 updates with wiki with missing title5039DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5040 updates with wiki with missing content5041DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5042 updates with wiki with missing format5043 when page is not existing5044 returns 404 Wiki Page Not Found5045 when wiki is available for everyone with access5046 when user is guest5047 returns 404 Project Not Found5048 when user is developer5049DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5050 updates the wiki page5051DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5052 updates with wiki with missing title5053DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5054 updates with wiki with missing content5055DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5056 updates with wiki with missing format5057 when page is not existing5058 returns 404 Wiki Page Not Found5059 when user is maintainer5060DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5061 updates the wiki page5062DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5063 updates with wiki with missing title5064DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5065 updates with wiki with missing content5066DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5067 updates with wiki with missing format5068 when page is not existing5069 returns 404 Wiki Page Not Found5070 when wiki belongs to a group project5071DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5072 updates the wiki page5073DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5074 updates with wiki with missing title5075 updates with wiki with missing content5076 updates with wiki with missing format5077 DELETE /projects/:id/wikis/:slug5078 when wiki is disabled5079 when user is guest5080 returns 404 Project Not Found5081 when user is developer5082 returns 403 Forbidden5083 when user is maintainer5084 returns 403 Forbidden5085 when wiki is available only for team members5086 when user is guest5087 returns 404 Project Not Found5088 when user is developer5089 returns 403 Forbidden5090 when user is maintainer5091DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5092 returns 204 No Content5093 when wiki is available for everyone with access5094 when user is guest5095 returns 404 Project Not Found5096 when user is developer5097 returns 403 Forbidden5098 when user is maintainer5099DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5100 returns 204 No Content5101 when page is not existing5102 returns 404 Wiki Page Not Found5103 when there is an error deleting the page5104 returns 4225105 when wiki belongs to a group project5106DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5107 returns 204 No Content5108 POST /projects/:id/wikis/attachments5109 when wiki is disabled5110 when user is guest5111 returns 404 Project Not Found5112 when user is developer5113 returns 403 Forbidden5114 when user is maintainer5115 returns 403 Forbidden5116 when wiki is available only for team members5117 when user is guest5118 returns 404 Project Not Found5119 when user is developer5120 pushes attachment to the wiki repository5121 responds with validation error on empty file5122 responds with validation error on invalid temp file5123 is backward compatible with regular multipart uploads5124 when user is maintainer5125 pushes attachment to the wiki repository5126 responds with validation error on empty file5127 responds with validation error on invalid temp file5128 is backward compatible with regular multipart uploads5129 when wiki is available for everyone with access5130 when user is guest5131 returns 404 Project Not Found5132 when user is developer5133 pushes attachment to the wiki repository5134 responds with validation error on empty file5135 responds with validation error on invalid temp file5136 is backward compatible with regular multipart uploads5137 when user is maintainer5138 pushes attachment to the wiki repository5139 responds with validation error on empty file5140 responds with validation error on invalid temp file5141 is backward compatible with regular multipart uploads5142API::Ci::JobArtifacts5143 DELETE /projects/:id/jobs/:job_id/artifacts5144 when project is not undergoing stats refresh5145 when user is anonymous5146 does not delete artifacts5147 returns status 401 (unauthorized)5148 with developer5149 does not delete artifacts5150 returns status 403 (forbidden)5151 with authorized user5152 deletes artifacts5153 returns status 204 (no content)5154 when project is undergoing stats refresh5155 behaves like preventing request because of ongoing project stats refresh5156 logs about the rejected request5157 returns 409 error5158 does not delete artifacts5159 DELETE /projects/:id/artifacts5160 when user is anonymous5161 does not execute Ci::JobArtifacts::DeleteProjectArtifactsService5162 returns status 401 (unauthorized)5163 with developer5164 does not execute Ci::JobArtifacts::DeleteProjectArtifactsService5165 returns status 403 (forbidden)5166 with authorized user5167 executes Ci::JobArtifacts::DeleteProjectArtifactsService5168 returns status 202 (accepted)5169 when project is undergoing stats refresh5170 behaves like preventing request because of ongoing project stats refresh5171 logs about the rejected request5172 returns 409 error5173 does not delete artifacts5174 GET /projects/:id/jobs/:job_id/artifacts/:artifact_path5175 when job has artifacts5176 when user is anonymous5177 when project is public5178 allows to access artifacts5179 when project is public with artifacts that are non public5180 rejects access to artifacts5181 with the non_public_artifacts feature flag disabled5182 allows access to artifacts5183 when project is public with builds access disabled5184 rejects access to artifacts5185 when project is private5186 rejects access and hides existence of artifacts5187 when user is authorized5188 returns a specific artifact file for a valid path5189 when artifacts are locked5190 allows access to expired artifact5191 when job does not have artifacts5192 does not return job artifact file5193 GET /projects/:id/jobs/:job_id/artifacts5194 normal authentication5195 job with artifacts5196 does not return job artifacts if not uploaded5197 when artifacts are stored locally5198 authorized user5199 behaves like downloads artifact5200 returns specific job artifacts5201 behaves like storing arguments in the application context5202 places the expected params in the application context5203 behaves like not executing any extra queries for the application context5204 does not execute more queries than without adding anything to the application context5205 when job token is used5206 behaves like downloads artifact5207 returns specific job artifacts5208 behaves like storing arguments in the application context5209 places the expected params in the application context5210 behaves like not executing any extra queries for the application context5211 does not execute more queries than without adding anything to the application context5212 when job token scope is enabled5213 does not allow downloading artifacts5214 when project is added to the job token scope5215 behaves like downloads artifact5216 returns specific job artifacts5217 behaves like storing arguments in the application context5218 places the expected params in the application context5219 behaves like not executing any extra queries for the application context5220 does not execute more queries than without adding anything to the application context5221 unauthorized user5222 does not return specific job artifacts5223 when artifacts are stored remotely5224 when proxy download is enabled5225 responds with the workhorse send-url5226 when proxy download is disabled5227 returns location redirect5228 authorized user5229Skipping ./spec/requests/api/ci/job_artifacts_spec.rb[1:4:1:1:2:3:1] 'API::Ci::JobArtifacts GET /projects/:id/jobs/:job_id/artifacts normal authentication job with artifacts when artifacts are stored remotely authorized user returns the file remote URL' because it's flaky.5230 returns the file remote URL (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)5231 unauthorized user5232 does not return specific job artifacts5233 when public project guest and artifacts are non public5234 rejects access and hides existence of artifacts5235 with the non_public_artifacts feature flag disabled5236 allows access to artifacts5237 GET /projects/:id/artifacts/:ref_name/download?job=name5238 when not logged in5239 does not find a resource in a private project5240 when logging as guest5241 gives 4035242 non-existing job5243 has no such ref5244 behaves like not found5245 is expected to respond with numeric status code not_found5246 has no such job5247 behaves like not found5248 is expected to respond with numeric status code not_found5249 find proper job5250 with regular branch5251 behaves like a valid file5252 when artifacts are stored locally5253 is expected to respond with numeric status code ok5254 is expected to include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=\"ci_build_artifacts.zip\"; filename*=UTF-8''ci_build_artifacts.zip"}5255 when artifacts are stored remotely5256 returns location redirect5257 with branch name containing slash5258 behaves like a valid file5259 when artifacts are stored locally5260 is expected to respond with numeric status code ok5261 is expected to include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=\"ci_build_artifacts.zip\"; filename*=UTF-8''ci_build_artifacts.zip"}5262 when artifacts are stored remotely5263 returns location redirect5264 with job name in a child pipeline5265 behaves like a valid file5266 when artifacts are stored locally5267 is expected to respond with numeric status code ok5268 is expected to include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=\"ci_build_artifacts.zip\"; filename*=UTF-8''ci_build_artifacts.zip"}5269 when artifacts are stored remotely5270 returns location redirect5271 GET id/jobs/artifacts/:ref_name/raw/*artifact_path?job=name5272 when job has artifacts5273 when user is anonymous5274 when project is public5275 allows to access artifacts5276 when project is public with builds access disabled5277 rejects access to artifacts5278 when project is public with non public artifacts5279 rejects access and hides existence of artifacts5280 with the non_public_artifacts feature flag disabled5281 allows access to artifacts5282 when project is private5283 rejects access and hides existence of artifacts5284 when user is authorized5285 returns a specific artifact file for a valid path5286 with branch name containing slash5287 returns a specific artifact file for a valid path5288 non-existing job5289 has no such ref5290 behaves like not found5291 is expected to respond with numeric status code not_found5292 has no such job5293 behaves like not found5294 is expected to respond with numeric status code not_found5295 when job does not have artifacts5296 does not return job artifact file5297 POST /projects/:id/jobs/:job_id/artifacts/keep5298 artifacts did not expire5299 keeps artifacts5300 no artifacts5301 responds with not found5302API::Ci::Variables5303 GET /projects/:id/variables5304 authorized user with proper permissions5305 returns project variables5306 authorized user with invalid permissions5307 does not return project variables5308 unauthorized user5309 does not return project variables5310 GET /projects/:id/variables/:key5311 authorized user with proper permissions5312 returns project variable details5313 responds with 404 Not Found if requesting non-existing variable5314 when there are two variables with the same key on different env5315 when filter[environment_scope] is not passed5316 returns 4095317 when filter[environment_scope] is passed5318 returns the variable5319 when wrong filter[environment_scope] is passed5320 returns not_found5321 when there is only one variable with provided key5322 returns not_found5323 authorized user with invalid permissions5324 does not return project variable details5325 unauthorized user5326 does not return project variable details5327 POST /projects/:id/variables5328 authorized user with proper permissions5329 creates variable5330 creates variable with optional attributes5331 does not allow to duplicate variable key5332 creates variable with a specific environment scope5333 allows duplicated variable key given different environment scopes5334 authorized user with invalid permissions5335 does not create variable5336 unauthorized user5337 does not create variable5338 PUT /projects/:id/variables/:key5339 authorized user with proper permissions5340 updates variable data5341 responds with 404 Not Found if requesting non-existing variable5342 when there are two variables with the same key on different env5343 when filter[environment_scope] is not passed5344 returns 4095345 when filter[environment_scope] is passed5346 updates the variable5347 when wrong filter[environment_scope] is passed5348 returns not_found5349 authorized user with invalid permissions5350 does not update variable5351 unauthorized user5352 does not update variable5353 DELETE /projects/:id/variables/:key5354 authorized user with proper permissions5355 deletes variable5356 responds with 404 Not Found if requesting non-existing variable5357 when there are two variables with the same key on different env5358 when filter[environment_scope] is not passed5359 returns 4095360 when filter[environment_scope] is passed5361 deletes the variable5362 when wrong filter[environment_scope] is passed5363 returns not_found5364 authorized user with invalid permissions5365 does not delete variable5366 unauthorized user5367 does not delete variable5368Groups::ChildrenController5369 GET #index5370 for projects5371 as a user5372 shows all children5373 being member of private subgroup5374 shows public and private children the user is member of5375 as a guest5376 shows the public children5377 for subgroups5378 as a user5379 shows all children5380 being member of private subgroup5381 shows public and private children the user is member of5382 as a guest5383 shows the public children5384 filtering children5385 expands the tree for matching projects5386 expands the tree for matching subgroups5387 merges the trees correctly5388 expands the tree upto a specified parent5389 returns an array with one element when only one result is matched5390 returns an empty array when there are no search results5391 succeeds if multiple pages contain matching subgroups5392 includes pagination headers5393 queries per rendered element5394 queries the expected amount for a group row5395 queries the expected amount for a project row5396 when rendering hierarchies5397 queries the expected amount when nested rows are increased for a group5398 queries the expected amount when a new group match is added5399 queries the expected amount when nested rows are increased for a project5400 pagination5401 with only projects5402 has projects on the first page5403 has projects on the second page5404 with subgroups and projects5405 contains all subgroups5406 contains the project and group on the second page5407 with a mixed first page5408 correctly calculates the counts5409 external authorization5410 works when external authorization service is enabled5411Projects::WikisController5412 behaves like wiki controller actions5413 GET #new5414 redirects to #show and appends a `random_title` param5415 when the wiki repository cannot be created5416 redirects to the wiki container and displays an error message5417 GET #pages5418 assigns the page collections5419 does not load the page content5420 does not load the sidebar5421 behaves like recovers from git timeout5422 when we encounter git command errors5423 renders the appropriate template5424 when the request is of non-html format5425 returns a 404 error5426 GET #history5427 behaves like recovers from git timeout5428 when we encounter git command errors5429 renders the appropriate template5430 behaves like fetching history5431 returns status ok5432 assigns @commits5433 behaves like fetching history5434 returns status not_found5435 GET #diff5436 when commit exists5437 renders the diff5438 when commit does not exist5439 returns a 404 error5440 when page does not exist5441 returns a 404 error5442 behaves like recovers from git timeout5443 when we encounter git command errors5444 renders the appropriate template5445 GET #show5446 when page exists5447 renders the page5448 behaves like recovers from git timeout5449 when we encounter git command errors5450 renders the appropriate template5451 the sidebar fails to load5452 renders the page, and marks the sidebar as failed5453 page view tracking5454 increases the page view counter5455 behaves like tracking unique hll events5456 tracks unique event5457 when page content encoding is invalid5458 sets flash error5459 when the page does not exist5460 when the user can create pages5461 builds a new wiki page with the id as the title5462 when a random_title param is present5463 builds a new wiki page with no title5464 when the user cannot create pages5465 shows the empty state5466 when page is a file5467 file_name: "dk.png"5468 delivers the file with the correct headers5469 file_name: "unsanitized.svg"5470 delivers the file with the correct headers5471 file_name: "git-cheat-sheet.pdf"5472 delivers the file with the correct headers5473 POST #preview_markdown5474 renders json in a correct format5475 GET #edit5476 behaves like edit action5477 when the page does not exist5478 redirects to show5479 when id param is blank5480 redirects to the home page5481 when page content encoding is invalid5482 redirects to show5483 when the page has nil content5484 redirects to show5485 behaves like recovers from git timeout5486 when we encounter git command errors5487 renders the appropriate template5488 when page content encoding is valid5489 shows the edit page5490 PATCH #update5491 behaves like edit action5492 when the page does not exist5493 redirects to show5494 when id param is blank5495 redirects to the home page5496 when page content encoding is invalid5497 redirects to show5498 when the page has nil content5499 redirects to show5500 when page content encoding is valid5501DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5502 updates the page5503 when user does not have edit permissions5504 renders the empty state5505 POST #create5506 when page is valid5507DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5508 creates the page5509 when page is not valid5510 renders the edit state5511 DELETE #destroy5512 when page exists5513 behaves like deletes the page5514DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5515 is expected to be empty5516 but page cannot be deleted5517 renders the edit state5518 when user is a developer5519 behaves like deletes the page5520DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5521 is expected to be empty5522 when user is a reporter5523 returns 4045524 when page does not exist5525 renders 4045526 #git_access5527 renders the git access page5528GroupsController5529 token authentication5530 when public group5531 behaves like authenticates sessionless user for the request spec5532 show atom5533 when the 'private_token' param is populated with the personal access token5534 when valid token5535 when resource is public5536 authenticates user and returns response with ok status5537 when user with expired password5538 does not authenticate user and returns response with ok status5539 when the personal access token has no api scope5540 when resource is public5541 does not authenticate user and returns response with ok status5542 when invalid token5543 when resource is public5544 does not authenticate user and returns response with ok status5545 when the 'PRIVATE-TOKEN' header is populated with the personal access token5546 when valid token5547 when resource is public5548 authenticates user and returns response with ok status5549 when user with expired password5550 does not authenticate user and returns response with ok status5551 when the personal access token has no api scope5552 when resource is public5553 does not authenticate user and returns response with ok status5554 when invalid token5555 when resource is public5556 does not authenticate user and returns response with ok status5557 when the 'feed_token' param is populated with the feed token5558 when valid token5559 when resource is public5560 authenticates user and returns response with ok status5561 when user with expired password5562 does not authenticate user and returns response with ok status5563 when invalid token5564 when resource is public5565 does not authenticate user and returns response with ok status5566 behaves like authenticates sessionless user for the request spec5567 issues atom5568 when the 'private_token' param is populated with the personal access token5569 when valid token5570 when resource is public5571 authenticates user and returns response with ok status5572 when user with expired password5573 does not authenticate user and returns response with ok status5574 when the personal access token has no api scope5575 when resource is public5576 does not authenticate user and returns response with ok status5577 when invalid token5578 when resource is public5579 does not authenticate user and returns response with ok status5580 when the 'PRIVATE-TOKEN' header is populated with the personal access token5581 when valid token5582 when resource is public5583 authenticates user and returns response with ok status5584 when user with expired password5585 does not authenticate user and returns response with ok status5586 when the personal access token has no api scope5587 when resource is public5588 does not authenticate user and returns response with ok status5589 when invalid token5590 when resource is public5591 does not authenticate user and returns response with ok status5592 when the 'feed_token' param is populated with the feed token5593 when valid token5594 when resource is public5595 authenticates user and returns response with ok status5596 when user with expired password5597 does not authenticate user and returns response with ok status5598 when invalid token5599 when resource is public5600 does not authenticate user and returns response with ok status5601 behaves like authenticates sessionless user for the request spec5602 issues_calendar ics5603 when the 'private_token' param is populated with the personal access token5604 when valid token5605 when resource is public5606 authenticates user and returns response with ok status5607 when user with expired password5608 does not authenticate user and returns response with ok status5609 when the personal access token has no api scope5610 when resource is public5611 does not authenticate user and returns response with ok status5612 when invalid token5613 when resource is public5614 does not authenticate user and returns response with ok status5615 when the 'PRIVATE-TOKEN' header is populated with the personal access token5616 when valid token5617 when resource is public5618 authenticates user and returns response with ok status5619 when user with expired password5620 does not authenticate user and returns response with ok status5621 when the personal access token has no api scope5622 when resource is public5623 does not authenticate user and returns response with ok status5624 when invalid token5625 when resource is public5626 does not authenticate user and returns response with ok status5627 when the 'feed_token' param is populated with the feed token5628 when valid token5629 when resource is public5630 authenticates user and returns response with ok status5631 when user with expired password5632 does not authenticate user and returns response with ok status5633 when invalid token5634 when resource is public5635 does not authenticate user and returns response with ok status5636 when private project5637 behaves like authenticates sessionless user for the request spec5638 show atom5639 when the 'private_token' param is populated with the personal access token5640 when valid token5641 when resource is private5642 authenticates user and returns response with ok status5643 when user with expired password5644 does not return response with ok status5645 when password expiration is not applicable5646 when ldap user5647 authenticates user and returns response with ok status5648 when the personal access token has no api scope5649 when resource is private5650 does not return response with ok status5651 when invalid token5652 when resource is private5653 does not return response with ok status5654 when the 'PRIVATE-TOKEN' header is populated with the personal access token5655 when valid token5656 when resource is private5657 authenticates user and returns response with ok status5658 when user with expired password5659 does not return response with ok status5660 when password expiration is not applicable5661 when ldap user5662 authenticates user and returns response with ok status5663 when the personal access token has no api scope5664 when resource is private5665 does not return response with ok status5666 when invalid token5667 when resource is private5668 does not return response with ok status5669 when the 'feed_token' param is populated with the feed token5670 when valid token5671 when resource is private5672 authenticates user and returns response with ok status5673 when user with expired password5674 does not return response with ok status5675 when password expiration is not applicable5676 when ldap user5677 authenticates user and returns response with ok status5678 when invalid token5679 when resource is private5680 does not return response with ok status5681 behaves like authenticates sessionless user for the request spec5682 issues atom5683 when the 'private_token' param is populated with the personal access token5684 when valid token5685 when resource is private5686 authenticates user and returns response with ok status5687 when user with expired password5688 does not return response with ok status5689 when password expiration is not applicable5690 when ldap user5691 authenticates user and returns response with ok status5692 when the personal access token has no api scope5693 when resource is private5694 does not return response with ok status5695 when invalid token5696 when resource is private5697 does not return response with ok status5698 when the 'PRIVATE-TOKEN' header is populated with the personal access token5699 when valid token5700 when resource is private5701 authenticates user and returns response with ok status5702 when user with expired password5703 does not return response with ok status5704 when password expiration is not applicable5705 when ldap user5706 authenticates user and returns response with ok status5707 when the personal access token has no api scope5708 when resource is private5709 does not return response with ok status5710 when invalid token5711 when resource is private5712 does not return response with ok status5713 when the 'feed_token' param is populated with the feed token5714 when valid token5715 when resource is private5716 authenticates user and returns response with ok status5717 when user with expired password5718 does not return response with ok status5719 when password expiration is not applicable5720 when ldap user5721 authenticates user and returns response with ok status5722 when invalid token5723 when resource is private5724 does not return response with ok status5725 behaves like authenticates sessionless user for the request spec5726 issues_calendar ics5727 when the 'private_token' param is populated with the personal access token5728 when valid token5729 when resource is private5730 authenticates user and returns response with ok status5731 when user with expired password5732 does not return response with ok status5733 when password expiration is not applicable5734 when ldap user5735 authenticates user and returns response with ok status5736 when the personal access token has no api scope5737 when resource is private5738 does not return response with ok status5739 when invalid token5740 when resource is private5741 does not return response with ok status5742 when the 'PRIVATE-TOKEN' header is populated with the personal access token5743 when valid token5744 when resource is private5745 authenticates user and returns response with ok status5746 when user with expired password5747 does not return response with ok status5748 when password expiration is not applicable5749 when ldap user5750 authenticates user and returns response with ok status5751 when the personal access token has no api scope5752 when resource is private5753 does not return response with ok status5754 when invalid token5755 when resource is private5756 does not return response with ok status5757 when the 'feed_token' param is populated with the feed token5758 when valid token5759 when resource is private5760 authenticates user and returns response with ok status5761 when user with expired password5762 does not return response with ok status5763 when password expiration is not applicable5764 when ldap user5765 authenticates user and returns response with ok status5766 when invalid token5767 when resource is private5768 does not return response with ok status5769API::Deployments5770 GET /projects/:id/deployments5771 as member of the project5772 returns projects deployments sorted by id asc5773 returns multiple deployments without N + 15774 with updated_at filters specified5775 returns projects deployments with last update in specified datetime range5776 when forbidden order_by is specified5777 returns projects deployments with last update in specified datetime range5778 with the environment filter specifed5779 returns deployments for the environment5780 ordering5781 returns ordered deployments5782 with invalid order_by5783 returns error5784 with invalid sorting5785 returns error5786 as non member5787 returns a 404 status code5788 GET /projects/:id/deployments/:deployment_id5789 as a member of the project5790 returns the projects deployment5791 as non member5792 returns a 404 status code5793 POST /projects/:id/deployments5794 as a maintainer5795 creates a new deployment5796 errors when creating a deployment with an invalid name5797 links any merged merge requests to the deployment5798 as a developer5799 creates a new deployment5800 links any merged merge requests to the deployment5801 links any picked merge requests to the deployment5802 as non member5803 returns a 404 status code5804 PUT /projects/:id/deployments/:deployment_id5805 as a maintainer5806 returns a 403 when updating a deployment with a build5807 updates a deployment without an associated build5808 returns an error when an invalid status transition is detected5809 links merge requests when the deployment status changes to success5810 as a developer5811 returns a 403 when updating a deployment with a build5812 updates a deployment without an associated build5813 as non member5814 returns a 404 status code5815 GET /projects/:id/deployments/:deployment_id/merge_requests5816 when a user is not a member of the deployment project5817 returns a 404 status code5818 when a user member of the deployment project5819 returns the relevant merge requests linked to a deployment for a project5820 when a deployment is not associated to any existing merge requests5821 returns an empty array5822 prevent N + 1 queries5823 when the endpoint returns multiple records5824 succeeds5825 with 10 more records5826 does not increase the query count5827Private Project Pages Access5828 Project should be private5829 #private?5830 is expected to be truthy5831 GET /projects/:id/pages_access5832 access depends on the level5833 pages_access_level: 0, with_user: "admin", expected_result: 4035834 correct return value5835 pages_access_level: 0, with_user: "owner", expected_result: 4035836 correct return value5837 pages_access_level: 0, with_user: "master", expected_result: 4035838 correct return value5839 pages_access_level: 0, with_user: "developer", expected_result: 4035840 correct return value5841 pages_access_level: 0, with_user: "reporter", expected_result: 4035842 correct return value5843 pages_access_level: 0, with_user: "guest", expected_result: 4035844 correct return value5845 pages_access_level: 0, with_user: "user", expected_result: 4045846 correct return value5847 pages_access_level: 0, with_user: nil, expected_result: 4045848 correct return value5849 pages_access_level: 30, with_user: "admin", expected_result: 2005850 correct return value5851 pages_access_level: 30, with_user: "owner", expected_result: 2005852 correct return value5853 pages_access_level: 30, with_user: "master", expected_result: 2005854 correct return value5855 pages_access_level: 30, with_user: "developer", expected_result: 2005856 correct return value5857 pages_access_level: 30, with_user: "reporter", expected_result: 2005858 correct return value5859 pages_access_level: 30, with_user: "guest", expected_result: 2005860 correct return value5861 pages_access_level: 30, with_user: "user", expected_result: 4045862 correct return value5863 pages_access_level: 30, with_user: nil, expected_result: 4045864 correct return value5865 pages_access_level: 20, with_user: "admin", expected_result: 2005866 correct return value5867 pages_access_level: 20, with_user: "owner", expected_result: 2005868 correct return value5869 pages_access_level: 20, with_user: "master", expected_result: 2005870 correct return value5871 pages_access_level: 20, with_user: "developer", expected_result: 2005872 correct return value5873 pages_access_level: 20, with_user: "reporter", expected_result: 2005874 correct return value5875 pages_access_level: 20, with_user: "guest", expected_result: 2005876 correct return value5877 pages_access_level: 20, with_user: "user", expected_result: 4045878 correct return value5879 pages_access_level: 20, with_user: nil, expected_result: 4045880 correct return value5881 pages_access_level: 10, with_user: "admin", expected_result: 2005882 correct return value5883 pages_access_level: 10, with_user: "owner", expected_result: 2005884 correct return value5885 pages_access_level: 10, with_user: "master", expected_result: 2005886 correct return value5887 pages_access_level: 10, with_user: "developer", expected_result: 2005888 correct return value5889 pages_access_level: 10, with_user: "reporter", expected_result: 2005890 correct return value5891 pages_access_level: 10, with_user: "guest", expected_result: 2005892 correct return value5893 pages_access_level: 10, with_user: "user", expected_result: 4045894 correct return value5895 pages_access_level: 10, with_user: nil, expected_result: 4045896 correct return value5897OpenID Connect requests5898 Application without OpenID scope5899 token response does not include an ID token5900 userinfo response is unauthorized5901 Application with OpenID scope5902 token response includes an ID token5903 UserInfo payload5904 includes all user information and group memberships5905 does not include any unknown claims5906 includes email and email_verified claims5907 has public email in email claim5908 has false in email_verified claim5909 ID token payload5910 includes the subject claims5911 includes the GitLab root URL5912 includes the time of the last authentication5913 has public email in email claim5914 has true in email_verified claim5915 does not include any unknown properties5916 does include groups5917 when user is blocked5918 redirects to login page5919 when user is ldap_blocked5920 redirects to login page5921 OpenID Discovery keys5922 with a cross-origin request5923 returns data5924 behaves like cross-origin GET request5925 allows cross-origin request5926 with a cross-origin preflight OPTIONS request5927 behaves like cross-origin GET request5928 allows cross-origin request5929 OpenID WebFinger endpoint5930 with a cross-origin request5931 returns data5932 behaves like cross-origin GET request5933 allows cross-origin request5934 with a cross-origin preflight OPTIONS request5935 behaves like cross-origin GET request5936 allows cross-origin request5937 OpenID configuration information5938 correctly returns the configuration5939 with a cross-origin request5940 behaves like cross-origin GET request5941 allows cross-origin request5942 with a cross-origin preflight OPTIONS request5943 behaves like cross-origin GET request5944 allows cross-origin request5945 Application with OpenID and email scopes5946 token response includes an ID token5947 UserInfo payload5948 includes the email and email_verified claims5949 has private email in email claim5950 has true in email_verified claim5951 with a cross-origin request5952 behaves like cross-origin GET and POST request5953 allows cross-origin request5954 with a cross-origin POST request5955 behaves like cross-origin GET and POST request5956 allows cross-origin request5957 with a cross-origin preflight OPTIONS request5958 behaves like cross-origin GET and POST request5959 allows cross-origin request5960 ID token payload5961 has private email in email claim5962 has true in email_verified claim5963 does include groups5964Projects::RepositoriesController5965 POST create5966 when repository does not exist5967 creates the repository5968 when repository already exists5969 does not raise an exception5970 GET archive5971 as a guest5972 responds with redirect in correct format5973 as a user5974 uses Gitlab::Workhorse5975 responds with redirect to the short name archive if fully qualified5976 responds with redirect for a path with multiple slashes5977 prioritizes the id param over the ref param when both are specified5978 behaves like hotlink interceptor5979 DDOS prevention5980 hotlinked as media5981 response_status: :ok, accept_header: "*/*"5982 renders the response5983 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"5984 renders the response5985 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"5986 renders the response5987 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"5988 renders the response5989 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"5990 renders the response5991 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"5992 renders the response5993 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"5994 renders the response5995 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"5996 renders the response5997 response_status: :not_acceptable, accept_header: "image/webp,*/*"5998 renders the response5999 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"6000 renders the response6001 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"6002 renders the response6003 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"6004 renders the response6005 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"6006 renders the response6007 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"6008 renders the response6009 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"6010 renders the response6011 response_status: :not_acceptable, accept_header: "text/css"6012 renders the response6013 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"6014 renders the response6015 hotlinked as a script6016 response_status: :ok, fetch_mode: "navigate"6017 renders the response6018 response_status: :ok, fetch_mode: "nested-navigate"6019 renders the response6020 response_status: :ok, fetch_mode: "same-origin"6021 renders the response6022 response_status: :not_acceptable, fetch_mode: "cors"6023 renders the response6024 response_status: :not_acceptable, fetch_mode: "no-cors"6025 renders the response6026 response_status: :not_acceptable, fetch_mode: "websocket"6027 renders the response6028 when the service raises an error6029 renders Not Found6030 when the request format is HTML6031 renders 4046032 rate limiting6033 rate limits user when thresholds hit6034 caching6035 sets appropriate caching headers6036 when project is public6037 sets appropriate caching headers6038 and repo is private6039 sets appropriate caching headers6040 when ref is a commit SHA6041 max-age is set to 3600 in Cache-Control header6042 when If-None-Modified header is set6043 returns a 304 status6044 as a sessionless user6045 when no token is provided6046 redirects to sign in page6047 when a token param is present6048 when token is correct6049 calls the action normally6050 when user with expired password6051 redirects to sign in page6052 when password expiration is not applicable6053 when ldap user6054 calls the action normally6055 when token is incorrect6056 redirects to sign in page6057 when token is migrated6058 calls the action normally6059 when a token header is present6060 when token is correct6061 calls the action normally6062 when user with expired password6063 redirects to sign in page6064 when password expiration is not applicable6065 when ldap user6066 calls the action normally6067 when token is incorrect6068 redirects to sign in page6069API::UsageDataQueries6070 GET /usage_data/usage_data_queries6071 with authentication6072 returns queries if user is admin6073 returns forbidden if user is not admin6074 without authentication6075 returns unauthorized6076 when feature_flag is disabled6077 returns not_found for admin6078 returns forbidden for non-admin6079Groups::UploadsController6080 behaves like handle uploads6081 behaves like handle uploads authorize6082 POST #authorize6083 when a user is not authorized to upload a file6084 returns 404 status6085 when id is not passed as a param6086 returns 404 status6087 when a user can upload a file6088 and the request bypassed workhorse6089 raises an exception6090 and request is sent by gitlab-workhorse to authorize the request6091 when using local storage6092 behaves like a local file6093 behaves like a valid response6094 responds with status 2006095 uses the gitlab-workhorse content type6096 responds with status 200, location of uploads store and object details6097 when using remote storage6098 when direct upload is enabled6099 behaves like a valid response6100 responds with status 2006101 uses the gitlab-workhorse content type6102 responds with status 200, location of uploads remote store and object details6103 when direct upload is disabled6104 behaves like a local file6105 behaves like a valid response6106 responds with status 2006107 uses the gitlab-workhorse content type6108 responds with status 200, location of uploads store and object details6109 POST #create6110 when a user is not authorized to upload a file6111 returns 404 status6112 when a user can upload a file6113 without params['file']6114 returns an error6115 with valid image6116 returns a content with original filename, new link, and correct type.6117 creates a corresponding Upload record6118 with valid non-image file6119 returns a content with original filename, new link, and correct type.6120 GET #show6121 when the secret is invalid6122 responds with status 4046123 is a working exploit without the validation6124 when accessing a specific upload via different model6125 responds with status 4046126 when the upload does not have a MIME type that Rails knows6127 falls back to the null type6128 when the model is public6129 when not signed in6130 when the file exists6131 responds with status 2006132 when neither the uploader nor the model exists6133 responds with status 4046134 when the file doesn't exist6135 responds with status 4046136 when signed in6137 when the file exists6138 responds with status 2006139 when the file doesn't exist6140 responds with status 4046141 when the model is private6142 when not signed in6143 when the file exists6144 when the file is an image6145 enforce_auth_checks_on_uploads feature flag6146 with flag enabled6147 responds with appropriate status6148 with flag disabled6149 responds with status 2006150 when the file is not an image6151 redirects to the sign in page6152 when the file doesn't exist6153 redirects to the sign in page6154 when signed in6155 when the user has access to the project6156 when the file exists6157 responds with status 2006158 when the file doesn't exist6159 responds with status 4046160 when the user doesn't have access to the model6161 when the file exists6162 when the file is an image6163 enforce_auth_checks_on_uploads feature flag6164 with flag enabled6165 responds with status 4046166 with flag disabled6167 responds with status 2006168 when the file is not an image6169 responds with status 4046170 when the file doesn't exist6171 responds with status 4046172 with a moved group6173 redirects to a file with the proper extension6174 GET #show6175 when the group is public6176 when not signed in6177 enforce_auth_checks_on_uploads feature flag6178 with flag enabled6179 responds with appropriate status6180 with flag disabled6181 responds with status 2006182 when signed in6183 when the user doesn't have access to the model6184 enforce_auth_checks_on_uploads feature flag6185 with flag enabled6186 responds with status 2006187 with flag disabled6188 responds with status 2006189 when the group is private6190 when not signed in6191 enforce_auth_checks_on_uploads feature flag6192 with flag enabled6193 responds with appropriate status6194 with flag disabled6195 responds with status 2006196 when signed in6197 when the user doesn't have access to the model6198 enforce_auth_checks_on_uploads feature flag6199 with flag enabled6200 responds with status 2006201 with flag disabled6202 responds with status 2006203Snippets::NotesController6204 GET index6205 when a snippet is public6206 returns status 2006207 returns not empty array of notes6208 when a snippet is internal6209 when user not logged in6210 returns status 4046211 when user logged in6212 returns status 2006213 when a snippet is private6214 when user not logged in6215 returns status 4046216 when user other than author logged in6217 returns status 4046218 when author logged in6219 returns status 2006220 returns 1 note6221 dont show non visible notes6222 does not return any note6223 POST create6224 when a snippet is public6225 returns status 3026226 creates the note6227 behaves like create notes request exceeding rate limit6228 allows user in allow-list to create notes, even if the case is different6229 when rate limiter enabled6230 logs request and declines it when endpoint called more than the threshold6231 when rate limiter is disabled6232 does not log request and does not block the request6233 when a snippet is internal6234 returns status 3026235 creates the note6236 behaves like create notes request exceeding rate limit6237 allows user in allow-list to create notes, even if the case is different6238 when rate limiter enabled6239 logs request and declines it when endpoint called more than the threshold6240 when rate limiter is disabled6241 does not log request and does not block the request6242 when a snippet is private6243 when user is not the author6244 returns status 4046245 does not create the note6246 when user sends a snippet_id for a public snippet6247 returns status 3026248 creates the note on the public snippet6249 when user is the author6250 returns status 3026251 creates the note6252 behaves like create notes request exceeding rate limit6253 allows user in allow-list to create notes, even if the case is different6254 when rate limiter enabled6255 logs request and declines it when endpoint called more than the threshold6256 when rate limiter is disabled6257 does not log request and does not block the request6258 DELETE destroy6259 when user is the author of a note6260 returns status 2006261 deletes the note6262 system note6263 does not delete the note6264 when user is not the author of a note6265 returns status 4046266 does not update the note6267 POST toggle_award_emoji6268 toggles the award emoji6269 removes the already awarded emoji when it exists6270maven package details6271 a maven package with version6272 behaves like a package detail6273 behaves like a working graphql query6274DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6275DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6276 returns a successful response6277 behaves like matching the package details schema6278DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6279DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6280 matches the JSON schema6281 with pipelines6282 behaves like a working graphql query6283DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6284DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6285 returns a successful response6286 behaves like matching the package details schema6287DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6288DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6289 matches the JSON schema6290 behaves like correct maven metadata6291DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6292DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6293 has the correct metadata6294 behaves like a package with files6295DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6296DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6297 has the right amount of files6298DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6299DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6300 has the basic package files data6301 with package files pending destruction6302DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6303DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6304 does not return them6305 a versionless maven package6306DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6307DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6308 has an empty version6309 behaves like a package detail6310 behaves like a working graphql query6311DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6312DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6313 returns a successful response6314 behaves like matching the package details schema6315DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6316DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6317 matches the JSON schema6318 with pipelines6319 behaves like a working graphql query6320DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6321DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6322 returns a successful response6323 behaves like matching the package details schema6324DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6325DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6326 matches the JSON schema6327 behaves like correct maven metadata6328DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6329DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6330 has the correct metadata6331 behaves like a package with files6332DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6333DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6334 has the right amount of files6335DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6336DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6337 has the basic package files data6338 with package files pending destruction6339DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6340DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6341 does not return them6342Groups::Settings::AccessTokensController6343 GET /:namespace/-/settings/access_tokens6344 behaves like feature unavailable6345 user is not a owner6346 is expected to respond with numeric status code not_found6347 behaves like GET resource access tokens available6348 retrieves active resource access tokens6349 retrieves inactive resource access tokens6350 lists all available scopes6351 retrieves newly created personal access token value6352 POST /:namespace/-/settings/access_tokens6353 behaves like feature unavailable6354 user is not a owner6355 is expected to respond with numeric status code not_found6356 behaves like POST resource access tokens available6357 returns success message6358 creates resource access token6359 creates project bot user6360 stores newly created token redis store6361 is expected to change `User.count` by 16362 is expected to change `PersonalAccessToken.count` by 16363 when unsuccessful6364 does not create the token6365 does not add the project bot as a member6366 does not create the project bot user6367 shows a failure alert6368 when group access token creation is disabled6369 is expected to respond with numeric status code not_found6370 does not create the token6371 does not add the project bot as a member6372 does not create the project bot user6373 with custom access level6374 behaves like POST resource access tokens available6375 returns success message6376 creates resource access token6377 creates project bot user6378 stores newly created token redis store6379 is expected to change `User.count` by 16380 is expected to change `PersonalAccessToken.count` by 16381 when unsuccessful6382 does not create the token6383 does not add the project bot as a member6384 does not create the project bot user6385 shows a failure alert6386 PUT /:namespace/-/settings/access_tokens/:id6387 behaves like feature unavailable6388 user is not a owner6389 is expected to respond with numeric status code not_found6390 behaves like PUT resource access tokens available6391 calls delete user worker6392 removes membership of bot user6393 converts issuables of the bot user to ghost user6394 deletes project bot user6395 when unsuccessful6396 shows a failure alert6397Import::GitlabController6398 GET callback6399 updates access token6400 importable_repos should return an array6401 passes namespace_id query param to status if provided6402 GET status6403 redirects to auth if session does not contain access token6404 when session contains access token6405 behaves like import controller status6406 returns variables for json request6407 POST create6408 returns 200 response when the project is imported successfully6409 returns 422 response when the project could not be imported6410 when the repository owner is the GitLab.com user6411 when the GitLab.com user and GitLab server user's usernames match6412 takes the current user's namespace6413 when the GitLab.com user and GitLab server user's usernames don't match6414 takes the current user's namespace6415 when the repository owner is not the GitLab.com user6416 when a namespace with the GitLab.com user's username already exists6417 when the namespace is owned by the GitLab server user6418 takes the existing namespace6419 when the namespace is not owned by the GitLab server user6420 doesn't create a project6421 when a namespace with the GitLab.com user's username doesn't exist6422 when current user can create namespaces6423 creates the namespace6424 takes the new namespace6425 when current user can't create namespaces6426 doesn't create the namespace6427 takes the current user's namespace6428 user has chosen an existing nested namespace for the project6429 takes the selected namespace and name6430 user has chosen a non-existent nested namespaces for the project6431 takes the selected namespace and name6432 creates the namespaces6433 new namespace has the right parent6434 user has chosen existent and non-existent nested namespaces and name for the project6435 takes the selected namespace and name6436 creates the namespaces6437 when user can not create projects in the chosen namespace6438 returns 422 response6439 behaves like project import rate limiter6440 when limit exceeds6441 notifies and redirects user6442API::IssueLinks6443 GET /links6444 when unauthenticated6445 returns 4016446 when authenticated6447 returns related issues6448 returns multiple links without N + 16449 POST /links6450 when unauthenticated6451 returns 4016452 when authenticated6453 given target project not found6454 returns 4046455 given target issue not found6456 returns 4046457 when user does not have write access to given issue6458 returns 4046459 when trying to relate to a confidential issue6460 returns 4046461 when trying to relate to a private project issue6462 returns 4046463 when user has ability to create an issue link6464 returns 201 status and contains the expected link response6465 returns 201 when sending full path of target project6466 GET /links/:issue_link_id6467 when unauthenticated6468 returns 4016469 when authenticated6470 when issue link does not exist6471 returns 4046472 when issue link does not belong to the specified issue6473 returns 4046474 when user has ability to read the issue link6475 returns 2006476 when user cannot read issue link6477 when the issue link targets an issue in a non-accessible project6478 returns 4046479 when issue link targets a non-accessible issue6480 returns 4046481 DELETE /links/:issue_link_id6482 when unauthenticated6483 returns 4016484 when authenticated6485 when user does not have write access to given issue link6486 returns 4046487 issue link not found6488 returns 4046489 when trying to delete a link with a private project issue6490 returns 4046491 when user has ability to delete the issue link6492 returns 2006493 returns 404 when the issue link does not belong to the specified issue6494GraphqlController6495 rescue_from6496 handles ArgumentError6497 handles a timeout nicely6498 handles StandardError6499 POST #execute6500 includes request object in context6501 when user is logged in6502 sets feature category in ApplicationContext from request6503 returns 200 when user can access API6504 executes a simple query with no errors6505 executes a simple multiplexed query with no errors6506 sets a limit on the total query size6507 sets a limit on the total query size for multiplex queries6508 returns forbidden when user cannot access API6509 updates the users last_activity_on field6510 sets context's sessionless value as false6511 calls the track api when trackable method6512 calls the track jetbrains api when trackable method6513 calls the track gitlab cli when trackable method6514 assigns username in ApplicationContext6515 when 2FA is required for the user6516 does not redirect if 2FA is enabled6517 when user uses an API token6518 updates the users last_activity_on field6519 sets context's sessionless value as true6520 assigns username in ApplicationContext6521 calls the track api when trackable method6522 calls the track jetbrains api when trackable method6523 calls the track gitlab cli when trackable method6524 when the user is a project bot6525 updates the users last_activity_on field6526 sets context's sessionless value as true6527 executes a simple query with no errors6528 can access resources the project_bot has access to6529 when user is not logged in6530 returns 2006531 sets context's sessionless value as false6532 does not assign a username in ApplicationContext6533 Admin Mode6534 when admin mode enabled6535 can query project data6536 when admin mode disabled6537 cannot query project data6538 when admin is member of the project6539 can query project data6540 #append_info_to_payload6541 appends metadata for logging6542 appends the exception in case of errors6543get board lists6544 for a project6545 behaves like group and project board list issues query6546 when the user does not have access to the board6547 returns nil6548 when user can read the board6549 can access the issues6550 does not set the relative positions of the issues not being returned6551 when filtering by confidential6552 returns matching issue6553 for a group6554 behaves like group and project board list issues query6555 when the user does not have access to the board6556 returns nil6557 when user can read the board6558 can access the issues6559 does not set the relative positions of the issues not being returned6560 when filtering by confidential6561 returns matching issue6562Projects::ImportsController6563 GET #show6564 when user is not authenticated and the project is public6565 returns 404 response6566 when the user has maintainer rights6567 when repository does not exists6568 renders template6569 sets flash.now if params is present6570 when repository exists6571 when import is in progress6572 renders template6573 sets flash.now if params is present6574 when import failed6575 redirects to new_namespace_project_import_path6576 when import finished6577 when project is a fork6578 redirects to namespace_project_path6579 when project is external6580 redirects to namespace_project_path6581 when continue params is present6582 redirects to internal params[:to]6583 does not redirect to external params[:to]6584 when import never happened6585 redirects to namespace_project_path6586 when project is in group6587 when user has developer access to group and import is in progress6588 when group allows developers to create projects6589 renders template6590 when group prohibits developers to create projects6591 returns 404 response6592 POST #create6593 sets import_url to the project6594Git LFS File Locking API6595 Create File Lock endpoint6596 when user does not have download permission6597 returns a 404 response6598 when user does not have upload permission6599 returns a 403 response6600 with an existent lock6601 return an error message6602 returns the existen lock6603 without an existent lock6604 creates the lock6605 Listing File Locks endpoint6606 returns the list of locked files6607 when user does not have download permission6608 returns a 404 response6609 when user does not have upload permission6610 returns a 403 response6611 List File Locks for verification endpoint6612 returns the list of locked files grouped by owner6613 when user does not have download permission6614 returns a 404 response6615 when user does not have upload permission6616 returns a 403 response6617 Delete File Lock endpoint6618 when user does not have download permission6619 returns a 404 response6620 when user does not have upload permission6621 returns a 403 response6622 with an existent lock6623 deletes the lock6624 returns the deleted lock6625 when a maintainer uses force6626 deletes the lock6627Projects::Releases::EvidencesController6628 GET #show6629 when the user is a developer6630 returns the correct evidence summary as a json6631 when the release was created before evidence existed6632 behaves like not found6633 renders 4046634 when the user is a guest for the project6635 when the project is private6636 behaves like not found6637 renders 4046638 when the project is public6639 behaves like successful request6640 renders a 2006641 when release is associated to a milestone which includes an issue6642 when user is non-project member6643 behaves like does not show the issue in evidence6644 is expected to eq true6645 when project is private6646 behaves like evidence not found6647 is expected to respond with numeric status code not_found6648 when project restricts the visibility of issues to project members only6649 behaves like evidence not found6650 is expected to respond with numeric status code not_found6651 when user is auditor6652 behaves like does not show the issue in evidence6653 is expected to eq true6654 when project is private6655 behaves like does not show the issue in evidence6656 is expected to eq true6657 when project restricts the visibility of issues to project members only6658 behaves like does not show the issue in evidence6659 is expected to eq true6660 when external authorization control is enabled6661 behaves like evidence not found6662 is expected to respond with numeric status code not_found6663Adding an AwardEmoji6664 when the user does not have permission6665 behaves like a mutation that does not create an AwardEmoji6666 is expected not to change `AwardEmoji.count`6667 behaves like a mutation that returns a top-level access error6668 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6669 when the user has permission6670 when the given awardable is not an Awardable6671 behaves like a mutation that does not create an AwardEmoji6672 is expected not to change `AwardEmoji.count`6673 behaves like a mutation that returns top-level errors6674 is expected to include /was provided invalid value for awardableId/6675 when the given awardable is an Awardable but still cannot be awarded an emoji6676 behaves like a mutation that does not create an AwardEmoji6677 is expected not to change `AwardEmoji.count`6678 behaves like a mutation that returns top-level errors6679 is expected to contain exactly "You cannot award emoji to this resource."6680 when the given awardable is an Awardable6681 creates an emoji6682 returns the emoji6683 marking Todos as done6684 type: :issue, expectation: true6685 is expected to eq true6686 type: :merge_request, expectation: true6687 is expected to eq true6688 type: :project_snippet, expectation: false6689 is expected to eq false6690 for notes6691 regular Notes6692 marks the Todo as done6693 PersonalSnippet Notes6694 does not mark the Todo as done6695 when there were active record validation errors6696 returns an empty awardEmoji6697 behaves like a mutation that does not create an AwardEmoji6698 is expected not to change `AwardEmoji.count`6699 behaves like a mutation that returns errors in the response6700 is expected to contain exactly "Error 1" and "Error 2"6701Projects::IssueLinksController6702 GET /*namespace_id/:project_id/issues/:issue_id/links6703 returns JSON response6704 when linked issue is a task6705 returns a work item path for the linked task6706 POST /*namespace_id/:project_id/issues/:issue_id/links6707 with success6708 returns success JSON6709 with failure6710 when unauthorized6711 returns 4036712 when failing service result6713 returns failure JSON6714 DELETE /*namespace_id/:project_id/issues/:issue_id/link/:id6715 when unauthorized6716 when no authorization on current project6717 returns 4036718 when no authorization on the related issue project6719 returns 4046720 when authorized6721 returns success JSON6722 when non of issues of the link is not the issue requested in the path6723 returns 4046724 does not delete the link6725Emails::ServiceDesk6726 .service_desk_thank_you_email6727 behaves like read template from repository6728 when a template is in the repository6729 uses the text template from the template6730 when the service_desk_templates directory does not contain correct template6731 uses the default template6732 when the service_desk_templates directory does not exist6733 uses the default template6734 when the project does not have a repo6735 uses the default template6736 handling template markdown6737 with a simple text6738 behaves like handle template content6739 builds the email correctly6740 with an issue id and issue path placeholders6741 behaves like handle template content6742 builds the email correctly6743 with an issue id placeholder with whitespace6744 behaves like handle template content6745 builds the email correctly6746 with unexpected placeholder6747 behaves like handle template content6748 builds the email correctly6749 .service_desk_new_note_email6750 behaves like read template from repository6751 when a template is in the repository6752 uses the text template from the template6753 when the service_desk_templates directory does not contain correct template6754 uses the default template6755 when the service_desk_templates directory does not exist6756 uses the default template6757 when the project does not have a repo6758 uses the default template6759 handling template markdown6760 with a simple text6761 behaves like handle template content6762 builds the email correctly6763 with an issue id, issue path and note placeholders6764 behaves like handle template content6765 builds the email correctly6766 with an issue id placeholder with whitespace6767 behaves like handle template content6768 builds the email correctly6769 with unexpected placeholder6770 behaves like handle template content6771 builds the email correctly6772 with upload link in the note6773 behaves like handle template content6774 builds the email correctly6775 with all-user reference in a an external author comment6776 behaves like handle template content6777 builds the email correctly6778Repositories::GitHttpController6779 when repository container is a project6780 behaves like Repositories::GitHttpController6781 HEAD #info_refs6782 returns 4036783 GET #info_refs6784 returns 401 for unauthenticated requests to public repositories when http protocol is disabled6785 calls the right access checker class with the right object6786 with authorized user6787 returns 2006788 updates the user activity6789 adds user info to the logs6790 POST #git_upload_pack6791 returns 2006792 behaves like handles unavailable Gitaly6793 when Gitaly is unavailable6794 responds with a 503 message6795 POST #git_upload_pack6796 updates project statistics sync for projects6797 recording the onboarding progress6798 is expected to equal true6799 when disable_git_http_fetch_writes is enabled6800 does not increment statistics6801 when the user is a deploy token6802 behaves like Repositories::GitHttpController6803 HEAD #info_refs6804 returns 4036805 GET #info_refs6806 returns 401 for unauthenticated requests to public repositories when http protocol is disabled6807 calls the right access checker class with the right object6808 with authorized user6809 returns 2006810 updates the user activity6811 adds user info to the logs6812 POST #git_upload_pack6813 returns 2006814 when repository container is a project wiki6815 behaves like Repositories::GitHttpController6816 HEAD #info_refs6817 returns 4036818 GET #info_refs6819 returns 401 for unauthenticated requests to public repositories when http protocol is disabled6820 calls the right access checker class with the right object6821 with authorized user6822 returns 2006823 updates the user activity6824 adds user info to the logs6825 POST #git_upload_pack6826 returns 2006827 when repository container is a personal snippet6828 behaves like Repositories::GitHttpController6829 HEAD #info_refs6830 returns 4036831 GET #info_refs6832 returns 401 for unauthenticated requests to public repositories when http protocol is disabled6833 calls the right access checker class with the right object6834 with authorized user6835 returns 2006836 updates the user activity6837 adds user info to the logs6838 POST #git_upload_pack6839 returns 2006840 behaves like handles unavailable Gitaly6841 when Gitaly is unavailable6842 responds with a 503 message6843 when repository container is a project snippet6844 behaves like Repositories::GitHttpController6845 HEAD #info_refs6846 returns 4036847 GET #info_refs6848 returns 401 for unauthenticated requests to public repositories when http protocol is disabled6849 calls the right access checker class with the right object6850 with authorized user6851 returns 2006852 updates the user activity6853 adds user info to the logs6854 POST #git_upload_pack6855 returns 2006856 behaves like handles unavailable Gitaly6857 when Gitaly is unavailable6858 responds with a 503 message6859deleting designs6860 the designs list is empty6861 behaves like a failed request6862 reports an error6863 the designs list contains filenames we cannot find6864 behaves like a failed request6865 reports an error6866 the current user does not have developer access6867 behaves like a failed request6868 reports an error6869 when the issue does not exist6870 behaves like a failed request6871 reports an error6872 when saving the designs raises an error6873 responds with errors6874 one of the designs is already deleted6875 reports an error6876 when the user names designs to delete6877 deletes the designs6878 has no errors6879MetricsDashboard6880 GET #metrics_dashboard6881 when no parameters are provided6882 returns an error json_response6883 when params are provided6884 returns the specified dashboard6885 when the params are in an alternate format6886 returns the specified dashboard6887 when environment for dashboard is available6888 returns the specified dashboard6889 when dashboard path includes encoded characters6890 decodes dashboard path6891 when parameters are provided and the list of all dashboards is required6892 returns a dashboard in addition to the list of dashboards6893 in all_dashboard list6894 includes project_blob_path only for project dashboards6895 allows editing only for project dashboards6896 includes out_of_the_box_dashboard key6897 project permissions6898 can_collaborate: false, system_can_edit: false, project_can_edit: false6899 sets can_edit appropriately6900 can_collaborate: true, system_can_edit: false, project_can_edit: true6901 sets can_edit appropriately6902 starred dashboards6903 adds starred dashboard information and sorts the list6904doorkeeper access6905 unauthenticated6906 returns authentication success6907 allows user authenticating from the same ip6908 blocks user authenticating from two distinct ips6909 when token invalid6910 returns authentication error6911 authorization by OAuth token6912 returns authentication success6913 allows user authenticating from the same ip6914 blocks user authenticating from two distinct ips6915 when user is blocked6916 behaves like forbidden request6917 returns 403 response6918 when user is ldap_blocked6919 behaves like forbidden request6920 returns 403 response6921 when user is deactivated6922 behaves like forbidden request6923 returns 403 response6924 when user is blocked pending approval6925 behaves like forbidden request6926 returns 403 response6927GroupTree6928 GET #index6929 behaves like returns filtered groups6930 filters groups6931 for subgroups6932 only renders root groups when no parent was given6933 contains only the subgroup when a parent was given6934 allows filtering for subgroups and includes the parents for rendering6935 does not include groups the user does not have access to6936 preloads parents regardless of pagination6937 json content6938 shows groups as json6939 nested groups6940 expands the tree when filtering6941getting group members information6942 when a member is invited only via email6943 returns null in the user field6944 when the request is correct6945 returns group members successfully6946 returns members that match the search query6947 behaves like a working graphql query6948 returns a successful response6949 when requesting member's notification email6950 when current_user is admin6951 returns notification email6952 when current_user is not admin6953 returns an error6954 by access levels6955 by owner6956 returns owner6957 by maintainer6958 returns maintainer6959 by owner and maintainer6960 returns owner and maintainer6961 member relations6962 returns direct members6963 returns invited members plus inherited members6964 returns direct and inherited members6965 returns direct, inherited, and descendant members6966 returns an error for an invalid member relation6967 when unauthenticated6968 returns visible members6969Create an issue6970 the user is not allowed to create an issue6971 behaves like a mutation that returns a top-level access error6972 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6973 when user has permissions to create an issue6974 creates the issue6975 behaves like has spam protection6976 #check_spam_action_response!6977 when the object is spam (DISALLOW)6978 and no CAPTCHA is available6979 behaves like disallow response6980 informs the client that the request was denied as spam6981 and a CAPTCHA is required6982 behaves like disallow response6983 informs the client that the request was denied as spam6984 when the object is not spam (CONDITIONAL ALLOW)6985 and no CAPTCHA is required6986 does not return a top-level error6987 and a CAPTCHA is required6988 informs the client that the request may be retried after solving the CAPTCHA6989 when creating an issue of type TASK6990 when work_items feature flag is disabled6991 creates an issue with the default ISSUE type6992 when work_items feature flag is enabled6993 creates an issue with TASK type6994 when position params are provided6995 sets the correct position6996Setting locked status of a merge request6997 returns an error if the user is not allowed to update the merge request6998 marks the merge request as WIP6999 does not do anything if the merge request was already locked7000 when passing locked false as input7001 does not do anything if the merge request was not marked locked7002 unmarks the merge request as locked7003Projects::Pipelines::StagesController7004 POST #play_manual.json7005 when user does not have access7006 returns not authorized7007 when user has access7008 when the stage does not exists7009 fails to play all manual7010 when the stage exists7011 starts all manual jobs7012Admin::BackgroundMigrationsController7013 GET #show7014 when the migration is valid7015 fetches the migration7016 returns failed jobs7017 when the migration does not exist7018 returns not found7019 GET #index7020 when no database is provided7021 uses the default connection7022 returns default database records7023 when multiple database is enabled7024 when CI database is provided7025 uses CI database connection7026 returns CI database records7027 POST #retry7028 redirects the user to the admin migrations page7029 retries the migration7030 when the migration is not failed7031 keeps the same migration status7032Setting issues crm contacts7033 when the user has no permission7034 returns expected error7035 when the user has permission7036 behaves like successful mutation7037 replace7038 updates the issue with correct contacts7039 append7040 updates the issue with correct contacts7041 remove7042 updates the issue with correct contacts7043 when the contact does not exist7044 returns expected error7045 when the contact belongs to a different group7046 returns expected error7047 when attempting to add more than 67048 returns expected error7049 when trying to remove non-existent contact7050 raises expected error7051 when crm_enabled is false7052 raises expected error7053getting Alert Management Integrations7054 with integrations7055 without project permissions7056 is expected to be nil7057 behaves like a working graphql query7058 returns a successful response7059 with project permissions7060 when no extra params given7061 returns the correct properties of the integrations7062 behaves like a working graphql query7063 returns a successful response7064 when HTTP Integration ID is given7065 returns the correct properties of the HTTP integration7066 behaves like a working graphql query7067 returns a successful response7068 when Prometheus Integration ID is given7069 returns the correct properties of the Prometheus Integration7070 behaves like a working graphql query7071 returns a successful response7072 behaves like GraphQL query with several integrations requested7073 when several HTTP integrations requested7074 returns the correct properties of the integrations7075 batches queries7076Repositories::LfsStorageController7077 PUT #upload_authorize7078 with unauthorized roles7079 user_role: :guest, expected_status: :forbidden7080 behaves like returning response status7081 returns forbidden7082 user_role: :anonymous, expected_status: :unauthorized7083 behaves like returning response status7084 returns unauthorized7085 with at least developer role7086 sets Workhorse with a max limit7087 PUT #upload_finalize7088 with lfs enabled7089 with unauthorized roles7090 user_role: :guest, expected_status: :forbidden7091 behaves like returning response status7092 returns forbidden7093 user_role: :anonymous, expected_status: :unauthorized7094 behaves like returning response status7095 returns unauthorized7096 with at least developer role7097 creates the objects7098 without the workhorse header7099 is expected to raise JWT::DecodeError7100 without file7101 behaves like returning response status7102 returns unprocessable_entity7103 with an invalid file7104 behaves like returning response status7105 returns bad_request7106 when an expected error7107 ActiveRecord::RecordInvalid raised7108 renders lfs forbidden7109 UploadedFile::InvalidPathError raised7110 renders lfs forbidden7111 ObjectStorage::RemoteStoreError raised7112 renders lfs forbidden7113 when existing file has been deleted7114 replaces the file7115 with invalid file7116 renders bad request7117 when file is not stored7118 renders unprocessable entity7119 with lfs disabled7120 behaves like returning response status7121 returns not_implemented7122Query7123 .namespace7124 behaves like retrieving a namespace7125 authorised query7126 fetches the expected data7127 behaves like a working graphql query7128 returns a successful response7129 unauthorised query7130 anonymous user7131 does not retrieve the record7132 the current user does not have permission7133 does not retrieve the record7134 behaves like retrieving a namespace7135 authorised query7136 fetches the expected data7137 behaves like a working graphql query7138 returns a successful response7139 unauthorised query7140 anonymous user7141 does not retrieve the record7142 the current user does not have permission7143 does not retrieve the record7144 does not retrieve project namespace7145 does not retrieve the record7146getting a repository in a project7147 returns repository7148 as a non-authorized user7149 returns nil7150 as a non-admin7151 does not return diskPath7152 as an admin7153 returns diskPath7154 when the repository is only accessible to members7155 returns a repository for the owner7156 returns nil for the repository for other users7157 returns nil for the repository for other users7158 when paginated tree requested7159 returns paginated tree7160API::Templates7161 the Template Entity7162 is expected to eq "Ruby"7163 is expected to include "*.gem"7164 the TemplateList Entity7165 is expected not to be nil7166 is expected to be nil7167 requesting gitignores7168 returns a list of available gitignore templates7169 requesting gitlab-ci-ymls7170 returns a list of available gitlab_ci_ymls7171 requesting gitlab-ci-yml for Ruby7172 adds a disclaimer on the top7173 the License Template Entity7174 returns a license template7175 GET templates/licenses7176 returns a list of available license templates7177 the popular parameter7178 with popular=17179 returns a list of available popular license templates7180 GET templates/licenses/:name7181 with :project and :fullname given7182 for the mit license7183 returns the license text7184 replaces placeholder values7185 for the agpl-3.0 license7186 returns the license text7187 replaces placeholder values7188 for the gpl-3.0 license7189 returns the license text7190 replaces placeholder values7191 for the gpl-2.0 license7192 returns the license text7193 replaces placeholder values7194 for the apache-2.0 license7195 returns the license text7196 replaces placeholder values7197 for an uknown license7198 returns a 4047199 with no :fullname given7200 with an authenticated user7201 replaces the copyright owner placeholder with the name of the current user7202Admin::BatchedJobsController7203 GET #show7204 fetches the job7205 uses the default connection7206 returns a default database record7207 when the job does not exist7208 returns not found7209 when multiple database is enabled7210 when CI database is provided7211 uses CI database connection7212 returns a CI database record7213getting an work item list for a project7214 returns only items visible to user7215 behaves like a working graphql query7216 returns a successful response7217 when the user does not have access to the item7218 returns an empty list7219 when work_items flag is disabled7220 returns an empty list7221 when the user can see confidential items7222 returns also confidential items7223 sorting and pagination7224 when sorting by title ascending7225 behaves like sorted paginated query7226 behaves like requires variables7227 shared example requires variables to be set7229 when sorting7230 sorts correctly7231 when paginating7232 paginates correctly7233 when sorting by title descending7234 behaves like sorted paginated query7235 behaves like requires variables7236 shared example requires variables to be set7238 when sorting7239 sorts correctly7240 when paginating7241 paginates correctly7242Dashboard::ProjectsController7243 token authentication7244 behaves like authenticates sessionless user for the request spec7245 index atom7246 when the 'private_token' param is populated with the personal access token7247 when valid token7248 when resource is private7249 authenticates user and returns response with ok status7250 when user with expired password7251 does not return response with ok status7252 when password expiration is not applicable7253 when ldap user7254 authenticates user and returns response with ok status7255 when the personal access token has no api scope7256 when resource is private7257 does not return response with ok status7258 when invalid token7259 when resource is private7260 does not return response with ok status7261 when the 'PRIVATE-TOKEN' header is populated with the personal access token7262 when valid token7263 when resource is private7264 authenticates user and returns response with ok status7265 when user with expired password7266 does not return response with ok status7267 when password expiration is not applicable7268 when ldap user7269 authenticates user and returns response with ok status7270 when the personal access token has no api scope7271 when resource is private7272 does not return response with ok status7273 when invalid token7274 when resource is private7275 does not return response with ok status7276 when the 'feed_token' param is populated with the feed token7277 when valid token7278 when resource is private7279 authenticates user and returns response with ok status7280 when user with expired password7281 does not return response with ok status7282 when password expiration is not applicable7283 when ldap user7284 authenticates user and returns response with ok status7285 when invalid token7286 when resource is private7287 does not return response with ok status7288query Jira import data7289 when user cannot read Jira import data7290 when anonymous user7291 is expected to be nil7292 when user developer7293 is expected to be nil7294 when user can access Jira import data7295 behaves like a working graphql query7296 returns a successful response7297 list of jira imports sorted ascending by scheduledAt time7298 retuns list of jira imports7299 jira imports pagination7300 first jira import7301 returns latest jira import data7302 lastest jira import7303 returns latest jira import data7304 jira import status7305 when user cannot access project7306 does not return import status7307 when user can access project7308 when import never ran7309 returns import status7310 when import finished7311 returns import status7312 when import running7313 returns import status7314Users::TermsController7315 GET #index7316 when a user is signed in7317 redirects when no terms exist7318 when terms exist7319 shows terms when they exist7320 shows a message when the user already accepted the terms7321 when a user is not signed in7322 when terms exist7323 returns success response7324 when no terms exist7325 redirects7326 POST #accept7327 when a user is signed in7328 saves that the user accepted the terms7329 redirects to a path when specified7330 redirects to the referer when no redirect specified7331 redirecting to another domain7332 is prevented when passing a redirect param7333 is prevented when redirecting to the referer7334 when a user is not signed in7335 redirects to login page7336 POST #decline7337 when a user is signed in7338 stores that the user declined the terms7339 signs out the user7340 when a user is not signed in7341 redirects to login page7342Projects::FindFileController7343 GET #show7344 valid branch7345 is expected to respond with 2007346 invalid branch7347 is expected to respond with 4047348 GET #list7349 valid branch7350 returns an array of file path list7351 invalid branch7352 responds with status 4047353Getting Metrics Dashboard Annotations7354 returns annotations7355 behaves like a working graphql query7356 returns a successful response7357 arguments7358 from is missing7359 returns error7360 to is missing7361 behaves like a working graphql query7362 returns a successful response7363Create a new cluster agent7364 without project permissions7365 does not create cluster agent7366 behaves like a mutation that returns a top-level access error7367 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"7368 with user permissions7369DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7370DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7371 creates a new cluster agent7372Admin::ApplicationsController7373 GET #index7374 renders the application form7375 GET #new7376 renders the application form7377 GET #edit7378 renders the application form7379 POST #create7380 creates the application7381 renders the application form on errors7382 when the params are for a confidential application7383 creates a confidential application7384 when scopes are not present7385 renders the application form on errors7386 PATCH #update7387 updates the application7388 renders the application form on errors7389 when updating the application to be confidential7390 successfully sets the application to confidential7391A Todoable that implements the CurrentUserTodos interface7392 returns todos of the current user7393 does not return todos of another user7394 does not error when there is no logged in user7395 when `state` argument is `pending`7396 returns just the pending todo7397 when `state` argument is `done`7398 returns just the done todo7399Mutations::Boards::Destroy7400 when the user does not have permission7401 does not destroy the board7402 behaves like a mutation that returns a top-level access error7403 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"7404 when the user has permission7405 when given id is not for a board7406 returns an error7407 when everything is ok7408 destroys the board7409 returns an empty board7410 when there is only 1 board for the parent7411 does not destroy the board7412 returns an error and not nil board7413Admin::SpamLogsController7414 #index7415 lists all spam logs7416 #destroy7417 removes only the spam log when removing log7418 removes user and their spam logs when removing the user7419 #mark_as_ham7420 submits the log as ham7421Dashboard::GroupsController7422 renders group trees7423 #index7424 only includes projects the user is a member of7425 works when the external authorization service is enabled7426 when rendering an expanded hierarchy with public groups you are not a member of7427 renders only groups the user is a member of when searching hierarchy correctly7428Projects::UsageQuotasController7429 GET #index7430 when user does not have read_usage_quotas permission7431 renders not_found7432 when user has read_usage_quotas permission7433 renders index with 200 status code7434Remove attention request7435 is successful7436 when current user is not allowed to update the merge request7437 returns an error7438 when user is not a reviewer7439 returns an error7440 feature flag is disabled7441 returns an error7442API::ProjectStatistics7443 GET /projects/:id/statistics7444 returns the fetch statistics of the last 30 days7445 excludes the fetch statistics older than 30 days7446 responds with 403 when the user is not a reporter of the repository7447PasswordsController7448 #check_password_authentication_available7449 when password authentication is disabled for the web interface and Git7450 prevents a password reset7451 when reset email belongs to an ldap user7452 prevents a password reset7453 #update7454 updating the password7455 sets the username and caller_id in the context7456 password update is successful7457 updates the password-related flags7458 password update is unsuccessful7459 does not update the password-related flags7460 #create7461 when reCAPTCHA is disabled7462 successfully sends password reset when reCAPTCHA is not solved7463 when reCAPTCHA is enabled7464 successfully sends password reset when reCAPTCHA is solved7465 when the reCAPTCHA is not solved7466 displays an error7467 sets gon variables7468OAuth tokens7469 Resource Owner Password Credentials7470 when user has 2FA enabled7471 does not create an access token7472 when user does not have 2FA enabled7473 when no client credentials provided7474 creates an access token7475 when client credentials provided7476 with valid credentials7477 creates an access token7478 with invalid credentials7479 does not create an access token (PENDING: Enable this example after https://github.com/doorkeeper-gem/doorkeeper/pull/1488 is merged and released)7480 when user is blocked7481 is expected to respond with numeric status code bad_request7482 when user is ldap_blocked7483 is expected to respond with numeric status code bad_request7484 when user account is not confirmed7485 is expected to respond with numeric status code bad_request7486Mutations::Metrics::Dashboard::Annotations::Delete7487 is expected to require graphql authorizations :delete_metrics_dashboard_annotation7488 when the user has permission to delete the annotation7489 with valid params7490 deletes the annotation7491 with invalid params7492 behaves like a mutation that returns top-level errors7493 is expected to contain exactly (include "invalid value for id")7494 when the delete fails7495 returns the error7496 when the user does not have permission to delete the annotation7497 does not delete the annotation7498 behaves like a mutation that returns top-level errors7499 is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"7500Robots.txt Requests7501 allows the requests7502 blocks the requests7503API::ImportGithub7504 POST /import/github7505 rejects requests when Github Importer is disabled7506 returns 201 response when the project is imported successfully7507 returns 201 response when the project is imported successfully from GHE7508 returns 422 response when user can not create projects in the chosen namespace7509Oauth::ApplicationsController7510 sets `oauth_applications_created` session key to `true`7511 GET #show7512 renders template7513 when application is viewed after being created7514 sets `@created` instance variable to `true`7515 when application is reviewed7516 sets `@created` instance variable to `false`7517Projects::FeatureFlagsClientsController7518 POST reset_token.json7519 when user is a project maintainer7520 and feature flags client exist7521 regenerates feature flags client token7522 but feature flags client does not exist7523 returns 4047524 when user is not a project maintainer7525 returns 4047526Query.project.pipeline.stages7527 returns the stage of a pipeline7528 behaves like a working graphql query7529 returns a successful response7530 job pagination7531 returns up to default limit jobs per stage7532 when the limit is manually set7533 returns up to custom limit jobs per stage7534Setting severity level of an incident7535 when the user is not allowed to update the incident7536 returns an error7537 when the user is allowed to update the incident7538 updates the issue7539Projects::TerraformController7540 GET index7541 when user is authorized7542 renders content7543 when user is unauthorized7544 shows 4047545 when no user is present7546 shows 4047547Import::UrlController7548 POST #validate7549 reports success when service reports success status7550 exposes error message when service reports error7551 with an anonymous user7552 redirects to sign-in page7553Query.project(fullPath).ciVariables7554 when the user can administer builds7555 returns the project's CI variables7556 when the user cannot administer builds7557 returns nothing7558Profiles::PersonalAccessTokensController7559 #create7560 allows creation of a token with scopes7561 allows creation of a token with an expiry date7562 #index7563 only includes details of the active personal access token7564 sets PAT name and scopes7565getting project information7566 when there is a current_user7567 is expected to include {"name" => "Sidney Jones2277", "namespace" => {"id" => "gid://gitlab/Namespaces::UserNamespace/3497"}}7568 behaves like a working graphql query7569 returns a successful response7570 when there is no current_user7571 is expected to be nil7572 behaves like a working graphql query7573 returns a successful response7574Creation of a new release asset link7575 creates and returns a new asset link associated to the provided release7576JiraConnect::UsersController7577 GET /-/jira_connect/users7578 with a valid host7579 includes a return url7580 with an invalid host7581 does not include a return url7582Group callouts7583 POST /-/users/group_callouts7584 with valid feature name and group7585 when callout entry does not exist7586 creates a callout entry with dismissed state7587 returns success7588 when callout entry already exists7589 returns success7590 with invalid feature name7591 returns bad request7592Create a user callout7593 creates user callout7594Admin::Topics::AvatarsController7595/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil7596 removes avatar from DB by calling destroy7597Sessions7598 authentication7599 logout does not require a csrf token7600Knapsack report was generated. Preview:7601{7602 "spec/requests/api/npm_instance_packages_spec.rb": 430.030852248,7603 "spec/requests/api/notes_spec.rb": 149.90989900299974,7604 "spec/requests/api/discussions_spec.rb": 144.1718769199997,7605 "spec/controllers/groups/clusters_controller_spec.rb": 118.67927338299978,7606 "spec/requests/api/wikis_spec.rb": 70.95814258800056,7607 "spec/requests/api/ci/job_artifacts_spec.rb": 68.62112338099996,7608 "spec/requests/api/ci/variables_spec.rb": 51.70522209399951,7609 "spec/controllers/groups/children_controller_spec.rb": 48.04974911299996,7610 "spec/controllers/projects/wikis_controller_spec.rb": 33.266306757000166,7611 "spec/requests/groups_controller_spec.rb": 24.254702975999862,7612 "spec/requests/api/deployments_spec.rb": 46.93064116699952,7613 "spec/requests/api/pages/private_access_spec.rb": 25.148919272000057,7614 "spec/requests/openid_connect_spec.rb": 26.847125124999366,7615 "spec/controllers/projects/repositories_controller_spec.rb": 17.348106636999546,7616 "spec/requests/api/usage_data_queries_spec.rb": 28.55673682500037,7617 "spec/controllers/groups/uploads_controller_spec.rb": 15.873558823999701,7618 "spec/controllers/snippets/notes_controller_spec.rb": 17.77310283800034,7619 "spec/requests/api/graphql/packages/maven_spec.rb": 17.275366372999997,7620 "spec/requests/groups/settings/access_tokens_controller_spec.rb": 11.721338293000372,7621 "spec/controllers/import/gitlab_controller_spec.rb": 16.205170553000244,7622 "spec/requests/api/issue_links_spec.rb": 12.977449613999852,7623 "spec/controllers/graphql_controller_spec.rb": 8.977245985000081,7624 "spec/requests/api/graphql/boards/board_list_issues_query_spec.rb": 10.15730051599985,7625 "spec/controllers/projects/imports_controller_spec.rb": 10.435035030000108,7626 "spec/requests/lfs_locks_api_spec.rb": 10.810773815000175,7627 "spec/controllers/projects/releases/evidences_controller_spec.rb": 13.887314558999606,7628 "spec/requests/api/graphql/mutations/award_emojis/add_spec.rb": 8.792085563,7629 "spec/requests/projects/issue_links_controller_spec.rb": 10.140201357000478,7630 "spec/mailers/emails/service_desk_spec.rb": 10.543964640000013,7631 "spec/controllers/repositories/git_http_controller_spec.rb": 6.702953506000085,7632 "spec/requests/api/graphql/mutations/design_management/delete_spec.rb": 9.528430784000193,7633 "spec/controllers/concerns/metrics_dashboard_spec.rb": 5.5377349649998,7634 "spec/requests/api/doorkeeper_access_spec.rb": 5.375292171000183,7635 "spec/controllers/concerns/group_tree_spec.rb": 7.078588061000119,7636 "spec/requests/api/graphql/group/group_members_spec.rb": 4.567825396000444,7637 "spec/requests/api/graphql/mutations/issues/create_spec.rb": 5.702473360000113,7638 "spec/requests/api/graphql/mutations/merge_requests/set_locked_spec.rb": 7.590880323999954,7639 "spec/controllers/projects/pipelines/stages_controller_spec.rb": 6.055574347000402,7640 "spec/requests/admin/background_migrations_controller_spec.rb": 4.0009635279993745,7641 "spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb": 4.225462477000292,7642 "spec/requests/api/graphql/project/alert_management/integrations_spec.rb": 4.835995041000388,7643 "spec/controllers/repositories/lfs_storage_controller_spec.rb": 4.165440743000545,7644 "spec/requests/api/graphql/namespace_query_spec.rb": 3.845349482000529,7645 "spec/requests/api/graphql/project/repository_spec.rb": 7.794362925999849,7646 "spec/requests/api/templates_spec.rb": 2.0859692369995173,7647 "spec/requests/admin/batched_jobs_controller_spec.rb": 3.0051429810000627,7648 "spec/requests/api/graphql/project/work_items_spec.rb": 5.539808295000512,7649 "spec/requests/dashboard/projects_controller_spec.rb": 2.5447100339997633,7650 "spec/requests/api/graphql/project/jira_import_spec.rb": 3.2097025210005086,7651 "spec/controllers/users/terms_controller_spec.rb": 2.2386437919994933,7652 "spec/controllers/projects/find_file_controller_spec.rb": 5.074730838001415,7653 "spec/requests/api/graphql/metrics/dashboard/annotations_spec.rb": 2.3309742040000856,7654 "spec/requests/api/graphql/mutations/clusters/agents/create_spec.rb": 2.944389427000715,7655 "spec/controllers/admin/applications_controller_spec.rb": 2.6289436250008293,7656 "spec/requests/api/graphql/current_user_todos_spec.rb": 2.6940923599995585,7657 "spec/requests/api/graphql/mutations/boards/destroy_spec.rb": 3.1866798940009176,7658 "spec/controllers/admin/spam_logs_controller_spec.rb": 1.652367325999876,7659 "spec/controllers/dashboard/groups_controller_spec.rb": 2.018728282000666,7660 "spec/controllers/projects/usage_quotas_controller_spec.rb": 2.2364457820003736,7661 "spec/requests/api/graphql/mutations/remove_attention_request_spec.rb": 2.8284325179993175,7662 "spec/requests/api/project_statistics_spec.rb": 2.3154366449998633,7663 "spec/controllers/passwords_controller_spec.rb": 2.629483575999984,7664 "spec/requests/api/oauth_tokens_spec.rb": 1.9056981230005476,7665 "spec/requests/api/graphql/mutations/metrics/dashboard/annotations/delete_spec.rb": 2.1705812879990845,7666 "spec/requests/robots_txt_spec.rb": 0.6114725829993404,7667 "spec/requests/api/import_github_spec.rb": 2.234876651999002,7668 "spec/requests/oauth/applications_controller_spec.rb": 1.406993328999306,7669 "spec/controllers/projects/feature_flags_clients_controller_spec.rb": 0.857042851001097,7670 "spec/requests/api/graphql/ci/stages_spec.rb": 2.6874345800006267,7671 "spec/requests/api/graphql/mutations/issues/set_severity_spec.rb": 1.589672531999895,7672 "spec/controllers/projects/terraform_controller_spec.rb": 0.8899101770002744,7673 "spec/requests/import/url_controller_spec.rb": 0.7016486550000991,7674 "spec/requests/api/graphql/ci/project_variables_spec.rb": 1.24639744399974,7675 "spec/controllers/profiles/personal_access_tokens_controller_spec.rb": 1.0848711189992173,7676 "spec/requests/api/graphql/current_user_query_spec.rb": 0.6433537800003251,7677 "spec/requests/api/graphql/mutations/release_asset_links/create_spec.rb": 1.4494077159997687,7678 "spec/requests/jira_connect/users_controller_spec.rb": 0.8866141870003048,7679 "spec/requests/users/group_callouts_spec.rb": 1.0700279109987605,7680 "spec/requests/api/graphql/mutations/user_callouts/create_spec.rb": 0.47001711600023555,7681 "spec/controllers/admin/topics/avatars_controller_spec.rb": 0.5473934689998714,7682 "spec/requests/sessions_spec.rb": 0.44526804899942367683}7684Knapsack global time execution for tests: 27m 01s7685Pending: (Failures listed here are expected and do not affect your suite's status)7686 1) API::NpmInstancePackages GET /api/v4/packages/npm/*package_name behaves like handling get metadata requests with a user namespace behaves like handling all conditions auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries7687 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example7688 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:327689 2) API::Ci::JobArtifacts GET /projects/:id/jobs/:job_id/artifacts normal authentication job with artifacts when artifacts are stored remotely authorized user returns the file remote URL7690 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example7691 # ./spec/requests/api/ci/job_artifacts_spec.rb:3947692 3) OAuth tokens Resource Owner Password Credentials when user does not have 2FA enabled when client credentials provided with invalid credentials does not create an access token7693 # Enable this example after https://github.com/doorkeeper-gem/doorkeeper/pull/1488 is merged and released7694 Failure/Error: expect(response).to have_gitlab_http_status(:unauthorized)7695 expected the response to have status code :unauthorized but it was 200. The response was: {"access_token":"89c6b420051afd2f4d709e84462e054fa6a43142ff17f7345ac97cea11207203","token_type":"Bearer","expires_in":7200,"refresh_token":"5e1da6de86fbd6f7cd96a5ef0aee558109f6b1a060d9bcba3ca36f1d0fffbf55","scope":"api","created_at":1656925033}7696 # ./spec/requests/api/oauth_tokens_spec.rb:60:in `block (6 levels) in <top (required)>'7697 # ./spec/spec_helper.rb:413:in `block (3 levels) in <top (required)>'7698 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'7699 # ./spec/spec_helper.rb:404:in `block (2 levels) in <top (required)>'7700 # ./spec/spec_helper.rb:400:in `block (3 levels) in <top (required)>'7701 # ./lib/gitlab/application_context.rb:52:in `with_raw_context'7702 # ./spec/spec_helper.rb:400:in `block (2 levels) in <top (required)>'7703 # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'7704 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7705 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'7706 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'7707 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'7708 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'7709Finished in 27 minutes 5 seconds (files took 59.94 seconds to load)77102762 examples, 0 failures, 3 pending7711RSpec exited with 0.7712No examples to retry, congrats!7714Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy7715Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy7717Uploading artifacts...7718coverage/: found 5 matching files and directories 7719crystalball/: found 2 matching files and directories 7720deprecations/: found 8 matching files and directories 7721knapsack/: found 3 matching files and directories 7722rspec/: found 9 matching files and directories 7723WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 7724log/*.log: found 16 matching files and directories 7725WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673682925/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7726WARNING: Retrying... context=artifacts-uploader error=request redirected7727Uploading artifacts as "archive" to coordinator... 201 Created id=2673682925 responseStatus=201 Created token=XyQuo8ei7728Uploading artifacts...7729rspec/junit_rspec.xml: found 1 matching files and directories 7730WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673682925/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7731WARNING: Retrying... context=artifacts-uploader error=request redirected7732Uploading artifacts as "junit" to coordinator... 201 Created id=2673682925 responseStatus=201 Created token=XyQuo8ei7734Job succeeded