rspec integration pg12 2/12
Passed Started
by
@mrincon

Miguel Rincon
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on blue-2.private.runners-manager.gitlab.com/gitlab.com/gitlab-org QvBVRoXM3 feature flags: FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING: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:c5abf812eff57d99cd4ae9b4d688261207b59905c5d0ca50c5e57f75669dbf10 for postgres:12 with digest postgres@sha256:0619094e4045d67b34b9b4de10d4c433d03cd032c95145d259a97b3081562936 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:b5a61c880115e6a29b90b90aef1973eb232e48d3547092deb27f519e1ae98f11 for redis:6.0-alpine with digest redis@sha256:10c7dc799ef793b4c76fb5ef074fd1186121151b90a799b01393e137220bb61e ...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-qvbvroxm-project-278964-concurrent-0 via runner-qvbvroxm-private-1668428782-931b59e5...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: 134386, done. 25remote: Counting objects: 100% (134386/134386), done. 26remote: Compressing objects: 100% (87585/87585), done.27remote: Total 134386 (delta 60655), reused 92571 (delta 41765), pack-reused 0 28Receiving objects: 100% (134386/134386), 116.33 MiB | 32.89 MiB/s, done.29Resolving deltas: 100% (60655/60655), done.31 * [new ref] refs/pipelines/693894100 -> refs/pipelines/69389410032Checking out 5648e5c9 as refs/merge-requests/102535/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (3318206277)...44Downloading artifacts from coordinator... ok id=3318206277 responseStatus=200 OK token=uSYkRBbY45Downloading artifacts for detect-tests (3318206299)...46Downloading artifacts from coordinator... ok id=3318206299 responseStatus=200 OK token=uSYkRBbY47Downloading artifacts for retrieve-tests-metadata (3318206306)...48Downloading artifacts from coordinator... ok id=3318206306 responseStatus=200 OK token=uSYkRBbY49Downloading artifacts for setup-test-env (3318206286)...50Downloading artifacts from coordinator... ok id=3318206286 responseStatus=200 OK token=uSYkRBbY52Using 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 ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh690Using decomposed database config (config/database.yml.decomposed-postgresql)691$ setup_db_user_only692CREATE ROLE693GRANT694==> 'setup_db_user_only' succeeded in 1 seconds.695$ bundle exec rake db:drop db:create db:schema:load db:migrate696Dropped database 'gitlabhq_test'697Dropped database 'gitlabhq_test_ci'698Dropped database 'gitlabhq_geo_test'699Created database 'gitlabhq_test'700Created database 'gitlabhq_test_ci'701Created database 'gitlabhq_geo_test'702==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 33 seconds.703$ setup_db_praefect704SELECT pg_catalog.set_config('search_path', '', false);705CREATE DATABASE praefect_test ENCODING 'UTF8';706==> 'setup_db_praefect' succeeded in 0 seconds.707$ source ./scripts/rspec_helpers.sh708$ run_timed_command "gem install knapsack --no-document"709$ gem install knapsack --no-document710Successfully installed knapsack-4.0.07111 gem installed712==> 'gem install knapsack --no-document' succeeded in 0 seconds.713$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"827$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"828SKIP_FLAKY_TESTS_AUTOMATICALLY: true829RETRY_FAILED_TESTS_IN_NEW_PROCESS: true830KNAPSACK_GENERATE_REPORT: true831FLAKY_RSPEC_GENERATE_REPORT: true832KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb833KNAPSACK_LOG_LEVEL: debug834KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg12_2_12_report.json835FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json836FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg12_2_12_report.json837NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg12_2_12_report.json838SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_integration_pg12_2_12_report.txt839RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_integration_pg12_2_12_report.txt840CRYSTALBALL: 841Knapsack node specs:842spec/requests/api/npm_project_packages_spec.rb843spec/controllers/projects/pipelines_controller_spec.rb844spec/requests/api/badges_spec.rb845spec/controllers/projects/clusters_controller_spec.rb846spec/requests/api/issues/issues_spec.rb847spec/requests/api/lint_spec.rb848spec/controllers/ldap/omniauth_callbacks_controller_spec.rb849spec/requests/api/v3/github_spec.rb850spec/requests/api/group_labels_spec.rb851spec/controllers/projects/wikis_controller_spec.rb852spec/controllers/projects/merge_requests/creations_controller_spec.rb853spec/requests/api/personal_access_tokens_spec.rb854spec/controllers/projects/uploads_controller_spec.rb855spec/controllers/projects/mirrors_controller_spec.rb856spec/requests/api/project_import_spec.rb857spec/requests/api/markdown_golden_master_spec.rb858spec/controllers/groups/group_members_controller_spec.rb859spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb860spec/requests/api/graphql/project/releases_spec.rb861spec/controllers/projects/imports_controller_spec.rb862spec/requests/projects/clusters/integrations_controller_spec.rb863spec/requests/api/feature_flags_user_lists_spec.rb864spec/controllers/projects/design_management/designs/raw_images_controller_spec.rb865spec/controllers/projects/cycle_analytics_controller_spec.rb866spec/requests/api/graphql/packages/nuget_spec.rb867spec/requests/api/graphql/mutations/design_management/delete_spec.rb868spec/controllers/projects/merge_requests/content_controller_spec.rb869spec/mailers/emails/in_product_marketing_spec.rb870spec/controllers/groups/settings/applications_controller_spec.rb871spec/requests/groups/observability_controller_spec.rb872spec/requests/api/graphql/work_item_spec.rb873spec/controllers/projects/pipelines/stages_controller_spec.rb874spec/requests/api/ci/runners_reset_registration_token_spec.rb875spec/requests/api/error_tracking/client_keys_spec.rb876spec/requests/api/merge_request_approvals_spec.rb877spec/requests/admin/clusters/integrations_controller_spec.rb878spec/requests/api/graphql/users_spec.rb879spec/requests/api/graphql/user/starred_projects_query_spec.rb880spec/controllers/explore/groups_controller_spec.rb881spec/requests/api/graphql/boards/board_list_query_spec.rb882spec/requests/api/graphql/ci/config_spec.rb883spec/mailers/emails/releases_spec.rb884spec/requests/api/graphql/project/jira_import_spec.rb885spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb886spec/controllers/groups/imports_controller_spec.rb887spec/controllers/concerns/project_unauthorized_spec.rb888spec/controllers/jira_connect/events_controller_spec.rb889spec/controllers/concerns/checks_collaboration_spec.rb890spec/requests/api/graphql/group/labels_query_spec.rb891spec/requests/api/users_preferences_spec.rb892spec/requests/api/graphql/mutations/metrics/dashboard/annotations/delete_spec.rb893spec/requests/api/graphql/mutations/alert_management/prometheus_integration/create_spec.rb894spec/requests/api/graphql/mutations/ci/pipeline_schedule_delete_spec.rb895spec/controllers/admin/runner_projects_controller_spec.rb896spec/requests/api/graphql/mutations/incident_management/timeline_event/destroy_spec.rb897spec/requests/api/graphql/mutations/ci/job_play_spec.rb898spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb899spec/requests/api/graphql/mutations/alert_management/alerts/create_alert_issue_spec.rb900spec/requests/api/graphql/mutations/user_preferences/update_spec.rb901spec/requests/api/graphql/mutations/work_items/delete_spec.rb902spec/requests/mailgun/webhooks_controller_spec.rb903spec/requests/api/graphql/mutations/incident_management/timeline_event/promote_from_note_spec.rb904spec/controllers/concerns/check_rate_limit_spec.rb905spec/requests/api/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb906spec/requests/api/graphql/terraform/state/unlock_spec.rb907spec/requests/user_sends_malformed_strings_spec.rb908spec/controllers/profiles/gpg_keys_controller_spec.rb909spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb910spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rb911spec/controllers/concerns/harbor/repository_spec.rb912Filter specs:913Running specs:914Running all node tests without filter915spec/requests/api/npm_project_packages_spec.rb916spec/controllers/projects/pipelines_controller_spec.rb917spec/requests/api/badges_spec.rb918spec/controllers/projects/clusters_controller_spec.rb919spec/requests/api/issues/issues_spec.rb920spec/requests/api/lint_spec.rb921spec/controllers/ldap/omniauth_callbacks_controller_spec.rb922spec/requests/api/v3/github_spec.rb923spec/requests/api/group_labels_spec.rb924spec/controllers/projects/wikis_controller_spec.rb925spec/controllers/projects/merge_requests/creations_controller_spec.rb926spec/requests/api/personal_access_tokens_spec.rb927spec/controllers/projects/uploads_controller_spec.rb928spec/controllers/projects/mirrors_controller_spec.rb929spec/requests/api/project_import_spec.rb930spec/requests/api/markdown_golden_master_spec.rb931spec/controllers/groups/group_members_controller_spec.rb932spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb933spec/requests/api/graphql/project/releases_spec.rb934spec/controllers/projects/imports_controller_spec.rb935spec/requests/projects/clusters/integrations_controller_spec.rb936spec/requests/api/feature_flags_user_lists_spec.rb937spec/controllers/projects/design_management/designs/raw_images_controller_spec.rb938spec/controllers/projects/cycle_analytics_controller_spec.rb939spec/requests/api/graphql/packages/nuget_spec.rb940spec/requests/api/graphql/mutations/design_management/delete_spec.rb941spec/controllers/projects/merge_requests/content_controller_spec.rb942spec/mailers/emails/in_product_marketing_spec.rb943spec/controllers/groups/settings/applications_controller_spec.rb944spec/requests/groups/observability_controller_spec.rb945spec/requests/api/graphql/work_item_spec.rb946spec/controllers/projects/pipelines/stages_controller_spec.rb947spec/requests/api/ci/runners_reset_registration_token_spec.rb948spec/requests/api/error_tracking/client_keys_spec.rb949spec/requests/api/merge_request_approvals_spec.rb950spec/requests/admin/clusters/integrations_controller_spec.rb951spec/requests/api/graphql/users_spec.rb952spec/requests/api/graphql/user/starred_projects_query_spec.rb953spec/controllers/explore/groups_controller_spec.rb954spec/requests/api/graphql/boards/board_list_query_spec.rb955spec/requests/api/graphql/ci/config_spec.rb956spec/mailers/emails/releases_spec.rb957spec/requests/api/graphql/project/jira_import_spec.rb958spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb959spec/controllers/groups/imports_controller_spec.rb960spec/controllers/concerns/project_unauthorized_spec.rb961spec/controllers/jira_connect/events_controller_spec.rb962spec/controllers/concerns/checks_collaboration_spec.rb963spec/requests/api/graphql/group/labels_query_spec.rb964spec/requests/api/users_preferences_spec.rb965spec/requests/api/graphql/mutations/metrics/dashboard/annotations/delete_spec.rb966spec/requests/api/graphql/mutations/alert_management/prometheus_integration/create_spec.rb967spec/requests/api/graphql/mutations/ci/pipeline_schedule_delete_spec.rb968spec/controllers/admin/runner_projects_controller_spec.rb969spec/requests/api/graphql/mutations/incident_management/timeline_event/destroy_spec.rb970spec/requests/api/graphql/mutations/ci/job_play_spec.rb971spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb972spec/requests/api/graphql/mutations/alert_management/alerts/create_alert_issue_spec.rb973spec/requests/api/graphql/mutations/user_preferences/update_spec.rb974spec/requests/api/graphql/mutations/work_items/delete_spec.rb975spec/requests/mailgun/webhooks_controller_spec.rb976spec/requests/api/graphql/mutations/incident_management/timeline_event/promote_from_note_spec.rb977spec/controllers/concerns/check_rate_limit_spec.rb978spec/requests/api/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb979spec/requests/api/graphql/terraform/state/unlock_spec.rb980spec/requests/user_sends_malformed_strings_spec.rb981spec/controllers/profiles/gpg_keys_controller_spec.rb982spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb983spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rbKnapsack report generator started!984Run options: exclude {:quarantine=>true, :level=>"migration"}985Test environment set up in 0.689922235 seconds986API::NpmProjectPackages987 GET /api/v4/projects/:id/packages/npm/*package_name988 behaves like handling get metadata requests989 with a group namespace990 behaves like handling all conditions991 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok992 behaves like accept metadata request993 accepts the metadata request994 avoids N+1 database queries995 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok996 behaves like accept metadata request997 accepts the metadata request998 avoids N+1 database queries999 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1000 behaves like accept metadata request1001 accepts the metadata request1002 avoids N+1 database queries1003 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1004 behaves like accept metadata request1005 accepts the metadata request1006 avoids N+1 database queries1007 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1008 behaves like accept metadata request1009 accepts the metadata request1010 avoids N+1 database queries1011 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1012 behaves like accept metadata request1013 accepts the metadata request1014 avoids N+1 database queries1015 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected1016 behaves like redirect metadata request1017 redirects metadata request1018 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1019 behaves like reject metadata request1020 rejects the metadata request1021 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1022 behaves like reject metadata request1023 rejects the metadata request1024 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1025 behaves like reject metadata request1026 rejects the metadata request1027 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1028 behaves like reject metadata request1029 rejects the metadata request1030 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1031 behaves like reject metadata request1032 rejects the metadata request1033 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1034 behaves like reject metadata request1035 rejects the metadata request1036 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1037 behaves like reject metadata request1038 rejects the metadata request1039 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected1040 behaves like redirect metadata request1041 redirects metadata request1042 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1043 behaves like reject metadata request1044 rejects the metadata request1045 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1046 behaves like reject metadata request1047 rejects the metadata request1048 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1049 behaves like reject metadata request1050 rejects the metadata request1051 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1052 behaves like reject metadata request1053 rejects the metadata request1054 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1055 behaves like reject metadata request1056 rejects the metadata request1057 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1058 behaves like reject metadata request1059 rejects the metadata request1060 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1061 behaves like reject metadata request1062 rejects the metadata request1063 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1064 behaves like redirect metadata request1065 redirects metadata request1066 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1067 behaves like reject metadata request1068 rejects the metadata request1069 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1070 behaves like accept metadata request1071 accepts the metadata request1072 avoids N+1 database queries1073 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1074 behaves like accept metadata request1075 accepts the metadata request1076 avoids N+1 database queries1077 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1078 behaves like accept metadata request1079 accepts the metadata request1080 avoids N+1 database queries1081 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1082 behaves like accept metadata request1083 accepts the metadata request1084 avoids N+1 database queries1085 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1086 behaves like accept metadata request1087 accepts the metadata request1088 avoids N+1 database queries1089 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1090 behaves like accept metadata request1091 accepts the metadata request1092 avoids N+1 database queries1093 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1094 behaves like accept metadata request1095 accepts the metadata request1096 avoids N+1 database queries1097 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1098 behaves like accept metadata request1099 accepts the metadata request1100 avoids N+1 database queries1101 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1102 behaves like accept metadata request1103 accepts the metadata request1104 avoids N+1 database queries1105 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1106 behaves like accept metadata request1107 accepts the metadata request1108 avoids N+1 database queries1109 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1110 behaves like accept metadata request1111 accepts the metadata request1112 avoids N+1 database queries1113 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1114 behaves like accept metadata request1115 accepts the metadata request1116 avoids N+1 database queries1117 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1118 behaves like redirect metadata request1119 redirects metadata request1120 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1121 behaves like redirect metadata request1122 redirects metadata request1123 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1124 behaves like reject metadata request1125 rejects the metadata request1126 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1127 behaves like reject metadata request1128 rejects the metadata request1129 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1130 behaves like reject metadata request1131 rejects the metadata request1132 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1133 behaves like accept metadata request1134 accepts the metadata request1135 avoids N+1 database queries1136 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1137 behaves like reject metadata request1138 rejects the metadata request1139 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1140 behaves like accept metadata request1141 accepts the metadata request1142 avoids N+1 database queries1143 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1144 behaves like reject metadata request1145 rejects the metadata request1146 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1147 behaves like accept metadata request1148 accepts the metadata request1149 avoids N+1 database queries1150 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1151 behaves like reject metadata request1152 rejects the metadata request1153 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1154 behaves like accept metadata request1155 accepts the metadata request1156 avoids N+1 database queries1157 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1158 behaves like reject metadata request1159 rejects the metadata request1160 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1161 behaves like accept metadata request1162 accepts the metadata request1163 avoids N+1 database queries1164 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1165 behaves like reject metadata request1166 rejects the metadata request1167 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1168 behaves like accept metadata request1169 accepts the metadata request1170 avoids N+1 database queries1171 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1172 behaves like redirect metadata request1173 redirects metadata request1174 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1175 behaves like redirect metadata request1176 redirects metadata request1177 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1178 behaves like reject metadata request1179 rejects the metadata request1180 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1181 behaves like reject metadata request1182 rejects the metadata request1183 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1184 behaves like accept metadata request1185 accepts the metadata request1186Skipping ./spec/requests/api/npm_project_packages_spec.rb[1:1:1:1:1:57:1:2] 'API::NpmProjectPackages GET /api/v4/projects/:id/packages/npm/*package_name behaves like handling get metadata requests with a group namespace behaves like handling all conditions auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.1187 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)1188 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1189 behaves like accept metadata request1190 accepts the metadata request1191 avoids N+1 database queries1192 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1193 behaves like accept metadata request1194 accepts the metadata request1195 avoids N+1 database queries1196 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1197 behaves like accept metadata request1198 accepts the metadata request1199 avoids N+1 database queries1200 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1201 behaves like accept metadata request1202 accepts the metadata request1203 avoids N+1 database queries1204 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1205 behaves like accept metadata request1206 accepts the metadata request1207 avoids N+1 database queries1208 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1209 behaves like accept metadata request1210 accepts the metadata request1211 avoids N+1 database queries1212 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1213 behaves like accept metadata request1214 accepts the metadata request1215 avoids N+1 database queries1216 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1217 behaves like accept metadata request1218 accepts the metadata request1219Skipping ./spec/requests/api/npm_project_packages_spec.rb[1:1:1:1:1:65:1:2] 'API::NpmProjectPackages GET /api/v4/projects/:id/packages/npm/*package_name behaves like handling get metadata requests with a group namespace behaves like handling all conditions auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.1220 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)1221 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1222 behaves like accept metadata request1223 accepts the metadata request1224Skipping ./spec/requests/api/npm_project_packages_spec.rb[1:1:1:1:1:66:1:2] 'API::NpmProjectPackages GET /api/v4/projects/:id/packages/npm/*package_name behaves like handling get metadata requests with a group namespace behaves like handling all conditions auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.1225 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)1226 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1227 behaves like accept metadata request1228 accepts the metadata request1229Skipping ./spec/requests/api/npm_project_packages_spec.rb[1:1:1:1:1:67:1:2] 'API::NpmProjectPackages GET /api/v4/projects/:id/packages/npm/*package_name behaves like handling get metadata requests with a group namespace behaves like handling all conditions auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries' because it's flaky.1230 avoids N+1 database queries (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)1231 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1232 behaves like accept metadata request1233 accepts the metadata request1234 avoids N+1 database queries1235 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1236 behaves like redirect metadata request1237 redirects metadata request1238 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1239 behaves like redirect metadata request1240 redirects metadata request1241 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1242 behaves like reject metadata request1243 rejects the metadata request1244 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1245 behaves like reject metadata request1246 rejects the metadata request1247 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1248 behaves like accept metadata request1249 accepts the metadata request1250 avoids N+1 database queries1251 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1252 behaves like accept metadata request1253 accepts the metadata request1254 avoids N+1 database queries1255 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1256 behaves like accept metadata request1257 accepts the metadata request1258 avoids N+1 database queries1259 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1260 behaves like accept metadata request1261 accepts the metadata request1262 avoids N+1 database queries1263 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1264 behaves like accept metadata request1265 accepts the metadata request1266 avoids N+1 database queries1267 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1268 behaves like accept metadata request1269 accepts the metadata request1270 avoids N+1 database queries1271 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1272 behaves like accept metadata request1273 accepts the metadata request1274 avoids N+1 database queries1275 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1276 behaves like accept metadata request1277 accepts the metadata request1278 avoids N+1 database queries1279 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1280 behaves like accept metadata request1281 accepts the metadata request1282 avoids N+1 database queries1283 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1284 behaves like accept metadata request1285 accepts the metadata request1286 avoids N+1 database queries1287 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1288 behaves like accept metadata request1289 accepts the metadata request1290 avoids N+1 database queries1291 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1292 behaves like accept metadata request1293 accepts the metadata request1294 avoids N+1 database queries1295 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1296 behaves like redirect metadata request1297 redirects metadata request1298 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1299 behaves like redirect metadata request1300 redirects metadata request1301 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1302 behaves like reject metadata request1303 rejects the metadata request1304 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1305 behaves like reject metadata request1306 rejects the metadata request1307 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1308 behaves like reject metadata request1309 rejects the metadata request1310 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1311 behaves like accept metadata request1312 accepts the metadata request1313 avoids N+1 database queries1314 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1315 behaves like reject metadata request1316 rejects the metadata request1317 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1318 behaves like accept metadata request1319 accepts the metadata request1320 avoids N+1 database queries1321 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1322 behaves like reject metadata request1323 rejects the metadata request1324 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1325 behaves like accept metadata request1326 accepts the metadata request1327 avoids N+1 database queries1328 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1329 behaves like reject metadata request1330 rejects the metadata request1331 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1332 behaves like accept metadata request1333 accepts the metadata request1334 avoids N+1 database queries1335 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1336 behaves like reject metadata request1337 rejects the metadata request1338 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1339 behaves like accept metadata request1340 accepts the metadata request1341 avoids N+1 database queries1342 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1343 behaves like reject metadata request1344 rejects the metadata request1345 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1346 behaves like accept metadata request1347 accepts the metadata request1348 avoids N+1 database queries1349 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1350 behaves like redirect metadata request1351 redirects metadata request1352 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1353 behaves like redirect metadata request1354 redirects metadata request1355 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1356 behaves like reject metadata request1357 rejects the metadata request1358 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1359 behaves like reject metadata request1360 rejects the metadata request1361 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1362 behaves like accept metadata request1363 accepts the metadata request1364 avoids N+1 database queries1365 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1366 behaves like accept metadata request1367 accepts the metadata request1368 avoids N+1 database queries1369 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1370 behaves like accept metadata request1371 accepts the metadata request1372 avoids N+1 database queries1373 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1374 behaves like accept metadata request1375 accepts the metadata request1376 avoids N+1 database queries1377 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1378 behaves like accept metadata request1379 accepts the metadata request1380 avoids N+1 database queries1381 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1382 behaves like accept metadata request1383 accepts the metadata request1384 avoids N+1 database queries1385 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1386 behaves like accept metadata request1387 accepts the metadata request1388 avoids N+1 database queries1389 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1390 behaves like accept metadata request1391 accepts the metadata request1392 avoids N+1 database queries1393 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1394 behaves like accept metadata request1395 accepts the metadata request1396 avoids N+1 database queries1397 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1398 behaves like accept metadata request1399 accepts the metadata request1400 avoids N+1 database queries1401 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1402 behaves like accept metadata request1403 accepts the metadata request1404 avoids N+1 database queries1405 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1406 behaves like accept metadata request1407 accepts the metadata request1408 avoids N+1 database queries1409 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1410 behaves like redirect metadata request1411 redirects metadata request1412 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1413 behaves like redirect metadata request1414 redirects metadata request1415 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1416 behaves like reject metadata request1417 rejects the metadata request1418 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1419 behaves like reject metadata request1420 rejects the metadata request1421 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1422 behaves like accept metadata request1423 accepts the metadata request1424 avoids N+1 database queries1425 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1426 behaves like accept metadata request1427 accepts the metadata request1428 avoids N+1 database queries1429 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1430 behaves like accept metadata request1431 accepts the metadata request1432 avoids N+1 database queries1433 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1434 behaves like accept metadata request1435 accepts the metadata request1436 avoids N+1 database queries1437 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1438 behaves like accept metadata request1439 accepts the metadata request1440 avoids N+1 database queries1441 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1442 behaves like accept metadata request1443 accepts the metadata request1444 avoids N+1 database queries1445 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected1446 behaves like redirect metadata request1447 redirects metadata request1448 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1449 behaves like reject metadata request1450 rejects the metadata request1451 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1452 behaves like accept metadata request1453 accepts the metadata request1454 avoids N+1 database queries1455 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1456 behaves like accept metadata request1457 accepts the metadata request1458 avoids N+1 database queries1459 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1460 behaves like accept metadata request1461 accepts the metadata request1462 avoids N+1 database queries1463 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1464 behaves like accept metadata request1465 accepts the metadata request1466 avoids N+1 database queries1467 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1468 behaves like accept metadata request1469 accepts the metadata request1470 avoids N+1 database queries1471 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1472 behaves like accept metadata request1473 accepts the metadata request1474 avoids N+1 database queries1475 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected1476 behaves like redirect metadata request1477 redirects metadata request1478 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1479 behaves like reject metadata request1480 rejects the metadata request1481 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1482 behaves like accept metadata request1483 accepts the metadata request1484 avoids N+1 database queries1485 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1486 behaves like accept metadata request1487 accepts the metadata request1488 avoids N+1 database queries1489 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1490 behaves like accept metadata request1491 accepts the metadata request1492 avoids N+1 database queries1493 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1494 behaves like accept metadata request1495 accepts the metadata request1496 avoids N+1 database queries1497 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1498 behaves like accept metadata request1499 accepts the metadata request1500 avoids N+1 database queries1501 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1502 behaves like accept metadata request1503 accepts the metadata request1504 avoids N+1 database queries1505 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected1506 behaves like redirect metadata request1507 redirects metadata request1508 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1509 behaves like reject metadata request1510 rejects the metadata request1511 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1512 behaves like accept metadata request1513 accepts the metadata request1514 avoids N+1 database queries1515 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1516 behaves like accept metadata request1517 accepts the metadata request1518 avoids N+1 database queries1519 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1520 behaves like accept metadata request1521 accepts the metadata request1522 avoids N+1 database queries1523 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1524 behaves like accept metadata request1525 accepts the metadata request1526 avoids N+1 database queries1527 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1528 behaves like accept metadata request1529 accepts the metadata request1530 avoids N+1 database queries1531 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1532 behaves like accept metadata request1533 accepts the metadata request1534 avoids N+1 database queries1535 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected1536 behaves like redirect metadata request1537 redirects metadata request1538 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1539 behaves like reject metadata request1540 rejects the metadata request1541 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1542 behaves like accept metadata request1543 accepts the metadata request1544 avoids N+1 database queries1545 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1546 behaves like accept metadata request1547 accepts the metadata request1548 avoids N+1 database queries1549 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1550 behaves like accept metadata request1551 accepts the metadata request1552 avoids N+1 database queries1553 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1554 behaves like accept metadata request1555 accepts the metadata request1556 avoids N+1 database queries1557 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1558 behaves like accept metadata request1559 accepts the metadata request1560 avoids N+1 database queries1561 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1562 behaves like accept metadata request1563 accepts the metadata request1564 avoids N+1 database queries1565 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected1566 behaves like redirect metadata request1567 redirects metadata request1568 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1569 behaves like reject metadata request1570 rejects the metadata request1571 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1572 behaves like accept metadata request1573 accepts the metadata request1574 avoids N+1 database queries1575 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1576 behaves like accept metadata request1577 accepts the metadata request1578 avoids N+1 database queries1579 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1580 behaves like accept metadata request1581 accepts the metadata request1582 avoids N+1 database queries1583 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1584 behaves like accept metadata request1585 accepts the metadata request1586 avoids N+1 database queries1587 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1588 behaves like accept metadata request1589 accepts the metadata request1590 avoids N+1 database queries1591 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1592 behaves like accept metadata request1593 accepts the metadata request1594 avoids N+1 database queries1595 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1596 behaves like redirect metadata request1597 redirects metadata request1598 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1599 behaves like reject metadata request1600 rejects the metadata request1601 with a developer1602 project path with a dot1603 behaves like accept metadata request1604 accepts the metadata request1605 avoids N+1 database queries1606 with a job token1607 behaves like reject metadata request1608 rejects the metadata request1609 behaves like accept get request on private project with access to package registry for everyone1610 behaves like returning response status1611 returns ok1612 GET /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags1613 behaves like handling get dist tags requests1614 with a group namespace1615 behaves like handling all conditions1616 with oauth token1617 behaves like handling different package names, visibilities and user roles1618 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1619 behaves like accept package tags request1620 with valid package name1621 returns a valid json response1622 returns two package tags1623 behaves like returning response status1624 returns ok1625 with invalid package name1626 package_name: "%20", status: :bad_request1627 behaves like returning response status1628 returns bad_request1629 package_name: nil, status: :not_found1630 behaves like returning response status1631 returns not_found1632 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1633 behaves like accept package tags request1634 with valid package name1635 returns a valid json response1636 returns two package tags1637 behaves like returning response status1638 returns ok1639 with invalid package name1640 package_name: "%20", status: :bad_request1641 behaves like returning response status1642 returns bad_request1643 package_name: nil, status: :not_found1644 behaves like returning response status1645 returns not_found1646 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1647 behaves like accept package tags request1648 with valid package name1649 returns a valid json response1650 returns two package tags1651 behaves like returning response status1652 returns ok1653 with invalid package name1654 package_name: "%20", status: :bad_request1655 behaves like returning response status1656 returns bad_request1657 package_name: nil, status: :not_found1658 behaves like returning response status1659 returns not_found1660 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1661 behaves like accept package tags request1662 with valid package name1663 returns a valid json response1664 returns two package tags1665 behaves like returning response status1666 returns ok1667 with invalid package name1668 package_name: "%20", status: :bad_request1669 behaves like returning response status1670 returns bad_request1671 package_name: nil, status: :not_found1672 behaves like returning response status1673 returns not_found1674 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1675 behaves like accept package tags request1676 with valid package name1677 returns a valid json response1678 returns two package tags1679 behaves like returning response status1680 returns ok1681 with invalid package name1682 package_name: "%20", status: :bad_request1683 behaves like returning response status1684 returns bad_request1685 package_name: nil, status: :not_found1686 behaves like returning response status1687 returns not_found1688 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1689 behaves like accept package tags request1690 with valid package name1691 returns a valid json response1692 returns two package tags1693 behaves like returning response status1694 returns ok1695 with invalid package name1696 package_name: "%20", status: :bad_request1697 behaves like returning response status1698 returns bad_request1699 package_name: nil, status: :not_found1700 behaves like returning response status1701 returns not_found1702 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1703 behaves like accept package tags request1704 with valid package name1705 returns a valid json response1706 returns two package tags1707 behaves like returning response status1708 returns ok1709 with invalid package name1710 package_name: "%20", status: :bad_request1711 behaves like returning response status1712 returns bad_request1713 package_name: nil, status: :not_found1714 behaves like returning response status1715 returns not_found1716 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1717 behaves like accept package tags request1718 with valid package name1719 returns a valid json response1720 returns two package tags1721 behaves like returning response status1722 returns ok1723 with invalid package name1724 package_name: "%20", status: :bad_request1725 behaves like returning response status1726 returns bad_request1727 package_name: nil, status: :not_found1728 behaves like returning response status1729 returns not_found1730 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1731 behaves like accept package tags request1732 with valid package name1733 returns a valid json response1734 returns two package tags1735 behaves like returning response status1736 returns ok1737 with invalid package name1738 package_name: "%20", status: :bad_request1739 behaves like returning response status1740 returns bad_request1741 package_name: nil, status: :not_found1742 behaves like returning response status1743 returns not_found1744 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1745 behaves like reject package tags request1746 behaves like returning response status1747 returns not_found1748 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1749 behaves like reject package tags request1750 behaves like returning response status1751 returns not_found1752 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1753 behaves like reject package tags request1754 behaves like returning response status1755 returns not_found1756 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1757 behaves like reject package tags request1758 behaves like returning response status1759 returns not_found1760 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1761 behaves like reject package tags request1762 behaves like returning response status1763 returns forbidden1764 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1765 behaves like accept package tags request1766 with valid package name1767 returns a valid json response1768 returns two package tags1769 behaves like returning response status1770 returns ok1771 with invalid package name1772 package_name: "%20", status: :bad_request1773 behaves like returning response status1774 returns bad_request1775 package_name: nil, status: :not_found1776 behaves like returning response status1777 returns not_found1778 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1779 behaves like reject package tags request1780 behaves like returning response status1781 returns not_found1782 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1783 behaves like reject package tags request1784 behaves like returning response status1785 returns forbidden1786 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1787 behaves like accept package tags request1788 with valid package name1789 returns a valid json response1790 returns two package tags1791 behaves like returning response status1792 returns ok1793 with invalid package name1794 package_name: "%20", status: :bad_request1795 behaves like returning response status1796 returns bad_request1797 package_name: nil, status: :not_found1798 behaves like returning response status1799 returns not_found1800 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1801 behaves like reject package tags request1802 behaves like returning response status1803 returns not_found1804 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1805 behaves like reject package tags request1806 behaves like returning response status1807 returns forbidden1808 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1809 behaves like accept package tags request1810 with valid package name1811 returns a valid json response1812 returns two package tags1813 behaves like returning response status1814 returns ok1815 with invalid package name1816 package_name: "%20", status: :bad_request1817 behaves like returning response status1818 returns bad_request1819 package_name: nil, status: :not_found1820 behaves like returning response status1821 returns not_found1822 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1823 behaves like reject package tags request1824 behaves like returning response status1825 returns not_found1826 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1827 behaves like reject package tags request1828 behaves like returning response status1829 returns forbidden1830 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1831 behaves like reject package tags request1832 behaves like returning response status1833 returns not_found1834 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1835 behaves like reject package tags request1836 behaves like returning response status1837 returns not_found1838 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1839 behaves like accept package tags request1840 with valid package name1841 returns a valid json response1842 returns two package tags1843 behaves like returning response status1844 returns ok1845 with invalid package name1846 package_name: "%20", status: :bad_request1847 behaves like returning response status1848 returns bad_request1849 package_name: nil, status: :not_found1850 behaves like returning response status1851 returns not_found1852 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1853 behaves like accept package tags request1854 with valid package name1855 returns a valid json response1856 returns two package tags1857 behaves like returning response status1858 returns ok1859 with invalid package name1860 package_name: "%20", status: :bad_request1861 behaves like returning response status1862 returns bad_request1863 package_name: nil, status: :not_found1864 behaves like returning response status1865 returns not_found1866 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1867 behaves like reject package tags request1868 behaves like returning response status1869 returns not_found1870 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1871 behaves like accept package tags request1872 with valid package name1873 returns a valid json response1874 returns two package tags1875 behaves like returning response status1876 returns ok1877 with invalid package name1878 package_name: "%20", status: :bad_request1879 behaves like returning response status1880 returns bad_request1881 package_name: nil, status: :not_found1882 behaves like returning response status1883 returns not_found1884 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1885 behaves like accept package tags request1886 with valid package name1887 returns a valid json response1888 returns two package tags1889 behaves like returning response status1890 returns ok1891 with invalid package name1892 package_name: "%20", status: :bad_request1893 behaves like returning response status1894 returns bad_request1895 package_name: nil, status: :not_found1896 behaves like returning response status1897 returns not_found1898 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1899 behaves like reject package tags request1900 behaves like returning response status1901 returns not_found1902 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1903 behaves like accept package tags request1904 with valid package name1905 returns a valid json response1906 returns two package tags1907 behaves like returning response status1908 returns ok1909 with invalid package name1910 package_name: "%20", status: :bad_request1911 behaves like returning response status1912 returns bad_request1913 package_name: nil, status: :not_found1914 behaves like returning response status1915 returns not_found1916 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1917 behaves like accept package tags request1918 with valid package name1919 returns a valid json response1920 returns two package tags1921 behaves like returning response status1922 returns ok1923 with invalid package name1924 package_name: "%20", status: :bad_request1925 behaves like returning response status1926 returns bad_request1927 package_name: nil, status: :not_found1928 behaves like returning response status1929 returns not_found1930 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found1931 behaves like reject package tags request1932 behaves like returning response status1933 returns not_found1934 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1935 behaves like reject package tags request1936 behaves like returning response status1937 returns not_found1938 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1939 behaves like reject package tags request1940 behaves like returning response status1941 returns not_found1942 with personal access token1943 behaves like handling different package names, visibilities and user roles1944 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1945 behaves like accept package tags request1946 with valid package name1947 returns a valid json response1948 returns two package tags1949 behaves like returning response status1950 returns ok1951 with invalid package name1952 package_name: "%20", status: :bad_request1953 behaves like returning response status1954 returns bad_request1955 package_name: nil, status: :not_found1956 behaves like returning response status1957 returns not_found1958 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1959 behaves like accept package tags request1960 with valid package name1961 returns a valid json response1962 returns two package tags1963 behaves like returning response status1964 returns ok1965 with invalid package name1966 package_name: "%20", status: :bad_request1967 behaves like returning response status1968 returns bad_request1969 package_name: nil, status: :not_found1970 behaves like returning response status1971 returns not_found1972 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1973 behaves like accept package tags request1974 with valid package name1975 returns a valid json response1976 returns two package tags1977 behaves like returning response status1978 returns ok1979 with invalid package name1980 package_name: "%20", status: :bad_request1981 behaves like returning response status1982 returns bad_request1983 package_name: nil, status: :not_found1984 behaves like returning response status1985 returns not_found1986 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok1987 behaves like accept package tags request1988 with valid package name1989 returns a valid json response1990 returns two package tags1991 behaves like returning response status1992 returns ok1993 with invalid package name1994 package_name: "%20", status: :bad_request1995 behaves like returning response status1996 returns bad_request1997 package_name: nil, status: :not_found1998 behaves like returning response status1999 returns not_found2000 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2001 behaves like accept package tags request2002 with valid package name2003 returns a valid json response2004 returns two package tags2005 behaves like returning response status2006 returns ok2007 with invalid package name2008 package_name: "%20", status: :bad_request2009 behaves like returning response status2010 returns bad_request2011 package_name: nil, status: :not_found2012 behaves like returning response status2013 returns not_found2014 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2015 behaves like accept package tags request2016 with valid package name2017 returns a valid json response2018 returns two package tags2019 behaves like returning response status2020 returns ok2021 with invalid package name2022 package_name: "%20", status: :bad_request2023 behaves like returning response status2024 returns bad_request2025 package_name: nil, status: :not_found2026 behaves like returning response status2027 returns not_found2028 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :accept, expected_status: :ok2029 behaves like accept package tags request2030 with valid package name2031 returns a valid json response2032 returns two package tags2033 behaves like returning response status2034 returns ok2035 with invalid package name2036 package_name: "%20", status: :bad_request2037 behaves like returning response status2038 returns bad_request2039 package_name: nil, status: :not_found2040 behaves like returning response status2041 returns not_found2042 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok2043 behaves like accept package tags request2044 with valid package name2045 returns a valid json response2046 returns two package tags2047 behaves like returning response status2048 returns ok2049 with invalid package name2050 package_name: "%20", status: :bad_request2051 behaves like returning response status2052 returns bad_request2053 package_name: nil, status: :not_found2054 behaves like returning response status2055 returns not_found2056 package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok2057 behaves like accept package tags request2058 with valid package name2059 returns a valid json response2060 returns two package tags2061 behaves like returning response status2062 returns ok2063 with invalid package name2064 package_name: "%20", status: :bad_request2065 behaves like returning response status2066 returns bad_request2067 package_name: nil, status: :not_found2068 behaves like returning response status2069 returns not_found2070 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2071 behaves like reject package tags request2072 behaves like returning response status2073 returns not_found2074 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found2075 behaves like reject package tags request2076 behaves like returning response status2077 returns not_found2078 package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found2079 behaves like reject package tags request2080 behaves like returning response status2081 returns not_found2082 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2083 behaves like reject package tags request2084 behaves like returning response status2085 returns not_found2086 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2087 behaves like reject package tags request2088 behaves like returning response status2089 returns forbidden2090 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2091 behaves like accept package tags request2092 with valid package name2093 returns a valid json response2094 returns two package tags2095 behaves like returning response status2096 returns ok2097 with invalid package name2098 package_name: "%20", status: :bad_request2099 behaves like returning response status2100 returns bad_request2101 package_name: nil, status: :not_found2102 behaves like returning response status2103 returns not_found2104 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2105 behaves like reject package tags request2106 behaves like returning response status2107 returns not_found2108 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2109 behaves like reject package tags request2110 behaves like returning response status2111 returns forbidden2112 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2113 behaves like accept package tags request2114 with valid package name2115 returns a valid json response2116 returns two package tags2117 behaves like returning response status2118 returns ok2119 with invalid package name2120 package_name: "%20", status: :bad_request2121 behaves like returning response status2122 returns bad_request2123 package_name: nil, status: :not_found2124 behaves like returning response status2125 returns not_found2126 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2127 behaves like reject package tags request2128 behaves like returning response status2129 returns not_found2130 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2131 behaves like reject package tags request2132 behaves like returning response status2133 returns forbidden2134 package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok2135 behaves like accept package tags request2136 with valid package name2137 returns a valid json response2138 returns two package tags2139 behaves like returning response status2140 returns ok2141 with invalid package name2142 package_name: "%20", status: :bad_request2143 behaves like returning response status2144 returns bad_request2145 package_name: nil, status: :not_found2146 behaves like returning response status2147 returns not_found2148 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2149 behaves like reject package tags request2150 behaves like returning response status2151 returns not_found2152 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2153 behaves like reject package tags request2154 behaves like returning response status2155 returns forbidden2156 package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found2157 behaves like reject package tags request2158 behaves like returning response status2159 returns not_found2160 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2161 behaves like reject package tags request2162 behaves like returning response status2163 returns not_found2164 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2165 behaves like accept package tags request2166 with valid package name2167 returns a valid json response2168 returns two package tags2169 behaves like returning response status2170 returns ok2171 with invalid package name2172 package_name: "%20", status: :bad_request2173 behaves like returning response status2174 returns bad_request2175 package_name: nil, status: :not_found2176 behaves like returning response status2177 returns not_found2178 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2179 behaves like accept package tags request2180 with valid package name2181 returns a valid json response2182 returns two package tags2183 behaves like returning response status2184 returns ok2185 with invalid package name2186 package_name: "%20", status: :bad_request2187 behaves like returning response status2188 returns bad_request2189 package_name: nil, status: :not_found2190 behaves like returning response status2191 returns not_found2192 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2193 behaves like reject package tags request2194 behaves like returning response status2195 returns not_found2196 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2197 behaves like accept package tags request2198 with valid package name2199 returns a valid json response2200 returns two package tags2201 behaves like returning response status2202 returns ok2203 with invalid package name2204 package_name: "%20", status: :bad_request2205 behaves like returning response status2206 returns bad_request2207 package_name: nil, status: :not_found2208 behaves like returning response status2209 returns not_found2210 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2211 behaves like accept package tags request2212 with valid package name2213 returns a valid json response2214 returns two package tags2215 behaves like returning response status2216 returns ok2217 with invalid package name2218 package_name: "%20", status: :bad_request2219 behaves like returning response status2220 returns bad_request2221 package_name: nil, status: :not_found2222 behaves like returning response status2223 returns not_found2224 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2225 behaves like reject package tags request2226 behaves like returning response status2227 returns not_found2228 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok2229 behaves like accept package tags request2230 with valid package name2231 returns a valid json response2232 returns two package tags2233 behaves like returning response status2234 returns ok2235 with invalid package name2236 package_name: "%20", status: :bad_request2237 behaves like returning response status2238 returns bad_request2239 package_name: nil, status: :not_found2240 behaves like returning response status2241 returns not_found2242 package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2243 behaves like accept package tags request2244 with valid package name2245 returns a valid json response2246 returns two package tags2247 behaves like returning response status2248 returns ok2249 with invalid package name2250 package_name: "%20", status: :bad_request2251 behaves like returning response status2252 returns bad_request2253 package_name: nil, status: :not_found2254 behaves like returning response status2255 returns not_found2256 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2257 behaves like reject package tags request2258 behaves like returning response status2259 returns not_found2260 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2261 behaves like reject package tags request2262 behaves like returning response status2263 returns not_found2264 package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2265 behaves like reject package tags request2266 behaves like returning response status2267 returns not_found2268 behaves like accept get request on private project with access to package registry for everyone2269 behaves like returning response status2270 returns ok2271 PUT /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag2272 behaves like handling create dist tag requests2273 with a group namespace2274 behaves like handling all conditions2275 with oauth token2276 behaves like handling different package names, visibilities and user roles2277 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2278 behaves like reject create package tag request2279 behaves like returning response status2280 returns forbidden2281 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2282 behaves like reject create package tag request2283 behaves like returning response status2284 returns forbidden2285 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2286 behaves like accept create package tag request2287 with valid package name2288 creates the package tag2289 returns a valid response2290 behaves like returning response status2291 returns no_content2292 with already existing tag2293 reuses existing tag2294 returns a valid response2295 behaves like returning response status2296 returns no_content2297 with invalid package name2298 package_name: "unknown", status: :not_found2299 behaves like returning response status2300 returns not_found2301 package_name: "", status: :not_found2302 behaves like returning response status2303 returns not_found2304 package_name: "%20", status: :bad_request2305 behaves like returning response status2306 returns bad_request2307 with invalid tag name2308 tag_name: "", status: :not_found2309 behaves like returning response status2310 returns not_found2311 tag_name: "%20", status: :bad_request2312 behaves like returning response status2313 returns bad_request2314 with invalid version2315 version: " ", status: :bad_request2316 behaves like returning response status2317 returns bad_request2318 version: "", status: :bad_request2319 behaves like returning response status2320 returns bad_request2321 version: nil, status: :bad_request2322 behaves like returning response status2323 returns bad_request2324 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2325 behaves like reject create package tag request2326 behaves like returning response status2327 returns forbidden2328 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2329 behaves like reject create package tag request2330 behaves like returning response status2331 returns forbidden2332 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2333 behaves like accept create package tag request2334 with valid package name2335 creates the package tag2336 returns a valid response2337 behaves like returning response status2338 returns no_content2339 with already existing tag2340 reuses existing tag2341 returns a valid response2342 behaves like returning response status2343 returns no_content2344 with invalid package name2345 package_name: "unknown", status: :not_found2346 behaves like returning response status2347 returns not_found2348 package_name: "", status: :not_found2349 behaves like returning response status2350 returns not_found2351 package_name: "%20", status: :bad_request2352 behaves like returning response status2353 returns bad_request2354 with invalid tag name2355 tag_name: "", status: :not_found2356 behaves like returning response status2357 returns not_found2358 tag_name: "%20", status: :bad_request2359 behaves like returning response status2360 returns bad_request2361 with invalid version2362 version: " ", status: :bad_request2363 behaves like returning response status2364 returns bad_request2365 version: "", status: :bad_request2366 behaves like returning response status2367 returns bad_request2368 version: nil, status: :bad_request2369 behaves like returning response status2370 returns bad_request2371 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2372 behaves like reject create package tag request2373 behaves like returning response status2374 returns forbidden2375 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2376 behaves like reject create package tag request2377 behaves like returning response status2378 returns forbidden2379 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2380 behaves like accept create package tag request2381 with valid package name2382 creates the package tag2383 returns a valid response2384 behaves like returning response status2385 returns no_content2386 with already existing tag2387 reuses existing tag2388 returns a valid response2389 behaves like returning response status2390 returns no_content2391 with invalid package name2392 package_name: "unknown", status: :not_found2393 behaves like returning response status2394 returns not_found2395 package_name: "", status: :not_found2396 behaves like returning response status2397 returns not_found2398 package_name: "%20", status: :bad_request2399 behaves like returning response status2400 returns bad_request2401 with invalid tag name2402 tag_name: "", status: :not_found2403 behaves like returning response status2404 returns not_found2405 tag_name: "%20", status: :bad_request2406 behaves like returning response status2407 returns bad_request2408 with invalid version2409 version: " ", status: :bad_request2410 behaves like returning response status2411 returns bad_request2412 version: "", status: :bad_request2413 behaves like returning response status2414 returns bad_request2415 version: nil, status: :bad_request2416 behaves like returning response status2417 returns bad_request2418 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2419 behaves like reject create package tag request2420 behaves like returning response status2421 returns forbidden2422 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2423 behaves like reject create package tag request2424 behaves like returning response status2425 returns forbidden2426 package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2427 behaves like reject create package tag request2428 behaves like returning response status2429 returns not_found2430 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2431 behaves like reject create package tag request2432 behaves like returning response status2433 returns not_found2434 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2435 behaves like reject create package tag request2436 behaves like returning response status2437 returns forbidden2438 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2439 behaves like accept create package tag request2440 with valid package name2441 creates the package tag2442 returns a valid response2443 behaves like returning response status2444 returns no_content2445 with already existing tag2446 reuses existing tag2447 returns a valid response2448 behaves like returning response status2449 returns no_content2450 with invalid package name2451 package_name: "unknown", status: :not_found2452 behaves like returning response status2453 returns not_found2454 package_name: "", status: :not_found2455 behaves like returning response status2456 returns not_found2457 package_name: "%20", status: :bad_request2458 behaves like returning response status2459 returns bad_request2460 with invalid tag name2461 tag_name: "", status: :not_found2462 behaves like returning response status2463 returns not_found2464 tag_name: "%20", status: :bad_request2465 behaves like returning response status2466 returns bad_request2467 with invalid version2468 version: " ", status: :bad_request2469 behaves like returning response status2470 returns bad_request2471 version: "", status: :bad_request2472 behaves like returning response status2473 returns bad_request2474 version: nil, status: :bad_request2475 behaves like returning response status2476 returns bad_request2477 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2478 behaves like reject create package tag request2479 behaves like returning response status2480 returns not_found2481 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2482 behaves like reject create package tag request2483 behaves like returning response status2484 returns forbidden2485 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2486 behaves like accept create package tag request2487 with valid package name2488 creates the package tag2489 returns a valid response2490 behaves like returning response status2491 returns no_content2492 with already existing tag2493 reuses existing tag2494 returns a valid response2495 behaves like returning response status2496 returns no_content2497 with invalid package name2498 package_name: "unknown", status: :not_found2499 behaves like returning response status2500 returns not_found2501 package_name: "", status: :not_found2502 behaves like returning response status2503 returns not_found2504 package_name: "%20", status: :bad_request2505 behaves like returning response status2506 returns bad_request2507 with invalid tag name2508 tag_name: "", status: :not_found2509 behaves like returning response status2510 returns not_found2511 tag_name: "%20", status: :bad_request2512 behaves like returning response status2513 returns bad_request2514 with invalid version2515 version: " ", status: :bad_request2516 behaves like returning response status2517 returns bad_request2518 version: "", status: :bad_request2519 behaves like returning response status2520 returns bad_request2521 version: nil, status: :bad_request2522 behaves like returning response status2523 returns bad_request2524 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2525 behaves like reject create package tag request2526 behaves like returning response status2527 returns not_found2528 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2529 behaves like reject create package tag request2530 behaves like returning response status2531 returns forbidden2532 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2533 behaves like accept create package tag request2534 with valid package name2535 creates the package tag2536 returns a valid response2537 behaves like returning response status2538 returns no_content2539 with already existing tag2540 reuses existing tag2541 returns a valid response2542 behaves like returning response status2543 returns no_content2544 with invalid package name2545 package_name: "unknown", status: :not_found2546 behaves like returning response status2547 returns not_found2548 package_name: "", status: :not_found2549 behaves like returning response status2550 returns not_found2551 package_name: "%20", status: :bad_request2552 behaves like returning response status2553 returns bad_request2554 with invalid tag name2555 tag_name: "", status: :not_found2556 behaves like returning response status2557 returns not_found2558 tag_name: "%20", status: :bad_request2559 behaves like returning response status2560 returns bad_request2561 with invalid version2562 version: " ", status: :bad_request2563 behaves like returning response status2564 returns bad_request2565 version: "", status: :bad_request2566 behaves like returning response status2567 returns bad_request2568 version: nil, status: :bad_request2569 behaves like returning response status2570 returns bad_request2571 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2572 behaves like reject create package tag request2573 behaves like returning response status2574 returns not_found2575 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2576 behaves like reject create package tag request2577 behaves like returning response status2578 returns forbidden2579 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2580 behaves like reject create package tag request2581 behaves like returning response status2582 returns not_found2583 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2584 behaves like reject create package tag request2585 behaves like returning response status2586 returns forbidden2587 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2588 behaves like reject create package tag request2589 behaves like returning response status2590 returns forbidden2591 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2592 behaves like accept create package tag request2593 with valid package name2594 creates the package tag2595 returns a valid response2596 behaves like returning response status2597 returns no_content2598 with already existing tag2599 reuses existing tag2600 returns a valid response2601 behaves like returning response status2602 returns no_content2603 with invalid package name2604 package_name: "unknown", status: :not_found2605 behaves like returning response status2606 returns not_found2607 package_name: "", status: :not_found2608 behaves like returning response status2609 returns not_found2610 package_name: "%20", status: :bad_request2611 behaves like returning response status2612 returns bad_request2613 with invalid tag name2614 tag_name: "", status: :not_found2615 behaves like returning response status2616 returns not_found2617 tag_name: "%20", status: :bad_request2618 behaves like returning response status2619 returns bad_request2620 with invalid version2621 version: " ", status: :bad_request2622 behaves like returning response status2623 returns bad_request2624 version: "", status: :bad_request2625 behaves like returning response status2626 returns bad_request2627 version: nil, status: :bad_request2628 behaves like returning response status2629 returns bad_request2630 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2631 behaves like reject create package tag request2632 behaves like returning response status2633 returns forbidden2634 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2635 behaves like reject create package tag request2636 behaves like returning response status2637 returns forbidden2638 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2639 behaves like accept create package tag request2640 with valid package name2641 creates the package tag2642 returns a valid response2643 behaves like returning response status2644 returns no_content2645 with already existing tag2646 reuses existing tag2647 returns a valid response2648 behaves like returning response status2649 returns no_content2650 with invalid package name2651 package_name: "unknown", status: :not_found2652 behaves like returning response status2653 returns not_found2654 package_name: "", status: :not_found2655 behaves like returning response status2656 returns not_found2657 package_name: "%20", status: :bad_request2658 behaves like returning response status2659 returns bad_request2660 with invalid tag name2661 tag_name: "", status: :not_found2662 behaves like returning response status2663 returns not_found2664 tag_name: "%20", status: :bad_request2665 behaves like returning response status2666 returns bad_request2667 with invalid version2668 version: " ", status: :bad_request2669 behaves like returning response status2670 returns bad_request2671 version: "", status: :bad_request2672 behaves like returning response status2673 returns bad_request2674 version: nil, status: :bad_request2675 behaves like returning response status2676 returns bad_request2677 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2678 behaves like reject create package tag request2679 behaves like returning response status2680 returns forbidden2681 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2682 behaves like reject create package tag request2683 behaves like returning response status2684 returns forbidden2685 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2686 behaves like accept create package tag request2687 with valid package name2688 creates the package tag2689 returns a valid response2690 behaves like returning response status2691 returns no_content2692 with already existing tag2693 reuses existing tag2694 returns a valid response2695 behaves like returning response status2696 returns no_content2697 with invalid package name2698 package_name: "unknown", status: :not_found2699 behaves like returning response status2700 returns not_found2701 package_name: "", status: :not_found2702 behaves like returning response status2703 returns not_found2704 package_name: "%20", status: :bad_request2705 behaves like returning response status2706 returns bad_request2707 with invalid tag name2708 tag_name: "", status: :not_found2709 behaves like returning response status2710 returns not_found2711 tag_name: "%20", status: :bad_request2712 behaves like returning response status2713 returns bad_request2714 with invalid version2715 version: " ", status: :bad_request2716 behaves like returning response status2717 returns bad_request2718 version: "", status: :bad_request2719 behaves like returning response status2720 returns bad_request2721 version: nil, status: :bad_request2722 behaves like returning response status2723 returns bad_request2724 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2725 behaves like reject create package tag request2726 behaves like returning response status2727 returns forbidden2728 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2729 behaves like reject create package tag request2730 behaves like returning response status2731 returns forbidden2732 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2733 behaves like reject create package tag request2734 behaves like returning response status2735 returns not_found2736 with personal access token2737 behaves like handling different package names, visibilities and user roles2738 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2739 behaves like reject create package tag request2740 behaves like returning response status2741 returns forbidden2742 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2743 behaves like reject create package tag request2744 behaves like returning response status2745 returns forbidden2746 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2747 behaves like accept create package tag request2748 with valid package name2749 creates the package tag2750 returns a valid response2751 behaves like returning response status2752 returns no_content2753 with already existing tag2754 reuses existing tag2755 returns a valid response2756 behaves like returning response status2757 returns no_content2758 with invalid package name2759 package_name: "unknown", status: :not_found2760 behaves like returning response status2761 returns not_found2762 package_name: "", status: :not_found2763 behaves like returning response status2764 returns not_found2765 package_name: "%20", status: :bad_request2766 behaves like returning response status2767 returns bad_request2768 with invalid tag name2769 tag_name: "", status: :not_found2770 behaves like returning response status2771 returns not_found2772 tag_name: "%20", status: :bad_request2773 behaves like returning response status2774 returns bad_request2775 with invalid version2776 version: " ", status: :bad_request2777 behaves like returning response status2778 returns bad_request2779 version: "", status: :bad_request2780 behaves like returning response status2781 returns bad_request2782 version: nil, status: :bad_request2783 behaves like returning response status2784 returns bad_request2785 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2786 behaves like reject create package tag request2787 behaves like returning response status2788 returns forbidden2789 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2790 behaves like reject create package tag request2791 behaves like returning response status2792 returns forbidden2793 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2794 behaves like accept create package tag request2795 with valid package name2796 creates the package tag2797 returns a valid response2798 behaves like returning response status2799 returns no_content2800 with already existing tag2801 reuses existing tag2802 returns a valid response2803 behaves like returning response status2804 returns no_content2805 with invalid package name2806 package_name: "unknown", status: :not_found2807 behaves like returning response status2808 returns not_found2809 package_name: "", status: :not_found2810 behaves like returning response status2811 returns not_found2812 package_name: "%20", status: :bad_request2813 behaves like returning response status2814 returns bad_request2815 with invalid tag name2816 tag_name: "", status: :not_found2817 behaves like returning response status2818 returns not_found2819 tag_name: "%20", status: :bad_request2820 behaves like returning response status2821 returns bad_request2822 with invalid version2823 version: " ", status: :bad_request2824 behaves like returning response status2825 returns bad_request2826 version: "", status: :bad_request2827 behaves like returning response status2828 returns bad_request2829 version: nil, status: :bad_request2830 behaves like returning response status2831 returns bad_request2832 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2833 behaves like reject create package tag request2834 behaves like returning response status2835 returns forbidden2836 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2837 behaves like reject create package tag request2838 behaves like returning response status2839 returns forbidden2840 package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2841 behaves like accept create package tag request2842 with valid package name2843 creates the package tag2844 returns a valid response2845 behaves like returning response status2846 returns no_content2847 with already existing tag2848 reuses existing tag2849 returns a valid response2850 behaves like returning response status2851 returns no_content2852 with invalid package name2853 package_name: "unknown", status: :not_found2854 behaves like returning response status2855 returns not_found2856 package_name: "", status: :not_found2857 behaves like returning response status2858 returns not_found2859 package_name: "%20", status: :bad_request2860 behaves like returning response status2861 returns bad_request2862 with invalid tag name2863 tag_name: "", status: :not_found2864 behaves like returning response status2865 returns not_found2866 tag_name: "%20", status: :bad_request2867 behaves like returning response status2868 returns bad_request2869 with invalid version2870 version: " ", status: :bad_request2871 behaves like returning response status2872 returns bad_request2873 version: "", status: :bad_request2874 behaves like returning response status2875 returns bad_request2876 version: nil, status: :bad_request2877 behaves like returning response status2878 returns bad_request2879 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden2880 behaves like reject create package tag request2881 behaves like returning response status2882 returns forbidden2883 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2884 behaves like reject create package tag request2885 behaves like returning response status2886 returns forbidden2887 package_name_type: :non_existing, visibility: :public, user_role: :developer, 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_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2892 behaves like reject create package tag request2893 behaves like returning response status2894 returns not_found2895 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2896 behaves like reject create package tag request2897 behaves like returning response status2898 returns forbidden2899 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2900 behaves like accept create package tag request2901 with valid package name2902 creates the package tag2903 returns a valid response2904 behaves like returning response status2905 returns no_content2906 with already existing tag2907 reuses existing tag2908 returns a valid response2909 behaves like returning response status2910 returns no_content2911 with invalid package name2912 package_name: "unknown", status: :not_found2913 behaves like returning response status2914 returns not_found2915 package_name: "", status: :not_found2916 behaves like returning response status2917 returns not_found2918 package_name: "%20", status: :bad_request2919 behaves like returning response status2920 returns bad_request2921 with invalid tag name2922 tag_name: "", status: :not_found2923 behaves like returning response status2924 returns not_found2925 tag_name: "%20", status: :bad_request2926 behaves like returning response status2927 returns bad_request2928 with invalid version2929 version: " ", status: :bad_request2930 behaves like returning response status2931 returns bad_request2932 version: "", status: :bad_request2933 behaves like returning response status2934 returns bad_request2935 version: nil, status: :bad_request2936 behaves like returning response status2937 returns bad_request2938 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2939 behaves like reject create package tag request2940 behaves like returning response status2941 returns not_found2942 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2943 behaves like reject create package tag request2944 behaves like returning response status2945 returns forbidden2946 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2947 behaves like accept create package tag request2948 with valid package name2949 creates the package tag2950 returns a valid response2951 behaves like returning response status2952 returns no_content2953 with already existing tag2954 reuses existing tag2955 returns a valid response2956 behaves like returning response status2957 returns no_content2958 with invalid package name2959 package_name: "unknown", status: :not_found2960 behaves like returning response status2961 returns not_found2962 package_name: "", status: :not_found2963 behaves like returning response status2964 returns not_found2965 package_name: "%20", status: :bad_request2966 behaves like returning response status2967 returns bad_request2968 with invalid tag name2969 tag_name: "", status: :not_found2970 behaves like returning response status2971 returns not_found2972 tag_name: "%20", status: :bad_request2973 behaves like returning response status2974 returns bad_request2975 with invalid version2976 version: " ", status: :bad_request2977 behaves like returning response status2978 returns bad_request2979 version: "", status: :bad_request2980 behaves like returning response status2981 returns bad_request2982 version: nil, status: :bad_request2983 behaves like returning response status2984 returns bad_request2985 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found2986 behaves like reject create package tag request2987 behaves like returning response status2988 returns not_found2989 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2990 behaves like reject create package tag request2991 behaves like returning response status2992 returns forbidden2993 package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2994 behaves like accept create package tag request2995 with valid package name2996 creates the package tag2997 returns a valid response2998 behaves like returning response status2999 returns no_content3000 with already existing tag3001 reuses existing tag3002 returns a valid response3003 behaves like returning response status3004 returns no_content3005 with invalid package name3006 package_name: "unknown", status: :not_found3007 behaves like returning response status3008 returns not_found3009 package_name: "", status: :not_found3010 behaves like returning response status3011 returns not_found3012 package_name: "%20", status: :bad_request3013 behaves like returning response status3014 returns bad_request3015 with invalid tag name3016 tag_name: "", status: :not_found3017 behaves like returning response status3018 returns not_found3019 tag_name: "%20", status: :bad_request3020 behaves like returning response status3021 returns bad_request3022 with invalid version3023 version: " ", status: :bad_request3024 behaves like returning response status3025 returns bad_request3026 version: "", status: :bad_request3027 behaves like returning response status3028 returns bad_request3029 version: nil, status: :bad_request3030 behaves like returning response status3031 returns bad_request3032 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3033 behaves like reject create package tag request3034 behaves like returning response status3035 returns not_found3036 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3037 behaves like reject create package tag request3038 behaves like returning response status3039 returns forbidden3040 package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found3041 behaves like reject create package tag request3042 behaves like returning response status3043 returns not_found3044 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3045 behaves like reject create package tag request3046 behaves like returning response status3047 returns forbidden3048 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3049 behaves like reject create package tag request3050 behaves like returning response status3051 returns forbidden3052 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3053 behaves like accept create package tag request3054 with valid package name3055 creates the package tag3056 returns a valid response3057 behaves like returning response status3058 returns no_content3059 with already existing tag3060 reuses existing tag3061 returns a valid response3062 behaves like returning response status3063 returns no_content3064 with invalid package name3065 package_name: "unknown", status: :not_found3066 behaves like returning response status3067 returns not_found3068 package_name: "", status: :not_found3069 behaves like returning response status3070 returns not_found3071 package_name: "%20", status: :bad_request3072 behaves like returning response status3073 returns bad_request3074 with invalid tag name3075 tag_name: "", status: :not_found3076 behaves like returning response status3077 returns not_found3078 tag_name: "%20", status: :bad_request3079 behaves like returning response status3080 returns bad_request3081 with invalid version3082 version: " ", status: :bad_request3083 behaves like returning response status3084 returns bad_request3085 version: "", status: :bad_request3086 behaves like returning response status3087 returns bad_request3088 version: nil, status: :bad_request3089 behaves like returning response status3090 returns bad_request3091 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3092 behaves like reject create package tag request3093 behaves like returning response status3094 returns forbidden3095 package_name_type: :scoped_no_naming_convention, visibility: :internal, 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_no_naming_convention, visibility: :internal, 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: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3139 behaves like reject create package tag request3140 behaves like returning response status3141 returns forbidden3142 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3143 behaves like reject create package tag request3144 behaves like returning response status3145 returns forbidden3146 package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3147 behaves like accept create package tag request3148 with valid package name3149 creates the package tag3150 returns a valid response3151 behaves like returning response status3152 returns no_content3153 with already existing tag3154 reuses existing tag3155 returns a valid response3156 behaves like returning response status3157 returns no_content3158 with invalid package name3159 package_name: "unknown", status: :not_found3160 behaves like returning response status3161 returns not_found3162 package_name: "", status: :not_found3163 behaves like returning response status3164 returns not_found3165 package_name: "%20", status: :bad_request3166 behaves like returning response status3167 returns bad_request3168 with invalid tag name3169 tag_name: "", status: :not_found3170 behaves like returning response status3171 returns not_found3172 tag_name: "%20", status: :bad_request3173 behaves like returning response status3174 returns bad_request3175 with invalid version3176 version: " ", status: :bad_request3177 behaves like returning response status3178 returns bad_request3179 version: "", status: :bad_request3180 behaves like returning response status3181 returns bad_request3182 version: nil, status: :bad_request3183 behaves like returning response status3184 returns bad_request3185 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3186 behaves like reject create package tag request3187 behaves like returning response status3188 returns forbidden3189 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3190 behaves like reject create package tag request3191 behaves like returning response status3192 returns forbidden3193 package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3194 behaves like reject create package tag request3195 behaves like returning response status3196 returns not_found3197 DELETE /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag3198 behaves like handling delete dist tag requests3199 with a group namespace3200 behaves like handling all conditions3201 with oauth token3202 behaves like handling different package names, visibilities and user roles3203 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3204 behaves like reject delete package tag request3205 behaves like returning response status3206 returns forbidden3207 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3208 behaves like reject delete package tag request3209 behaves like returning response status3210 returns forbidden3211 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3212 behaves like accept delete package tag request3213 with valid package name3214 returns a valid response3215 destroy the package tag3216 behaves like returning response status3217 returns no_content3218 with tag from other package3219 behaves like returning response status3220 returns not_found3221 with invalid package name3222 package_name: "unknown", status: :not_found3223 behaves like returning response status3224 returns not_found3225 package_name: "", status: :not_found3226 behaves like returning response status3227 returns not_found3228 package_name: "%20", status: :bad_request3229 behaves like returning response status3230 returns bad_request3231 with invalid tag name3232 tag_name: "unknown", status: :not_found3233 behaves like returning response status3234 returns not_found3235 tag_name: "", status: :not_found3236 behaves like returning response status3237 returns not_found3238 tag_name: "%20", status: :bad_request3239 behaves like returning response status3240 returns bad_request3241 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3242 behaves like reject delete package tag request3243 behaves like returning response status3244 returns forbidden3245 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3246 behaves like reject delete package tag request3247 behaves like returning response status3248 returns forbidden3249 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3250 behaves like accept delete package tag request3251 with valid package name3252 returns a valid response3253 destroy the package tag3254 behaves like returning response status3255 returns no_content3256 with tag from other package3257 behaves like returning response status3258 returns not_found3259 with invalid package name3260 package_name: "unknown", status: :not_found3261 behaves like returning response status3262 returns not_found3263 package_name: "", status: :not_found3264 behaves like returning response status3265 returns not_found3266 package_name: "%20", status: :bad_request3267 behaves like returning response status3268 returns bad_request3269 with invalid tag name3270 tag_name: "unknown", status: :not_found3271 behaves like returning response status3272 returns not_found3273 tag_name: "", status: :not_found3274 behaves like returning response status3275 returns not_found3276 tag_name: "%20", status: :bad_request3277 behaves like returning response status3278 returns bad_request3279 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3280 behaves like reject delete package tag request3281 behaves like returning response status3282 returns forbidden3283 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3284 behaves like reject delete package tag request3285 behaves like returning response status3286 returns forbidden3287 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3288 behaves like accept delete package tag request3289 with valid package name3290 returns a valid response3291 destroy the package tag3292 behaves like returning response status3293 returns no_content3294 with tag from other package3295 behaves like returning response status3296 returns not_found3297 with invalid package name3298 package_name: "unknown", status: :not_found3299 behaves like returning response status3300 returns not_found3301 package_name: "", status: :not_found3302 behaves like returning response status3303 returns not_found3304 package_name: "%20", status: :bad_request3305 behaves like returning response status3306 returns bad_request3307 with invalid tag name3308 tag_name: "unknown", status: :not_found3309 behaves like returning response status3310 returns not_found3311 tag_name: "", status: :not_found3312 behaves like returning response status3313 returns not_found3314 tag_name: "%20", status: :bad_request3315 behaves like returning response status3316 returns bad_request3317 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3318 behaves like reject delete package tag request3319 behaves like returning response status3320 returns forbidden3321 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3322 behaves like reject delete package tag request3323 behaves like returning response status3324 returns forbidden3325 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3326 behaves like reject delete package tag request3327 behaves like returning response status3328 returns not_found3329 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3330 behaves like reject delete package tag request3331 behaves like returning response status3332 returns not_found3333 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3334 behaves like reject delete package tag request3335 behaves like returning response status3336 returns forbidden3337 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3338 behaves like accept delete package tag request3339 with valid package name3340 returns a valid response3341 destroy the package tag3342 behaves like returning response status3343 returns no_content3344 with tag from other package3345 behaves like returning response status3346 returns not_found3347 with invalid package name3348 package_name: "unknown", status: :not_found3349 behaves like returning response status3350 returns not_found3351 package_name: "", status: :not_found3352 behaves like returning response status3353 returns not_found3354 package_name: "%20", status: :bad_request3355 behaves like returning response status3356 returns bad_request3357 with invalid tag name3358 tag_name: "unknown", status: :not_found3359 behaves like returning response status3360 returns not_found3361 tag_name: "", status: :not_found3362 behaves like returning response status3363 returns not_found3364 tag_name: "%20", status: :bad_request3365 behaves like returning response status3366 returns bad_request3367 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3368 behaves like reject delete package tag request3369 behaves like returning response status3370 returns not_found3371 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3372 behaves like reject delete package tag request3373 behaves like returning response status3374 returns forbidden3375 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3376 behaves like accept delete package tag request3377 with valid package name3378 returns a valid response3379 destroy the package tag3380 behaves like returning response status3381 returns no_content3382 with tag from other package3383 behaves like returning response status3384 returns not_found3385 with invalid package name3386 package_name: "unknown", status: :not_found3387 behaves like returning response status3388 returns not_found3389 package_name: "", status: :not_found3390 behaves like returning response status3391 returns not_found3392 package_name: "%20", status: :bad_request3393 behaves like returning response status3394 returns bad_request3395 with invalid tag name3396 tag_name: "unknown", status: :not_found3397 behaves like returning response status3398 returns not_found3399 tag_name: "", status: :not_found3400 behaves like returning response status3401 returns not_found3402 tag_name: "%20", status: :bad_request3403 behaves like returning response status3404 returns bad_request3405 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3406 behaves like reject delete package tag request3407 behaves like returning response status3408 returns not_found3409 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3410 behaves like reject delete package tag request3411 behaves like returning response status3412 returns forbidden3413 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3414 behaves like accept delete package tag request3415 with valid package name3416 returns a valid response3417 destroy the package tag3418 behaves like returning response status3419 returns no_content3420 with tag from other package3421 behaves like returning response status3422 returns not_found3423 with invalid package name3424 package_name: "unknown", status: :not_found3425 behaves like returning response status3426 returns not_found3427 package_name: "", status: :not_found3428 behaves like returning response status3429 returns not_found3430 package_name: "%20", status: :bad_request3431 behaves like returning response status3432 returns bad_request3433 with invalid tag name3434 tag_name: "unknown", status: :not_found3435 behaves like returning response status3436 returns not_found3437 tag_name: "", status: :not_found3438 behaves like returning response status3439 returns not_found3440 tag_name: "%20", status: :bad_request3441 behaves like returning response status3442 returns bad_request3443 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3444 behaves like reject delete package tag request3445 behaves like returning response status3446 returns not_found3447 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3448 behaves like reject delete package tag request3449 behaves like returning response status3450 returns forbidden3451 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3452 behaves like reject delete package tag request3453 behaves like returning response status3454 returns not_found3455 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3456 behaves like reject delete package tag request3457 behaves like returning response status3458 returns forbidden3459 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3460 behaves like reject delete package tag request3461 behaves like returning response status3462 returns forbidden3463 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3464 behaves like accept delete package tag request3465 with valid package name3466 returns a valid response3467 destroy the package tag3468 behaves like returning response status3469 returns no_content3470 with tag from other package3471 behaves like returning response status3472 returns not_found3473 with invalid package name3474 package_name: "unknown", status: :not_found3475 behaves like returning response status3476 returns not_found3477 package_name: "", status: :not_found3478 behaves like returning response status3479 returns not_found3480 package_name: "%20", status: :bad_request3481 behaves like returning response status3482 returns bad_request3483 with invalid tag name3484 tag_name: "unknown", status: :not_found3485 behaves like returning response status3486 returns not_found3487 tag_name: "", status: :not_found3488 behaves like returning response status3489 returns not_found3490 tag_name: "%20", status: :bad_request3491 behaves like returning response status3492 returns bad_request3493 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3494 behaves like reject delete package tag request3495 behaves like returning response status3496 returns forbidden3497 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3498 behaves like reject delete package tag request3499 behaves like returning response status3500 returns forbidden3501 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3502 behaves like accept delete package tag request3503 with valid package name3504 returns a valid response3505 destroy the package tag3506 behaves like returning response status3507 returns no_content3508 with tag from other package3509 behaves like returning response status3510 returns not_found3511 with invalid package name3512 package_name: "unknown", status: :not_found3513 behaves like returning response status3514 returns not_found3515 package_name: "", status: :not_found3516 behaves like returning response status3517 returns not_found3518 package_name: "%20", status: :bad_request3519 behaves like returning response status3520 returns bad_request3521 with invalid tag name3522 tag_name: "unknown", status: :not_found3523 behaves like returning response status3524 returns not_found3525 tag_name: "", status: :not_found3526 behaves like returning response status3527 returns not_found3528 tag_name: "%20", status: :bad_request3529 behaves like returning response status3530 returns bad_request3531 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3532 behaves like reject delete package tag request3533 behaves like returning response status3534 returns forbidden3535 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3536 behaves like reject delete package tag request3537 behaves like returning response status3538 returns forbidden3539 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3540 behaves like accept delete package tag request3541 with valid package name3542 returns a valid response3543 destroy the package tag3544 behaves like returning response status3545 returns no_content3546 with tag from other package3547 behaves like returning response status3548 returns not_found3549 with invalid package name3550 package_name: "unknown", status: :not_found3551 behaves like returning response status3552 returns not_found3553 package_name: "", status: :not_found3554 behaves like returning response status3555 returns not_found3556 package_name: "%20", status: :bad_request3557 behaves like returning response status3558 returns bad_request3559 with invalid tag name3560 tag_name: "unknown", status: :not_found3561 behaves like returning response status3562 returns not_found3563 tag_name: "", status: :not_found3564 behaves like returning response status3565 returns not_found3566 tag_name: "%20", status: :bad_request3567 behaves like returning response status3568 returns bad_request3569 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3570 behaves like reject delete package tag request3571 behaves like returning response status3572 returns forbidden3573 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3574 behaves like reject delete package tag request3575 behaves like returning response status3576 returns forbidden3577 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3578 behaves like reject delete package tag request3579 behaves like returning response status3580 returns not_found3581 with personal access token3582 behaves like handling different package names, visibilities and user roles3583 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3584 behaves like reject delete package tag request3585 behaves like returning response status3586 returns forbidden3587 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3588 behaves like reject delete package tag request3589 behaves like returning response status3590 returns forbidden3591 package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3592 behaves like accept delete package tag request3593 with valid package name3594 returns a valid response3595 destroy the package tag3596 behaves like returning response status3597 returns no_content3598 with tag from other package3599 behaves like returning response status3600 returns not_found3601 with invalid package name3602 package_name: "unknown", status: :not_found3603 behaves like returning response status3604 returns not_found3605 package_name: "", status: :not_found3606 behaves like returning response status3607 returns not_found3608 package_name: "%20", status: :bad_request3609 behaves like returning response status3610 returns bad_request3611 with invalid tag name3612 tag_name: "unknown", status: :not_found3613 behaves like returning response status3614 returns not_found3615 tag_name: "", status: :not_found3616 behaves like returning response status3617 returns not_found3618 tag_name: "%20", status: :bad_request3619 behaves like returning response status3620 returns bad_request3621 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3622 behaves like reject delete package tag request3623 behaves like returning response status3624 returns forbidden3625 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3626 behaves like reject delete package tag request3627 behaves like returning response status3628 returns forbidden3629 package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3630 behaves like accept delete package tag request3631 with valid package name3632 returns a valid response3633 destroy the package tag3634 behaves like returning response status3635 returns no_content3636 with tag from other package3637 behaves like returning response status3638 returns not_found3639 with invalid package name3640 package_name: "unknown", status: :not_found3641 behaves like returning response status3642 returns not_found3643 package_name: "", status: :not_found3644 behaves like returning response status3645 returns not_found3646 package_name: "%20", status: :bad_request3647 behaves like returning response status3648 returns bad_request3649 with invalid tag name3650 tag_name: "unknown", status: :not_found3651 behaves like returning response status3652 returns not_found3653 tag_name: "", status: :not_found3654 behaves like returning response status3655 returns not_found3656 tag_name: "%20", status: :bad_request3657 behaves like returning response status3658 returns bad_request3659 package_name_type: :unscoped, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3660 behaves like reject delete package tag request3661 behaves like returning response status3662 returns forbidden3663 package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3664 behaves like reject delete package tag request3665 behaves like returning response status3666 returns forbidden3667 package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok3668 behaves like accept delete package tag request3669 with valid package name3670 returns a valid response3671 destroy the package tag3672 behaves like returning response status3673 returns no_content3674 with tag from other package3675 behaves like returning response status3676 returns not_found3677 with invalid package name3678 package_name: "unknown", status: :not_found3679 behaves like returning response status3680 returns not_found3681 package_name: "", status: :not_found3682 behaves like returning response status3683 returns not_found3684 package_name: "%20", status: :bad_request3685 behaves like returning response status3686 returns bad_request3687 with invalid tag name3688 tag_name: "unknown", status: :not_found3689 behaves like returning response status3690 returns not_found3691 tag_name: "", status: :not_found3692 behaves like returning response status3693 returns not_found3694 tag_name: "%20", status: :bad_request3695 behaves like returning response status3696 returns bad_request3697 package_name_type: :non_existing, visibility: :public, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3698 behaves like reject delete package tag request3699 behaves like returning response status3700 returns forbidden3701 package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden3702 behaves like reject delete package tag request3703 behaves like returning response status3704 returns forbidden3705 package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3706 behaves like reject delete package tag request3707 behaves like returning response status3708 returns not_found3709 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3710 behaves like reject delete package tag request3711 behaves like returning response status3712 returns not_found3713 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3714 behaves like reject delete package tag request3715 behaves like returning response status3716 returns forbidden3717 package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3718 behaves like accept delete package tag request3719 with valid package name3720 returns a valid response3721 destroy the package tag3722 behaves like returning response status3723 returns no_content3724 with tag from other package3725 behaves like returning response status3726 returns not_found3727 with invalid package name3728 package_name: "unknown", status: :not_found3729 behaves like returning response status3730 returns not_found3731 package_name: "", status: :not_found3732 behaves like returning response status3733 returns not_found3734 package_name: "%20", status: :bad_request3735 behaves like returning response status3736 returns bad_request3737 with invalid tag name3738 tag_name: "unknown", status: :not_found3739 behaves like returning response status3740 returns not_found3741 tag_name: "", status: :not_found3742 behaves like returning response status3743 returns not_found3744 tag_name: "%20", status: :bad_request3745 behaves like returning response status3746 returns bad_request3747 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3748 behaves like reject delete package tag request3749 behaves like returning response status3750 returns not_found3751 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3752 behaves like reject delete package tag request3753 behaves like returning response status3754 returns forbidden3755 package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3756 behaves like accept delete package tag request3757 with valid package name3758 returns a valid response3759 destroy the package tag3760 behaves like returning response status3761 returns no_content3762 with tag from other package3763 behaves like returning response status3764 returns not_found3765 with invalid package name3766 package_name: "unknown", status: :not_found3767 behaves like returning response status3768 returns not_found3769 package_name: "", status: :not_found3770 behaves like returning response status3771 returns not_found3772 package_name: "%20", status: :bad_request3773 behaves like returning response status3774 returns bad_request3775 with invalid tag name3776 tag_name: "unknown", status: :not_found3777 behaves like returning response status3778 returns not_found3779 tag_name: "", status: :not_found3780 behaves like returning response status3781 returns not_found3782 tag_name: "%20", status: :bad_request3783 behaves like returning response status3784 returns bad_request3785 package_name_type: :unscoped, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3786 behaves like reject delete package tag request3787 behaves like returning response status3788 returns not_found3789 package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3790 behaves like reject delete package tag request3791 behaves like returning response status3792 returns forbidden3793 package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok3794 behaves like accept delete package tag request3795 with valid package name3796 returns a valid response3797 destroy the package tag3798 behaves like returning response status3799 returns no_content3800 with tag from other package3801 behaves like returning response status3802 returns not_found3803 with invalid package name3804 package_name: "unknown", status: :not_found3805 behaves like returning response status3806 returns not_found3807 package_name: "", status: :not_found3808 behaves like returning response status3809 returns not_found3810 package_name: "%20", status: :bad_request3811 behaves like returning response status3812 returns bad_request3813 with invalid tag name3814 tag_name: "unknown", status: :not_found3815 behaves like returning response status3816 returns not_found3817 tag_name: "", status: :not_found3818 behaves like returning response status3819 returns not_found3820 tag_name: "%20", status: :bad_request3821 behaves like returning response status3822 returns bad_request3823 package_name_type: :non_existing, visibility: :private, user_role: :anonymous, expected_result: :reject, expected_status: :not_found3824 behaves like reject delete package tag request3825 behaves like returning response status3826 returns not_found3827 package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3828 behaves like reject delete package tag request3829 behaves like returning response status3830 returns forbidden3831 package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3832 behaves like reject delete package tag request3833 behaves like returning response status3834 returns not_found3835 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3836 behaves like reject delete package tag request3837 behaves like returning response status3838 returns forbidden3839 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3840 behaves like reject delete package tag request3841 behaves like returning response status3842 returns forbidden3843 package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3844 behaves like accept delete package tag request3845 with valid package name3846 returns a valid response3847 destroy the package tag3848 behaves like returning response status3849 returns no_content3850 with tag from other package3851 behaves like returning response status3852 returns not_found3853 with invalid package name3854 package_name: "unknown", status: :not_found3855 behaves like returning response status3856 returns not_found3857 package_name: "", status: :not_found3858 behaves like returning response status3859 returns not_found3860 package_name: "%20", status: :bad_request3861 behaves like returning response status3862 returns bad_request3863 with invalid tag name3864 tag_name: "unknown", status: :not_found3865 behaves like returning response status3866 returns not_found3867 tag_name: "", status: :not_found3868 behaves like returning response status3869 returns not_found3870 tag_name: "%20", status: :bad_request3871 behaves like returning response status3872 returns bad_request3873 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3874 behaves like reject delete package tag request3875 behaves like returning response status3876 returns forbidden3877 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3878 behaves like reject delete package tag request3879 behaves like returning response status3880 returns forbidden3881 package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3882 behaves like accept delete package tag request3883 with valid package name3884 returns a valid response3885 destroy the package tag3886 behaves like returning response status3887 returns no_content3888 with tag from other package3889 behaves like returning response status3890 returns not_found3891 with invalid package name3892 package_name: "unknown", status: :not_found3893 behaves like returning response status3894 returns not_found3895 package_name: "", status: :not_found3896 behaves like returning response status3897 returns not_found3898 package_name: "%20", status: :bad_request3899 behaves like returning response status3900 returns bad_request3901 with invalid tag name3902 tag_name: "unknown", status: :not_found3903 behaves like returning response status3904 returns not_found3905 tag_name: "", status: :not_found3906 behaves like returning response status3907 returns not_found3908 tag_name: "%20", status: :bad_request3909 behaves like returning response status3910 returns bad_request3911 package_name_type: :unscoped, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3912 behaves like reject delete package tag request3913 behaves like returning response status3914 returns forbidden3915 package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3916 behaves like reject delete package tag request3917 behaves like returning response status3918 returns forbidden3919 package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok3920 behaves like accept delete package tag request3921 with valid package name3922 returns a valid response3923 destroy the package tag3924 behaves like returning response status3925 returns no_content3926 with tag from other package3927 behaves like returning response status3928 returns not_found3929 with invalid package name3930 package_name: "unknown", status: :not_found3931 behaves like returning response status3932 returns not_found3933 package_name: "", status: :not_found3934 behaves like returning response status3935 returns not_found3936 package_name: "%20", status: :bad_request3937 behaves like returning response status3938 returns bad_request3939 with invalid tag name3940 tag_name: "unknown", status: :not_found3941 behaves like returning response status3942 returns not_found3943 tag_name: "", status: :not_found3944 behaves like returning response status3945 returns not_found3946 tag_name: "%20", status: :bad_request3947 behaves like returning response status3948 returns bad_request3949 package_name_type: :non_existing, visibility: :internal, user_role: :anonymous, expected_result: :reject, expected_status: :forbidden3950 behaves like reject delete package tag request3951 behaves like returning response status3952 returns forbidden3953 package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3954 behaves like reject delete package tag request3955 behaves like returning response status3956 returns forbidden3957 package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found3958 behaves like reject delete package tag request3959 behaves like returning response status3960 returns not_found3961 GET /api/v4/projects/:id/packages/npm/*package_name/-/*file_name3962 a public project3963 behaves like successfully downloads the file3964 returns the file3965 behaves like a package tracking event3966 creates a gitlab tracking event pull_package3967 behaves like bumping the package last downloaded at field3968 bumps last_downloaded_at3969 with a job token for a different user3970 behaves like successfully downloads the file3971 returns the file3972 private project3973 behaves like a package file that requires auth3974 denies download with no token3975 with access token3976 behaves like successfully downloads the file3977 returns the file3978 behaves like a package tracking event3979 creates a gitlab tracking event pull_package3980 behaves like bumping the package last downloaded at field3981 bumps last_downloaded_at3982 with job token3983 behaves like successfully downloads the file3984 returns the file3985 behaves like a package tracking event3986 creates a gitlab tracking event pull_package3987 behaves like bumping the package last downloaded at field3988 bumps last_downloaded_at3989 with guest3990 denies download when not enough permissions3991 with access to package registry for everyone3992 behaves like successfully downloads the file3993 returns the file3994 internal project3995 behaves like a package file that requires auth3996 denies download with no token3997 with access token3998 behaves like successfully downloads the file3999 returns the file4000 behaves like a package tracking event4001 creates a gitlab tracking event pull_package4002 behaves like bumping the package last downloaded at field4003 bumps last_downloaded_at4004 with job token4005 behaves like successfully downloads the file4006 returns the file4007 behaves like a package tracking event4008 creates a gitlab tracking event pull_package4009 behaves like bumping the package last downloaded at field4010 bumps last_downloaded_at4011 with a job token for a different user4012 behaves like successfully downloads the file4013 returns the file4014 PUT /api/v4/projects/:id/packages/npm/:package_name4015 when params are correct4016 invalid package record4017 invalid package name4018 behaves like handling invalid record with 400 error4019 handles an ActiveRecord::RecordInvalid exception with 400 error4020 behaves like not a package tracking event4021 does not create a gitlab tracking event4022 invalid package version4023 version: "1"4024 behaves like handling invalid record with 400 error4025 handles an ActiveRecord::RecordInvalid exception with 400 error4026 behaves like not a package tracking event4027 does not create a gitlab tracking event4028 version: "1.2"4029 behaves like handling invalid record with 400 error4030 handles an ActiveRecord::RecordInvalid exception with 400 error4031 behaves like not a package tracking event4032 does not create a gitlab tracking event4033 version: "1./2.3"4034 behaves like handling invalid record with 400 error4035 handles an ActiveRecord::RecordInvalid exception with 400 error4036 behaves like not a package tracking event4037 does not create a gitlab tracking event4038 version: "../../../../../1.2.3"4039 behaves like handling invalid record with 400 error4040 handles an ActiveRecord::RecordInvalid exception with 400 error4041 behaves like not a package tracking event4042 does not create a gitlab tracking event4043 version: "%2e%2e%2f1.2.3"4044 behaves like handling invalid record with 400 error4045 handles an ActiveRecord::RecordInvalid exception with 400 error4046 behaves like not a package tracking event4047 does not create a gitlab tracking event4048 valid package params4049 with a scoped name4050 behaves like handling upload with different authentications4051 creates npm package with file with job token4052 with access token4053 creates npm package with file4054 behaves like a package tracking event4055 creates a gitlab tracking event push_package4056 with an authenticated job token4057 creates the package metadata4058 with any scoped name4059 behaves like handling upload with different authentications4060 creates npm package with file with job token4061 with access token4062 creates npm package with file4063 behaves like a package tracking event4064 creates a gitlab tracking event push_package4065 with an authenticated job token4066 creates the package metadata4067 with an unscoped name4068 behaves like handling upload with different authentications4069 creates npm package with file with job token4070 with access token4071 creates npm package with file4072 behaves like a package tracking event4073 creates a gitlab tracking event push_package4074 with an authenticated job token4075 creates the package metadata4076 with an existing package4077 following the naming convention4078 behaves like handling invalid record with 400 error4079 handles an ActiveRecord::RecordInvalid exception with 400 error4080 behaves like not a package tracking event4081 does not create a gitlab tracking event4082 with a new version4083 behaves like uploading the package4084 uploads the package4085 not following the naming convention4086 behaves like uploading the package4087 uploads the package4088 package creation fails4089 returns an error if the package already exists4090 behaves like not a package tracking event4091 does not create a gitlab tracking event4092 with dependencies4093 creates npm package with file and dependencies4094 with existing dependencies4095 reuses them4096 with a too large metadata structure4097 returns an error4098 behaves like not a package tracking event4099 does not create a gitlab tracking event4100Projects::PipelinesController4101 GET index.json4102 does not include coverage data for the pipelines4103 paginates the result4104 when using persisted stages4105 returns serialized pipelines4106 when performing gitaly calls4107 limits the Gitaly requests4108 when the project is private4109 returns `not_found` when the user does not have access4110 returns the pipelines when the user has access4111 when user tries to access legacy scope via URL4112 redirects to all pipelines with that status instead4113 filter by scope4114 scope is branches or tags4115 when scope is branches4116 returns matched pipelines4117 when scope is tags4118 returns matched pipelines4119 filter by username4120 when username exists4121 returns matched pipelines4122 when username does not exist4123 returns empty4124 filter by ref4125 when pipelines with the ref exists4126 returns matched pipelines4127 when no pipeline with the ref exists4128 returns empty list4129 filter by status4130 when pipelines with the status exists4131 returns matched pipelines4132 when no pipeline with the status exists4133 returns empty list4134 when invalid status4135 returns all list4136 GET #index4137 with runners_availability_section experiment4138 tracks the assignment4139 GET #show4140 when the project is public4141 avoids N+1 database queries4142 when the project is private4143 returns `not_found` when the user does not have access4144 GET show.json4145 returns the pipeline4146 when the pipeline has multiple stages and groups4147 does not perform N + 1 queries4148 when builds are disabled4149 users can not see internal pipelines4150 when pipeline is external4151 users can see the external pipeline4152 with triggered pipelines4153 when it does have permission to read other projects4154 when not-expanding any pipelines4155 behaves like not expanded4156 does return base details4157 does not expand triggered_by pipeline4158 does not expand triggered pipelines4159 when expanding non-existing pipeline4160 behaves like not expanded4161 does return base details4162 does not expand triggered_by pipeline4163 does not expand triggered pipelines4164 when expanding pipeline that is not directly expandable4165 behaves like not expanded4166 does return base details4167 does not expand triggered_by pipeline4168 does not expand triggered pipelines4169 when expanding self4170 it does not recursively expand pipelines4171 behaves like not expanded4172 does return base details4173 does not expand triggered_by pipeline4174 does not expand triggered pipelines4175 when expanding source and target pipeline4176 behaves like expanded4177 does return base details4178 does expand triggered_by pipeline4179 does not recursively expand triggered_by4180 does expand triggered pipelines4181 does not recursively expand triggered4182 when expand depth is limited to 14183 behaves like not expanded4184 does return base details4185 does not expand triggered_by pipeline4186 does not expand triggered pipelines4187 when expanding all4188 behaves like expanded4189 does return base details4190 does expand triggered_by pipeline4191 does not recursively expand triggered_by4192 does expand triggered pipelines4193 does not recursively expand triggered4194 when does not have permission to read other projects4195 behaves like not expanded4196 does return base details4197 does not expand triggered_by pipeline4198 does not expand triggered pipelines4199 GET dag4200 behaves like the show page4201 renders the show template4202 GET dag.json4203 returns the pipeline with DAG serialization4204 GET builds4205 behaves like the show page4206 renders the show template4207 GET failures4208 with failed jobs4209 shows the page4210 without failed jobs4211 redirects to the main pipeline page4212 GET stages.json4213 when accessing existing stage4214 without retried4215 returns pipeline jobs without the retried builds4216 with retried4217 returns pipelines jobs with the retried builds4218 when accessing unknown stage4219 responds with not found4220 GET status.json4221 return a detailed pipeline status in json4222 GET #charts4223 behaves like tracking unique visits4224 tracks unique visit if the format is HTML4225 tracks unique visit if DNT is not enabled4226 does not track unique visit if DNT is enabled4227 does not track unique visit if the format is JSON4228 behaves like Snowplow event tracking with RedisHLL context4229 behaves like Snowplow event tracking4230 is not emitted if FF is disabled4231 is emitted4232 behaves like tracking unique visits4233 tracks unique visit if the format is HTML4234 tracks unique visit if DNT is not enabled4235 does not track unique visit if DNT is enabled4236 does not track unique visit if the format is JSON4237 behaves like Snowplow event tracking with RedisHLL context4238 behaves like Snowplow event tracking4239 is not emitted if FF is disabled4240 is emitted4241 behaves like tracking unique visits4242 tracks unique visit if the format is HTML4243 tracks unique visit if DNT is not enabled4244 does not track unique visit if DNT is enabled4245 does not track unique visit if the format is JSON4246 behaves like Snowplow event tracking with RedisHLL context4247 behaves like Snowplow event tracking4248 is not emitted if FF is disabled4249 is emitted4250 behaves like tracking unique visits4251 tracks unique visit if the format is HTML4252 tracks unique visit if DNT is not enabled4253 does not track unique visit if DNT is enabled4254 does not track unique visit if the format is JSON4255 behaves like Snowplow event tracking with RedisHLL context4256 behaves like Snowplow event tracking4257 is not emitted if FF is disabled4258 is emitted4259 behaves like tracking unique visits4260 tracks unique visit if the format is HTML4261 tracks unique visit if DNT is not enabled4262 does not track unique visit if DNT is enabled4263 does not track unique visit if the format is JSON4264 behaves like Snowplow event tracking with RedisHLL context4265 behaves like Snowplow event tracking4266 is not emitted if FF is disabled4267 is emitted4268 behaves like tracking unique visits4269 tracks unique visit if the format is HTML4270 tracks unique visit if DNT is not enabled4271 does not track unique visit if DNT is enabled4272 does not track unique visit if the format is JSON4273 behaves like Snowplow event tracking with RedisHLL context4274 behaves like Snowplow event tracking4275 is not emitted if FF is disabled4276 is emitted4277 POST create4278 with a valid .gitlab-ci.yml file4279 behaves like creates a pipeline4280 is expected to redirect to "/namespace17/project19/-/pipelines/169"4281 when latest commit contains [ci skip]4282 behaves like creates a pipeline4283 is expected to redirect to "/namespace18/project20/-/pipelines/170"4284 with an invalid .gitlab-ci.yml file4285 does not persist a pipeline4286 POST create.json4287 with a valid .gitlab-ci.yml file4288 creates a pipeline4289 with an invalid .gitlab-ci.yml file4290 does not create a pipeline4291 POST retry.json4292 retries a pipeline in the background without returning any content4293 when builds are disabled4294 fails to retry pipeline4295 when access denied4296 returns an error4297 when service returns an error4298 does not retry4299 POST cancel.json4300 cancels a pipeline without returning any content4301 when builds are disabled4302 fails to retry pipeline4303 GET test_report4304 behaves like the show page4305 renders the show template4306 GET test_report.json4307 with attachments4308 does not have N+1 problem with attachments4309 when pipeline does not have a test report4310 renders an empty test report4311 when pipeline has a test report4312 renders the test report4313 when pipeline has a corrupt test report artifact4314 renders the test reports4315 returns a suite_error on the suite with corrupted XML4316 when test_report contains attachment and scope is with_attachment as a URL param4317 returns a test reports with attachment4318 when test_report does not contain attachment and scope is with_attachment as a URL param4319 returns a test reports with empty values4320 GET latest4321 renders a 404 if no pipeline is found for the ref4322 no ref provided4323 shows latest pipeline for the default project branch4324 ref provided4325 shows a 404 if no pipeline exists4326 shows the latest pipeline for the provided ref4327 newer pipeline exists for older sha4328 shows the provided ref with the last sha/pipeline combo4329 DELETE #destroy4330 when user has ability to delete pipeline4331 deletes pipeline and redirects4332 and builds are disabled4333 fails to delete pipeline4334 and project is undergoing stats refresh4335 behaves like preventing request because of ongoing project stats refresh4336 logs about the rejected request4337 returns 409 error4338 does not delete the pipeline4339 when user has no privileges4340 fails to delete pipeline4341 GET config_variables.json4342 when sending a valid sha4343 returns variable list4344 when sending an invalid sha4345 returns empty json4346 when sending an invalid config4347 returns empty result4348 when the cache is empty4349 returns no content4350 when project uses external project ci config4351 returns other project config variables4352 GET downloadable_artifacts.json4353 when pipeline is empty4354 returns status not_found4355 when pipeline exists4356 when pipeline does not have any downloadable artifacts4357 returns an empty array4358 when pipeline has downloadable artifacts4359 returns an array of artifacts4360API::Badges4361 when deleting a badge4362 and the source is a project4363 cannot delete badges owned by the project group4364 when updating a badge4365 and the source is a project4366 cannot update badges owned by the project group4367 Endpoints4368 behaves like GET /:sources/:id/badges4369 with :sources == projects4370 avoids N+1 queries4371 behaves like a 404 response when source is private4372 returns 4044373 when authenticated as a maintainer4374 returns 2004375 when authenticated as a developer4376 returns 2004377 when authenticated as a access_requester4378 returns 2004379 when authenticated as a stranger4380 returns 2004381 behaves like GET /:sources/:id/badges/:badge_id4382 with :sources == projects4383 behaves like a 404 response when source is private4384 returns 4044385 behaves like GET /:sources/:id/badges/render4386 with :sources == projects4387 returns 400 when link_url is not given4388 returns 400 when image_url is not given4389 returns 400 when link_url or image_url is not valid4390 behaves like a 404 response when source is private4391 returns 4044392 when authenticated as a non-member or member with insufficient rights4393 as a access_requester4394 returns 4034395 as a stranger4396 returns 4034397 as a developer4398 returns 4034399 when authenticated as a maintainer/owner4400 gets the rendered badge values4401 behaves like POST /:sources/:id/badges4402 with :sources == projects4403 returns 400 when link_url is not given4404 returns 400 when image_url is not given4405 returns 400 when link_url or image_url is not valid4406 behaves like a 404 response when source is private4407 returns 4044408 when authenticated as a non-member or member with insufficient rights4409 as a access_requester4410 returns 4034411 as a stranger4412 returns 4034413 as a developer4414 returns 4034415 when authenticated as a maintainer/owner4416 creates a new badge4417 behaves like PUT /:sources/:id/badges/:badge_id4418 with :sources == projects4419 returns 400 when link_url or image_url is not valid4420 behaves like a 404 response when source is private4421 returns 4044422 when authenticated as a non-member or member with insufficient rights4423 as a access_requester4424 returns 4034425 as a stranger4426 returns 4034427 as a developer4428 returns 4034429 behaves like DELETE /:sources/:id/badges/:badge_id4430 with :sources == projects4431 returns 404 if badge does not exist4432 behaves like a 404 response when source is private4433 returns 4044434 when authenticated as a non-member or member with insufficient rights4435 as a access_requester4436 returns 4034437 as a developer4438 returns 4034439 as a stranger4440 returns 4034441 behaves like GET /:sources/:id/badges4442 with :sources == groups4443 avoids N+1 queries4444 behaves like a 404 response when source is private4445 returns 4044446 when authenticated as a maintainer4447 returns 2004448 when authenticated as a developer4449 returns 2004450 when authenticated as a access_requester4451 returns 2004452 when authenticated as a stranger4453 returns 2004454 behaves like GET /:sources/:id/badges/:badge_id4455 with :sources == groups4456 behaves like a 404 response when source is private4457 returns 4044458 behaves like GET /:sources/:id/badges/render4459 with :sources == groups4460 returns 400 when link_url is not given4461 returns 400 when image_url is not given4462 returns 400 when link_url or image_url is not valid4463 behaves like a 404 response when source is private4464 returns 4044465 when authenticated as a non-member or member with insufficient rights4466 as a access_requester4467 returns 4034468 as a stranger4469 returns 4034470 as a developer4471 returns 4034472 when authenticated as a maintainer/owner4473 gets the rendered badge values4474 behaves like POST /:sources/:id/badges4475 with :sources == groups4476 returns 400 when link_url is not given4477 returns 400 when image_url is not given4478 returns 400 when link_url or image_url is not valid4479 behaves like a 404 response when source is private4480 returns 4044481 when authenticated as a non-member or member with insufficient rights4482 as a access_requester4483 returns 4034484 as a stranger4485 returns 4034486 as a developer4487 returns 4034488 when authenticated as a maintainer/owner4489 creates a new badge4490 behaves like PUT /:sources/:id/badges/:badge_id4491 with :sources == groups4492 returns 400 when link_url or image_url is not valid4493 behaves like a 404 response when source is private4494 returns 4044495 when authenticated as a non-member or member with insufficient rights4496 as a access_requester4497 returns 4034498 as a stranger4499 returns 4034500 as a developer4501 returns 4034502 behaves like DELETE /:sources/:id/badges/:badge_id4503 with :sources == groups4504 returns 404 if badge does not exist4505 behaves like a 404 response when source is private4506 returns 4044507 when authenticated as a non-member or member with insufficient rights4508 as a access_requester4509 returns 4034510 as a developer4511 returns 4034512 as a stranger4513 returns 4034514Projects::ClustersController4515 GET index4516 functionality4517 when project has one or more clusters4518 lists available clusters and renders html4519 lists available clusters with json serializer4520 sets the polling interval header for json requests4521 feature flag is disabled4522 does not list any clusters4523 when page is specified4524 redirects to the page4525 displays cluster list for associated page4526 when project does not have a cluster4527 returns an empty state page4528 security4529 is allowed for admin when admin mode enabled4530 is disabled for admin when admin mode disabled4531 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2004532 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2004533 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2004534 is expected to be denied for reporter. Expected: 401,404 Got: 4044535 is expected to be denied for guest. Expected: 401,404 Got: 4044536 is expected to be denied for user. Expected: 401,404 Got: 4044537 is expected to be denied for external. Expected: 401,404 Got: 4044538 GET #prometheus_proxy4539 behaves like metrics dashboard prometheus api proxy4540 with valid requests4541 with success result4542 returns prometheus response4543 with nil query4544 does not raise error4545 with nil result4546 returns 204 no_content4547 with 404 result4548 returns body4549 with error result4550 with http_status4551 sets the http response status code4552 without http_status4553 returns bad_request4554 with inappropriate requests4555 without correct permissions4556 returns 4044557 with invalid proxyable id4558 returns 4044559 with anonymous user4560 redirects to signin page4561 behaves like GET #metrics_dashboard for dashboard4562 returns correct dashboard4563 behaves like GET #metrics_dashboard correctly formatted response4564 returns a json object with the correct keys4565 POST create for existing cluster4566 feature flag is disabled4567 responds with :not_found4568 functionality4569 when creates a cluster4570 creates a new cluster4571 when creates a RBAC-enabled cluster4572 creates a new cluster4573 when creates a user-managed cluster4574 creates a new user-managed cluster4575 security4576 is allowed for admin when admin mode enabled4577 is disabled for admin when admin mode disabled4578 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024579 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024580 is expected to be denied for developer. Expected: 401,404 Got: 4044581 is expected to be denied for reporter. Expected: 401,404 Got: 4044582 is expected to be denied for guest. Expected: 401,404 Got: 4044583 is expected to be denied for user. Expected: 401,404 Got: 4044584 is expected to be denied for external. Expected: 401,404 Got: 4044585 DELETE clear cluster cache4586 deletes the namespaces associated with the cluster4587 feature flag is disabled4588 responds with :not_found4589 security4590 is allowed for admin when admin mode enabled4591 is disabled for admin when admin mode disabled4592 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024593 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024594 is expected to be denied for developer. Expected: 401,404 Got: 4044595 is expected to be denied for reporter. Expected: 401,404 Got: 4044596 is expected to be denied for guest. Expected: 401,404 Got: 4044597 is expected to be denied for user. Expected: 401,404 Got: 4044598 is expected to be denied for external. Expected: 401,404 Got: 4044599 GET cluster_status4600 feature flag is disabled4601 responds with :not_found4602 functionality4603 responds with matching schema4604 invokes schedule_status_update on each application4605 security4606 is allowed for admin when admin mode enabled4607 is disabled for admin when admin mode disabled4608 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2004609 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2004610 is expected to be denied for developer. Expected: 401,404 Got: 4044611 is expected to be denied for reporter. Expected: 401,404 Got: 4044612 is expected to be denied for guest. Expected: 401,404 Got: 4044613 is expected to be denied for user. Expected: 401,404 Got: 4044614 is expected to be denied for external. Expected: 401,404 Got: 4044615 GET show4616 feature flag is disabled4617 responds with :not_found4618 functionality4619 renders view4620 renders integration tab view4621 security4622 is allowed for admin when admin mode enabled4623 is disabled for admin when admin mode disabled4624 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2004625 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2004626 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2004627 is expected to be denied for reporter. Expected: 401,404 Got: 4044628 is expected to be denied for guest. Expected: 401,404 Got: 4044629 is expected to be denied for user. Expected: 401,404 Got: 4044630 is expected to be denied for external. Expected: 401,404 Got: 4044631 PUT update4632 updates and redirects back to show page4633 feature flag is disabled4634 responds with :not_found4635 when format is json4636 when changing parameters4637 when valid parameters are used4638 updates and redirects back to show page4639 when invalid parameters are used4640 rejects changes4641 security4642 is allowed for admin when admin mode enabled4643 is disabled for admin when admin mode disabled4644 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024645 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024646 is expected to be denied for developer. Expected: 401,404 Got: 4044647 is expected to be denied for reporter. Expected: 401,404 Got: 4044648 is expected to be denied for guest. Expected: 401,404 Got: 4044649 is expected to be denied for user. Expected: 401,404 Got: 4044650 is expected to be denied for external. Expected: 401,404 Got: 4044651 DELETE destroy4652 feature flag is disabled4653 responds with :not_found4654 functionality4655 when cluster is provided by GCP4656 when cluster is created4657 destroys and redirects back to clusters list4658 when cluster is being created4659 destroys and redirects back to clusters list4660 when cluster is provided by user4661 destroys and redirects back to clusters list4662 security4663 is allowed for admin when admin mode enabled4664 is disabled for admin when admin mode disabled4665 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024666 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024667 is expected to be denied for developer. Expected: 401,404 Got: 4044668 is expected to be denied for reporter. Expected: 401,404 Got: 4044669 is expected to be denied for guest. Expected: 401,404 Got: 4044670 is expected to be denied for user. Expected: 401,404 Got: 4044671 is expected to be denied for external. Expected: 401,404 Got: 4044672 no project_id param4673 does not respond to any action without project_id param4674API::Issues4675 GET /issues/:id4676 when unauthorized4677 returns unauthorized4678 when authorized4679 as a normal user4680 returns forbidden4681 as an admin4682 when issue exists4683 returns the issue4684 when issue does not exist4685 returns 4044686 GET /issues4687 when unauthenticated4688 returns an array of all issues4689 returns authentication error without any scope4690 returns authentication error when scope is assigned-to-me4691 returns authentication error when scope is created-by-me4692 returns an array of issues matching state in milestone4693 returns an array of issues matching state in milestone4694 responds with a 401 instead of the specified issue4695 behaves like issuable anonymous search4696 with anonymous user4697 with disable_anonymous_search disabled4698 returns issuables matching given search string for title4699 returns issuables matching given search string for description4700 with disable_anonymous_search enabled4701 returns 422 error4702 issues_statistics4703 returns authentication error without any scope4704 returns authentication error when scope is assigned_to_me4705 returns authentication error when scope is created_by_me4706 no state is treated as all state4707 behaves like issues statistics4708 returns issues statistics4709 statistics when all state is passed4710 behaves like issues statistics4711 returns issues statistics4712 closed state is treated as all state4713 behaves like issues statistics4714 returns issues statistics4715 opened state is treated as all state4716 behaves like issues statistics4717 returns issues statistics4718 when filtering by milestone and no state treated as all state4719 behaves like issues statistics4720 returns issues statistics4721 when filtering by milestone and all state4722 behaves like issues statistics4723 returns issues statistics4724 when filtering by milestone and closed state treated as all state4725 behaves like issues statistics4726 returns issues statistics4727 when filtering by milestone and opened state treated as all state4728 behaves like issues statistics4729 returns issues statistics4730 sort does not affect statistics4731 behaves like issues statistics4732 returns issues statistics4733 with search param4734 behaves like issues statistics4735 returns issues statistics4736 with anonymous user4737 with disable_anonymous_search disabled4738 behaves like issues statistics4739 returns issues statistics4740 with disable_anonymous_search enabled4741 returns a unprocessable entity 4224742 when authenticated4743 returns an array of issues4744 returns an array of closed issues4745 returns an array of opened issues4746 returns an array of all issues4747 returns issues assigned to me4748 returns issues assigned to me (kebab-case)4749 returns issues authored by the given author id4750 returns issues assigned to the given assignee id4751 returns issues authored by the given author id and assigned to the given assignee id4752 returns issues with no assignee4753 returns issues with any assignee4754 returns only confidential issues4755 returns only public issues4756 returns issues reacted by the authenticated user4757 returns issues not reacted by the authenticated user4758 returns issues with a given issue_type4759 returns issues matching given search string for title4760 returns issues matching given search string for title and scoped in title4761 returns an empty array if no issue matches given search string for title and scoped in description4762 returns issues matching given search string for description4763 returns an array of issues found by iids4764 returns an empty array if iid does not exist4765 sorts ascending when requested4766 sorts by updated_at descending when requested4767 sorts by updated_at ascending when requested4768 sorts by title asc when requested4769 sorts by title desc when requested4770 matches V4 response schema4771 returns a related merge request count of 0 if there are no related merge requests4772 returns a related merge request count > 0 if there are related merge requests4773 filtering before a specific date4774 returns issues created before a specific date4775 returns issues updated before a specific date4776 filtering after a specific date4777 returns issues created after a specific date4778 returns issues updated after a specific date4779 filtering by due date4780 returns them all when argument is empty4781 returns issues with due date4782 returns issues without due date4783 returns issues due for this week4784 returns issues due for this month4785 returns issues that are due previous two weeks and next month4786 returns issues that are due today4787 returns issues that are due tomorrow4788 returns issues that are overdue4789 with incident issues4790 avoids N+1 queries4791 with issues closed as duplicates4792 avoids N+1 queries4793 filter by labels or label_name param4794 returns an array of labeled issues4795 returns an array of labeled issues with labels param as array4796 returns an empty array if no issue matches labels4797 returns an empty array if no issue matches labels with labels param as array4798 returns an array of labeled issues matching given state4799 returns an array of labeled issues matching given state with labels param as array4800 returns an empty array if no issue matches labels and state filters4801 returns an array of issues with any label4802 returns an array of issues with any label with labels param as array4803 returns an array of issues with no label4804 returns an array of issues with no label with labels param as array4805 N+14806 tests N+14807 with labeled issues4808 behaves like labeled issues with labels and label_name params4809 array of labeled issues when all labels match4810 behaves like returns label names4811 returns label names4812 array of labeled issues when all labels match with labels param as array4813 behaves like returns label names4814 returns label names4815 negation4816 array of labeled issues when all labels match with negation4817 behaves like returns negated label names4818 returns label names4819 array of labeled issues when all labels match with negation with label params as array4820 behaves like returns negated label names4821 returns label names4822 when with_labels_details provided4823 array of labeled issues when all labels match4824 behaves like returns basic label entity4825 returns basic label entity4826 array of labeled issues when all labels match with labels param as array4827 behaves like returns basic label entity4828 returns basic label entity4829 filter by milestone4830 returns an empty array if no issue matches milestone4831 returns an empty array if milestone does not exist4832 returns an array of issues in given milestone4833 returns an array of issues in given milestone_title param4834 returns an array of issues matching state in milestone4835 returns an array of issues with no milestone4836 returns an array of issues with no milestone using milestone_title param4837 negated4838 returns all issues if milestone does not exist4839 returns all issues that do not belong to a milestone but have a milestone4840 returns an array of issues with any milestone4841 returns an array of issues matching state not in milestone4842 filtering by milestone_id4843 milestone_id: wildcard_none, not_milestone: nil, expected_issues: lazy { [issue_none.id] }4844 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'4845 milestone_id: wildcard_any, not_milestone: nil, expected_issues: lazy { [issue_future.id, issue_started.id, issue_upcoming.id, issue.id, closed_issue.id] }4846 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'4847 milestone_id: wildcard_started, not_milestone: nil, expected_issues: lazy { [issue_started.id, issue_upcoming.id] }4848 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'4849 milestone_id: wildcard_upcoming, not_milestone: nil, expected_issues: lazy { [issue_upcoming.id] }4850 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'4851 milestone_id: wildcard_any, not_milestone: "upcoming milestone", expected_issues: lazy { [issue_future.id, issue_started.id, issue.id, closed_issue.id] }4852 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'4853 milestone_id: wildcard_upcoming, not_milestone: "upcoming milestone", expected_issues: []4854 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'4855 negated filtering4856 not_milestone_id: wildcard_started, expected_issues: lazy { [issue_future.id] }4857 returns correct issues when filtering with negated 'milestone_id'4858 not_milestone_id: wildcard_upcoming, expected_issues: lazy { [issue_started.id] }4859 returns correct issues when filtering with negated 'milestone_id'4860 when mutually exclusive params are passed4861 params: lazy { { milestone: "foo", milestone_id: wildcard_any } }4862 raises an error4863 params: lazy { { not: { milestone: "foo", milestone_id: wildcard_any } } }4864 raises an error4865 without sort params4866 sorts by created_at descending by default4867 with 2 issues with same created_at4868 page breaks first page correctly4869 page breaks second page correctly4870 with issues list sort options4871 accepts only predefined order by params4872 fails to sort with non predefined options4873 issues_statistics4874 no state is treated as all state4875 behaves like issues statistics4876 returns issues statistics4877 statistics when all state is passed4878 behaves like issues statistics4879 returns issues statistics4880 closed state is treated as all state4881 behaves like issues statistics4882 returns issues statistics4883 opened state is treated as all state4884 behaves like issues statistics4885 returns issues statistics4886 when filtering by milestone and no state treated as all state4887 behaves like issues statistics4888 returns issues statistics4889 when filtering by milestone and all state4890 behaves like issues statistics4891 returns issues statistics4892 when filtering by milestone and closed state treated as all state4893 behaves like issues statistics4894 returns issues statistics4895 when filtering by milestone and opened state treated as all state4896 behaves like issues statistics4897 returns issues statistics4898 sort does not affect statistics4899 behaves like issues statistics4900 returns issues statistics4901 filtering by assignee_username4902 returns issues with by assignee_username4903 returns issues by assignee_username as string4904 returns error when multiple assignees are passed4905 returns error when assignee_username and assignee_id are passed together4906 filtering by non_archived4907 returns issues from non archived projects by default4908 returns issues from archived project with non_archived set as false4909 when returns issue merge_requests_count for different access levels4910 behaves like accessible merge requests count4911 returns anonymous accessible merge requests count4912 returns guest accessible merge requests count4913 returns reporter accessible merge requests count4914 returns admin accessible merge requests count4915 GET /projects/:id/issues/:issue_iid4916 exposes full reference path4917 when issue is closed as duplicate4918 user does not have permission to view new issue4919 does not return the issue as closed_as_duplicate_of4920 when user has access to new issue4921 returns the issue as closed_as_duplicate_of4922 POST /projects/:id/issues4923 creates a new project issue4924 when issue create service returns an unrecoverable error4925 returns and error message and status code from the service4926 PUT /projects/:id/issues/:issue_iid4927 behaves like issuable update endpoint4928 PUT /projects/:id/issues/:issue_iid4929 clears labels when labels param is nil4930 updates the issuable with labels param as array4931 updated_at param4932 allows admins to set the timestamp4933 does not allow other users to set the timestamp4934 issue_type param4935 allows issue type to be converted4936 DELETE /projects/:id/issues/:issue_iid4937 rejects a non member from deleting an issue4938 rejects a developer from deleting an issue4939 returns 404 when using the issue ID instead of IID4940 when the user is project owner4941 deletes the issue if an admin requests it4942 behaves like 412 response4943 for a modified ressource4944 returns 412 with a JSON error4945 for an unmodified ressource4946 returns 204 with an empty body4947 when issue does not exist4948 returns 404 when trying to delete an issue4949 time tracking endpoints4950 POST /projects/:id/issues/:issue_id/time_estimate4951 sets the time estimate for issue4952 with an unauthorized user4953 behaves like an unauthorized API user4954 is expected to eq 4034955 behaves like API user with insufficient permissions4956 with non member that is the author4957 behaves like an unauthorized API user4958 is expected to eq 4034959 updating the current estimate4960 when duration has a bad format4961 does not modify the original estimate4962 with a valid duration4963 updates the estimate4964 POST /projects/:id/issues/:issue_id/reset_time_estimate4965 resets the time estimate for issue4966 with an unauthorized user4967 behaves like an unauthorized API user4968 is expected to eq 4034969 behaves like API user with insufficient permissions4970 with non member that is the author4971 behaves like an unauthorized API user4972 is expected to eq 4034973 POST /projects/:id/issues/:issue_id/add_spent_time4974 add spent time for issue4975 calls update service without :use_specialized_service param4976 with an unauthorized user4977 behaves like an unauthorized API user4978 is expected to eq 4034979 behaves like API user with insufficient permissions4980 with non member that is the author4981 behaves like an unauthorized API user4982 is expected to eq 4034983 when subtracting time4984 subtracts time of the total spent time4985 when time to subtract is greater than the total spent time4986 does not modify the total time spent4987 POST /projects/:id/issues/:issue_id/reset_spent_time4988 resets spent time for issue4989 with an unauthorized user4990 behaves like an unauthorized API user4991 is expected to eq 4034992 behaves like API user with insufficient permissions4993 with non member that is the author4994 behaves like an unauthorized API user4995 is expected to eq 4034996 GET /projects/:id/issues/:issue_id/time_stats4997 returns the time stats for issue4998 PUT /projects/:id/issues/:issue_iid/reorder4999 when user has access5000 with valid params5001 reorders issues and returns a successful 200 response5002 with invalid params5003 returns a unprocessable entity 422 response for invalid move ids5004 returns a not found 404 response for invalid issue id5005 with issue in different project5006 reorders issues and returns a successful 200 response5007 with unauthorized user5008 responds with 403 forbidden5009API::Lint5010 POST /ci/lint5011 when signup settings are disabled5012 when unauthenticated5013 returns authentication error5014 when authenticated5015 returns authorized5016 when authenticated as external user5017 when reporter in a project5018 returns authorization failure5019 when developer in a project5020 returns authorization success5021 when signup is enabled and not limited5022 when unauthenticated5023 returns authorized success5024 when authenticated5025 returns authentication success5026 when limited signup is enabled5027 when unauthenticated5028 returns unauthorized5029 when authenticated5030 returns authentication success5031 when authenticated5032 with valid .gitlab-ci.yml content5033 passes validation without warnings or errors5034 outputs expanded yaml content5035 outputs jobs5036 with valid .gitlab-ci.yml with warnings5037 passes validation but returns warnings5038 with an invalid .gitlab-ci.yml5039 with invalid syntax5040 responds with errors about invalid syntax5041 outputs expanded yaml content5042 outputs jobs5043 with invalid configuration5044 responds with errors about invalid configuration5045 outputs expanded yaml content5046 outputs jobs5047 without the content parameter5048 responds with validation error about missing content5049 GET /projects/:id/ci/lint5050 when unauthenticated5051 returns authentication error5052 when authenticated as non-member5053 when project is private5054 returns authentication error5055 when project is public5056 when running as dry run5057 returns pipeline creation error5058 when running static validation5059 behaves like valid config without warnings5060 passes validation5061 when authenticated as project guest5062 returns authentication error5063 when authenticated as project developer5064 with no commit5065 returns error about providing content5066 with valid .gitlab-ci.yml content5067 when running as dry run5068 behaves like valid config without warnings5069 passes validation5070 when running static validation5071 behaves like valid config without warnings5072 passes validation5073 when running with include jobs5074 returns jobs key5075 behaves like valid config without warnings5076 passes validation5077 when running without include jobs5078 does not return jobs key5079 behaves like valid config without warnings5080 passes validation5081 With warnings5082 behaves like valid config with warnings5083 passes validation with warnings5084 with invalid .gitlab-ci.yml content5085 when running as dry run5086 behaves like invalid config5087 responds with errors about invalid configuration5088 when running static validation5089 behaves like invalid config5090 responds with errors about invalid configuration5091 when running with include jobs5092 returns jobs key5093 behaves like invalid config5094 responds with errors about invalid configuration5095 when running without include jobs5096 does not return jobs key5097 behaves like invalid config5098 responds with errors about invalid configuration5099 POST /projects/:id/ci/lint5100 with an empty repository5101 passes validation without errors5102 when unauthenticated5103 returns authentication error5104 when project is public5105 returns authentication error5106 when authenticated as non-member5107 when project is private5108 returns authentication error5109 when project is public5110 when running as dry run5111 returns authentication error5112 when running static validation5113 returns authentication error5114 when authenticated as project guest5115 returns authentication error5116 when authenticated as project developer5117 with valid .gitlab-ci.yml content5118 when running as dry run5119 behaves like valid project config5120 passes validation5121 when running static validation5122 behaves like valid project config5123 passes validation5124 when running with include jobs param5125 contains jobs key5126 behaves like valid project config5127 passes validation5128 when running without include jobs param5129 does not contain jobs key5130 behaves like valid project config5131 passes validation5132 with invalid .gitlab-ci.yml content5133 when running as dry run5134 behaves like invalid project config5135 responds with errors about invalid configuration5136 when running static validation5137 behaves like invalid project config5138 responds with errors about invalid configuration5139 when running with include jobs set to false5140 does not contain jobs key5141 behaves like invalid project config5142 responds with errors about invalid configuration5143 when running with param include jobs5144 contains jobs key5145 behaves like invalid project config5146 responds with errors about invalid configuration5147Ldap::OmniauthCallbacksController5148 allows sign in5149 creates an authentication event record5150 respects remember me checkbox5151 with sign in prevented5152 does not allow sign in5153 with 2FA5154 passes remember_me to the Devise view5155 access denied5156 warns the user5157 doesn't authenticate user5158 sign up5159 is allowed5160 enable admin mode5161 with a regular user5162 cannot be enabled5163 with an admin user5164 when requested first5165 can be enabled5166 when not requested first5167 cannot be enabled5168API::V3::Github5169 GET /orgs/:namespace/repos5170 returns an empty array5171 returns 200 when namespace path include a dot5172 GET /user/repos5173 returns an empty array5174 old /-/jira endpoints5175 returns an empty Array for events5176 behaves like Jira-specific mimicked GitHub endpoints5177 GET /.../issues/:id/comments5178 when user has access to the merge request5179 returns an array of notes5180 when user has no access to the merge request5181 returns 4045182 GET /.../pulls/:id/commits5183 returns an empty array5184 GET /.../pulls/:id/comments5185 returns an empty array5186 new :namespace/:project jira endpoints5187 behaves like Jira-specific mimicked GitHub endpoints5188 GET /.../issues/:id/comments5189 when user has access to the merge request5190 returns an array of notes5191 when user has no access to the merge request5192 returns 4045193 GET /.../pulls/:id/commits5194 returns an empty array5195 GET /.../pulls/:id/comments5196 returns an empty array5197 GET /users/:username5198 user exists5199 responds with the expected user5200 user does not exist5201 responds with the expected status5202 no rights to request user lists5203 responds with forbidden5204 GET events5205 avoids N+1 queries5206 if there are no merge requests5207 returns an empty array5208 if there is a merge request5209 returns an event5210 if there are more merge requests5211 returns the expected amount of events5212 ensures each event has a unique id5213 repo pulls5214 GET /-/jira/pulls5215 returns an array of merge requests with github format5216 returns multiple merge requests without N + 15217 GET /repos/:namespace/:project/pulls5218 returns an array of merge requests for the proper project in github format5219 returns multiple merge requests without N + 15220 GET /repos/:namespace/:project/pulls/:id5221 when user has access to the merge requests5222 returns the requested merge request in github format5223 when user has no access to the merge request5224 returns 4045225 when instance admin5226 returns the requested merge request in github format5227 GET /users/:namespace/repos5228 group namespace5229 returns an array of projects belonging to group excluding the ones user is not directly a member of, even when public5230 when instance admin5231 returns an array of projects belonging to group5232 with a private group5233 returns an array of projects belonging to group5234 nested group namespace5235 returns an array of projects belonging to group with github format5236 avoids N+1 queries5237 user namespace5238 returns an array of projects belonging to user namespace with github format5239 namespace path includes a dot5240 returns an array of projects belonging to group with github format5241 unauthenticated5242 returns 4015243 namespace does not exist5244 responds with not found status5245 GET /repos/:namespace/:project/branches5246 authenticated5247 returns an array of project branches with github format5248 returns 200 when project path include a dot5249 returns 200 when namespace path include a dot5250 updating project feature usage5251 counts Jira Cloud integration as enabled5252 counts Jira Server integration as enabled5253 when the project has no repository5254 returns an empty collection response5255 unauthenticated5256 returns 4015257 unauthorized5258 returns 404 when lower access level5259 GET /repos/:namespace/:project/commits/:sha5260 authenticated5261 returns commit with github format5262 returns 200 when project path include a dot5263 when namespace path includes a dot5264 returns 200 when namespace path include a dot5265 when the Gitaly `CommitDiff` RPC times out5266 handles the error, logs it, and returns empty diff files5267 only calls Gitaly once for all attempts within a period of time5268 calls Gitaly again after a period of time5269 uses a unique cache key, allowing other calls to succeed5270 unauthenticated5271 returns 4015272 unauthorized5273 returns 404 when lower access level5274API::GroupLabels5275 GET :id/labels5276 get current group labels5277 behaves like fetches labels5278 returns correct labels5279 when search param is provided5280 behaves like fetches labels5281 returns correct labels5282 and is subscribed5283 returns true5284 and is unsubscribed5285 returns false5286 when the with_counts parameter is set5287 includes counts in the response5288 when include_descendant_groups param is provided5289 behaves like fetches labels5290 returns correct labels5291 when search param is provided5292 behaves like fetches labels5293 returns correct labels5294 when only_group_labels param is false5295 behaves like fetches labels5296 returns correct labels5297 when search param is provided5298 behaves like fetches labels5299 returns correct labels5300 with subgroup labels5301 when the include_ancestor_groups parameter is not set5302 behaves like fetches labels5303 returns correct labels5304 when search param is provided5305 behaves like fetches labels5306 returns correct labels5307 when the include_ancestor_groups parameter is set to false5308 behaves like fetches labels5309 returns correct labels5310 when search param is provided5311 behaves like fetches labels5312 returns correct labels5313 GET :id/labels/:label_id5314 returns a single label for the group5315 POST /groups/:id/labels5316 returns created label when all params are given5317 returns created label when only required params are given5318 returns a 400 bad request if name not given5319 returns a 400 bad request if color is not given5320 returns 409 if label already exists5321 DELETE /groups/:id/labels (deprecated)5322 returns 204 for existing label5323 returns 404 for non existing label5324 returns 400 for wrong parameters5325 does not delete parent's group labels5326 behaves like 412 response5327 for a modified ressource5328 returns 412 with a JSON error5329 for an unmodified ressource5330 returns 204 with an empty body5331 DELETE /groups/:id/labels/:label_id5332 returns 204 for existing label5333 returns 404 for non existing label5334 does not delete parent's group labels5335 behaves like 412 response5336 for a modified ressource5337 returns 412 with a JSON error5338 for an unmodified ressource5339 returns 204 with an empty body5340 PUT /groups/:id/labels (deprecated)5341 returns 200 if name and colors and description are changed5342 does not update parent's group label5343 returns 404 if label does not exist5344 returns 400 if no label name given5345 returns 400 if no new parameters given5346 PUT /groups/:id/labels/:label_id5347 returns 200 if name and colors and description are changed5348 does not update parent's group label5349 returns 404 if label does not exist5350 returns 400 if no new parameters given5351 POST /groups/:id/labels/:label_id/subscribe5352 when label_id is a label title5353 subscribes to the label5354 when label_id is a label ID5355 subscribes to the label5356 when user is already subscribed to label5357 returns 3045358 when label ID is not found5359 returns 404 error5360 POST /groups/:id/labels/:label_id/unsubscribe5361 when label_id is a label title5362 unsubscribes from the label5363 when label_id is a label ID5364 unsubscribes from the label5365 when user is already unsubscribed from label5366 returns 3045367 when label ID is not found5368 returns 404 error5369Projects::WikisController5370 behaves like wiki controller actions5371 GET #new5372 redirects to #show and appends a `random_title` param5373 when the wiki repository cannot be created5374 redirects to the wiki container and displays an error message5375 GET #pages5376 assigns the page collections5377 does not load the page content5378 does not load the sidebar5379 behaves like recovers from git timeout5380 when we encounter git command errors5381 renders the appropriate template5382 when the request is of non-html format5383 returns a 404 error5384 GET #history5385 behaves like recovers from git timeout5386 when we encounter git command errors5387 renders the appropriate template5388 behaves like fetching history5389 returns status ok5390 assigns @commits5391 behaves like fetching history5392 returns status not_found5393 GET #diff5394 when commit exists5395 renders the diff5396 when commit does not exist5397 returns a 404 error5398 when page does not exist5399 returns a 404 error5400 behaves like recovers from git timeout5401 when we encounter git command errors5402 renders the appropriate template5403 GET #show5404 when page exists5405 renders the page5406 behaves like recovers from git timeout5407 when we encounter git command errors5408 renders the appropriate template5409 the sidebar fails to load5410 renders the page, and marks the sidebar as failed5411 page view tracking5412 increases the page view counter5413 behaves like tracking unique hll events5414 tracks unique event5415 when page content encoding is invalid5416 sets flash error5417 when the page does not exist5418 when the user can create pages5419 builds a new wiki page with the id as the title5420 when a random_title param is present5421 builds a new wiki page with no title5422 when the user cannot create pages5423 shows the empty state5424 when page is a file5425 file_name: "dk.png"5426 delivers the file with the correct headers5427 file_name: "unsanitized.svg"5428 delivers the file with the correct headers5429 file_name: "sample.pdf"5430 delivers the file with the correct headers5431 POST #preview_markdown5432 renders json in a correct format5433 GET #edit5434 behaves like edit action5435 when the page does not exist5436 redirects to show5437 when id param is blank5438 redirects to the home page5439 when page content encoding is invalid5440 redirects to show5441 when the page has nil content5442 redirects to show5443 behaves like recovers from git timeout5444 when we encounter git command errors5445 renders the appropriate template5446 when page content encoding is valid5447 shows the edit page5448 PATCH #update5449 behaves like edit action5450 when the page does not exist5451 redirects to show5452 when id param is blank5453 redirects to the home page5454 when page content encoding is invalid5455 redirects to show5456 when the page has nil content5457 redirects to show5458 when page content encoding is valid5459 updates the page5460 when user does not have edit permissions5461 renders the empty state5462 POST #create5463 when page is valid5464 creates the page5465 when page is not valid5466 renders the edit state5467 DELETE #destroy5468 when page exists5469 behaves like deletes the page5470 is expected to be empty5471 but page cannot be deleted5472 renders the edit state5473 when user is a developer5474 behaves like deletes the page5475 is expected to be empty5476 when user is a reporter5477 returns 4045478 when page does not exist5479 renders 4045480 #git_access5481 renders the git access page5482Projects::MergeRequests::CreationsController5483 GET new5484 merge request that removes a submodule5485 renders new merge request widget template5486 merge request with some commits5487 shows total commits5488 with artificial limits5489 limits total commits5490 GET diffs5491 when merge request cannot be created5492 does not assign diffs var5493 GET pipelines5494 renders JSON including serialized pipelines5495 GET diff_for_path5496 when both branches are in the same project5497 disables diff notes5498 only renders the diffs for the path given5499 when the source branch is in a different project to the target5500 when the path exists in the diff5501 disables diff notes5502 only renders the diffs for the path given5503 when the path does not exist in the diff5504 returns a 4045505 GET #branch_to5506 fetches the commit if a user has access5507 does not load the commit when the user cannot create_merge_request_in5508 does not load the commit when the user cannot read the project5509 no target_project_id provided5510 selects itself as a target project5511 project is a fork5512 calls to project defaults to selects a correct target project5513 POST create5514 creates merge request5515 when the merge request is not created from the web ide5516 counter is not increased5517 when the merge request is created from the web ide5518 counter is increased5519API::PersonalAccessTokens5520 GET /personal_access_tokens5521 logged in as an Administrator5522 returns all PATs by default5523 filtered with user_id parameter5524 returns only PATs belonging to that user5525 filter with revoked parameter5526 revoked: true, status: :ok, result_count: 1, result: lazy { [revoked_token.id] }5527 behaves like response as expected5528 status, count and result as expected5529 revoked: false, status: :ok, result_count: 3, result: lazy { [not_revoked_token1.id, not_revoked_token2.id, current_users_token.id] }5530 behaves like response as expected5531 status, count and result as expected5532 revoked: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"revoked is invalid"}5533 behaves like response as expected5534 status, count and result as expected5535 filter with active parameter5536 state: "inactive", status: :ok, result_count: 2, result: lazy { [inactive_token1.id, inactive_token2.id] }5537 behaves like response as expected5538 status, count and result as expected5539 state: "active", status: :ok, result_count: 2, result: lazy { [active_token.id, current_users_token.id] }5540 behaves like response as expected5541 status, count and result as expected5542 state: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"state does not have a valid value"}5543 behaves like response as expected5544 status, count and result as expected5545 filter with created parameter5546 test created_before5547 created_at: "2022-01-02", status: :ok, result_count: 1, result: lazy { [token1.id] }5548 behaves like response as expected5549 status, count and result as expected5550 created_at: "2022-01-01", status: :ok, result_count: 0, result: lazy { [] }5551 behaves like response as expected5552 status, count and result as expected5553 created_at: "2022-01-01T12:30:24", status: :ok, result_count: 0, result: lazy { [] }5554 behaves like response as expected5555 status, count and result as expected5556 created_at: "2022-01-01T12:30:25", status: :ok, result_count: 1, result: lazy { [token1.id] }5557 behaves like response as expected5558 status, count and result as expected5559 created_at: "2022-01-01T:12:30:26", status: :ok, result_count: 1, result: lazy { [token1.id] }5560 behaves like response as expected5561 status, count and result as expected5562 created_at: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"created_before is invalid"}5563 behaves like response as expected5564 status, count and result as expected5565 test created_after5566 created_at: "2022-01-03", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }5567 behaves like response as expected5568 status, count and result as expected5569 created_at: "2022-01-01", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }5570 behaves like response as expected5571 status, count and result as expected5572 created_at: "2022-01-01T12:30:25", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }5573 behaves like response as expected5574 status, count and result as expected5575 created_at: "2022-01-01T12:30:26", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }5576 behaves like response as expected5577 status, count and result as expected5578 created_at: "2022-11-15T12:38:41+00:00", status: :ok, result_count: 0, result: lazy { [] }5579 behaves like response as expected5580 status, count and result as expected5581 created_at: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"created_after is invalid"}5582 behaves like response as expected5583 status, count and result as expected5584 filter with last_used parameter5585 test last_used_before5586 last_used_at: "2022-01-02", status: :ok, result_count: 1, result: lazy { [token1.id] }5587 behaves like response as expected5588 status, count and result as expected5589 last_used_at: "2022-01-01", status: :ok, result_count: 0, result: lazy { [] }5590 behaves like response as expected5591 status, count and result as expected5592 last_used_at: "2022-01-01T12:30:24", status: :ok, result_count: 0, result: lazy { [] }5593 behaves like response as expected5594 status, count and result as expected5595 last_used_at: "2022-01-01T12:30:25", status: :ok, result_count: 1, result: lazy { [token1.id] }5596 behaves like response as expected5597 status, count and result as expected5598 last_used_at: "2022-01-01T12:30:26", status: :ok, result_count: 1, result: lazy { [token1.id] }5599 behaves like response as expected5600 status, count and result as expected5601 last_used_at: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"last_used_before is invalid"}5602 behaves like response as expected5603 status, count and result as expected5604 test last_used_after5605 last_used_at: "2022-01-03", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }5606 behaves like response as expected5607 status, count and result as expected5608 last_used_at: "2022-01-01", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }5609 behaves like response as expected5610 status, count and result as expected5611 last_used_at: "2022-01-01T12:30:26", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }5612 behaves like response as expected5613 status, count and result as expected5614 last_used_at: "2022-01-01T12:30:25", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }5615 behaves like response as expected5616 status, count and result as expected5617 last_used_at: "2022-11-15T12:38:41+00:00", status: :ok, result_count: 0, result: lazy { [] }5618 behaves like response as expected5619 status, count and result as expected5620 last_used_at: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"last_used_after is invalid"}5621 behaves like response as expected5622 status, count and result as expected5623 filter with search parameter5624 pattern: "test", status: :ok, result_count: 2, result: lazy { [token1.id, token2.id] }5625 behaves like response as expected5626 status, count and result as expected5627 pattern: "", status: :ok, result_count: 4, result: lazy { [token1.id, token2.id, token3.id, current_users_token.id] }5628 behaves like response as expected5629 status, count and result as expected5630 pattern: "test_1", status: :ok, result_count: 1, result: lazy { [token1.id] }5631 behaves like response as expected5632 status, count and result as expected5633 pattern: "asdf", status: :ok, result_count: 0, result: lazy { [] }5634 behaves like response as expected5635 status, count and result as expected5636 filter created_before/created_after combined with last_used_before/last_used_after5637 date_before: "2022-01-03", date_after: "2022-01-01", status: :ok, result_count: 1, result: lazy { [token1.id] }5638 behaves like response as expected5639 status, count and result as expected5640 behaves like response as expected5641 status, count and result as expected5642 date_before: "2022-01-01", date_after: "2022-01-03", status: :ok, result_count: 0, result: lazy { [] }5643 behaves like response as expected5644 status, count and result as expected5645 behaves like response as expected5646 status, count and result as expected5647 date_before: "2022-01-03", date_after: nil, status: :ok, result_count: 1, result: lazy { [token1.id] }5648 behaves like response as expected5649 status, count and result as expected5650 behaves like response as expected5651 status, count and result as expected5652 date_before: nil, date_after: "2022-01-01", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }5653 behaves like response as expected5654 status, count and result as expected5655 behaves like response as expected5656 status, count and result as expected5657 filter created_before and created_after combined is valid5658 created_before: "2022-01-02", created_after: "2022-01-02", status: :ok, result: lazy { [token1.id] }5659 returns all valid tokens5660 created_before: "2022-01-03", created_after: "2022-01-01", status: :ok, result: lazy { [token1.id] }5661 returns all valid tokens5662 created_before: "2022-01-01", created_after: "2022-01-03", status: :ok, result: lazy { [] }5663 returns all valid tokens5664 created_before: "2022-01-03", created_after: nil, status: :ok, result: lazy { [token1.id] }5665 returns all valid tokens5666 created_before: nil, created_after: "2022-01-01", status: :ok, result: lazy { [token1.id] }5667 returns all valid tokens5668 filter last_used_before and last_used_after combined is valid5669 last_used_before: "2022-01-02", last_used_after: "2022-01-02", status: :ok, result: lazy { [token1.id] }5670 returns all valid tokens5671 last_used_before: "2022-01-03", last_used_after: "2022-01-01", status: :ok, result: lazy { [token1.id] }5672 returns all valid tokens5673 last_used_before: "2022-01-01", last_used_after: "2022-01-03", status: :ok, result: lazy { [] }5674 returns all valid tokens5675 last_used_before: "2022-01-03", last_used_after: nil, status: :ok, result: lazy { [token1.id] }5676 returns all valid tokens5677 last_used_before: nil, last_used_after: "2022-01-01", status: :ok, result: lazy { [token1.id] }5678 returns all valid tokens5679 logged in as a non-Administrator5680 returns all PATs belonging to the signed-in user5681 filtered with user_id parameter5682 returns PATs belonging to the specific user5683 is unauthorized if filtered by a user other than current_user5684 filter with revoked parameter5685 revoked: true, status: :ok, result_count: 1, result: lazy { [users_revoked_token.id] }5686 behaves like response as expected5687 status, count and result as expected5688 revoked: false, status: :ok, result_count: 1, result: lazy { [current_users_token.id] }5689 behaves like response as expected5690 status, count and result as expected5691 filter with active parameter5692 state: "inactive", status: :ok, result_count: 1, result: lazy { [users_inactive_token.id] }5693 behaves like response as expected5694 status, count and result as expected5695 state: "active", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }5696 behaves like response as expected5697 status, count and result as expected5698 filter with created parameter5699 created_before5700 behaves like response as expected5701 status, count and result as expected5702 created_after5703 behaves like response as expected5704 status, count and result as expected5705 filter with last_used5706 last_used_before5707 behaves like response as expected5708 status, count and result as expected5709 last_used_after5710 behaves like response as expected5711 status, count and result as expected5712 filter with search parameter5713 pattern: "test", status: :ok, result_count: 1, result: lazy { [token1.id] }5714 behaves like response as expected5715 status, count and result as expected5716 pattern: "", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }5717 behaves like response as expected5718 status, count and result as expected5719 pattern: "test_1", status: :ok, result_count: 1, result: lazy { [token1.id] }5720 behaves like response as expected5721 status, count and result as expected5722 not authenticated5723 is forbidden5724 GET /personal_access_tokens/:id5725 when current_user is an administrator5726 returns admins own PAT by id5727 returns a different users PAT by id5728 fails to return PAT because no PAT exists with this id5729 when current_user is not an administrator5730 returns users own PAT by id5731 fails to return other users PAT by id5732 fails to return PAT because no PAT exists with this id5733 fails to return own PAT by id with read_repository token5734 DELETE /personal_access_tokens/:id5735 when current_user is an administrator5736 revokes a different users token5737 revokes their own token5738 fails to revoke a different user token using a readonly scope5739 when current_user is not an administrator5740 fails revokes a different users token5741 revokes their own token5742 cannot revoke impersonation token5743Projects::UploadsController5744 behaves like handle uploads5745 behaves like handle uploads authorize5746 POST #authorize5747 when a user is not authorized to upload a file5748 returns 404 status5749 when id is not passed as a param5750 returns 404 status5751 when a user can upload a file5752 and the request bypassed workhorse5753 raises an exception5754 and request is sent by gitlab-workhorse to authorize the request5755 when using local storage5756 behaves like a local file5757 behaves like a valid response5758 responds with status 2005759 uses the gitlab-workhorse content type5760 responds with status 200, location of uploads store and object details5761 when using remote storage5762 when direct upload is enabled5763 behaves like a valid response5764 responds with status 2005765 uses the gitlab-workhorse content type5766 responds with status 200, location of uploads remote store and object details5767 when direct upload is disabled5768 behaves like a local file5769 behaves like a valid response5770 responds with status 2005771 uses the gitlab-workhorse content type5772 responds with status 200, location of uploads store and object details5773 POST #create5774 when a user is not authorized to upload a file5775 returns 404 status5776 when a user can upload a file5777 without params['file']5778 returns an error5779 with valid image5780 returns a content with original filename, new link, and correct type.5781 creates a corresponding Upload record5782 with valid non-image file5783 returns a content with original filename, new link, and correct type.5784 GET #show5785 when the secret is invalid5786 responds with status 4045787 is a working exploit without the validation5788 when accessing a specific upload via different model5789 responds with status 4045790 when the upload does not have a MIME type that Rails knows5791 falls back to the null type5792 when the model is public5793 when not signed in5794 when the file exists5795 responds with status 2005796 when neither the uploader nor the model exists5797 responds with status 4045798 when the file doesn't exist5799 responds with status 4045800 when signed in5801 when the file exists5802 responds with status 2005803 when the file doesn't exist5804 responds with status 4045805 when the model is private5806 when not signed in5807 when the file exists5808 when the file is an image5809 responds with the appropriate status code5810 when the file is not an image5811 redirects to the sign in page5812 when the file doesn't exist5813 redirects to the sign in page5814 when signed in5815 when the user has access to the project5816 when the file exists5817 responds with status 2005818 when the file doesn't exist5819 responds with status 4045820 when the user doesn't have access to the model5821 when the file exists5822 when the file is an image5823 responds with the appropriate status code5824 when the file is not an image5825 responds with status 4045826 when the file doesn't exist5827 responds with status 4045828 when the URL the old style, without /-/system5829 responds with a redirect to the login page5830 with a moved project5831 redirects to a file with the proper extension5832 when exception occurs5833 responds with status internal_server_error5834 GET #show5835 when project is private do5836 when not signed in5837 when the project has setting enforce_auth_checks_on_uploads true5838 responds with status 3025839 when the project has setting enforce_auth_checks_on_uploads false5840 responds with status 2005841 when signed in5842 when the user doesn't have access to the model5843 when the project has setting enforce_auth_checks_on_uploads true5844 responds with status 4045845 when the project has setting enforce_auth_checks_on_uploads false5846 responds with status 2005847 when project is public5848 when not signed in5849 when the project has setting enforce_auth_checks_on_uploads true5850 responds with status 2005851 when the project has setting enforce_auth_checks_on_uploads false5852 responds with status 2005853 when signed in5854 when the user doesn't have access to the model5855 when the project has setting enforce_auth_checks_on_uploads true5856 responds with status 2005857 when the project has setting enforce_auth_checks_on_uploads false5858 responds with status 2005859Projects::MirrorsController5860 Access control5861 #update5862 when project mirroring is enabled5863 allows requests from a maintainer5864 allows requests from an admin user5865 when project mirroring is disabled5866 disallows requests from a maintainer5867 when admin mode is enabled5868 allows requests from an admin user5869 when admin mode is disabled5870 disallows requests from an admin user5871 #update_now5872 when project mirroring is enabled5873 allows requests from a maintainer5874 allows requests from an admin user5875 when project mirroring is disabled5876 disallows requests from a maintainer5877 when admin mode is enabled5878 allows requests from an admin user5879 when admin mode is disabled5880 disallows requests from an admin user5881 setting up a remote mirror5882 when the current project is not a mirror5883 allows to create a remote mirror5884 setting up SSH public-key authentication5885 processes a successful update5886 #update5887 With valid URL for a push5888 processes a successful update5889 creates a RemoteMirror object5890 With invalid URL for a push5891 processes an unsuccessful update5892 does not create a RemoteMirror object5893 #ssh_host_keys5894 invalid URLs5895 returns an error with a 400 response for URL "INVALID"5896 returns an error with a 400 response for URL "git@example.com:foo/bar.git"5897 returns an error with a 400 response for URL "ssh://git@example.com:foo/bar.git"5898 returns an error with a 400 response for URL "ssh://127.0.0.1/foo/bar.git"5899 no data in cache5900 requests the cache to be filled and returns a 204 response5901 error in the cache5902 returns the error with a 400 response5903 data in the cache5904 returns the data with a 200 response5905API::ProjectImport5906 POST /projects/import5907 executes a limited number of queries5908 schedules an import using a namespace5909 schedules an import using the namespace path5910 schedules an import at the user namespace level5911 does not schedule an import for a namespace that does not exist5912 does not schedule an import if the user has no permission to the namespace5913 stores params that can be overridden5914 does not store params that are not allowed5915 behaves like requires authentication5916 returns 4015917 when a name is explicitly set5918 schedules an import using a namespace and a different name5919 schedules an import using the namespace path and a different name5920 sets name correctly5921 sets name correctly with an overwrite5922 schedules an import using the path and name explicitly set to nil5923 if user uploads no valid file5924 does not schedule an import if the user uploads no valid file5925 when target path already exists in namespace5926 does not schedule an import5927 when param overwrite is true5928 schedules an import5929 when request exceeds the rate limit5930 prevents users from importing projects5931 when using remote storage5932 schedules an import5933 POST /projects/remote-import5934 behaves like requires authentication5935 returns 4015936 when the response is successful5937 schedules the import successfully5938 when the service returns an error5939 fails to schedule the import5940 POST /projects/remote-import-s35941 returns NOT FOUND when the feature is disabled5942 behaves like requires authentication5943 returns 4015944 when the feature flag is enabled5945 when the response is successful5946 schedules the import successfully5947 when the service returns an error5948 fails to schedule the import5949 GET /projects/:id/import5950 public project accessible for an unauthenticated user5951 returns the import status5952 returns the import status and the error if failed5953 returns the import status if canceled5954 POST /projects/import/authorize5955 authorizes importing project with workhorse header5956 rejects requests that bypassed gitlab-workhorse5957 behaves like requires authentication5958 returns 4015959 when using remote storage5960 when direct upload is enabled5961 responds with status 200, location of file remote store and object details5962 when direct upload is disabled5963 handles as a local file5964API::Markdown Golden Master5965 examples must be unique and alphabetized by name5966 for attachment_image_for_group (api_context: group)5967 verifies conversion of GFM to HTML5968 for attachment_image_for_project (api_context: project)5969 verifies conversion of GFM to HTML5970 for attachment_image_for_project_wiki (api_context: project_wiki)5971 verifies conversion of GFM to HTML5972 for attachment_link_for_group (api_context: group)5973 verifies conversion of GFM to HTML5974 for attachment_link_for_project (api_context: project)5975 verifies conversion of GFM to HTML5976 for attachment_link_for_project_wiki (api_context: project_wiki)5977 verifies conversion of GFM to HTML5978 for audio5979 verifies conversion of GFM to HTML5980 for audio_and_video_in_lists5981 verifies conversion of GFM to HTML5982 for blockquote5983 verifies conversion of GFM to HTML5984 for bold5985 verifies conversion of GFM to HTML5986 for bullet_list_style_15987 verifies conversion of GFM to HTML5988 for bullet_list_style_25989 verifies conversion of GFM to HTML5990 for bullet_list_style_35991 verifies conversion of GFM to HTML5992 for code_block_javascript5993 verifies conversion of GFM to HTML5994 for code_block_plaintext5995 verifies conversion of GFM to HTML5996 for code_block_unknown5997 verifies conversion of GFM to HTML5998 for color_chips5999 verifies conversion of GFM to HTML6000 for description_list6001 verifies conversion of GFM to HTML6002 for details6003 verifies conversion of GFM to HTML6004 for diagram_kroki_nomnoml6005 verifies conversion of GFM to HTML6006 for diagram_plantuml6007 verifies conversion of GFM to HTML6008 for diagram_plantuml_unicode6009 verifies conversion of GFM to HTML6010 for div6011 verifies conversion of GFM to HTML6012 for emoji6013 verifies conversion of GFM to HTML6014 for emphasis6015 verifies conversion of GFM to HTML6016 for figure6017 verifies conversion of GFM to HTML6018 for footnotes6019 verifies conversion of GFM to HTML (PENDING: https://gitlab.com/gitlab-org/gitlab/-/issues/346591)6020 for frontmatter_json6021 verifies conversion of GFM to HTML6022 for frontmatter_toml6023 verifies conversion of GFM to HTML6024 for frontmatter_yaml6025 verifies conversion of GFM to HTML6026 for hard_break6027 verifies conversion of GFM to HTML6028 for headings6029 verifies conversion of GFM to HTML6030 for horizontal_rule6031 verifies conversion of GFM to HTML6032 for html_marks6033 verifies conversion of GFM to HTML6034 for image6035 verifies conversion of GFM to HTML6036 for inline_code6037 verifies conversion of GFM to HTML6038 for inline_diff6039 verifies conversion of GFM to HTML6040 for label6041 verifies conversion of GFM to HTML6042 for link6043 verifies conversion of GFM to HTML6044 for math6045 verifies conversion of GFM to HTML6046 for ordered_list6047 verifies conversion of GFM to HTML6048 for ordered_list_with_start_order6049 verifies conversion of GFM to HTML6050 for ordered_task_list6051 verifies conversion of GFM to HTML6052 for ordered_task_list_with_order6053 verifies conversion of GFM to HTML6054 for reference_for_project_wiki (api_context: project_wiki)6055 verifies conversion of GFM to HTML6056 for strike6057 verifies conversion of GFM to HTML6058 for table6059 verifies conversion of GFM to HTML6060 for table_of_contents6061 verifies conversion of GFM to HTML6062 for task_list6063 verifies conversion of GFM to HTML6064 for video6065 verifies conversion of GFM to HTML6066 for word_break6067 verifies conversion of GFM to HTML6068Groups::GroupMembersController6069 GET index6070 renders index with 200 status code6071 when user can manage members6072 assigns invited members6073 restricts search to one email6074 paginates invited list6075 when user cannot manage members6076 does not assign invited members6077 when user has owner access to subgroup6078 lists inherited group members by default6079 lists direct group members only6080 lists inherited group members only6081 when webui_members_inherited_users is disabled6082 lists inherited group members only6083 PUT update6084 access level6085 can change the access level to Guest6086 can change the access level to Reporter6087 can change the access level to Developer6088 can change the access level to Maintainer6089 access expiry date6090 when set to a date in the past6091 does not update the member6092 returns error status6093 returns error message6094 when set to a date in the future6095 updates the member6096 expiration date6097 when `expires_at` is set6098 returns correct json response6099 when `expires_at` is not set6100 returns empty json response6101 DELETE destroy6102 when member is not found6103 returns 4036104 when member is found6105 when user does not have enough rights6106 returns 4036107 when user has enough rights6108 [HTML] removes user from members6109 [HTML] removes user from members including subgroups and projects6110 [JS] removes user from members6111 DELETE leave6112 when member is not found6113 returns 4046114 when member is found6115 and is not an owner6116 removes user from members6117 supports json request6118 and is an owner6119 cannot remove user from the group6120 and there is a group project bot owner6121 cannot remove user from the group6122 and there is another owner6123 removes user from members6124 and is a requester6125 removes user from members6126 POST request_access6127 creates a new GroupMember that is not a team member6128 POST approve_access_request6129 when member is not found6130 returns 4036131 when member is found6132 when user does not have enough rights6133 returns 4036134 when user has enough rights6135 adds user to members6136 with external authorization enabled6137 GET #index6138 is successful6139 PUT #update6140 is successful6141 DELETE #destroy6142 is successful6143 POST #destroy6144 is successful6145 POST #approve_request_access6146 is successful6147 DELETE #leave6148 is successful6149 POST #resend_invite6150 is successful6151Toggling an AwardEmoji6152 when the user has permission6153 when the given awardable is not an Awardable6154 behaves like a mutation that does not create or destroy an AwardEmoji6155 is expected not to change `AwardEmoji.count`6156 behaves like a mutation that returns top-level errors6157 is expected to include /was provided invalid value for awardableId/6158 when the given awardable is an Awardable but still cannot be awarded an emoji6159 behaves like a mutation that does not create or destroy an AwardEmoji6160 is expected not to change `AwardEmoji.count`6161 behaves like a mutation that returns top-level errors6162 is expected to contain exactly "You cannot award emoji to this resource."6163 when the given awardable is an Awardable6164 when no emoji has been awarded by the current_user yet6165 creates an emoji6166 returns the emoji6167 returns toggledOn as true6168 marking Todos as done6169 type: :issue, expectation: true6170 is expected to eq true6171 type: :merge_request, expectation: true6172 is expected to eq true6173 type: :project_snippet, expectation: false6174 is expected to eq false6175 for notes6176 regular Notes6177 marks the Todo as done6178 PersonalSnippet Notes6179 does not mark the Todo as done6180 when there were active record validation errors6181 returns an empty awardEmoji6182 behaves like a mutation that does not create or destroy an AwardEmoji6183 is expected not to change `AwardEmoji.count`6184 behaves like a mutation that returns errors in the response6185 is expected to contain exactly "Error 1" and "Error 2"6186 when an emoji has been awarded by the current_user6187 removes the emoji6188 returns no errors6189 returns an empty awardEmoji6190 returns toggledOn as false6191 when the user does not have permission6192 behaves like a mutation that does not create or destroy an AwardEmoji6193 is expected not to change `AwardEmoji.count`6194 behaves like a mutation that returns a top-level access error6195 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"6196Query.project(fullPath).releases()6197 ensures that the correct data is returned based on the project's visibility and the user's access level6198 when the project is private6199 when the user is not logged in6200 behaves like no access to any release data6201 returns nil6202 when the user has Guest permissions6203 behaves like no access to any repository-related fields6204 repository-related fields6205 does not return data for fields that expose repository information6206 behaves like correct total count6207 returns the total count6208 when the user has Reporter permissions6209 behaves like full access to all repository-related fields6210 repository-related fields6211 returns data for fields that are protected in private projects6212 behaves like correct total count6213 returns the total count6214 behaves like no access to editUrl6215 does not return editUrl6216 when the user has Developer permissions6217 behaves like full access to all repository-related fields6218 repository-related fields6219 returns data for fields that are protected in private projects6220 behaves like correct total count6221 returns the total count6222 behaves like access to editUrl6223 returns editUrl6224 when the project is public6225 when the user is not logged in6226 behaves like full access to all repository-related fields6227 repository-related fields6228 returns data for fields that are protected in private projects6229 behaves like correct total count6230 returns the total count6231 behaves like no access to editUrl6232 does not return editUrl6233 when the user has Guest permissions6234 behaves like full access to all repository-related fields6235 repository-related fields6236 returns data for fields that are protected in private projects6237 behaves like correct total count6238 returns the total count6239 behaves like no access to editUrl6240 does not return editUrl6241 when the user has Reporter permissions6242 behaves like full access to all repository-related fields6243 repository-related fields6244 returns data for fields that are protected in private projects6245 behaves like correct total count6246 returns the total count6247 behaves like no access to editUrl6248 does not return editUrl6249 when the user has Developer permissions6250 behaves like full access to all repository-related fields6251 repository-related fields6252 returns data for fields that are protected in private projects6253 behaves like correct total count6254 returns the total count6255 behaves like access to editUrl6256 returns editUrl6257 sorting and pagination6258 when sorting by released_at6259 when ascending6260 behaves like sorted paginated query6261 behaves like requires variables6262 shared example requires variables to be set6264 when sorting6265 sorts correctly6266 when paginating6267 paginates correctly6268 when descending6269 behaves like sorted paginated query6270 behaves like requires variables6271 shared example requires variables to be set6273 when sorting6274 sorts correctly6275 when paginating6276 paginates correctly6277 when sorting by created_at6278 when ascending6279 behaves like sorted paginated query6280 behaves like requires variables6281 shared example requires variables to be set6283 when sorting6284 sorts correctly6285 when paginating6286 paginates correctly6287 when descending6288 behaves like sorted paginated query6289 behaves like requires variables6290 shared example requires variables to be set6292 when sorting6293 sorts correctly6294 when paginating6295 paginates correctly6296Projects::ImportsController6297 GET #show6298 when user is not authenticated and the project is public6299 returns 404 response6300 when the user has maintainer rights6301 when repository does not exists6302 renders template6303 sets flash.now if params is present6304 when repository exists6305 when import is in progress6306 renders template6307 sets flash.now if params is present6308 when import failed6309 redirects to new_namespace_project_import_path6310 when import finished6311 when project is a fork6312 redirects to namespace_project_path6313 when project is external6314 redirects to namespace_project_path6315 when continue params is present6316 redirects to internal params[:to]6317 does not redirect to external params[:to]6318 when import never happened6319 redirects to namespace_project_path6320 when project is in group6321 when user has developer access to group and import is in progress6322 when group allows developers to create projects6323 renders template6324 when group prohibits developers to create projects6325 returns 404 response6326 POST #create6327 sets import_url to the project6328Projects::Clusters::IntegrationsController6329 POST create_or_update6330 behaves like #create_or_update action6331 authorization6332 behaves like a secure endpoint6333 is allowed for admin when admin mode enabled6334 is denied for admin when admin mode disabled6335 it is allowed for project maintainers6336 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3026337 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3026338 is expected to be denied for developer. Expected: 401,404 Got: 4046339 is expected to be denied for reporter. Expected: 401,404 Got: 4046340 is expected to be denied for guest. Expected: 401,404 Got: 4046341 is expected to be denied for user. Expected: 401,404 Got: 4046342 is expected to be denied for external. Expected: 401,404 Got: 4046343 functionality6344 redirects on success6345 redirects on error6346API::FeatureFlagsUserLists6347 GET /projects/:id/feature_flags_user_lists6348 forbids the request for a reporter6349 returns forbidden if the feature is unavailable6350 returns all the user lists6351 returns all the data for a user list6352 paginates user lists6353 returns the user lists for only the specified project6354 returns an empty list6355 when filtering6356 returns lists matching the search term6357 returns lists matching multiple search terms6358 returns all lists with no query6359 GET /projects/:id/feature_flags_user_lists/:iid6360 forbids the request for a reporter6361 returns forbidden if the feature is unavailable6362 returns the user list6363 returns the correct user list identified by the iid6364 scopes the iid search to the project6365 returns not found when the list does not exist6366 POST /projects/:id/feature_flags_user_lists6367 forbids the request for a reporter6368 returns forbidden if the feature is unavailable6369 creates the flag6370 requires name6371 requires user_xids6372 returns an error when name is already taken6373 does not create a flag for a project of which the developer is not a member6374 PUT /projects/:id/feature_flags_user_lists/:iid6375 forbids the request for a reporter6376 returns forbidden if the feature is unavailable6377 updates the list6378 preserves attributes not listed in the request6379 returns an error when the update is invalid6380 returns not found when the list does not exist6381 DELETE /projects/:id/feature_flags_user_lists/:iid6382 forbids the request for a reporter6383 returns forbidden if the feature is unavailable6384 returns not found when the list does not exist6385 deletes the list6386 does not delete the list if it is associated with a strategy6387Projects::DesignManagement::Designs::RawImagesController6388 GET #show6389 when the design is not an LFS file6390 serves files with `Content-Disposition` header set to attachment plus the filename6391 serves files with Workhorse6392 behaves like project cache control headers6393 when project is public6394 returns cache_control public header to true6395 when project is private6396 returns cache_control public header to true6397 when project is internal6398 returns cache_control public header to true6399 when the user does not have permission6400 is expected to respond with numeric status code not_found6401 when design does not exist6402 is expected to respond with numeric status code not_found6403 sha param6404 is expected not to eq "a18d14103ed88ea68a356175d516dbad7a827425"6405 when sha is the newest version sha6406 behaves like a successful request for sha6407 is expected to respond with numeric status code ok6408 when sha is the oldest version sha6409 behaves like a successful request for sha6410 is expected to respond with numeric status code ok6411 when sha is nil6412 behaves like a successful request for sha6413 is expected to respond with numeric status code ok6414 when the design is an LFS file6415 serves files with `Content-Disposition: attachment`6416 sets appropriate caching headers6417 behaves like a controller that can serve LFS files6418 when lfs is enabled6419 when the project is linked to the LfsObject6420 serves the file6421 and lfs uses object storage6422 responds with redirect to file6423 sets content disposition6424 when project is not linked to the LfsObject6425 does not serve the file6426 when the project is part of a fork network6427 when the project is the root of the fork network6428 behaves like a controller that correctly serves lfs files within a fork network6429 is expected not to eq #<Project id:376 namespace263/project357>>6430 does not serve the file if no members are linked to the LfsObject6431 serves the file when the fork network root is linked to the LfsObject6432 serves the file when the fork network member is linked to the LfsObject6433 when the project is a downstream member of the fork network6434 behaves like a controller that correctly serves lfs files within a fork network6435 is expected not to eq #<Project id:381 namespace268/project362>>6436 does not serve the file if no members are linked to the LfsObject6437 serves the file when the fork network root is linked to the LfsObject6438 serves the file when the fork network member is linked to the LfsObject6439 when lfs is not enabled6440 delivers ASCII file (PENDING: Calling spec asked to skip testing LFS disabled scenario)6441Projects::CycleAnalyticsController6442 includes GracefulTimeoutHandling6443 counting page views for 'show'6444 increases the counter6445 tracking visits to html page6446 behaves like tracking unique visits6447 tracks unique visit if the format is HTML6448 tracks unique visit if DNT is not enabled6449 does not track unique visit if DNT is enabled6450 does not track unique visit if the format is JSON6451 behaves like Snowplow event tracking with RedisHLL context6452 behaves like Snowplow event tracking6453 is not emitted if FF is disabled6454 is emitted6455nuget package details6456DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6457DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6458 has the correct metadata6459DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6460DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6461 has dependency links6462DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6463DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6464 avoids N+1 queries6465 behaves like a package detail6466 behaves like a working graphql query6467DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6468DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6469 returns a successful response6470 behaves like matching the package details schema6471DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6472DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6473 matches the JSON schema6474 with pipelines6475 behaves like a working graphql query6476DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6477DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6478 returns a successful response6479 behaves like matching the package details schema6480DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6481DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6482 matches the JSON schema6483 behaves like a package with files6484DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6485DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6486 has the right amount of files6487DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6488DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6489 has the basic package files data6490 with package files pending destruction6491DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6492DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6493 does not return them6494deleting designs6495 the designs list is empty6496 behaves like a failed request6497 reports an error6498 the designs list contains filenames we cannot find6499 behaves like a failed request6500 reports an error6501 the current user does not have developer access6502 behaves like a failed request6503 reports an error6504 when the issue does not exist6505 behaves like a failed request6506 reports an error6507 when saving the designs raises an error6508 responds with errors6509 one of the designs is already deleted6510 reports an error6511 when the user names designs to delete6512 deletes the designs6513 has no errors6514Projects::MergeRequests::ContentController6515 user has access to the project6516 GET cached_widget6517 renders widget MR entity as json6518 closes an MR with moved source project6519 GET widget6520 checks whether the MR can be merged6521 merged merge request6522 renders widget MR entity as json6523 with coverage data6524 renders widget MR entity as json6525 user does not have access to the project6526 GET cached_widget6527 returns 4046528 GET widget6529 returns 4046530Emails::InProductMarketing6531 #in_product_marketing_email6532 sends to the right user with a link to unsubscribe6533 behaves like has custom headers when on gitlab.com6534 when on gitlab.com6535 has custom headers6536 track: :create, series: 06537 has the correct subject and content6538 track: :create, series: 16539 has the correct subject and content6540 track: :create, series: 26541 has the correct subject and content6542 track: :verify, series: 06543 has the correct subject and content6544 track: :verify, series: 16545 has the correct subject and content6546 track: :verify, series: 26547 has the correct subject and content6548 track: :trial, series: 06549 has the correct subject and content6550 track: :trial, series: 16551 has the correct subject and content6552 track: :trial, series: 26553 has the correct subject and content6554 track: :team, series: 06555 has the correct subject and content6556 track: :team, series: 16557 has the correct subject and content6558 track: :team, series: 26559 has the correct subject and content6560 track: :team_short, series: 06561 has the correct subject and content6562 track: :trial_short, series: 06563 has the correct subject and content6564 track: :admin_verify, series: 06565 has the correct subject and content6566 #build_ios_app_guide_email6567 sends to the right user6568 has the correct subject and content6569Groups::Settings::ApplicationsController6570 GET #index6571 when user is owner6572 renders the application form6573 when user is not owner6574 renders a 4046575 GET #edit6576 when user is owner6577 renders the application form6578 when user is not owner6579 renders a 4046580 POST #create6581 when user is owner6582 renders the application form on errors6583 with hash_oauth_secrets flag on6584 creates the application6585 with hash_oauth_secrets flag off6586 creates the application6587 when the params are for a confidential application6588 with hash_oauth_secrets flag off6589 creates a confidential application6590 with hash_oauth_secrets flag on6591 creates a confidential application6592 when scopes are not present6593 renders the application form on errors6594 when user is not owner6595 renders a 4046596 PATCH #update6597 when user is owner6598 updates the application6599 renders the application form on errors6600 when updating the application to be confidential6601 successfully sets the application to confidential6602 when user is not owner6603 renders a 4046604 DELETE #destroy6605 when user is owner6606 deletes the application6607 when user is not owner6608 renders a 4046609Groups::ObservabilityController6610 # order random6611 GET #dashboards6612 behaves like observability route request6613 when user is not authenticated6614 returns 4046615 when user is not a developer6616 returns 4046617 when user is authenticated and a developer6618 returns 2006619 renders the proper layout6620 renders the js-observability-app element correctly6621 when observability url is missing6622 returns 4046623 GET #manage6624 behaves like observability route request6625 when user is not authenticated6626 returns 4046627 when user is not a developer6628 returns 4046629 when user is authenticated and a developer6630 returns 2006631 renders the proper layout6632 renders the js-observability-app element correctly6633 when observability url is missing6634 returns 4046635 GET #explore6636 behaves like observability route request6637 when user is not authenticated6638 returns 4046639 when user is not a developer6640 returns 4046641 when user is authenticated and a developer6642 returns 2006643 renders the proper layout6644 renders the js-observability-app element correctly6645 when observability url is missing6646 returns 4046647 CSP6648 when there is no CSP config6649 does not add any csp header6650 when frame-src exists in the CSP config6651 appends the proper url to frame-src CSP directives6652 when self is already present in the policy6653 does not append self again6654 when default-src exists in the CSP config6655 does not change default-src6656 appends the proper url to frame-src CSP directives6657 when frame-src and default-src exist in the CSP config6658 appends to frame-src CSP directives6659Query.work_item(id)6660 when the user can read the work item6661DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6662DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6663 returns all fields6664 behaves like a working graphql query6665DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6666DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6667 returns a successful response6668 when querying widgets6669 description widget6670 returns widget information6671 hierarchy widget6672 returns widget information6673 avoids N+1 queries6674 when user is guest6675 filters out not accessible children or parent6676 when requesting child item6677 returns parent information6678 assignees widget6679 returns widget information6680 labels widget6681 returns widget information6682 start and due date widget6683 returns widget information6684 milestone widget6685 returns widget information6686 when an Issue Global ID is provided6687DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6688DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6689 allows an Issue GID as input6690 when the user can not read the work item6691 returns an access error6692Projects::Pipelines::StagesController6693 POST #play_manual.json6694 when user does not have access6695 returns not authorized6696 when user has access6697 when the stage does not exists6698 fails to play all manual6699 when the stage exists6700 starts all manual jobs6701API::Ci::Runners6702 /api/v4/runners/reset_registration_token6703 POST /api/v4/runners/reset_registration_token6704 resets runner registration token6705 when unauthenticated6706 behaves like unauthenticated6707 returns 401 error6708 when unauthorized6709 with a non-admin instance member6710 behaves like unauthorized6711 returns 403 error6712 /api/v4/groups/:id/runners/reset_registration_token6713 POST /api/v4/groups/:id/runners/reset_registration_token6714 resets runner registration token6715 when unauthorized6716 when not a group member6717 behaves like not found6718 returns 404 error6719 with a non-admin group member6720 behaves like unauthorized6721 returns 403 error6722 when malformed id is provided6723 behaves like not found6724 returns 404 error6725 /api/v4/projects/:id/runners/reset_registration_token6726 POST /api/v4/projects/:id/runners/reset_registration_token6727 resets runner registration token6728 when unauthorized6729 when not a project member6730 behaves like not found6731 returns 404 error6732 with a non-admin project member6733 behaves like unauthorized6734 returns 403 error6735 when malformed id is provided6736 behaves like not found6737 returns 404 error6738API::ErrorTracking::ClientKeys6739 GET /projects/:id/error_tracking/client_keys6740 behaves like endpoint with authorization6741 when unauthenticated6742 is expected to respond with numeric status code unauthorized6743 when authenticated as non-maintainer6744 is expected to respond with numeric status code forbidden6745 when authenticated as maintainer6746 returns client keys6747 POST /projects/:id/error_tracking/client_keys6748 behaves like endpoint with authorization6749 when unauthenticated6750 is expected to respond with numeric status code unauthorized6751 when authenticated as non-maintainer6752 is expected to respond with numeric status code forbidden6753 when authenticated as maintainer6754 returns a newly created client key6755 DELETE /projects/:id/error_tracking/client_keys/:key_id6756 behaves like endpoint with authorization6757 when unauthenticated6758 is expected to respond with numeric status code unauthorized6759 when authenticated as non-maintainer6760 is expected to respond with numeric status code forbidden6761 when authenticated as maintainer6762 returns a correct status6763 returns specific fields using the entity6764API::MergeRequestApprovals6765 GET :id/merge_requests/:merge_request_iid/approvals6766 retrieves the approval status6767 when merge request author has only guest access6768 behaves like rejects user from accessing merge request info6769 returns a 403 error6770 POST :id/merge_requests/:merge_request_iid/approve6771 as a valid approver6772 when the sha param is not set6773 approves the merge request6774 when the sha param is correct6775 approves the merge request6776 when the sha param is incorrect6777 does not approve the merge request6778 POST :id/merge_requests/:merge_request_iid/unapprove6779 as a user who has approved the merge request6780 unapproves the merge request6781Admin::Clusters::IntegrationsController6782 POST create_or_update6783 behaves like #create_or_update action6784 authorization6785 behaves like a secure endpoint6786 it is allowed for admins only6787 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3026788 is expected to be denied for user. Expected: 401,404 Got: 4046789 is expected to be denied for external. Expected: 401,404 Got: 4046790 functionality6791 redirects on success6792 redirects on error6793Users6794 .users6795 with no arguments6796 behaves like a working users query6797 includes a list of users6798 behaves like a working graphql query6799 returns a successful response6800 with a list of usernames6801 behaves like a working users query6802 includes a list of users6803 behaves like a working graphql query6804 returns a successful response6805 with a list of IDs6806 behaves like a working users query6807 includes a list of users6808 behaves like a working graphql query6809 returns a successful response6810 when usernames and ids parameter are used6811 displays an error6812 when admins is true6813 current user is not an admin6814 includes all users6815 behaves like a working users query6816 includes a list of users6817 behaves like a working graphql query6818 returns a successful response6819 when current user is an admin6820 includes only admins6821 behaves like a working users query6822 includes a list of users6823 behaves like a working graphql query6824 returns a successful response6825 sorting and pagination6826 when sorting by created_at6827 when ascending6828 behaves like sorted paginated query6829 behaves like requires variables6830 shared example requires variables to be set6832 when sorting6833 sorts correctly6834 when paginating6835 paginates correctly6836 when descending6837 behaves like sorted paginated query6838 behaves like requires variables6839 shared example requires variables to be set6841 when sorting6842 sorts correctly6843 when paginating6844 paginates correctly6845Getting starredProjects of the user6846 anonymous access6847 returns nothing6848 the current user is the user6849 found all projects6850 behaves like a working graphql query6851 returns a successful response6852 the current user is a member of a private project the user starred6853 finds public and member projects6854 the user has a private profile6855 the current user does not have access to view the private profile of the user6856 finds no projects6857 the current user has access to view the private profile of the user6858 finds all projects starred by the user, which the current user has access to6859Explore::GroupsController6860 behaves like explore groups6861 renders group trees6862 includes public projects6863 restricted visibility level is public6864 redirects to login page6865 generic_explore_groups flag is disabled6866 behaves like explore groups6867 renders group trees6868 includes public projects6869 restricted visibility level is public6870 redirects to login page6871Querying a Board list6872 does not have an N+1 performance issue6873 when the user has access to the list6874 is expected to include {"issuesCount" => 2, "title" => "foo"}6875 behaves like a working graphql query6876 returns a successful response6877 issue filters6878 with matching assignee username issue filters6879 filters issues metadata6880 with unmatching assignee username issue filters6881 filters issues metadata6882 when filtering by confidential6883 filters issues metadata6884 when the user does not have access to the list6885 is expected to be nil6886 when ID argument is missing6887 raises an exception6888 when list ID is not found6889 is expected to be nil6890Query.ciConfig6891 returns the correct structure6892 behaves like a working graphql query6893 returns a successful response6894 when the config file includes other files6895 returns the correct structure with included files6896 behaves like a working graphql query6897 returns a successful response6898 when the config file has multiple includes6899 returns correct includes6900 behaves like a working graphql query6901 returns a successful response6902Emails::Releases6903 #new_release_email6904 contains a message with the new release tag6905 contains the release assets6906 contains the release notes6907 behaves like an email sent from GitLab6908 has the characteristics of an email sent from GitLab6909 behaves like an email with X-GitLab headers containing project details6910 has X-GitLab-Project headers6911 when the release has a name6912 shows the correct subject6913 when the release does not have a name6914 shows the correct subject6915 release notes with attachment6916 renders absolute links6917query Jira import data6918 when user cannot read Jira import data6919 when anonymous user6920 is expected to be nil6921 when user developer6922 is expected to be nil6923 when user can access Jira import data6924 behaves like a working graphql query6925 returns a successful response6926 list of jira imports sorted ascending by scheduledAt time6927 retuns list of jira imports6928 jira imports pagination6929 first jira import6930 returns latest jira import data6931 lastest jira import6932 returns latest jira import data6933 jira import status6934 when user cannot access project6935 does not return import status6936 when user can access project6937 when import never ran6938 returns import status6939 when import finished6940 returns import status6941 when import running6942 returns import status6943Projects::Ci::DailyBuildGroupReportResultsController6944 GET index6945 when format is JSON6946 behaves like JSON results6947 serves the results in JSON6948 when given date range spans more than 90 days6949 limits the result to 90 days from the given start_date6950 behaves like validating param_type6951 when given param_type is invalid6952 responds with 422 error6953 behaves like ensuring policy6954 when user is not allowed to read build report results6955 responds with 404 error6956 when format is CSV6957 behaves like CSV results6958 serves the results in CSV6959 when given date range spans more than 90 days6960 limits the result to 90 days from the given start_date6961 behaves like validating param_type6962 when given param_type is invalid6963 responds with 422 error6964 behaves like ensuring policy6965 when user is not allowed to read build report results6966 responds with 404 error6967Groups::ImportsController6968 GET #show6969 when the user has permission to view the group6970 when the import is in progress6971 renders the show template6972 sets the flash notice6973 when the import has failed6974 redirects to the new group path6975 sets a flash error6976 when the import has finished6977 redirects to the group page6978 when there is no import state6979 redirects to the group page6980 when the user does not have permission to view the group6981 returns a 4046982ProjectUnauthorized6983 .on_routable_not_found6984 renders a 200 when the service allows access to the project6985 renders a 403 when the service denies access to the project6986 renders a 404 when the user cannot see the project at all6987JiraConnect::EventsController6988 #installed6989 saves the jira installation data6990 saves the correct values6991 behaves like verifies asymmetric JWT token6992 when token is valid6993 renders successful6994 when token is invalid6995 renders unauthorized6996 when the shared_secret param is missing6997 returns 4226998 when an installation already exists6999 validates the JWT token in authorization header and returns 200 without creating a new installation7000 when parameters include a new shared secret and base_url7001 updates the installation7002 when the new base_url is invalid7003 renders 4227004 #uninstalled7005 behaves like verifies asymmetric JWT token7006 when token is valid7007 renders successful7008 when token is invalid7009 renders unauthorized7010 when JWT is invalid7011 does not delete the installation7012 when JWT is valid7013 calls the DestroyService and returns ok in case of success7014 calls the DestroyService and returns unprocessable_entity in case of failure7015ChecksCollaboration7016 #can_collaborate_with_project?7017 is true if the user can push to the project7018 is true when the user can push to a branch of the project7019 when the user has forked the project7020 is true7021 is false when the project is archived7022getting group label information7023 behaves like querying a GraphQL type with labels7024 running a query7025 minimum required arguments7026 returns the label information7027 returns the labels information7028 with a search param7029 finds the matching labels7030 the label does not exist7031 returns nil7032 performance7033 batches queries for labels by title7034API::Users7035 PUT /user/preferences/7036 with correct attributes and a logged in user7037 returns a success status and the value has been changed7038 missing a preference7039 returns a bad request status7040 without a logged in user7041 returns an unauthorized status7042 with an unsupported preference7043 returns a bad parameter7044 with an unsupported value7045 returns a bad parameter7046 with an update service failure7047 returns a bad request7048Mutations::Metrics::Dashboard::Annotations::Delete7049 is expected to require graphql authorizations :delete_metrics_dashboard_annotation7050 when the user has permission to delete the annotation7051 with valid params7052 deletes the annotation7053 with invalid params7054 behaves like a mutation that returns top-level errors7055 is expected to contain exactly (include "invalid value for id")7056 when the delete fails7057 returns the error7058 when the user does not have permission to delete the annotation7059 does not delete the annotation7060 behaves like a mutation that returns top-level errors7061 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"7062Creating a new Prometheus Integration7063 creates a new integration7064 without required argument project_path7065 behaves like an invalid argument to the mutation7066 behaves like a mutation that returns top-level errors7067 is expected to contain exactly (include "invalid value for projectPath")7068 without required argument active7069 behaves like an invalid argument to the mutation7070 behaves like a mutation that returns top-level errors7071 is expected to contain exactly (include "invalid value for active")7072 without required argument api_url7073 behaves like an invalid argument to the mutation7074 behaves like a mutation that returns top-level errors7075 is expected to contain exactly (include "invalid value for apiUrl")7076PipelineScheduleDelete7077 # order random7078 when authorized7079 when success7080 is expected to eq []7081 when failure7082 when destroy fails7083 is expected to contain exactly "Failed to remove the pipeline schedule"7084 when pipeline schedule not found7085 is expected to eq "Internal server error: Couldn't find Ci::PipelineSchedule with 'id'=0"7086 when unauthorized7087 returns an error7088Admin::RunnerProjectsController7089 #create7090 assigning runner to same project7091 redirects to the admin runner edit page7092 assigning runner to another project7093 redirects to the admin runner edit page7094 for unknown project7095 shows 404 for unknown project7096 #destroy7097 unassigning runner from project7098 redirects to the admin runner edit page7099 for unknown project runner relationship7100 shows 404 for unknown project runner relationship7101Removing an incident timeline event7102 removes incident timeline event7103JobPlay7104 returns an error if the user is not allowed to play the job7105 plays a job7106accepting a merge request7107 when the user is not allowed to accept a merge request7108 behaves like a mutation that returns a top-level access error7109 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"7110 when user has permissions to create a merge request7111 merges the merge request7112Create an alert issue from an alert7113 when there is no issue associated with the alert7114 creates an alert issue7115 when there is an issue already associated with the alert7116 responds with an error7117Mutations::UserPreferences::Update7118 when user has no existing preference7119 creates the user preference record7120 when user has existing preference7121 updates the existing value7122Delete a work item7123 when the user is not allowed to delete a work item7124 behaves like a mutation that returns a top-level access error7125 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"7126 when user has permissions to delete a work item7127DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7128DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7129 deletes the work item7130Mailgun::WebhooksController7131 #process_webhook7132 returns 406 when integration is not enabled7133 returns 404 when signing key is not configured7134 returns 404 when signature invalid7135 returns 200 when signature is valid7136 invite email failures7137 marks the member invite email success as false7138 supports legacy URL7139 does not change the invite status if failure is temporary7140Promote an incident timeline event from a comment7141 creates incident timeline event from the note7142CheckRateLimit7143 #check_rate_limit!7144 calls ApplicationRateLimiter#throttled? with the right arguments7145 renders error and logs request if throttled7146 redirects back if throttled and redirect_back option is set to true7147 when the bypass header is set7148 skips rate limit if set to "1"7149 does not skip rate limit if set to something else than "1"7150Resetting a token on an existing Prometheus Integration7151 creates a token7152 with an existing alerting setting7153 updates the token7154unlock a terraform state7155 returns a successful response7156 unlocks the state7157User sends malformed strings7158 raises a 400 error with a null byte7159 raises a 400 error with an invalid string7160 raises a 400 error with null bytes in the auth headers7161Profiles::GpgKeysController7162 POST #create7163 creates a new key7164Updating the dependency proxy image ttl policy7165 post graphql mutation7166 without permission7167 returns no response7168 with permission7169 returns the updated dependency proxy image ttl policy7170Resetting a token on an existing HTTP Integration7171 updates the integration7172Harbor::Repository7173 behaves like raises NotImplementedError when calling #container7174 #container7175 raises NotImplementedError7176Knapsack report was generated. Preview:7177{7178 "spec/requests/api/npm_project_packages_spec.rb": 397.381438765,7179 "spec/controllers/projects/pipelines_controller_spec.rb": 136.66213187200015,7180 "spec/requests/api/badges_spec.rb": 119.3081701709998,7181 "spec/controllers/projects/clusters_controller_spec.rb": 97.35799511300002,7182 "spec/requests/api/issues/issues_spec.rb": 51.77681084200003,7183 "spec/requests/api/lint_spec.rb": 44.581988335999995,7184 "spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 43.50335859200004,7185 "spec/requests/api/v3/github_spec.rb": 36.49825140200005,7186 "spec/requests/api/group_labels_spec.rb": 36.07726148000006,7187 "spec/controllers/projects/wikis_controller_spec.rb": 33.8253527710001,7188 "spec/controllers/projects/merge_requests/creations_controller_spec.rb": 36.676971471000115,7189 "spec/requests/api/personal_access_tokens_spec.rb": 13.802000356999997,7190 "spec/controllers/projects/uploads_controller_spec.rb": 26.622764320999977,7191 "spec/controllers/projects/mirrors_controller_spec.rb": 19.285681534000105,7192 "spec/requests/api/project_import_spec.rb": 22.73289396500013,7193 "spec/requests/api/markdown_golden_master_spec.rb": 10.055678441000055,7194 "spec/controllers/groups/group_members_controller_spec.rb": 21.19327137800019,7195 "spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb": 14.354103188000181,7196 "spec/requests/api/graphql/project/releases_spec.rb": 15.287699068999927,7197 "spec/controllers/projects/imports_controller_spec.rb": 11.697149067000055,7198 "spec/requests/projects/clusters/integrations_controller_spec.rb": 12.85281195399989,7199 "spec/requests/api/feature_flags_user_lists_spec.rb": 9.070273713999995,7200 "spec/controllers/projects/design_management/designs/raw_images_controller_spec.rb": 11.652425738000147,7201 "spec/controllers/projects/cycle_analytics_controller_spec.rb": 10.661728369999992,7202 "spec/requests/api/graphql/packages/nuget_spec.rb": 10.733436324999957,7203 "spec/requests/api/graphql/mutations/design_management/delete_spec.rb": 9.671402400000034,7204 "spec/controllers/projects/merge_requests/content_controller_spec.rb": 10.740938003999872,7205 "spec/mailers/emails/in_product_marketing_spec.rb": 6.986474111999996,7206 "spec/controllers/groups/settings/applications_controller_spec.rb": 5.266495573999919,7207 "spec/requests/groups/observability_controller_spec.rb": 7.9327109949999794,7208 "spec/requests/api/graphql/work_item_spec.rb": 7.864710378999916,7209 "spec/controllers/projects/pipelines/stages_controller_spec.rb": 6.833892840999852,7210 "spec/requests/api/ci/runners_reset_registration_token_spec.rb": 4.85441622999997,7211 "spec/requests/api/error_tracking/client_keys_spec.rb": 4.253784056000086,7212 "spec/requests/api/merge_request_approvals_spec.rb": 6.00642284200012,7213 "spec/requests/admin/clusters/integrations_controller_spec.rb": 3.7313476240001364,7214 "spec/requests/api/graphql/users_spec.rb": 4.867107363000059,7215 "spec/requests/api/graphql/user/starred_projects_query_spec.rb": 4.023733213000014,7216 "spec/controllers/explore/groups_controller_spec.rb": 2.473804002999941,7217 "spec/requests/api/graphql/boards/board_list_query_spec.rb": 3.8124812870000824,7218 "spec/requests/api/graphql/ci/config_spec.rb": 4.444987116999982,7219 "spec/mailers/emails/releases_spec.rb": 3.8876955890000318,7220 "spec/requests/api/graphql/project/jira_import_spec.rb": 4.607743200999948,7221 "spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb": 3.7897508619998916,7222 "spec/controllers/groups/imports_controller_spec.rb": 2.941750514999967,7223 "spec/controllers/concerns/project_unauthorized_spec.rb": 2.91015220700001,7224 "spec/controllers/jira_connect/events_controller_spec.rb": 2.260333201999856,7225 "spec/controllers/concerns/checks_collaboration_spec.rb": 3.1395142279998254,7226 "spec/requests/api/graphql/group/labels_query_spec.rb": 2.0453400400001556,7227 "spec/requests/api/users_preferences_spec.rb": 1.171181574000002,7228 "spec/requests/api/graphql/mutations/metrics/dashboard/annotations/delete_spec.rb": 2.9209567560001233,7229 "spec/requests/api/graphql/mutations/alert_management/prometheus_integration/create_spec.rb": 1.937672334999661,7230 "spec/requests/api/graphql/mutations/ci/pipeline_schedule_delete_spec.rb": 1.8506037580000338,7231 "spec/controllers/admin/runner_projects_controller_spec.rb": 2.4983889129998715,7232 "spec/requests/api/graphql/mutations/incident_management/timeline_event/destroy_spec.rb": 1.3183584690000316,7233 "spec/requests/api/graphql/mutations/ci/job_play_spec.rb": 1.427113473999725,7234 "spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb": 2.8070410810000794,7235 "spec/requests/api/graphql/mutations/alert_management/alerts/create_alert_issue_spec.rb": 2.2429347329998564,7236 "spec/requests/api/graphql/mutations/user_preferences/update_spec.rb": 0.6835642539999753,7237 "spec/requests/api/graphql/mutations/work_items/delete_spec.rb": 1.7793135010001606,7238 "spec/requests/mailgun/webhooks_controller_spec.rb": 1.6688259349998589,7239 "spec/requests/api/graphql/mutations/incident_management/timeline_event/promote_from_note_spec.rb": 1.2461656120003681,7240 "spec/controllers/concerns/check_rate_limit_spec.rb": 0.8970778950001659,7241 "spec/requests/api/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb": 1.4977116619998014,7242 "spec/requests/api/graphql/terraform/state/unlock_spec.rb": 1.4913977020000857,7243 "spec/requests/user_sends_malformed_strings_spec.rb": 0.7031970419998288,7244 "spec/controllers/profiles/gpg_keys_controller_spec.rb": 2.2001505740004177,7245 "spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb": 1.4287085440000737,7246 "spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rb": 1.5537490689998776,7247 "spec/controllers/concerns/harbor/repository_spec.rb": 0.29935389799993577248}7249Knapsack global time execution for tests: 23m 16s7250Pending: (Failures listed here are expected and do not affect your suite's status)7251 1) API::NpmProjectPackages GET /api/v4/projects/:id/packages/npm/*package_name behaves like handling get metadata requests with a group namespace behaves like handling all conditions auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries7252 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example7253 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:327254 2) API::NpmProjectPackages GET /api/v4/projects/:id/packages/npm/*package_name behaves like handling get metadata requests with a group namespace behaves like handling all conditions auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries7255 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example7256 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:327257 3) API::NpmProjectPackages GET /api/v4/projects/:id/packages/npm/*package_name behaves like handling get metadata requests with a group namespace behaves like handling all conditions auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries7258 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example7259 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:327260 4) API::NpmProjectPackages GET /api/v4/projects/:id/packages/npm/*package_name behaves like handling get metadata requests with a group namespace behaves like handling all conditions auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok behaves like accept metadata request avoids N+1 database queries7261 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example7262 # ./spec/support/shared_examples/requests/api/npm_packages_shared_examples.rb:327263 5) API::Markdown Golden Master for footnotes verifies conversion of GFM to HTML7265 Failure/Error: expect(normalized_response_html).to eq(normalized_example_html)7266 expected: "<p data-sourcepos=\"1:1-1:46\" dir=\"auto\">A footnote reference tag looks like this: <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref=\"\">1</a></sup></p>\n<p data-sourcepos=\"3:1-3:56\" dir=\"auto\">This reference tag is a mix of letters and numbers. <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref=\"\">2</a></sup></p>\n<section class=\"footnotes\" data-footnotes><ol>\n<li id=\"ID\">\n<p data-sourcepos=\"5:7-5:41\">This is the text inside a footnote. <a href=\"REF\" aria-label=\"Back to content\" class=\"footnote-backref\" data-footnote-backref=\"\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n<li id=\"ID\">\n<p data-sourcepos=\"6:7-6:31\">This is another footnote. <a href=\"REF\" aria-label=\"Back to content\" class=\"footnote-backref\" data-footnote-backref=\"\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n</ol></section>"7267 got: "<p data-sourcepos=\"1:1-1:46\" dir=\"auto\">A footnote reference tag looks like this: <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref>1</a></sup></p>\n<p data-sourcepos=\"3:1-3:63\" dir=\"auto\">This reference tag is a mix of letters and numbers. <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref>2</a></sup></p>\n<section data-footnotes class=\"footnotes\">\n<ol>\n<li id=\"ID\">\n<p data-sourcepos=\"5:7-5:41\">This is the text inside a footnote. <a href=\"REF\" data-footnote-backref aria-label=\"Back to content\" class=\"footnote-backref\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n<li id=\"ID\">\n<p data-sourcepos=\"7:14-7:38\">This is another footnote. <a href=\"REF\" data-footnote-backref aria-label=\"Back to content\" class=\"footnote-backref\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n</ol>\n</section>"7268 (compared using ==)7269 Diff:7270 @@ -1,11 +1,13 @@7271 -<p data-sourcepos="1:1-1:46" dir="auto">A footnote reference tag looks like this: <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref="">1</a></sup></p>7272 -<p data-sourcepos="3:1-3:56" dir="auto">This reference tag is a mix of letters and numbers. <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref="">2</a></sup></p>7273 -<section class="footnotes" data-footnotes><ol>7274 +<p data-sourcepos="1:1-1:46" dir="auto">A footnote reference tag looks like this: <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref>1</a></sup></p>7275 +<p data-sourcepos="3:1-3:63" dir="auto">This reference tag is a mix of letters and numbers. <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref>2</a></sup></p>7276 +<section data-footnotes class="footnotes">7277 +<ol>7278 <li id="ID">7279 -<p data-sourcepos="5:7-5:41">This is the text inside a footnote. <a href="REF" aria-label="Back to content" class="footnote-backref" data-footnote-backref=""><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>7280 +<p data-sourcepos="5:7-5:41">This is the text inside a footnote. <a href="REF" data-footnote-backref aria-label="Back to content" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>7281 </li>7282 <li id="ID">7283 -<p data-sourcepos="6:7-6:31">This is another footnote. <a href="REF" aria-label="Back to content" class="footnote-backref" data-footnote-backref=""><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>7284 +<p data-sourcepos="7:14-7:38">This is another footnote. <a href="REF" data-footnote-backref aria-label="Back to content" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>7285 </li>7286 -</ol></section>7287 +</ol>7288 +</section>7289 Shared Example Group: "API::Markdown Golden Master shared context" called from ./spec/requests/api/markdown_golden_master_spec.rb:87290 # ./spec/support/shared_contexts/markdown_golden_master_shared_examples.rb:85:in `block (4 levels) in <top (required)>'7291 # ./spec/spec_helper.rb:412:in `block (3 levels) in <top (required)>'7292 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'7293 # ./spec/spec_helper.rb:404:in `block (2 levels) in <top (required)>'7294 # ./spec/spec_helper.rb:400:in `block (3 levels) in <top (required)>'7295 # ./lib/gitlab/application_context.rb:59:in `with_raw_context'7296 # ./spec/spec_helper.rb:400:in `block (2 levels) in <top (required)>'7297 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'7298 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7299 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'7300 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'7301 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'7302 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'7303 6) Projects::DesignManagement::Designs::RawImagesController GET #show behaves like a controller that can serve LFS files when lfs is not enabled delivers ASCII file7304 # Calling spec asked to skip testing LFS disabled scenario7305 # ./spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb:1527306Finished in 23 minutes 19 seconds (files took 43.14 seconds to load)73072525 examples, 0 failures, 6 pending7308Randomized with seed 535197309[TEST PROF INFO] Time spent in factories: 09:21.688 (40.02% of total time)7310RSpec exited with 0.7311No examples to retry, congrats!7313Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7314Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7316Uploading artifacts...7317coverage/: found 5 matching files and directories 7318crystalball/: found 2 matching files and directories 7319WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 7320knapsack/: found 3 matching files and directories 7321rspec/: found 13 matching files and directories 7322WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 7323log/*.log: found 17 matching files and directories 7324WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3318206505/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7325WARNING: Retrying... context=artifacts-uploader error=request redirected7326Uploading artifacts as "archive" to coordinator... 201 Created id=3318206505 responseStatus=201 Created token=uSYkRBbY7327Uploading artifacts...7328rspec/junit_rspec.xml: found 1 matching files and directories 7329WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3318206505/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7330WARNING: Retrying... context=artifacts-uploader error=request redirected7331Uploading artifacts as "junit" to coordinator... 201 Created id=3318206505 responseStatus=201 Created token=uSYkRBbY7333Job succeeded