rspec integration pg12 2/12
Passed Started
by
@DylanGriffith

Dylan Griffith
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on green-2.shared-gitlab-org.runners-manager.gitlab.com/default 8zCxmpPt3 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.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:56e1d6dc77b242b5f4f91e7319f0740f7ab8bdf41023fd5d703f412ac87976f5 for postgres:12 with digest postgres@sha256:93fd73e2322241eec204dac54b316bf429670ff6e5292e16f9e2fd3a3374a713 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:83c577984741ab5b2e78640e0524852998d539ea3961e6d56680f336371f5c83 for redis:6.0-alpine with digest redis@sha256:459e91c5fe54134da1601ef85a4d9bc40c953862737fdfbe8f3c2b2a3eb6b20b ...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.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-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.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...18Running on runner-8zcxmppt-project-278964-concurrent-0 via runner-8zcxmppt-shared-gitlab-org-1667780306-5a840b07...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: 119894, done. 25remote: Counting objects: 100% (119894/119894), done. 26remote: Compressing objects: 100% (78952/78952), done. 27remote: Total 119894 (delta 50153), reused 83076 (delta 36611), pack-reused 0 28Receiving objects: 100% (119894/119894), 110.17 MiB | 33.45 MiB/s, done.29Resolving deltas: 100% (50153/50153), done.31 * [new ref] refs/pipelines/687019226 -> refs/pipelines/68701922632 * [new branch] master -> origin/master33Checking out a134b2ce as master...34Skipping Git submodules setup35$ git remote set-url origin "${CI_REPOSITORY_URL}"37Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...38Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-16 39Successfully extracted cache40Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...41Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 42Successfully extracted cache44Downloading artifacts for compile-test-assets (3281613120)...45Downloading artifacts from coordinator... ok id=3281613120 responseStatus=200 OK token=HH3-XQ_J46Downloading artifacts for detect-tests (3281613150)...47Downloading artifacts from coordinator... ok id=3281613150 responseStatus=200 OK token=HH3-XQ_J48Downloading artifacts for retrieve-tests-metadata (3281613152)...49Downloading artifacts from coordinator... ok id=3281613152 responseStatus=200 OK token=HH3-XQ_J50Downloading artifacts for setup-test-env (3281613137)...51Downloading artifacts from coordinator... ok id=3281613137 responseStatus=200 OK token=HH3-XQ_J53Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-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.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...54$ echo $FOSS_ONLY55$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb56$ export GOPATH=$CI_PROJECT_DIR/.go57$ mkdir -p $GOPATH58$ source scripts/utils.sh59$ source scripts/prepare_build.sh676Using decomposed database config (config/database.yml.decomposed-postgresql)677$ setup_db_user_only678CREATE ROLE679GRANT680==> 'setup_db_user_only' succeeded in 0 seconds.681$ bundle exec rake db:drop db:create db:schema:load db:migrate682Dropped database 'gitlabhq_test'683Dropped database 'gitlabhq_test_ci'684Dropped database 'gitlabhq_geo_test'685Created database 'gitlabhq_test'686Created database 'gitlabhq_test_ci'687Created database 'gitlabhq_geo_test'688==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 33 seconds.689$ setup_db_praefect690SELECT pg_catalog.set_config('search_path', '', false);691CREATE DATABASE praefect_test ENCODING 'UTF8';692==> 'setup_db_praefect' succeeded in 0 seconds.693$ source ./scripts/rspec_helpers.sh694$ run_timed_command "gem install knapsack --no-document"695$ gem install knapsack --no-document696Successfully installed knapsack-4.0.06971 gem installed698==> 'gem install knapsack --no-document' succeeded in 0 seconds.699$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"813$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"814SKIP_FLAKY_TESTS_AUTOMATICALLY: true815RETRY_FAILED_TESTS_IN_NEW_PROCESS: true816KNAPSACK_GENERATE_REPORT: true817FLAKY_RSPEC_GENERATE_REPORT: true818KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb819KNAPSACK_LOG_LEVEL: debug820KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg12_2_12_report.json821FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json822FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg12_2_12_report.json823NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg12_2_12_report.json824SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_integration_pg12_2_12_report.txt825RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_integration_pg12_2_12_report.txt826CRYSTALBALL: 827Knapsack report generator started!828Run options: exclude {:quarantine=>true, :level=>"migration"}829Test environment set up in 0.626335101 seconds830API::NpmInstancePackages831 GET /api/v4/packages/npm/*package_name832 behaves like handling get metadata requests833 with a group namespace834 behaves like handling all conditions835 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok836 behaves like accept metadata request837 accepts the metadata request838 avoids N+1 database queries839 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok840 behaves like accept metadata request841 accepts the metadata request842 avoids N+1 database queries843 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok844 behaves like redirect metadata request845 redirects metadata request846 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok847 behaves like reject metadata request848 rejects the metadata request849 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok850 behaves like redirect metadata request851 redirects metadata request852 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok853 behaves like reject metadata request854 rejects the metadata request855 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected856 behaves like redirect metadata request857 redirects metadata request858 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found859 behaves like reject metadata request860 rejects the metadata request861 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found862 behaves like reject metadata request863 rejects the metadata request864 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found865 behaves like reject metadata request866 rejects the metadata request867 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found868 behaves like redirect metadata request869 redirects metadata request870 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found871 behaves like reject metadata request872 rejects the metadata request873 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found874 behaves like redirect metadata request875 redirects metadata request876 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found877 behaves like reject metadata request878 rejects the metadata request879 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected880 behaves like redirect metadata request881 redirects metadata request882 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found883 behaves like reject metadata request884 rejects the metadata request885 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found886 behaves like reject metadata request887 rejects the metadata request888 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found889 behaves like reject metadata request890 rejects the metadata request891 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found892 behaves like redirect metadata request893 redirects metadata request894 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found895 behaves like reject metadata request896 rejects the metadata request897 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found898 behaves like redirect metadata request899 redirects metadata request900 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found901 behaves like reject metadata request902 rejects the metadata request903 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected904 behaves like redirect metadata request905 redirects metadata request906 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found907 behaves like reject metadata request908 rejects the metadata request909 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok910 behaves like accept metadata request911 accepts the metadata request912 avoids N+1 database queries913 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok914 behaves like accept metadata request915 accepts the metadata request916 avoids N+1 database queries917 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok918 behaves like accept metadata request919 accepts the metadata request920 avoids N+1 database queries921 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok922 behaves like accept metadata request923 accepts the metadata request924 avoids N+1 database queries925 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok926 behaves like redirect metadata request927 redirects metadata request928 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok929 behaves like redirect metadata request930 redirects metadata request931 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok932 behaves like reject metadata request933 rejects the metadata request934 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok935 behaves like reject metadata request936 rejects the metadata request937 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok938 behaves like redirect metadata request939 redirects metadata request940 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok941 behaves like redirect metadata request942 redirects metadata request943 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok944 behaves like reject metadata request945 rejects the metadata request946 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok947 behaves like reject metadata request948 rejects the metadata request949 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected950 behaves like redirect metadata request951 redirects metadata request952 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected953 behaves like redirect metadata request954 redirects metadata request955 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found956 behaves like reject metadata request957 rejects the metadata request958 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found959 behaves like reject metadata request960 rejects the metadata request961 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden962 behaves like reject metadata request963 rejects the metadata request964 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok965 behaves like accept metadata request966 accepts the metadata request967 avoids N+1 database queries968 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden969 behaves like reject metadata request970 rejects the metadata request971 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok972 behaves like accept metadata request973 accepts the metadata request974 avoids N+1 database queries975 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden976 behaves like redirect metadata request977 redirects metadata request978 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok979 behaves like redirect metadata request980 redirects metadata request981 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden982 behaves like reject metadata request983 rejects the metadata request984 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok985 behaves like reject metadata request986 rejects the metadata request987 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden988 behaves like redirect metadata request989 redirects metadata request990 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok991 behaves like redirect metadata request992 redirects metadata request993 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden994 behaves like reject metadata request995 rejects the metadata request996 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok997 behaves like reject metadata request998 rejects the metadata request999 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1000 behaves like redirect metadata request1001 redirects metadata request1002 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1003 behaves like redirect metadata request1004 redirects metadata request1005 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1006 behaves like reject metadata request1007 rejects the metadata request1008 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1009 behaves like reject metadata request1010 rejects the metadata request1011 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1012 behaves like accept metadata request1013 accepts the metadata request1014 avoids N+1 database queries1015 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1016 behaves like accept metadata request1017 accepts the metadata request1018 avoids N+1 database queries1019 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1020 behaves like accept metadata request1021 accepts the metadata request1022 avoids N+1 database queries1023 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1024 behaves like accept metadata request1025 accepts the metadata request1026 avoids N+1 database queries1027 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1028 behaves like redirect metadata request1029 redirects metadata request1030 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1031 behaves like redirect metadata request1032 redirects metadata request1033 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1034 behaves like reject metadata request1035 rejects the metadata request1036 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1037 behaves like reject metadata request1038 rejects the metadata request1039 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1040 behaves like redirect metadata request1041 redirects metadata request1042 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1043 behaves like redirect metadata request1044 redirects metadata request1045 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1046 behaves like reject metadata request1047 rejects the metadata request1048 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1049 behaves like reject metadata request1050 rejects the metadata request1051 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1052 behaves like redirect metadata request1053 redirects metadata request1054 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1055 behaves like redirect metadata request1056 redirects metadata request1057 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1058 behaves like reject metadata request1059 rejects the metadata request1060 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1061 behaves like reject metadata request1062 rejects the metadata request1063 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1064 behaves like accept metadata request1065 accepts the metadata request1066 avoids N+1 database queries1067 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1068 behaves like accept metadata request1069 accepts the metadata request1070 avoids N+1 database queries1071 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1072 behaves like accept metadata request1073 accepts the metadata request1074 avoids N+1 database queries1075 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1076 behaves like accept metadata request1077 accepts the metadata request1078 avoids N+1 database queries1079 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1080 behaves like redirect metadata request1081 redirects metadata request1082 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1083 behaves like redirect metadata request1084 redirects metadata request1085 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1086 behaves like reject metadata request1087 rejects the metadata request1088 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1089 behaves like reject metadata request1090 rejects the metadata request1091 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1092 behaves like redirect metadata request1093 redirects metadata request1094 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1095 behaves like redirect metadata request1096 redirects metadata request1097 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1098 behaves like reject metadata request1099 rejects the metadata request1100 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1101 behaves like reject metadata request1102 rejects the metadata request1103 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1104 behaves like redirect metadata request1105 redirects metadata request1106 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1107 behaves like redirect metadata request1108 redirects metadata request1109 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1110 behaves like reject metadata request1111 rejects the metadata request1112 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1113 behaves like reject metadata request1114 rejects the metadata request1115 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1116 behaves like reject metadata request1117 rejects the metadata request1118 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1119 behaves like accept metadata request1120 accepts the metadata request1121 avoids N+1 database queries1122 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1123 behaves like reject metadata request1124 rejects the metadata request1125 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1126 behaves like accept metadata request1127 accepts the metadata request1128 avoids N+1 database queries1129 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1130 behaves like redirect metadata request1131 redirects metadata request1132 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1133 behaves like redirect metadata request1134 redirects metadata request1135 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1136 behaves like reject metadata request1137 rejects the metadata request1138 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1139 behaves like reject metadata request1140 rejects the metadata request1141 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1142 behaves like redirect metadata request1143 redirects metadata request1144 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1145 behaves like redirect metadata request1146 redirects metadata request1147 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1148 behaves like reject metadata request1149 rejects the metadata request1150 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1151 behaves like reject metadata request1152 rejects the metadata request1153 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1154 behaves like redirect metadata request1155 redirects metadata request1156 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1157 behaves like redirect metadata request1158 redirects metadata request1159 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1160 behaves like reject metadata request1161 rejects the metadata request1162 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1163 behaves like reject metadata request1164 rejects the metadata request1165 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1166 behaves like accept metadata request1167 accepts the metadata request1168 avoids N+1 database queries1169 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1170 behaves like accept metadata request1171 accepts the metadata request1172 avoids N+1 database queries1173 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1174 behaves like accept metadata request1175 accepts the metadata request1176 avoids N+1 database queries1177 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1178 behaves like accept metadata request1179 accepts the metadata request1180 avoids N+1 database queries1181 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1182 behaves like redirect metadata request1183 redirects metadata request1184 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1185 behaves like redirect metadata request1186 redirects metadata request1187 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1188 behaves like reject metadata request1189 rejects the metadata request1190 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1191 behaves like reject metadata request1192 rejects the metadata request1193 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1194 behaves like redirect metadata request1195 redirects metadata request1196 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1197 behaves like redirect metadata request1198 redirects metadata request1199 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1200 behaves like reject metadata request1201 rejects the metadata request1202 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1203 behaves like reject metadata request1204 rejects the metadata request1205 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1206 behaves like redirect metadata request1207 redirects metadata request1208 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1209 behaves like redirect metadata request1210 redirects metadata request1211 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1212 behaves like reject metadata request1213 rejects the metadata request1214 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1215 behaves like reject metadata request1216 rejects the metadata request1217 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1218 behaves like accept metadata request1219 accepts the metadata request1220 avoids N+1 database queries1221 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1222 behaves like accept metadata request1223 accepts the metadata request1224 avoids N+1 database queries1225 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1226 behaves like redirect metadata request1227 redirects metadata request1228 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1229 behaves like reject metadata request1230 rejects the metadata request1231 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1232 behaves like redirect metadata request1233 redirects metadata request1234 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1235 behaves like reject metadata request1236 rejects the metadata request1237 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected1238 behaves like redirect metadata request1239 redirects metadata request1240 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1241 behaves like reject metadata request1242 rejects the metadata request1243 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1244 behaves like accept metadata request1245 accepts the metadata request1246 avoids N+1 database queries1247 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1248 behaves like accept metadata request1249 accepts the metadata request1250 avoids N+1 database queries1251 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1252 behaves like redirect metadata request1253 redirects metadata request1254 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1255 behaves like reject metadata request1256 rejects the metadata request1257 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1258 behaves like redirect metadata request1259 redirects metadata request1260 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1261 behaves like reject metadata request1262 rejects the metadata request1263 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected1264 behaves like redirect metadata request1265 redirects metadata request1266 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1267 behaves like reject metadata request1268 rejects the metadata request1269 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1270 behaves like accept metadata request1271 accepts the metadata request1272 avoids N+1 database queries1273 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1274 behaves like accept metadata request1275 accepts the metadata request1276 avoids N+1 database queries1277 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1278 behaves like redirect metadata request1279 redirects metadata request1280 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1281 behaves like reject metadata request1282 rejects the metadata request1283 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1284 behaves like redirect metadata request1285 redirects metadata request1286 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1287 behaves like reject metadata request1288 rejects the metadata request1289 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected1290 behaves like redirect metadata request1291 redirects metadata request1292 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1293 behaves like reject metadata request1294 rejects the metadata request1295 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1296 behaves like accept metadata request1297 accepts the metadata request1298 avoids N+1 database queries1299 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1300 behaves like accept metadata request1301 accepts the metadata request1302 avoids N+1 database queries1303 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1304 behaves like redirect metadata request1305 redirects metadata request1306 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1307 behaves like reject metadata request1308 rejects the metadata request1309 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1310 behaves like redirect metadata request1311 redirects metadata request1312 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1313 behaves like reject metadata request1314 rejects the metadata request1315 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected1316 behaves like redirect metadata request1317 redirects metadata request1318 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1319 behaves like reject metadata request1320 rejects the metadata request1321 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1322 behaves like accept metadata request1323 accepts the metadata request1324 avoids N+1 database queries1325 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1326 behaves like accept metadata request1327 accepts the metadata request1328 avoids N+1 database queries1329 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1330 behaves like redirect metadata request1331 redirects metadata request1332 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1333 behaves like reject metadata request1334 rejects the metadata request1335 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1336 behaves like redirect metadata request1337 redirects metadata request1338 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1339 behaves like reject metadata request1340 rejects the metadata request1341 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected1342 behaves like redirect metadata request1343 redirects metadata request1344 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1345 behaves like reject metadata request1346 rejects the metadata request1347 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1348 behaves like accept metadata request1349 accepts the metadata request1350 avoids N+1 database queries1351 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1352 behaves like accept metadata request1353 accepts the metadata request1354 avoids N+1 database queries1355 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1356 behaves like redirect metadata request1357 redirects metadata request1358 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1359 behaves like reject metadata request1360 rejects the metadata request1361 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1362 behaves like redirect metadata request1363 redirects metadata request1364 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1365 behaves like reject metadata request1366 rejects the metadata request1367 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1368 behaves like redirect metadata request1369 redirects metadata request1370 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1371 behaves like reject metadata request1372 rejects the metadata request1373 with a user namespace1374 behaves like handling all conditions1375 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1376 behaves like accept metadata request1377 accepts the metadata request1378 avoids N+1 database queries1379 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1380 behaves like accept metadata request1381 accepts the metadata request1382 avoids N+1 database queries1383 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1384 behaves like redirect metadata request1385 redirects metadata request1386 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1387 behaves like reject metadata request1388 rejects the metadata request1389 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1390 behaves like redirect metadata request1391 redirects metadata request1392 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1393 behaves like reject metadata request1394 rejects the metadata request1395 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected1396 behaves like redirect metadata request1397 redirects metadata request1398 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1399 behaves like reject metadata request1400 rejects the metadata request1401 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1402 behaves like reject metadata request1403 rejects the metadata request1404 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1405 behaves like reject metadata request1406 rejects the metadata request1407 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1408 behaves like redirect metadata request1409 redirects metadata request1410 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1411 behaves like reject metadata request1412 rejects the metadata request1413 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1414 behaves like redirect metadata request1415 redirects metadata request1416 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1417 behaves like reject metadata request1418 rejects the metadata request1419 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected1420 behaves like redirect metadata request1421 redirects metadata request1422 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1423 behaves like reject metadata request1424 rejects the metadata request1425 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1426 behaves like reject metadata request1427 rejects the metadata request1428 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1429 behaves like reject metadata request1430 rejects the metadata request1431 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1432 behaves like redirect metadata request1433 redirects metadata request1434 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1435 behaves like reject metadata request1436 rejects the metadata request1437 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1438 behaves like redirect metadata request1439 redirects metadata request1440 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1441 behaves like reject metadata request1442 rejects the metadata request1443 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1444 behaves like redirect metadata request1445 redirects metadata request1446 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1447 behaves like reject metadata request1448 rejects the metadata request1449 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1450 behaves like accept metadata request1451 accepts the metadata request1452 avoids N+1 database queries1453 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1454 behaves like accept metadata request1455 accepts the metadata request1456 avoids N+1 database queries1457 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1458 behaves like accept metadata request1459 accepts the metadata request1460 avoids N+1 database queries1461 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1462 behaves like accept metadata request1463 accepts the metadata request1464 avoids N+1 database queries1465 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1466 behaves like redirect metadata request1467 redirects metadata request1468 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1469 behaves like redirect metadata request1470 redirects metadata request1471 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1472 behaves like reject metadata request1473 rejects the metadata request1474 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1475 behaves like reject metadata request1476 rejects the metadata request1477 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1478 behaves like redirect metadata request1479 redirects metadata request1480 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1481 behaves like redirect metadata request1482 redirects metadata request1483 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1484 behaves like reject metadata request1485 rejects the metadata request1486 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1487 behaves like reject metadata request1488 rejects the metadata request1489 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1490 behaves like redirect metadata request1491 redirects metadata request1492 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1493 behaves like redirect metadata request1494 redirects metadata request1495 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1496 behaves like reject metadata request1497 rejects the metadata request1498 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1499 behaves like reject metadata request1500 rejects the metadata request1501 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1502 behaves like reject metadata request1503 rejects the metadata request1504 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1505 behaves like accept metadata request1506 accepts the metadata request1507 avoids N+1 database queries1508 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1509 behaves like reject metadata request1510 rejects the metadata request1511 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1512 behaves like accept metadata request1513 accepts the metadata request1514 avoids N+1 database queries1515 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1516 behaves like redirect metadata request1517 redirects metadata request1518 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1519 behaves like redirect metadata request1520 redirects metadata request1521 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1522 behaves like reject metadata request1523 rejects the metadata request1524 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1525 behaves like reject metadata request1526 rejects the metadata request1527 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1528 behaves like redirect metadata request1529 redirects metadata request1530 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1531 behaves like redirect metadata request1532 redirects metadata request1533 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1534 behaves like reject metadata request1535 rejects the metadata request1536 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1537 behaves like reject metadata request1538 rejects the metadata request1539 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1540 behaves like redirect metadata request1541 redirects metadata request1542 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1543 behaves like redirect metadata request1544 redirects metadata request1545 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1546 behaves like reject metadata request1547 rejects the metadata request1548 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1549 behaves like reject metadata request1550 rejects the metadata request1551 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1552 behaves like accept metadata request1553 accepts the metadata request1554 avoids N+1 database queries1555 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1556 behaves like accept metadata request1557 accepts the metadata request1558 avoids N+1 database queries1559 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1560 behaves like accept metadata request1561 accepts the metadata request1562 avoids N+1 database queries1563 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1564 behaves like accept metadata request1565 accepts the metadata request1566 avoids N+1 database queries1567 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1568 behaves like redirect metadata request1569 redirects metadata request1570 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1571 behaves like redirect metadata request1572 redirects metadata request1573 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1574 behaves like reject metadata request1575 rejects the metadata request1576 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1577 behaves like reject metadata request1578 rejects the metadata request1579 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1580 behaves like redirect metadata request1581 redirects metadata request1582 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1583 behaves like redirect metadata request1584 redirects metadata request1585 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1586 behaves like reject metadata request1587 rejects the metadata request1588 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1589 behaves like reject metadata request1590 rejects the metadata request1591 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1592 behaves like redirect metadata request1593 redirects metadata request1594 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1595 behaves like redirect metadata request1596 redirects metadata request1597 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1598 behaves like reject metadata request1599 rejects the metadata request1600 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1601 behaves like reject metadata request1602 rejects the metadata request1603 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1604 behaves like accept metadata request1605 accepts the metadata request1606 avoids N+1 database queries1607 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1608 behaves like accept metadata request1609 accepts the metadata request1610 avoids N+1 database queries1611 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1612 behaves like accept metadata request1613 accepts the metadata request1614 avoids N+1 database queries1615 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1616 behaves like accept metadata request1617 accepts the metadata request1618 avoids N+1 database queries1619 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1620 behaves like redirect metadata request1621 redirects metadata request1622 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1623 behaves like redirect metadata request1624 redirects metadata request1625 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1626 behaves like reject metadata request1627 rejects the metadata request1628 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1629 behaves like reject metadata request1630 rejects the metadata request1631 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1632 behaves like redirect metadata request1633 redirects metadata request1634 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1635 behaves like redirect metadata request1636 redirects metadata request1637 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1638 behaves like reject metadata request1639 rejects the metadata request1640 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1641 behaves like reject metadata request1642 rejects the metadata request1643 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1644 behaves like redirect metadata request1645 redirects metadata request1646 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1647 behaves like redirect metadata request1648 redirects metadata request1649 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1650 behaves like reject metadata request1651 rejects the metadata request1652 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1653 behaves like reject metadata request1654 rejects the metadata request1655 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1656 behaves like reject metadata request1657 rejects the metadata request1658 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1659 behaves like accept metadata request1660 accepts the metadata request1661 avoids N+1 database queries1662 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1663 behaves like reject metadata request1664 rejects the metadata request1665 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1666 behaves like accept metadata request1667 accepts the metadata request1668 avoids N+1 database queries1669 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1670 behaves like redirect metadata request1671 redirects metadata request1672 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1673 behaves like redirect metadata request1674 redirects metadata request1675 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1676 behaves like reject metadata request1677 rejects the metadata request1678 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1679 behaves like reject metadata request1680 rejects the metadata request1681 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1682 behaves like redirect metadata request1683 redirects metadata request1684 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1685 behaves like redirect metadata request1686 redirects metadata request1687 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1688 behaves like reject metadata request1689 rejects the metadata request1690 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1691 behaves like reject metadata request1692 rejects the metadata request1693 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1694 behaves like redirect metadata request1695 redirects metadata request1696 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1697 behaves like redirect metadata request1698 redirects metadata request1699 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1700 behaves like reject metadata request1701 rejects the metadata request1702 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1703 behaves like reject metadata request1704 rejects the metadata request1705 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1706 behaves like accept metadata request1707 accepts the metadata request1708 avoids N+1 database queries1709 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1710 behaves like accept metadata request1711 accepts the metadata request1712 avoids N+1 database queries1713 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1714 behaves like accept metadata request1715 accepts the metadata request1716 avoids N+1 database queries1717 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1718 behaves like accept metadata request1719 accepts the metadata request1720 avoids N+1 database queries1721 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1722 behaves like redirect metadata request1723 redirects metadata request1724 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1725 behaves like redirect metadata request1726 redirects metadata request1727 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1728 behaves like reject metadata request1729 rejects the metadata request1730 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1731 behaves like reject metadata request1732 rejects the metadata request1733 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1734 behaves like redirect metadata request1735 redirects metadata request1736 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1737 behaves like redirect metadata request1738 redirects metadata request1739 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1740 behaves like reject metadata request1741 rejects the metadata request1742 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1743 behaves like reject metadata request1744 rejects the metadata request1745 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1746 behaves like redirect metadata request1747 redirects metadata request1748 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1749 behaves like redirect metadata request1750 redirects metadata request1751 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1752 behaves like reject metadata request1753 rejects the metadata request1754 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1755 behaves like reject metadata request1756 rejects the metadata request1757 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1758 behaves like accept metadata request1759 accepts the metadata request1760 avoids N+1 database queries1761 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1762 behaves like accept metadata request1763 accepts the metadata request1764 avoids N+1 database queries1765 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1766 behaves like redirect metadata request1767 redirects metadata request1768 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1769 behaves like reject metadata request1770 rejects the metadata request1771 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1772 behaves like redirect metadata request1773 redirects metadata request1774 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1775 behaves like reject metadata request1776 rejects the metadata request1777 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected1778 behaves like redirect metadata request1779 redirects metadata request1780 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1781 behaves like reject metadata request1782 rejects the metadata request1783 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1784 behaves like accept metadata request1785 accepts the metadata request1786 avoids N+1 database queries1787 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1788 behaves like accept metadata request1789 accepts the metadata request1790 avoids N+1 database queries1791 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1792 behaves like redirect metadata request1793 redirects metadata request1794 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1795 behaves like reject metadata request1796 rejects the metadata request1797 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1798 behaves like redirect metadata request1799 redirects metadata request1800 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1801 behaves like reject metadata request1802 rejects the metadata request1803 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected1804 behaves like redirect metadata request1805 redirects metadata request1806 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1807 behaves like reject metadata request1808 rejects the metadata request1809 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1810 behaves like accept metadata request1811 accepts the metadata request1812 avoids N+1 database queries1813 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1814 behaves like accept metadata request1815 accepts the metadata request1816 avoids N+1 database queries1817 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1818 behaves like redirect metadata request1819 redirects metadata request1820 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1821 behaves like reject metadata request1822 rejects the metadata request1823 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1824 behaves like redirect metadata request1825 redirects metadata request1826 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1827 behaves like reject metadata request1828 rejects the metadata request1829 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected1830 behaves like redirect metadata request1831 redirects metadata request1832 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1833 behaves like reject metadata request1834 rejects the metadata request1835 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1836 behaves like accept metadata request1837 accepts the metadata request1838 avoids N+1 database queries1839 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1840 behaves like accept metadata request1841 accepts the metadata request1842 avoids N+1 database queries1843 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1844 behaves like redirect metadata request1845 redirects metadata request1846 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1847 behaves like reject metadata request1848 rejects the metadata request1849 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1850 behaves like redirect metadata request1851 redirects metadata request1852 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1853 behaves like reject metadata request1854 rejects the metadata request1855 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected1856 behaves like redirect metadata request1857 redirects metadata request1858 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1859 behaves like reject metadata request1860 rejects the metadata request1861 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1862 behaves like accept metadata request1863 accepts the metadata request1864 avoids N+1 database queries1865 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1866 behaves like accept metadata request1867 accepts the metadata request1868 avoids N+1 database queries1869 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1870 behaves like redirect metadata request1871 redirects metadata request1872 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1873 behaves like reject metadata request1874 rejects the metadata request1875 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1876 behaves like redirect metadata request1877 redirects metadata request1878 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1879 behaves like reject metadata request1880 rejects the metadata request1881 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected1882 behaves like redirect metadata request1883 redirects metadata request1884 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1885 behaves like reject metadata request1886 rejects the metadata request1887 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1888 behaves like accept metadata request1889 accepts the metadata request1890 avoids N+1 database queries1891 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1892 behaves like accept metadata request1893 accepts the metadata request1894 avoids N+1 database queries1895 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1896 behaves like redirect metadata request1897 redirects metadata request1898 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1899 behaves like reject metadata request1900 rejects the metadata request1901 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1902 behaves like redirect metadata request1903 redirects metadata request1904 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1905 behaves like reject metadata request1906 rejects the metadata request1907 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1908 behaves like redirect metadata request1909 redirects metadata request1910 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1911 behaves like reject metadata request1912 rejects the metadata request1913 with a developer1914 project path with a dot1915 behaves like accept metadata request1916 accepts the metadata request1917 avoids N+1 database queries1918 with a job token1919 behaves like reject metadata request1920 rejects the metadata request1921 GET /api/v4/packages/npm/-/package/*package_name/dist-tags1922 behaves like handling get dist tags requests1923 with a group namespace1924 behaves like handling all conditions1925 with oauth token1926 behaves like handling different package names, visibilities and user roles1927 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1928 behaves like accept package tags request1929 with valid package name1930 returns a valid json response1931 returns two package tags1932 behaves like returning response status1933 returns ok1934 with invalid package name1935 package_name: "%20", status: :bad_request1936 behaves like returning response status1937 returns bad_request1938 package_name: nil, status: :not_found1939 behaves like returning response status1940 returns not_found1941 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1942 behaves like accept package tags request1943 with valid package name1944 returns a valid json response1945 returns two package tags1946 behaves like returning response status1947 returns ok1948 with invalid package name1949 package_name: "%20", status: :bad_request1950 behaves like returning response status1951 returns bad_request1952 package_name: nil, status: :not_found1953 behaves like returning response status1954 returns not_found1955 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1956 behaves like accept package tags request1957 with valid package name1958 returns a valid json response1959 returns two package tags1960 behaves like returning response status1961 returns ok1962 with invalid package name1963 package_name: "%20", status: :bad_request1964 behaves like returning response status1965 returns bad_request1966 package_name: nil, status: :not_found1967 behaves like returning response status1968 returns not_found1969 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1970 behaves like reject package tags request1971 behaves like returning response status1972 returns not_found1973 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1974 behaves like reject package tags request1975 behaves like returning response status1976 returns not_found1977 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1978 behaves like reject package tags request1979 behaves like returning response status1980 returns not_found1981 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1982 behaves like reject package tags request1983 behaves like returning response status1984 returns not_found1985 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1986 behaves like reject package tags request1987 behaves like returning response status1988 returns not_found1989 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1990 behaves like reject package tags request1991 behaves like returning response status1992 returns not_found1993 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1994 behaves like reject package tags request1995 behaves like returning response status1996 returns not_found1997 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1998 behaves like reject package tags request1999 behaves like returning response status2000 returns not_found2001 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found2002 behaves like reject package tags request2003 behaves like returning response status2004 returns not_found2005 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2006 behaves like reject package tags request2007 behaves like returning response status2008 returns not_found2009 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2010 behaves like reject package tags request2011 behaves like returning response status2012 returns forbidden2013 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2014 behaves like accept package tags request2015 with valid package name2016 returns a valid json response2017 returns two package tags2018 behaves like returning response status2019 returns ok2020 with invalid package name2021 package_name: "%20", status: :bad_request2022 behaves like returning response status2023 returns bad_request2024 package_name: nil, status: :not_found2025 behaves like returning response status2026 returns not_found2027 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2028 behaves like reject package tags request2029 behaves like returning response status2030 returns not_found2031 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2032 behaves like reject package tags request2033 behaves like returning response status2034 returns not_found2035 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2036 behaves like reject package tags request2037 behaves like returning response status2038 returns not_found2039 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2040 behaves like reject package tags request2041 behaves like returning response status2042 returns not_found2043 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2044 behaves like reject package tags request2045 behaves like returning response status2046 returns not_found2047 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2048 behaves like reject package tags request2049 behaves like returning response status2050 returns not_found2051 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2052 behaves like reject package tags request2053 behaves like returning response status2054 returns not_found2055 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2056 behaves like reject package tags request2057 behaves like returning response status2058 returns not_found2059 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found2060 behaves like reject package tags request2061 behaves like returning response status2062 returns not_found2063 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2064 behaves like reject package tags request2065 behaves like returning response status2066 returns not_found2067 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2068 behaves like accept package tags request2069 with valid package name2070 returns a valid json response2071 returns two package tags2072 behaves like returning response status2073 returns ok2074 with invalid package name2075 package_name: "%20", status: :bad_request2076 behaves like returning response status2077 returns bad_request2078 package_name: nil, status: :not_found2079 behaves like returning response status2080 returns not_found2081 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2082 behaves like accept package tags request2083 with valid package name2084 returns a valid json response2085 returns two package tags2086 behaves like returning response status2087 returns ok2088 with invalid package name2089 package_name: "%20", status: :bad_request2090 behaves like returning response status2091 returns bad_request2092 package_name: nil, status: :not_found2093 behaves like returning response status2094 returns not_found2095 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2096 behaves like reject package tags request2097 behaves like returning response status2098 returns not_found2099 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2100 behaves like reject package tags request2101 behaves like returning response status2102 returns not_found2103 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2104 behaves like reject package tags request2105 behaves like returning response status2106 returns not_found2107 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2108 behaves like reject package tags request2109 behaves like returning response status2110 returns not_found2111 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2112 behaves like reject package tags request2113 behaves like returning response status2114 returns not_found2115 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2116 behaves like reject package tags request2117 behaves like returning response status2118 returns not_found2119 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2120 behaves like reject package tags request2121 behaves like returning response status2122 returns not_found2123 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2124 behaves like reject package tags request2125 behaves like returning response status2126 returns not_found2127 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2128 behaves like reject package tags request2129 behaves like returning response status2130 returns not_found2131 with personal access token2132 behaves like handling different package names, visibilities and user roles2133 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2134 behaves like accept package tags request2135 with valid package name2136 returns a valid json response2137 returns two package tags2138 behaves like returning response status2139 returns ok2140 with invalid package name2141 package_name: "%20", status: :bad_request2142 behaves like returning response status2143 returns bad_request2144 package_name: nil, status: :not_found2145 behaves like returning response status2146 returns not_found2147 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2148 behaves like accept package tags request2149 with valid package name2150 returns a valid json response2151 returns two package tags2152 behaves like returning response status2153 returns ok2154 with invalid package name2155 package_name: "%20", status: :bad_request2156 behaves like returning response status2157 returns bad_request2158 package_name: nil, status: :not_found2159 behaves like returning response status2160 returns not_found2161 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2162 behaves like accept package tags request2163 with valid package name2164 returns a valid json response2165 returns two package tags2166 behaves like returning response status2167 returns ok2168 with invalid package name2169 package_name: "%20", status: :bad_request2170 behaves like returning response status2171 returns bad_request2172 package_name: nil, status: :not_found2173 behaves like returning response status2174 returns not_found2175 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2176 behaves like reject package tags request2177 behaves like returning response status2178 returns not_found2179 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2180 behaves like reject package tags request2181 behaves like returning response status2182 returns not_found2183 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2184 behaves like reject package tags request2185 behaves like returning response status2186 returns not_found2187 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2188 behaves like reject package tags request2189 behaves like returning response status2190 returns not_found2191 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2192 behaves like reject package tags request2193 behaves like returning response status2194 returns not_found2195 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2196 behaves like reject package tags request2197 behaves like returning response status2198 returns not_found2199 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2200 behaves like reject package tags request2201 behaves like returning response status2202 returns not_found2203 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found2204 behaves like reject package tags request2205 behaves like returning response status2206 returns not_found2207 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found2208 behaves like reject package tags request2209 behaves like returning response status2210 returns not_found2211 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2212 behaves like reject package tags request2213 behaves like returning response status2214 returns not_found2215 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2216 behaves like reject package tags request2217 behaves like returning response status2218 returns forbidden2219 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2220 behaves like accept package tags request2221 with valid package name2222 returns a valid json response2223 returns two package tags2224 behaves like returning response status2225 returns ok2226 with invalid package name2227 package_name: "%20", status: :bad_request2228 behaves like returning response status2229 returns bad_request2230 package_name: nil, status: :not_found2231 behaves like returning response status2232 returns not_found2233 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2234 behaves like reject package tags request2235 behaves like returning response status2236 returns not_found2237 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2238 behaves like reject package tags request2239 behaves like returning response status2240 returns not_found2241 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2242 behaves like reject package tags request2243 behaves like returning response status2244 returns not_found2245 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2246 behaves like reject package tags request2247 behaves like returning response status2248 returns not_found2249 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2250 behaves like reject package tags request2251 behaves like returning response status2252 returns not_found2253 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2254 behaves like reject package tags request2255 behaves like returning response status2256 returns not_found2257 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2258 behaves like reject package tags request2259 behaves like returning response status2260 returns not_found2261 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2262 behaves like reject package tags request2263 behaves like returning response status2264 returns not_found2265 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found2266 behaves like reject package tags request2267 behaves like returning response status2268 returns not_found2269 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2270 behaves like reject package tags request2271 behaves like returning response status2272 returns not_found2273 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2274 behaves like accept package tags request2275 with valid package name2276 returns a valid json response2277 returns two package tags2278 behaves like returning response status2279 returns ok2280 with invalid package name2281 package_name: "%20", status: :bad_request2282 behaves like returning response status2283 returns bad_request2284 package_name: nil, status: :not_found2285 behaves like returning response status2286 returns not_found2287 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2288 behaves like accept package tags request2289 with valid package name2290 returns a valid json response2291 returns two package tags2292 behaves like returning response status2293 returns ok2294 with invalid package name2295 package_name: "%20", status: :bad_request2296 behaves like returning response status2297 returns bad_request2298 package_name: nil, status: :not_found2299 behaves like returning response status2300 returns not_found2301 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2302 behaves like reject package tags request2303 behaves like returning response status2304 returns not_found2305 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2306 behaves like reject package tags request2307 behaves like returning response status2308 returns not_found2309 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2310 behaves like reject package tags request2311 behaves like returning response status2312 returns not_found2313 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2314 behaves like reject package tags request2315 behaves like returning response status2316 returns not_found2317 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2318 behaves like reject package tags request2319 behaves like returning response status2320 returns not_found2321 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2322 behaves like reject package tags request2323 behaves like returning response status2324 returns not_found2325 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2326 behaves like reject package tags request2327 behaves like returning response status2328 returns not_found2329 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2330 behaves like reject package tags request2331 behaves like returning response status2332 returns not_found2333 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2334 behaves like reject package tags request2335 behaves like returning response status2336 returns not_found2337 with a user namespace2338 behaves like handling all conditions2339 with oauth token2340 behaves like handling different package names, visibilities and user roles2341 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2342 behaves like accept package tags request2343 with valid package name2344 returns a valid json response2345 returns two package tags2346 behaves like returning response status2347 returns ok2348 with invalid package name2349 package_name: "%20", status: :bad_request2350 behaves like returning response status2351 returns bad_request2352 package_name: nil, status: :not_found2353 behaves like returning response status2354 returns not_found2355 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2356 behaves like accept package tags request2357 with valid package name2358 returns a valid json response2359 returns two package tags2360 behaves like returning response status2361 returns ok2362 with invalid package name2363 package_name: "%20", status: :bad_request2364 behaves like returning response status2365 returns bad_request2366 package_name: nil, status: :not_found2367 behaves like returning response status2368 returns not_found2369 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2370 behaves like accept package tags request2371 with valid package name2372 returns a valid json response2373 returns two package tags2374 behaves like returning response status2375 returns ok2376 with invalid package name2377 package_name: "%20", status: :bad_request2378 behaves like returning response status2379 returns bad_request2380 package_name: nil, status: :not_found2381 behaves like returning response status2382 returns not_found2383 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2384 behaves like reject package tags request2385 behaves like returning response status2386 returns not_found2387 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2388 behaves like reject package tags request2389 behaves like returning response status2390 returns not_found2391 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2392 behaves like reject package tags request2393 behaves like returning response status2394 returns not_found2395 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2396 behaves like reject package tags request2397 behaves like returning response status2398 returns not_found2399 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2400 behaves like reject package tags request2401 behaves like returning response status2402 returns not_found2403 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2404 behaves like reject package tags request2405 behaves like returning response status2406 returns not_found2407 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2408 behaves like reject package tags request2409 behaves like returning response status2410 returns not_found2411 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found2412 behaves like reject package tags request2413 behaves like returning response status2414 returns not_found2415 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found2416 behaves like reject package tags request2417 behaves like returning response status2418 returns not_found2419 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2420 behaves like reject package tags request2421 behaves like returning response status2422 returns not_found2423 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2424 behaves like reject package tags request2425 behaves like returning response status2426 returns forbidden2427 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2428 behaves like accept package tags request2429 with valid package name2430 returns a valid json response2431 returns two package tags2432 behaves like returning response status2433 returns ok2434 with invalid package name2435 package_name: "%20", status: :bad_request2436 behaves like returning response status2437 returns bad_request2438 package_name: nil, status: :not_found2439 behaves like returning response status2440 returns not_found2441 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2442 behaves like reject package tags request2443 behaves like returning response status2444 returns not_found2445 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2446 behaves like reject package tags request2447 behaves like returning response status2448 returns not_found2449 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2450 behaves like reject package tags request2451 behaves like returning response status2452 returns not_found2453 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2454 behaves like reject package tags request2455 behaves like returning response status2456 returns not_found2457 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2458 behaves like reject package tags request2459 behaves like returning response status2460 returns not_found2461 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2462 behaves like reject package tags request2463 behaves like returning response status2464 returns not_found2465 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2466 behaves like reject package tags request2467 behaves like returning response status2468 returns not_found2469 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2470 behaves like reject package tags request2471 behaves like returning response status2472 returns not_found2473 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found2474 behaves like reject package tags request2475 behaves like returning response status2476 returns not_found2477 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2478 behaves like reject package tags request2479 behaves like returning response status2480 returns not_found2481 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2482 behaves like accept package tags request2483 with valid package name2484 returns a valid json response2485 returns two package tags2486 behaves like returning response status2487 returns ok2488 with invalid package name2489 package_name: "%20", status: :bad_request2490 behaves like returning response status2491 returns bad_request2492 package_name: nil, status: :not_found2493 behaves like returning response status2494 returns not_found2495 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2496 behaves like accept package tags request2497 with valid package name2498 returns a valid json response2499 returns two package tags2500 behaves like returning response status2501 returns ok2502 with invalid package name2503 package_name: "%20", status: :bad_request2504 behaves like returning response status2505 returns bad_request2506 package_name: nil, status: :not_found2507 behaves like returning response status2508 returns not_found2509 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2510 behaves like reject package tags request2511 behaves like returning response status2512 returns not_found2513 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2514 behaves like reject package tags request2515 behaves like returning response status2516 returns not_found2517 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2518 behaves like reject package tags request2519 behaves like returning response status2520 returns not_found2521 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2522 behaves like reject package tags request2523 behaves like returning response status2524 returns not_found2525 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2526 behaves like reject package tags request2527 behaves like returning response status2528 returns not_found2529 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2530 behaves like reject package tags request2531 behaves like returning response status2532 returns not_found2533 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2534 behaves like reject package tags request2535 behaves like returning response status2536 returns not_found2537 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2538 behaves like reject package tags request2539 behaves like returning response status2540 returns not_found2541 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2542 behaves like reject package tags request2543 behaves like returning response status2544 returns not_found2545 with personal access token2546 behaves like handling different package names, visibilities and user roles2547 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2548 behaves like accept package tags request2549 with valid package name2550 returns a valid json response2551 returns two package tags2552 behaves like returning response status2553 returns ok2554 with invalid package name2555 package_name: "%20", status: :bad_request2556 behaves like returning response status2557 returns bad_request2558 package_name: nil, status: :not_found2559 behaves like returning response status2560 returns not_found2561 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2562 behaves like accept package tags request2563 with valid package name2564 returns a valid json response2565 returns two package tags2566 behaves like returning response status2567 returns ok2568 with invalid package name2569 package_name: "%20", status: :bad_request2570 behaves like returning response status2571 returns bad_request2572 package_name: nil, status: :not_found2573 behaves like returning response status2574 returns not_found2575 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2576 behaves like accept package tags request2577 with valid package name2578 returns a valid json response2579 returns two package tags2580 behaves like returning response status2581 returns ok2582 with invalid package name2583 package_name: "%20", status: :bad_request2584 behaves like returning response status2585 returns bad_request2586 package_name: nil, status: :not_found2587 behaves like returning response status2588 returns not_found2589 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2590 behaves like reject package tags request2591 behaves like returning response status2592 returns not_found2593 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2594 behaves like reject package tags request2595 behaves like returning response status2596 returns not_found2597 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2598 behaves like reject package tags request2599 behaves like returning response status2600 returns not_found2601 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2602 behaves like reject package tags request2603 behaves like returning response status2604 returns not_found2605 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2606 behaves like reject package tags request2607 behaves like returning response status2608 returns not_found2609 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2610 behaves like reject package tags request2611 behaves like returning response status2612 returns not_found2613 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2614 behaves like reject package tags request2615 behaves like returning response status2616 returns not_found2617 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found2618 behaves like reject package tags request2619 behaves like returning response status2620 returns not_found2621 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found2622 behaves like reject package tags request2623 behaves like returning response status2624 returns not_found2625 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2626 behaves like reject package tags request2627 behaves like returning response status2628 returns not_found2629 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2630 behaves like reject package tags request2631 behaves like returning response status2632 returns forbidden2633 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2634 behaves like accept package tags request2635 with valid package name2636 returns a valid json response2637 returns two package tags2638 behaves like returning response status2639 returns ok2640 with invalid package name2641 package_name: "%20", status: :bad_request2642 behaves like returning response status2643 returns bad_request2644 package_name: nil, status: :not_found2645 behaves like returning response status2646 returns not_found2647 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2648 behaves like reject package tags request2649 behaves like returning response status2650 returns not_found2651 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2652 behaves like reject package tags request2653 behaves like returning response status2654 returns not_found2655 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2656 behaves like reject package tags request2657 behaves like returning response status2658 returns not_found2659 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2660 behaves like reject package tags request2661 behaves like returning response status2662 returns not_found2663 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2664 behaves like reject package tags request2665 behaves like returning response status2666 returns not_found2667 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2668 behaves like reject package tags request2669 behaves like returning response status2670 returns not_found2671 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2672 behaves like reject package tags request2673 behaves like returning response status2674 returns not_found2675 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2676 behaves like reject package tags request2677 behaves like returning response status2678 returns not_found2679 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found2680 behaves like reject package tags request2681 behaves like returning response status2682 returns not_found2683 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2684 behaves like reject package tags request2685 behaves like returning response status2686 returns not_found2687 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2688 behaves like accept package tags request2689 with valid package name2690 returns a valid json response2691 returns two package tags2692 behaves like returning response status2693 returns ok2694 with invalid package name2695 package_name: "%20", status: :bad_request2696 behaves like returning response status2697 returns bad_request2698 package_name: nil, status: :not_found2699 behaves like returning response status2700 returns not_found2701 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2702 behaves like accept package tags request2703 with valid package name2704 returns a valid json response2705 returns two package tags2706 behaves like returning response status2707 returns ok2708 with invalid package name2709 package_name: "%20", status: :bad_request2710 behaves like returning response status2711 returns bad_request2712 package_name: nil, status: :not_found2713 behaves like returning response status2714 returns not_found2715 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2716 behaves like reject package tags request2717 behaves like returning response status2718 returns not_found2719 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2720 behaves like reject package tags request2721 behaves like returning response status2722 returns not_found2723 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2724 behaves like reject package tags request2725 behaves like returning response status2726 returns not_found2727 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2728 behaves like reject package tags request2729 behaves like returning response status2730 returns not_found2731 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2732 behaves like reject package tags request2733 behaves like returning response status2734 returns not_found2735 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2736 behaves like reject package tags request2737 behaves like returning response status2738 returns not_found2739 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2740 behaves like reject package tags request2741 behaves like returning response status2742 returns not_found2743 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2744 behaves like reject package tags request2745 behaves like returning response status2746 returns not_found2747 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2748 behaves like reject package tags request2749 behaves like returning response status2750 returns not_found2751 PUT /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag2752 behaves like handling create dist tag requests2753 with a group namespace2754 behaves like handling all conditions2755 with oauth token2756 behaves like handling different package names, visibilities and user roles2757 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2758 behaves like reject create package tag request2759 behaves like returning response status2760 returns forbidden2761 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2762 behaves like reject create package tag request2763 behaves like returning response status2764 returns forbidden2765 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2766 behaves like accept create package tag request2767 with valid package name2768 creates the package tag2769 returns a valid response2770 behaves like returning response status2771 returns no_content2772 with already existing tag2773 reuses existing tag2774 returns a valid response2775 behaves like returning response status2776 returns no_content2777 with invalid package name2778 package_name: "unknown", status: :not_found2779 behaves like returning response status2780 returns not_found2781 package_name: "", status: :not_found2782 behaves like returning response status2783 returns not_found2784 package_name: "%20", status: :bad_request2785 behaves like returning response status2786 returns bad_request2787 with invalid tag name2788 tag_name: "", status: :not_found2789 behaves like returning response status2790 returns not_found2791 tag_name: "%20", status: :bad_request2792 behaves like returning response status2793 returns bad_request2794 with invalid version2795 version: " ", status: :bad_request2796 behaves like returning response status2797 returns bad_request2798 version: "", status: :bad_request2799 behaves like returning response status2800 returns bad_request2801 version: nil, status: :bad_request2802 behaves like returning response status2803 returns bad_request2804 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2805 behaves like reject create package tag request2806 behaves like returning response status2807 returns not_found2808 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2809 behaves like reject create package tag request2810 behaves like returning response status2811 returns not_found2812 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2813 behaves like reject create package tag request2814 behaves like returning response status2815 returns not_found2816 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2817 behaves like reject create package tag request2818 behaves like returning response status2819 returns not_found2820 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2821 behaves like reject create package tag request2822 behaves like returning response status2823 returns not_found2824 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2825 behaves like reject create package tag request2826 behaves like returning response status2827 returns not_found2828 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2829 behaves like reject create package tag request2830 behaves like returning response status2831 returns not_found2832 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2833 behaves like reject create package tag request2834 behaves like returning response status2835 returns not_found2836 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2837 behaves like reject create package tag request2838 behaves like returning response status2839 returns not_found2840 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2841 behaves like reject create package tag request2842 behaves like returning response status2843 returns not_found2844 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2845 behaves like reject create package tag request2846 behaves like returning response status2847 returns forbidden2848 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2849 behaves like accept create package tag request2850 with valid package name2851 creates the package tag2852 returns a valid response2853 behaves like returning response status2854 returns no_content2855 with already existing tag2856 reuses existing tag2857 returns a valid response2858 behaves like returning response status2859 returns no_content2860 with invalid package name2861 package_name: "unknown", status: :not_found2862 behaves like returning response status2863 returns not_found2864 package_name: "", status: :not_found2865 behaves like returning response status2866 returns not_found2867 package_name: "%20", status: :bad_request2868 behaves like returning response status2869 returns bad_request2870 with invalid tag name2871 tag_name: "", status: :not_found2872 behaves like returning response status2873 returns not_found2874 tag_name: "%20", status: :bad_request2875 behaves like returning response status2876 returns bad_request2877 with invalid version2878 version: " ", status: :bad_request2879 behaves like returning response status2880 returns bad_request2881 version: "", status: :bad_request2882 behaves like returning response status2883 returns bad_request2884 version: nil, status: :bad_request2885 behaves like returning response status2886 returns bad_request2887 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2888 behaves like reject create package tag request2889 behaves like returning response status2890 returns not_found2891 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2892 behaves like reject create package tag request2893 behaves like returning response status2894 returns not_found2895 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2896 behaves like reject create package tag request2897 behaves like returning response status2898 returns not_found2899 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2900 behaves like reject create package tag request2901 behaves like returning response status2902 returns not_found2903 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2904 behaves like reject create package tag request2905 behaves like returning response status2906 returns not_found2907 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2908 behaves like reject create package tag request2909 behaves like returning response status2910 returns not_found2911 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2912 behaves like reject create package tag request2913 behaves like returning response status2914 returns not_found2915 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2916 behaves like reject create package tag request2917 behaves like returning response status2918 returns not_found2919 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2920 behaves like reject create package tag request2921 behaves like returning response status2922 returns not_found2923 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2924 behaves like reject create package tag request2925 behaves like returning response status2926 returns forbidden2927 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2928 behaves like reject create package tag request2929 behaves like returning response status2930 returns forbidden2931 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2932 behaves like accept create package tag request2933 with valid package name2934 creates the package tag2935 returns a valid response2936 behaves like returning response status2937 returns no_content2938 with already existing tag2939 reuses existing tag2940 returns a valid response2941 behaves like returning response status2942 returns no_content2943 with invalid package name2944 package_name: "unknown", status: :not_found2945 behaves like returning response status2946 returns not_found2947 package_name: "", status: :not_found2948 behaves like returning response status2949 returns not_found2950 package_name: "%20", status: :bad_request2951 behaves like returning response status2952 returns bad_request2953 with invalid tag name2954 tag_name: "", status: :not_found2955 behaves like returning response status2956 returns not_found2957 tag_name: "%20", status: :bad_request2958 behaves like returning response status2959 returns bad_request2960 with invalid version2961 version: " ", status: :bad_request2962 behaves like returning response status2963 returns bad_request2964 version: "", status: :bad_request2965 behaves like returning response status2966 returns bad_request2967 version: nil, status: :bad_request2968 behaves like returning response status2969 returns bad_request2970 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2971 behaves like reject create package tag request2972 behaves like returning response status2973 returns not_found2974 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2975 behaves like reject create package tag request2976 behaves like returning response status2977 returns not_found2978 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2979 behaves like reject create package tag request2980 behaves like returning response status2981 returns not_found2982 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2983 behaves like reject create package tag request2984 behaves like returning response status2985 returns not_found2986 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2987 behaves like reject create package tag request2988 behaves like returning response status2989 returns not_found2990 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2991 behaves like reject create package tag request2992 behaves like returning response status2993 returns not_found2994 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2995 behaves like reject create package tag request2996 behaves like returning response status2997 returns not_found2998 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2999 behaves like reject create package tag request3000 behaves like returning response status3001 returns not_found3002 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3003 behaves like reject create package tag request3004 behaves like returning response status3005 returns not_found3006 with personal access token3007 behaves like handling different package names, visibilities and user roles3008 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3009 behaves like reject create package tag request3010 behaves like returning response status3011 returns forbidden3012 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3013 behaves like reject create package tag request3014 behaves like returning response status3015 returns forbidden3016 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3017 behaves like accept create package tag request3018 with valid package name3019 creates the package tag3020 returns a valid response3021 behaves like returning response status3022 returns no_content3023 with already existing tag3024 reuses existing tag3025 returns a valid response3026 behaves like returning response status3027 returns no_content3028 with invalid package name3029 package_name: "unknown", status: :not_found3030 behaves like returning response status3031 returns not_found3032 package_name: "", status: :not_found3033 behaves like returning response status3034 returns not_found3035 package_name: "%20", status: :bad_request3036 behaves like returning response status3037 returns bad_request3038 with invalid tag name3039 tag_name: "", status: :not_found3040 behaves like returning response status3041 returns not_found3042 tag_name: "%20", status: :bad_request3043 behaves like returning response status3044 returns bad_request3045 with invalid version3046 version: " ", status: :bad_request3047 behaves like returning response status3048 returns bad_request3049 version: "", status: :bad_request3050 behaves like returning response status3051 returns bad_request3052 version: nil, status: :bad_request3053 behaves like returning response status3054 returns bad_request3055 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3056 behaves like reject create package tag request3057 behaves like returning response status3058 returns not_found3059 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3060 behaves like reject create package tag request3061 behaves like returning response status3062 returns not_found3063 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3064 behaves like reject create package tag request3065 behaves like returning response status3066 returns not_found3067 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3068 behaves like reject create package tag request3069 behaves like returning response status3070 returns not_found3071 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3072 behaves like reject create package tag request3073 behaves like returning response status3074 returns not_found3075 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3076 behaves like reject create package tag request3077 behaves like returning response status3078 returns not_found3079 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3080 behaves like reject create package tag request3081 behaves like returning response status3082 returns not_found3083 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3084 behaves like reject create package tag request3085 behaves like returning response status3086 returns not_found3087 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found3088 behaves like reject create package tag request3089 behaves like returning response status3090 returns not_found3091 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3092 behaves like reject create package tag request3093 behaves like returning response status3094 returns not_found3095 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3096 behaves like reject create package tag request3097 behaves like returning response status3098 returns forbidden3099 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3100 behaves like accept create package tag request3101 with valid package name3102 creates the package tag3103 returns a valid response3104 behaves like returning response status3105 returns no_content3106 with already existing tag3107 reuses existing tag3108 returns a valid response3109 behaves like returning response status3110 returns no_content3111 with invalid package name3112 package_name: "unknown", status: :not_found3113 behaves like returning response status3114 returns not_found3115 package_name: "", status: :not_found3116 behaves like returning response status3117 returns not_found3118 package_name: "%20", status: :bad_request3119 behaves like returning response status3120 returns bad_request3121 with invalid tag name3122 tag_name: "", status: :not_found3123 behaves like returning response status3124 returns not_found3125 tag_name: "%20", status: :bad_request3126 behaves like returning response status3127 returns bad_request3128 with invalid version3129 version: " ", status: :bad_request3130 behaves like returning response status3131 returns bad_request3132 version: "", status: :bad_request3133 behaves like returning response status3134 returns bad_request3135 version: nil, status: :bad_request3136 behaves like returning response status3137 returns bad_request3138 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3139 behaves like reject create package tag request3140 behaves like returning response status3141 returns not_found3142 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3143 behaves like reject create package tag request3144 behaves like returning response status3145 returns not_found3146 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3147 behaves like reject create package tag request3148 behaves like returning response status3149 returns not_found3150 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3151 behaves like reject create package tag request3152 behaves like returning response status3153 returns not_found3154 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3155 behaves like reject create package tag request3156 behaves like returning response status3157 returns not_found3158 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3159 behaves like reject create package tag request3160 behaves like returning response status3161 returns not_found3162 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3163 behaves like reject create package tag request3164 behaves like returning response status3165 returns not_found3166 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3167 behaves like reject create package tag request3168 behaves like returning response status3169 returns not_found3170 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found3171 behaves like reject create package tag request3172 behaves like returning response status3173 returns not_found3174 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3175 behaves like reject create package tag request3176 behaves like returning response status3177 returns forbidden3178 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3179 behaves like reject create package tag request3180 behaves like returning response status3181 returns forbidden3182 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3183 behaves like accept create package tag request3184 with valid package name3185 creates the package tag3186 returns a valid response3187 behaves like returning response status3188 returns no_content3189 with already existing tag3190 reuses existing tag3191 returns a valid response3192 behaves like returning response status3193 returns no_content3194 with invalid package name3195 package_name: "unknown", status: :not_found3196 behaves like returning response status3197 returns not_found3198 package_name: "", status: :not_found3199 behaves like returning response status3200 returns not_found3201 package_name: "%20", status: :bad_request3202 behaves like returning response status3203 returns bad_request3204 with invalid tag name3205 tag_name: "", status: :not_found3206 behaves like returning response status3207 returns not_found3208 tag_name: "%20", status: :bad_request3209 behaves like returning response status3210 returns bad_request3211 with invalid version3212 version: " ", status: :bad_request3213 behaves like returning response status3214 returns bad_request3215 version: "", status: :bad_request3216 behaves like returning response status3217 returns bad_request3218 version: nil, status: :bad_request3219 behaves like returning response status3220 returns bad_request3221 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3222 behaves like reject create package tag request3223 behaves like returning response status3224 returns not_found3225 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3226 behaves like reject create package tag request3227 behaves like returning response status3228 returns not_found3229 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3230 behaves like reject create package tag request3231 behaves like returning response status3232 returns not_found3233 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3234 behaves like reject create package tag request3235 behaves like returning response status3236 returns not_found3237 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3238 behaves like reject create package tag request3239 behaves like returning response status3240 returns not_found3241 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3242 behaves like reject create package tag request3243 behaves like returning response status3244 returns not_found3245 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3246 behaves like reject create package tag request3247 behaves like returning response status3248 returns not_found3249 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3250 behaves like reject create package tag request3251 behaves like returning response status3252 returns not_found3253 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3254 behaves like reject create package tag request3255 behaves like returning response status3256 returns not_found3257 with a user namespace3258 behaves like handling all conditions3259 with oauth token3260 behaves like handling different package names, visibilities and user roles3261 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3262 behaves like reject create package tag request3263 behaves like returning response status3264 returns forbidden3265 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3266 behaves like reject create package tag request3267 behaves like returning response status3268 returns forbidden3269 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3270 behaves like accept create package tag request3271 with valid package name3272 creates the package tag3273 returns a valid response3274 behaves like returning response status3275 returns no_content3276 with already existing tag3277 reuses existing tag3278 returns a valid response3279 behaves like returning response status3280 returns no_content3281 with invalid package name3282 package_name: "unknown", status: :not_found3283 behaves like returning response status3284 returns not_found3285 package_name: "", status: :not_found3286 behaves like returning response status3287 returns not_found3288 package_name: "%20", status: :bad_request3289 behaves like returning response status3290 returns bad_request3291 with invalid tag name3292 tag_name: "", status: :not_found3293 behaves like returning response status3294 returns not_found3295 tag_name: "%20", status: :bad_request3296 behaves like returning response status3297 returns bad_request3298 with invalid version3299 version: " ", status: :bad_request3300 behaves like returning response status3301 returns bad_request3302 version: "", status: :bad_request3303 behaves like returning response status3304 returns bad_request3305 version: nil, status: :bad_request3306 behaves like returning response status3307 returns bad_request3308 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3309 behaves like reject create package tag request3310 behaves like returning response status3311 returns not_found3312 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3313 behaves like reject create package tag request3314 behaves like returning response status3315 returns not_found3316 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3317 behaves like reject create package tag request3318 behaves like returning response status3319 returns not_found3320 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3321 behaves like reject create package tag request3322 behaves like returning response status3323 returns not_found3324 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3325 behaves like reject create package tag request3326 behaves like returning response status3327 returns not_found3328 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3329 behaves like reject create package tag request3330 behaves like returning response status3331 returns not_found3332 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3333 behaves like reject create package tag request3334 behaves like returning response status3335 returns not_found3336 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3337 behaves like reject create package tag request3338 behaves like returning response status3339 returns not_found3340 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found3341 behaves like reject create package tag request3342 behaves like returning response status3343 returns not_found3344 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3345 behaves like reject create package tag request3346 behaves like returning response status3347 returns not_found3348 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3349 behaves like reject create package tag request3350 behaves like returning response status3351 returns forbidden3352 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3353 behaves like accept create package tag request3354 with valid package name3355 creates the package tag3356 returns a valid response3357 behaves like returning response status3358 returns no_content3359 with already existing tag3360 reuses existing tag3361 returns a valid response3362 behaves like returning response status3363 returns no_content3364 with invalid package name3365 package_name: "unknown", status: :not_found3366 behaves like returning response status3367 returns not_found3368 package_name: "", status: :not_found3369 behaves like returning response status3370 returns not_found3371 package_name: "%20", status: :bad_request3372 behaves like returning response status3373 returns bad_request3374 with invalid tag name3375 tag_name: "", status: :not_found3376 behaves like returning response status3377 returns not_found3378 tag_name: "%20", status: :bad_request3379 behaves like returning response status3380 returns bad_request3381 with invalid version3382 version: " ", status: :bad_request3383 behaves like returning response status3384 returns bad_request3385 version: "", status: :bad_request3386 behaves like returning response status3387 returns bad_request3388 version: nil, status: :bad_request3389 behaves like returning response status3390 returns bad_request3391 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3392 behaves like reject create package tag request3393 behaves like returning response status3394 returns not_found3395 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3396 behaves like reject create package tag request3397 behaves like returning response status3398 returns not_found3399 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3400 behaves like reject create package tag request3401 behaves like returning response status3402 returns not_found3403 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3404 behaves like reject create package tag request3405 behaves like returning response status3406 returns not_found3407 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3408 behaves like reject create package tag request3409 behaves like returning response status3410 returns not_found3411 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3412 behaves like reject create package tag request3413 behaves like returning response status3414 returns not_found3415 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3416 behaves like reject create package tag request3417 behaves like returning response status3418 returns not_found3419 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3420 behaves like reject create package tag request3421 behaves like returning response status3422 returns not_found3423 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found3424 behaves like reject create package tag request3425 behaves like returning response status3426 returns not_found3427 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3428 behaves like reject create package tag request3429 behaves like returning response status3430 returns forbidden3431 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3432 behaves like reject create package tag request3433 behaves like returning response status3434 returns forbidden3435 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3436 behaves like accept create package tag request3437 with valid package name3438 creates the package tag3439 returns a valid response3440 behaves like returning response status3441 returns no_content3442 with already existing tag3443 reuses existing tag3444 returns a valid response3445 behaves like returning response status3446 returns no_content3447 with invalid package name3448 package_name: "unknown", status: :not_found3449 behaves like returning response status3450 returns not_found3451 package_name: "", status: :not_found3452 behaves like returning response status3453 returns not_found3454 package_name: "%20", status: :bad_request3455 behaves like returning response status3456 returns bad_request3457 with invalid tag name3458 tag_name: "", status: :not_found3459 behaves like returning response status3460 returns not_found3461 tag_name: "%20", status: :bad_request3462 behaves like returning response status3463 returns bad_request3464 with invalid version3465 version: " ", status: :bad_request3466 behaves like returning response status3467 returns bad_request3468 version: "", status: :bad_request3469 behaves like returning response status3470 returns bad_request3471 version: nil, status: :bad_request3472 behaves like returning response status3473 returns bad_request3474 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3475 behaves like reject create package tag request3476 behaves like returning response status3477 returns not_found3478 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3479 behaves like reject create package tag request3480 behaves like returning response status3481 returns not_found3482 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3483 behaves like reject create package tag request3484 behaves like returning response status3485 returns not_found3486 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3487 behaves like reject create package tag request3488 behaves like returning response status3489 returns not_found3490 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3491 behaves like reject create package tag request3492 behaves like returning response status3493 returns not_found3494 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3495 behaves like reject create package tag request3496 behaves like returning response status3497 returns not_found3498 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3499 behaves like reject create package tag request3500 behaves like returning response status3501 returns not_found3502 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3503 behaves like reject create package tag request3504 behaves like returning response status3505 returns not_found3506 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3507 behaves like reject create package tag request3508 behaves like returning response status3509 returns not_found3510 with personal access token3511 behaves like handling different package names, visibilities and user roles3512 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3513 behaves like reject create package tag request3514 behaves like returning response status3515 returns forbidden3516 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3517 behaves like reject create package tag request3518 behaves like returning response status3519 returns forbidden3520 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3521 behaves like accept create package tag request3522 with valid package name3523 creates the package tag3524 returns a valid response3525 behaves like returning response status3526 returns no_content3527 with already existing tag3528 reuses existing tag3529 returns a valid response3530 behaves like returning response status3531 returns no_content3532 with invalid package name3533 package_name: "unknown", status: :not_found3534 behaves like returning response status3535 returns not_found3536 package_name: "", status: :not_found3537 behaves like returning response status3538 returns not_found3539 package_name: "%20", status: :bad_request3540 behaves like returning response status3541 returns bad_request3542 with invalid tag name3543 tag_name: "", status: :not_found3544 behaves like returning response status3545 returns not_found3546 tag_name: "%20", status: :bad_request3547 behaves like returning response status3548 returns bad_request3549 with invalid version3550 version: " ", status: :bad_request3551 behaves like returning response status3552 returns bad_request3553 version: "", status: :bad_request3554 behaves like returning response status3555 returns bad_request3556 version: nil, status: :bad_request3557 behaves like returning response status3558 returns bad_request3559 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3560 behaves like reject create package tag request3561 behaves like returning response status3562 returns not_found3563 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3564 behaves like reject create package tag request3565 behaves like returning response status3566 returns not_found3567 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3568 behaves like reject create package tag request3569 behaves like returning response status3570 returns not_found3571 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3572 behaves like reject create package tag request3573 behaves like returning response status3574 returns not_found3575 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3576 behaves like reject create package tag request3577 behaves like returning response status3578 returns not_found3579 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3580 behaves like reject create package tag request3581 behaves like returning response status3582 returns not_found3583 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3584 behaves like reject create package tag request3585 behaves like returning response status3586 returns not_found3587 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3588 behaves like reject create package tag request3589 behaves like returning response status3590 returns not_found3591 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found3592 behaves like reject create package tag request3593 behaves like returning response status3594 returns not_found3595 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3596 behaves like reject create package tag request3597 behaves like returning response status3598 returns not_found3599 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3600 behaves like reject create package tag request3601 behaves like returning response status3602 returns forbidden3603 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3604 behaves like accept create package tag request3605 with valid package name3606 creates the package tag3607 returns a valid response3608 behaves like returning response status3609 returns no_content3610 with already existing tag3611 reuses existing tag3612 returns a valid response3613 behaves like returning response status3614 returns no_content3615 with invalid package name3616 package_name: "unknown", status: :not_found3617 behaves like returning response status3618 returns not_found3619 package_name: "", status: :not_found3620 behaves like returning response status3621 returns not_found3622 package_name: "%20", status: :bad_request3623 behaves like returning response status3624 returns bad_request3625 with invalid tag name3626 tag_name: "", status: :not_found3627 behaves like returning response status3628 returns not_found3629 tag_name: "%20", status: :bad_request3630 behaves like returning response status3631 returns bad_request3632 with invalid version3633 version: " ", status: :bad_request3634 behaves like returning response status3635 returns bad_request3636 version: "", status: :bad_request3637 behaves like returning response status3638 returns bad_request3639 version: nil, status: :bad_request3640 behaves like returning response status3641 returns bad_request3642 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3643 behaves like reject create package tag request3644 behaves like returning response status3645 returns not_found3646 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3647 behaves like reject create package tag request3648 behaves like returning response status3649 returns not_found3650 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3651 behaves like reject create package tag request3652 behaves like returning response status3653 returns not_found3654 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3655 behaves like reject create package tag request3656 behaves like returning response status3657 returns not_found3658 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3659 behaves like reject create package tag request3660 behaves like returning response status3661 returns not_found3662 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3663 behaves like reject create package tag request3664 behaves like returning response status3665 returns not_found3666 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3667 behaves like reject create package tag request3668 behaves like returning response status3669 returns not_found3670 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3671 behaves like reject create package tag request3672 behaves like returning response status3673 returns not_found3674 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found3675 behaves like reject create package tag request3676 behaves like returning response status3677 returns not_found3678 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3679 behaves like reject create package tag request3680 behaves like returning response status3681 returns forbidden3682 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3683 behaves like reject create package tag request3684 behaves like returning response status3685 returns forbidden3686 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3687 behaves like accept create package tag request3688 with valid package name3689 creates the package tag3690 returns a valid response3691 behaves like returning response status3692 returns no_content3693 with already existing tag3694 reuses existing tag3695 returns a valid response3696 behaves like returning response status3697 returns no_content3698 with invalid package name3699 package_name: "unknown", status: :not_found3700 behaves like returning response status3701 returns not_found3702 package_name: "", status: :not_found3703 behaves like returning response status3704 returns not_found3705 package_name: "%20", status: :bad_request3706 behaves like returning response status3707 returns bad_request3708 with invalid tag name3709 tag_name: "", status: :not_found3710 behaves like returning response status3711 returns not_found3712 tag_name: "%20", status: :bad_request3713 behaves like returning response status3714 returns bad_request3715 with invalid version3716 version: " ", status: :bad_request3717 behaves like returning response status3718 returns bad_request3719 version: "", status: :bad_request3720 behaves like returning response status3721 returns bad_request3722 version: nil, status: :bad_request3723 behaves like returning response status3724 returns bad_request3725 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3726 behaves like reject create package tag request3727 behaves like returning response status3728 returns not_found3729 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3730 behaves like reject create package tag request3731 behaves like returning response status3732 returns not_found3733 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3734 behaves like reject create package tag request3735 behaves like returning response status3736 returns not_found3737 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3738 behaves like reject create package tag request3739 behaves like returning response status3740 returns not_found3741 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3742 behaves like reject create package tag request3743 behaves like returning response status3744 returns not_found3745 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3746 behaves like reject create package tag request3747 behaves like returning response status3748 returns not_found3749 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3750 behaves like reject create package tag request3751 behaves like returning response status3752 returns not_found3753 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3754 behaves like reject create package tag request3755 behaves like returning response status3756 returns not_found3757 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3758 behaves like reject create package tag request3759 behaves like returning response status3760 returns not_found3761 DELETE /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag3762 behaves like handling delete dist tag requests3763 with a group namespace3764 behaves like handling all conditions3765 with oauth token3766 behaves like handling different package names, visibilities and user roles3767 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3768 behaves like reject delete package tag request3769 behaves like returning response status3770 returns forbidden3771 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3772 behaves like reject delete package tag request3773 behaves like returning response status3774 returns forbidden3775 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3776 behaves like accept delete package tag request3777 with valid package name3778 returns a valid response3779 destroy the package tag3780 behaves like returning response status3781 returns no_content3782 with tag from other package3783 behaves like returning response status3784 returns not_found3785 with invalid package name3786 package_name: "unknown", status: :not_found3787 behaves like returning response status3788 returns not_found3789 package_name: "", status: :not_found3790 behaves like returning response status3791 returns not_found3792 package_name: "%20", status: :bad_request3793 behaves like returning response status3794 returns bad_request3795 with invalid tag name3796 tag_name: "unknown", status: :not_found3797 behaves like returning response status3798 returns not_found3799 tag_name: "", status: :not_found3800 behaves like returning response status3801 returns not_found3802 tag_name: "%20", status: :bad_request3803 behaves like returning response status3804 returns bad_request3805 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3806 behaves like reject delete package tag request3807 behaves like returning response status3808 returns not_found3809 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3810 behaves like reject delete package tag request3811 behaves like returning response status3812 returns not_found3813 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3814 behaves like reject delete package tag request3815 behaves like returning response status3816 returns not_found3817 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3818 behaves like reject delete package tag request3819 behaves like returning response status3820 returns not_found3821 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3822 behaves like reject delete package tag request3823 behaves like returning response status3824 returns not_found3825 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3826 behaves like reject delete package tag request3827 behaves like returning response status3828 returns not_found3829 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3830 behaves like reject delete package tag request3831 behaves like returning response status3832 returns not_found3833 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3834 behaves like reject delete package tag request3835 behaves like returning response status3836 returns not_found3837 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3838 behaves like reject delete package tag request3839 behaves like returning response status3840 returns not_found3841 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3842 behaves like reject delete package tag request3843 behaves like returning response status3844 returns not_found3845 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3846 behaves like reject delete package tag request3847 behaves like returning response status3848 returns forbidden3849 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3850 behaves like accept delete package tag request3851 with valid package name3852 returns a valid response3853 destroy the package tag3854 behaves like returning response status3855 returns no_content3856 with tag from other package3857 behaves like returning response status3858 returns not_found3859 with invalid package name3860 package_name: "unknown", status: :not_found3861 behaves like returning response status3862 returns not_found3863 package_name: "", status: :not_found3864 behaves like returning response status3865 returns not_found3866 package_name: "%20", status: :bad_request3867 behaves like returning response status3868 returns bad_request3869 with invalid tag name3870 tag_name: "unknown", status: :not_found3871 behaves like returning response status3872 returns not_found3873 tag_name: "", status: :not_found3874 behaves like returning response status3875 returns not_found3876 tag_name: "%20", status: :bad_request3877 behaves like returning response status3878 returns bad_request3879 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3880 behaves like reject delete package tag request3881 behaves like returning response status3882 returns not_found3883 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3884 behaves like reject delete package tag request3885 behaves like returning response status3886 returns not_found3887 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3888 behaves like reject delete package tag request3889 behaves like returning response status3890 returns not_found3891 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3892 behaves like reject delete package tag request3893 behaves like returning response status3894 returns not_found3895 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3896 behaves like reject delete package tag request3897 behaves like returning response status3898 returns not_found3899 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3900 behaves like reject delete package tag request3901 behaves like returning response status3902 returns not_found3903 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3904 behaves like reject delete package tag request3905 behaves like returning response status3906 returns not_found3907 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3908 behaves like reject delete package tag request3909 behaves like returning response status3910 returns not_found3911 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3912 behaves like reject delete package tag request3913 behaves like returning response status3914 returns not_found3915 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3916 behaves like reject delete package tag request3917 behaves like returning response status3918 returns forbidden3919 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3920 behaves like reject delete package tag request3921 behaves like returning response status3922 returns forbidden3923 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3924 behaves like accept delete package tag request3925 with valid package name3926 returns a valid response3927 destroy the package tag3928 behaves like returning response status3929 returns no_content3930 with tag from other package3931 behaves like returning response status3932 returns not_found3933 with invalid package name3934 package_name: "unknown", status: :not_found3935 behaves like returning response status3936 returns not_found3937 package_name: "", status: :not_found3938 behaves like returning response status3939 returns not_found3940 package_name: "%20", status: :bad_request3941 behaves like returning response status3942 returns bad_request3943 with invalid tag name3944 tag_name: "unknown", status: :not_found3945 behaves like returning response status3946 returns not_found3947 tag_name: "", status: :not_found3948 behaves like returning response status3949 returns not_found3950 tag_name: "%20", status: :bad_request3951 behaves like returning response status3952 returns bad_request3953 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3954 behaves like reject delete package tag request3955 behaves like returning response status3956 returns not_found3957 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3958 behaves like reject delete package tag request3959 behaves like returning response status3960 returns not_found3961 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3962 behaves like reject delete package tag request3963 behaves like returning response status3964 returns not_found3965 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3966 behaves like reject delete package tag request3967 behaves like returning response status3968 returns not_found3969 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3970 behaves like reject delete package tag request3971 behaves like returning response status3972 returns not_found3973 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3974 behaves like reject delete package tag request3975 behaves like returning response status3976 returns not_found3977 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3978 behaves like reject delete package tag request3979 behaves like returning response status3980 returns not_found3981 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3982 behaves like reject delete package tag request3983 behaves like returning response status3984 returns not_found3985 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3986 behaves like reject delete package tag request3987 behaves like returning response status3988 returns not_found3989 with personal access token3990 behaves like handling different package names, visibilities and user roles3991 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3992 behaves like reject delete package tag request3993 behaves like returning response status3994 returns forbidden3995 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3996 behaves like reject delete package tag request3997 behaves like returning response status3998 returns forbidden3999 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4000 behaves like accept delete package tag request4001 with valid package name4002 returns a valid response4003 destroy the package tag4004 behaves like returning response status4005 returns no_content4006 with tag from other package4007 behaves like returning response status4008 returns not_found4009 with invalid package name4010 package_name: "unknown", status: :not_found4011 behaves like returning response status4012 returns not_found4013 package_name: "", status: :not_found4014 behaves like returning response status4015 returns not_found4016 package_name: "%20", status: :bad_request4017 behaves like returning response status4018 returns bad_request4019 with invalid tag name4020 tag_name: "unknown", status: :not_found4021 behaves like returning response status4022 returns not_found4023 tag_name: "", status: :not_found4024 behaves like returning response status4025 returns not_found4026 tag_name: "%20", status: :bad_request4027 behaves like returning response status4028 returns bad_request4029 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4030 behaves like reject delete package tag request4031 behaves like returning response status4032 returns not_found4033 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4034 behaves like reject delete package tag request4035 behaves like returning response status4036 returns not_found4037 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4038 behaves like reject delete package tag request4039 behaves like returning response status4040 returns not_found4041 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4042 behaves like reject delete package tag request4043 behaves like returning response status4044 returns not_found4045 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4046 behaves like reject delete package tag request4047 behaves like returning response status4048 returns not_found4049 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4050 behaves like reject delete package tag request4051 behaves like returning response status4052 returns not_found4053 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4054 behaves like reject delete package tag request4055 behaves like returning response status4056 returns not_found4057 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4058 behaves like reject delete package tag request4059 behaves like returning response status4060 returns not_found4061 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4062 behaves like reject delete package tag request4063 behaves like returning response status4064 returns not_found4065 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4066 behaves like reject delete package tag request4067 behaves like returning response status4068 returns not_found4069 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4070 behaves like reject delete package tag request4071 behaves like returning response status4072 returns forbidden4073 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4074 behaves like accept delete package tag request4075 with valid package name4076 returns a valid response4077 destroy the package tag4078 behaves like returning response status4079 returns no_content4080 with tag from other package4081 behaves like returning response status4082 returns not_found4083 with invalid package name4084 package_name: "unknown", status: :not_found4085 behaves like returning response status4086 returns not_found4087 package_name: "", status: :not_found4088 behaves like returning response status4089 returns not_found4090 package_name: "%20", status: :bad_request4091 behaves like returning response status4092 returns bad_request4093 with invalid tag name4094 tag_name: "unknown", status: :not_found4095 behaves like returning response status4096 returns not_found4097 tag_name: "", status: :not_found4098 behaves like returning response status4099 returns not_found4100 tag_name: "%20", status: :bad_request4101 behaves like returning response status4102 returns bad_request4103 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4104 behaves like reject delete package tag request4105 behaves like returning response status4106 returns not_found4107 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4108 behaves like reject delete package tag request4109 behaves like returning response status4110 returns not_found4111 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4112 behaves like reject delete package tag request4113 behaves like returning response status4114 returns not_found4115 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4116 behaves like reject delete package tag request4117 behaves like returning response status4118 returns not_found4119 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4120 behaves like reject delete package tag request4121 behaves like returning response status4122 returns not_found4123 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4124 behaves like reject delete package tag request4125 behaves like returning response status4126 returns not_found4127 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4128 behaves like reject delete package tag request4129 behaves like returning response status4130 returns not_found4131 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4132 behaves like reject delete package tag request4133 behaves like returning response status4134 returns not_found4135 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4136 behaves like reject delete package tag request4137 behaves like returning response status4138 returns not_found4139 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4140 behaves like reject delete package tag request4141 behaves like returning response status4142 returns forbidden4143 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4144 behaves like reject delete package tag request4145 behaves like returning response status4146 returns forbidden4147 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4148 behaves like accept delete package tag request4149 with valid package name4150 returns a valid response4151 destroy the package tag4152 behaves like returning response status4153 returns no_content4154 with tag from other package4155 behaves like returning response status4156 returns not_found4157 with invalid package name4158 package_name: "unknown", status: :not_found4159 behaves like returning response status4160 returns not_found4161 package_name: "", status: :not_found4162 behaves like returning response status4163 returns not_found4164 package_name: "%20", status: :bad_request4165 behaves like returning response status4166 returns bad_request4167 with invalid tag name4168 tag_name: "unknown", status: :not_found4169 behaves like returning response status4170 returns not_found4171 tag_name: "", status: :not_found4172 behaves like returning response status4173 returns not_found4174 tag_name: "%20", status: :bad_request4175 behaves like returning response status4176 returns bad_request4177 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4178 behaves like reject delete package tag request4179 behaves like returning response status4180 returns not_found4181 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4182 behaves like reject delete package tag request4183 behaves like returning response status4184 returns not_found4185 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4186 behaves like reject delete package tag request4187 behaves like returning response status4188 returns not_found4189 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4190 behaves like reject delete package tag request4191 behaves like returning response status4192 returns not_found4193 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4194 behaves like reject delete package tag request4195 behaves like returning response status4196 returns not_found4197 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4198 behaves like reject delete package tag request4199 behaves like returning response status4200 returns not_found4201 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4202 behaves like reject delete package tag request4203 behaves like returning response status4204 returns not_found4205 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4206 behaves like reject delete package tag request4207 behaves like returning response status4208 returns not_found4209 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4210 behaves like reject delete package tag request4211 behaves like returning response status4212 returns not_found4213 with a user namespace4214 behaves like handling all conditions4215 with oauth token4216 behaves like handling different package names, visibilities and user roles4217 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4218 behaves like reject delete package tag request4219 behaves like returning response status4220 returns forbidden4221 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4222 behaves like reject delete package tag request4223 behaves like returning response status4224 returns forbidden4225 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4226 behaves like accept delete package tag request4227 with valid package name4228 returns a valid response4229 destroy the package tag4230 behaves like returning response status4231 returns no_content4232 with tag from other package4233 behaves like returning response status4234 returns not_found4235 with invalid package name4236 package_name: "unknown", status: :not_found4237 behaves like returning response status4238 returns not_found4239 package_name: "", status: :not_found4240 behaves like returning response status4241 returns not_found4242 package_name: "%20", status: :bad_request4243 behaves like returning response status4244 returns bad_request4245 with invalid tag name4246 tag_name: "unknown", status: :not_found4247 behaves like returning response status4248 returns not_found4249 tag_name: "", status: :not_found4250 behaves like returning response status4251 returns not_found4252 tag_name: "%20", status: :bad_request4253 behaves like returning response status4254 returns bad_request4255 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4256 behaves like reject delete package tag request4257 behaves like returning response status4258 returns not_found4259 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4260 behaves like reject delete package tag request4261 behaves like returning response status4262 returns not_found4263 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4264 behaves like reject delete package tag request4265 behaves like returning response status4266 returns not_found4267 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4268 behaves like reject delete package tag request4269 behaves like returning response status4270 returns not_found4271 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4272 behaves like reject delete package tag request4273 behaves like returning response status4274 returns not_found4275 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4276 behaves like reject delete package tag request4277 behaves like returning response status4278 returns not_found4279 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4280 behaves like reject delete package tag request4281 behaves like returning response status4282 returns not_found4283 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4284 behaves like reject delete package tag request4285 behaves like returning response status4286 returns not_found4287 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4288 behaves like reject delete package tag request4289 behaves like returning response status4290 returns not_found4291 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4292 behaves like reject delete package tag request4293 behaves like returning response status4294 returns not_found4295 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4296 behaves like reject delete package tag request4297 behaves like returning response status4298 returns forbidden4299 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4300 behaves like accept delete package tag request4301 with valid package name4302 returns a valid response4303 destroy the package tag4304 behaves like returning response status4305 returns no_content4306 with tag from other package4307 behaves like returning response status4308 returns not_found4309 with invalid package name4310 package_name: "unknown", status: :not_found4311 behaves like returning response status4312 returns not_found4313 package_name: "", status: :not_found4314 behaves like returning response status4315 returns not_found4316 package_name: "%20", status: :bad_request4317 behaves like returning response status4318 returns bad_request4319 with invalid tag name4320 tag_name: "unknown", status: :not_found4321 behaves like returning response status4322 returns not_found4323 tag_name: "", status: :not_found4324 behaves like returning response status4325 returns not_found4326 tag_name: "%20", status: :bad_request4327 behaves like returning response status4328 returns bad_request4329 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4330 behaves like reject delete package tag request4331 behaves like returning response status4332 returns not_found4333 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4334 behaves like reject delete package tag request4335 behaves like returning response status4336 returns not_found4337 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4338 behaves like reject delete package tag request4339 behaves like returning response status4340 returns not_found4341 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4342 behaves like reject delete package tag request4343 behaves like returning response status4344 returns not_found4345 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4346 behaves like reject delete package tag request4347 behaves like returning response status4348 returns not_found4349 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4350 behaves like reject delete package tag request4351 behaves like returning response status4352 returns not_found4353 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4354 behaves like reject delete package tag request4355 behaves like returning response status4356 returns not_found4357 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4358 behaves like reject delete package tag request4359 behaves like returning response status4360 returns not_found4361 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4362 behaves like reject delete package tag request4363 behaves like returning response status4364 returns not_found4365 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4366 behaves like reject delete package tag request4367 behaves like returning response status4368 returns forbidden4369 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4370 behaves like reject delete package tag request4371 behaves like returning response status4372 returns forbidden4373 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4374 behaves like accept delete package tag request4375 with valid package name4376 returns a valid response4377 destroy the package tag4378 behaves like returning response status4379 returns no_content4380 with tag from other package4381 behaves like returning response status4382 returns not_found4383 with invalid package name4384 package_name: "unknown", status: :not_found4385 behaves like returning response status4386 returns not_found4387 package_name: "", status: :not_found4388 behaves like returning response status4389 returns not_found4390 package_name: "%20", status: :bad_request4391 behaves like returning response status4392 returns bad_request4393 with invalid tag name4394 tag_name: "unknown", status: :not_found4395 behaves like returning response status4396 returns not_found4397 tag_name: "", status: :not_found4398 behaves like returning response status4399 returns not_found4400 tag_name: "%20", status: :bad_request4401 behaves like returning response status4402 returns bad_request4403 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4404 behaves like reject delete package tag request4405 behaves like returning response status4406 returns not_found4407 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4408 behaves like reject delete package tag request4409 behaves like returning response status4410 returns not_found4411 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4412 behaves like reject delete package tag request4413 behaves like returning response status4414 returns not_found4415 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4416 behaves like reject delete package tag request4417 behaves like returning response status4418 returns not_found4419 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4420 behaves like reject delete package tag request4421 behaves like returning response status4422 returns not_found4423 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4424 behaves like reject delete package tag request4425 behaves like returning response status4426 returns not_found4427 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4428 behaves like reject delete package tag request4429 behaves like returning response status4430 returns not_found4431 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4432 behaves like reject delete package tag request4433 behaves like returning response status4434 returns not_found4435 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4436 behaves like reject delete package tag request4437 behaves like returning response status4438 returns not_found4439 with personal access token4440 behaves like handling different package names, visibilities and user roles4441 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4442 behaves like reject delete package tag request4443 behaves like returning response status4444 returns forbidden4445 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4446 behaves like reject delete package tag request4447 behaves like returning response status4448 returns forbidden4449 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4450 behaves like accept delete package tag request4451 with valid package name4452 returns a valid response4453 destroy the package tag4454 behaves like returning response status4455 returns no_content4456 with tag from other package4457 behaves like returning response status4458 returns not_found4459 with invalid package name4460 package_name: "unknown", status: :not_found4461 behaves like returning response status4462 returns not_found4463 package_name: "", status: :not_found4464 behaves like returning response status4465 returns not_found4466 package_name: "%20", status: :bad_request4467 behaves like returning response status4468 returns bad_request4469 with invalid tag name4470 tag_name: "unknown", status: :not_found4471 behaves like returning response status4472 returns not_found4473 tag_name: "", status: :not_found4474 behaves like returning response status4475 returns not_found4476 tag_name: "%20", status: :bad_request4477 behaves like returning response status4478 returns bad_request4479 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4480 behaves like reject delete package tag request4481 behaves like returning response status4482 returns not_found4483 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4484 behaves like reject delete package tag request4485 behaves like returning response status4486 returns not_found4487 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4488 behaves like reject delete package tag request4489 behaves like returning response status4490 returns not_found4491 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4492 behaves like reject delete package tag request4493 behaves like returning response status4494 returns not_found4495 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4496 behaves like reject delete package tag request4497 behaves like returning response status4498 returns not_found4499 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4500 behaves like reject delete package tag request4501 behaves like returning response status4502 returns not_found4503 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4504 behaves like reject delete package tag request4505 behaves like returning response status4506 returns not_found4507 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4508 behaves like reject delete package tag request4509 behaves like returning response status4510 returns not_found4511 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4512 behaves like reject delete package tag request4513 behaves like returning response status4514 returns not_found4515 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4516 behaves like reject delete package tag request4517 behaves like returning response status4518 returns not_found4519 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4520 behaves like reject delete package tag request4521 behaves like returning response status4522 returns forbidden4523 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4524 behaves like accept delete package tag request4525 with valid package name4526 returns a valid response4527 destroy the package tag4528 behaves like returning response status4529 returns no_content4530 with tag from other package4531 behaves like returning response status4532 returns not_found4533 with invalid package name4534 package_name: "unknown", status: :not_found4535 behaves like returning response status4536 returns not_found4537 package_name: "", status: :not_found4538 behaves like returning response status4539 returns not_found4540 package_name: "%20", status: :bad_request4541 behaves like returning response status4542 returns bad_request4543 with invalid tag name4544 tag_name: "unknown", status: :not_found4545 behaves like returning response status4546 returns not_found4547 tag_name: "", status: :not_found4548 behaves like returning response status4549 returns not_found4550 tag_name: "%20", status: :bad_request4551 behaves like returning response status4552 returns bad_request4553 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4554 behaves like reject delete package tag request4555 behaves like returning response status4556 returns not_found4557 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4558 behaves like reject delete package tag request4559 behaves like returning response status4560 returns not_found4561 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4562 behaves like reject delete package tag request4563 behaves like returning response status4564 returns not_found4565 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4566 behaves like reject delete package tag request4567 behaves like returning response status4568 returns not_found4569 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4570 behaves like reject delete package tag request4571 behaves like returning response status4572 returns not_found4573 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4574 behaves like reject delete package tag request4575 behaves like returning response status4576 returns not_found4577 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found4578 behaves like reject delete package tag request4579 behaves like returning response status4580 returns not_found4581 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4582 behaves like reject delete package tag request4583 behaves like returning response status4584 returns not_found4585 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4586 behaves like reject delete package tag request4587 behaves like returning response status4588 returns not_found4589 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4590 behaves like reject delete package tag request4591 behaves like returning response status4592 returns forbidden4593 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4594 behaves like reject delete package tag request4595 behaves like returning response status4596 returns forbidden4597 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4598 behaves like accept delete package tag request4599 with valid package name4600 returns a valid response4601 destroy the package tag4602 behaves like returning response status4603 returns no_content4604 with tag from other package4605 behaves like returning response status4606 returns not_found4607 with invalid package name4608 package_name: "unknown", status: :not_found4609 behaves like returning response status4610 returns not_found4611 package_name: "", status: :not_found4612 behaves like returning response status4613 returns not_found4614 package_name: "%20", status: :bad_request4615 behaves like returning response status4616 returns bad_request4617 with invalid tag name4618 tag_name: "unknown", status: :not_found4619 behaves like returning response status4620 returns not_found4621 tag_name: "", status: :not_found4622 behaves like returning response status4623 returns not_found4624 tag_name: "%20", status: :bad_request4625 behaves like returning response status4626 returns bad_request4627 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4628 behaves like reject delete package tag request4629 behaves like returning response status4630 returns not_found4631 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4632 behaves like reject delete package tag request4633 behaves like returning response status4634 returns not_found4635 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4636 behaves like reject delete package tag request4637 behaves like returning response status4638 returns not_found4639 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4640 behaves like reject delete package tag request4641 behaves like returning response status4642 returns not_found4643 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4644 behaves like reject delete package tag request4645 behaves like returning response status4646 returns not_found4647 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4648 behaves like reject delete package tag request4649 behaves like returning response status4650 returns not_found4651 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden4652 behaves like reject delete package tag request4653 behaves like returning response status4654 returns not_found4655 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4656 behaves like reject delete package tag request4657 behaves like returning response status4658 returns not_found4659 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4660 behaves like reject delete package tag request4661 behaves like returning response status4662 returns not_found4663Projects::MergeRequestsController4664 GET commit_change_content4665 renders commit_change_content template4666 GET show4667 with view param4668 saves the preferred diff view in a cookie4669 when merge request is unchecked4670 checks mergeability asynchronously4671 as html4672 sets the endpoint_metadata_url4673 renders merge request page4674 logs the view with Gitlab::Search::RecentMergeRequests4675 when diff files were cleaned4676 renders page when diff size is not persisted and diff_refs does not exist4677 when diff is missing4678 renders merge request page4679 that is invalid4680 renders merge request page4681 when project has moved4682 redirects from an old merge request correctly4683 redirects from an old merge request commits correctly4684 when user is setting notes filters4685 behaves like issuable notes filter4686 sets discussion filter4687 expires notes e-tag cache for issuable if filter changed4688 does not expires notes e-tag cache for issuable if filter did not change4689 does not set notes filter when database is in read-only mode4690 does not set notes filter when persist_filter param is false4691 returns only user comments4692 returns only activity notes4693 when filter is set to "only_comments"4694 does not merge label event notes4695 as json4696 with basic serializer param4697 renders basic MR entity as json4698 with widget serializer param4699 renders widget MR entity as json4700 when no serialiser was passed4701 renders widget MR entity as json4702 that is invalid4703 renders merge request page4704 as diff4705 triggers workhorse to serve the request4706 as patch4707 triggers workhorse to serve the request4708 GET index4709 behaves like issuables list meta-data4710 creates indexed meta-data object for issuable notes and votes count4711 avoids N+1 queries4712 searching4713 works when sorting by created_asc4714 works when sorting by created_at_asc4715 works when sorting by created_date4716 works when sorting by created_desc4717 works when sorting by created_at_desc4718 works when sorting by id_asc4719 works when sorting by id_desc4720 works when sorting by updated_asc4721 works when sorting by updated_at_asc4722 works when sorting by updated_desc4723 works when sorting by updated_at_desc4724 works when sorting by title_asc4725 works when sorting by title_desc4726 works when sorting by closest_future_date4727 works when sorting by closest_future_date_asc4728 works when sorting by due_date4729 works when sorting by due_date_asc4730 works when sorting by due_date_desc4731 works when sorting by relative_position4732 works when sorting by relative_position_asc4733 works when sorting by weight4734 works when sorting by weight_asc4735 works when sorting by weight_desc4736 works when sorting by popularity4737 works when sorting by priority4738 works when sorting by label_priority4739 when given empty collection4740 doesn't execute any queries with false conditions4741 behaves like set sort order from user preference4742 #set_sort_order_from_user_preference4743 when database is in read-only mode4744 does not update user preference4745 when database is not in read-only mode4746 updates user preference4747 when page param4748 redirects to last_page if page number is larger than number of pages4749 redirects to specified page4750 does not redirect to external sites when provided a host field4751 when filtering by opened state4752 with opened merge requests4753 lists those merge requests4754 with reopened merge requests4755 lists those merge requests4756 behaves like issuable list with anonymous search disabled4757 when disable_anonymous_search is enabled4758 shows a flash message4759 when search param is not given4760 does not show a flash message4761 when user is signed-in4762 does not show a flash message4763 when format is not HTML4764 does not show a flash message4765 when disable_anonymous_search is disabled4766 does not show a flash message4767 PUT update4768 changing the assignee4769 limits the attributes exposed on the assignee4770 when user does not have access to update issue4771 responds with 4044772 there is no source project4773 closes MR without errors4774 allows editing of a closed merge request4775 does not allow to update target branch closed merge request4776 behaves like update invalid issuable4777 when updating causes conflicts4778 renders edit when format is html4779 renders json error message when format is json4780 when updating an invalid issuable4781 renders edit when merge request is invalid4782 two merge requests with the same source branch4783 does not allow a closed merge request to be reopened if another one is open4784 POST merge4785 when user cannot access4786 returns 4044787 when the merge request is not mergeable4788 returns :failed4789 when the sha parameter does not match the source SHA4790 returns :sha_mismatch4791 when the sha parameter matches the source SHA4792 returns :success4793 starts the merge immediately with permitted params4794 when squash is passed as 14795 updates the squash attribute on the MR to true4796 when squash is passed as 04797 updates the squash attribute on the MR to false4798 when a squash commit message is passed4799 passes the same message to SquashService4800 when merge when pipeline succeeds option is passed4801 returns :merge_when_pipeline_succeeds4802 sets the MR to merge when the pipeline succeeds4803 when project.only_allow_merge_if_pipeline_succeeds? is true4804 returns :merge_when_pipeline_succeeds4805 and head pipeline is not the current one4806 returns :failed4807 when auto merge has not been enabled yet4808 calls AutoMergeService#execute4809 when auto merge has already been enabled4810 calls AutoMergeService#update4811 only_allow_merge_if_all_discussions_are_resolved? setting4812 when enabled4813 with unresolved discussion4814 returns :failed4815 with all discussions resolved4816 returns :success4817 when disabled4818 with unresolved discussion4819 returns :success4820 with all discussions resolved4821 returns :success4822 DELETE destroy4823 denies access to users unless they're admin or project owner4824 when the user is owner4825 deletes the merge request4826 prevents deletion if destroy_confirm is not set4827 prevents deletion in JSON format if destroy_confirm is not set4828 GET commits4829 renders the commits template to a string4830 GET pipelines4831 with "enabled" builds on a public project4832 for a project owner4833 responds with serialized pipelines4834 for an unassociated user4835 responds with no pipelines4836 with private builds on a public project4837 for a project owner4838 responds with serialized pipelines4839 for an unassociated user4840 responds with no pipelines4841 from a project fork4842 with private builds4843 for the target project member4844 does not respond with serialized pipelines4845 for the source project member4846 responds with serialized pipelines4847 with public builds4848 for the target project member4849 does not respond with serialized pipelines4850 for the source project member4851 responds with serialized pipelines4852 with pagination4853 paginates the result4854 GET context commits4855 returns the commits for context commits4856 GET exposed_artifacts4857 permissions on a public project with private CI/CD4858 while signed out4859 responds with a 4044860 while signed in as an unrelated user4861 responds with a 4044862 when pipeline has jobs with exposed artifacts4863 when fetching exposed artifacts is in progress4864 sends polling interval4865 returns 204 HTTP status4866 when fetching exposed artifacts is completed4867 returns exposed artifacts4868 when pipeline does not have jobs with exposed artifacts4869 returns no content4870 GET coverage_reports4871 permissions on a public project with private CI/CD4872 while signed out4873 responds with a 4044874 while signed in as an unrelated user4875 responds with a 4044876 when pipeline has jobs with coverage reports4877 when processing coverage reports is in progress4878 sends polling interval4879 returns 204 HTTP status4880 when processing coverage reports is completed4881 returns coverage reports4882 when user created corrupted coverage reports4883 does not send polling interval4884 returns 400 HTTP status4885 when pipeline does not have jobs with coverage reports4886 returns no content4887 GET codequality_mr_diff_reports4888 permissions on a public project with private CI/CD4889 while signed out4890 responds with a 4044891 while signed in as an unrelated user4892 responds with a 4044893 when pipeline has jobs with codequality mr diff report4894 when processing codequality mr diff report is in progress4895 sends polling interval4896 returns 204 HTTP status4897 when processing codequality mr diff report is completed4898 returns codequality mr diff report4899 GET terraform_reports4900 permissions on a public project with private CI/CD4901 while signed out4902 responds with a 4044903 while signed in as an unrelated user4904 responds with a 4044905 when pipeline has jobs with terraform reports4906 when processing terraform reports is in progress4907 sends polling interval4908 returns 204 HTTP status4909 when processing terraform reports is completed4910 returns terraform reports4911 when user created corrupted terraform reports4912 does not send polling interval4913 returns 400 HTTP status4914 when pipeline does not have jobs with terraform reports4915 returns error4916 GET test_reports4917 permissions on a public project with private CI/CD4918 while signed out4919 responds with a 4044920 while signed in as an unrelated user4921 responds with a 4044922 when comparison is being processed4923 sends polling interval4924 returns 204 HTTP status4925 when comparison is done4926 does not send polling interval4927 returns 200 HTTP status4928 when user created corrupted test reports4929 does not send polling interval4930 returns 400 HTTP status4931 GET accessibility_reports4932 permissions on a public project with private CI/CD4933 while signed out4934 responds with a 4044935 while signed in as an unrelated user4936 responds with a 4044937 when pipeline has jobs with accessibility reports4938 when processing accessibility reports is in progress4939 sends polling interval4940 returns 204 HTTP status4941 when processing accessibility reports is completed4942 returns accessibility reports4943 when user created corrupted accessibility reports4944 does not send polling interval4945 returns 400 HTTP status4946 GET codequality_reports4947 permissions on a public project with private CI/CD4948 while signed out4949 responds with a 4044950 while signed in as an unrelated user4951 responds with a 4044952 when pipeline has jobs with codequality reports4953 when processing codequality reports is in progress4954 sends polling interval4955 returns 204 HTTP status4956 when processing codequality reports is completed4957 returns codequality reports4958 when pipeline has job without a codequality report4959 returns a 4004960 POST remove_wip4961 removes the draft status4962 renders MergeRequest as JSON4963 POST cancel_auto_merge4964 calls AutoMergeService4965 is expected to respond with numeric status code success4966 renders MergeRequest as JSON4967 POST assign_related_issues4968 shows a flash message on success4969 correctly pluralizes flash message on success4970 calls MergeRequests::AssignIssuesService4971 is skipped when not signed in4972 GET ci_environments_status4973 uses the explicitly linked deployments4974 the environment is from a forked project4975 links to the environment on that project4976 keeps queries in check4977 has no N+1 SQL issues for environments4978 when environment_target is 'merge_commit'4979 returns nothing4980 when is merged4981 returns the environment on the source project4982 when a merge request has multiple environments with deployments4983 exposes multiple environment statuses4984 when route map is not present in the project4985 does not have N+1 Gitaly requests for environments4986 when there is route map present in a project4987 does not have N+1 Gitaly requests for diff files4988 GET pipeline_status.json4989 when head_pipeline exists4990 returns a detailed head_pipeline status in json4991 with project member visibility on a public project4992 returns pipeline data to project members4993 returns blank OK response to non-project-members4994 when head_pipeline does not exist4995 returns blank OK response4996 POST #rebase4997 successfully4998 with skip_ci not specified4999 behaves like successful rebase scheduler5000 enqueues a RebaseWorker5001 with skip_ci enabled5002 behaves like successful rebase scheduler5003 enqueues a RebaseWorker5004 with skip_ci disabled5005 behaves like successful rebase scheduler5006 enqueues a RebaseWorker5007 with NOWAIT lock5008 returns a 4095009 when source branch is protected from force push5010 returns 4045011 with a forked project5012 user cannot push to source branch5013 returns 4045014 user can push to source branch5015 returns 2005016 GET discussions5017 when authenticated5018 returns 2005019 highlight preloading5020 with commit diff notes5021 preloads notes diffs highlights5022 with diff notes5023 preloads notes diffs highlights5024 does not preload highlights when diff note is resolved5026 behaves like discussions provider5027 returns the expected discussions5028 GET edit5029 responds successfully5030 assigns the noteable to make sure autocompletes work5031 POST export_csv5032 redirects to the merge request index5033 enqueues an IssuableExportCsvWorker worker5034Rack Attack global throttles5035 unauthenticated API requests5036 behaves like rate-limited unauthenticated requests5037 when the throttle is enabled5038 rejects requests over the rate limit5039 allows requests after throttling and then waiting for the next period5040 counts requests from different IPs separately5041 logs RackAttack info into structured logs5042 with custom response text5043 rejects requests over the rate limit5044 when the request is not matched by the throttle5045 does not throttle the requests5046 when the request is to the api internal endpoints5047 allows requests over the rate limit5048 when the request is authenticated by a runner token5049 does not count as unauthenticated5050 when the request is to a health endpoint5051 does not throttle the requests5052 when the request is to a container registry notification endpoint5053 does not throttle the requests5054 behaves like tracking when dry-run mode is set5055 does not throttle the requests when `*` is configured5056 logs RackAttack info into structured logs5057 when configured with the the throttled name in a list5058 does not throttle5059 when the throttle is disabled5060 allows requests over the rate limit5061 unauthenticated web requests5062 behaves like rate-limited unauthenticated requests5063 when the throttle is enabled5064 rejects requests over the rate limit5065 allows requests after throttling and then waiting for the next period5066 counts requests from different IPs separately5067 logs RackAttack info into structured logs5068 with custom response text5069 rejects requests over the rate limit5070 when the request is not matched by the throttle5071 does not throttle the requests5072 when the request is to the api internal endpoints5073 allows requests over the rate limit5074 when the request is authenticated by a runner token5075 does not count as unauthenticated5076 when the request is to a health endpoint5077 does not throttle the requests5078 when the request is to a container registry notification endpoint5079 does not throttle the requests5080 behaves like tracking when dry-run mode is set5081 does not throttle the requests when `*` is configured5082 logs RackAttack info into structured logs5083 when configured with the the throttled name in a list5084 does not throttle5085 when the throttle is disabled5086 allows requests over the rate limit5087 API requests from the frontend5088 when unauthenticated5089 behaves like rate-limited frontend API requests5090 with a CSRF token5091 uses the rate limit for web requests5092 without a CSRF session5093 always uses the rate limit for API requests5094 without a CSRF token5095 uses the rate limit for API requests5096 when authenticated5097 behaves like rate-limited frontend API requests5098 with a CSRF token5099 uses the rate limit for web requests5100 without a CSRF session5101 always uses the rate limit for API requests5102 without a CSRF token5103 uses the rate limit for API requests5104 API requests authenticated with personal access token5105 with the token in the query string5106 behaves like rate-limited user based token-authenticated requests5107 when the throttle is enabled5108 does not reject requests if the user is in the allowlist5109 when the throttle is enabled5110 rejects requests over the rate limit5111 allows requests after throttling and then waiting for the next period5112 counts requests from different requesters separately, even from the same IP5113 counts all requests from the same requesters, even via different IPs5114 logs RackAttack info into structured logs5115 behaves like tracking when dry-run mode is set5116 does not throttle the requests when `*` is configured5117 logs RackAttack info into structured logs5118 when configured with the the throttled name in a list5119 does not throttle5120 when the throttle is disabled5121 allows requests over the rate limit5122 with the token in the headers5123 behaves like rate-limited user based token-authenticated requests5124 when the throttle is enabled5125 does not reject requests if the user is in the allowlist5126 when the throttle is enabled5127 rejects requests over the rate limit5128 allows requests after throttling and then waiting for the next period5129 counts requests from different requesters separately, even from the same IP5130 counts all requests from the same requesters, even via different IPs5131 logs RackAttack info into structured logs5132 behaves like tracking when dry-run mode is set5133 does not throttle the requests when `*` is configured5134 logs RackAttack info into structured logs5135 when configured with the the throttled name in a list5136 does not throttle5137 when the throttle is disabled5138 allows requests over the rate limit5139 with the token in the OAuth headers5140 behaves like rate-limited user based token-authenticated requests5141 when the throttle is enabled5142 does not reject requests if the user is in the allowlist5143 when the throttle is enabled5144 rejects requests over the rate limit5145 allows requests after throttling and then waiting for the next period5146 counts requests from different requesters separately, even from the same IP5147 counts all requests from the same requesters, even via different IPs5148 logs RackAttack info into structured logs5149 behaves like tracking when dry-run mode is set5150 does not throttle the requests when `*` is configured5151 logs RackAttack info into structured logs5152 when configured with the the throttled name in a list5153 does not throttle5154 when the throttle is disabled5155 allows requests over the rate limit5156 with the token in basic auth5157 behaves like rate-limited user based token-authenticated requests5158 when the throttle is enabled5159 does not reject requests if the user is in the allowlist5160 when the throttle is enabled5161 rejects requests over the rate limit5162 allows requests after throttling and then waiting for the next period5163 counts requests from different requesters separately, even from the same IP5164 counts all requests from the same requesters, even via different IPs5165 logs RackAttack info into structured logs5166 behaves like tracking when dry-run mode is set5167 does not throttle the requests when `*` is configured5168 logs RackAttack info into structured logs5169 when configured with the the throttled name in a list5170 does not throttle5171 when the throttle is disabled5172 allows requests over the rate limit5173 with a read_api scope5174 with the token in the headers5175 behaves like rate-limited user based token-authenticated requests5176 when the throttle is enabled5177 does not reject requests if the user is in the allowlist5178 when the throttle is enabled5179 rejects requests over the rate limit5180 allows requests after throttling and then waiting for the next period5181 counts requests from different requesters separately, even from the same IP5182 counts all requests from the same requesters, even via different IPs5183 logs RackAttack info into structured logs5184 behaves like tracking when dry-run mode is set5185 does not throttle the requests when `*` is configured5186 logs RackAttack info into structured logs5187 when configured with the the throttled name in a list5188 does not throttle5189 when the throttle is disabled5190 allows requests over the rate limit5191 with the token in the OAuth headers5192 behaves like rate-limited user based token-authenticated requests5193 when the throttle is enabled5194 does not reject requests if the user is in the allowlist5195 when the throttle is enabled5196 rejects requests over the rate limit5197 allows requests after throttling and then waiting for the next period5198 counts requests from different requesters separately, even from the same IP5199 counts all requests from the same requesters, even via different IPs5200 logs RackAttack info into structured logs5201 behaves like tracking when dry-run mode is set5202 does not throttle the requests when `*` is configured5203 logs RackAttack info into structured logs5204 when configured with the the throttled name in a list5205 does not throttle5206 when the throttle is disabled5207 allows requests over the rate limit5208 API requests authenticated with OAuth token5209 with the token in the query string5210 behaves like rate-limited user based token-authenticated requests5211 when the throttle is enabled5212 does not reject requests if the user is in the allowlist5213 when the throttle is enabled5214 rejects requests over the rate limit5215 allows requests after throttling and then waiting for the next period5216 counts requests from different requesters separately, even from the same IP5217 counts all requests from the same requesters, even via different IPs5218 logs RackAttack info into structured logs5219 behaves like tracking when dry-run mode is set5220 does not throttle the requests when `*` is configured5221 logs RackAttack info into structured logs5222 when configured with the the throttled name in a list5223 does not throttle5224 when the throttle is disabled5225 allows requests over the rate limit5226 with the token in the headers5227 behaves like rate-limited user based token-authenticated requests5228 when the throttle is enabled5229 does not reject requests if the user is in the allowlist5230 when the throttle is enabled5231 rejects requests over the rate limit5232 allows requests after throttling and then waiting for the next period5233 counts requests from different requesters separately, even from the same IP5234 counts all requests from the same requesters, even via different IPs5235 logs RackAttack info into structured logs5236 behaves like tracking when dry-run mode is set5237 does not throttle the requests when `*` is configured5238 logs RackAttack info into structured logs5239 when configured with the the throttled name in a list5240 does not throttle5241 when the throttle is disabled5242 allows requests over the rate limit5243 with a read_api scope5244 behaves like rate-limited user based token-authenticated requests5245 when the throttle is enabled5246 does not reject requests if the user is in the allowlist5247 when the throttle is enabled5248 rejects requests over the rate limit5249 allows requests after throttling and then waiting for the next period5250 counts requests from different requesters separately, even from the same IP5251 counts all requests from the same requesters, even via different IPs5252 logs RackAttack info into structured logs5253 behaves like tracking when dry-run mode is set5254 does not throttle the requests when `*` is configured5255 logs RackAttack info into structured logs5256 when configured with the the throttled name in a list5257 does not throttle5258 when the throttle is disabled5259 allows requests over the rate limit5260 "web" (non-API) requests authenticated with RSS token5261 with the token in the query string5262 behaves like rate-limited user based token-authenticated requests5263 when the throttle is enabled5264 does not reject requests if the user is in the allowlist5265 when the throttle is enabled5266 rejects requests over the rate limit5267 allows requests after throttling and then waiting for the next period5268 counts requests from different requesters separately, even from the same IP5269 counts all requests from the same requesters, even via different IPs5270 logs RackAttack info into structured logs5271 behaves like tracking when dry-run mode is set5272 does not throttle the requests when `*` is configured5273 logs RackAttack info into structured logs5274 when configured with the the throttled name in a list5275 does not throttle5276 when the throttle is disabled5277 allows requests over the rate limit5278 web requests authenticated with regular login5279 behaves like rate-limited web authenticated requests5280 when the throttle is enabled5281DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5282 rejects requests over the rate limit5283DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5284DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5285 does not reject requests if the user is in the allowlist5286DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5287DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5288 allows requests after throttling and then waiting for the next period5289DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5290DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5291 counts requests from different users separately, even from the same IP5292DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5293 counts all requests from the same user, even via different IPs5294DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5295 logs RackAttack info into structured logs5296 behaves like tracking when dry-run mode is set5297DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5298DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5299 does not throttle the requests when `*` is configured5300DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5301DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5302 logs RackAttack info into structured logs5303 when configured with the the throttled name in a list5304DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5305DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5306 does not throttle5307 when the throttle is disabled5308DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5309DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)5310 allows requests over the rate limit5311 protected paths5312 unauthenticated requests5313 when protected paths throttle is disabled5314 allows requests over the rate limit5315 when protected paths throttle is enabled5316 rejects requests over the rate limit5317 allows non-POST requests to protected paths over the rate limit5318 allows POST requests to unprotected paths over the rate limit5319 behaves like tracking when dry-run mode is set5320 does not throttle the requests when `*` is configured5321 logs RackAttack info into structured logs5322 when configured with the the throttled name in a list5323 does not throttle5324 API requests authenticated with personal access token5325 with the token in the query string5326 behaves like rate-limited user based token-authenticated requests5327 when the throttle is enabled5328 does not reject requests if the user is in the allowlist5329 when the throttle is enabled5330 rejects requests over the rate limit5331 allows requests after throttling and then waiting for the next period5332 counts requests from different requesters separately, even from the same IP5333 counts all requests from the same requesters, even via different IPs5334 logs RackAttack info into structured logs5335 behaves like tracking when dry-run mode is set5336 does not throttle the requests when `*` is configured5337 logs RackAttack info into structured logs5338 when configured with the the throttled name in a list5339 does not throttle5340 when the throttle is disabled5341 allows requests over the rate limit5342 with the token in the headers5343 behaves like rate-limited user based token-authenticated requests5344 when the throttle is enabled5345 does not reject requests if the user is in the allowlist5346 when the throttle is enabled5347 rejects requests over the rate limit5348 allows requests after throttling and then waiting for the next period5349 counts requests from different requesters separately, even from the same IP5350 counts all requests from the same requesters, even via different IPs5351 logs RackAttack info into structured logs5352 behaves like tracking when dry-run mode is set5353 does not throttle the requests when `*` is configured5354 logs RackAttack info into structured logs5355 when configured with the the throttled name in a list5356 does not throttle5357 when the throttle is disabled5358 allows requests over the rate limit5359 web requests authenticated with regular login5360 behaves like rate-limited web authenticated requests5361 when the throttle is enabled5362 rejects requests over the rate limit5363 does not reject requests if the user is in the allowlist5364 allows requests after throttling and then waiting for the next period5365 counts requests from different users separately, even from the same IP5366 counts all requests from the same user, even via different IPs5367 logs RackAttack info into structured logs5368 behaves like tracking when dry-run mode is set5369 does not throttle the requests when `*` is configured5370 logs RackAttack info into structured logs5371 when configured with the the throttled name in a list5372 does not throttle5373 when the throttle is disabled5374 allows requests over the rate limit5375 Packages API5376 unauthenticated5377 when unauthenticated packages api throttle is disabled5378 allows requests over the rate limit5379 when unauthenticated api throttle is enabled5380 rejects requests over the unauthenticated api rate limit5381 when unauthenticated web throttle is enabled5382 ignores unauthenticated web throttle5383 when unauthenticated packages api throttle is enabled5384 rejects requests over the rate limit5385 when unauthenticated api throttle is lower5386 ignores unauthenticated api throttle5387 behaves like tracking when dry-run mode is set5388 does not throttle the requests when `*` is configured5389 logs RackAttack info into structured logs5390 when configured with the the throttled name in a list5391 does not throttle5392 authenticated5393 with the token in the query string5394 behaves like rate-limited user based token-authenticated requests5395 when the throttle is enabled5396 does not reject requests if the user is in the allowlist5397 when the throttle is enabled5398 rejects requests over the rate limit5399 allows requests after throttling and then waiting for the next period5400 counts requests from different requesters separately, even from the same IP5401 counts all requests from the same requesters, even via different IPs5402 logs RackAttack info into structured logs5403 behaves like tracking when dry-run mode is set5404 does not throttle the requests when `*` is configured5405 logs RackAttack info into structured logs5406 when configured with the the throttled name in a list5407 does not throttle5408 when the throttle is disabled5409 allows requests over the rate limit5410 with the token in the headers5411 behaves like rate-limited user based token-authenticated requests5412 when the throttle is enabled5413 does not reject requests if the user is in the allowlist5414 when the throttle is enabled5415 rejects requests over the rate limit5416 allows requests after throttling and then waiting for the next period5417 counts requests from different requesters separately, even from the same IP5418 counts all requests from the same requesters, even via different IPs5419 logs RackAttack info into structured logs5420 behaves like tracking when dry-run mode is set5421 does not throttle the requests when `*` is configured5422 logs RackAttack info into structured logs5423 when configured with the the throttled name in a list5424 does not throttle5425 when the throttle is disabled5426 allows requests over the rate limit5427 precedence over authenticated api throttle5428 when authenticated packages api throttle is enabled5429 when authenticated api throttle is lower5430 ignores authenticated api throttle5431 when authenticated packages api throttle is disabled5432 when authenticated api throttle is enabled5433 rejects requests over the authenticated api rate limit5434 authenticated via deploy token headers5435 behaves like rate-limited deploy-token-authenticated requests5436 when the throttle is enabled5437 rejects requests over the rate limit5438 allows requests after throttling and then waiting for the next period5439 counts requests from different requesters separately, even from the same IP5440 counts all requests from the same requesters, even via different IPs5441 logs RackAttack info into structured logs5442 behaves like tracking when dry-run mode is set5443 does not throttle the requests when `*` is configured5444 logs RackAttack info into structured logs5445 when configured with the the throttled name in a list5446 does not throttle5447 when the throttle is disabled5448 allows requests over the rate limit5449 dependency proxy5450 getting a manifest5451 behaves like rate-limited user based token-authenticated requests5452 when the throttle is enabled5453 does not reject requests if the user is in the allowlist5454 when the throttle is enabled5455 rejects requests over the rate limit5456 allows requests after throttling and then waiting for the next period5457 counts requests from different requesters separately, even from the same IP5458 counts all requests from the same requesters, even via different IPs5459 logs RackAttack info into structured logs5460 behaves like tracking when dry-run mode is set5461 does not throttle the requests when `*` is configured5462 logs RackAttack info into structured logs5463 when configured with the the throttled name in a list5464 does not throttle5465 when the throttle is disabled5466 allows requests over the rate limit5467 getting a blob5468 behaves like rate-limited user based token-authenticated requests5469 when the throttle is enabled5470 does not reject requests if the user is in the allowlist5471 when the throttle is enabled5472 rejects requests over the rate limit5473 allows requests after throttling and then waiting for the next period5474 counts requests from different requesters separately, even from the same IP5475 counts all requests from the same requesters, even via different IPs5476 logs RackAttack info into structured logs5477 behaves like tracking when dry-run mode is set5478 does not throttle the requests when `*` is configured5479 logs RackAttack info into structured logs5480 when configured with the the throttled name in a list5481 does not throttle5482 when the throttle is disabled5483 allows requests over the rate limit5484 authenticated git lfs requests5485 with regular login5486 behaves like rate-limited web authenticated requests5487 when the throttle is enabled5488 rejects requests over the rate limit5489 does not reject requests if the user is in the allowlist5490 allows requests after throttling and then waiting for the next period5491 counts requests from different users separately, even from the same IP5492 counts all requests from the same user, even via different IPs5493 logs RackAttack info into structured logs5494 behaves like tracking when dry-run mode is set5495 does not throttle the requests when `*` is configured5496 logs RackAttack info into structured logs5497 when configured with the the throttled name in a list5498 does not throttle5499 when the throttle is disabled5500 allows requests over the rate limit5501 with the token in the headers5502 behaves like rate-limited user based token-authenticated requests5503 when the throttle is enabled5504 does not reject requests if the user is in the allowlist5505 when the throttle is enabled5506 rejects requests over the rate limit5507 allows requests after throttling and then waiting for the next period5508 counts requests from different requesters separately, even from the same IP5509 counts all requests from the same requesters, even via different IPs5510 logs RackAttack info into structured logs5511 behaves like tracking when dry-run mode is set5512 does not throttle the requests when `*` is configured5513 logs RackAttack info into structured logs5514 when configured with the the throttled name in a list5515 does not throttle5516 when the throttle is disabled5517 allows requests over the rate limit5518 precedence over authenticated web throttle5519 when authenticated git lfs throttle is enabled5520 when authenticated web throttle is lower5521 ignores authenticated web throttle5522 when authenticated git lfs throttle is disabled5523 when authenticated web throttle is enabled5524 rejects requests over the authenticated web rate limit5525 Files API5526 unauthenticated5527 when unauthenticated files api throttle is disabled5528 allows requests over the rate limit5529 when unauthenticated api throttle is enabled5530 rejects requests over the unauthenticated api rate limit5531 when unauthenticated web throttle is enabled5532 ignores unauthenticated web throttle5533 when unauthenticated files api throttle is enabled5534 rejects requests over the rate limit5535 when unauthenticated api throttle is lower5536 ignores unauthenticated api throttle5537 behaves like tracking when dry-run mode is set5538 does not throttle the requests when `*` is configured5539 logs RackAttack info into structured logs5540 when configured with the the throttled name in a list5541 does not throttle5542 authenticated5543 with the token in the query string5544 behaves like rate-limited user based token-authenticated requests5545 when the throttle is enabled5546 does not reject requests if the user is in the allowlist5547 when the throttle is enabled5548 rejects requests over the rate limit5549 allows requests after throttling and then waiting for the next period5550 counts requests from different requesters separately, even from the same IP5551 counts all requests from the same requesters, even via different IPs5552 logs RackAttack info into structured logs5553 behaves like tracking when dry-run mode is set5554 does not throttle the requests when `*` is configured5555 logs RackAttack info into structured logs5556 when configured with the the throttled name in a list5557 does not throttle5558 when the throttle is disabled5559 allows requests over the rate limit5560 with the token in the headers5561 behaves like rate-limited user based token-authenticated requests5562 when the throttle is enabled5563 does not reject requests if the user is in the allowlist5564 when the throttle is enabled5565 rejects requests over the rate limit5566 allows requests after throttling and then waiting for the next period5567 counts requests from different requesters separately, even from the same IP5568 counts all requests from the same requesters, even via different IPs5569 logs RackAttack info into structured logs5570 behaves like tracking when dry-run mode is set5571 does not throttle the requests when `*` is configured5572 logs RackAttack info into structured logs5573 when configured with the the throttled name in a list5574 does not throttle5575 when the throttle is disabled5576 allows requests over the rate limit5577 precedence over authenticated api throttle5578 when authenticated files api throttle is enabled5579 when authenticated api throttle is lower5580 ignores authenticated api throttle5581 when authenticated files api throttle is disabled5582 when authenticated api throttle is enabled5583 rejects requests over the authenticated api rate limit5584 Deprecated API5585 unauthenticated5586 when unauthenticated deprecated api throttle is disabled5587 allows requests over the rate limit5588 when unauthenticated api throttle is enabled5589 rejects requests over the unauthenticated api rate limit5590 when unauthenticated web throttle is enabled5591 ignores unauthenticated web throttle5592 when unauthenticated deprecated api throttle is enabled5593 rejects requests over the rate limit5594 when group endpoint is given with_project=false5595 permits requests over the rate limit5596 when unauthenticated api throttle is lower5597 ignores unauthenticated api throttle5598 behaves like tracking when dry-run mode is set5599 does not throttle the requests when `*` is configured5600 logs RackAttack info into structured logs5601 when configured with the the throttled name in a list5602 does not throttle5603 authenticated5604 with the token in the query string5605 behaves like rate-limited user based token-authenticated requests5606 when the throttle is enabled5607 does not reject requests if the user is in the allowlist5608 when the throttle is enabled5609 rejects requests over the rate limit5610 allows requests after throttling and then waiting for the next period5611 counts requests from different requesters separately, even from the same IP5612 counts all requests from the same requesters, even via different IPs5613 logs RackAttack info into structured logs5614 behaves like tracking when dry-run mode is set5615 does not throttle the requests when `*` is configured5616 logs RackAttack info into structured logs5617 when configured with the the throttled name in a list5618 does not throttle5619 when the throttle is disabled5620 allows requests over the rate limit5621 with the token in the headers5622 behaves like rate-limited user based token-authenticated requests5623 when the throttle is enabled5624 does not reject requests if the user is in the allowlist5625 when the throttle is enabled5626 rejects requests over the rate limit5627 allows requests after throttling and then waiting for the next period5628 counts requests from different requesters separately, even from the same IP5629 counts all requests from the same requesters, even via different IPs5630 logs RackAttack info into structured logs5631 behaves like tracking when dry-run mode is set5632 does not throttle the requests when `*` is configured5633 logs RackAttack info into structured logs5634 when configured with the the throttled name in a list5635 does not throttle5636 when the throttle is disabled5637 allows requests over the rate limit5638 precedence over authenticated api throttle5639 when authenticated deprecated api throttle is enabled5640 when authenticated api throttle is lower5641 ignores authenticated api throttle5642 when authenticated deprecated api throttle is disabled5643 when authenticated api throttle is enabled5644 rejects requests over the authenticated api rate limit5645 throttle bypass header5646 without the bypass header set5647 behaves like reject requests over the rate limit5648 rejects requests over the rate limit5649 with bypass header set to 15650 does not throttle5651 with bypass header set to some other value5652 behaves like reject requests over the rate limit5653 rejects requests over the rate limit5654 Gitlab::RackAttack::Request#unauthenticated?5655 without authentication5656 request is unauthenticated5657 authenticated by a runner token5658 request is authenticated5659 authenticated with personal access token5660 request is authenticated by token in query string5661 request is authenticated by token in the headers5662 request is authenticated by token in the OAuth headers5663 request is authenticated by token in basic auth5664 authenticated with OAuth token5665 request is authenticated by token in query string5666 request is authenticated by token in the headers5667 authenticated with lfs token5668 request is authenticated by token in basic auth5669 request is not authenticated with API URL5670 authenticated with regular login5671 request is authenticated after login5672 request is not authenticated by credentials in basic auth5673 with POST git-upload-pack5674 request is authenticated by credentials in basic auth5675 with GET info/refs5676 request is authenticated by credentials in basic auth5677API::Ci::Triggers5678 POST /projects/:project_id/trigger/pipeline5679 Handles errors5680 returns bad request if token is missing5681 returns not found if project is not found5682 Have a commit5683 creates pipeline5684 stores payload as a variable5685 returns bad request with no pipeline created if there's no commit for that ref5686 Validates variables5687 validates variables to be a hash5688 validates variables needs to be a map of key-valued strings5689 creates trigger request with variables5690 when triggering a pipeline from a trigger token5691 does not leak the presence of project when token is for different project5692 creates builds from the ref given in the URL, not in the body5693 when ref contains a dot5694 creates builds from the ref given in the URL, not in the body5695 adding arguments to the application context5696 when triggering a pipeline from a trigger token5697 behaves like storing arguments in the application context for the API5698 places the expected params in the application context5699 behaves like not executing any extra queries for the application context5700 does not execute more queries than without adding anything to the application context5701 when triggered from another running job5702 when other job is triggered by a user5703 behaves like storing arguments in the application context for the API5704 places the expected params in the application context5705 behaves like not executing any extra queries for the application context5706 does not execute more queries than without adding anything to the application context5707 when other job is triggered by a runner5708 behaves like storing arguments in the application context for the API5709 places the expected params in the application context5710 behaves like not executing any extra queries for the application context5711 does not execute more queries than without adding anything to the application context5712 when is triggered by a pipeline hook5713 does not create a new pipeline5714 GET /projects/:id/triggers5715 authenticated user who can access triggers5716 returns a list of triggers with tokens exposed correctly5717 authenticated user with invalid permissions5718 does not return triggers list5719 unauthenticated user5720 does not return triggers list5721 GET /projects/:id/triggers/:trigger_id5722 authenticated user with valid permissions5723 returns trigger details5724 responds with 404 Not Found if requesting non-existing trigger5725 authenticated user with invalid permissions5726 does not return triggers list5727 unauthenticated user5728 does not return triggers list5729 POST /projects/:id/triggers5730 authenticated user with valid permissions5731 with required parameters5732 creates trigger5733 without required parameters5734 does not create trigger5735 authenticated user with invalid permissions5736 does not create trigger5737 unauthenticated user5738 does not create trigger5739 PUT /projects/:id/triggers/:trigger_id5740 user is maintainer of the project5741 the trigger belongs to user5742 updates description5743 the trigger does not belong to user5744 does not update trigger5745 user is developer of the project5746 the trigger belongs to user5747 does not update trigger5748 the trigger does not belong to user5749 does not update trigger5750 unauthenticated user5751 does not update trigger5752 DELETE /projects/:id/triggers/:trigger_id5753 authenticated user with valid permissions5754 deletes trigger5755 responds with 404 Not Found if requesting non-existing trigger5756 behaves like 412 response5757 for a modified ressource5758 returns 412 with a JSON error5759 for an unmodified ressource5760 returns 204 with an empty body5761 authenticated user with invalid permissions5762 does not delete trigger5763 unauthenticated user5764 does not delete trigger5765API::Ci::Runner5766 /api/v4/jobs5767 POST /api/v4/jobs/request5768 when no token is provided5769 returns 400 error5770 when invalid token is provided5771 returns 403 error5772 when valid token is provided5773 when Runner is not active5774 returns 204 error5775 when jobs are finished5776 behaves like no jobs available5777 when runner sends version in User-Agent5778 for stable version5779 gives 204 and set X-GitLab-Last-Update5780 when last_update is up-to-date5781 gives 204 and set the same X-GitLab-Last-Update5782 when last_update is outdated5783 gives 204 and set a new X-GitLab-Last-Update5784 when beta version is sent5785 is expected to respond with numeric status code no_content5786 when pre-9-0 version is sent5787 is expected to respond with numeric status code no_content5788 when pre-9-0 beta version is sent5789 is expected to respond with numeric status code no_content5790 when other projects have pending jobs5791 behaves like no jobs available5792 when runner sends version in User-Agent5793 for stable version5794 gives 204 and set X-GitLab-Last-Update5795 when last_update is up-to-date5796 gives 204 and set the same X-GitLab-Last-Update5797 when last_update is outdated5798 gives 204 and set a new X-GitLab-Last-Update5799 when beta version is sent5800 is expected to respond with numeric status code no_content5801 when pre-9-0 version is sent5802 is expected to respond with numeric status code no_content5803 when pre-9-0 beta version is sent5804 is expected to respond with numeric status code no_content5805 when shared runner requests job for project without shared_runners_enabled5806 behaves like no jobs available5807 when runner sends version in User-Agent5808 for stable version5809 gives 204 and set X-GitLab-Last-Update5810 when last_update is up-to-date5811 gives 204 and set the same X-GitLab-Last-Update5812 when last_update is outdated5813 gives 204 and set a new X-GitLab-Last-Update5814 when beta version is sent5815 is expected to respond with numeric status code no_content5816 when pre-9-0 version is sent5817 is expected to respond with numeric status code no_content5818 when pre-9-0 beta version is sent5819 is expected to respond with numeric status code no_content5820 when there is a pending job5821 picks a job5822 creates persistent ref5823 updates runner info5824 sets the runner's config5825 sets the runner's ip_address5826 handles multiple X-Forwarded-For addresses5827 when job is made for tag5828 sets branch as ref_type5829 when GIT_DEPTH is specified5830 specifies refspecs5831 when a Gitaly exception is thrown during response5832 fails the job as a scheduler failure5833 when GIT_DEPTH is not specified and there is no default git depth for the project5834 specifies refspecs5835 when job filtered by job_age5836 job is queued less than job_age parameter5837 gives 2045838 job is queued more than job_age parameter5839 picks a job5840 when job is made for branch5841 sets tag as ref_type5842 when GIT_DEPTH is specified5843 specifies refspecs5844 when GIT_DEPTH is not specified and there is no default git depth for the project5845 specifies refspecs5846 when job is for a release5847 when `multi_build_steps` is passed by the runner5848 exposes release info5849 when `multi_build_steps` is not passed by the runner5850 drops the job5851 when job is made for merge request5852 sets branch as ref_type5853 when GIT_DEPTH is specified5854 returns the overwritten git depth for merge request refspecs5855 when info parameter 'version' is present5856 updates provided Runner's parameter5857 when info parameter 'revision' is present5858 updates provided Runner's parameter5859 when info parameter 'platform' is present5860 updates provided Runner's parameter5861 when info parameter 'architecture' is present5862 updates provided Runner's parameter5863 when concurrently updating a job5864 returns a conflict5865 when project and pipeline have multiple jobs5866 returns dependent jobs with the token of the test job5867 preloading job_artifacts_archive5868 queries the ci_job_artifacts table once only5869 queries the ci_builds table five times5870 when pipeline have jobs with artifacts5871 returns dependent jobs with the token of the test job5872 when explicit dependencies are defined5873 returns dependent jobs with the token of the test job5874 when dependencies is an empty array5875 returns an empty array5876 when job has no tags5877 when runner is allowed to pick untagged jobs5878 picks job5879 when runner is not allowed to pick untagged jobs5880 behaves like no jobs available5881 when runner sends version in User-Agent5882 for stable version5883 gives 204 and set X-GitLab-Last-Update5884 when last_update is up-to-date5885 gives 204 and set the same X-GitLab-Last-Update5886 when last_update is outdated5887 gives 204 and set a new X-GitLab-Last-Update5888 when beta version is sent5889 is expected to respond with numeric status code no_content5890 when pre-9-0 version is sent5891 is expected to respond with numeric status code no_content5892 when pre-9-0 beta version is sent5893 is expected to respond with numeric status code no_content5894 when job has code coverage report5895 returns job with the correct artifact specification5896 when triggered job is available5897 when variables are stored in pipeline_variables5898 behaves like expected variables behavior5899 returns variables for triggers5900 registry credentials support5901 when registry is enabled5902 sends registry credentials key5903 when registry is disabled5904 does not send registry credentials5905 timeout support5906 when project specifies job timeout5907 contains info about timeout taken from project5908 when runner specifies lower timeout5909 contains info about timeout overridden by runner5910 when runner specifies bigger timeout5911 contains info about timeout not overridden by runner5912 port support5913 when job image has ports5914 returns the image ports5915 when job services settings has ports5916 returns the service ports5917 when image has pull_policy5918 returns the image with pull policy5919 when service has pull_policy5920 returns the service with pull policy5921 a job with excluded artifacts5922 does not expose excluded paths when these are empty5923 when excluded paths are defined5924 when a runner supports this feature5925 exposes excluded paths5926 when a runner does not support this feature5927 does not expose the build at all5928 setting the application context5929 when triggered by a user5930 behaves like storing arguments in the application context for the API5931 places the expected params in the application context5932 behaves like not executing any extra queries for the application context5933 does not execute more queries than without adding anything to the application context5934 when the runner is of project type5935 behaves like storing arguments in the application context for the API5936 places the expected params in the application context5937 behaves like not executing any extra queries for the application context5938 does not execute more queries than without adding anything to the application context5939 when the runner is of group type5940 behaves like storing arguments in the application context for the API5941 places the expected params in the application context5942 behaves like not executing any extra queries for the application context5943 does not execute more queries than without adding anything to the application context5944 for web-ide job5945 when runner has matching tag5946 successfully picks job5947 when runner does not have matching tags5948 does not pick a job5949API::Lint5950 POST /ci/lint5951 when signup settings are disabled5952 when unauthenticated5953 returns authentication error5954 when authenticated5955 returns authorized5956 when authenticated as external user5957 when reporter in a project5958 returns authorization failure5959 when developer in a project5960 returns authorization success5961 when signup is enabled and not limited5962 when unauthenticated5963 returns authorized success5964 when authenticated5965 returns authentication success5966 when limited signup is enabled5967 when unauthenticated5968 returns unauthorized5969 when authenticated5970 returns authentication success5971 when authenticated5972 with valid .gitlab-ci.yml content5973 passes validation without warnings or errors5974 outputs expanded yaml content5975 outputs jobs5976 with valid .gitlab-ci.yml with warnings5977 passes validation but returns warnings5978 with an invalid .gitlab-ci.yml5979 with invalid syntax5980 responds with errors about invalid syntax5981 outputs expanded yaml content5982 outputs jobs5983 with invalid configuration5984 responds with errors about invalid configuration5985 outputs expanded yaml content5986 outputs jobs5987 without the content parameter5988 responds with validation error about missing content5989 GET /projects/:id/ci/lint5990 when unauthenticated5991 returns authentication error5992 when authenticated as non-member5993 when project is private5994 returns authentication error5995 when project is public5996 when running as dry run5997 returns pipeline creation error5998 when running static validation5999 behaves like valid config without warnings6000 passes validation6001 when authenticated as project guest6002 returns authentication error6003 when authenticated as project developer6004 with no commit6005 returns error about providing content6006 with valid .gitlab-ci.yml content6007 when running as dry run6008 behaves like valid config without warnings6009 passes validation6010 when running static validation6011 behaves like valid config without warnings6012 passes validation6013 when running with include jobs6014 returns jobs key6015 behaves like valid config without warnings6016 passes validation6017 when running without include jobs6018 does not return jobs key6019 behaves like valid config without warnings6020 passes validation6021 With warnings6022 behaves like valid config with warnings6023 passes validation with warnings6024 with invalid .gitlab-ci.yml content6025 when running as dry run6026 behaves like invalid config6027 responds with errors about invalid configuration6028 when running static validation6029 behaves like invalid config6030 responds with errors about invalid configuration6031 when running with include jobs6032 returns jobs key6033 behaves like invalid config6034 responds with errors about invalid configuration6035 when running without include jobs6036 does not return jobs key6037 behaves like invalid config6038 responds with errors about invalid configuration6039 POST /projects/:id/ci/lint6040 with an empty repository6041 passes validation without errors6042 when unauthenticated6043 returns authentication error6044 when project is public6045 returns authentication error6046 when authenticated as non-member6047 when project is private6048 returns authentication error6049 when project is public6050 when running as dry run6051 returns authentication error6052 when running static validation6053 returns authentication error6054 when authenticated as project guest6055 returns authentication error6056 when authenticated as project developer6057 with valid .gitlab-ci.yml content6058 when running as dry run6059 behaves like valid project config6060 passes validation6061 when running static validation6062 behaves like valid project config6063 passes validation6064 when running with include jobs param6065 contains jobs key6066 behaves like valid project config6067 passes validation6068 when running without include jobs param6069 does not contain jobs key6070 behaves like valid project config6071 passes validation6072 with invalid .gitlab-ci.yml content6073 when running as dry run6074 behaves like invalid project config6075 responds with errors about invalid configuration6076 when running static validation6077 behaves like invalid project config6078 responds with errors about invalid configuration6079 when running with include jobs set to false6080 does not contain jobs key6081 behaves like invalid project config6082 responds with errors about invalid configuration6083 when running with param include jobs6084 contains jobs key6085 behaves like invalid project config6086 responds with errors about invalid configuration6087API::UsageDataQueries6088 GET /usage_data/usage_data_queries6089 with authentication6090 returns queries if user is admin6091 returns forbidden if user is not admin6092 without authentication6093 returns unauthorized6094 when feature_flag is disabled6095 returns not_found for admin6096 returns forbidden for non-admin6097 when querying sql metrics6098 matches the generated query6099Ldap::OmniauthCallbacksController6100 allows sign in6101 creates an authentication event record6102 respects remember me checkbox6103 with sign in prevented6104 does not allow sign in6105 with 2FA6106 passes remember_me to the Devise view6107 access denied6108 warns the user6109 doesn't authenticate user6110 sign up6111 is allowed6112 enable admin mode6113 with a regular user6114 cannot be enabled6115 with an admin user6116 when requested first6117 can be enabled6118 when not requested first6119 cannot be enabled6120Projects::BlobController6121 GET show6122 with file path6123 valid branch, valid file6124 is expected to respond with 2006125 valid branch, invalid file6126 redirects6127 invalid branch, valid file6128 is expected to respond with 4046129 renamed default branch, valid file6130 is expected to redirect to "/namespace222/project316/-/blob/master/README.md"6131 renamed default branch, invalid file6132 is expected to redirect to "/namespace223/project317/-/blob/master/invalid-path.rb"6133 binary file6134 is expected to respond with 2006135 Markdown file6136 is expected to respond with 2006137 with file path and JSON format6138 valid branch, valid file6139 is expected to have key "raw_path"6140 with viewer=none6141 is expected to have key "raw_path"6142 with tree path6143 redirect to tree6144 redirects6145 GET diff6146 when essential params are missing6147 renders nothing6148 when essential params are present6149 when rendering for commit6150 renders the diff content6151 when rendering for merge request6152 renders diff context lines Gitlab::Diff::Line array6153 handles full being true6154 GET edit6155 anonymous6156 redirects to sign in and returns6157 as guest6158 redirects to blob show6159 as developer6160 redirects to blob show6161 as maintainer6162 redirects to blob show6163 PUT update6164 redirects to blob6165 ?from_merge_request_iid6166 redirects to MR diff6167 when user doesn't have access6168 redirects to blob6169 when user has forked project6170 when editing on the fork6171 redirects to blob6172 when editing on the original repository6173 redirects to forked project new merge request6174 behaves like tracking unique hll events6175 tracks unique event6176 DELETE destroy6177 for a file in a subdirectory6178 redirects to the sub directory6179 when a validation failure occurs6180 redirects to a valid page6181 if deleted file is the last one in a subdirectory6182 redirects to the project root6183 when deleting a file in a branch other than master6184 redirects to the project root of the branch6185 POST preview6186 is successful6187 POST create6188 redirects to blob6189 behaves like tracking unique hll events6190 tracks unique event6191API::Ci::Runner6192 /api/v4/jobs6193 PATCH /api/v4/jobs/:id/trace6194 updates runner info6195 behaves like API::CI::Runner application context metadata6196 contains correct context metadata6197 when request is valid6198 gets correct response6199 when job has been updated recently6200 is expected not to change `job.updated_at`6201 changes the job's trace6202 when Runner makes a force-patch6203 is expected not to change `job.updated_at`6204 doesn't change the build.trace6205 when job was not updated recently6206 is expected to change `job.updated_at`6207 changes the job.trace6208 when Runner makes a force-patch6209 is expected to change `job.updated_at`6210 doesn't change the job.trace6211 when project for the build has been deleted6212 responds with forbidden6213 when trace is patched6214 has valid trace6215 when job is cancelled6216 when trace is patched6217 returns Forbidden6218 when redis data are flushed6219 has empty trace6220 when we perform partial patch6221 returns an error6222 when we resend full trace6223 succeeds with updating trace6224 when concurrent update of trace is happening6225 returns that operation conflicts6226 when the job is canceled6227 receives status in header6228 when build trace is being watched6229 returns X-GitLab-Trace-Update-Interval as 36230 when build trace is not being watched6231 returns the interval in X-GitLab-Trace-Update-Interval6232 when job does not exist anymore6233 returns 403 Forbidden6234 when Runner makes a force-patch6235 gets correct response6236 when content-range start is too big6237 gets 416 error response with range headers6238 when content-range start is too small6239 gets 416 error response with range headers6240 when Content-Range header is missing6241 is expected to respond with numeric status code bad_request6242 when job has been errased6243 is expected to respond with numeric status code forbidden6244 when the job log is too big6245 returns 403 Forbidden6246SessionsController6247 #new6248 redirects correctly for referer on same host with params6249 when auto sign-in is enabled6250 and no auto_sign_in param is passed6251 redirects to :omniauth_authorize_path6252 and auto_sign_in=false param is passed6253 responds with 2006254 with LDAP enabled6255 ldap_servers available in helper6256 with sign_in disabled6257 no ldap_servers available in helper6258 #create6259 behaves like known sign in6260 when the remote IP and the last sign in IP match6261 does not notify the user6262 sets/updates the encrypted cookie6263 when the remote IP and the last sign in IP do not match6264 notifies the user when the cookie is expired6265 notifies the user when the cookie is for another user6266 does not notify the user when remote IP matches an active session6267 does not notify the user when the cookie is present and not expired6268 when the cookie is not previously set6269 notifies the user6270 sets the encrypted cookie6271 when notify_on_unknown_sign_in global setting is false6272 does not notify the user6273 does not set a cookie6274 when using standard authentications6275 invalid password6276 does not authenticate user6277 a blocked user6278 does not authenticate the user6279 a `blocked pending approval` user6280 does not authenticate the user6281 an internal user6282 does not authenticate the user6283 when using valid password6284 authenticates user correctly6285 creates an audit log record6286 creates an authentication event record6287 allows user authenticating from the same ip6288 blocks user authenticating from two distinct ips6289 updates the user activity6290 a deactivated user6291 is allowed to login6292 activates the user6293 shows reactivation flash message after logging in6294 with password authentication disabled6295 does not sign in the user6296 returns status 4036297 with reCAPTCHA6298 when reCAPTCHA is enabled6299 successfully logs in a user when reCAPTCHA is solved6300 when the reCAPTCHA is not solved6301 displays an error6302 sets gon variables6303 when reCAPTCHA login protection is enabled6304 when user tried to login 5 times6305 displays an error when the reCAPTCHA is not solved6306 successfully logs in a user when reCAPTCHA is solved6307 when there are more than 5 anonymous session with the same IP6308 displays an error when the reCAPTCHA is not solved6309 successfully logs in a user when reCAPTCHA is solved6310 when using two-factor authentication via OTP6311 creates an audit log record6312 creates an authentication event record6313 remember_me field6314 sets a remember_user_token cookie when enabled6315 does nothing when disabled6316 with password authentication disabled6317 allows 2FA stage of non-password login6318 when otp_user_id is stale6319 favors login over otp_user_id when password is present and does not authenticate the user6320 when authenticating with login and OTP of another user6321 when another user has 2FA enabled6322 when OTP is valid for another user6323 does not authenticate6324 when OTP is invalid for another user6325 does not authenticate6326 when authenticating with OTP6327 when OTP is valid6328 authenticates correctly6329 when OTP is invalid6330 does not authenticate6331 warns about invalid OTP code6332 sends an email to the user informing about the attempt to sign in with a wrong OTP code6333 when the user is on their last attempt6334 when OTP is valid6335 authenticates correctly6336 when OTP is invalid6337 does not authenticate6338 warns about invalid login6339 locks the user6340 keeps the user locked on future login attempts6341 when using two-factor authentication via U2F device6342 creates an audit log record6343 creates an authentication event record6344 remember_me field6345 sets a remember_user_token cookie when enabled6346 does nothing when disabled6347 when login fails6348 does increment failed login counts for session6349 #set_current_context6350 when signed in6351 sets the username and caller_id in the context6352 when not signed in6353 sets the caller_id in the context6354 when the user becomes locked6355 sets the caller_id in the context6356 #destroy6357 for a user whose password has expired6358 allows to sign out successfully6359Projects::GoogleCloud::DatabasesController6360 -/google_cloud/databases6361 when requested by users with different roles6362 for unauthorized users6363 returns not found6364 returns not found6365 for authorized users6366 redirects to authorize url6367 redirects to authorize url6368 when feature flag is disabled6369 renders not found6370 when GitLab instance does not have valid Google OAuth2 configuration6371 renders forbidden6372 when a valid Google OAuth2 token does not exist6373 triggers Google OAuth2 flow on request6374 and a valid Google OAuth2 token gets created6375 renders template as expected6376 redirects as expected6377 -/google_cloud/databases/new/postgres6378 when requested by users with different roles6379 for unauthorized users6380 returns not found6381 returns not found6382 for authorized users6383 redirects to authorize url6384 redirects to authorize url6385 when feature flag is disabled6386 renders not found6387 when GitLab instance does not have valid Google OAuth2 configuration6388 renders forbidden6389 when a valid Google OAuth2 token does not exist6390 triggers Google OAuth2 flow on request6391 and a valid Google OAuth2 token gets created6392 renders template as expected6393 redirects as expected6394 -/google_cloud/databases/new/mysql6395 when requested by users with different roles6396 for unauthorized users6397 returns not found6398 returns not found6399 for authorized users6400 redirects to authorize url6401 redirects to authorize url6402 when feature flag is disabled6403 renders not found6404 when GitLab instance does not have valid Google OAuth2 configuration6405 renders forbidden6406 when a valid Google OAuth2 token does not exist6407 triggers Google OAuth2 flow on request6408 and a valid Google OAuth2 token gets created6409 renders template as expected6410 redirects as expected6411 -/google_cloud/databases/new/sqlserver6412 when requested by users with different roles6413 for unauthorized users6414 returns not found6415 returns not found6416 for authorized users6417 redirects to authorize url6418 redirects to authorize url6419 when feature flag is disabled6420 renders not found6421 when GitLab instance does not have valid Google OAuth2 configuration6422 renders forbidden6423 when a valid Google OAuth2 token does not exist6424 triggers Google OAuth2 flow on request6425 and a valid Google OAuth2 token gets created6426 renders template as expected6427 redirects as expected6428 -/google_cloud/databases/create6429 when requested by users with different roles6430 for unauthorized users6431 returns not found6432 returns not found6433 for authorized users6434 redirects to authorize url6435 redirects to authorize url6436 when feature flag is disabled6437 renders not found6438 when GitLab instance does not have valid Google OAuth2 configuration6439 renders forbidden6440 when a valid Google OAuth2 token does not exist6441 triggers Google OAuth2 flow on request6442 and a valid Google OAuth2 token gets created6443 renders template as expected6444 redirects as expected6445 when the request is valid6446 calls EnableCloudsqlService and redirects on error6447 when EnableCloudsqlService is successful6448 calls CreateCloudsqlInstanceService and redirects on error6449 when CreateCloudsqlInstanceService is successful6450 redirects as expected6451HealthController6452 GET /-/health6453 accessed from whitelisted ip6454 behaves like endpoint responding with health data6455 responds with health checks data6456 behaves like endpoint not querying database6457 does not query database6458 accessed from not whitelisted ip6459 behaves like endpoint not querying database6460 does not query database6461 behaves like endpoint not found6462 responds with resource not found6463 GET /-/readiness6464 accessed from whitelisted ip6465 behaves like endpoint not querying database6466 does not query database6467 behaves like endpoint responding with readiness data6468 when requesting instance-checks6469 when Puma runs in Clustered mode6470 responds with readiness checks data6471 responds with readiness checks data when a failure happens6472 when Puma runs in Single mode6473 does not invoke MasterCheck, succeedes6474 when requesting all checks6475 when Puma runs in Clustered mode6476 behaves like endpoint responding with readiness data for all checks6477 responds with readiness checks data6478 responds with readiness checks data when a failure happens6479 checks all redis instances6480 when DB is not accessible and connection raises an exception6481 responds with 500 including the exception info6482 when any exception happens during the probing6483 responds with 500 including the exception info6484 when Puma runs in Single mode6485 behaves like endpoint responding with readiness data for all checks6486 responds with readiness checks data6487 responds with readiness checks data when a failure happens6488 checks all redis instances6489 when DB is not accessible and connection raises an exception6490 responds with 500 including the exception info6491 when any exception happens during the probing6492 responds with 500 including the exception info6493 when requesting all checks6494 behaves like endpoint querying database6495 does query database6496 accessed from not whitelisted ip6497 behaves like endpoint not querying database6498 does not query database6499 behaves like endpoint not found6500 responds with resource not found6501 accessed with valid token6502 token passed in request header6503 behaves like endpoint responding with readiness data6504 when requesting instance-checks6505 when Puma runs in Clustered mode6506 responds with readiness checks data6507 responds with readiness checks data when a failure happens6508 when Puma runs in Single mode6509 does not invoke MasterCheck, succeedes6510 when requesting all checks6511 when Puma runs in Clustered mode6512 behaves like endpoint responding with readiness data for all checks6513 responds with readiness checks data6514 responds with readiness checks data when a failure happens6515 checks all redis instances6516 when DB is not accessible and connection raises an exception6517 responds with 500 including the exception info6518 when any exception happens during the probing6519 responds with 500 including the exception info6520 when Puma runs in Single mode6521 behaves like endpoint responding with readiness data for all checks6522 responds with readiness checks data6523 responds with readiness checks data when a failure happens6524 checks all redis instances6525 when DB is not accessible and connection raises an exception6526 responds with 500 including the exception info6527 when any exception happens during the probing6528 responds with 500 including the exception info6529 behaves like endpoint querying database6530 does query database6531 token passed as URL param6532 behaves like endpoint responding with readiness data6533 when requesting instance-checks6534 when Puma runs in Clustered mode6535 responds with readiness checks data6536 responds with readiness checks data when a failure happens6537 when Puma runs in Single mode6538 does not invoke MasterCheck, succeedes6539 when requesting all checks6540 when Puma runs in Clustered mode6541 behaves like endpoint responding with readiness data for all checks6542 responds with readiness checks data6543 responds with readiness checks data when a failure happens6544 checks all redis instances6545 when DB is not accessible and connection raises an exception6546 responds with 500 including the exception info6547 when any exception happens during the probing6548 responds with 500 including the exception info6549 when Puma runs in Single mode6550 behaves like endpoint responding with readiness data for all checks6551 responds with readiness checks data6552 responds with readiness checks data when a failure happens6553 checks all redis instances6554 when DB is not accessible and connection raises an exception6555 responds with 500 including the exception info6556 when any exception happens during the probing6557 responds with 500 including the exception info6558 behaves like endpoint querying database6559 does query database6560 GET /-/liveness6561 accessed from whitelisted ip6562 behaves like endpoint not querying database6563 does not query database6564 behaves like endpoint responding with liveness data6565 responds with liveness checks data6566 accessed from not whitelisted ip6567 behaves like endpoint not querying database6568 does not query database6569 behaves like endpoint not found6570 responds with resource not found6571 accessed with valid token6572 token passed in request header6573 behaves like endpoint responding with liveness data6574 responds with liveness checks data6575 behaves like endpoint querying database6576 does query database6577 token passed as URL param6578 behaves like endpoint responding with liveness data6579 responds with liveness checks data6580 behaves like endpoint querying database6581 does query database6582Groups::GroupMembersController6583 GET index6584 renders index with 200 status code6585 when user can manage members6586 assigns invited members6587 restricts search to one email6588 paginates invited list6589 when user cannot manage members6590 does not assign invited members6591 when user has owner access to subgroup6592 lists inherited group members by default6593 lists direct group members only6594 lists inherited group members only6595 when webui_members_inherited_users is disabled6596 lists inherited group members only6597 PUT update6598 access level6599 can change the access level to Guest6600 can change the access level to Reporter6601 can change the access level to Developer6602 can change the access level to Maintainer6603 access expiry date6604 when set to a date in the past6605 does not update the member6606 returns error status6607 returns error message6608 when set to a date in the future6609 updates the member6610 expiration date6611 when `expires_at` is set6612 returns correct json response6613 when `expires_at` is not set6614 returns empty json response6615 DELETE destroy6616 when member is not found6617 returns 4036618 when member is found6619 when user does not have enough rights6620 returns 4036621 when user has enough rights6622 [HTML] removes user from members6623 [HTML] removes user from members including subgroups and projects6624 [JS] removes user from members6625 DELETE leave6626 when member is not found6627 returns 4046628 when member is found6629 and is not an owner6630 removes user from members6631 supports json request6632 and is an owner6633 cannot remove user from the group6634 and there is a group project bot owner6635 cannot remove user from the group6636 and there is another owner6637 removes user from members6638 and is a requester6639 removes user from members6640 POST request_access6641 creates a new GroupMember that is not a team member6642 POST approve_access_request6643 when member is not found6644 returns 4036645 when member is found6646 when user does not have enough rights6647 returns 4036648 when user has enough rights6649 adds user to members6650 with external authorization enabled6651 GET #index6652 is successful6653 PUT #update6654 is successful6655 DELETE #destroy6656 is successful6657 POST #destroy6658 is successful6659 POST #approve_request_access6660 is successful6661 DELETE #leave6662 is successful6663 POST #resend_invite6664 is successful6665Dashboard::TodosController6666 GET #index6667 project authorization6668 renders 404 when user does not have read access on given project6669 renders 404 when given project does not exists6670 renders 200 when filtering for "any project" todos6671 renders 200 when user has access on given project6672 with render_views6673 avoids N+1 queries6674 group authorization6675 renders 404 when user does not have read access on given group6676 behaves like paginated collection6677 renders a page number that is not ouf of range6678 redirects to last_page if page number is larger than number of pages6679 does not redirect to external sites when provided a host field6680 when providing no filters6681 does not perform a query to get the page count, but gets that from the user6682 when providing filters6683 performs a query to get the correct page count6684 returns directly addressed if filtering by mentioned action_id6685 external authorization6686 behaves like disabled when using an external authorization service6687 works when the feature is not enabled6688 renders a 404 with a message when the feature is enabled6689 PATCH #restore6690 restores the todo to pending state6691 PATCH #bulk_restore6692 restores the todos to pending state6693API::PackageFiles6694 GET /projects/:id/packages/:package_id/package_files6695 without the need for a license6696 project is public6697 returns 2006698 returns 404 if package does not exist6699 project is private6700 returns 404 for non authenticated user6701 returns 404 for a user without access to the project6702 returns 200 and valid response schema6703 with pagination params6704 when viewing the first page6705 returns first 2 packages6706 viewing the second page6707 returns the last package6708 with package files pending destruction6709 does not return them6710 DELETE /projects/:id/packages/:package_id/package_files/:package_file_id6711 project is public6712 returns 403 for a user without access to the project6713 without user6714 returns 403 for non authenticated user6715 project is private6716 returns 404 for a user without access to the project6717 returns 403 for a user without enough permissions6718 returns 2046719 without user6720 returns 404 for non authenticated user6721 invalid file6722 returns 404 when the package file does not exist6723 with package file pending destruction6724 can not be accessed6725Projects::TagsController6726 GET index6727 returns the tags for the page6728 returns releases matching those tags6729 default sort for tags6730 sorts tags by recently updated6731 when Gitaly is unavailable6732 format: :html6733 returns 503 status code6734 format: :atom6735 returns 503 status code6736 @tag_pipeline_status6737 when no pipelines exist6738 is empty6739 when multiple tags exist6740 all relevant commit statuses are received6741 when a tag has multiple pipelines6742 chooses the latest to determine status6743 GET show6744 valid tag6745 is expected to respond with 2006746 invalid tag6747 is expected to respond with 4046748 POST #create6749 creates tag6750 when release description is set6751 creates tag and release6752 passes the last pipeline for evidence creation6753 DELETE #destroy6754 deletes tag and redirects to tags path6755Groups::ReleasesController6756 GET #index6757 as json6758 json_response6759 returns an application/json content_type6760 returns OK6761 the user is not authorized6762 does not return any releases6763 returns OK6764 the user is authorized6765 returns all group's public and private project's releases as JSON, ordered by released_at6766 N+1 queries6767 avoids N+1 database queries6768Profiles::TwoFactorAuthsController6769 GET show6770 generates otp_secret for user6771 assigns qr_code6772 generates a single otp_secret with multiple page loads6773 generates a new otp_secret once the ttl has expired6774 behaves like user must first verify their primary email address6775 redirects to profile_emails_path6776 displays a notice6777 POST create6778 with valid pin6779 enables 2fa for the user6780 presents plaintext codes for the user to save6781 calls to delete other sessions6782 dismisses the `TWO_FACTOR_AUTH_RECOVERY_SETTINGS_CHECK` callout6783 renders create6784 with invalid pin6785 assigns error6786 assigns qr_code6787 assigns account_string6788 renders show6789 behaves like user must enter a valid current password6790 requires the current password6791 assigns qr_code6792 assigns account_string6793 when the user is on the last sign in attempt6794 is expected to be access locked6795 when user authenticates with an external service6796 does not require the current password6797 when password authentication is disabled6798 does not require the current password6799 when the user is an LDAP user6800 does not require the current password6801 behaves like user must first verify their primary email address6802 redirects to profile_emails_path6803 displays a notice6804 POST codes6805 presents plaintext codes for the user to save6806 persists the generated codes6807 dismisses the `TWO_FACTOR_AUTH_RECOVERY_SETTINGS_CHECK` callout6808 behaves like user must enter a valid current password6809 requires the current password6810 assigns qr_code6811 assigns account_string6812 when the user is on the last sign in attempt6813 is expected to be access locked6814 when user authenticates with an external service6815 does not require the current password6816 when password authentication is disabled6817 does not require the current password6818 when the user is an LDAP user6819 does not require the current password6820 DELETE destroy6821 for a user that has 2FA enabled6822 disables two factor6823 redirects to profile_account_path6824 displays a notice on success6825 behaves like user must enter a valid current password6826 requires the current password6827 assigns qr_code6828 assigns account_string6829 when the user is on the last sign in attempt6830 is expected to be access locked6831 when user authenticates with an external service6832 does not require the current password6833 when password authentication is disabled6834 does not require the current password6835 when the user is an LDAP user6836 does not require the current password6837 for a user that does not have 2FA enabled6838 redirects to profile_account_path6839 displays an alert on failure6840GraphqlController6841 rescue_from6842 handles ArgumentError6843 handles a timeout nicely6844 handles StandardError6845 POST #execute6846 includes request object in context6847 when user is logged in6848 sets feature category in ApplicationContext from request6849 returns 200 when user can access API6850 executes a simple query with no errors6851 executes a simple multiplexed query with no errors6852 sets a limit on the total query size6853 sets a limit on the total query size for multiplex queries6854 returns forbidden when user cannot access API6855 updates the users last_activity_on field6856 sets context's sessionless value as false6857 calls the track api when trackable method6858 calls the track jetbrains api when trackable method6859 calls the track gitlab cli when trackable method6860 assigns username in ApplicationContext6861 when 2FA is required for the user6862 does not redirect if 2FA is enabled6863 when user uses an API token6864 updates the users last_activity_on field6865 sets context's sessionless value as true6866 assigns username in ApplicationContext6867 calls the track api when trackable method6868 calls the track jetbrains api when trackable method6869 calls the track gitlab cli when trackable method6870 when the user is a project bot6871 updates the users last_activity_on field6872 sets context's sessionless value as true6873 executes a simple query with no errors6874 can access resources the project_bot has access to6875 when user is not logged in6876 returns 2006877 sets context's sessionless value as false6878 does not assign a username in ApplicationContext6879 Admin Mode6880 when admin mode enabled6881 can query project data6882 when admin mode disabled6883 cannot query project data6884 when admin is member of the project6885 can query project data6886 #append_info_to_payload6887 appends metadata for logging6888 appends the exception in case of errors6889 removal of deprecated items6890 without `remove_deprecated` param6891 sets context's `remove_deprecated` value to false6892 returns deprecated items in response6893 with `remove_deprecated` param6894 sets context's `remove_deprecated` value to true6895 does not allow deprecated field6896 does not allow deprecated enum value6897 does not allow deprecated argument6898Git LFS File Locking API6899 Create File Lock endpoint6900 when user does not have download permission6901 returns a 404 response6902 when user does not have upload permission6903 returns a 403 response6904 with an existent lock6905 return an error message6906 returns the existen lock6907 without an existent lock6908 creates the lock6909 Listing File Locks endpoint6910 returns the list of locked files6911 when user does not have download permission6912 returns a 404 response6913 when user does not have upload permission6914 returns a 403 response6915 List File Locks for verification endpoint6916 returns the list of locked files grouped by owner6917 when user does not have download permission6918 returns a 404 response6919 when user does not have upload permission6920 returns a 403 response6921 Delete File Lock endpoint6922 when user does not have download permission6923 returns a 404 response6924 when user does not have upload permission6925 returns a 403 response6926 with an existent lock6927 deletes the lock6928 returns the deleted lock6929 when a maintainer uses force6930 deletes the lock6931Projects::MergeRequests::ContentController6932 user has access to the project6933 GET cached_widget6934 renders widget MR entity as json6935 closes an MR with moved source project6936 GET widget6937 checks whether the MR can be merged6938 merged merge request6939 renders widget MR entity as json6940 with coverage data6941 renders widget MR entity as json6942 user does not have access to the project6943 GET cached_widget6944 returns 4046945 GET widget6946 returns 4046947Projects::PerformanceMonitoring::DashboardsController6948 POST #create6949 authenticated user6950 project with repository feature6951 with rights to push to the repository6952 valid parameters6953 delegates cloning to ::Metrics::Dashboard::CloneDashboardService6954 request format json6955 returns services response6956 Metrics::Dashboard::CloneDashboardService failure6957 returns json with failure message6958 param commit_message is missing6959 responds with bad request status and error message6960 param file_name is missing6961 responds with bad request status and error message6962 param dashboard is missing6963 responds with bad request status and error message6964 param branch_name is missing6965 responds with bad request status and error message6966 without rights to push to repository6967 responds with :forbidden status code6968 project without repository feature6969 responds with :not_found status code6970 PUT #update6971 authenticated user6972 project with repository feature6973 with rights to push to the repository6974 valid parameters6975 request format json6976 returns path to new file6977 UpdateDashboardService failure6978 returns json with failure message6979 missing branch6980 raises responds with :bad_request status code and error message6981 without rights to push to repository6982 responds with :forbidden status code6983 project without repository feature6984 responds with :not_found status code6985Adding an AwardEmoji6986 when the user does not have permission6987 behaves like a mutation that does not create an AwardEmoji6988 is expected not to change `AwardEmoji.count`6989 behaves like a mutation that returns a top-level access error6990 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"6991 when the user has permission6992 when the given awardable is not an Awardable6993 behaves like a mutation that does not create an AwardEmoji6994 is expected not to change `AwardEmoji.count`6995 behaves like a mutation that returns top-level errors6996 is expected to include /was provided invalid value for awardableId/6997 when the given awardable is an Awardable but still cannot be awarded an emoji6998 behaves like a mutation that does not create an AwardEmoji6999 is expected not to change `AwardEmoji.count`7000 behaves like a mutation that returns top-level errors7001 is expected to contain exactly "You cannot award emoji to this resource."7002 when the given awardable is an Awardable7003 creates an emoji7004 returns the emoji7005 marking Todos as done7006 type: :issue, expectation: true7007 is expected to eq true7008 type: :merge_request, expectation: true7009 is expected to eq true7010 type: :project_snippet, expectation: false7011 is expected to eq false7012 for notes7013 regular Notes7014 marks the Todo as done7015 PersonalSnippet Notes7016 does not mark the Todo as done7017 when there were active record validation errors7018 returns an empty awardEmoji7019 behaves like a mutation that does not create an AwardEmoji7020 is expected not to change `AwardEmoji.count`7021 behaves like a mutation that returns errors in the response7022 is expected to contain exactly "Error 1" and "Error 2"7023API::Internal::ContainerRegistry::Migration7024 PUT /internal/registry/repositories/:path/migration/status7025 with a valid sent token7026 with status pre_import_complete7027 behaves like returning an error7028 returns bad request response7029 with repository in pre_importing migration state7030 behaves like updating the repository migration status7031 updates the migration status from pre_importing to importing7032 with a failing transition7033 behaves like returning an error7034 returns bad request response7035 with repository in importing migration state7036 returns ok and does not update the migration state7037 with status import_complete7038 behaves like returning an error7039 returns bad request response7040 with repository in importing migration state7041 behaves like updating the repository migration status7042 updates the migration status from importing to import_done7043 with a failing transition7044 behaves like returning an error7045 returns bad request response7046 with repository in pre_importing migration state7047 behaves like updating the repository migration status7048 updates the migration status from pre_importing to import_done7049 with status pre_import_failed7050 behaves like returning an error7051 returns bad request response7052 with repository in importing migration state7053 behaves like updating the repository migration status7054 updates the migration status from importing to import_aborted7055 with repository in pre_importing migration state7056 behaves like updating the repository migration status7057 updates the migration status from pre_importing to import_aborted7058 with repository in unabortable migration state7059 behaves like returning an error7060 returns bad request response7061 with status pre_import_failed7062 behaves like returning an error7063 returns bad request response7064 with repository in importing migration state7065 behaves like updating the repository migration status7066 updates the migration status from importing to import_aborted7067 with repository in pre_importing migration state7068 behaves like updating the repository migration status7069 updates the migration status from pre_importing to import_aborted7070 with repository in unabortable migration state7071 behaves like returning an error7072 returns bad request response7073 with a non existing path7074 behaves like returning an error7075 returns bad request response7076 with invalid status7077 behaves like returning an error7078 returns bad request response7079 with invalid path7080 behaves like returning an error7081 returns bad request response7082 query read location7083 reads from the primary7084 with an invalid sent token7085 behaves like returning an error7086 returns bad request response7087Projects::MetricsDashboardController7088 GET /:namespace/:project/-/metrics7089 redirects to default environment's metrics dashboard7090 assigns default_environment7091 retains existing parameters when redirecting7092 with anonymous user and public dashboard visibility7093 returns 2007094 GET /:namespace/:project/-/metrics?environment=:environment.id7095 returns 2007096 assigns query param environment7097 when query param environment does not exist7098 responds with 4047099 GET /:namespace/:project/-/metrics/:dashboard_path7100 returns 2007101 assigns environment7102 GET :/namespace/:project/-/metrics/:dashboard_path?environment=:environment.id7103 returns 2007104 assigns query param environment7105 when query param environment does not exist7106 responds with 4047107 GET :/namespace/:project/-/metrics/:page7108 returns 200 with path param page7109 returns 200 with dashboard and path param page7110deleting designs7111 the designs list is empty7112 behaves like a failed request7113 reports an error7114 the designs list contains filenames we cannot find7115 behaves like a failed request7116 reports an error7117 the current user does not have developer access7118 behaves like a failed request7119 reports an error7120 when the issue does not exist7121 behaves like a failed request7122 reports an error7123 when saving the designs raises an error7124 responds with errors7125 one of the designs is already deleted7126 reports an error7127 when the user names designs to delete7128 deletes the designs7129 has no errors7130API::Clusters::Agents7131 GET /projects/:id/cluster_agents7132 avoids N+1 queries7133 authorized user7134 returns project agents7135 returns empty list when no agents registered7136 unauthorized user7137 unable to access agents7138 GET /projects/:id/cluster_agents/:agent_id7139 authorized user7140 returns a project agent7141 returns a 404 error if agent id is not available7142 unauthorized user7143 unable to access an existing agent7144 POST /projects/:id/cluster_agents7145 adds agent to project7146 returns a 400 error if name not given7147 returns a 400 error if name is invalid7148 returns 404 error if project does not exist7149 DELETE /projects/:id/cluster_agents/:agent_id7150 deletes agent from project7151 returns a 404 error when deleting non existent agent7152 returns a 404 error if agent id not given7153 returns a 403 if the user is unauthorized to delete7154 behaves like 412 response7155 for a modified ressource7156 returns 412 with a JSON error7157 for an unmodified ressource7158 returns 204 with an empty body7159Groups::VariablesController7160 GET #show7161 renders the variables as json7162 has only one variable7163 when the user is a maintainer7164 returns not found response7165 PATCH #update7166 with invalid new variable parameters7167 does not update the existing variable7168 does not create the new variable7169 returns a bad request response7170 with duplicate new variable parameters7171 does not update the existing variable7172 does not create the new variable7173 returns a bad request response7174 with valid new variable parameters7175 updates the existing variable7176 creates the new variable7177 returns a successful response7178 has all variables in response7179 with a deleted variable7180 destroys the variable7181 returns a successful response7182 has all variables in response7183 with missing variable7184 returns not found response7185 for variables of type file7186 creates new variable of type file7187 when the user is a maintainer7188 returns not found response7189 with external authorization enabled7190 GET #show7191 is successful7192 PATCH #update7193 is successful7194Create an issue7195 the user is not allowed to create an issue7196 behaves like a mutation that returns a top-level access error7197 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"7198 when user has permissions to create an issue7199 creates the issue7200 behaves like has spam protection7201 #check_spam_action_response!7202 when the object is spam (DISALLOW)7203 and no CAPTCHA is available7204 behaves like disallow response7205 informs the client that the request was denied as spam7206 and a CAPTCHA is required7207 behaves like disallow response7208 informs the client that the request was denied as spam7209 when the object is not spam (CONDITIONAL ALLOW)7210 and no CAPTCHA is required7211 does not return a top-level error7212 and a CAPTCHA is required7213 informs the client that the request may be retried after solving the CAPTCHA7214 when creating an issue of type TASK7215 creates an issue with TASK type7216 when position params are provided7217 sets the correct position7218ProfilesController7219 POST update7220 does not update password7221 PUT update7222 allows an email update from a user without an external email address7223 allows an email update without confirmation if existing verified email7224 ignores an email update from a user with an external email address7225 ignores an email and name update but allows a location update from a user with external email and name, but not external location7226 allows setting a user status7227 allows updating user specified job title7228 allows updating user specified pronouns7229 allows updating user specified pronunciation7230 GET audit_log7231 tracks search event7232 loads page correctly7233 PUT update_username7234 allows username change7235 updates a username using JSON request7236 renders an error message when the username was not updated7237 raises a correct error when the username is missing7238 with legacy storage7239 moves dependent projects to new namespace7240 with hashed storage7241 keeps repository location unchanged on disk7242 when the rate limit is reached7243 does not update the username and returns status 429 Too Many Requests7244MetricsDashboard7245 GET #metrics_dashboard7246 when no parameters are provided7247 returns an error json_response7248 when params are provided7249 returns the specified dashboard7250 when the params are in an alternate format7251 returns the specified dashboard7252 when environment for dashboard is available7253 returns the specified dashboard7254 when dashboard path includes encoded characters7255 decodes dashboard path7256 when parameters are provided and the list of all dashboards is required7257 returns a dashboard in addition to the list of dashboards7258 in all_dashboard list7259 includes project_blob_path only for project dashboards7260 allows editing only for project dashboards7261 includes out_of_the_box_dashboard key7262 project permissions7263 can_collaborate: false, system_can_edit: false, project_can_edit: false7264 sets can_edit appropriately7265 can_collaborate: true, system_can_edit: false, project_can_edit: true7266 sets can_edit appropriately7267 starred dashboards7268 adds starred dashboard information and sorts the list7269Create a work item7270 the user is not allowed to create a work item7271 behaves like a mutation that returns a top-level access error7272 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"7273 when user has permissions to create a work item7274DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7275DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7276 creates the work item7277 when input is invalid7278 does not create and returns validation errors7279 behaves like has spam protection7280 #check_spam_action_response!7281 when the object is spam (DISALLOW)7282 and no CAPTCHA is available7283 behaves like disallow response7284 informs the client that the request was denied as spam7285 and a CAPTCHA is required7286 behaves like disallow response7287 informs the client that the request was denied as spam7288 when the object is not spam (CONDITIONAL ALLOW)7289 and no CAPTCHA is required7290DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7291DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7292 does not return a top-level error7293 and a CAPTCHA is required7294 informs the client that the request may be retried after solving the CAPTCHA7295 with hierarchy widget input7296 when setting parent7297 updates the work item parent7298 when parent work item type is invalid7299 returns error7300 when parent work item is not found7301 returns a top level error7302 when unsupported widget input is sent7303 behaves like a mutation that returns top-level errors7304 is expected to contain exactly "Following widget keys are not supported by Test Case type: [:hierarchy_widget]"7305 with milestone widget input7306 when setting milestone on work item creation7307 when assigning a project milestone7308 behaves like work item's milestone is set7309 sets the work item's milestone7310 when assigning a group milestone7311 behaves like work item's milestone is set7312 sets the work item's milestone7313query Jira import data7314 when user cannot read Jira import data7315 when anonymous user7316 is expected to be nil7317 when user developer7318 is expected to be nil7319 when user can access Jira import data7320 behaves like a working graphql query7321 returns a successful response7322 list of jira imports sorted ascending by scheduledAt time7323 retuns list of jira imports7324 jira imports pagination7325 first jira import7326 returns latest jira import data7327 lastest jira import7328 returns latest jira import data7329 jira import status7330 when user cannot access project7331 does not return import status7332 when user can access project7333 when import never ran7334 returns import status7335 when import finished7336 returns import status7337 when import running7338 returns import status7339API::ErrorTracking::Collector7340 POST /error_tracking/collector/api/:id/envelope7341 behaves like successful request7342 writes to the database and returns OK7343 intergrated error tracking feature flag is disabled7344 behaves like not found7345 reponds with 4047346 error tracking feature is disabled7347 behaves like not found7348 reponds with 4047349 integrated error tracking is disabled7350 behaves like not found7351 reponds with 4047352 auth headers are missing7353 behaves like bad request7354 responds with 4007355 public key is wrong7356 behaves like not found7357 reponds with 4047358 public key is inactive7359 behaves like not found7360 reponds with 4047361 empty body7362 behaves like bad request7363 responds with 4007364 unknown request type7365 behaves like bad request7366 responds with 4007367 transaction request type7368 does nothing and returns ok7369 gzip body7370 with application/x-sentry-envelope Content-Type7371 behaves like successful request7372 writes to the database and returns OK7373 with unexpected Content-Type7374 responds with 4157375 POST /error_tracking/collector/api/:id/store7376 behaves like successful request7377 writes to the database and returns OK7378 empty headers7379 behaves like bad request7380 responds with 4007381 empty body7382 behaves like bad request7383 responds with 4007384 body with string instead of json7385 behaves like bad request7386 responds with 4007387 collector fails with validation error7388 behaves like bad request7389 responds with 4007390 with platform field too long7391 behaves like bad request7392 responds with 4007393 gzip body7394 behaves like successful request7395 writes to the database and returns OK7396 body contains nullbytes7397 behaves like successful request7398 writes to the database and returns OK7399 when JSON key transaction is empty string7400 behaves like successful request7401 writes to the database and returns OK7402 sentry_key as param and empty headers7403 key is wrong7404 behaves like not found7405 reponds with 4047406 key is empty7407 behaves like bad request7408 responds with 4007409 key is correct7410 behaves like successful request7411 writes to the database and returns OK7412getting dependency proxy image ttl policy for a group7413 behaves like a working graphql query7414 returns a successful response7415 with different permissions7416 group_visibility: :private, role: :maintainer, access_granted: true7417 return the proper response7418 group_visibility: :private, role: :developer, access_granted: false7419 return the proper response7420 group_visibility: :private, role: :reporter, access_granted: false7421 return the proper response7422 group_visibility: :private, role: :guest, access_granted: false7423 return the proper response7424 group_visibility: :private, role: :anonymous, access_granted: false7425 return the proper response7426 group_visibility: :public, role: :maintainer, access_granted: true7427 return the proper response7428 group_visibility: :public, role: :developer, access_granted: false7429 return the proper response7430 group_visibility: :public, role: :reporter, access_granted: false7431 return the proper response7432 group_visibility: :public, role: :guest, access_granted: false7433 return the proper response7434 group_visibility: :public, role: :anonymous, access_granted: false7435 return the proper response7436Projects::RefsController7437 GET #logs_tree7438 never throws MissingTemplate7439 renders 404 for HTML requests7440 when ref is incorrect7441 returns 404 page7442 when offset has an invalid format7443 renders JSON7444 when json is requested7445 renders JSON7446Query7447 gitpodEnabled field7448 When Gitpod is enabled for the application7449 is expected to include {"gitpodEnabled" => true}7450 When Gitpod is disabled for the application7451 is expected to include {"gitpodEnabled" => false}7452 .designManagement7453 .version7454 fetches the expected data7455 behaves like a working graphql query7456 returns a successful response7457 behaves like a query that needs authorization7458 the current user is not able to read designs7459 does not retrieve the record7460 raises an error7461 .designAtVersion7462 behaves like a working graphql query7463DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7464 returns a successful response7465 behaves like a query that needs authorization7466 the current user is not able to read designs7467 does not retrieve the record7468 raises an error7469 the current user is able to read designs7470DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7471 fetches the expected data, including the correct associations7472Users::TermsController7473 GET #index7474 when a user is signed in7475 redirects when no terms exist7476 when terms exist7477 shows terms when they exist7478 shows a message when the user already accepted the terms7479 when a user is not signed in7480 when terms exist7481 returns success response7482 when no terms exist7483 redirects7484 POST #accept7485 when a user is signed in7486 saves that the user accepted the terms7487 redirects to a path when specified7488 redirects to the referer when no redirect specified7489 redirecting to another domain7490 is prevented when passing a redirect param7491 is prevented when redirecting to the referer7492 when a user is not signed in7493 redirects to login page7494 POST #decline7495 when a user is signed in7496 stores that the user declined the terms7497 signs out the user7498 when a user is not signed in7499 redirects to login page7500Query.ciConfig7501 returns the correct structure7502 behaves like a working graphql query7503 returns a successful response7504 when the config file includes other files7505 returns the correct structure with included files7506 behaves like a working graphql query7507 returns a successful response7508 when the config file has multiple includes7509 returns correct includes7510 behaves like a working graphql query7511 returns a successful response7512Projects::Harbor::TagsController7513 behaves like a harbor tags controller7514 GET #index.json7515 with harbor registry feature flag enabled7516 behaves like responds with 200 status with json7517 renders the index template7518 with harbor registry feature flag disabled7519 behaves like responds with 404 status7520 returns 4047521 with anonymous user7522 behaves like responds with 302 status7523 returns 3027524 with unauthorized user7525 behaves like responds with 404 status7526 returns 4047527 with valid params7528 with valid repository7529 behaves like responds with 200 status with json7530 renders the index template7531 with valid page7532 behaves like responds with 200 status with json7533 renders the index template7534 with valid limit7535 behaves like responds with 200 status with json7536 renders the index template7537 with invalid params7538 with invalid page7539 behaves like responds with 422 status with json7540 returns 4227541 with invalid limit7542 behaves like responds with 422 status with json7543 returns 4227544Query.project.job7545 # order random7546 when the user cannot read jobs on the project7547 returns null7548 when the user can read jobs on the project7549 returns the job that matches the given ID7550 when no job matches the given ID7551 returns null7552Mutations::Boards::Lists::Destroy7553 behaves like board lists destroy request7554 when the user does not have permission7555 does not destroy the list7556 returns an error7557 when the user has permission7558 when given id is not for a list7559 returns an error7560 when list does not exist7561 returns a top level error7562 when everything is ok7563 destroys the list7564 returns an empty list7565 when the list is not destroyable7566 behaves like does not destroy the list and returns an error7567 does not destroy the list7568 returns an error and not nil list7569Projects::Security::ConfigurationController7570 GET show7571 when user has guest access7572 denies access7573 when user has developer access7574 grants access7575 responds with configuration data json7576 with feature flag unify_security_configuration turned off7577 responds with empty configuration data json7578Timelogs through GroupQuery7579 Get list of timelogs from a group issues7580 when the project is private7581 when the user is not a member of the project7582 returns no timelogs7583 when the user is a member of the project7584 returns timelogs7585 when the request is correct7586 returns timelogs successfully7587 contains correct data7588 behaves like a working graphql query7589 returns a successful response7590 when arguments with no time are present7591 sets times as start of day and end of day7592 when requests has errors7593 when there are no timelogs present7594 returns empty result7595Import::PhabricatorController7596 GET #new7597 when the import source is not available7598 is expected to respond with numeric status code not_found7599 when the feature is disabled7600 is expected to respond with numeric status code not_found7601 when the import is available7602 is expected to respond with numeric status code ok7603 POST #create7604 with valid params7605 creates a project to import7606 when an import param is missing7607 does not create the project7608 when a project param is missing7609 does not create the project7610 behaves like project import rate limiter7611 when limit exceeds7612 notifies and redirects user7613groups autocomplete7614 #issues7615 issue_types: nil, expected: :all7616 returns the correct response7617 issue_types: "", expected: :all7618 returns the correct response7619 issue_types: "invalid", expected: :none7620 returns the correct response7621 issue_types: "issue", expected: :issue7622 returns the correct response7623 issue_types: "incident", expected: :incident7624 returns the correct response7625 #milestones7626 returns correct response7627JiraConnect::InstallationsController7628 GET /-/jira_connect/installations7629 without JWT7630 returns 4037631 with valid JWT7632 returns status ok7633 returns the installation as json7634 with instance_url7635 returns the installation as json7636 PUT /-/jira_connect/installations7637 without JWT7638 returns 4037639 with valid JWT7640 returns 2007641 updates the instance_url7642 invalid URL7643 returns 422 and errors7644Profiles::PreferencesController7645 GET show7646 renders7647 assigns user7648 PATCH update7649 on successful update7650 responds with success7651 changes the user's preferences7652 on failed update7653 responds with error7654 on invalid dashboard setting7655 responds with error7656 on invalid diffs colors setting7657 responds with error for diffs_deletion_color7658 responds with error for diffs_addition_color7659Repositioning an ImageDiffNote7660 updates the note7661 when the note is not a DiffNote7662 behaves like a mutation that returns top-level errors7663 is expected to include /does not represent an instance of DiffNote/7664 when a position arg is nil7665 does not set the property to nil7666 when all position args are nil7667 behaves like a mutation that returns top-level errors7668 is expected to include /At least one property of `UpdateDiffImagePositionInput` must be set/7669getting group label information7670 behaves like querying a GraphQL type with labels7671 running a query7672 minimum required arguments7673 returns the label information7674 returns the labels information7675 with a search param7676 finds the matching labels7677 the label does not exist7678 returns nil7679 performance7680 batches queries for labels by title7681API::GroupAvatar7682 GET /groups/:id/avatar7683 when the group is public7684 retrieves the avatar successfully7685 when the avatar is in the object storage7686 redirects to the file in the object storage7687 when the group does not have avatar7688 returns :not_found7689 when the group is a subgroup7690 returns :ok7691 when the group is private7692 when the user is not authenticated7693 returns :not_found7694 when the the group user is authenticated7695 and have access to the group7696 retrieves the avatar successfully7697 and does not have access to the group7698 returns :not_found7699Setting the escalation status of an incident7700 sets given escalation_policy to the escalation status for the issue7701 when user does not have permission to edit the escalation status7702 behaves like a mutation that returns a top-level access error7703 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"7704 with non-incident issue is provided7705 behaves like a mutation that returns top-level errors7706 is expected to contain exactly "Feature unavailable for provided issue"7707 when status argument is not given7708 behaves like a mutation that returns top-level errors7709 is expected to contain exactly (include "status (Expected value to not be null)")7710 when status argument is invalid7711 behaves like an invalid argument to the mutation7712 behaves like a mutation that returns top-level errors7713 is expected to contain exactly (include "invalid value for status")7714Import::ManifestController7715 POST upload7716 with a valid manifest7717 saves the manifest and redirects to the status page7718 with an invalid manifest7719 displays an error7720 when the user cannot create projects in the group7721 displays an error7722 GET status7723 when the data is stored via Gitlab::ManifestImport::Metadata7724 returns variables for json request7725 when the data is stored in the user session7726 returns variables for json request7727SortingPreference7728 #set_sort_order7729 when user preference contains allowed sorting7730 sets sort order from user_preference7731 when user preference contains weight sorting7732 when user can sort by issue weight7733 sets sort order from user_preference7734 when user cannot sort by issue weight7735 sets default sort order7736 #set_sort_order_from_user_preference7737 when sort param given7738 when sorting_field is defined7739 sets user_preference with the right value7740 when no sorting_field is defined on the controller7741 does not touch user_preference7742 when a user sorting preference exists7743 returns the set preference7744 #set_set_order_from_cookie7745 when sort param given7746 sets the cookie with the right values and flags7747 when cookie exists7748 sets the cookie with the right values and flags7749RepositoryCheckMailer7750 .notify7751 emails all admins7752 email with I18n.default_locale7753 omits blocked admins7754 mentions the number of failed checks7755 with footer and header7756 behaves like appearance header and footer enabled7757 contains header and footer7758 behaves like appearance header and footer not enabled7759 does not contain header and footer7760Projects::IssueLinksController7761 GET #index7762 returns success response7763 POST #create7764 returns success response7765Admin::IntegrationsController7766 GET #overrides7767 format html7768 renders7769 format json7770 returns the project overrides data7771File uploads7772 POST /:namespace/:project/create/:branch7773 redirects to blob7774Creation of a new release asset link7775 creates and returns a new asset link associated to the provided release7776Projects::ErrorTracking::ProjectsController7777 GET #index7778 with insufficient permissions7779 returns 4047780 with an anonymous user7781 redirects to sign-in page7782 with authorized user7783 when service result is successful7784 returns a list of projects7785 with service result is erroneous7786 without http_status7787 returns 400 with message7788 with explicit http_status7789 returns http_status with message7790getting blobs in a project repository7791 returns the blob7792Explore::GroupsController7793 renders group trees7794 includes public projects7795 restricted visibility level is public7796 redirects to login page7797Updating the dependency proxy group settings7798 post graphql mutation7799 without permission7800 returns no response7801 with permission7802 returns the updated dependency proxy settings7803Group callouts7804 POST /-/users/group_callouts7805 with valid feature name and group7806 when callout entry does not exist7807 creates a callout entry with dismissed state7808 returns success7809 when callout entry already exists7810 returns success7811 with invalid feature name7812 returns bad request7813SpammableActions::CaptchaCheck::HtmlFormatActionsSupport7814 #convert_html_spam_params_to_headers7815 converts params to headers7816 #with_captcha_check_html_format7817 when spammable.render_recaptcha? is true7818 renders :captcha_check7819 when spammable.render_recaptcha? is false7820 yields to block7821Every controller7822 feature categories7823 has feature categories7824 completed controllers don't get new routes without categories7825 recognizes the feature categories7826 doesn't define or exclude categories on removed actions7827Create a user callout7828 creates user callout7829Admin::HealthCheckController7830 GET show7831 loads the health information7832Harbor::Repository7833 behaves like raises NotImplementedError when calling #container7834 #container7835 raises NotImplementedError7836JiraConnect::OauthCallbacksController7837 GET /-/jira_connect/oauth_callbacks7838 when logged in7839 renders a page prompting the user to close the window7840Knapsack report was generated. Preview:7841{7842 "spec/requests/api/npm_instance_packages_spec.rb": 435.2781348399999,7843 "spec/controllers/projects/merge_requests_controller_spec.rb": 141.2915369399998,7844 "spec/requests/rack_attack_global_spec.rb": 103.20692803700013,7845 "spec/requests/api/ci/triggers_spec.rb": 100.26168654999992,7846 "spec/requests/api/ci/runner/jobs_request_post_spec.rb": 69.81284715100037,7847 "spec/requests/api/lint_spec.rb": 46.56586147300004,7848 "spec/requests/api/usage_data_queries_spec.rb": 54.983592402999875,7849 "spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 63.62274738299993,7850 "spec/controllers/projects/blob_controller_spec.rb": 40.87590570700013,7851 "spec/requests/api/ci/runner/jobs_trace_spec.rb": 29.86019587699957,7852 "spec/controllers/sessions_controller_spec.rb": 24.632242969000345,7853 "spec/requests/projects/google_cloud/databases_controller_spec.rb": 20.714044119999926,7854 "spec/requests/health_controller_spec.rb": 16.644773729000008,7855 "spec/controllers/groups/group_members_controller_spec.rb": 19.222278859000653,7856 "spec/controllers/dashboard/todos_controller_spec.rb": 19.27602832699995,7857 "spec/requests/api/package_files_spec.rb": 16.918963365999844,7858 "spec/controllers/projects/tags_controller_spec.rb": 17.535792358000435,7859 "spec/controllers/groups/releases_controller_spec.rb": 15.170845746999476,7860 "spec/controllers/profiles/two_factor_auths_controller_spec.rb": 9.658165642999847,7861 "spec/controllers/graphql_controller_spec.rb": 8.799585871999625,7862 "spec/requests/lfs_locks_api_spec.rb": 9.916265410999586,7863 "spec/controllers/projects/merge_requests/content_controller_spec.rb": 10.800524489000054,7864 "spec/controllers/projects/performance_monitoring/dashboards_controller_spec.rb": 10.689654453999538,7865 "spec/requests/api/graphql/mutations/award_emojis/add_spec.rb": 8.267001698000058,7866 "spec/requests/api/internal/container_registry/migration_spec.rb": 6.843713113000376,7867 "spec/requests/projects/metrics_dashboard_spec.rb": 7.354475538999395,7868 "spec/requests/api/graphql/mutations/design_management/delete_spec.rb": 8.799369651999768,7869 "spec/requests/api/clusters/agents_spec.rb": 8.727878286000305,7870 "spec/controllers/groups/variables_controller_spec.rb": 6.045704989999649,7871 "spec/requests/api/graphql/mutations/issues/create_spec.rb": 5.519859783999891,7872 "spec/controllers/profiles_controller_spec.rb": 5.0132030280001345,7873 "spec/controllers/concerns/metrics_dashboard_spec.rb": 6.0453752470002655,7874 "spec/requests/api/graphql/mutations/work_items/create_spec.rb": 5.791887473000315,7875 "spec/requests/api/graphql/project/jira_import_spec.rb": 4.112567291999767,7876 "spec/requests/api/error_tracking/collector_spec.rb": 3.0643121349994544,7877 "spec/requests/api/graphql/group/dependency_proxy_image_ttl_policy_spec.rb": 3.5042499669998506,7878 "spec/controllers/projects/refs_controller_spec.rb": 5.567097242999807,7879 "spec/requests/api/graphql/query_spec.rb": 3.6997325390002516,7880 "spec/controllers/users/terms_controller_spec.rb": 3.1178567130000374,7881 "spec/requests/api/graphql/ci/config_spec.rb": 4.746411546999298,7882 "spec/requests/projects/harbor/tags_controller_spec.rb": 3.397622882000178,7883 "spec/requests/api/graphql/project/job_spec.rb": 3.391258781000033,7884 "spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb": 3.611838063000505,7885 "spec/controllers/projects/security/configuration_controller_spec.rb": 3.095658043000185,7886 "spec/requests/api/graphql/group/timelogs_spec.rb": 3.145751511000526,7887 "spec/controllers/import/phabricator_controller_spec.rb": 2.6919240200004424,7888 "spec/requests/groups/autocomplete_sources_spec.rb": 2.080660815000556,7889 "spec/requests/jira_connect/installations_controller_spec.rb": 1.2377001499999096,7890 "spec/controllers/profiles/preferences_controller_spec.rb": 1.8287391750000097,7891 "spec/requests/api/graphql/mutations/notes/reposition_image_diff_note_spec.rb": 2.679361971000617,7892 "spec/requests/api/graphql/group/labels_query_spec.rb": 1.8524918439998146,7893 "spec/requests/api/group_avatar_spec.rb": 2.100194274000387,7894 "spec/requests/api/graphql/mutations/issues/set_escalation_status_spec.rb": 2.0479584770000656,7895 "spec/controllers/import/manifest_controller_spec.rb": 1.7119626799994876,7896 "spec/controllers/concerns/sorting_preference_spec.rb": 1.3334589460000643,7897 "spec/mailers/repository_check_mailer_spec.rb": 1.598698723999405,7898 "spec/controllers/projects/issue_links_controller_spec.rb": 1.9287675019995731,7899 "spec/requests/admin/integrations_controller_spec.rb": 1.463904160000311,7900 "spec/requests/projects/uploads_spec.rb": 1.4571877800008224,7901 "spec/requests/api/graphql/mutations/release_asset_links/create_spec.rb": 1.3897497339994516,7902 "spec/controllers/projects/error_tracking/projects_controller_spec.rb": 1.3223180560007677,7903 "spec/requests/api/graphql/project/repository/blobs_spec.rb": 1.4211615109998093,7904 "spec/controllers/explore/groups_controller_spec.rb": 1.0124635080001099,7905 "spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb": 0.9380102920003992,7906 "spec/requests/users/group_callouts_spec.rb": 0.7728556380006921,7907 "spec/controllers/concerns/spammable_actions/captcha_check/html_format_actions_support_spec.rb": 0.8909552140003143,7908 "spec/controllers/every_controller_spec.rb": 0.5215482989997327,7909 "spec/requests/api/graphql/mutations/user_callouts/create_spec.rb": 0.4202684730007604,7910 "spec/controllers/admin/health_check_controller_spec.rb": 0.4934429499999169,7911 "spec/controllers/concerns/harbor/repository_spec.rb": 0.30248520799977996,7912 "spec/requests/jira_connect/oauth_callbacks_controller_spec.rb": 0.281742479000058677913}7914Knapsack global time execution for tests: 23m 54s7915Finished in 23 minutes 57 seconds (files took 40.12 seconds to load)79162733 examples, 0 failures7917Randomized with seed 575017918[TEST PROF INFO] Time spent in factories: 08:06.330 (33.72% of total time)7919RSpec exited with 0.7920No examples to retry, congrats!7922Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7923Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7925Uploading artifacts...7926coverage/: found 5 matching files and directories 7927crystalball/: found 2 matching files and directories 7928deprecations/: found 5 matching files and directories 7929knapsack/: found 3 matching files and directories 7930rspec/: found 9 matching files and directories 7931WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 7932log/*.log: found 17 matching files and directories 7933WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3281613469/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7934WARNING: Retrying... context=artifacts-uploader error=request redirected7935Uploading artifacts as "archive" to coordinator... 201 Created id=3281613469 responseStatus=201 Created token=HH3-XQ_J7936Uploading artifacts...7937rspec/junit_rspec.xml: found 1 matching files and directories 7938WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3281613469/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7939WARNING: Retrying... context=artifacts-uploader error=request redirected7940Uploading artifacts as "junit" to coordinator... 201 Created id=3281613469 responseStatus=201 Created token=HH3-XQ_J7942Job succeeded