rspec integration pg12 6/10
Passed Started
by
@mkozono
Michael Kozono
1Running with gitlab-runner 14.10.0~beta.50.g1f2fe53e (1f2fe53e)2 on green-3.shared-gitlab-org.runners-manager.gitlab.com/default EuhiQzPR3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:debian-bullseye-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:19789c9e83692f61ca3314294926bb26b68068f08aab1bd207915dcbd1a629c7 for postgres:12 with digest postgres@sha256:f2765d6a2a6459578274645b4d801345060322da2ba855af3d84878be28fe923 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:131bc9ee328cff6485bae97a15d5867539c2902681d2bb30ab20117132936344 for redis:6.0-alpine with digest redis@sha256:54cd3000b43117c720f7d1ae77692b798ad8b4d54e304dbd8e49e799e77494a1 ...13Waiting for services to be up and running...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.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...16Using docker image sha256:f5ccee577b270c6a832d9828384f62b437fcd3314314b5a98a5ab1cd248c3455 for registry.gitlab.com/gitlab-org/gitlab-build-images:debian-bullseye-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7291ca4981a34fb65e8293b932eab1b4a4949bffa86bf4427b9f12c73f3483b7 ...18Running on runner-euhiqzpr-project-278964-concurrent-0 via runner-euhiqzpr-shared-gitlab-org-1651154116-3040e6c5...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: 100897, done. 25remote: Counting objects: 100% (100897/100897), done. 26remote: Compressing objects: 100% (72244/72244), done. 27remote: Total 100897 (delta 37991), reused 66741 (delta 24985), pack-reused 0 28Receiving objects: 100% (100897/100897), 103.82 MiB | 29.70 MiB/s, done.29Resolving deltas: 100% (37991/37991), done.31 * [new ref] refs/pipelines/527209691 -> refs/pipelines/52720969132Checking out 5267a595 as refs/merge-requests/86026/merge...33Skipping Git submodules setup35Checking cache for ruby-gems-bullseye-9-non_protected...36WARNING: file does not exist 37Failed to extract cache38Checking cache for gitaly-ruby-gems-bullseye-9-non_protected...39WARNING: file does not exist 40Failed to extract cache42Downloading artifacts for compile-test-assets (2391235084)...43Downloading artifacts from coordinator... ok id=2391235084 responseStatus=200 OK token=L9MhdVsA44Downloading artifacts for detect-tests (2391235095)...45Downloading artifacts from coordinator... ok id=2391235095 responseStatus=200 OK token=JNCgGSBc46Downloading artifacts for retrieve-tests-metadata (2391235100)...47Downloading artifacts from coordinator... ok id=2391235100 responseStatus=200 OK token=hZHaJ1t648Downloading artifacts for setup-test-env (2391235090)...49Downloading artifacts from coordinator... ok id=2391235090 responseStatus=200 OK token=99nHhGhQ51Using docker image sha256:f5ccee577b270c6a832d9828384f62b437fcd3314314b5a98a5ab1cd248c3455 for registry.gitlab.com/gitlab-org/gitlab-build-images:debian-bullseye-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7291ca4981a34fb65e8293b932eab1b4a4949bffa86bf4427b9f12c73f3483b7 ...52$ echo $FOSS_ONLY53$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb54$ export GOPATH=$CI_PROJECT_DIR/.go55$ mkdir -p $GOPATH56$ source scripts/utils.sh57$ source scripts/prepare_build.sh58Successfully installed bundler-2.3.6591 gem installed60Bundler version 2.3.661production:development62Settings are listed in order of priority. The top value will be used.63clean64Set for the current user (/root/.bundle/config): true65install_flags66Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"67path68Set for the current user (/root/.bundle/config): "/builds/gitlab-org/gitlab/vendor"69without70Set via BUNDLE_WITHOUT: [:production, :development]71$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check72Don't run Bundler as root. Bundler can ask for sudo if it is needed, and73installing your bundle as root will break this application for all non-root74users on this machine.75The Gemfile's dependencies are satisfied76==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 530 seconds.77$ bundle pristine pg78Installing pg 1.2.3 with native extensions79==> 'bundle pristine pg' succeeded in 12 seconds.80Using decomposed database config (config/database.yml.decomposed-postgresql)81$ setup_db_user_only82CREATE ROLE83GRANT84==> 'setup_db_user_only' succeeded in 0 seconds.85$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee86DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)87DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:NewHasVariable> at app/models/concerns/ci/new_has_variable.rb:9)88DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Kubernetes> at app/models/clusters/platforms/kubernetes.rb:29)89DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Kubernetes> at app/models/clusters/platforms/kubernetes.rb:34)90DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)91DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)92DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)93DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)94DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)95DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)96DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)97DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)98DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)99DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Integration> at app/models/integration.rb:52)100DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Helm> at app/models/clusters/applications/helm.rb:12)101DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from <class:Prometheus> at app/models/clusters/applications/prometheus.rb:23)102DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)103DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)104DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)105DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from connected? at ee/lib/gitlab/geo.rb:79)106Dropped database 'gitlabhq_test'107Dropped database 'gitlabhq_test_ci'108Dropped database 'gitlabhq_geo_test'109Created database 'gitlabhq_test'110Created database 'gitlabhq_test_ci'111Created database 'gitlabhq_geo_test'112DEPRECATION WARNING: Using `bin/rails db:structure:load` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:load` instead. (called from load at /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/bin/rake:23)113Dropped database 'gitlabhq_geo_test'114Created database 'gitlabhq_geo_test'115==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 40 seconds.116$ run_timed_command "gem install knapsack --no-document"117$ gem install knapsack --no-document118Successfully installed knapsack-4.0.01191 gem installed120==> 'gem install knapsack --no-document' succeeded in 1 seconds.121$ run_timed_command "scripts/gitaly-test-spawn"122$ scripts/gitaly-test-spawn123find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory124find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory125find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory126Don't run Bundler as root. Bundler can ask for sudo if it is needed, and127installing your bundle as root will break this application for all non-root128users on this machine.129Fetching gem metadata from https://rubygems.org/...........130Fetching minitest 5.15.0131Fetching abstract_type 0.0.7132Fetching concurrent-ruby 1.1.10133Installing abstract_type 0.0.7134Fetching zeitwerk 2.5.4135Installing concurrent-ruby 1.1.10136Installing minitest 5.15.0137Installing zeitwerk 2.5.4138Fetching builder 3.2.4139Fetching erubi 1.10.0140Installing builder 3.2.4141Installing erubi 1.10.0142Fetching mini_portile2 2.8.0143Fetching racc 1.6.0144Fetching crass 1.0.6145Installing mini_portile2 2.8.0146Fetching rack 2.2.3147Installing crass 1.0.6148Installing racc 1.6.0 with native extensions149Fetching ice_nine 0.11.2150Installing rack 2.2.3151Installing ice_nine 0.11.2152Fetching thread_safe 0.3.6153Fetching public_suffix 4.0.6154Installing thread_safe 0.3.6155Installing public_suffix 4.0.6156Fetching ast 2.4.2157Fetching binding_ninja 0.2.3158Installing ast 2.4.2159Installing binding_ninja 0.2.3 with native extensions160Using bundler 2.1.4161Fetching charlock_holmes 0.7.7162Installing charlock_holmes 0.7.7 with native extensions163Fetching coderay 1.1.2164Installing coderay 1.1.2165Fetching equalizer 0.0.11166Installing equalizer 0.0.11167Fetching diff-lcs 1.3168Installing diff-lcs 1.3169Fetching dotenv 2.7.6170Installing dotenv 2.7.6171Fetching escape_utils 1.2.1172Fetching multipart-post 2.1.1173Installing escape_utils 1.2.1 with native extensions174Installing multipart-post 2.1.1175Fetching ffi 1.15.3176Installing ffi 1.15.3 with native extensions177Fetching json 2.6.1178Installing json 2.6.1 with native extensions179Fetching mini_mime 1.0.2180Installing mini_mime 1.0.2181Fetching rugged 1.2.0182Installing rugged 1.2.0 with native extensions183Fetching github-markup 1.7.0184Installing github-markup 1.7.0185Fetching mime-types-data 3.2020.1104186Installing mime-types-data 3.2020.1104187Fetching rouge 3.27.0188Installing rouge 3.27.0189Fetching stringex 2.8.5190Installing stringex 2.8.5191Fetching google-protobuf 3.19.1 (x86_64-linux)192Installing google-protobuf 3.19.1 (x86_64-linux)193Fetching opentracing 0.5.0194Installing opentracing 0.5.0195Fetching thrift 0.15.0196Installing thrift 0.15.0 with native extensions197Fetching redis 4.4.0198Installing redis 4.4.0199Fetching rubyzip 2.3.2200Installing rubyzip 2.3.2201Fetching thor 1.1.0202Installing thor 1.1.0203Fetching tomlrb 2.0.1204Installing tomlrb 2.0.1205Fetching with_env 1.1.0206Installing with_env 1.1.0207Fetching rexml 3.2.5208Installing rexml 3.2.5209Fetching gitlab-markup 1.7.1210Installing gitlab-markup 1.7.1211Fetching grpc-tools 1.42.0212Installing grpc-tools 1.42.0213Fetching method_source 0.9.2214Installing method_source 0.9.2215Fetching msgpack 1.3.3216Fetching optimist 3.0.1217Installing msgpack 1.3.3 with native extensions218Installing optimist 3.0.1219Fetching parallel 1.19.2220Installing parallel 1.19.2221Fetching procto 0.0.3222Installing procto 0.0.3223Fetching rainbow 3.0.0224Installing rainbow 3.0.0225Fetching rdoc 6.3.2226Installing rdoc 6.3.2227Fetching regexp_parser 1.8.1228Installing regexp_parser 1.8.1229Fetching rspec-support 3.8.0230Installing rspec-support 3.8.0231Fetching ruby-progressbar 1.10.1232Installing ruby-progressbar 1.10.1233Fetching unicode-display_width 1.7.0234Installing unicode-display_width 1.7.0235Fetching timecop 0.9.1236Installing timecop 0.9.1237Fetching i18n 1.10.0238Installing i18n 1.10.0239Fetching tzinfo 2.0.4240Installing tzinfo 2.0.4241Fetching rack-test 1.1.0242Installing rack-test 1.1.0243Fetching memoizable 0.4.2244Installing memoizable 0.4.2245Fetching addressable 2.7.0246Installing addressable 2.7.0247Fetching parser 3.0.3.2248Installing parser 3.0.3.2249Fetching nokogiri 1.13.3 (x86_64-linux)250Installing nokogiri 1.13.3 (x86_64-linux)251Fetching faraday 1.0.1252Installing faraday 1.0.1253Fetching mime-types 3.3.1254Installing mime-types 3.3.1255Fetching googleapis-common-protos-types 1.3.0256Installing googleapis-common-protos-types 1.3.0257Fetching pg_query 2.1.1258Installing pg_query 2.1.1 with native extensions259Fetching github-linguist 7.12.1260Fetching xml-simple 1.1.9261Installing xml-simple 1.1.9262Fetching pry 0.12.2263Installing github-linguist 7.12.1 with native extensions264Installing pry 0.12.2265Fetching jaeger-client 1.1.0266Installing jaeger-client 1.1.0267Fetching rspec-core 3.8.0268Installing rspec-core 3.8.0269Fetching rspec-expectations 3.8.3270Installing rspec-expectations 3.8.3271Fetching rspec-mocks 3.8.0272Installing rspec-mocks 3.8.0273Fetching activesupport 6.1.4.7274Installing activesupport 6.1.4.7275Fetching adamantium 0.2.0276Installing adamantium 0.2.0277Fetching rubocop-ast 0.2.0278Installing rubocop-ast 0.2.0279Fetching loofah 2.16.0280Installing loofah 2.16.0281Fetching sanitize 6.0.0282Installing sanitize 6.0.0283Fetching reverse_markdown 1.4.0284Installing reverse_markdown 1.4.0285Fetching sawyer 0.8.2286Installing sawyer 0.8.2287Fetching sentry-raven 3.0.4288Installing sentry-raven 3.0.4289Fetching gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1290Installing gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1291Fetching grpc 1.42.0 (x86_64-linux)292Installing grpc 1.42.0 (x86_64-linux)293Fetching rbtrace 0.4.14294Installing rbtrace 0.4.14 with native extensions295Fetching gemojione 3.3.0296Installing gemojione 3.3.0297Fetching gitlab-license_finder 6.14.2.1298Installing gitlab-license_finder 6.14.2.1299Fetching rspec 3.8.0300Installing rspec 3.8.0301Fetching rails-dom-testing 2.0.3302Installing rails-dom-testing 2.0.3303Fetching factory_bot 5.0.2304Installing factory_bot 5.0.2305Fetching concord 0.1.5306Installing concord 0.1.5307Fetching rubocop 0.86.0308Installing rubocop 0.86.0309Fetching rails-html-sanitizer 1.4.2310Installing rails-html-sanitizer 1.4.2311Fetching octokit 4.20.0312Installing octokit 4.20.0313Fetching unparser 0.4.7314Installing unparser 0.4.7315Fetching actionview 6.1.4.7316Installing actionview 6.1.4.7317Fetching licensee 9.14.1318Fetching proc_to_ast 0.1.0319Installing licensee 9.14.1320Installing proc_to_ast 0.1.0321Fetching gitlab-gollum-lib 4.2.7.10.gitlab.2322Installing gitlab-gollum-lib 4.2.7.10.gitlab.2323Fetching actionpack 6.1.4.7324Fetching rspec-parameterized 0.4.2325Installing rspec-parameterized 0.4.2326Installing actionpack 6.1.4.7327Fetching gitlab-labkit 0.21.2328Installing gitlab-labkit 0.21.2329Bundle complete! 22 Gemfile dependencies, 100 gems now installed.330Gems in the groups production and development were not installed.331Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`332Post-install message from rubyzip:333RubyZip 3.0 is coming!334**********************335The public API of some Rubyzip classes has been modernized to use named336parameters for optional arguments. Please check your usage of the337following classes:338 * `Zip::File`339 * `Zip::Entry`340 * `Zip::InputStream`341 * `Zip::OutputStream`342Please ensure that your Gemfiles and .gemspecs are suitably restrictive343to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).344See https://github.com/rubyzip/rubyzip for details. The Changelog also345lists other enhancements and bugfixes that have been implemented since346version 2.3.0.347Checking gitaly-ruby Gemfile...348Checking gitaly-ruby bundle...349The Gemfile's dependencies are satisfied350Trying to connect to gitaly: .................................................. OK351Trying to connect to gitaly2: ................................................................. OK352Trying to connect to praefect: .......... OK353==> 'scripts/gitaly-test-spawn' succeeded in 153 seconds.354$ source ./scripts/rspec_helpers.sh355$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"356SKIP_FLAKY_TESTS_AUTOMATICALLY: true357RETRY_FAILED_TESTS_IN_NEW_PROCESS: true358KNAPSACK_GENERATE_REPORT: true359FLAKY_RSPEC_GENERATE_REPORT: true360KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb361KNAPSACK_LOG_LEVEL: debug362KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg12_6_10_report.json363FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json364FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg12_6_10_report.json365NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg12_6_10_report.json366SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_integration_pg12_6_10_report.txt367RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_integration_pg12_6_10_report.txt368CRYSTALBALL: 369Knapsack node specs:370spec/requests/api/nuget_group_packages_spec.rb371spec/requests/api/repositories_spec.rb372spec/requests/api/pypi_packages_spec.rb373spec/requests/api/discussions_spec.rb374spec/controllers/admin/clusters_controller_spec.rb375spec/controllers/boards/issues_controller_spec.rb376spec/requests/api/group_packages_spec.rb377spec/requests/api/ci/runner/jobs_artifacts_spec.rb378spec/requests/api/graphql/issue/issue_spec.rb379spec/requests/api/helm_packages_spec.rb380spec/requests/api/ci/jobs_spec.rb381spec/mailers/emails/profile_spec.rb382spec/controllers/projects/merge_requests/creations_controller_spec.rb383spec/requests/api/pages/internal_access_spec.rb384spec/requests/api/settings_spec.rb385spec/requests/api/project_import_spec.rb386spec/requests/api/graphql/group/packages_spec.rb387spec/controllers/projects/snippets_controller_spec.rb388spec/requests/api/graphql/project/merge_request_spec.rb389spec/controllers/projects/labels_controller_spec.rb390spec/requests/api/environments_spec.rb391spec/controllers/dashboard/projects_controller_spec.rb392spec/requests/api/graphql/ci/pipelines_spec.rb393spec/requests/api/error_tracking/project_settings_spec.rb394spec/controllers/dashboard/milestones_controller_spec.rb395spec/requests/api/suggestions_spec.rb396spec/controllers/groups/boards_controller_spec.rb397spec/mailers/emails/projects_spec.rb398spec/controllers/admin/projects_controller_spec.rb399spec/requests/api/graphql/ci/runner_spec.rb400spec/controllers/concerns/group_tree_spec.rb401spec/mailers/devise_mailer_spec.rb402spec/requests/projects/issue_links_controller_spec.rb403spec/requests/api/graphql/mutations/container_repository/destroy_tags_spec.rb404spec/requests/projects/google_cloud/gcp_regions_controller_spec.rb405spec/requests/api/graphql/packages/pypi_spec.rb406spec/requests/api/graphql/project/milestones_spec.rb407spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb408spec/controllers/projects/protected_branches_controller_spec.rb409spec/controllers/groups/settings/ci_cd_controller_spec.rb410spec/controllers/projects/alerting/notifications_controller_spec.rb411spec/requests/api/graphql/mutations/work_items/create_from_task_spec.rb412spec/requests/api/notification_settings_spec.rb413spec/controllers/projects/service_desk_controller_spec.rb414spec/requests/api/graphql/mutations/todos/mark_all_done_spec.rb415spec/requests/api/graphql/project/issue/notes_spec.rb416spec/controllers/concerns/confirm_email_warning_spec.rb417spec/controllers/projects/incidents_controller_spec.rb418spec/requests/api/graphql/group/milestones_spec.rb419spec/requests/api/graphql/group/labels_query_spec.rb420spec/requests/api/graphql/current_user_todos_spec.rb421spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb422spec/requests/api/personal_access_tokens_spec.rb423spec/requests/api/graphql/project/project_statistics_spec.rb424spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb425spec/requests/abuse_reports_controller_spec.rb426spec/controllers/groups/imports_controller_spec.rb427spec/controllers/profiles/preferences_controller_spec.rb428spec/requests/api/graphql/project/work_item_types_spec.rb429spec/requests/api/graphql/project/alert_management/alert_status_counts_spec.rb430spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb431spec/requests/api/graphql/mutations/work_items/delete_spec.rb432spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb433spec/controllers/projects/packages/packages_controller_spec.rb434spec/controllers/groups/packages_controller_spec.rb435spec/requests/projects/noteable_notes_spec.rb436spec/requests/projects/metrics/dashboards/builder_spec.rb437spec/requests/api/graphql/group/work_item_types_spec.rb438spec/requests/api/graphql/project/alert_management/alert/metrics_dashboard_url_spec.rb439spec/controllers/groups/avatars_controller_spec.rb440spec/requests/api/graphql/mutations/clusters/agent_tokens/agent_tokens/create_spec.rb441spec/requests/projects/integrations/shimos_controller_spec.rb442spec/controllers/oauth/authorized_applications_controller_spec.rb443spec/controllers/admin/cohorts_controller_spec.rb444spec/controllers/jira_connect/branches_controller_spec.rb445spec/requests/api/graphql/ci/job_artifacts_spec.rb446spec/controllers/projects/pipelines_settings_controller_spec.rb447spec/controllers/profiles/avatars_controller_spec.rb448spec/requests/runner_setup_controller_spec.rb449Filter specs:450Running specs:451Running all node tests without filter452spec/requests/api/nuget_group_packages_spec.rb453spec/requests/api/repositories_spec.rb454spec/requests/api/pypi_packages_spec.rb455spec/requests/api/discussions_spec.rb456spec/controllers/admin/clusters_controller_spec.rb457spec/controllers/boards/issues_controller_spec.rb458spec/requests/api/group_packages_spec.rb459spec/requests/api/ci/runner/jobs_artifacts_spec.rb460spec/requests/api/graphql/issue/issue_spec.rb461spec/requests/api/helm_packages_spec.rb462spec/requests/api/ci/jobs_spec.rb463spec/mailers/emails/profile_spec.rb464spec/controllers/projects/merge_requests/creations_controller_spec.rb465spec/requests/api/pages/internal_access_spec.rb466spec/requests/api/settings_spec.rb467spec/requests/api/project_import_spec.rb468spec/requests/api/graphql/group/packages_spec.rb469spec/controllers/projects/snippets_controller_spec.rb470spec/requests/api/graphql/project/merge_request_spec.rb471spec/controllers/projects/labels_controller_spec.rb472spec/requests/api/environments_spec.rb473spec/controllers/dashboard/projects_controller_spec.rb474spec/requests/api/graphql/ci/pipelines_spec.rb475spec/requests/api/error_tracking/project_settings_spec.rb476spec/controllers/dashboard/milestones_controller_spec.rb477spec/requests/api/suggestions_spec.rb478spec/controllers/groups/boards_controller_spec.rb479spec/mailers/emails/projects_spec.rb480spec/controllers/admin/projects_controller_spec.rb481spec/requests/api/graphql/ci/runner_spec.rb482spec/controllers/concerns/group_tree_spec.rb483spec/mailers/devise_mailer_spec.rb484spec/requests/projects/issue_links_controller_spec.rb485spec/requests/api/graphql/mutations/container_repository/destroy_tags_spec.rb486spec/requests/projects/google_cloud/gcp_regions_controller_spec.rb487spec/requests/api/graphql/packages/pypi_spec.rb488spec/requests/api/graphql/project/milestones_spec.rb489spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb490spec/controllers/projects/protected_branches_controller_spec.rb491spec/controllers/groups/settings/ci_cd_controller_spec.rb492spec/controllers/projects/alerting/notifications_controller_spec.rb493spec/requests/api/graphql/mutations/work_items/create_from_task_spec.rb494spec/requests/api/notification_settings_spec.rb495spec/controllers/projects/service_desk_controller_spec.rb496spec/requests/api/graphql/mutations/todos/mark_all_done_spec.rb497spec/requests/api/graphql/project/issue/notes_spec.rb498spec/controllers/concerns/confirm_email_warning_spec.rb499spec/controllers/projects/incidents_controller_spec.rb500spec/requests/api/graphql/group/milestones_spec.rb501spec/requests/api/graphql/group/labels_query_spec.rb502spec/requests/api/graphql/current_user_todos_spec.rb503spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb504spec/requests/api/personal_access_tokens_spec.rb505spec/requests/api/graphql/project/project_statistics_spec.rb506spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb507spec/requests/abuse_reports_controller_spec.rb508spec/controllers/groups/imports_controller_spec.rb509spec/controllers/profiles/preferences_controller_spec.rb510spec/requests/api/graphql/project/work_item_types_spec.rb511spec/requests/api/graphql/project/alert_management/alert_status_counts_spec.rb512spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb513spec/requests/api/graphql/mutations/work_items/delete_spec.rb514spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb515spec/controllers/projects/packages/packages_controller_spec.rb516spec/controllers/groups/packages_controller_spec.rb517spec/requests/projects/noteable_notes_spec.rb518spec/requests/projects/metrics/dashboards/builder_spec.rb519spec/requests/api/graphql/group/work_item_types_spec.rb520spec/requests/api/graphql/project/alert_management/alert/metrics_dashboard_url_spec.rb521spec/controllers/groups/avatars_controller_spec.rbKnapsack report generator started!522DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from connected? at ee/lib/gitlab/geo.rb:79)523DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from block in <module:HasVariable> at app/models/concerns/ci/has_variable.rb:22)524DEPRECATION WARNING: Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers (called from exists? at lib/gitlab/database/reflection.rb:94)525WARNING: Shared example group 'returns a valid json search response' has been previously defined at:526 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335527...and you are now defining it at:528 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335529The new definition will overwrite the original one.530WARNING: Shared example group 'returns a valid json search response' has been previously defined at:531 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335532...and you are now defining it at:533 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335534The new definition will overwrite the original one.535WARNING: Shared example group 'returns a valid json search response' has been previously defined at:536 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335537...and you are now defining it at:538 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335539The new definition will overwrite the original one.540WARNING: Shared example group 'returns a valid json search response' has been previously defined at:541 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335542...and you are now defining it at:543 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335544The new definition will overwrite the original one.545WARNING: Shared example group 'returns a valid json search response' has been previously defined at:546 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335547...and you are now defining it at:548 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335549The new definition will overwrite the original one.550WARNING: Shared example group 'returns a valid json search response' has been previously defined at:551 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335552...and you are now defining it at:553 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335554The new definition will overwrite the original one.555WARNING: Shared example group 'returns a valid json search response' has been previously defined at:556 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335557...and you are now defining it at:558 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335559The new definition will overwrite the original one.560WARNING: Shared example group 'returns a valid json search response' has been previously defined at:561 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335562...and you are now defining it at:563 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335564The new definition will overwrite the original one.565WARNING: Shared example group 'returns a valid json search response' has been previously defined at:566 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335567...and you are now defining it at:568 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:335569The new definition will overwrite the original one.570WARNING: Shared example group 'creating pypi package files' has been previously defined at:571 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4572...and you are now defining it at:573 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4574The new definition will overwrite the original one.575Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}576==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.060510613 seconds...577Test environment set up in 2.125297579 seconds578API::NugetGroupPackages579 with a subgroup580 behaves like handling all endpoints581 GET /api/v4/groups/:id/-/packages/nuget582 behaves like handling nuget service requests583 with valid target584 personal token585 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success586 behaves like process nuget service index request587 for user type developer588 returns a valid json response589 behaves like returning response status590 returns success591 behaves like a package tracking event592 creates a gitlab tracking event cli_metadata593 with invalid format594 behaves like rejects nuget packages access595 for user type anonymous596 behaves like returning response status597 returns not_found598 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success599 behaves like process nuget service index request600 for user type guest601 returns a valid json response602 behaves like returning response status603 returns success604 behaves like a package tracking event605 creates a gitlab tracking event cli_metadata606 with invalid format607 behaves like rejects nuget packages access608 for user type anonymous609 behaves like returning response status610 returns not_found611 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized612 behaves like rejects nuget packages access613 for user type developer614 has the correct response header615 behaves like returning response status616 returns unauthorized617 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized618 behaves like rejects nuget packages access619 for user type guest620 has the correct response header621 behaves like returning response status622 returns unauthorized623 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success624 behaves like process nuget service index request625 for user type developer626 returns a valid json response627 behaves like returning response status628 returns success629 behaves like a package tracking event630 creates a gitlab tracking event cli_metadata631 with invalid format632 behaves like rejects nuget packages access633 for user type anonymous634 behaves like returning response status635 returns not_found636 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success637 behaves like process nuget service index request638 for user type guest639 returns a valid json response640 behaves like returning response status641 returns success642 behaves like a package tracking event643 creates a gitlab tracking event cli_metadata644 with invalid format645 behaves like rejects nuget packages access646 for user type anonymous647 behaves like returning response status648 returns not_found649 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized650 behaves like rejects nuget packages access651 for user type developer652 has the correct response header653 behaves like returning response status654 returns unauthorized655 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized656 behaves like rejects nuget packages access657 for user type guest658 has the correct response header659 behaves like returning response status660 returns unauthorized661 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized662 behaves like rejects nuget packages access663 for user type anonymous664 has the correct response header665 behaves like returning response status666 returns unauthorized667 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success668 behaves like process nuget service index request669 for user type developer670 returns a valid json response671 behaves like returning response status672 returns success673 behaves like a package tracking event674 creates a gitlab tracking event cli_metadata675 with invalid format676 behaves like rejects nuget packages access677 for user type anonymous678 behaves like returning response status679 returns not_found680 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden681 behaves like rejects nuget packages access682 for user type guest683 behaves like returning response status684 returns forbidden685 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized686 behaves like rejects nuget packages access687 for user type developer688 has the correct response header689 behaves like returning response status690 returns unauthorized691 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized692 behaves like rejects nuget packages access693 for user type guest694 has the correct response header695 behaves like returning response status696 returns unauthorized697 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found698 behaves like rejects nuget packages access699 for user type developer700 behaves like returning response status701 returns not_found702 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found703 behaves like rejects nuget packages access704 for user type guest705 behaves like returning response status706 returns not_found707 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized708 behaves like rejects nuget packages access709 for user type developer710 has the correct response header711 behaves like returning response status712 returns unauthorized713 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized714 behaves like rejects nuget packages access715 for user type guest716 has the correct response header717 behaves like returning response status718 returns unauthorized719 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized720 behaves like rejects nuget packages access721 for user type anonymous722 has the correct response header723 behaves like returning response status724 returns unauthorized725 with job token726 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success727 behaves like process nuget service index request728 for user type developer729 returns a valid json response730 behaves like returning response status731 returns success732 behaves like a package tracking event733 creates a gitlab tracking event cli_metadata734 with invalid format735 behaves like rejects nuget packages access736 for user type anonymous737 behaves like returning response status738 returns not_found739 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success740 behaves like process nuget service index request741 for user type guest742 returns a valid json response743 behaves like returning response status744 returns success745 behaves like a package tracking event746 creates a gitlab tracking event cli_metadata747 with invalid format748 behaves like rejects nuget packages access749 for user type anonymous750 behaves like returning response status751 returns not_found752 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized753 behaves like rejects nuget packages access754 for user type developer755 has the correct response header756 behaves like returning response status757 returns unauthorized758 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized759 behaves like rejects nuget packages access760 for user type guest761 has the correct response header762 behaves like returning response status763 returns unauthorized764 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success765 behaves like process nuget service index request766 for user type developer767 returns a valid json response768 behaves like returning response status769 returns success770 behaves like a package tracking event771 creates a gitlab tracking event cli_metadata772 with invalid format773 behaves like rejects nuget packages access774 for user type anonymous775 behaves like returning response status776 returns not_found777 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success778 behaves like process nuget service index request779 for user type guest780 returns a valid json response781 behaves like returning response status782 returns success783 behaves like a package tracking event784 creates a gitlab tracking event cli_metadata785 with invalid format786 behaves like rejects nuget packages access787 for user type anonymous788 behaves like returning response status789 returns not_found790 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized791 behaves like rejects nuget packages access792 for user type developer793 has the correct response header794 behaves like returning response status795 returns unauthorized796 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized797 behaves like rejects nuget packages access798 for user type guest799 has the correct response header800 behaves like returning response status801 returns unauthorized802 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized803 behaves like rejects nuget packages access804 for user type anonymous805 has the correct response header806 behaves like returning response status807 returns unauthorized808 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success809 behaves like process nuget service index request810 for user type developer811 returns a valid json response812 behaves like returning response status813 returns success814 behaves like a package tracking event815 creates a gitlab tracking event cli_metadata816 with invalid format817 behaves like rejects nuget packages access818 for user type anonymous819 behaves like returning response status820 returns not_found821 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden822 behaves like rejects nuget packages access823 for user type guest824 behaves like returning response status825 returns forbidden826 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized827 behaves like rejects nuget packages access828 for user type developer829 has the correct response header830 behaves like returning response status831 returns unauthorized832 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized833 behaves like rejects nuget packages access834 for user type guest835 has the correct response header836 behaves like returning response status837 returns unauthorized838 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found839 behaves like rejects nuget packages access840 for user type developer841 behaves like returning response status842 returns not_found843 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found844 behaves like rejects nuget packages access845 for user type guest846 behaves like returning response status847 returns not_found848 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized849 behaves like rejects nuget packages access850 for user type developer851 has the correct response header852 behaves like returning response status853 returns unauthorized854 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized855 behaves like rejects nuget packages access856 for user type guest857 has the correct response header858 behaves like returning response status859 returns unauthorized860 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized861 behaves like rejects nuget packages access862 for user type anonymous863 has the correct response header864 behaves like returning response status865 returns unauthorized866 behaves like deploy token for package GET requests867 with deploy token headers868 valid token869 behaves like returning response status870 returns success871 invalid token872 behaves like returning response status873 returns unauthorized874 behaves like rejects nuget access with unknown target id875 with an unknown target876 as anonymous877 behaves like rejects nuget packages access878 for user type anonymous879 has the correct response header880 behaves like returning response status881 returns unauthorized882 as authenticated user883 behaves like rejects nuget packages access884 for user type anonymous885 behaves like returning response status886 returns not_found887 behaves like rejects nuget access with invalid target id888 with a target id with invalid integers889 id: "/../", status: :bad_request890 behaves like rejects nuget packages access891 for user type anonymous892 behaves like returning response status893 returns bad_request894 id: "", status: :not_found895 behaves like rejects nuget packages access896 for user type anonymous897 behaves like returning response status898 returns not_found899 id: "%20", status: :bad_request900 behaves like rejects nuget packages access901 for user type anonymous902 behaves like returning response status903 returns bad_request904 id: "%2e%2e%2f", status: :bad_request905 behaves like rejects nuget packages access906 for user type anonymous907 behaves like returning response status908 returns bad_request909 id: "NaN", status: :bad_request910 behaves like rejects nuget packages access911 for user type anonymous912 behaves like returning response status913 returns bad_request914 id: 1253, status: :unauthorized915 behaves like rejects nuget packages access916 for user type anonymous917 has the correct response header918 behaves like returning response status919 returns unauthorized920 id: "anything25", status: :bad_request921 behaves like rejects nuget packages access922 for user type anonymous923 behaves like returning response status924 returns bad_request925 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/index926 behaves like handling nuget metadata requests with package name927 with valid target928 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success929 behaves like process nuget metadata request at package name level930 for user type developer931 behaves like returning response status932 returns success933 behaves like returning nuget metadata json response with json schema934 returns a valid json response935 with invalid format936 behaves like rejects nuget packages access937 for user type anonymous938 behaves like returning response status939 returns not_found940 with lower case package name941 behaves like returning response status942 returns success943 behaves like returning nuget metadata json response with json schema944 returns a valid json response945 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success946 behaves like process nuget metadata request at package name level947 for user type guest948 behaves like returning response status949 returns success950 behaves like returning nuget metadata json response with json schema951 returns a valid json response952 with invalid format953 behaves like rejects nuget packages access954 for user type anonymous955 behaves like returning response status956 returns not_found957 with lower case package name958 behaves like returning response status959 returns success960 behaves like returning nuget metadata json response with json schema961 returns a valid json response962 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized963 behaves like rejects nuget packages access964 for user type developer965 has the correct response header966 behaves like returning response status967 returns unauthorized968 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized969 behaves like rejects nuget packages access970 for user type guest971 has the correct response header972 behaves like returning response status973 returns unauthorized974 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success975 behaves like process nuget metadata request at package name level976 for user type developer977 behaves like returning response status978 returns success979 behaves like returning nuget metadata json response with json schema980 returns a valid json response981 with invalid format982 behaves like rejects nuget packages access983 for user type anonymous984 behaves like returning response status985 returns not_found986 with lower case package name987 behaves like returning response status988 returns success989 behaves like returning nuget metadata json response with json schema990 returns a valid json response991 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success992 behaves like process nuget metadata request at package name level993 for user type guest994 behaves like returning response status995 returns success996 behaves like returning nuget metadata json response with json schema997 returns a valid json response998 with invalid format999 behaves like rejects nuget packages access1000 for user type anonymous1001 behaves like returning response status1002 returns not_found1003 with lower case package name1004 behaves like returning response status1005 returns success1006 behaves like returning nuget metadata json response with json schema1007 returns a valid json response1008 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1009 behaves like rejects nuget packages access1010 for user type developer1011 has the correct response header1012 behaves like returning response status1013 returns unauthorized1014 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1015 behaves like rejects nuget packages access1016 for user type guest1017 has the correct response header1018 behaves like returning response status1019 returns unauthorized1020 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1021 behaves like rejects nuget packages access1022 for user type anonymous1023 has the correct response header1024 behaves like returning response status1025 returns unauthorized1026 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1027 behaves like process nuget metadata request at package name level1028 for user type developer1029 behaves like returning response status1030 returns success1031 behaves like returning nuget metadata json response with json schema1032 returns a valid json response1033 with invalid format1034 behaves like rejects nuget packages access1035 for user type anonymous1036 behaves like returning response status1037 returns not_found1038 with lower case package name1039 behaves like returning response status1040 returns success1041 behaves like returning nuget metadata json response with json schema1042 returns a valid json response1043 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1044 behaves like rejects nuget packages access1045 for user type guest1046 behaves like returning response status1047 returns forbidden1048 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1049 behaves like rejects nuget packages access1050 for user type developer1051 has the correct response header1052 behaves like returning response status1053 returns unauthorized1054 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1055 behaves like rejects nuget packages access1056 for user type guest1057 has the correct response header1058 behaves like returning response status1059 returns unauthorized1060 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1061 behaves like rejects nuget packages access1062 for user type developer1063 behaves like returning response status1064 returns not_found1065 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1066 behaves like rejects nuget packages access1067 for user type guest1068 behaves like returning response status1069 returns not_found1070 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1071 behaves like rejects nuget packages access1072 for user type developer1073 has the correct response header1074 behaves like returning response status1075 returns unauthorized1076 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1077 behaves like rejects nuget packages access1078 for user type guest1079 has the correct response header1080 behaves like returning response status1081 returns unauthorized1082 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1083 behaves like rejects nuget packages access1084 for user type anonymous1085 has the correct response header1086 behaves like returning response status1087 returns unauthorized1088 behaves like deploy token for package GET requests1089 with deploy token headers1090 valid token1091 behaves like returning response status1092 returns success1093 invalid token1094 behaves like returning response status1095 returns unauthorized1096 behaves like rejects nuget access with unknown target id1097 with an unknown target1098 as anonymous1099 behaves like rejects nuget packages access1100 for user type anonymous1101 has the correct response header1102 behaves like returning response status1103 returns unauthorized1104 as authenticated user1105 behaves like rejects nuget packages access1106 for user type anonymous1107 behaves like returning response status1108 returns not_found1109 behaves like rejects nuget access with invalid target id1110 with a target id with invalid integers1111 id: "/../", status: :bad_request1112 behaves like rejects nuget packages access1113 for user type anonymous1114 behaves like returning response status1115 returns bad_request1116 id: "", status: :not_found1117 behaves like rejects nuget packages access1118 for user type anonymous1119 behaves like returning response status1120 returns not_found1121 id: "%20", status: :bad_request1122 behaves like rejects nuget packages access1123 for user type anonymous1124 behaves like returning response status1125 returns bad_request1126 id: "%2e%2e%2f", status: :bad_request1127 behaves like rejects nuget packages access1128 for user type anonymous1129 behaves like returning response status1130 returns bad_request1131 id: "NaN", status: :bad_request1132 behaves like rejects nuget packages access1133 for user type anonymous1134 behaves like returning response status1135 returns bad_request1136 id: 1253, status: :unauthorized1137 behaves like rejects nuget packages access1138 for user type anonymous1139 has the correct response header1140 behaves like returning response status1141 returns unauthorized1142 id: "anything25", status: :bad_request1143 behaves like rejects nuget packages access1144 for user type anonymous1145 behaves like returning response status1146 returns bad_request1147 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/*package_version1148 behaves like handling nuget metadata requests with package name and package version1149 with valid target1150 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1151 behaves like process nuget metadata request at package name and package version level1152 for user type developer1153 behaves like returning response status1154 returns success1155 behaves like returning nuget metadata json response with json schema1156 returns a valid json response1157 with invalid format1158 behaves like rejects nuget packages access1159 for user type anonymous1160 behaves like returning response status1161 returns not_found1162 with lower case package name1163 behaves like returning response status1164 returns success1165 behaves like returning nuget metadata json response with json schema1166 returns a valid json response1167 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1168 behaves like process nuget metadata request at package name and package version level1169 for user type guest1170 behaves like returning response status1171 returns success1172 behaves like returning nuget metadata json response with json schema1173 returns a valid json response1174 with invalid format1175 behaves like rejects nuget packages access1176 for user type anonymous1177 behaves like returning response status1178 returns not_found1179 with lower case package name1180 behaves like returning response status1181 returns success1182 behaves like returning nuget metadata json response with json schema1183 returns a valid json response1184 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1185 behaves like rejects nuget packages access1186 for user type developer1187 has the correct response header1188 behaves like returning response status1189 returns unauthorized1190 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1191 behaves like rejects nuget packages access1192 for user type guest1193 has the correct response header1194 behaves like returning response status1195 returns unauthorized1196 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1197 behaves like process nuget metadata request at package name and package version level1198 for user type developer1199 behaves like returning response status1200 returns success1201 behaves like returning nuget metadata json response with json schema1202 returns a valid json response1203 with invalid format1204 behaves like rejects nuget packages access1205 for user type anonymous1206 behaves like returning response status1207 returns not_found1208 with lower case package name1209 behaves like returning response status1210 returns success1211 behaves like returning nuget metadata json response with json schema1212 returns a valid json response1213 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1214 behaves like process nuget metadata request at package name and package version level1215 for user type guest1216 behaves like returning response status1217 returns success1218 behaves like returning nuget metadata json response with json schema1219 returns a valid json response1220 with invalid format1221 behaves like rejects nuget packages access1222 for user type anonymous1223 behaves like returning response status1224 returns not_found1225 with lower case package name1226 behaves like returning response status1227 returns success1228 behaves like returning nuget metadata json response with json schema1229 returns a valid json response1230 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1231 behaves like rejects nuget packages access1232 for user type developer1233 has the correct response header1234 behaves like returning response status1235 returns unauthorized1236 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1237 behaves like rejects nuget packages access1238 for user type guest1239 has the correct response header1240 behaves like returning response status1241 returns unauthorized1242 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1243 behaves like rejects nuget packages access1244 for user type anonymous1245 has the correct response header1246 behaves like returning response status1247 returns unauthorized1248 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1249 behaves like process nuget metadata request at package name and package version level1250 for user type developer1251 behaves like returning response status1252 returns success1253 behaves like returning nuget metadata json response with json schema1254 returns a valid json response1255 with invalid format1256 behaves like rejects nuget packages access1257 for user type anonymous1258 behaves like returning response status1259 returns not_found1260 with lower case package name1261 behaves like returning response status1262 returns success1263 behaves like returning nuget metadata json response with json schema1264 returns a valid json response1265 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1266 behaves like rejects nuget packages access1267 for user type guest1268 behaves like returning response status1269 returns forbidden1270 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1271 behaves like rejects nuget packages access1272 for user type developer1273 has the correct response header1274 behaves like returning response status1275 returns unauthorized1276 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1277 behaves like rejects nuget packages access1278 for user type guest1279 has the correct response header1280 behaves like returning response status1281 returns unauthorized1282 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1283 behaves like rejects nuget packages access1284 for user type developer1285 behaves like returning response status1286 returns not_found1287 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1288 behaves like rejects nuget packages access1289 for user type guest1290 behaves like returning response status1291 returns not_found1292 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1293 behaves like rejects nuget packages access1294 for user type developer1295 has the correct response header1296 behaves like returning response status1297 returns unauthorized1298 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1299 behaves like rejects nuget packages access1300 for user type guest1301 has the correct response header1302 behaves like returning response status1303 returns unauthorized1304 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1305 behaves like rejects nuget packages access1306 for user type anonymous1307 has the correct response header1308 behaves like returning response status1309 returns unauthorized1310 behaves like deploy token for package GET requests1311 with deploy token headers1312 valid token1313 behaves like returning response status1314 returns success1315 invalid token1316 behaves like returning response status1317 returns unauthorized1318 behaves like rejects nuget access with unknown target id1319 with an unknown target1320 as anonymous1321 behaves like rejects nuget packages access1322 for user type anonymous1323 has the correct response header1324 behaves like returning response status1325 returns unauthorized1326 as authenticated user1327 behaves like rejects nuget packages access1328 for user type anonymous1329 behaves like returning response status1330 returns not_found1331 behaves like rejects nuget access with invalid target id1332 with a target id with invalid integers1333 id: "/../", status: :bad_request1334 behaves like rejects nuget packages access1335 for user type anonymous1336 behaves like returning response status1337 returns bad_request1338 id: "", status: :not_found1339 behaves like rejects nuget packages access1340 for user type anonymous1341 behaves like returning response status1342 returns not_found1343 id: "%20", status: :bad_request1344 behaves like rejects nuget packages access1345 for user type anonymous1346 behaves like returning response status1347 returns bad_request1348 id: "%2e%2e%2f", status: :bad_request1349 behaves like rejects nuget packages access1350 for user type anonymous1351 behaves like returning response status1352 returns bad_request1353 id: "NaN", status: :bad_request1354 behaves like rejects nuget packages access1355 for user type anonymous1356 behaves like returning response status1357 returns bad_request1358 id: 1253, status: :unauthorized1359 behaves like rejects nuget packages access1360 for user type anonymous1361 has the correct response header1362 behaves like returning response status1363 returns unauthorized1364 id: "anything25", status: :bad_request1365 behaves like rejects nuget packages access1366 for user type anonymous1367 behaves like returning response status1368 returns bad_request1369 GET /api/v4/groups/:id/-/packages/nuget/query1370 behaves like handling nuget search requests1371 with valid target1372 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1373 behaves like process nuget search request1374 for user type developer1375 behaves like returns a valid json search response1376 returns a valid json response1377 behaves like returning response status1378 returns success1379 behaves like a package tracking event1380 creates a gitlab tracking event search_package1381 with skip set to 21382 behaves like returns a valid json search response1383 returns a valid json response1384 behaves like returning response status1385 returns success1386 with take set to 21387 behaves like returns a valid json search response1388 returns a valid json response1389 behaves like returning response status1390 returns success1391 without prereleases1392 behaves like returns a valid json search response1393 returns a valid json response1394 behaves like returning response status1395 returns success1396 with empty search term1397 behaves like returns a valid json search response1398 returns a valid json response1399 behaves like returning response status1400 returns success1401 with nil search term1402 behaves like returns a valid json search response1403 returns a valid json response1404 behaves like returning response status1405 returns success1406 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1407 behaves like process nuget search request1408 for user type guest1409 behaves like returns a valid json search response1410 returns a valid json response1411 behaves like returning response status1412 returns success1413 behaves like a package tracking event1414 creates a gitlab tracking event search_package1415 with skip set to 21416 behaves like returns a valid json search response1417 returns a valid json response1418 behaves like returning response status1419 returns success1420 with take set to 21421 behaves like returns a valid json search response1422 returns a valid json response1423 behaves like returning response status1424 returns success1425 without prereleases1426 behaves like returns a valid json search response1427 returns a valid json response1428 behaves like returning response status1429 returns success1430 with empty search term1431 behaves like returns a valid json search response1432 returns a valid json response1433 behaves like returning response status1434 returns success1435 with nil search term1436 behaves like returns a valid json search response1437 returns a valid json response1438 behaves like returning response status1439 returns success1440 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1441 behaves like rejects nuget packages access1442 for user type developer1443 has the correct response header1444 behaves like returning response status1445 returns unauthorized1446 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1447 behaves like rejects nuget packages access1448 for user type guest1449 has the correct response header1450 behaves like returning response status1451 returns unauthorized1452 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1453 behaves like process nuget search request1454 for user type developer1455 behaves like returns a valid json search response1456 returns a valid json response1457 behaves like returning response status1458 returns success1459 behaves like a package tracking event1460 creates a gitlab tracking event search_package1461 with skip set to 21462 behaves like returns a valid json search response1463 returns a valid json response1464 behaves like returning response status1465 returns success1466 with take set to 21467 behaves like returns a valid json search response1468 returns a valid json response1469 behaves like returning response status1470 returns success1471 without prereleases1472 behaves like returns a valid json search response1473 returns a valid json response1474 behaves like returning response status1475 returns success1476 with empty search term1477 behaves like returns a valid json search response1478 returns a valid json response1479 behaves like returning response status1480 returns success1481 with nil search term1482 behaves like returns a valid json search response1483 returns a valid json response1484 behaves like returning response status1485 returns success1486 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1487 behaves like process nuget search request1488 for user type guest1489 behaves like returns a valid json search response1490 returns a valid json response1491 behaves like returning response status1492 returns success1493 behaves like a package tracking event1494 creates a gitlab tracking event search_package1495 with skip set to 21496 behaves like returns a valid json search response1497 returns a valid json response1498 behaves like returning response status1499 returns success1500 with take set to 21501 behaves like returns a valid json search response1502 returns a valid json response1503 behaves like returning response status1504 returns success1505 without prereleases1506 behaves like returns a valid json search response1507 returns a valid json response1508 behaves like returning response status1509 returns success1510 with empty search term1511 behaves like returns a valid json search response1512 returns a valid json response1513 behaves like returning response status1514 returns success1515 with nil search term1516 behaves like returns a valid json search response1517 returns a valid json response1518 behaves like returning response status1519 returns success1520 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1521 behaves like rejects nuget packages access1522 for user type developer1523 has the correct response header1524 behaves like returning response status1525 returns unauthorized1526 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1527 behaves like rejects nuget packages access1528 for user type guest1529 has the correct response header1530 behaves like returning response status1531 returns unauthorized1532 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1533 behaves like rejects nuget packages access1534 for user type anonymous1535 has the correct response header1536 behaves like returning response status1537 returns unauthorized1538 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1539 behaves like process nuget search request1540 for user type developer1541 behaves like returns a valid json search response1542 returns a valid json response1543 behaves like returning response status1544 returns success1545 behaves like a package tracking event1546 creates a gitlab tracking event search_package1547 with skip set to 21548 behaves like returns a valid json search response1549 returns a valid json response1550 behaves like returning response status1551 returns success1552 with take set to 21553 behaves like returns a valid json search response1554 returns a valid json response1555 behaves like returning response status1556 returns success1557 without prereleases1558 behaves like returns a valid json search response1559 returns a valid json response1560 behaves like returning response status1561 returns success1562 with empty search term1563 behaves like returns a valid json search response1564 returns a valid json response1565 behaves like returning response status1566 returns success1567 with nil search term1568 behaves like returns a valid json search response1569 returns a valid json response1570 behaves like returning response status1571 returns success1572 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1573 behaves like rejects nuget packages access1574 for user type guest1575 behaves like returning response status1576 returns forbidden1577 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1578 behaves like rejects nuget packages access1579 for user type developer1580 has the correct response header1581 behaves like returning response status1582 returns unauthorized1583 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1584 behaves like rejects nuget packages access1585 for user type guest1586 has the correct response header1587 behaves like returning response status1588 returns unauthorized1589 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1590 behaves like rejects nuget packages access1591 for user type developer1592 behaves like returning response status1593 returns not_found1594 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1595 behaves like rejects nuget packages access1596 for user type guest1597 behaves like returning response status1598 returns not_found1599 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1600 behaves like rejects nuget packages access1601 for user type developer1602 has the correct response header1603 behaves like returning response status1604 returns unauthorized1605 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1606 behaves like rejects nuget packages access1607 for user type guest1608 has the correct response header1609 behaves like returning response status1610 returns unauthorized1611 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1612 behaves like rejects nuget packages access1613 for user type anonymous1614 has the correct response header1615 behaves like returning response status1616 returns unauthorized1617 behaves like deploy token for package GET requests1618 with deploy token headers1619 valid token1620 behaves like returning response status1621 returns success1622 invalid token1623 behaves like returning response status1624 returns unauthorized1625 behaves like rejects nuget access with unknown target id1626 with an unknown target1627 as anonymous1628 behaves like rejects nuget packages access1629 for user type anonymous1630 has the correct response header1631 behaves like returning response status1632 returns unauthorized1633 as authenticated user1634 behaves like rejects nuget packages access1635 for user type anonymous1636 behaves like returning response status1637 returns not_found1638 behaves like rejects nuget access with invalid target id1639 with a target id with invalid integers1640 id: "/../", status: :bad_request1641 behaves like rejects nuget packages access1642 for user type anonymous1643 behaves like returning response status1644 returns bad_request1645 id: "", status: :not_found1646 behaves like rejects nuget packages access1647 for user type anonymous1648 behaves like returning response status1649 returns not_found1650 id: "%20", status: :bad_request1651 behaves like rejects nuget packages access1652 for user type anonymous1653 behaves like returning response status1654 returns bad_request1655 id: "%2e%2e%2f", status: :bad_request1656 behaves like rejects nuget packages access1657 for user type anonymous1658 behaves like returning response status1659 returns bad_request1660 id: "NaN", status: :bad_request1661 behaves like rejects nuget packages access1662 for user type anonymous1663 behaves like returning response status1664 returns bad_request1665 id: 1253, status: :unauthorized1666 behaves like rejects nuget packages access1667 for user type anonymous1668 has the correct response header1669 behaves like returning response status1670 returns unauthorized1671 id: "anything25", status: :bad_request1672 behaves like rejects nuget packages access1673 for user type anonymous1674 behaves like returning response status1675 returns bad_request1676 a group1677 behaves like handling all endpoints1678 GET /api/v4/groups/:id/-/packages/nuget1679 behaves like handling nuget service requests1680 with valid target1681 personal token1682 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1683 behaves like process nuget service index request1684 for user type developer1685 returns a valid json response1686 behaves like returning response status1687 returns success1688 behaves like a package tracking event1689 creates a gitlab tracking event cli_metadata1690 with invalid format1691 behaves like rejects nuget packages access1692 for user type anonymous1693 behaves like returning response status1694 returns not_found1695 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1696 behaves like process nuget service index request1697 for user type guest1698 returns a valid json response1699 behaves like returning response status1700 returns success1701 behaves like a package tracking event1702 creates a gitlab tracking event cli_metadata1703 with invalid format1704 behaves like rejects nuget packages access1705 for user type anonymous1706 behaves like returning response status1707 returns not_found1708 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1709 behaves like rejects nuget packages access1710 for user type developer1711 has the correct response header1712 behaves like returning response status1713 returns unauthorized1714 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1715 behaves like rejects nuget packages access1716 for user type guest1717 has the correct response header1718 behaves like returning response status1719 returns unauthorized1720 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1721 behaves like process nuget service index request1722 for user type developer1723 returns a valid json response1724 behaves like returning response status1725 returns success1726 behaves like a package tracking event1727 creates a gitlab tracking event cli_metadata1728 with invalid format1729 behaves like rejects nuget packages access1730 for user type anonymous1731 behaves like returning response status1732 returns not_found1733 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1734 behaves like process nuget service index request1735 for user type guest1736 returns a valid json response1737 behaves like returning response status1738 returns success1739 behaves like a package tracking event1740 creates a gitlab tracking event cli_metadata1741 with invalid format1742 behaves like rejects nuget packages access1743 for user type anonymous1744 behaves like returning response status1745 returns not_found1746 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1747 behaves like rejects nuget packages access1748 for user type developer1749 has the correct response header1750 behaves like returning response status1751 returns unauthorized1752 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1753 behaves like rejects nuget packages access1754 for user type guest1755 has the correct response header1756 behaves like returning response status1757 returns unauthorized1758 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1759 behaves like rejects nuget packages access1760 for user type anonymous1761 has the correct response header1762 behaves like returning response status1763 returns unauthorized1764 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1765 behaves like process nuget service index request1766 for user type developer1767 returns a valid json response1768 behaves like returning response status1769 returns success1770 behaves like a package tracking event1771 creates a gitlab tracking event cli_metadata1772 with invalid format1773 behaves like rejects nuget packages access1774 for user type anonymous1775 behaves like returning response status1776 returns not_found1777 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1778 behaves like rejects nuget packages access1779 for user type guest1780 behaves like returning response status1781 returns forbidden1782 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1783 behaves like rejects nuget packages access1784 for user type developer1785 has the correct response header1786 behaves like returning response status1787 returns unauthorized1788 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1789 behaves like rejects nuget packages access1790 for user type guest1791 has the correct response header1792 behaves like returning response status1793 returns unauthorized1794 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1795 behaves like rejects nuget packages access1796 for user type developer1797 behaves like returning response status1798 returns not_found1799 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1800 behaves like rejects nuget packages access1801 for user type guest1802 behaves like returning response status1803 returns not_found1804 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1805 behaves like rejects nuget packages access1806 for user type developer1807 has the correct response header1808 behaves like returning response status1809 returns unauthorized1810 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1811 behaves like rejects nuget packages access1812 for user type guest1813 has the correct response header1814 behaves like returning response status1815 returns unauthorized1816 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1817 behaves like rejects nuget packages access1818 for user type anonymous1819 has the correct response header1820 behaves like returning response status1821 returns unauthorized1822 with job token1823 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1824 behaves like process nuget service index request1825 for user type developer1826 returns a valid json response1827 behaves like returning response status1828 returns success1829 behaves like a package tracking event1830 creates a gitlab tracking event cli_metadata1831 with invalid format1832 behaves like rejects nuget packages access1833 for user type anonymous1834 behaves like returning response status1835 returns not_found1836 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1837 behaves like process nuget service index request1838 for user type guest1839 returns a valid json response1840 behaves like returning response status1841 returns success1842 behaves like a package tracking event1843 creates a gitlab tracking event cli_metadata1844 with invalid format1845 behaves like rejects nuget packages access1846 for user type anonymous1847 behaves like returning response status1848 returns not_found1849 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1850 behaves like rejects nuget packages access1851 for user type developer1852 has the correct response header1853 behaves like returning response status1854 returns unauthorized1855 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1856 behaves like rejects nuget packages access1857 for user type guest1858 has the correct response header1859 behaves like returning response status1860 returns unauthorized1861 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1862 behaves like process nuget service index request1863 for user type developer1864 returns a valid json response1865 behaves like returning response status1866 returns success1867 behaves like a package tracking event1868 creates a gitlab tracking event cli_metadata1869 with invalid format1870 behaves like rejects nuget packages access1871 for user type anonymous1872 behaves like returning response status1873 returns not_found1874 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1875 behaves like process nuget service index request1876 for user type guest1877 returns a valid json response1878 behaves like returning response status1879 returns success1880 behaves like a package tracking event1881 creates a gitlab tracking event cli_metadata1882 with invalid format1883 behaves like rejects nuget packages access1884 for user type anonymous1885 behaves like returning response status1886 returns not_found1887 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1888 behaves like rejects nuget packages access1889 for user type developer1890 has the correct response header1891 behaves like returning response status1892 returns unauthorized1893 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1894 behaves like rejects nuget packages access1895 for user type guest1896 has the correct response header1897 behaves like returning response status1898 returns unauthorized1899 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1900 behaves like rejects nuget packages access1901 for user type anonymous1902 has the correct response header1903 behaves like returning response status1904 returns unauthorized1905 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success1906 behaves like process nuget service index request1907 for user type developer1908 returns a valid json response1909 behaves like returning response status1910 returns success1911 behaves like a package tracking event1912 creates a gitlab tracking event cli_metadata1913 with invalid format1914 behaves like rejects nuget packages access1915 for user type anonymous1916 behaves like returning response status1917 returns not_found1918 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1919 behaves like rejects nuget packages access1920 for user type guest1921 behaves like returning response status1922 returns forbidden1923 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1924 behaves like rejects nuget packages access1925 for user type developer1926 has the correct response header1927 behaves like returning response status1928 returns unauthorized1929 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1930 behaves like rejects nuget packages access1931 for user type guest1932 has the correct response header1933 behaves like returning response status1934 returns unauthorized1935 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1936 behaves like rejects nuget packages access1937 for user type developer1938 behaves like returning response status1939 returns not_found1940 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1941 behaves like rejects nuget packages access1942 for user type guest1943 behaves like returning response status1944 returns not_found1945 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1946 behaves like rejects nuget packages access1947 for user type developer1948 has the correct response header1949 behaves like returning response status1950 returns unauthorized1951 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1952 behaves like rejects nuget packages access1953 for user type guest1954 has the correct response header1955 behaves like returning response status1956 returns unauthorized1957 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1958 behaves like rejects nuget packages access1959 for user type anonymous1960 has the correct response header1961 behaves like returning response status1962 returns unauthorized1963 behaves like deploy token for package GET requests1964 with deploy token headers1965 valid token1966 behaves like returning response status1967 returns success1968 invalid token1969 behaves like returning response status1970 returns unauthorized1971 behaves like rejects nuget access with unknown target id1972 with an unknown target1973 as anonymous1974 behaves like rejects nuget packages access1975 for user type anonymous1976 has the correct response header1977 behaves like returning response status1978 returns unauthorized1979 as authenticated user1980 behaves like rejects nuget packages access1981 for user type anonymous1982 behaves like returning response status1983 returns not_found1984 behaves like rejects nuget access with invalid target id1985 with a target id with invalid integers1986 id: "/../", status: :bad_request1987 behaves like rejects nuget packages access1988 for user type anonymous1989 behaves like returning response status1990 returns bad_request1991 id: "", status: :not_found1992 behaves like rejects nuget packages access1993 for user type anonymous1994 behaves like returning response status1995 returns not_found1996 id: "%20", status: :bad_request1997 behaves like rejects nuget packages access1998 for user type anonymous1999 behaves like returning response status2000 returns bad_request2001 id: "%2e%2e%2f", status: :bad_request2002 behaves like rejects nuget packages access2003 for user type anonymous2004 behaves like returning response status2005 returns bad_request2006 id: "NaN", status: :bad_request2007 behaves like rejects nuget packages access2008 for user type anonymous2009 behaves like returning response status2010 returns bad_request2011 id: 1253, status: :unauthorized2012 behaves like rejects nuget packages access2013 for user type anonymous2014 has the correct response header2015 behaves like returning response status2016 returns unauthorized2017 id: "anything25", status: :bad_request2018 behaves like rejects nuget packages access2019 for user type anonymous2020 behaves like returning response status2021 returns bad_request2022 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/index2023 behaves like handling nuget metadata requests with package name2024 with valid target2025 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success2026 behaves like process nuget metadata request at package name level2027 for user type developer2028 behaves like returning response status2029 returns success2030 behaves like returning nuget metadata json response with json schema2031 returns a valid json response2032 with invalid format2033 behaves like rejects nuget packages access2034 for user type anonymous2035 behaves like returning response status2036 returns not_found2037 with lower case package name2038 behaves like returning response status2039 returns success2040 behaves like returning nuget metadata json response with json schema2041 returns a valid json response2042 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success2043 behaves like process nuget metadata request at package name level2044 for user type guest2045 behaves like returning response status2046 returns success2047 behaves like returning nuget metadata json response with json schema2048 returns a valid json response2049 with invalid format2050 behaves like rejects nuget packages access2051 for user type anonymous2052 behaves like returning response status2053 returns not_found2054 with lower case package name2055 behaves like returning response status2056 returns success2057 behaves like returning nuget metadata json response with json schema2058 returns a valid json response2059 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2060 behaves like rejects nuget packages access2061 for user type developer2062 has the correct response header2063 behaves like returning response status2064 returns unauthorized2065 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2066 behaves like rejects nuget packages access2067 for user type guest2068 has the correct response header2069 behaves like returning response status2070 returns unauthorized2071 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success2072 behaves like process nuget metadata request at package name level2073 for user type developer2074 behaves like returning response status2075 returns success2076 behaves like returning nuget metadata json response with json schema2077 returns a valid json response2078 with invalid format2079 behaves like rejects nuget packages access2080 for user type anonymous2081 behaves like returning response status2082 returns not_found2083 with lower case package name2084 behaves like returning response status2085 returns success2086 behaves like returning nuget metadata json response with json schema2087 returns a valid json response2088 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success2089 behaves like process nuget metadata request at package name level2090 for user type guest2091 behaves like returning response status2092 returns success2093 behaves like returning nuget metadata json response with json schema2094 returns a valid json response2095 with invalid format2096 behaves like rejects nuget packages access2097 for user type anonymous2098 behaves like returning response status2099 returns not_found2100 with lower case package name2101 behaves like returning response status2102 returns success2103 behaves like returning nuget metadata json response with json schema2104 returns a valid json response2105 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2106 behaves like rejects nuget packages access2107 for user type developer2108 has the correct response header2109 behaves like returning response status2110 returns unauthorized2111 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2112 behaves like rejects nuget packages access2113 for user type guest2114 has the correct response header2115 behaves like returning response status2116 returns unauthorized2117 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2118 behaves like rejects nuget packages access2119 for user type anonymous2120 has the correct response header2121 behaves like returning response status2122 returns unauthorized2123 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success2124 behaves like process nuget metadata request at package name level2125 for user type developer2126 behaves like returning response status2127 returns success2128 behaves like returning nuget metadata json response with json schema2129 returns a valid json response2130 with invalid format2131 behaves like rejects nuget packages access2132 for user type anonymous2133 behaves like returning response status2134 returns not_found2135 with lower case package name2136 behaves like returning response status2137 returns success2138 behaves like returning nuget metadata json response with json schema2139 returns a valid json response2140 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2141 behaves like rejects nuget packages access2142 for user type guest2143 behaves like returning response status2144 returns forbidden2145 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2146 behaves like rejects nuget packages access2147 for user type developer2148 has the correct response header2149 behaves like returning response status2150 returns unauthorized2151 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2152 behaves like rejects nuget packages access2153 for user type guest2154 has the correct response header2155 behaves like returning response status2156 returns unauthorized2157 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2158 behaves like rejects nuget packages access2159 for user type developer2160 behaves like returning response status2161 returns not_found2162 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2163 behaves like rejects nuget packages access2164 for user type guest2165 behaves like returning response status2166 returns not_found2167 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2168 behaves like rejects nuget packages access2169 for user type developer2170 has the correct response header2171 behaves like returning response status2172 returns unauthorized2173 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2174 behaves like rejects nuget packages access2175 for user type guest2176 has the correct response header2177 behaves like returning response status2178 returns unauthorized2179 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2180 behaves like rejects nuget packages access2181 for user type anonymous2182 has the correct response header2183 behaves like returning response status2184 returns unauthorized2185 behaves like deploy token for package GET requests2186 with deploy token headers2187 valid token2188 behaves like returning response status2189 returns success2190 invalid token2191 behaves like returning response status2192 returns unauthorized2193 behaves like rejects nuget access with unknown target id2194 with an unknown target2195 as anonymous2196 behaves like rejects nuget packages access2197 for user type anonymous2198 has the correct response header2199 behaves like returning response status2200 returns unauthorized2201 as authenticated user2202 behaves like rejects nuget packages access2203 for user type anonymous2204 behaves like returning response status2205 returns not_found2206 behaves like rejects nuget access with invalid target id2207 with a target id with invalid integers2208 id: "/../", status: :bad_request2209 behaves like rejects nuget packages access2210 for user type anonymous2211 behaves like returning response status2212 returns bad_request2213 id: "", status: :not_found2214 behaves like rejects nuget packages access2215 for user type anonymous2216 behaves like returning response status2217 returns not_found2218 id: "%20", status: :bad_request2219 behaves like rejects nuget packages access2220 for user type anonymous2221 behaves like returning response status2222 returns bad_request2223 id: "%2e%2e%2f", status: :bad_request2224 behaves like rejects nuget packages access2225 for user type anonymous2226 behaves like returning response status2227 returns bad_request2228 id: "NaN", status: :bad_request2229 behaves like rejects nuget packages access2230 for user type anonymous2231 behaves like returning response status2232 returns bad_request2233 id: 1253, status: :unauthorized2234 behaves like rejects nuget packages access2235 for user type anonymous2236 has the correct response header2237 behaves like returning response status2238 returns unauthorized2239 id: "anything25", status: :bad_request2240 behaves like rejects nuget packages access2241 for user type anonymous2242 behaves like returning response status2243 returns bad_request2244 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/*package_version2245 behaves like handling nuget metadata requests with package name and package version2246 with valid target2247 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success2248 behaves like process nuget metadata request at package name and package version level2249 for user type developer2250 behaves like returning response status2251 returns success2252 behaves like returning nuget metadata json response with json schema2253 returns a valid json response2254 with invalid format2255 behaves like rejects nuget packages access2256 for user type anonymous2257 behaves like returning response status2258 returns not_found2259 with lower case package name2260 behaves like returning response status2261 returns success2262 behaves like returning nuget metadata json response with json schema2263 returns a valid json response2264 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success2265 behaves like process nuget metadata request at package name and package version level2266 for user type guest2267 behaves like returning response status2268 returns success2269 behaves like returning nuget metadata json response with json schema2270 returns a valid json response2271 with invalid format2272 behaves like rejects nuget packages access2273 for user type anonymous2274 behaves like returning response status2275 returns not_found2276 with lower case package name2277 behaves like returning response status2278 returns success2279 behaves like returning nuget metadata json response with json schema2280 returns a valid json response2281 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2282 behaves like rejects nuget packages access2283 for user type developer2284 has the correct response header2285 behaves like returning response status2286 returns unauthorized2287 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2288 behaves like rejects nuget packages access2289 for user type guest2290 has the correct response header2291 behaves like returning response status2292 returns unauthorized2293 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success2294 behaves like process nuget metadata request at package name and package version level2295 for user type developer2296 behaves like returning response status2297 returns success2298 behaves like returning nuget metadata json response with json schema2299 returns a valid json response2300 with invalid format2301 behaves like rejects nuget packages access2302 for user type anonymous2303 behaves like returning response status2304 returns not_found2305 with lower case package name2306 behaves like returning response status2307 returns success2308 behaves like returning nuget metadata json response with json schema2309 returns a valid json response2310 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success2311 behaves like process nuget metadata request at package name and package version level2312 for user type guest2313 behaves like returning response status2314 returns success2315 behaves like returning nuget metadata json response with json schema2316 returns a valid json response2317 with invalid format2318 behaves like rejects nuget packages access2319 for user type anonymous2320 behaves like returning response status2321 returns not_found2322 with lower case package name2323 behaves like returning response status2324 returns success2325 behaves like returning nuget metadata json response with json schema2326 returns a valid json response2327 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2328 behaves like rejects nuget packages access2329 for user type developer2330 has the correct response header2331 behaves like returning response status2332 returns unauthorized2333 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2334 behaves like rejects nuget packages access2335 for user type guest2336 has the correct response header2337 behaves like returning response status2338 returns unauthorized2339 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2340 behaves like rejects nuget packages access2341 for user type anonymous2342 has the correct response header2343 behaves like returning response status2344 returns unauthorized2345 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success2346 behaves like process nuget metadata request at package name and package version level2347 for user type developer2348 behaves like returning response status2349 returns success2350 behaves like returning nuget metadata json response with json schema2351 returns a valid json response2352 with invalid format2353 behaves like rejects nuget packages access2354 for user type anonymous2355 behaves like returning response status2356 returns not_found2357 with lower case package name2358 behaves like returning response status2359 returns success2360 behaves like returning nuget metadata json response with json schema2361 returns a valid json response2362 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2363 behaves like rejects nuget packages access2364 for user type guest2365 behaves like returning response status2366 returns forbidden2367 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2368 behaves like rejects nuget packages access2369 for user type developer2370 has the correct response header2371 behaves like returning response status2372 returns unauthorized2373 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2374 behaves like rejects nuget packages access2375 for user type guest2376 has the correct response header2377 behaves like returning response status2378 returns unauthorized2379 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2380 behaves like rejects nuget packages access2381 for user type developer2382 behaves like returning response status2383 returns not_found2384 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2385 behaves like rejects nuget packages access2386 for user type guest2387 behaves like returning response status2388 returns not_found2389 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2390 behaves like rejects nuget packages access2391 for user type developer2392 has the correct response header2393 behaves like returning response status2394 returns unauthorized2395 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2396 behaves like rejects nuget packages access2397 for user type guest2398 has the correct response header2399 behaves like returning response status2400 returns unauthorized2401 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2402 behaves like rejects nuget packages access2403 for user type anonymous2404 has the correct response header2405 behaves like returning response status2406 returns unauthorized2407 behaves like deploy token for package GET requests2408 with deploy token headers2409 valid token2410 behaves like returning response status2411 returns success2412 invalid token2413 behaves like returning response status2414 returns unauthorized2415 behaves like rejects nuget access with unknown target id2416 with an unknown target2417 as anonymous2418 behaves like rejects nuget packages access2419 for user type anonymous2420 has the correct response header2421 behaves like returning response status2422 returns unauthorized2423 as authenticated user2424 behaves like rejects nuget packages access2425 for user type anonymous2426 behaves like returning response status2427 returns not_found2428 behaves like rejects nuget access with invalid target id2429 with a target id with invalid integers2430 id: "/../", status: :bad_request2431 behaves like rejects nuget packages access2432 for user type anonymous2433 behaves like returning response status2434 returns bad_request2435 id: "", status: :not_found2436 behaves like rejects nuget packages access2437 for user type anonymous2438 behaves like returning response status2439 returns not_found2440 id: "%20", status: :bad_request2441 behaves like rejects nuget packages access2442 for user type anonymous2443 behaves like returning response status2444 returns bad_request2445 id: "%2e%2e%2f", status: :bad_request2446 behaves like rejects nuget packages access2447 for user type anonymous2448 behaves like returning response status2449 returns bad_request2450 id: "NaN", status: :bad_request2451 behaves like rejects nuget packages access2452 for user type anonymous2453 behaves like returning response status2454 returns bad_request2455 id: 1253, status: :unauthorized2456 behaves like rejects nuget packages access2457 for user type anonymous2458 has the correct response header2459 behaves like returning response status2460 returns unauthorized2461 id: "anything25", status: :bad_request2462 behaves like rejects nuget packages access2463 for user type anonymous2464 behaves like returning response status2465 returns bad_request2466 GET /api/v4/groups/:id/-/packages/nuget/query2467 behaves like handling nuget search requests2468 with valid target2469 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2470 behaves like process nuget search request2471 for user type developer2472 behaves like returns a valid json search response2473 returns a valid json response2474 behaves like returning response status2475 returns success2476 behaves like a package tracking event2477 creates a gitlab tracking event search_package2478 with skip set to 22479 behaves like returns a valid json search response2480 returns a valid json response2481 behaves like returning response status2482 returns success2483 with take set to 22484 behaves like returns a valid json search response2485 returns a valid json response2486 behaves like returning response status2487 returns success2488 without prereleases2489 behaves like returns a valid json search response2490 returns a valid json response2491 behaves like returning response status2492 returns success2493 with empty search term2494 behaves like returns a valid json search response2495 returns a valid json response2496 behaves like returning response status2497 returns success2498 with nil search term2499 behaves like returns a valid json search response2500 returns a valid json response2501 behaves like returning response status2502 returns success2503 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2504 behaves like process nuget search request2505 for user type guest2506 behaves like returns a valid json search response2507 returns a valid json response2508 behaves like returning response status2509 returns success2510 behaves like a package tracking event2511 creates a gitlab tracking event search_package2512 with skip set to 22513 behaves like returns a valid json search response2514 returns a valid json response2515 behaves like returning response status2516 returns success2517 with take set to 22518 behaves like returns a valid json search response2519 returns a valid json response2520 behaves like returning response status2521 returns success2522 without prereleases2523 behaves like returns a valid json search response2524 returns a valid json response2525 behaves like returning response status2526 returns success2527 with empty search term2528 behaves like returns a valid json search response2529 returns a valid json response2530 behaves like returning response status2531 returns success2532 with nil search term2533 behaves like returns a valid json search response2534 returns a valid json response2535 behaves like returning response status2536 returns success2537 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2538 behaves like rejects nuget packages access2539 for user type developer2540 has the correct response header2541 behaves like returning response status2542 returns unauthorized2543 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2544 behaves like rejects nuget packages access2545 for user type guest2546 has the correct response header2547 behaves like returning response status2548 returns unauthorized2549 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2550 behaves like process nuget search request2551 for user type developer2552 behaves like returns a valid json search response2553 returns a valid json response2554 behaves like returning response status2555 returns success2556 behaves like a package tracking event2557 creates a gitlab tracking event search_package2558 with skip set to 22559 behaves like returns a valid json search response2560 returns a valid json response2561 behaves like returning response status2562 returns success2563 with take set to 22564 behaves like returns a valid json search response2565 returns a valid json response2566 behaves like returning response status2567 returns success2568 without prereleases2569 behaves like returns a valid json search response2570 returns a valid json response2571 behaves like returning response status2572 returns success2573 with empty search term2574 behaves like returns a valid json search response2575 returns a valid json response2576 behaves like returning response status2577 returns success2578 with nil search term2579 behaves like returns a valid json search response2580 returns a valid json response2581 behaves like returning response status2582 returns success2583 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2584 behaves like process nuget search request2585 for user type guest2586 behaves like returns a valid json search response2587 returns a valid json response2588 behaves like returning response status2589 returns success2590 behaves like a package tracking event2591 creates a gitlab tracking event search_package2592 with skip set to 22593 behaves like returns a valid json search response2594 returns a valid json response2595 behaves like returning response status2596 returns success2597 with take set to 22598 behaves like returns a valid json search response2599 returns a valid json response2600 behaves like returning response status2601 returns success2602 without prereleases2603 behaves like returns a valid json search response2604 returns a valid json response2605 behaves like returning response status2606 returns success2607 with empty search term2608 behaves like returns a valid json search response2609 returns a valid json response2610 behaves like returning response status2611 returns success2612 with nil search term2613 behaves like returns a valid json search response2614 returns a valid json response2615 behaves like returning response status2616 returns success2617 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2618 behaves like rejects nuget packages access2619 for user type developer2620 has the correct response header2621 behaves like returning response status2622 returns unauthorized2623 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2624 behaves like rejects nuget packages access2625 for user type guest2626 has the correct response header2627 behaves like returning response status2628 returns unauthorized2629 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2630 behaves like rejects nuget packages access2631 for user type anonymous2632 has the correct response header2633 behaves like returning response status2634 returns unauthorized2635 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success2636 behaves like process nuget search request2637 for user type developer2638 behaves like returns a valid json search response2639 returns a valid json response2640 behaves like returning response status2641 returns success2642 behaves like a package tracking event2643 creates a gitlab tracking event search_package2644 with skip set to 22645 behaves like returns a valid json search response2646 returns a valid json response2647 behaves like returning response status2648 returns success2649 with take set to 22650 behaves like returns a valid json search response2651 returns a valid json response2652 behaves like returning response status2653 returns success2654 without prereleases2655 behaves like returns a valid json search response2656 returns a valid json response2657 behaves like returning response status2658 returns success2659 with empty search term2660 behaves like returns a valid json search response2661 returns a valid json response2662 behaves like returning response status2663 returns success2664 with nil search term2665 behaves like returns a valid json search response2666 returns a valid json response2667 behaves like returning response status2668 returns success2669 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2670 behaves like rejects nuget packages access2671 for user type guest2672 behaves like returning response status2673 returns forbidden2674 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2675 behaves like rejects nuget packages access2676 for user type developer2677 has the correct response header2678 behaves like returning response status2679 returns unauthorized2680 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2681 behaves like rejects nuget packages access2682 for user type guest2683 has the correct response header2684 behaves like returning response status2685 returns unauthorized2686 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2687 behaves like rejects nuget packages access2688 for user type developer2689 behaves like returning response status2690 returns not_found2691 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2692 behaves like rejects nuget packages access2693 for user type guest2694 behaves like returning response status2695 returns not_found2696 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2697 behaves like rejects nuget packages access2698 for user type developer2699 has the correct response header2700 behaves like returning response status2701 returns unauthorized2702 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2703 behaves like rejects nuget packages access2704 for user type guest2705 has the correct response header2706 behaves like returning response status2707 returns unauthorized2708 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2709 behaves like rejects nuget packages access2710 for user type anonymous2711 has the correct response header2712 behaves like returning response status2713 returns unauthorized2714 behaves like deploy token for package GET requests2715 with deploy token headers2716 valid token2717 behaves like returning response status2718 returns success2719 invalid token2720 behaves like returning response status2721 returns unauthorized2722 behaves like rejects nuget access with unknown target id2723 with an unknown target2724 as anonymous2725 behaves like rejects nuget packages access2726 for user type anonymous2727 has the correct response header2728 behaves like returning response status2729 returns unauthorized2730 as authenticated user2731 behaves like rejects nuget packages access2732 for user type anonymous2733 behaves like returning response status2734 returns not_found2735 behaves like rejects nuget access with invalid target id2736 with a target id with invalid integers2737 id: "/../", status: :bad_request2738 behaves like rejects nuget packages access2739 for user type anonymous2740 behaves like returning response status2741 returns bad_request2742 id: "", status: :not_found2743 behaves like rejects nuget packages access2744 for user type anonymous2745 behaves like returning response status2746 returns not_found2747 id: "%20", status: :bad_request2748 behaves like rejects nuget packages access2749 for user type anonymous2750 behaves like returning response status2751 returns bad_request2752 id: "%2e%2e%2f", status: :bad_request2753 behaves like rejects nuget packages access2754 for user type anonymous2755 behaves like returning response status2756 returns bad_request2757 id: "NaN", status: :bad_request2758 behaves like rejects nuget packages access2759 for user type anonymous2760 behaves like returning response status2761 returns bad_request2762 id: 1253, status: :unauthorized2763 behaves like rejects nuget packages access2764 for user type anonymous2765 has the correct response header2766 behaves like returning response status2767 returns unauthorized2768 id: "anything25", status: :bad_request2769 behaves like rejects nuget packages access2770 for user type anonymous2771 behaves like returning response status2772 returns bad_request2773 with dummy packages and anonymous request2774 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/index2775 behaves like handling mixed visibilities2776 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", expected_status: :unauthorized2777 behaves like returning response status2778 returns unauthorized2779 group_visibility: "PUBLIC", subgroup_visibility: "INTERNAL", expected_status: :unauthorized2780 behaves like returning response status2781 returns unauthorized2782 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2783 behaves like returning response status2784 returns unauthorized2785 group_visibility: "INTERNAL", subgroup_visibility: "INTERNAL", expected_status: :unauthorized2786 behaves like returning response status2787 returns unauthorized2788 group_visibility: "INTERNAL", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2789 behaves like returning response status2790 returns unauthorized2791 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2792 behaves like returning response status2793 returns unauthorized2794 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/*package_version2795 behaves like handling mixed visibilities2796 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", expected_status: :unauthorized2797 behaves like returning response status2798 returns unauthorized2799 group_visibility: "PUBLIC", subgroup_visibility: "INTERNAL", expected_status: :unauthorized2800 behaves like returning response status2801 returns unauthorized2802 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2803 behaves like returning response status2804 returns unauthorized2805 group_visibility: "INTERNAL", subgroup_visibility: "INTERNAL", expected_status: :unauthorized2806 behaves like returning response status2807 returns unauthorized2808 group_visibility: "INTERNAL", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2809 behaves like returning response status2810 returns unauthorized2811 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2812 behaves like returning response status2813 returns unauthorized2814 GET /api/v4/groups/:id/-/packages/nuget/query2815 behaves like handling mixed visibilities2816 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", expected_status: :unauthorized2817 behaves like returning response status2818 returns unauthorized2819 group_visibility: "PUBLIC", subgroup_visibility: "INTERNAL", expected_status: :unauthorized2820 behaves like returning response status2821 returns unauthorized2822 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2823 behaves like returning response status2824 returns unauthorized2825 group_visibility: "INTERNAL", subgroup_visibility: "INTERNAL", expected_status: :unauthorized2826 behaves like returning response status2827 returns unauthorized2828 group_visibility: "INTERNAL", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2829 behaves like returning response status2830 returns unauthorized2831 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", expected_status: :unauthorized2832 behaves like returning response status2833 returns unauthorized2834 with a reporter of subgroup2835 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/index2836 behaves like returning response status2837 returns forbidden2838 GET /api/v4/groups/:id/-/packages/nuget/metadata/*package_name/*package_version2839 behaves like returning response status2840 returns forbidden2841 GET /api/v4/groups/:id/-/packages/nuget/query2842 behaves like returning response status2843 returns forbidden2844API::Repositories2845 GET /projects/:id/repository/tree2846 when unauthenticated and project is public2847 behaves like repository tree2848 returns the repository tree2849 when ref does not exist2850 behaves like 404 response2851 returns 4042852 when repository is disabled2853 behaves like 403 response2854 returns 4032855 with recursive=12856 returns recursive project paths tree2857 when repository is disabled2858 behaves like 403 response2859 returns 4032860 when ref does not exist2861 behaves like 404 response2862 returns 4042863 keyset pagination mode2864 paginates using keysets2865 when unauthenticated and project is private2866 behaves like 404 response2867 returns 4042868 when authenticated as a developer2869 behaves like repository tree2870 returns the repository tree2871 when ref does not exist2872 behaves like 404 response2873 returns 4042874 when repository is disabled2875 behaves like 403 response2876 returns 4032877 with recursive=12878 returns recursive project paths tree2879 when repository is disabled2880 behaves like 403 response2881 returns 4032882 when ref does not exist2883 behaves like 404 response2884 returns 4042885 keyset pagination mode2886 paginates using keysets2887 when authenticated as a guest2888 behaves like 403 response2889 returns 4032890 GET /projects/:id/repository/blobs/:sha2891 when unauthenticated and project is public2892 behaves like repository blob2893 returns blob attributes as json2894 when sha does not exist2895 behaves like 404 response2896 returns 4042897 when repository is disabled2898 behaves like 403 response2899 returns 4032900 when unauthenticated and project is private2901 behaves like 404 response2902 returns 4042903 when authenticated as a developer2904 behaves like repository blob2905 returns blob attributes as json2906 when sha does not exist2907 behaves like 404 response2908 returns 4042909 when repository is disabled2910 behaves like 403 response2911 returns 4032912 when authenticated as a guest2913 behaves like 403 response2914 returns 4032915 GET /projects/:id/repository/blobs/:sha/raw2916 when unauthenticated and project is public2917 behaves like repository raw blob2918 returns the repository raw blob2919 sets inline content disposition by default2920 defines an uncached header response2921 when sha does not exist2922 behaves like 404 response2923 returns 4042924 when repository is disabled2925 behaves like 403 response2926 returns 4032927 when unauthenticated and project is private2928 behaves like 404 response2929 returns 4042930 when authenticated as a developer2931 behaves like repository raw blob2932 returns the repository raw blob2933 sets inline content disposition by default2934 defines an uncached header response2935 when sha does not exist2936 behaves like 404 response2937 returns 4042938 when repository is disabled2939 behaves like 403 response2940 returns 4032941 when authenticated as a guest2942 behaves like 403 response2943 returns 4032944 GET /projects/:id/repository/archive(.:format)?:sha2945 when unauthenticated and project is public2946 behaves like repository archive2947 returns the repository archive2948 returns the repository archive archive.zip2949 returns the repository archive archive.tar.bz22950 returns only a part of the repository with path set2951 rate limits user when thresholds hit2952 when sha does not exist2953 behaves like 404 response2954 returns 4042955 when hotlinking detection is enabled2956 behaves like hotlink interceptor2957 DDOS prevention2958 hotlinked as media2959 response_status: :ok, accept_header: "*/*"2960 renders the response2961 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"2962 renders the response2963 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"2964 renders the response2965 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"2966 renders the response2967 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"2968 renders the response2969 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"2970 renders the response2971 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"2972 renders the response2973 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"2974 renders the response2975 response_status: :not_acceptable, accept_header: "image/webp,*/*"2976 renders the response2977 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"2978 renders the response2979 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"2980 renders the response2981 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"2982 renders the response2983 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"2984 renders the response2985 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"2986 renders the response2987 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"2988 renders the response2989 response_status: :not_acceptable, accept_header: "text/css"2990 renders the response2991 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"2992 renders the response2993 hotlinked as a script2994 response_status: :ok, fetch_mode: "navigate"2995 renders the response2996 response_status: :ok, fetch_mode: "nested-navigate"2997 renders the response2998 response_status: :ok, fetch_mode: "same-origin"2999 renders the response3000 response_status: :not_acceptable, fetch_mode: "cors"3001 renders the response3002 response_status: :not_acceptable, fetch_mode: "no-cors"3003 renders the response3004 response_status: :not_acceptable, fetch_mode: "websocket"3005 renders the response3006 when unauthenticated and project path has dots3007 behaves like repository archive3008 returns the repository archive3009 returns the repository archive archive.zip3010 returns the repository archive archive.tar.bz23011 returns only a part of the repository with path set3012 rate limits user when thresholds hit3013 when sha does not exist3014 behaves like 404 response3015 returns 4043016 when hotlinking detection is enabled3017 behaves like hotlink interceptor3018 DDOS prevention3019 hotlinked as media3020 response_status: :ok, accept_header: "*/*"3021 renders the response3022 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3023 renders the response3024 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"3025 renders the response3026 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3027 renders the response3028 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"3029 renders the response3030 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"3031 renders the response3032 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"3033 renders the response3034 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"3035 renders the response3036 response_status: :not_acceptable, accept_header: "image/webp,*/*"3037 renders the response3038 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"3039 renders the response3040 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"3041 renders the response3042 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"3043 renders the response3044 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"3045 renders the response3046 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"3047 renders the response3048 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"3049 renders the response3050 response_status: :not_acceptable, accept_header: "text/css"3051 renders the response3052 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"3053 renders the response3054 hotlinked as a script3055 response_status: :ok, fetch_mode: "navigate"3056 renders the response3057 response_status: :ok, fetch_mode: "nested-navigate"3058 renders the response3059 response_status: :ok, fetch_mode: "same-origin"3060 renders the response3061 response_status: :not_acceptable, fetch_mode: "cors"3062 renders the response3063 response_status: :not_acceptable, fetch_mode: "no-cors"3064 renders the response3065 response_status: :not_acceptable, fetch_mode: "websocket"3066 renders the response3067 when unauthenticated and project is private3068 behaves like 404 response3069 returns 4043070 when authenticated as a developer3071 behaves like repository archive3072 returns the repository archive3073 returns the repository archive archive.zip3074 returns the repository archive archive.tar.bz23075 returns only a part of the repository with path set3076 rate limits user when thresholds hit3077 when sha does not exist3078 behaves like 404 response3079 returns 4043080 when hotlinking detection is enabled3081 behaves like hotlink interceptor3082 DDOS prevention3083 hotlinked as media3084 response_status: :ok, accept_header: "*/*"3085 renders the response3086 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3087 renders the response3088 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"3089 renders the response3090 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"3091 renders the response3092 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"3093 renders the response3094 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"3095 renders the response3096 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"3097 renders the response3098 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"3099 renders the response3100 response_status: :not_acceptable, accept_header: "image/webp,*/*"3101 renders the response3102 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"3103 renders the response3104 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"3105 renders the response3106 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"3107 renders the response3108 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"3109 renders the response3110 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"3111 renders the response3112 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"3113 renders the response3114 response_status: :not_acceptable, accept_header: "text/css"3115 renders the response3116 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"3117 renders the response3118 hotlinked as a script3119 response_status: :ok, fetch_mode: "navigate"3120 renders the response3121 response_status: :ok, fetch_mode: "nested-navigate"3122 renders the response3123 response_status: :ok, fetch_mode: "same-origin"3124 renders the response3125 response_status: :not_acceptable, fetch_mode: "cors"3126 renders the response3127 response_status: :not_acceptable, fetch_mode: "no-cors"3128 renders the response3129 response_status: :not_acceptable, fetch_mode: "websocket"3130 renders the response3131 when authenticated as a guest3132 behaves like 403 response3133 returns 4033134 GET /projects/:id/repository/compare3135 when unauthenticated and project is public3136 behaves like repository compare3137 compares branches3138 compares branches with explicit merge-base mode3139 compares branches with explicit straight mode3140 compares tags3141 compares commits3142 compares commits in reverse order3143 compare commits between different projects with non-forked relation3144 compare commits between different projects3145 compares same refs3146 returns an empty string when the diff overflows3147 returns a 404 when from ref is unknown3148 returns a 404 when to ref is unknown3149 returns a newly created commit3150 when unauthenticated and project is private3151 behaves like 404 response3152 returns 4043153 when authenticated as a developer3154 behaves like repository compare3155 compares branches3156 compares branches with explicit merge-base mode3157 compares branches with explicit straight mode3158 compares tags3159 compares commits3160 compares commits in reverse order3161 compare commits between different projects with non-forked relation3162 compare commits between different projects3163 compares same refs3164 returns an empty string when the diff overflows3165 returns a 404 when from ref is unknown3166 returns a 404 when to ref is unknown3167 returns a newly created commit3168 when authenticated as a guest3169 behaves like 403 response3170 returns 4033171 GET /projects/:id/repository/contributors3172 when unauthenticated and project is public3173 behaves like repository contributors3174 returns valid data3175 using sorting3176 by commits desc3177 returns the repository contribuors sorted by commits desc3178 by name desc3179 returns the repository contribuors sorted by name asc case insensitive3180 when unauthenticated and project is private3181 behaves like 404 response3182 returns 4043183 when authenticated as a developer3184 behaves like repository contributors3185 returns valid data3186 using sorting3187 by commits desc3188 returns the repository contribuors sorted by commits desc3189 by name desc3190 returns the repository contribuors sorted by name asc case insensitive3191 when authenticated as a guest3192 behaves like 403 response3193 returns 4033194 Links header contains working URLs when no `order_by` nor `sort` is given3195 returns `Link` header that includes URLs with default value for `order_by` & `sort`3196 GET :id/repository/merge_base3197 when unauthenticated and project is public3198 behaves like merge base3199 returns the common ancestor3200 when unauthenticated and project is private3201 behaves like 404 response3202 returns 4043203 when authenticated as a developer3204 behaves like merge base3205 returns the common ancestor3206 when authenticated as a guest3207 behaves like 403 response3208 returns 4033209 when passing refs that do not exist3210 behaves like 400 response3211 returns 4003212 when passing refs that do not have a merge base3213 behaves like 404 response3214 returns 4043215 when not enough refs are passed3216 renders a bad request error3217 GET /projects/:id/repository/changelog3218 generates the changelog for a version3219 supports leaving out the from and to attribute3220 when previous tag version does not exist3221 behaves like 422 response3222 returns 4223223 POST /projects/:id/repository/changelog3224 generates the changelog for a version3225 supports leaving out the from and to attribute3226 produces an error when generating the changelog fails3227API::PypiPackages3228 simple API endpoint3229 GET /api/v4/groups/:id/-/packages/pypi/simple/:package_name3230 behaves like pypi simple API endpoint3231 with valid project3232 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3233 behaves like PyPI package versions3234 for user type developer3235 returns the package listing3236 behaves like returning response status3237 returns success3238 behaves like a package tracking event3239 creates a gitlab tracking event list_package3240 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3241 behaves like PyPI package versions3242 for user type guest3243 returns the package listing3244 behaves like returning response status3245 returns success3246 behaves like a package tracking event3247 creates a gitlab tracking event list_package3248 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success3249 behaves like PyPI package versions3250 for user type developer3251 returns the package listing3252 behaves like returning response status3253 returns success3254 behaves like a package tracking event3255 creates a gitlab tracking event list_package3256 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success3257 behaves like PyPI package versions3258 for user type guest3259 returns the package listing3260 behaves like returning response status3261 returns success3262 behaves like a package tracking event3263 creates a gitlab tracking event list_package3264 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3265 behaves like PyPI package versions3266 for user type developer3267 returns the package listing3268 behaves like returning response status3269 returns success3270 behaves like a package tracking event3271 creates a gitlab tracking event list_package3272 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3273 behaves like PyPI package versions3274 for user type guest3275 returns the package listing3276 behaves like returning response status3277 returns success3278 behaves like a package tracking event3279 creates a gitlab tracking event list_package3280 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success3281 behaves like PyPI package versions3282 for user type developer3283 returns the package listing3284 behaves like returning response status3285 returns success3286 behaves like a package tracking event3287 creates a gitlab tracking event list_package3288 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success3289 behaves like PyPI package versions3290 for user type guest3291 returns the package listing3292 behaves like returning response status3293 returns success3294 behaves like a package tracking event3295 creates a gitlab tracking event list_package3296 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3297 behaves like PyPI package versions3298 for user type anonymous3299 returns the package listing3300 behaves like returning response status3301 returns success3302 behaves like a package tracking event3303 creates a gitlab tracking event list_package3304 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3305 behaves like PyPI package versions3306 for user type developer3307 returns the package listing3308 behaves like returning response status3309 returns success3310 behaves like a package tracking event3311 creates a gitlab tracking event list_package3312 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3313 behaves like process PyPI api request3314 for user type guest3315 behaves like returning response status3316 returns forbidden3317 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3318 behaves like process PyPI api request3319 for user type developer3320 behaves like returning response status3321 returns unauthorized3322 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3323 behaves like process PyPI api request3324 for user type guest3325 behaves like returning response status3326 returns unauthorized3327 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found3328 behaves like process PyPI api request3329 for user type developer3330 behaves like returning response status3331 returns not_found3332 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found3333 behaves like process PyPI api request3334 for user type guest3335 behaves like returning response status3336 returns not_found3337 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3338 behaves like process PyPI api request3339 for user type developer3340 behaves like returning response status3341 returns unauthorized3342 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3343 behaves like process PyPI api request3344 for user type guest3345 behaves like returning response status3346 returns unauthorized3347 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3348 behaves like process PyPI api request3349 for user type anonymous3350 behaves like returning response status3351 returns unauthorized3352 with a normalized package name3353 behaves like PyPI package versions3354 for user type developer3355 returns the package listing3356 behaves like returning response status3357 returns success3358 behaves like a package tracking event3359 creates a gitlab tracking event list_package3360 package request forward3361 forward: true, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success3362 behaves like PyPI package versions3363 for user type reporter3364 returns the package listing3365 behaves like returning response status3366 returns success3367 behaves like a package tracking event3368 creates a gitlab tracking event list_package3369 forward: true, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :redirect3370 behaves like process PyPI api request3371 for user type reporter3372 behaves like returning response status3373 returns redirect3374 forward: false, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success3375 behaves like PyPI package versions3376 for user type reporter3377 returns the package listing3378 behaves like returning response status3379 returns success3380 behaves like a package tracking event3381 creates a gitlab tracking event list_package3382 forward: false, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :not_found3383 behaves like process PyPI api request3384 for user type reporter3385 behaves like returning response status3386 returns not_found3387 behaves like rejects PyPI access with unknown group id3388 with an unknown project3389 behaves like unknown PyPI scope id3390 as anonymous3391 behaves like process PyPI api request3392 for user type anonymous3393 behaves like returning response status3394 returns not_found3395 as authenticated user3396 behaves like process PyPI api request3397 for user type anonymous3398 behaves like returning response status3399 returns not_found3400 deploy tokens3401 behaves like deploy token for package GET requests3402 with deploy token headers3403 valid token3404 behaves like returning response status3405 returns success3406 invalid token3407 behaves like returning response status3408 returns unauthorized3409 with group path as id3410 behaves like deploy token for package GET requests3411 with deploy token headers3412 valid token3413 behaves like returning response status3414 returns success3415 invalid token3416 behaves like returning response status3417 returns unauthorized3418 job token3419 behaves like job token for package GET requests3420 with job token headers3421 valid token3422 behaves like returning response status3423 returns success3424 invalid token3425 behaves like returning response status3426 returns unauthorized3427 invalid user3428 behaves like returning response status3429 returns unauthorized3430 behaves like a pypi user namespace endpoint3431 visibility_level: :public, user_role: :owner, expected_status: :not_found3432 behaves like returning response status3433 returns not_found3434 visibility_level: :private, user_role: :owner, expected_status: :not_found3435 behaves like returning response status3436 returns not_found3437 visibility_level: :public, user_role: :external, expected_status: :not_found3438 behaves like returning response status3439 returns not_found3440 visibility_level: :private, user_role: :external, expected_status: :not_found3441 behaves like returning response status3442 returns not_found3443 visibility_level: :public, user_role: :anonymous, expected_status: :not_found3444 behaves like returning response status3445 returns not_found3446 visibility_level: :private, user_role: :anonymous, expected_status: :not_found3447 behaves like returning response status3448 returns not_found3449 GET /api/v4/projects/:id/packages/pypi/simple/:package_name3450 behaves like pypi simple API endpoint3451 with valid project3452 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3453 behaves like PyPI package versions3454 for user type developer3455 returns the package listing3456 behaves like returning response status3457 returns success3458 behaves like a package tracking event3459 creates a gitlab tracking event list_package3460 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3461 behaves like PyPI package versions3462 for user type guest3463 returns the package listing3464 behaves like returning response status3465 returns success3466 behaves like a package tracking event3467 creates a gitlab tracking event list_package3468 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success3469 behaves like PyPI package versions3470 for user type developer3471 returns the package listing3472 behaves like returning response status3473 returns success3474 behaves like a package tracking event3475 creates a gitlab tracking event list_package3476 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success3477 behaves like PyPI package versions3478 for user type guest3479 returns the package listing3480 behaves like returning response status3481 returns success3482 behaves like a package tracking event3483 creates a gitlab tracking event list_package3484 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3485 behaves like PyPI package versions3486 for user type developer3487 returns the package listing3488 behaves like returning response status3489 returns success3490 behaves like a package tracking event3491 creates a gitlab tracking event list_package3492 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3493 behaves like PyPI package versions3494 for user type guest3495 returns the package listing3496 behaves like returning response status3497 returns success3498 behaves like a package tracking event3499 creates a gitlab tracking event list_package3500 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success3501 behaves like PyPI package versions3502 for user type developer3503 returns the package listing3504 behaves like returning response status3505 returns success3506 behaves like a package tracking event3507 creates a gitlab tracking event list_package3508 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success3509 behaves like PyPI package versions3510 for user type guest3511 returns the package listing3512 behaves like returning response status3513 returns success3514 behaves like a package tracking event3515 creates a gitlab tracking event list_package3516 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3517 behaves like PyPI package versions3518 for user type anonymous3519 returns the package listing3520 behaves like returning response status3521 returns success3522 behaves like a package tracking event3523 creates a gitlab tracking event list_package3524 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success3525 behaves like PyPI package versions3526 for user type developer3527 returns the package listing3528 behaves like returning response status3529 returns success3530 behaves like a package tracking event3531 creates a gitlab tracking event list_package3532 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3533 behaves like process PyPI api request3534 for user type guest3535 behaves like returning response status3536 returns forbidden3537 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3538 behaves like process PyPI api request3539 for user type developer3540 behaves like returning response status3541 returns unauthorized3542 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3543 behaves like process PyPI api request3544 for user type guest3545 behaves like returning response status3546 returns unauthorized3547 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found3548 behaves like process PyPI api request3549 for user type developer3550 behaves like returning response status3551 returns not_found3552 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found3553 behaves like process PyPI api request3554 for user type guest3555 behaves like returning response status3556 returns not_found3557 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3558 behaves like process PyPI api request3559 for user type developer3560 behaves like returning response status3561 returns unauthorized3562 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3563 behaves like process PyPI api request3564 for user type guest3565 behaves like returning response status3566 returns unauthorized3567 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3568 behaves like process PyPI api request3569 for user type anonymous3570 behaves like returning response status3571 returns unauthorized3572 with a normalized package name3573 behaves like PyPI package versions3574 for user type developer3575 returns the package listing3576 behaves like returning response status3577 returns success3578 behaves like a package tracking event3579 creates a gitlab tracking event list_package3580 package request forward3581 forward: true, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success3582 behaves like PyPI package versions3583 for user type reporter3584 returns the package listing3585 behaves like returning response status3586 returns success3587 behaves like a package tracking event3588 creates a gitlab tracking event list_package3589 forward: true, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :redirect3590 behaves like process PyPI api request3591 for user type reporter3592 behaves like returning response status3593 returns redirect3594 forward: false, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success3595 behaves like PyPI package versions3596 for user type reporter3597 returns the package listing3598 behaves like returning response status3599 returns success3600 behaves like a package tracking event3601 creates a gitlab tracking event list_package3602 forward: false, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :not_found3603 behaves like process PyPI api request3604 for user type reporter3605 behaves like returning response status3606 returns not_found3607 behaves like rejects PyPI access with unknown project id3608 with an unknown project3609 behaves like unknown PyPI scope id3610 as anonymous3611 behaves like process PyPI api request3612 for user type anonymous3613 behaves like returning response status3614 returns not_found3615 as authenticated user3616 behaves like process PyPI api request3617 for user type anonymous3618 behaves like returning response status3619 returns not_found3620 behaves like deploy token for package GET requests3621 with deploy token headers3622 valid token3623 behaves like returning response status3624 returns success3625 invalid token3626 behaves like returning response status3627 returns unauthorized3628 behaves like job token for package GET requests3629 with job token headers3630 valid token3631 behaves like returning response status3632 returns success3633 invalid token3634 behaves like returning response status3635 returns unauthorized3636 invalid user3637 behaves like returning response status3638 returns unauthorized3639 with project path as id3640 behaves like deploy token for package GET requests3641 with deploy token headers3642 valid token3643 behaves like returning response status3644 returns success3645 invalid token3646 behaves like returning response status3647 returns unauthorized3648 POST /api/v4/projects/:id/packages/pypi/authorize3649 with valid project3650 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :success3651 behaves like process PyPI api request3652 for user type developer3653 behaves like returning response status3654 returns success3655 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3656 behaves like process PyPI api request3657 for user type guest3658 behaves like returning response status3659 returns forbidden3660 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3661 behaves like process PyPI api request3662 for user type developer3663 behaves like returning response status3664 returns unauthorized3665 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3666 behaves like process PyPI api request3667 for user type guest3668 behaves like returning response status3669 returns unauthorized3670 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3671 behaves like process PyPI api request3672 for user type developer3673 behaves like returning response status3674 returns forbidden3675 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3676 behaves like process PyPI api request3677 for user type guest3678 behaves like returning response status3679 returns forbidden3680 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3681 behaves like process PyPI api request3682 for user type developer3683 behaves like returning response status3684 returns unauthorized3685 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3686 behaves like process PyPI api request3687 for user type guest3688 behaves like returning response status3689 returns unauthorized3690 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3691 behaves like process PyPI api request3692 for user type anonymous3693 behaves like returning response status3694 returns unauthorized3695 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :success3696 behaves like process PyPI api request3697 for user type developer3698 behaves like returning response status3699 returns success3700 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3701 behaves like process PyPI api request3702 for user type guest3703 behaves like returning response status3704 returns forbidden3705 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3706 behaves like process PyPI api request3707 for user type developer3708 behaves like returning response status3709 returns unauthorized3710 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3711 behaves like process PyPI api request3712 for user type guest3713 behaves like returning response status3714 returns unauthorized3715 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found3716 behaves like process PyPI api request3717 for user type developer3718 behaves like returning response status3719 returns not_found3720 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found3721 behaves like process PyPI api request3722 for user type guest3723 behaves like returning response status3724 returns not_found3725 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3726 behaves like process PyPI api request3727 for user type developer3728 behaves like returning response status3729 returns unauthorized3730 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3731 behaves like process PyPI api request3732 for user type guest3733 behaves like returning response status3734 returns unauthorized3735 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3736 behaves like process PyPI api request3737 for user type anonymous3738 behaves like returning response status3739 returns unauthorized3740 behaves like deploy token for package uploads3741 with deploy token headers3742 valid token3743 behaves like returning response status3744 returns success3745 invalid token3746 behaves like returning response status3747 returns unauthorized3748 behaves like job token for package uploads3749 with job token headers3750 valid token3751 behaves like returning response status3752 returns success3753 invalid token3754 behaves like returning response status3755 returns unauthorized3756 invalid user3757 behaves like returning response status3758 returns unauthorized3759 behaves like rejects PyPI access with unknown project id3760 with an unknown project3761 behaves like unknown PyPI scope id3762 as anonymous3763 behaves like process PyPI api request3764 for user type anonymous3765 behaves like returning response status3766 returns not_found3767 as authenticated user3768 behaves like process PyPI api request3769 for user type anonymous3770 behaves like returning response status3771 returns not_found3772 POST /api/v4/projects/:id/packages/pypi3773 with valid project3774 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package creation", expected_status: :created3775 behaves like PyPI package creation3776 for user type developer3777 behaves like creating pypi package files3778 creates package files3779 with a pre-existing file3780 rejects the duplicated file3781 with object storage disabled3782 without a file from workhorse3783 behaves like returning response status3784 returns bad_request3785 with correct params3786 behaves like package workhorse uploads3787 without a workhorse header3788 logs an error3789 behaves like returning response status3790 returns forbidden3791 behaves like creating pypi package files3792 creates package files3793 behaves like a package tracking event3794 creates a gitlab tracking event push_package3795 with object storage enabled3796 and direct upload enabled3797 behaves like creating pypi package files3798 creates package files3799 with invalid remote_id: 1231233800 behaves like returning response status3801 returns forbidden3802 with invalid remote_id: ../../1231233803 behaves like returning response status3804 returns forbidden3805 and direct upload disabled3806 and background upload disabled3807 behaves like creating pypi package files3808 creates package files3809 and background upload enabled3810 behaves like creating pypi package files3811 creates package files3812 behaves like background upload schedules a file migration3813 background upload enabled3814 schedules migration of file to object storage3815 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3816 behaves like process PyPI api request3817 for user type guest3818 behaves like returning response status3819 returns forbidden3820 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3821 behaves like process PyPI api request3822 for user type developer3823 behaves like returning response status3824 returns unauthorized3825 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3826 behaves like process PyPI api request3827 for user type guest3828 behaves like returning response status3829 returns unauthorized3830 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3831 behaves like process PyPI api request3832 for user type developer3833 behaves like returning response status3834 returns forbidden3835 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3836 behaves like process PyPI api request3837 for user type guest3838 behaves like returning response status3839 returns forbidden3840 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3841 behaves like process PyPI api request3842 for user type developer3843 behaves like returning response status3844 returns unauthorized3845 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3846 behaves like process PyPI api request3847 for user type guest3848 behaves like returning response status3849 returns unauthorized3850 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3851 behaves like process PyPI api request3852 for user type anonymous3853 behaves like returning response status3854 returns unauthorized3855 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :created3856 behaves like process PyPI api request3857 for user type developer3858 behaves like returning response status3859 returns created3860 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden3861 behaves like process PyPI api request3862 for user type guest3863 behaves like returning response status3864 returns forbidden3865 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3866 behaves like process PyPI api request3867 for user type developer3868 behaves like returning response status3869 returns unauthorized3870 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3871 behaves like process PyPI api request3872 for user type guest3873 behaves like returning response status3874 returns unauthorized3875 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found3876 behaves like process PyPI api request3877 for user type developer3878 behaves like returning response status3879 returns not_found3880 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found3881 behaves like process PyPI api request3882 for user type guest3883 behaves like returning response status3884 returns not_found3885 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3886 behaves like process PyPI api request3887 for user type developer3888 behaves like returning response status3889 returns unauthorized3890 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3891 behaves like process PyPI api request3892 for user type guest3893 behaves like returning response status3894 returns unauthorized3895 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized3896 behaves like process PyPI api request3897 for user type anonymous3898 behaves like returning response status3899 returns unauthorized3900 without requires_python3901 behaves like PyPI package creation3902 for user type developer3903 behaves like creating pypi package files3904 creates package files3905 with a pre-existing file3906 rejects the duplicated file3907 with object storage disabled3908 without a file from workhorse3909 behaves like returning response status3910 returns bad_request3911 with correct params3912 behaves like package workhorse uploads3913 without a workhorse header3914 logs an error3915 behaves like returning response status3916 returns forbidden3917 behaves like creating pypi package files3918 creates package files3919 behaves like a package tracking event3920 creates a gitlab tracking event push_package3921 with object storage enabled3922 and direct upload enabled3923 behaves like creating pypi package files3924 creates package files3925 with invalid remote_id: 1231233926 behaves like returning response status3927 returns forbidden3928 with invalid remote_id: ../../1231233929 behaves like returning response status3930 returns forbidden3931 and direct upload disabled3932 and background upload disabled3933 behaves like creating pypi package files3934 creates package files3935 and background upload enabled3936 behaves like creating pypi package files3937 creates package files3938 behaves like background upload schedules a file migration3939 background upload enabled3940 schedules migration of file to object storage3941 with required_python too big3942 behaves like process PyPI api request3943 for user type developer3944 behaves like returning response status3945 returns bad_request3946 with an invalid package3947 behaves like returning response status3948 returns bad_request3949 behaves like deploy token for package uploads3950 with deploy token headers3951 valid token3952 behaves like returning response status3953 returns success3954 invalid token3955 behaves like returning response status3956 returns unauthorized3957 behaves like job token for package uploads3958 with job token headers3959 valid token3960 creates a package with build info3961 behaves like returning response status3962 returns success3963 invalid token3964 behaves like returning response status3965 returns unauthorized3966 invalid user3967 behaves like returning response status3968 returns unauthorized3969 behaves like rejects PyPI access with unknown project id3970 with an unknown project3971 behaves like unknown PyPI scope id3972 as anonymous3973 behaves like process PyPI api request3974 for user type anonymous3975 behaves like returning response status3976 returns not_found3977 as authenticated user3978 behaves like process PyPI api request3979 for user type anonymous3980 behaves like returning response status3981 returns not_found3982 file size above maximum limit3983 behaves like returning response status3984 returns bad_request3985 with existing package3986 does not create a new package3987 marked as pending_destruction3988 does create a new package3989 file download endpoint3990 GET /api/v4/groups/:id/-/packages/pypi/files/:sha256/*file_identifier3991 behaves like pypi file download endpoint3992 with valid project3993 visibility_level: :public, user_role: :developer, member: true, user_token: true3994 behaves like PyPI package download3995 for user type developer3996 returns the package listing3997 behaves like returning response status3998 returns success3999 behaves like a package tracking event4000 creates a gitlab tracking event pull_package4001 visibility_level: :public, user_role: :guest, member: true, user_token: true4002 behaves like PyPI package download4003 for user type guest4004 returns the package listing4005 behaves like returning response status4006 returns success4007 behaves like a package tracking event4008 creates a gitlab tracking event pull_package4009 visibility_level: :public, user_role: :developer, member: true, user_token: false4010 behaves like PyPI package download4011 for user type developer4012 returns the package listing4013 behaves like returning response status4014 returns success4015 behaves like a package tracking event4016 creates a gitlab tracking event pull_package4017 visibility_level: :public, user_role: :guest, member: true, user_token: false4018 behaves like PyPI package download4019 for user type guest4020 returns the package listing4021 behaves like returning response status4022 returns success4023 behaves like a package tracking event4024 creates a gitlab tracking event pull_package4025 visibility_level: :public, user_role: :developer, member: false, user_token: true4026 behaves like PyPI package download4027 for user type developer4028 returns the package listing4029 behaves like returning response status4030 returns success4031 behaves like a package tracking event4032 creates a gitlab tracking event pull_package4033 visibility_level: :public, user_role: :guest, member: false, user_token: true4034 behaves like PyPI package download4035 for user type guest4036 returns the package listing4037 behaves like returning response status4038 returns success4039 behaves like a package tracking event4040 creates a gitlab tracking event pull_package4041 visibility_level: :public, user_role: :developer, member: false, user_token: false4042 behaves like PyPI package download4043 for user type developer4044 returns the package listing4045 behaves like returning response status4046 returns success4047 behaves like a package tracking event4048 creates a gitlab tracking event pull_package4049 visibility_level: :public, user_role: :guest, member: false, user_token: false4050 behaves like PyPI package download4051 for user type guest4052 returns the package listing4053 behaves like returning response status4054 returns success4055 behaves like a package tracking event4056 creates a gitlab tracking event pull_package4057 visibility_level: :public, user_role: :anonymous, member: false, user_token: true4058 behaves like PyPI package download4059 for user type anonymous4060 returns the package listing4061 behaves like returning response status4062 returns success4063 behaves like a package tracking event4064 creates a gitlab tracking event pull_package4065 visibility_level: :private, user_role: :developer, member: true, user_token: true4066 behaves like PyPI package download4067 for user type developer4068 returns the package listing4069 behaves like returning response status4070 returns success4071 behaves like a package tracking event4072 creates a gitlab tracking event pull_package4073 visibility_level: :private, user_role: :guest, member: true, user_token: true4074 behaves like PyPI package download4075 for user type guest4076 returns the package listing4077 behaves like returning response status4078 returns success4079 behaves like a package tracking event4080 creates a gitlab tracking event pull_package4081 visibility_level: :private, user_role: :developer, member: true, user_token: false4082 behaves like PyPI package download4083 for user type developer4084 returns the package listing4085 behaves like returning response status4086 returns success4087 behaves like a package tracking event4088 creates a gitlab tracking event pull_package4089 visibility_level: :private, user_role: :guest, member: true, user_token: false4090 behaves like PyPI package download4091 for user type guest4092 returns the package listing4093 behaves like returning response status4094 returns success4095 behaves like a package tracking event4096 creates a gitlab tracking event pull_package4097 visibility_level: :private, user_role: :developer, member: false, user_token: true4098 behaves like PyPI package download4099 for user type developer4100 returns the package listing4101 behaves like returning response status4102 returns success4103 behaves like a package tracking event4104 creates a gitlab tracking event pull_package4105 visibility_level: :private, user_role: :guest, member: false, user_token: true4106 behaves like PyPI package download4107 for user type guest4108 returns the package listing4109 behaves like returning response status4110 returns success4111 behaves like a package tracking event4112 creates a gitlab tracking event pull_package4113 visibility_level: :private, user_role: :developer, member: false, user_token: false4114 behaves like PyPI package download4115 for user type developer4116 returns the package listing4117 behaves like returning response status4118 returns success4119 behaves like a package tracking event4120 creates a gitlab tracking event pull_package4121 visibility_level: :private, user_role: :guest, member: false, user_token: false4122 behaves like PyPI package download4123 for user type guest4124 returns the package listing4125 behaves like returning response status4126 returns success4127 behaves like a package tracking event4128 creates a gitlab tracking event pull_package4129 visibility_level: :private, user_role: :anonymous, member: false, user_token: true4130 behaves like PyPI package download4131 for user type anonymous4132 returns the package listing4133 behaves like returning response status4134 returns success4135 behaves like a package tracking event4136 creates a gitlab tracking event pull_package4137 with deploy token headers4138 valid token4139 behaves like returning response status4140 returns success4141 invalid token4142 behaves like returning response status4143 returns success4144 with job token headers4145 valid token4146 behaves like returning response status4147 returns success4148 invalid token4149 behaves like returning response status4150 returns unauthorized4151 invalid user4152 behaves like returning response status4153 returns success4154 behaves like rejects PyPI access with unknown group id4155 with an unknown project4156 behaves like unknown PyPI scope id4157 as anonymous4158 behaves like process PyPI api request4159 for user type anonymous4160 behaves like returning response status4161 returns not_found4162 as authenticated user4163 behaves like process PyPI api request4164 for user type anonymous4165 behaves like returning response status4166 returns not_found4167 behaves like a pypi user namespace endpoint4168 visibility_level: :public, user_role: :owner, expected_status: :not_found4169 behaves like returning response status4170 returns not_found4171 visibility_level: :private, user_role: :owner, expected_status: :not_found4172 behaves like returning response status4173 returns not_found4174 visibility_level: :public, user_role: :external, expected_status: :not_found4175 behaves like returning response status4176 returns not_found4177 visibility_level: :private, user_role: :external, expected_status: :not_found4178 behaves like returning response status4179 returns not_found4180 visibility_level: :public, user_role: :anonymous, expected_status: :not_found4181 behaves like returning response status4182 returns not_found4183 visibility_level: :private, user_role: :anonymous, expected_status: :not_found4184 behaves like returning response status4185 returns not_found4186 GET /api/v4/projects/:id/packages/pypi/files/:sha256/*file_identifier4187 behaves like pypi file download endpoint4188 with valid project4189 visibility_level: :public, user_role: :developer, member: true, user_token: true4190 behaves like PyPI package download4191 for user type developer4192 returns the package listing4193 behaves like returning response status4194 returns success4195 behaves like a package tracking event4196 creates a gitlab tracking event pull_package4197 visibility_level: :public, user_role: :guest, member: true, user_token: true4198 behaves like PyPI package download4199 for user type guest4200 returns the package listing4201 behaves like returning response status4202 returns success4203 behaves like a package tracking event4204 creates a gitlab tracking event pull_package4205 visibility_level: :public, user_role: :developer, member: true, user_token: false4206 behaves like PyPI package download4207 for user type developer4208 returns the package listing4209 behaves like returning response status4210 returns success4211 behaves like a package tracking event4212 creates a gitlab tracking event pull_package4213 visibility_level: :public, user_role: :guest, member: true, user_token: false4214 behaves like PyPI package download4215 for user type guest4216 returns the package listing4217 behaves like returning response status4218 returns success4219 behaves like a package tracking event4220 creates a gitlab tracking event pull_package4221 visibility_level: :public, user_role: :developer, member: false, user_token: true4222 behaves like PyPI package download4223 for user type developer4224 returns the package listing4225 behaves like returning response status4226 returns success4227 behaves like a package tracking event4228 creates a gitlab tracking event pull_package4229 visibility_level: :public, user_role: :guest, member: false, user_token: true4230 behaves like PyPI package download4231 for user type guest4232 returns the package listing4233 behaves like returning response status4234 returns success4235 behaves like a package tracking event4236 creates a gitlab tracking event pull_package4237 visibility_level: :public, user_role: :developer, member: false, user_token: false4238 behaves like PyPI package download4239 for user type developer4240 returns the package listing4241 behaves like returning response status4242 returns success4243 behaves like a package tracking event4244 creates a gitlab tracking event pull_package4245 visibility_level: :public, user_role: :guest, member: false, user_token: false4246 behaves like PyPI package download4247 for user type guest4248 returns the package listing4249 behaves like returning response status4250 returns success4251 behaves like a package tracking event4252 creates a gitlab tracking event pull_package4253 visibility_level: :public, user_role: :anonymous, member: false, user_token: true4254 behaves like PyPI package download4255 for user type anonymous4256 returns the package listing4257 behaves like returning response status4258 returns success4259 behaves like a package tracking event4260 creates a gitlab tracking event pull_package4261 visibility_level: :private, user_role: :developer, member: true, user_token: true4262 behaves like PyPI package download4263 for user type developer4264 returns the package listing4265 behaves like returning response status4266 returns success4267 behaves like a package tracking event4268 creates a gitlab tracking event pull_package4269 visibility_level: :private, user_role: :guest, member: true, user_token: true4270 behaves like PyPI package download4271 for user type guest4272 returns the package listing4273 behaves like returning response status4274 returns success4275 behaves like a package tracking event4276 creates a gitlab tracking event pull_package4277 visibility_level: :private, user_role: :developer, member: true, user_token: false4278 behaves like PyPI package download4279 for user type developer4280 returns the package listing4281 behaves like returning response status4282 returns success4283 behaves like a package tracking event4284 creates a gitlab tracking event pull_package4285 visibility_level: :private, user_role: :guest, member: true, user_token: false4286 behaves like PyPI package download4287 for user type guest4288 returns the package listing4289 behaves like returning response status4290 returns success4291 behaves like a package tracking event4292 creates a gitlab tracking event pull_package4293 visibility_level: :private, user_role: :developer, member: false, user_token: true4294 behaves like PyPI package download4295 for user type developer4296 returns the package listing4297 behaves like returning response status4298 returns success4299 behaves like a package tracking event4300 creates a gitlab tracking event pull_package4301 visibility_level: :private, user_role: :guest, member: false, user_token: true4302 behaves like PyPI package download4303 for user type guest4304 returns the package listing4305 behaves like returning response status4306 returns success4307 behaves like a package tracking event4308 creates a gitlab tracking event pull_package4309 visibility_level: :private, user_role: :developer, member: false, user_token: false4310 behaves like PyPI package download4311 for user type developer4312 returns the package listing4313 behaves like returning response status4314 returns success4315 behaves like a package tracking event4316 creates a gitlab tracking event pull_package4317 visibility_level: :private, user_role: :guest, member: false, user_token: false4318 behaves like PyPI package download4319 for user type guest4320 returns the package listing4321 behaves like returning response status4322 returns success4323 behaves like a package tracking event4324 creates a gitlab tracking event pull_package4325 visibility_level: :private, user_role: :anonymous, member: false, user_token: true4326 behaves like PyPI package download4327 for user type anonymous4328 returns the package listing4329 behaves like returning response status4330 returns success4331 behaves like a package tracking event4332 creates a gitlab tracking event pull_package4333 with deploy token headers4334 valid token4335 behaves like returning response status4336 returns success4337 invalid token4338 behaves like returning response status4339 returns success4340 with job token headers4341 valid token4342 behaves like returning response status4343 returns success4344 invalid token4345 behaves like returning response status4346 returns unauthorized4347 invalid user4348 behaves like returning response status4349 returns success4350 behaves like rejects PyPI access with unknown project id4351 with an unknown project4352 behaves like unknown PyPI scope id4353 as anonymous4354 behaves like process PyPI api request4355 for user type anonymous4356 behaves like returning response status4357 returns not_found4358 as authenticated user4359 behaves like process PyPI api request4360 for user type anonymous4361 behaves like returning response status4362 returns not_found4363API::Discussions4364 when discussions have cross-reference system notes4365 behaves like with cross-reference system notes4366 returns only the note that the user should see4367 avoids Git calls and N+1 SQL queries4368 when noteable is an Issue4369 behaves like discussions API4370 GET /projects/:id/issues/:noteable_id/discussions4371 returns an array of discussions4372 returns a 404 error when noteable id not found4373 returns 404 when not authorized4374 GET /projects/:id/issues/:noteable_id/discussions/:discussion_id4375 returns a discussion by id4376 returns a 404 error if discussion not found4377 POST /projects/:id/issues/:noteable_id/discussions4378 creates a new note4379 returns a 400 bad request error if body not given4380 returns a 401 unauthorized error if user not authenticated4381 tracks a Notes::CreateService event4382 with notes_create_service_tracking feature flag disabled4383 does not track any events4384 when an admin or owner makes the request4385 accepts the creation date to be set4386 when user does not have access to read the discussion4387 responds with 4044388 when a project is public with private repo access4389 when user is not a team member of private repo4390 creating a new note4391 raises 404 error4392 fetching a discussion4393 raises 404 error4394 POST /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes4395 adds a new note to the discussion4396 returns a 400 bad request error if body not given4397 when the discussion is an individual note4398 creates a new discussion4399 PUT /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes/:note_id4400 returns modified note4401 returns a 404 error when note id not found4402 returns a 400 bad request error if body not given4403 DELETE /projects/:id/issues/:noteable_id/discussions/:discussion_id/notes/:note_id4404 deletes a note4405 returns a 404 error when note id not found4406 behaves like 412 response4407 for a modified ressource4408 returns 412 with a JSON error4409 for an unmodified ressource4410 returns 204 with an empty body4411 when noteable is a Snippet4412 behaves like discussions API4413 GET /projects/:id/snippets/:noteable_id/discussions4414 returns an array of discussions4415 returns a 404 error when noteable id not found4416 returns 404 when not authorized4417 GET /projects/:id/snippets/:noteable_id/discussions/:discussion_id4418 returns a discussion by id4419 returns a 404 error if discussion not found4420 POST /projects/:id/snippets/:noteable_id/discussions4421 creates a new note4422 returns a 400 bad request error if body not given4423 returns a 401 unauthorized error if user not authenticated4424 tracks a Notes::CreateService event4425 with notes_create_service_tracking feature flag disabled4426 does not track any events4427 when an admin or owner makes the request4428 accepts the creation date to be set4429 when user does not have access to read the discussion4430 responds with 4044431 when a project is public with private repo access4432 when user is not a team member of private repo4433 creating a new note4434 raises 404 error4435 fetching a discussion4436 raises 404 error4437 POST /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes4438 adds a new note to the discussion4439 returns a 400 bad request error if body not given4440 when the discussion is an individual note4441 returns 400 bad request4442 PUT /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes/:note_id4443 returns modified note4444 returns a 404 error when note id not found4445 returns a 400 bad request error if body not given4446 DELETE /projects/:id/snippets/:noteable_id/discussions/:discussion_id/notes/:note_id4447 deletes a note4448 returns a 404 error when note id not found4449 behaves like 412 response4450 for a modified ressource4451 returns 412 with a JSON error4452 for an unmodified ressource4453 returns 204 with an empty body4454 when noteable is a Merge Request4455 behaves like discussions API4456 GET /projects/:id/merge_requests/:noteable_id/discussions4457 returns an array of discussions4458 returns a 404 error when noteable id not found4459 returns 404 when not authorized4460 GET /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id4461 returns a discussion by id4462 returns a 404 error if discussion not found4463 POST /projects/:id/merge_requests/:noteable_id/discussions4464 creates a new note4465 returns a 400 bad request error if body not given4466 returns a 401 unauthorized error if user not authenticated4467 tracks a Notes::CreateService event4468 with notes_create_service_tracking feature flag disabled4469 does not track any events4470 when an admin or owner makes the request4471 accepts the creation date to be set4472 when user does not have access to read the discussion4473 responds with 4044474 when a project is public with private repo access4475 when user is not a team member of private repo4476 creating a new note4477 raises 404 error4478 fetching a discussion4479 raises 404 error4480 POST /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes4481 adds a new note to the discussion4482 returns a 400 bad request error if body not given4483 when the discussion is an individual note4484 creates a new discussion4485 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id4486 returns modified note4487 returns a 404 error when note id not found4488 returns a 400 bad request error if body not given4489 DELETE /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id4490 deletes a note4491 returns a 404 error when note id not found4492 behaves like 412 response4493 for a modified ressource4494 returns 412 with a JSON error4495 for an unmodified ressource4496 returns 204 with an empty body4497 behaves like diff discussions API4498 GET /projects/:id/merge_requests/:noteable_id/discussions4499 includes diff discussions4500 GET /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id4501 returns a discussion by id4502 POST /projects/:id/merge_requests/:noteable_id/discussions4503 creates a new diff note4504 when position is invalid4505 returns a 400 bad request error when position is not plausible4506 returns a 400 bad request error when the position is not valid for this discussion4507 POST /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes4508 adds a new note to the diff discussion4509 behaves like resolvable discussions API4510 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id4511 resolves discussion if resolved is true4512 unresolves discussion if resolved is false4513 returns a 400 bad request error if resolved parameter is not passed4514 returns a 401 unauthorized error if user is not authenticated4515 returns a 403 error if user resolves discussion of someone else4516 when user does not have access to read the discussion4517 responds with 4044518 PUT /projects/:id/merge_requests/:noteable_id/discussions/:discussion_id/notes/:note_id4519 returns resolved note when resolved parameter is true4520 returns a 404 error when note id not found4521 returns a 400 bad request error if neither body nor resolved parameter is given4522 returns a 403 error if user resolves note of someone else4523 when position is for a previous commit on the merge request4524 returns a 400 bad request error because the line_code is old4525 when a commit parameter is given4526 creates the discussion on that commit within the merge request4527 when noteable is a Commit4528 behaves like discussions API4529 GET /projects/:id/repository/commits/:noteable_id/discussions4530 returns an array of discussions4531 returns a 404 error when noteable id not found4532 returns 404 when not authorized4533 GET /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id4534 returns a discussion by id4535 returns a 404 error if discussion not found4536 POST /projects/:id/repository/commits/:noteable_id/discussions4537 creates a new note4538 returns a 400 bad request error if body not given4539 returns a 401 unauthorized error if user not authenticated4540 tracks a Notes::CreateService event4541 with notes_create_service_tracking feature flag disabled4542 does not track any events4543 when an admin or owner makes the request4544 accepts the creation date to be set4545 when user does not have access to read the discussion4546 responds with 4044547 when a project is public with private repo access4548 when user is not a team member of private repo4549 creating a new note4550 raises 404 error4551 fetching a discussion4552 raises 404 error4553 POST /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes4554 adds a new note to the discussion4555 returns a 400 bad request error if body not given4556 when the discussion is an individual note4557 returns 400 bad request4558 PUT /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes/:note_id4559 returns modified note4560 returns a 404 error when note id not found4561 returns a 400 bad request error if body not given4562 DELETE /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes/:note_id4563 deletes a note4564 returns a 404 error when note id not found4565 behaves like 412 response4566 for a modified ressource4567 returns 412 with a JSON error4568 for an unmodified ressource4569 returns 204 with an empty body4570 behaves like diff discussions API4571 GET /projects/:id/repository/commits/:noteable_id/discussions4572 includes diff discussions4573 GET /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id4574 returns a discussion by id4575 POST /projects/:id/repository/commits/:noteable_id/discussions4576 creates a new diff note4577 when position is invalid4578 returns a 400 bad request error when position is not plausible4579 returns a 400 bad request error when the position is not valid for this discussion4580 POST /projects/:id/repository/commits/:noteable_id/discussions/:discussion_id/notes4581 adds a new note to the diff discussion4582Admin::ClustersController4583 GET #index4584 functionality4585 when instance has one or more clusters4586 lists available clusters and displays html4587 lists available clusters and renders json serializer4588 sets the polling interval header for json requests4589 feature flag is disabled4590 responds with :not_found4591 when page is specified4592 redirects to the page4593 displays cluster list for associated page4594 when instance does not have a cluster4595 returns an empty state page4596 security4597 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2004598 is expected to be denied for user. Expected: 401,404 Got: 4044599 is expected to be denied for external. Expected: 401,404 Got: 4044600 GET #new4601 feature flag is disabled4602 responds with :not_found4603 functionality for new cluster4604 when omniauth has been configured4605 when selected provider is gke and no valid gcp token exists4606 redirects to gcp authorize_url4607 when omniauth has not configured4608 does not have authorize_url4609 when access token is valid4610 has new object4611 when access token is expired4612 is expected to be falsey4613 when access token is not stored in session4614 is expected to be falsey4615 functionality for existing cluster4616 has new object4617 EKS cluster4618 user already has an associated AWS role4619 does not create an Aws::Role record4620 user does not have an associated AWS role4621 creates an Aws::Role record4622 security4623 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3024624 is expected to be denied for user. Expected: 401,404 Got: 4044625 is expected to be denied for external. Expected: 401,404 Got: 4044626 behaves like GET #metrics_dashboard for dashboard4627 returns correct dashboard4628 behaves like GET #metrics_dashboard correctly formatted response4629 returns a json object with the correct keys4630 GET #prometheus_proxy4631 behaves like metrics dashboard prometheus api proxy4632 with valid requests4633 with success result4634 returns prometheus response4635 with nil query4636 does not raise error4637 with nil result4638 returns 204 no_content4639 with 404 result4640 returns body4641 with error result4642 with http_status4643 sets the http response status code4644 without http_status4645 returns bad_request4646 with inappropriate requests4647 without correct permissions4648 returns 4044649 with invalid proxyable id4650 returns 4044651 with anonymous user4652 returns 4044653 POST #create_gcp4654 feature flag is disabled4655 responds with :not_found4656 functionality4657 when access token is valid4658 creates a new cluster4659 when legacy_abac param is false4660 creates a new cluster with legacy_abac_disabled4661 when access token is expired4662 is expected to be falsey4663 when access token is not stored in session4664 is expected to be falsey4665 security4666 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3024667 is expected to be denied for user. Expected: 401,404 Got: 4044668 is expected to be denied for external. Expected: 401,404 Got: 4044669 POST #create_aws4670 creates a new cluster4671 feature flag is disabled4672 responds with :not_found4673 params are invalid4674 does not create a cluster4675 security4676 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2014677 is expected to be denied for user. Expected: 401,404 Got: 4044678 is expected to be denied for external. Expected: 401,404 Got: 4044679 POST #create_user4680 feature flag is disabled4681 responds with :not_found4682 functionality4683 when creates a cluster4684 creates a new cluster4685 when creates a RBAC-enabled cluster4686 creates a new cluster4687 security4688 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3024689 is expected to be denied for user. Expected: 401,404 Got: 4044690 is expected to be denied for external. Expected: 401,404 Got: 4044691 POST authorize AWS role for EKS cluster4692 updates the associated role with the supplied ARN4693 feature flag is disabled4694 responds with :not_found4695 supplied role is invalid4696 does not update the associated role4697 security4698 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2004699 is expected to be denied for user. Expected: 401,404 Got: 4044700 is expected to be denied for external. Expected: 401,404 Got: 4044701 DELETE clear cluster cache4702 deletes the namespaces associated with the cluster4703 feature flag is disabled4704 responds with :not_found4705 security4706 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3024707 is expected to be denied for user. Expected: 401,404 Got: 4044708 is expected to be denied for external. Expected: 401,404 Got: 4044709 GET #cluster_status4710 feature flag is disabled4711 responds with :not_found4712 functionality4713 responds with matching schema4714 invokes schedule_status_update on each application4715 security4716 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2004717 is expected to be denied for user. Expected: 401,404 Got: 4044718 is expected to be denied for external. Expected: 401,404 Got: 4044719 GET #show4720 feature flag is disabled4721 responds with :not_found4722 functionality4723 responds successfully4724 renders integration tab view4725 security4726 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 2004727 is expected to be denied for user. Expected: 401,404 Got: 4044728 is expected to be denied for external. Expected: 401,404 Got: 4044729 PUT #update4730 updates and redirects back to show page4731 feature flag is disabled4732 responds with :not_found4733 when domain is invalid4734 does not update cluster attributes4735 when format is json4736 when changing parameters4737 when valid parameters are used4738 updates and redirects back to show page4739 when invalid parameters are used4740 rejects changes4741 security4742 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3024743 is expected to be denied for user. Expected: 401,404 Got: 4044744 is expected to be denied for external. Expected: 401,404 Got: 4044745 DELETE #destroy4746 feature flag is disabled4747 responds with :not_found4748 functionality4749 when cluster is provided by GCP4750 when cluster is created4751 destroys and redirects back to clusters list4752 when cluster is being created4753 destroys and redirects back to clusters list4754 when cluster is provided by user4755 destroys and redirects back to clusters list4756 security4757 is expected to be allowed for admin. Expected: 200,201,204,302 Got: 3024758 is expected to be denied for user. Expected: 401,404 Got: 4044759 is expected to be denied for external. Expected: 401,404 Got: 4044760Boards::IssuesController4761 GET index4762 with invalid board id4763 returns a not found 404 response4764 when list id is present4765 with valid list id4766 returns issues that have the list label applied4767 returns issues by closed_at in descending order in closed list4768 avoids N+1 database queries4769 avoids N+1 database queries when adding a project4770 avoids N+1 database queries when adding a subgroup, project, and issue4771 does not query issues table more than once4772 when block_issue_repositioning feature flag is enabled4773 does not reposition issues with null position4774 with invalid list id4775 returns a not found 404 response4776 when list id is missing4777 returns opened issues without board labels applied4778 with unauthorized user4779 returns a forbidden 403 response4780 with external authorization4781 returns a 403 for group boards4782 is successful for project boards4783 PUT bulk_move4784 when items are moved to another list4785 behaves like move issues endpoint provider4786 responds as expected4787 moves issues as expected4788 when moving just one issue4789 behaves like move issues endpoint provider4790 responds as expected4791 moves issues as expected4792 when user is not allowed to move issue4793 behaves like move issues endpoint provider4794 responds as expected4795 moves issues as expected4796 when issues should be moved visually above existing issue in list4797 behaves like move issues endpoint provider4798 responds as expected4799 moves issues as expected4800 when destination list is empty4801 behaves like move issues endpoint provider4802 responds as expected4803 moves issues as expected4804 when no position arguments are given4805 behaves like move issues endpoint provider4806 responds as expected4807 moves issues as expected4808 when move_before_id and move_after_id are given4809 behaves like move issues endpoint provider4810 responds as expected4811 moves issues as expected4812 when request contains too many issues4813 behaves like move issues endpoint provider4814 responds as expected4815 moves issues as expected4816 when request is malformed4817 behaves like move issues endpoint provider4818 responds as expected4819 moves issues as expected4820 POST create4821 with valid params4822 returns a successful 200 response4823 returns the created issue4824 sets the default work_item_type4825 with invalid params4826 when title is nil4827 returns an unprocessable entity 422 response4828 when list does not belongs to project board4829 returns a not found 404 response4830 with invalid board id4831 returns a not found 404 response4832 with invalid list id4833 returns a not found 404 response4834 with guest user4835 in open list4836 returns a successful 200 response4837 in label list4838 returns a forbidden 403 response4839 PATCH update4840 with valid params4841 returns a successful 200 response4842 moves issue to the desired list4843 with invalid params4844 returns a unprocessable entity 422 response for invalid lists4845 returns a not found 404 response for invalid board id4846 returns a not found 404 response for invalid issue id4847 with unauthorized user4848 returns a forbidden 403 response4849API::GroupPackages4850 GET /groups/:id/packages4851 with sorting4852 without sorting params4853 sorts by created_at asc4854 behaves like package sorting4855 sorting by name4856 ascending order4857 returns the sorted packages4858 descending order4859 returns the sorted packages4860 behaves like package sorting4861 sorting by created_at4862 ascending order4863 returns the sorted packages4864 descending order4865 returns the sorted packages4866 behaves like package sorting4867 sorting by version4868 ascending order4869 returns the sorted packages4870 descending order4871 returns the sorted packages4872 behaves like package sorting4873 sorting by type4874 ascending order4875 returns the sorted packages4876 descending order4877 returns the sorted packages4878 behaves like package sorting4879 sorting by project_path4880 ascending order4881 returns the sorted packages4882 descending order4883 returns the sorted packages4884 with private group4885 with unauthenticated user4886 behaves like rejects packages access4887 for no_type4888 behaves like returning response status4889 returns not_found4890 with authenticated user4891 behaves like returns packages4892 for owner4893 returns success response4894 returns a valid response schema4895 returns two packages4896 behaves like returns packages4897 for maintainer4898 returns success response4899 returns a valid response schema4900 returns two packages4901 behaves like returns packages4902 for developer4903 returns success response4904 returns a valid response schema4905 returns two packages4906 behaves like returns packages4907 for reporter4908 returns success response4909 returns a valid response schema4910 returns two packages4911 behaves like rejects packages access4912 for guest4913 behaves like returning response status4914 returns forbidden4915 with subgroup4916 behaves like returns packages with subgroups4917 with subgroups for owner4918 returns success response4919 returns a valid response schema4920 returns three packages4921 behaves like returns packages with subgroups4922 with subgroups for maintainer4923 returns success response4924 returns a valid response schema4925 returns three packages4926 behaves like returns packages with subgroups4927 with subgroups for developer4928 returns success response4929 returns a valid response schema4930 returns three packages4931 behaves like returns packages with subgroups4932 with subgroups for reporter4933 returns success response4934 returns a valid response schema4935 returns three packages4936 behaves like rejects packages access4937 for guest4938 behaves like returning response status4939 returns forbidden4940 excluding subgroup4941 behaves like returns packages4942 for owner4943 returns success response4944 returns a valid response schema4945 returns two packages4946 behaves like returns packages4947 for maintainer4948 returns success response4949 returns a valid response schema4950 returns two packages4951 behaves like returns packages4952 for developer4953 returns success response4954 returns a valid response schema4955 returns two packages4956 behaves like returns packages4957 for reporter4958 returns success response4959 returns a valid response schema4960 returns two packages4961 behaves like rejects packages access4962 for guest4963 behaves like returning response status4964 returns forbidden4965 with public group4966 with unauthenticated user4967 behaves like returns packages4968 for no_type4969 returns success response4970 returns a valid response schema4971 returns two packages4972 with authenticated user4973 behaves like returns packages4974 for owner4975 returns success response4976 returns a valid response schema4977 returns two packages4978 behaves like returns packages4979 for maintainer4980 returns success response4981 returns a valid response schema4982 returns two packages4983 behaves like returns packages4984 for developer4985 returns success response4986 returns a valid response schema4987 returns two packages4988 behaves like returns packages4989 for reporter4990 returns success response4991 returns a valid response schema4992 returns two packages4993 behaves like returns packages4994 for guest4995 returns success response4996 returns a valid response schema4997 returns two packages4998 with pagination params4999 behaves like returns paginated packages5000 when viewing the first page5001 returns first 2 packages5002 when viewing the second page5003 returns first 2 packages5004 behaves like filters on each package_type5005 for package type maven5006 returns maven packages5007 for package type npm5008 returns npm packages5009 for package type conan5010 returns conan packages5011 for package type nuget5012 returns nuget packages5013 for package type pypi5014 returns pypi packages5015 for package type composer5016 returns composer packages5017 for package type generic5018 returns generic packages5019 for package type golang5020 returns golang packages5021 for package type debian5022 returns debian packages5023 for package type rubygems5024 returns rubygems packages5025 for package type helm5026 returns helm packages5027 for package type terraform_module5028 returns terraform_module packages5029 does not accept non supported package_type value5030 behaves like returning response status5031 returns bad_request5032 behaves like with versionless packages5033 with versionless package5034 behaves like not including the package5035 does not return the package5036 with include_versionless param5037 with true include_versionless param5038 for param true5039 returns the package5040 for param true5041 returns the package5042 for param 15043 returns the package5044 for param 15045 returns the package5046 with falsy include_versionless param5047 for param false5048 behaves like not including the package5049 does not return the package5050 for param5051 behaves like not including the package5052 does not return the package5053 for param5054 behaves like not including the package5055 does not return the package5056 for param false5057 behaves like not including the package5058 does not return the package5059 for param 05060 behaves like not including the package5061 does not return the package5062 for param 05063 behaves like not including the package5064 does not return the package5065 behaves like with status param5066 hidden packages5067 no status param5068 behaves like not including the hidden package5069 does not return the package5070 with hidden status param5071 returns the package5072 bad status param5073 returns the package5074 behaves like does not cause n^2 queries5075 avoids N^2 database queries5076API::Ci::Runner5077 /api/v4/jobs5078 artifacts5079 POST /api/v4/jobs/:id/artifacts/authorize5080 reject requests that did not go through gitlab-workhorse5081 when using token as parameter5082 and the artifact is too large5083 behaves like rejecting artifacts that are too large5084 based on plan limit setting5085 behaves like failed request5086 responds with payload too large error5087 based on application setting5088 behaves like failed request5089 responds with payload too large error5090 based on root namespace setting5091 behaves like failed request5092 responds with payload too large error5093 based on child namespace setting5094 behaves like failed request5095 responds with payload too large error5096 based on project setting5097 behaves like failed request5098 responds with payload too large error5099 posting artifacts to running job5100 doesn't update runner info5101 behaves like API::CI::Runner application context metadata5102 contains correct context metadata5103 when using local storage5104 behaves like authorizes local file5105 succeeds5106 when using remote storage5107 when direct upload is enabled5108 succeeds5109 when direct upload is disabled5110 behaves like authorizes local file5111 succeeds5112 when job does not exist anymore5113 returns 403 Forbidden5114 when using token as header5115 authorizes posting artifacts to running job5116 fails to post too large artifact5117 when using runners token5118 fails to authorize artifacts posting5119 authorization token is invalid5120 responds with forbidden5121 authorize uploading of an lsif artifact5122 adds ProcessLsif header5123 tracks code_intelligence usage ping5124 POST /api/v4/jobs/:id/artifacts5125 doesn't update runner info5126 behaves like API::CI::Runner application context metadata5127 contains correct context metadata5128 when the artifact is too large5129 behaves like rejecting artifacts that are too large5130 based on plan limit setting5131 behaves like failed request5132 responds with payload too large error5133 based on application setting5134 behaves like failed request5135 responds with payload too large error5136 based on root namespace setting5137 behaves like failed request5138 responds with payload too large error5139 based on child namespace setting5140 behaves like failed request5141 responds with payload too large error5142 based on project setting5143 behaves like failed request5144 responds with payload too large error5145 when artifacts are being stored inside of tmp path5146 when job has been erased5147 responds with forbidden5148 when job does not exist anymore5149 returns 403 Forbidden5150 when job is running5151 when uses accelerated file post5152 for file stored locally5153 behaves like successful artifacts upload5154 updates successfully5155 for file stored remotely5156 when valid remote_id is used5157 behaves like successful artifacts upload5158 updates successfully5159 when invalid remote_id is used5160 responds with bad request5161 when using runners token5162 responds with forbidden5163 when artifacts post request does not contain file5164 fails to post artifacts without file5165 GitLab Workhorse is not configured5166 fails to post artifacts without GitLab-Workhorse5167 Is missing GitLab Workhorse token headers5168 fails to post artifacts without GitLab-Workhorse5169 when setting an expire date5170 when an expire_in is given5171 updates when specified5172 when no expire_in is given5173 ignores if not specified5174 with application default5175 when default is 5 days5176 sets to application default5177 when default is 05178 does not set expire_in5179 when value is never5180 does not set expire_in5181 posts artifacts file and metadata file5182 when posts data accelerated by workhorse is correct5183 stores artifacts and artifacts metadata5184 with a malicious file.path param5185 rejects the request5186 when workhorse header is missing5187 rejects the request5188 when there is no artifacts file in post data5189 is expected to respond with bad request5190 does not store metadata5191 when artifact_type is archive5192 when artifact_format is zip5193 stores junit test report5194 when artifact_format is gzip5195 returns an error5196 when artifact_type is junit5197 when artifact_format is gzip5198 stores junit test report5199 when artifact_format is raw5200 returns an error5201 when artifact_type is metrics_referee5202 when artifact_format is gzip5203 stores metrics_referee data5204 when artifact_format is raw5205 returns an error5206 when artifact_type is network_referee5207 when artifact_format is gzip5208 stores network_referee data5209 when artifact_format is raw5210 returns an error5211 when artifact_type is dotenv5212 when artifact_format is gzip5213 stores dotenv file5214 parses dotenv file5215 when parse error happens5216 returns an error5217 when artifact_format is raw5218 returns an error5219 when artifacts already exist for the job5220 when sha256 is the same of the existing artifact5221 ignores the new artifact5222 when sha256 is different than the existing artifact5223 logs and returns an error5224 when object storage throws errors5225 does not store artifacts5226 when artifacts are being stored outside of tmp path5227 fails to post artifacts for outside of tmp path5228 GET /api/v4/jobs/:id/artifacts5229 doesn't update runner info5230 behaves like API::CI::Runner application context metadata5231 contains correct context metadata5232 when job has artifacts5233 when using job token5234 when artifacts are stored locally5235 download artifacts5236 when artifacts are stored remotely5237 when proxy download is being used5238 uses workhorse send-url5239 when direct download is being used5240 receive redirect for downloading artifacts5241 when using runnners token5242 responds with forbidden5243 when job does not have artifacts5244 responds with not found5245 when job does not exist anymore5246 responds with 403 Forbidden5247Query.issue(id)5248 behaves like a working graphql query5249 returns a successful response5250 behaves like a noteable graphql type we can query5251 .discussions5252 can fetch discussions5253 can fetch discussion noteable5254 .notes5255DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5256DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5257 can fetch notes5258 when the user does not have access to the issue5259 returns nil5260 when the user does have access5261 returns the issue5262 when selecting any single field5263 field: "webUrl"5264 behaves like a working graphql query5265 returns a successful response5266 returns the issue and field5267 field: "description"5268 behaves like a working graphql query5269 returns a successful response5270 returns the issue and field5271 field: "id"5272 behaves like a working graphql query5273 returns a successful response5274 returns the issue and field5275 field: "iid"5276 behaves like a working graphql query5277 returns a successful response5278 returns the issue and field5279 field: "state"5280 behaves like a working graphql query5281 returns a successful response5282 returns the issue and field5283 field: "title"5284 behaves like a working graphql query5285 returns a successful response5286 returns the issue and field5287 field: "reference"5288 behaves like a working graphql query5289 returns a successful response5290 returns the issue and field5291 field: "confidential"5292 behaves like a working graphql query5293 returns a successful response5294 returns the issue and field5295 field: "discussionLocked"5296 behaves like a working graphql query5297 returns a successful response5298 returns the issue and field5299 field: "dueDate"5300 behaves like a working graphql query5301 returns a successful response5302 returns the issue and field5303 field: "hidden"5304 behaves like a working graphql query5305 returns a successful response5306 returns the issue and field5307 field: "downvotes"5308 behaves like a working graphql query5309 returns a successful response5310 returns the issue and field5311 field: "mergeRequestsCount"5312 behaves like a working graphql query5313 returns a successful response5314 returns the issue and field5315 field: "relativePosition"5316 behaves like a working graphql query5317 returns a successful response5318 returns the issue and field5319 field: "upvotes"5320 behaves like a working graphql query5321 returns a successful response5322 returns the issue and field5323 field: "userDiscussionsCount"5324 behaves like a working graphql query5325 returns a successful response5326 returns the issue and field5327 field: "userNotesCount"5328 behaves like a working graphql query5329 returns a successful response5330 returns the issue and field5331 field: "webPath"5332 behaves like a working graphql query5333 returns a successful response5334 returns the issue and field5335 field: "emailsDisabled"5336 behaves like a working graphql query5337 returns a successful response5338 returns the issue and field5339 field: "humanTimeEstimate"5340 behaves like a working graphql query5341 returns a successful response5342 returns the issue and field5343 field: "humanTotalTimeSpent"5344 behaves like a working graphql query5345 returns a successful response5346 returns the issue and field5347 field: "subscribed"5348 behaves like a working graphql query5349 returns a successful response5350 returns the issue and field5351 field: "timeEstimate"5352 behaves like a working graphql query5353 returns a successful response5354 returns the issue and field5355 field: "totalTimeSpent"5356 behaves like a working graphql query5357 returns a successful response5358 returns the issue and field5359 field: "closedAt"5360 behaves like a working graphql query5361 returns a successful response5362 returns the issue and field5363 field: "createdAt"5364 behaves like a working graphql query5365 returns a successful response5366 returns the issue and field5367 field: "updatedAt"5368 behaves like a working graphql query5369 returns a successful response5370 returns the issue and field5371 field: "type"5372 behaves like a working graphql query5373 returns a successful response5374 returns the issue and field5375 field: "severity"5376 behaves like a working graphql query5377 returns a successful response5378 returns the issue and field5379 field: "moved"5380 behaves like a working graphql query5381 returns a successful response5382 returns the issue and field5383 field: "createNoteEmail"5384 behaves like a working graphql query5385 returns a successful response5386 returns the issue and field5387 field: "projectId"5388 behaves like a working graphql query5389 returns a successful response5390 returns the issue and field5391 field: "escalationStatus"5392 behaves like a working graphql query5393 returns a successful response5394 returns the issue and field5395 field: "titleHtml"5396 behaves like a working graphql query5397 returns a successful response5398 returns the issue and field5399 field: "descriptionHtml"5400 behaves like a working graphql query5401 returns a successful response5402 returns the issue and field5403 field: "weight"5404 behaves like a working graphql query5405 returns a successful response5406 returns the issue and field5407 field: "blocked"5408 behaves like a working graphql query5409 returns a successful response5410 returns the issue and field5411 field: "blockingCount"5412 behaves like a working graphql query5413 returns a successful response5414 returns the issue and field5415 field: "blockedByCount"5416 behaves like a working graphql query5417 returns a successful response5418 returns the issue and field5419 field: "healthStatus"5420 behaves like a working graphql query5421 returns a successful response5422 returns the issue and field5423 field: "statusPagePublishedIncident"5424 behaves like a working graphql query5425 returns a successful response5426 returns the issue and field5427 field: "slaDueAt"5428 behaves like a working graphql query5429 returns a successful response5430 returns the issue and field5431 when selecting multiple fields5432 returns the issue with the specified fields5433 when issue got moved5434 returns correct attributes5435 when passed a non-issue gid5436 returns an error5437 when there is a confidential issue5438 when the user cannot see confidential issues5439 returns nil5440 when the user can see confidential issues5441 returns the confidential issue5442API::HelmPackages5443 GET /api/v4/projects/:id/packages/helm/:channel/index.yaml5444 with a project id5445 behaves like handling helm chart index requests5446 with valid project5447 personal token5448 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success5449 behaves like process helm service index request5450 for user type guest5451 returns a valid YAML response5452 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success5453 behaves like process helm service index request5454 for user type not_a_member5455 returns a valid YAML response5456 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success5457 behaves like process helm service index request5458 for user type anonymous5459 returns a valid YAML response5460 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success5461 behaves like process helm service index request5462 for user type reporter5463 returns a valid YAML response5464 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5465 behaves like rejects helm packages access5466 for user type guest5467 behaves like returning response status5468 returns forbidden5469 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found5470 behaves like rejects helm packages access5471 for user type not_a_member5472 behaves like returning response status5473 returns not_found5474 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5475 behaves like rejects helm packages access5476 for user type anonymous5477 has the correct response header5478 behaves like returning response status5479 returns unauthorized5480 when an invalid token is passed5481 behaves like returning response status5482 returns unauthorized5483 with job token5484 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success5485 behaves like process helm service index request5486 for user type guest5487 returns a valid YAML response5488 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success5489 behaves like process helm service index request5490 for user type not_a_member5491 returns a valid YAML response5492 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success5493 behaves like process helm service index request5494 for user type anonymous5495 returns a valid YAML response5496 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success5497 behaves like process helm service index request5498 for user type reporter5499 returns a valid YAML response5500 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5501 behaves like rejects helm packages access5502 for user type guest5503 behaves like returning response status5504 returns forbidden5505 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found5506 behaves like rejects helm packages access5507 for user type not_a_member5508 behaves like returning response status5509 returns not_found5510 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5511 behaves like rejects helm packages access5512 for user type anonymous5513 has the correct response header5514 behaves like returning response status5515 returns unauthorized5516 behaves like deploy token for package GET requests5517 with deploy token headers5518 valid token5519 behaves like returning response status5520 returns success5521 invalid token5522 behaves like returning response status5523 returns unauthorized5524 behaves like rejects helm access with unknown project id5525 with an unknown project5526 as anonymous5527 behaves like rejects helm packages access5528 for user type anonymous5529 has the correct response header5530 behaves like returning response status5531 returns unauthorized5532 as authenticated user5533 behaves like rejects helm packages access5534 for user type anonymous5535 behaves like returning response status5536 returns not_found5537 with an url encoded project id5538 behaves like handling helm chart index requests5539 with valid project5540 personal token5541 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success5542 behaves like process helm service index request5543 for user type guest5544 returns a valid YAML response5545 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success5546 behaves like process helm service index request5547 for user type not_a_member5548 returns a valid YAML response5549 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success5550 behaves like process helm service index request5551 for user type anonymous5552 returns a valid YAML response5553 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success5554 behaves like process helm service index request5555 for user type reporter5556 returns a valid YAML response5557 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5558 behaves like rejects helm packages access5559 for user type guest5560 behaves like returning response status5561 returns forbidden5562 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found5563 behaves like rejects helm packages access5564 for user type not_a_member5565 behaves like returning response status5566 returns not_found5567 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5568 behaves like rejects helm packages access5569 for user type anonymous5570 has the correct response header5571 behaves like returning response status5572 returns unauthorized5573 when an invalid token is passed5574 behaves like returning response status5575 returns unauthorized5576 with job token5577 visibility: :public, user_role: :guest, shared_examples_name: "process helm service index request", expected_status: :success5578 behaves like process helm service index request5579 for user type guest5580 returns a valid YAML response5581 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm service index request", expected_status: :success5582 behaves like process helm service index request5583 for user type not_a_member5584 returns a valid YAML response5585 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm service index request", expected_status: :success5586 behaves like process helm service index request5587 for user type anonymous5588 returns a valid YAML response5589 visibility: :private, user_role: :reporter, shared_examples_name: "process helm service index request", expected_status: :success5590 behaves like process helm service index request5591 for user type reporter5592 returns a valid YAML response5593 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5594 behaves like rejects helm packages access5595 for user type guest5596 behaves like returning response status5597 returns forbidden5598 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found5599 behaves like rejects helm packages access5600 for user type not_a_member5601 behaves like returning response status5602 returns not_found5603 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5604 behaves like rejects helm packages access5605 for user type anonymous5606 has the correct response header5607 behaves like returning response status5608 returns unauthorized5609 behaves like deploy token for package GET requests5610 with deploy token headers5611 valid token5612 behaves like returning response status5613 returns success5614 invalid token5615 behaves like returning response status5616 returns unauthorized5617 behaves like rejects helm access with unknown project id5618 with an unknown project5619 as anonymous5620 behaves like rejects helm packages access5621 for user type anonymous5622 has the correct response header5623 behaves like returning response status5624 returns unauthorized5625 as authenticated user5626 behaves like rejects helm packages access5627 for user type anonymous5628 behaves like returning response status5629 returns not_found5630 with dot in channel5631 behaves like returning response status5632 returns success5633 GET /api/v4/projects/:id/packages/helm/:channel/charts/:file_name.tgz5634 with valid project5635 visibility: :public, user_role: :guest, shared_examples_name: "process helm download content request", expected_status: :success5636 behaves like process helm download content request5637 for user type guest5638 returns expected status and a valid package archive5639 behaves like a package tracking event5640 creates a gitlab tracking event pull_package5641 visibility: :public, user_role: :not_a_member, shared_examples_name: "process helm download content request", expected_status: :success5642 behaves like process helm download content request5643 for user type not_a_member5644 returns expected status and a valid package archive5645 behaves like a package tracking event5646 creates a gitlab tracking event pull_package5647 visibility: :public, user_role: :anonymous, shared_examples_name: "process helm download content request", expected_status: :success5648 behaves like process helm download content request5649 for user type anonymous5650 returns expected status and a valid package archive5651 behaves like a package tracking event5652 creates a gitlab tracking event pull_package5653 visibility: :private, user_role: :reporter, shared_examples_name: "process helm download content request", expected_status: :success5654 behaves like process helm download content request5655 for user type reporter5656 returns expected status and a valid package archive5657 behaves like a package tracking event5658 creates a gitlab tracking event pull_package5659 visibility: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5660 behaves like rejects helm packages access5661 for user type guest5662 behaves like returning response status5663 returns forbidden5664 visibility: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found5665 behaves like rejects helm packages access5666 for user type not_a_member5667 behaves like returning response status5668 returns not_found5669 visibility: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5670 behaves like rejects helm packages access5671 for user type anonymous5672 has the correct response header5673 behaves like returning response status5674 returns unauthorized5675 when an invalid token is passed5676 behaves like returning response status5677 returns unauthorized5678 behaves like deploy token for package GET requests5679 with deploy token headers5680 valid token5681 behaves like returning response status5682 returns success5683 invalid token5684 behaves like returning response status5685 returns unauthorized5686 POST /api/v4/projects/:id/packages/helm/api/:channel/charts/authorize5687 with valid project5688 visibility_level: :public, user_role: :developer, shared_examples_name: "process helm workhorse authorization", expected_status: :success5689 behaves like process helm workhorse authorization5690 for user type developer5691 has the proper status and content type5692 with a request that bypassed gitlab-workhorse5693 behaves like returning response status5694 returns forbidden5695 visibility_level: :public, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5696 behaves like rejects helm packages access5697 for user type reporter5698 behaves like returning response status5699 returns forbidden5700 visibility_level: :public, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5701 behaves like rejects helm packages access5702 for user type not_a_member5703 behaves like returning response status5704 returns forbidden5705 visibility_level: :public, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5706 behaves like rejects helm packages access5707 for user type anonymous5708 has the correct response header5709 behaves like returning response status5710 returns unauthorized5711 visibility_level: :private, user_role: :developer, shared_examples_name: "process helm workhorse authorization", expected_status: :success5712 behaves like process helm workhorse authorization5713 for user type developer5714 has the proper status and content type5715 with a request that bypassed gitlab-workhorse5716 behaves like returning response status5717 returns forbidden5718 visibility_level: :private, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5719 behaves like rejects helm packages access5720 for user type reporter5721 behaves like returning response status5722 returns forbidden5723 visibility_level: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found5724 behaves like rejects helm packages access5725 for user type not_a_member5726 behaves like returning response status5727 returns not_found5728 visibility_level: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5729 behaves like rejects helm packages access5730 for user type anonymous5731 has the correct response header5732 behaves like returning response status5733 returns unauthorized5734 when an invalid token is passed5735 behaves like returning response status5736 returns unauthorized5737 behaves like deploy token for package uploads5738 with deploy token headers5739 valid token5740 behaves like returning response status5741 returns success5742 invalid token5743 behaves like returning response status5744 returns unauthorized5745 behaves like job token for package uploads5746 with job token headers5747 valid token5748 behaves like returning response status5749 returns success5750 invalid token5751 behaves like returning response status5752 returns unauthorized5753 invalid user5754 behaves like returning response status5755 returns success5756 behaves like rejects helm access with unknown project id5757 with an unknown project5758 as anonymous5759 behaves like rejects helm packages access5760 for user type anonymous5761 has the correct response header5762 behaves like returning response status5763 returns unauthorized5764 as authenticated user5765 behaves like rejects helm packages access5766 for user type anonymous5767 behaves like returning response status5768 returns not_found5769 POST /api/v4/projects/:id/packages/helm/api/:channel/charts5770 with valid project5771 visibility_level: :public, user_role: :developer, shared_examples_name: "process helm upload", expected_status: :created5772 behaves like process helm upload5773 for user type developer5774 with object storage disabled5775 without a file from workhorse5776 behaves like returning response status5777 returns bad_request5778 with correct params5779 behaves like package workhorse uploads5780 without a workhorse header5781 logs an error5782 behaves like returning response status5783 returns forbidden5784 behaves like creates helm package files5785 creates package files5786 behaves like a package tracking event5787 creates a gitlab tracking event push_package5788 with object storage enabled5789 and direct upload enabled5790 behaves like creates helm package files5791 creates package files5792 with invalid remote_id: 1231235793 behaves like returning response status5794 returns forbidden5795 with invalid remote_id: ../../1231235796 behaves like returning response status5797 returns forbidden5798 and direct upload disabled5799 and background upload disabled5800 behaves like creates helm package files5801 creates package files5802 and background upload enabled5803 behaves like creates helm package files5804 creates package files5805 behaves like background upload schedules a file migration5806 background upload enabled5807 schedules migration of file to object storage5808 visibility_level: :public, user_role: :reporter, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5809 behaves like rejects helm packages access5810 for user type reporter5811 behaves like returning response status5812 returns forbidden5813 visibility_level: :public, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5814 behaves like rejects helm packages access5815 for user type not_a_member5816 behaves like returning response status5817 returns forbidden5818 visibility_level: :public, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5819 behaves like rejects helm packages access5820 for user type anonymous5821 has the correct response header5822 behaves like returning response status5823 returns unauthorized5824 visibility_level: :private, user_role: :developer, shared_examples_name: "process helm upload", expected_status: :created5825 behaves like process helm upload5826 for user type developer5827 with object storage disabled5828 without a file from workhorse5829 behaves like returning response status5830 returns bad_request5831 with correct params5832 behaves like package workhorse uploads5833 without a workhorse header5834 logs an error5835 behaves like returning response status5836 returns forbidden5837 behaves like creates helm package files5838 creates package files5839 behaves like a package tracking event5840 creates a gitlab tracking event push_package5841 with object storage enabled5842 and direct upload enabled5843 behaves like creates helm package files5844 creates package files5845 with invalid remote_id: 1231235846 behaves like returning response status5847 returns forbidden5848 with invalid remote_id: ../../1231235849 behaves like returning response status5850 returns forbidden5851 and direct upload disabled5852 and background upload disabled5853 behaves like creates helm package files5854 creates package files5855 and background upload enabled5856 behaves like creates helm package files5857 creates package files5858 behaves like background upload schedules a file migration5859 background upload enabled5860 schedules migration of file to object storage5861 visibility_level: :private, user_role: :guest, shared_examples_name: "rejects helm packages access", expected_status: :forbidden5862 behaves like rejects helm packages access5863 for user type guest5864 behaves like returning response status5865 returns forbidden5866 visibility_level: :private, user_role: :not_a_member, shared_examples_name: "rejects helm packages access", expected_status: :not_found5867 behaves like rejects helm packages access5868 for user type not_a_member5869 behaves like returning response status5870 returns not_found5871 visibility_level: :private, user_role: :anonymous, shared_examples_name: "rejects helm packages access", expected_status: :unauthorized5872 behaves like rejects helm packages access5873 for user type anonymous5874 has the correct response header5875 behaves like returning response status5876 returns unauthorized5877 when an invalid token is passed5878 behaves like returning response status5879 returns unauthorized5880 behaves like deploy token for package uploads5881 with deploy token headers5882 valid token5883 behaves like returning response status5884 returns success5885 invalid token5886 behaves like returning response status5887 returns unauthorized5888 behaves like job token for package uploads5889 with job token headers5890 valid token5891 creates a package with build info5892 behaves like returning response status5893 returns success5894 invalid token5895 behaves like returning response status5896 returns unauthorized5897 invalid user5898 behaves like returning response status5899 returns success5900 behaves like rejects helm access with unknown project id5901 with an unknown project5902 as anonymous5903 behaves like rejects helm packages access5904 for user type anonymous5905 has the correct response header5906 behaves like returning response status5907 returns unauthorized5908 as authenticated user5909 behaves like rejects helm packages access5910 for user type anonymous5911 behaves like returning response status5912 returns not_found5913 file size above maximum limit5914 behaves like returning response status5915 returns bad_request5916API::Ci::Jobs5917 GET /job5918 when token is valid but not CI_JOB_TOKEN5919 returns not found5920 with job token authentication header5921 returns specific job data5922 behaves like returns common job data5923 returns common job data5924 behaves like returns common pipeline data5925 returns common pipeline data5926 with job token authentication params5927 returns specific job data5928 behaves like returns common job data5929 returns common job data5930 behaves like returns common pipeline data5931 returns common pipeline data5932 with non running job5933 behaves like returns unauthorized5934 returns unauthorized5935 with basic auth header5936 does not return a job5937 without authentication5938 behaves like returns unauthorized5939 returns unauthorized5940 GET /job/allowed_agents5941 when token is valid and user is authorized5942 behaves like valid allowed_agents request5943 returns agent info5944 when deployment5945 includes environment slug5946 when passing the token as params5947 behaves like valid allowed_agents request5948 returns agent info5949 when user is anonymous5950 returns unauthorized5951 when token is invalid because job has finished5952 returns unauthorized5953 when token is invalid5954 returns unauthorized5955 when token is valid but not CI_JOB_TOKEN5956 returns not found5957 GET /projects/:id/jobs5958 authorized user5959 returns project jobs5960 returns correct values5961 returns pipeline data5962 avoids N+1 queries5963 without artifacts and trace5964 returns no artifacts nor trace data5965 behaves like a job with artifacts and trace5966 with artifacts and trace5967 returns artifacts and trace data5968 filter project with one scope element5969 is expected to be a kind of Array5970 filter project with array of scope elements5971 is expected to be a kind of Array5972 respond 400 when scope contains invalid state5973 is expected to respond with numeric status code bad_request5974 unauthorized user5975 when user is not logged in5976 does not return project jobs5977 when user is guest5978 does not return project jobs5979 GET /projects/:id/jobs/:job_id5980 authorized user5981 returns specific job data5982 behaves like returns common job data5983 returns common job data5984 behaves like a job with artifacts and trace5985 with artifacts and trace5986 returns artifacts and trace data5987 behaves like returns common pipeline data5988 returns common pipeline data5989 unauthorized user5990 does not return specific job data5991 when job succeeded5992 does not return failure_reason5993 when job failed5994 returns failure_reason5995 when trace artifact record exists with no stored file5996 returns no artifacts nor trace data5997 GET /projects/:id/jobs/:job_id/trace5998 authorized user5999 when trace is in ObjectStorage6000 returns specific job trace6001 when trace is artifact6002 returns specific job trace6003 when live trace and uploadless trace artifact6004 returns specific job trace6005 when trace is live6006 returns specific job trace6007 when no trace6008 returns empty trace6009 when trace artifact record exists with no stored file6010 returns empty trace6011 unauthorized user6012 does not return specific job trace6013 when ci_debug_trace is set to true6014 public_builds: true, user_project_role: "developer", expected_status: :ok6015 renders trace to authorized users6016 public_builds: true, user_project_role: "guest", expected_status: :forbidden6017 renders trace to authorized users6018 public_builds: false, user_project_role: "developer", expected_status: :ok6019 renders trace to authorized users6020 public_builds: false, user_project_role: "guest", expected_status: :forbidden6021 renders trace to authorized users6022 POST /projects/:id/jobs/:job_id/cancel6023 authorized user6024 user with :update_build persmission6025 cancels running or pending job6026 user without :update_build permission6027 does not cancel job6028 unauthorized user6029 does not cancel job6030 POST /projects/:id/jobs/:job_id/retry6031 authorized user6032 user with :update_build permission6033 retries non-running job6034 when a build is not retryable6035 responds with unprocessable entity6036 user without :update_build permission6037 does not retry job6038 unauthorized user6039 does not retry job6040 POST /projects/:id/jobs/:job_id/erase6041 job is erasable6042 updates job6043 behaves like erases job6044 erases job content6045 when job has an unarchived trace artifact6046 behaves like erases job6047 erases job content6048 job is not erasable6049 responds with forbidden6050 when a developer erases a build6051 when the build was created by the developer6052 is expected to respond with numeric status code created6053 when the build was created by the other6054 is expected to respond with numeric status code forbidden6055 POST /projects/:id/jobs/:job_id/play6056 on a playable job6057 when user is authorized to trigger a manual action6058 that is a bridge6059 plays the job6060 that is a build6061 plays the job6062 when the user provides valid custom variables6063 applies the variables to the job6064 when the user provides a variable without a key6065 reports that the key is missing6066 when the user provides a variable without a value6067 reports that the value is missing6068 when the user provides both valid and invalid variables6069 reports the invalid variables and does not run the job6070 when user is not authorized to trigger a manual action6071 when user does not have access to the project6072 does not trigger a manual action6073 when user is not allowed to trigger the manual action6074 does not trigger a manual action6075 on a non-playable job6076 returns a status code 400, Bad Request6077Emails::Profile6078 for new users, the email6079 contains the password text6080 includes a link for user to set password6081 explains the reset link expiration6082 behaves like an email sent from GitLab6083 has the characteristics of an email sent from GitLab6084 behaves like a new user email6085 is sent to the new user with the correct subject and body6086 behaves like it should not have Gmail Actions links6087 is expected not to have body including "ViewAction"6088 behaves like a user cannot unsubscribe through footer link6089 does not have a List-Unsubscribe header or a body link6090 for users that signed up, the email6091 does not contain the new user's password6092 behaves like an email sent from GitLab6093 has the characteristics of an email sent from GitLab6094 behaves like a new user email6095 is sent to the new user with the correct subject and body6096 behaves like it should not have Gmail Actions links6097 is expected not to have body including "ViewAction"6098 behaves like a user cannot unsubscribe through footer link6099 does not have a List-Unsubscribe header or a body link6100 user added ssh key6101 is sent to the new user6102 has the correct subject6103 contains the new ssh key title6104 includes a link to ssh keys page6105 behaves like an email sent from GitLab6106 has the characteristics of an email sent from GitLab6107 behaves like it should not have Gmail Actions links6108 is expected not to have body including "ViewAction"6109 behaves like a user cannot unsubscribe through footer link6110 does not have a List-Unsubscribe header or a body link6111 with SSH key that does not exist6112 is expected not to raise Exception6113 user added gpg key6114 is sent to the new user6115 has the correct subject6116 contains the new gpg key title6117 includes a link to gpg keys page6118 behaves like an email sent from GitLab6119 has the characteristics of an email sent from GitLab6120 behaves like it should not have Gmail Actions links6121 is expected not to have body including "ViewAction"6122 behaves like a user cannot unsubscribe through footer link6123 does not have a List-Unsubscribe header or a body link6124 with GPG key that does not exist6125 is expected not to raise Exception6126 user personal access token has been created6127 when valid6128 is sent to the user6129 has the correct subject6130 provides the names of the token6131 includes a link to personal access tokens page6132 includes the email reason6133 behaves like an email sent from GitLab6134 has the characteristics of an email sent from GitLab6135 behaves like it should not have Gmail Actions links6136 is expected not to have body including "ViewAction"6137 behaves like a user cannot unsubscribe through footer link6138 does not have a List-Unsubscribe header or a body link6139 user personal access token is about to expire6140 is sent to the user6141 has the correct subject6142 mentions the access tokens will expire6143 provides the names of expiring tokens6144 includes a link to personal access tokens page6145 includes the email reason6146 behaves like an email sent from GitLab6147 has the characteristics of an email sent from GitLab6148 behaves like it should not have Gmail Actions links6149 is expected not to have body including "ViewAction"6150 behaves like a user cannot unsubscribe through footer link6151 does not have a List-Unsubscribe header or a body link6152 with User does not exist6153 is expected not to raise Exception6154 user personal access token has expired6155 when valid6156 is sent to the user6157 has the correct subject6158 mentions the access token has expired6159 includes a link to personal access tokens page6160 includes the email reason6161 behaves like an email sent from GitLab6162 has the characteristics of an email sent from GitLab6163 behaves like it should not have Gmail Actions links6164 is expected not to have body including "ViewAction"6165 behaves like a user cannot unsubscribe through footer link6166 does not have a List-Unsubscribe header or a body link6167 when invalid6168 when user does not exist6169 is expected not to change `ActionMailer::Base.deliveries.count`6170 when user is not active6171 is expected not to change `ActionMailer::Base.deliveries.count`6172 SSH key notification6173 notification email for expired ssh key6174 when valid6175 behaves like an email sent from GitLab6176 has the characteristics of an email sent from GitLab6177 behaves like it should not have Gmail Actions links6178 is expected not to have body including "ViewAction"6179 behaves like a user cannot unsubscribe through footer link6180 does not have a List-Unsubscribe header or a body link6181 behaves like is sent to the user6182 is expected to be delivered to ["user2498@example.org"]6183 behaves like includes a link to ssh key page6184 is expected to have body matching /http:\/\/localhost\/-\/profile\/keys/6185 behaves like includes the email reason6186 is expected to have body matching /You're receiving this email because of your account on localhost/6187 behaves like has the correct subject6188 is expected to have subject matching /Your SSH key has expired/6189 behaves like has the correct body text6190 is expected to have body matching /SSH keys with the following fingerprints have expired/6191 when invalid6192 when user does not exist6193 behaves like does not send email6194 is expected not to change `ActionMailer::Base.deliveries.count`6195 when user is not active6196 behaves like does not send email6197 is expected not to change `ActionMailer::Base.deliveries.count`6198 notification email for expiring ssh key6199 when valid6200 behaves like an email sent from GitLab6201 has the characteristics of an email sent from GitLab6202 behaves like it should not have Gmail Actions links6203 is expected not to have body including "ViewAction"6204 behaves like a user cannot unsubscribe through footer link6205 does not have a List-Unsubscribe header or a body link6206 behaves like is sent to the user6207 is expected to be delivered to ["user2498@example.org"]6208 behaves like includes a link to ssh key page6209 is expected to have body matching /http:\/\/localhost\/-\/profile\/keys/6210 behaves like includes the email reason6211 is expected to have body matching /You're receiving this email because of your account on localhost/6212 behaves like has the correct subject6213 is expected to have subject matching /Your SSH key is expiring soon/6214 behaves like has the correct body text6215 is expected to have body matching /SSH keys with the following fingerprints are scheduled to expire soon/6216 when invalid6217 when user does not exist6218 behaves like does not send email6219 is expected not to change `ActionMailer::Base.deliveries.count`6220 when user is not active6221 behaves like does not send email6222 is expected not to change `ActionMailer::Base.deliveries.count`6223 user unknown sign in email6224 is sent to the user6225 has the correct subject6226 mentions the new sign-in IP6227 mentioned the time6228 includes a link to the change password documentation6229 mentions two factor authentication when two factor is not enabled6230 includes a link to two-factor authentication documentation6231 behaves like an email sent from GitLab6232 has the characteristics of an email sent from GitLab6233 behaves like it should not have Gmail Actions links6234 is expected not to have body including "ViewAction"6235 behaves like a user cannot unsubscribe through footer link6236 does not have a List-Unsubscribe header or a body link6237 when two factor authentication is enabled6238 does not mention two factor authentication6239 disabled two-factor authentication email6240 is sent to the user6241 has the correct subject6242 includes a link to two-factor authentication settings page6243 behaves like an email sent from GitLab6244 has the characteristics of an email sent from GitLab6245 behaves like it should not have Gmail Actions links6246 is expected not to have body including "ViewAction"6247 behaves like a user cannot unsubscribe through footer link6248 does not have a List-Unsubscribe header or a body link6249 added a new email address6250 is sent to the user6251 has the correct subject6252 includes a link to the email address page6253 behaves like an email sent from GitLab6254 has the characteristics of an email sent from GitLab6255 behaves like it should not have Gmail Actions links6256 is expected not to have body including "ViewAction"6257 behaves like a user cannot unsubscribe through footer link6258 does not have a List-Unsubscribe header or a body link6259Projects::MergeRequests::CreationsController6260 GET new6261 merge request that removes a submodule6262 renders new merge request widget template6263 merge request with some commits6264 shows total commits6265 with artificial limits6266 limits total commits6267 GET diffs6268 when merge request cannot be created6269 does not assign diffs var6270 GET pipelines6271 renders JSON including serialized pipelines6272 GET diff_for_path6273 when both branches are in the same project6274 disables diff notes6275 only renders the diffs for the path given6276 when the source branch is in a different project to the target6277 when the path exists in the diff6278 disables diff notes6279 only renders the diffs for the path given6280 when the path does not exist in the diff6281 returns a 4046282 GET #branch_to6283 fetches the commit if a user has access6284 does not load the commit when the user cannot create_merge_request_in6285 does not load the commit when the user cannot read the project6286 no target_project_id provided6287 selects itself as a target project6288 project is a fork6289 calls to project defaults to selects a correct target project6290 POST create6291 creates merge request6292 when the merge request is not created from the web ide6293 counter is not increased6294 when the merge request is created from the web ide6295 counter is increased6296Internal Project Pages Access6297 Project should be internal6298 #internal?6299 is expected to be truthy6300 GET /projects/:id/pages_access6301 access depends on the level6302 pages_access_level: 0, with_user: "admin", expected_result: 4036303 correct return value6304 pages_access_level: 0, with_user: "owner", expected_result: 4036305 correct return value6306 pages_access_level: 0, with_user: "master", expected_result: 4036307 correct return value6308 pages_access_level: 0, with_user: "developer", expected_result: 4036309 correct return value6310 pages_access_level: 0, with_user: "reporter", expected_result: 4036311 correct return value6312 pages_access_level: 0, with_user: "guest", expected_result: 4036313 correct return value6314 pages_access_level: 0, with_user: "user", expected_result: 4036315 correct return value6316 pages_access_level: 0, with_user: nil, expected_result: 4046317 correct return value6318 pages_access_level: 30, with_user: "admin", expected_result: 2006319 correct return value6320 pages_access_level: 30, with_user: "owner", expected_result: 2006321 correct return value6322 pages_access_level: 30, with_user: "master", expected_result: 2006323 correct return value6324 pages_access_level: 30, with_user: "developer", expected_result: 2006325 correct return value6326 pages_access_level: 30, with_user: "reporter", expected_result: 2006327 correct return value6328 pages_access_level: 30, with_user: "guest", expected_result: 2006329 correct return value6330 pages_access_level: 30, with_user: "user", expected_result: 2006331 correct return value6332 pages_access_level: 30, with_user: nil, expected_result: 4046333 correct return value6334 pages_access_level: 20, with_user: "admin", expected_result: 2006335 correct return value6336 pages_access_level: 20, with_user: "owner", expected_result: 2006337 correct return value6338 pages_access_level: 20, with_user: "master", expected_result: 2006339 correct return value6340 pages_access_level: 20, with_user: "developer", expected_result: 2006341 correct return value6342 pages_access_level: 20, with_user: "reporter", expected_result: 2006343 correct return value6344 pages_access_level: 20, with_user: "guest", expected_result: 2006345 correct return value6346 pages_access_level: 20, with_user: "user", expected_result: 2006347 correct return value6348 pages_access_level: 20, with_user: nil, expected_result: 4046349 correct return value6350 pages_access_level: 10, with_user: "admin", expected_result: 2006351 correct return value6352 pages_access_level: 10, with_user: "owner", expected_result: 2006353 correct return value6354 pages_access_level: 10, with_user: "master", expected_result: 2006355 correct return value6356 pages_access_level: 10, with_user: "developer", expected_result: 2006357 correct return value6358 pages_access_level: 10, with_user: "reporter", expected_result: 2006359 correct return value6360 pages_access_level: 10, with_user: "guest", expected_result: 2006361 correct return value6362 pages_access_level: 10, with_user: "user", expected_result: 4036363 correct return value6364 pages_access_level: 10, with_user: nil, expected_result: 4046365 correct return value6366API::Settings Settings6367 GET /application/settings6368 returns application settings6369 PUT /application/settings6370 supports legacy performance_bar_allowed_group_id6371 supports legacy performance_bar_enabled6372 supports legacy allow_local_requests_from_hooks_and_services6373 supports legacy asset_proxy_whitelist6374 supports the deprecated `throttle_unauthenticated_*` attributes6375 prefers the new `throttle_unauthenticated_web_*` attributes6376 disables ability to switch to legacy storage6377 supports legacy admin_notification_email6378 supports setting require_admin_approval_after_user_signup6379 custom repository storage type set in the config6380 coerces repository_storages_weighted to an int6381 updates application settings6382 repository_storages_weighted value is outside a 0-100 range6383 returns a :bad_request for -16384 returns a :bad_request for 1016385 SSH key restriction settings6386 allows updating the settings6387 does not allow DSA keys6388 does not allow short RSA key values6389 does not allow unrestricted key lengths6390 external policy classification settings6391 includes the attributes in the API6392 allows updating the settings6393 snowplow tracking settings6394 includes the attributes in the API6395 allows updating the settings6396 missing snowplow_collector_hostname value when snowplow_enabled is true6397 returns a blank parameter error message6398 handles validation errors6399 EKS integration settings6400 includes attributes in the API6401 does not include sensitive attributes in the API6402 allows updating the settings6403 EKS integration is enabled but params are blank6404 does not update the settings6405 missing plantuml_url value when plantuml_enabled is true6406 returns a blank parameter error message6407 asset_proxy settings6408 updates application settings6409 allows a string for asset_proxy_allowlist6410 domain_denylist settings6411 rejects domain_denylist_enabled when domain_denylist is empty6412 allows array for domain_denylist6413 allows a string for domain_denylist6414 missing sourcegraph_url value when sourcegraph_enabled is true6415 returns a blank parameter error message6416 missing spam_check_endpoint_url value when spam_check_endpoint_enabled is true6417 returns a blank parameter error message6418 overly long spam_check_api_key6419 fails to update the settings with too long spam_check_api_key6420 missing mailgun_signing_key value when mailgun_events_enabled is true6421 returns a blank parameter error message6422 personal access token prefix settings6423 handles validation errors6424 fails to update the settings with too long prefix6425 fails to update the settings with invalid characters in the prefix6426 whats_new_variant setting6427 updates setting6428 fails to update setting with invalid value6429 sidekiq job limit settings6430 updates the settings6431 Sentry settings6432 includes the attributes in the API6433 allows updating the settings6434 missing sentry_dsn value when sentry_enabled is true6435 returns a blank parameter error message6436 runner token expiration_intervals6437 updates the settings6438 updates the settings with empty values6439API::ProjectImport6440 POST /projects/import6441 executes a limited number of queries6442 schedules an import using a namespace6443 schedules an import using the namespace path6444 schedules an import at the user namespace level6445 does not schedule an import for a namespace that does not exist6446 does not schedule an import if the user has no permission to the namespace6447 stores params that can be overridden6448 does not store params that are not allowed6449 behaves like requires authentication6450 returns 4016451 when a name is explicitly set6452 schedules an import using a namespace and a different name6453 schedules an import using the namespace path and a different name6454 sets name correctly6455 sets name correctly with an overwrite6456 schedules an import using the path and name explicitly set to nil6457 if user uploads no valid file6458 does not schedule an import if the user uploads no valid file6459 when target path already exists in namespace6460 does not schedule an import6461 when param overwrite is true6462 schedules an import6463 when request exceeds the rate limit6464 prevents users from importing projects6465 when using remote storage6466 schedules an import6467 POST /projects/remote-import6468 behaves like requires authentication6469 returns 4016470 when the response is successful6471 schedules the import successfully6472 when the service returns an error6473 fails to schedule the import6474 POST /projects/remote-import-s36475 returns NOT FOUND when the feature is disabled6476 behaves like requires authentication6477 returns 4016478 when the feature flag is enabled6479 when the response is successful6480 schedules the import successfully6481 when the service returns an error6482 fails to schedule the import6483 GET /projects/:id/import6484 public project accessible for an unauthenticated user6485 returns the import status6486 returns the import status and the error if failed6487 POST /projects/import/authorize6488 authorizes importing project with workhorse header6489 rejects requests that bypassed gitlab-workhorse6490 behaves like requires authentication6491 returns 4016492 when using remote storage6493 when direct upload is enabled6494 responds with status 200, location of file remote store and object details6495 when direct upload is disabled6496 handles as a local file6497getting a package list for a group6498 behaves like group and project packages query6499 when user has access to the resource6500 returns packages successfully6501 deals with metadata6502 returns the count of the packages6503 behaves like a working graphql query6504 returns a successful response6505 when the user does not have access to the resource6506 returns nil6507 behaves like a working graphql query6508 returns a successful response6509 when the user is not authenticated6510 returns nil6511 behaves like a working graphql query6512 returns a successful response6513 sorting and pagination6514 CREATED_ASC6515 behaves like sorted paginated query6516 behaves like requires variables6517 shared example requires variables to be set6519 when sorting6520 sorts correctly6521 when paginating6522 paginates correctly6523 NAME_ASC6524 behaves like sorted paginated query6525 behaves like requires variables6526 shared example requires variables to be set6528 when sorting6529 sorts correctly6530 when paginating6531 paginates correctly6532 VERSION_ASC6533 behaves like sorted paginated query6534 behaves like requires variables6535 shared example requires variables to be set6537 when sorting6538 sorts correctly6539 when paginating6540 paginates correctly6541 TYPE_ASC6542 behaves like sorted paginated query6543 behaves like requires variables6544 shared example requires variables to be set6546 when sorting6547 sorts correctly6548 when paginating6549 paginates correctly6550 CREATED_DESC6551 behaves like sorted paginated query6552 behaves like requires variables6553 shared example requires variables to be set6555 when sorting6556 sorts correctly6557 when paginating6558 paginates correctly6559 NAME_DESC6560 behaves like sorted paginated query6561 behaves like requires variables6562 shared example requires variables to be set6564 when sorting6565 sorts correctly6566 when paginating6567 paginates correctly6568 VERSION_DESC6569 behaves like sorted paginated query6570 behaves like requires variables6571 shared example requires variables to be set6573 when sorting6574 sorts correctly6575 when paginating6576 paginates correctly6577 TYPE_DESC6578 behaves like sorted paginated query6579 behaves like requires variables6580 shared example requires variables to be set6582 when sorting6583 sorts correctly6584 when paginating6585 paginates correctly6586 with an invalid sort6587 throws an error6588 filtering6589 package_name6590 is expected to contain exactly {"name"=>"bab"}6591 package_type6592 is expected to contain exactly {"name"=>"dab"}6593 status6594 is expected to contain exactly {"name"=>"my/company/app/my-app"}6595 include_versionless6596 is expected to include {"name" => "my/company/app/my-app"}6597 with a batched query6598 returns an error for the second group and data for the first6599Projects::SnippetsController6600 GET #index6601 fetches snippet counts via the snippet count service6602 behaves like paginated collection6603DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6604 renders a page number that is not ouf of range6605DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6606 redirects to last_page if page number is larger than number of pages6607DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6608 does not redirect to external sites when provided a host field6609 behaves like snippets sort order6610 when no sort param is provided6611 calls SnippetsFinder with updated_at sort option6612 when sort param is provided6613 calls SnippetsFinder with the given sort param6614 behaves like snippets views6615 when rendered6616DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6617DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6618DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6619 avoids N+1 database queries6620 when the project snippet is private6621 when anonymous6622DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6623 does not include the private snippet6624 when signed in as the author6625DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6626 renders the snippet6627 when signed in as a project member6628DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6629 renders the snippet6630 POST #mark_as_spam6631 updates the snippet6632 GET #show6633 when the project snippet is private6634 when anonymous6635 responds with status 4046636 when signed in as the author6637 behaves like successful response6638 renders the snippet6639 when signed in as a project member6640 behaves like successful response6641 renders the snippet6642 when the project snippet does not exist6643 when anonymous6644 responds with status 4046645 when signed in6646 responds with status 4046647 when the project snippet is public6648 when attempting to access from a different project route6649 responds with status 4046650 GET #raw6651 when the project snippet is private6652 when anonymous6653 responds with status 4046654 when signed in as the author6655 behaves like successful response6656 renders the snippet6657 when signed in as a project member6658 behaves like successful response6659 renders the snippet6660 when the project snippet does not exist6661 when anonymous6662 responds with status 4046663 when signed in6664 responds with status 4046665 when the project snippet is public6666 when attempting to access from a different project route6667 responds with status 4046668 GET #show for embeddable content6669 when snippet is private6670 responds with status 4046671 when snippet is public6672 renders the blob from the repository6673 does not show the blobs expanded by default6674 when param expanded is set6675 shows all blobs expanded6676 when the project is private6677 when snippet is public6678 responds with status 4046679 GET #raw6680 when repository is empty6681 CRLF line ending6682 returns LF line endings by default6683 when line_ending parameter present6684 does not convert line endings6685 when repository is not empty6686 sends the blob6687 behaves like project cache control headers6688 when project is public6689 returns cache_control public header to true6690 when project is private6691 returns cache_control public header to true6692 when project is internal6693 returns cache_control public header to true6694 behaves like content disposition headers6695 sets content disposition to inline6696 when inline param is false6697 sets content disposition to attachment6698getting merge request information nested in a project6699Skipping ./spec/requests/api/graphql/project/merge_request_spec.rb[1:2] 'getting merge request information nested in a project contains merge request information' because it's flaky.6700 contains merge request information (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)6701Skipping ./spec/requests/api/graphql/project/merge_request_spec.rb[1:3] 'getting merge request information nested in a project includes a web_url' because it's flaky.6702 includes a web_url (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)6703 includes correct mergedAt value when merged6704 includes nil mergedAt value when not merged6705 behaves like a working graphql query6706DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6707DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6708DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6709DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6710DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6711DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.6712 returns a successful response6713 when selecting author6714 includes author6715 when the merge_request has reviewers6716 includes reviewers6717 when the merge_request has committers6718 includes committers6719 diffStats6720 includes diff stats6721 when requesting a specific diff stat6722 includes only the requested stats6723 permissions on the merge request6724 includes the permissions for the current user on a public project6725 when the user does not have access to the merge request6726 returns nil6727 when there are pipelines6728 has a head pipeline6729 has pipeline connections6730 when limiting the number of results6731 returns the correct number of results6732 when merge request is cannot_be_merged_rechecking6733 returns checking6734 when the notes have been preloaded (by participants)6735 does not error6736 behaves like when requesting information about MR interactions6737 when the user is not assigned6738 returns null data6739 when the user is a reviewer, but has not reviewed6740 returns falsey values6741 when the user has interacted6742 returns appropriate data6743 scalability6744 when selecting only known scalable fields6745 behaves like scalable query for interaction fields6746 does not suffer from N+16747 when selecting all fields6748 behaves like scalable query for interaction fields6749 does not suffer from N+1 (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)6750 behaves like when requesting information about MR interactions6751 when the user is not assigned6752 returns null data6753 when the user is a reviewer, but has not reviewed6754 returns falsey values6755 when the user has interacted6756 returns appropriate data6757 scalability6758 when selecting only known scalable fields6759 behaves like scalable query for interaction fields6760 does not suffer from N+16761 when selecting all fields6762 behaves like scalable query for interaction fields6763 does not suffer from N+1 (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)6764Projects::LabelsController6765 GET #index6766 @prioritized_labels6767 does not include labels without priority6768 is sorted by priority, then label title6769 @labels6770 is sorted by label title6771 does not include labels with priority6772 does not include group labels when project does not belong to a group6773 with subgroups6774 returns ancestor group labels6775 with views rendered6776 avoids N+1 queries6777 POST #generate6778 personal project6779 creates labels6780 project belonging to a group6781 creates labels6782 POST #toggle_subscription6783 allows user to toggle subscription on project labels6784 allows user to toggle subscription on group labels6785 POST #promote6786 not group reporters6787 denies access6788 group reporter6789 gives access6790 promotes the label6791 renders label name without parsing it as HTML6792 service raising InvalidRecord6793 returns to label list6794 #ensure_canonical_path6795 for a GET request6796 when requesting the canonical path6797 non-show path6798 with exactly matching casing6799 does not redirect6800 with different casing6801 redirects to the correct casing6802 when requesting a redirected path6803 redirects to the canonical path6804 with an AJAX request6805 redirects to the canonical path but does not set flash message6806 with JSON format6807 redirects to the canonical path but does not set flash message6808 for a non-GET request6809 when requesting the canonical path with different casing6810 does not 4046811 does not redirect to the correct casing6812 when requesting a redirected path6813 returns not found6814API::Environments6815 GET /projects/:id/environments6816 as member of the project6817 returns project environments6818 when the user can read pod logs6819 with successful deployment on cluster6820 returns environment with enable_advanced_logs_querying and logs_api_path6821 when elastic stack is available6822 returns environment with enable_advanced_logs_querying and logs_api_path6823 when elastic stack is not available6824 returns environment with enable_advanced_logs_querying logs_api_path6825 when the user cannot read pod logs6826 does not contain enable_advanced_logs_querying6827 when filtering6828 returns environment by name6829 returns no environment by non-existent name6830 returns environments by name_like6831 returns no environment by non-existent name_like6832 as non member6833 returns a 404 status code6834 POST /projects/:id/environments6835 as a member6836 creates a environment with valid params6837 requires name to be passed6838 returns a 400 if environment already exists6839 returns a 400 if slug is specified6840 a non member6841 rejects the request6842 returns a 400 when the required params are missing6843 PUT /projects/:id/environments/:environment_id6844 returns a 200 if name and external_url are changed6845 won't allow slug to be changed6846 won't update the external_url if only the name is passed6847 returns a 404 if the environment does not exist6848 DELETE /projects/:id/environments/:environment_id6849 as a maintainer6850 rejects the requests in environment isn't stopped6851 returns a 204 for stopped environment6852 returns a 404 for non existing id6853 behaves like 412 response6854 for a modified ressource6855 returns 412 with a JSON error6856 for an unmodified ressource6857 returns 204 with an empty body6858 a non member6859 rejects the request6860 POST /projects/:id/environments/:environment_id/stop6861 as a maintainer6862 returns a 404 for non existing id6863 with a stoppable environment6864 returns a 2006865 actually stops the environment6866 a non member6867 rejects the request6868 GET /projects/:id/environments/:environment_id6869 as member of the project6870 returns project environments6871 as non member6872 returns a 404 status code6873 DELETE /projects/:id/environments/review_apps6874 as a maintainer6875 behaves like delete stopped review environments6876 deletes the old stopped review apps6877 as a developer6878 behaves like delete stopped review environments6879 deletes the old stopped review apps6880 as a reporter6881 rejects the request6882 as a non member6883 rejects the request6884Dashboard::ProjectsController6885 #index6886 user logged in6887 orders the projects by name by default6888 external authorization6889 works when the external authorization service is enabled6890 project sorting6891 behaves like set sort order from user preference6892 #set_sort_order_from_user_preference6893 when database is in read-only mode6894 does not update user preference6895 when database is not in read-only mode6896 updates user preference6897 with search and sort parameters6898 behaves like search and sort parameters6899 returns a single project with no ambiguous column errors6900 behaves like search and sort parameters6901 returns a single project with no ambiguous column errors6902 behaves like search and sort parameters6903 returns a single project with no ambiguous column errors6904 behaves like search and sort parameters6905 returns a single project with no ambiguous column errors6906 behaves like search and sort parameters6907 returns a single project with no ambiguous column errors6908 with deleted project6909 does not display deleted project6910 json requests6911 GET /projects.json6912 is expected to respond with 2006913 GET /starred.json6914 returns success6915 does not include projects aimed for deletion6916 pagination6917 paginates the records6918 atom requests6919 #index6920 project pagination6921 does not paginate projects, even if normally restricted by pagination6922 rendering6923 renders all kinds of event without error6924 with deleted project6925 does not display deleted project6926Query.project(fullPath).pipelines6927 sha6928 returns all formats of the SHA6929 duration fields6930 includes the duration fields6931 .stages6932 is present if the user has guest access6933 is present if the user has reporter access6934 .groups6935 is present if the user has guest access6936 is present if the user has reporter access6937 .jobs6938 limits the results6939 fetches all results6940 fetches the jobs without an N+16941 .job_artifacts6942 returns the job_artifacts of a pipeline6943 avoids N+1 queries6944 behaves like a working graphql query6945 returns a successful response6946 warningMessages6947 returns pipeline warnings6948 avoids N+1 queries6949 .jobs(securityReportTypes)6950 fetches the jobs matching the report type filter6951 upstream6952 returns the upstream pipeline of a pipeline6953 behaves like a working graphql query6954 returns a successful response6955 when fetching the upstream pipeline from the pipeline6956 avoids N+1 queries6957 downstream6958 returns the downstream pipelines of a pipeline6959 behaves like a working graphql query6960 returns a successful response6961 when fetching the downstream pipelines from the pipeline6962 avoids N+1 queries6963 ref_path6964 avoids N+1 queries6965 filtering6966 when filtered by updated_at6967 accepts filter params6968 behaves like a working graphql query6969 returns a successful response6970API::ErrorTracking::ProjectSettings6971 PATCH /projects/:id/error_tracking/settings6972 when authenticated as maintainer6973 patch settings6974 updates enabled flag6975 integrated_error_tracking feature enabled6976 behaves like returns project settings6977 returns correct project settings6978 integrated_error_tracking feature disabled6979 behaves like returns project settings with false for integrated6980 is expected to eq {"active"=>false, "api_url"=>"https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project"...>"Sentry Project", "sentry_external_url"=>"https://sentrytest.gitlab.com/sentry-org/sentry-project"}6981 active is invalid6982 returns active is invalid if non boolean6983 active is empty6984 returns 4006985 with integrated param6986 integrated_error_tracking feature enabled6987 updates the integrated flag6988 without a project setting6989 patch settings6990 behaves like returns 4046991 returns no project settings6992 when authenticated as reporter6993 patch request6994 returns 4036995 when authenticated as developer6996 patch request6997 returns 4036998 when authenticated as non-member6999 patch request7000 returns 4047001 when unauthenticated7002 patch request7003 returns 401 for update request7004 GET /projects/:id/error_tracking/settings7005 when authenticated as maintainer7006 get settings7007 integrated_error_tracking feature enabled7008 behaves like returns project settings7009 returns correct project settings7010 integrated_error_tracking feature disabled7011 behaves like returns project settings with false for integrated7012 is expected to eq {"active"=>true, "api_url"=>"https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project",...>"Sentry Project", "sentry_external_url"=>"https://sentrytest.gitlab.com/sentry-org/sentry-project"}7013 without a project setting7014 get settings7015 behaves like returns 4047016 returns no project settings7017 when authenticated as reporter7018 returns 4037019 when authenticated as developer7020 returns 4037021 when authenticated as non-member7022 returns 4047023 when unauthenticated7024 returns 4017025Dashboard::MilestonesController7026 #index7027 returns group and project milestones to which the user belongs7028 returns closed group and project milestones to which the user belongs7029 searches legacy project milestones by title when search_title is given7030 searches group milestones by title when search_title is given7031 shows counts of open/closed/all group and project milestones to which the user belongs to7032 external authorization7033 behaves like disabled when using an external authorization service7034 works when the feature is not enabled7035 renders a 404 with a message when the feature is enabled7036API::Suggestions7037 PUT /suggestions/:id/apply7038 when successfully applies patch7039 renders an ok response and returns json content7040 when a custom commit message is included7041 renders an ok response and returns json content7042 when not able to apply patch7043 renders a bad request error and returns json content7044 when suggestion is not found7045 renders a not found error and returns json content7046 when unauthorized7047 renders a forbidden error and returns json content7048 PUT /suggestions/batch_apply7049 when successfully applies multiple patches as a batch7050 renders an ok response and returns json content7051 provides a custom commit message7052 when not able to apply one or more of the patches7053 renders a bad request error and returns json content7054 with missing suggestions7055 renders a not found error and returns json content if any suggestion is not found7056 renders a bad request error and returns json content when no suggestions are provided7057 when unauthorized7058 renders a forbidden error and returns json content7059Groups::BoardsController7060 GET index7061 creates a new board when group does not have one7062 when format is HTML7063 renders template7064 with unauthorized user7065 returns a not found 404 response7066 when user is signed out7067 renders template7068 when format is JSON7069 return an array with one group board7070 with unauthorized user7071 returns a not found 404 response7072 behaves like disabled when using an external authorization service7073 works when the feature is not enabled7074 renders a 404 with a message when the feature is enabled7075 GET show7076 when format is HTML7077 renders template7078 with unauthorized user7079 returns a not found 404 response7080 when user is signed out7081 does not save visit7082 when format is JSON7083 returns project board7084 with unauthorized user7085 returns a not found 404 response7086 when board does not belong to group7087 returns a not found 404 response7088 behaves like disabled when using an external authorization service7089 works when the feature is not enabled7090 renders a 404 with a message when the feature is enabled7091Emails::Projects7092 #prometheus_alert_fired_email7093 has expected X-GitLab alert headers7094 behaves like an email with X-GitLab headers containing project details7095 has X-GitLab-Project headers7096 with incident7097 has expected X-GitLab incident headers7098 with empty payload7099 has expected subject7100 has expected content7101 behaves like an email sent from GitLab7102 has the characteristics of an email sent from GitLab7103 behaves like it should not have Gmail Actions links7104 is expected not to have body including "ViewAction"7105 behaves like a user cannot unsubscribe through footer link7106 does not have a List-Unsubscribe header or a body link7107 with description7108 has expected subject7109 has expected content7110 behaves like an email sent from GitLab7111 has the characteristics of an email sent from GitLab7112 behaves like it should not have Gmail Actions links7113 is expected not to have body including "ViewAction"7114 behaves like a user cannot unsubscribe through footer link7115 does not have a List-Unsubscribe header or a body link7116 with environment7117 has expected subject7118 has expected content7119 behaves like an email sent from GitLab7120 has the characteristics of an email sent from GitLab7121 behaves like it should not have Gmail Actions links7122 is expected not to have body including "ViewAction"7123 behaves like a user cannot unsubscribe through footer link7124 does not have a List-Unsubscribe header or a body link7125 with gitlab alerting rule7126 has expected subject7127 has expected content7128 behaves like an email sent from GitLab7129 has the characteristics of an email sent from GitLab7130 behaves like it should not have Gmail Actions links7131 is expected not to have body including "ViewAction"7132 behaves like a user cannot unsubscribe through footer link7133 does not have a List-Unsubscribe header or a body link7134 behaves like shows the incident issues url7135 create issue setting enabled7136 is expected to have body including "http://localhost/group334/a-known-name/-/incidents"7137 resolved7138 has expected subject7139 has expected content7140 behaves like an email sent from GitLab7141 has the characteristics of an email sent from GitLab7142 behaves like it should not have Gmail Actions links7143 is expected not to have body including "ViewAction"7144 behaves like a user cannot unsubscribe through footer link7145 does not have a List-Unsubscribe header or a body link7146Admin::ProjectsController7147 GET /projects7148 retrieves the project for the given visibility level7149 does not retrieve the project7150 retrieves archived and non archived corrupted projects when last_repository_check_failed is true7151 does not respond with projects pending deletion7152 does not have N+1 queries7153 GET /projects.json7154 is expected to respond with 2007155 GET /projects/:id7156 renders show page7157 PUT /projects/transfer/:id7158 updates namespace7159 when project transfer fails7160 flashes error7161Query.runner(id)7162 for active runner7163 behaves like runner details fetch7164 retrieves expected fields7165 when tagList is not requested7166 does not retrieve tagList7167 for project runner7168 is_locked: true7169DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7170DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7171 retrieves correct locked value7172 is_locked: false7173DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7174DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7175 retrieves correct locked value7176 for inactive runner7177 behaves like runner details fetch7178 retrieves expected fields7179 for group runner request7180 retrieves groups field with expected value7181 for runner with status7182 retrieves status fields with expected values7183 for multiple runners7184 requesting projects and counts for projects and jobs7185 retrieves expected fields7186 by regular user7187 on instance runner7188 behaves like retrieval by unauthorized user7189 returns null runner7190 on group runner7191 behaves like retrieval by unauthorized user7192 returns null runner7193 on project runner7194 behaves like retrieval by unauthorized user7195 returns null runner7196 by non-admin user7197 behaves like retrieval with no admin url7198 retrieves expected fields7199 by unauthenticated user7200 behaves like retrieval by unauthorized user7201 returns null runner7202 Query limits7203 does not execute more queries per runner7204GroupTree7205 GET #index7206 behaves like returns filtered groups7207 filters groups7208 for subgroups7209 only renders root groups when no parent was given7210 contains only the subgroup when a parent was given7211 allows filtering for subgroups and includes the parents for rendering7212 does not include groups the user does not have access to7213 preloads parents regardless of pagination7214 json content7215 shows groups as json7216 nested groups7217 expands the tree when filtering7218DeviseMailer7219 #confirmation_instructions7220 when confirming a new account7221 shows the expected text7222 when confirming the unconfirmed_email7223 shows the expected text7224 when re-confirming the primary email after a security issue7225 shows the expected text7226 #password_change_by_admin7227 is sent to the user7228 has the correct subject7229 includes the correct content7230 includes a link to GitLab7231 behaves like an email sent from GitLab7232 has the characteristics of an email sent from GitLab7233 behaves like it should not have Gmail Actions links7234 is expected not to have body including "ViewAction"7235 behaves like a user cannot unsubscribe through footer link7236 does not have a List-Unsubscribe header or a body link7237 #user_admin_approval7238 is sent to the user7239 has the correct subject7240 greets the user7241 includes the correct content7242 includes a link to GitLab7243 behaves like an email sent from GitLab7244 has the characteristics of an email sent from GitLab7245 behaves like it should not have Gmail Actions links7246 is expected not to have body including "ViewAction"7247 behaves like a user cannot unsubscribe through footer link7248 does not have a List-Unsubscribe header or a body link7249 #reset_password_instructions7250 is sent to the user7251 has the correct subject7252 greets the user7253 includes the correct content7254 includes a link to reset the password7255 behaves like an email sent from GitLab7256 has the characteristics of an email sent from GitLab7257 behaves like it should not have Gmail Actions links7258 is expected not to have body including "ViewAction"7259 behaves like a user cannot unsubscribe through footer link7260 does not have a List-Unsubscribe header or a body link7261Projects::IssueLinksController7262 GET /*namespace_id/:project_id/issues/:issue_id/links7263 returns JSON response7264 POST /*namespace_id/:project_id/issues/:issue_id/links7265 with success7266 returns success JSON7267 with failure7268 when unauthorized7269 returns 4037270 when failing service result7271 returns failure JSON7272 DELETE /*namespace_id/:project_id/issues/:issue_id/link/:id7273 when unauthorized7274 when no authorization on current project7275 returns 4037276 when no authorization on the related issue project7277 returns 4047278 when authorized7279 returns success JSON7280 when non of issues of the link is not the issue requested in the path7281 returns 4047282 does not delete the link7283Destroying a container repository tags7284 post graphql mutation7285 with valid id7286 user_role: :maintainer, shared_examples_name: "destroying the container repository tags"7287 behaves like destroying the container repository tags7288 destroys the container repository tags7289 behaves like returning response status7290 returns success7291 user_role: :developer, shared_examples_name: "destroying the container repository tags"7292 behaves like destroying the container repository tags7293 destroys the container repository tags7294 behaves like returning response status7295 returns success7296 user_role: :reporter, shared_examples_name: "denying the mutation request"7297 behaves like denying the mutation request7298 does not destroy the container repository tags7299 behaves like returning response status7300 returns success7301 user_role: :guest, shared_examples_name: "denying the mutation request"7302 behaves like denying the mutation request7303 does not destroy the container repository tags7304 behaves like returning response status7305 returns success7306 user_role: :anonymous, shared_examples_name: "denying the mutation request"7307 behaves like denying the mutation request7308 does not destroy the container repository tags7309 behaves like returning response status7310 returns success7311 with invalid id7312 behaves like denying the mutation request7313 does not destroy the container repository tags7314 behaves like returning response status7315 returns success7316 with too many tags7317 returns too many tags error7318 with service error7319 returns an error7320 does not create a package event7321Projects::GoogleCloud::GcpRegionsController7322 GET #index7323 behaves like public request should 4047324 behaves like should be not found7325 returns not found7326 behaves like should track not_found event7327 tracks event7328 behaves like unauthorized access should 4047329 behaves like should be not found7330 returns not found7331 behaves like should track access_denied event7332 tracks event7333 when authorized members make requests7334 renders gcp_regions7335 but gitlab instance is not configured for google oauth27336 behaves like should be forbidden7337 returns forbidden7338 behaves like should track gcp_error event7339 tracks event7340 but feature flag is disabled7341 behaves like should be not found7342 returns not found7343 behaves like should track feature_flag_disabled event7344 tracks event7345 POST #index7346 behaves like public request should 4047347 behaves like should be not found7348 returns not found7349 behaves like should track not_found event7350 tracks event7351 behaves like unauthorized access should 4047352 behaves like should be not found7353 returns not found7354 behaves like should track access_denied event7355 tracks event7356 when authorized members make requests7357 redirects to google cloud index7358pypi package details7359DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7360DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7361 has the correct metadata7362 behaves like a package detail7363 behaves like a working graphql query7364DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7365DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7366 returns a successful response7367 behaves like matching the package details schema7368DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7369DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7370 matches the JSON schema7371 with pipelines7372 behaves like a working graphql query7373DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7374DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7375 returns a successful response7376 behaves like matching the package details schema7377DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7378DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7379 matches the JSON schema7380 behaves like a package with files7381DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7382DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7383 has the right amount of files7384DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7385DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7386 has the basic package files data7387 with package files pending destruction7388DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7389DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7390 does not return them7391getting milestone listings nested in a project7392 behaves like a working graphql query7393 returns a successful response7394 there are no search params7395 behaves like searching with parameters7396 finds the right milestones7397 the search params do not match anything7398 behaves like searching with parameters7399 finds the right milestones7400 searching by state:closed7401 behaves like searching with parameters7402 finds the right milestones7403 searching by state:active7404 behaves like searching with parameters7405 finds the right milestones7406 searching by title7407 behaves like searching with parameters7408 finds the right milestones7409 searching by search_title7410 behaves like searching with parameters7411 finds the right milestones7412 searching by containing_date7413 behaves like searching with parameters7414 finds the right milestones7415 searching by containing_date = today7416 behaves like searching with parameters7417 finds the right milestones7418 searching by custom range7419 behaves like searching with parameters7420 finds the right milestones7421 using timeframe argument7422 behaves like searching with parameters7423 finds the right milestones7424 timeframe validations7425 is invalid to provide timeframe and start_date/end_date7426 is invalid to invert the timeframe arguments7427 behaves like a working graphql query7428 returns a successful response7429getting dependency proxy blobs in a group7430 returns the total count of blobs7431 returns the total size7432 behaves like a working graphql query7433 returns a successful response7434 with different permissions7435 group_visibility: :private, role: :maintainer, access_granted: true7436 return the proper response7437 group_visibility: :private, role: :developer, access_granted: true7438 return the proper response7439 group_visibility: :private, role: :reporter, access_granted: true7440 return the proper response7441 group_visibility: :private, role: :guest, access_granted: true7442 return the proper response7443 group_visibility: :private, role: :anonymous, access_granted: false7444 return the proper response7445 group_visibility: :public, role: :maintainer, access_granted: true7446 return the proper response7447 group_visibility: :public, role: :developer, access_granted: true7448 return the proper response7449 group_visibility: :public, role: :reporter, access_granted: true7450 return the proper response7451 group_visibility: :public, role: :guest, access_granted: true7452 return the proper response7453 group_visibility: :public, role: :anonymous, access_granted: false7454 return the proper response7455 limiting the number of blobs7456 only returns N blobs7457Projects::ProtectedBranchesController7458 GET #index7459 redirects empty repo to projects page7460 POST #create7461 creates the protected branch rule7462 when a policy restricts rule deletion7463 prevents creation of the protected branch rule7464 PUT #update7465 updates the protected branch rule7466 when a policy restricts rule deletion7467 prevents update of the protected branch rule7468 DELETE #destroy7469 deletes the protected branch rule7470 when a policy restricts rule deletion7471 prevents deletion of the protected branch rule7472Groups::Settings::CiCdController7473 GET #show7474 when user is owner7475 renders show with 200 status code7476 when user is not owner7477 renders a 4047478 external authorization7479 renders show with 200 status code7480 PATCH #update_auto_devops7481 when user does not have enough permission7482 is expected to respond with numeric status code not_found7483 when user has enough privileges7484 is expected to redirect to "/groups/group354/-/settings/ci_cd"7485 when service execution went wrong7486 returns a flash alert7487 when service execution was successful7488 returns a flash notice7489 when changing auto devops value7490 when explicitly enabling auto devops7491 updates group attribute7492 when explicitly disabling auto devops7493 updates group attribute7494 PATCH #update7495 when user is not an admin7496 is expected to respond with numeric status code not_found7497 when user is an admin7498 when admin mode is disabled7499 is expected to respond with numeric status code not_found7500 when admin mode is enabled7501 is expected to redirect to "/groups/group354/-/settings/ci_cd"7502 when service execution went wrong7503 returns a flash alert7504 when service execution was successful7505 returns a flash notice7506Projects::Alerting::NotificationsController7507 POST #create7508 with generic alert payload7509 behaves like process alert payload7510 when notification service succeeds7511 responds with the alert data7512 does not pass excluded parameters to the notify service7513 when notification service fails7514 responds with the service response7515 with bearer token7516 when set7517 behaves like a working token7518 extracts token7519 with a corresponding integration7520 with integration parameters specified7521 the integration is active7522 extracts and finds the integration7523 when the integration is inactive7524 does not find an integration7525 without integration parameters specified7526 extracts and finds the legacy integration7527 with basic auth token7528 behaves like a working token7529 extracts token7530 with a corresponding integration7531 with integration parameters specified7532 the integration is active7533 extracts and finds the integration7534 when the integration is inactive7535 does not find an integration7536 without integration parameters specified7537 extracts and finds the legacy integration7538 when inextractable token7539 passes nil for a non-bearer token7540 when missing token7541 passes nil7542 with Prometheus alert payload7543 behaves like process alert payload7544 when notification service succeeds7545 responds with the alert data7546 does not pass excluded parameters to the notify service7547 when notification service fails7548 responds with the service response7549 with bearer token7550 when set7551 behaves like a working token7552 extracts token7553 with a corresponding integration7554 with integration parameters specified7555 the integration is active7556 extracts and finds the integration7557 when the integration is inactive7558 does not find an integration7559 without integration parameters specified7560 extracts and finds the legacy integration7561 with basic auth token7562 behaves like a working token7563 extracts token7564 with a corresponding integration7565 with integration parameters specified7566 the integration is active7567 extracts and finds the integration7568 when the integration is inactive7569 does not find an integration7570 without integration parameters specified7571 extracts and finds the legacy integration7572 when inextractable token7573 passes nil for a non-bearer token7574 when missing token7575 passes nil7576Create a work item from a task in a work item's description7577 the user is not allowed to update a work item7578 behaves like a mutation that returns a top-level access error7579 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"7580 when user has permissions to create a work item7581 creates the work item7582 when creating a work item fails7583 makes no changes to the DB and returns an error message7584 behaves like has spam protection7585 #check_spam_action_response!7586 when the object is spam (DISALLOW)7587 and no CAPTCHA is available7588 behaves like disallow response7589 informs the client that the request was denied as spam7590 and a CAPTCHA is required7591 behaves like disallow response7592 informs the client that the request was denied as spam7593 when the object is not spam (CONDITIONAL ALLOW)7594 and no CAPTCHA is required7595 does not return a top-level error7596 and a CAPTCHA is required7597 informs the client that the request may be retried after solving the CAPTCHA7598 when the work_items feature flag is disabled7599 does nothing and returns and error7600API::NotificationSettings7601 GET /notification_settings7602 returns global notification settings for the current user7603 PUT /notification_settings7604 updates global notification settings for the current user7605 PUT /notification_settings7606 fails on non-user email address7607 GET /groups/:id/notification_settings7608 returns group level notification settings for the current user7609 PUT /groups/:id/notification_settings7610 updates group level notification settings for the current user7611 GET /projects/:id/notification_settings7612 returns project level notification settings for the current user7613 PUT /projects/:id/notification_settings7614 updates project level notification settings for the current user7615 PUT /projects/:id/notification_settings7616 fails on invalid level7617Projects::ServiceDeskController7618 GET service desk properties7619 returns service_desk JSON data7620 when user is not project maintainer7621 renders 4047622 when issue template is present7623 returns template_file_missing as false7624 when issue template file becomes outdated7625 returns template_file_missing as true7626 PUT service desk properties7627 toggles services desk incoming email7628 sets issue_template_key7629 returns an error when update of service desk settings fails7630 when user cannot admin the project7631 renders 4047632Marking all todos done7633 marks all pending todos as done7634 behaves as expected if there are no todos for the requesting user7635 when target_id is given7636 marks all pending todos for the target as done7637 when target does not exist7638 returns an error7639 when user is not logged in7640 behaves like a mutation that returns a top-level access error7641 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"7642getting notes for an issue7643 behaves like exposing regular notes on a noteable in GraphQL7644 for regular notes7645 includes the note7646 behaves like a working graphql query7647 returns a successful response7648 for discussions7649DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7650DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7651DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7652DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7653 includes all discussion notes7654 behaves like a working graphql query7655DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7656DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7657DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7658DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7659 returns a successful response7660ConfirmEmailWarning7661 confirm email flash warning7662 when not signed in7663 is expected not to set confirm warning for "user2942@example.org"7664 when signed in7665 with a confirmed user7666 is expected not to set confirm warning for "user2943@example.org"7667 with an unconfirmed user7668 when executing a json request7669 is expected not to set confirm warning for "user2944@example.org"7670 when executing a post request7671 is expected not to set confirm warning for "user2945@example.org"7672 when executing a get request7673 with an unconfirmed email address present7674 is expected to set confirm warning for "unconfirmed@gitlab.com"7675 without an unconfirmed email address present7676 is expected to set confirm warning for "user2947@example.org"7677Projects::IncidentsController7678 GET #index7679 shows the page7680 when user is unauthorized7681 behaves like login required7682 redirects to the login page7683 when user is a guest7684 shows the page7685 GET #show7686DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from block in incident at /builds/gitlab-org/gitlab/app/controllers/projects/incidents_controller.rb:29)7687 renders incident page7688 with non existing id7689 behaves like not found7690DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from block in incident at /builds/gitlab-org/gitlab/app/controllers/projects/incidents_controller.rb:29)7691 returns not_found7692 for issue7693 behaves like not found7694DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from block in incident at /builds/gitlab-org/gitlab/app/controllers/projects/incidents_controller.rb:29)7695 returns not_found7696 when user is a guest7697DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from block in incident at /builds/gitlab-org/gitlab/app/controllers/projects/incidents_controller.rb:29)7698 shows the page7699 when unauthorized7700 behaves like login required7701 redirects to the login page7702Milestones through GroupQuery7703 Get list of milestones from a group7704 when the request is correct7705 returns milestones successfully7706 behaves like a working graphql query7707 returns a successful response7708 when filtering by timeframe7709 fetches milestones between start_date and due_date7710 fetches milestones between timeframe start and end arguments7711 when filtering by state7712 returns milestones with given state7713 when including milestones from decendants7714 when including decendants7715 returns milestones also from subgroups and subprojects visible to user7716 when including ancestors7717 returns milestones from ancestor groups7718 ensures each field returns the correct value7719 returns correct values for scalar fields7720 milestone statistics7721 returns the correct milestone statistics7722getting group label information7723 behaves like querying a GraphQL type with labels7724 running a query7725 minimum required arguments7726 returns the label information7727 returns the labels information7728 with a search param7729 finds the matching labels7730 the label does not exist7731 returns nil7732 performance7733 batches queries for labels by title7734A Todoable that implements the CurrentUserTodos interface7735 returns todos of the current user7736 does not return todos of another user7737 does not error when there is no logged in user7738 when `state` argument is `pending`7739 returns just the pending todo7740 when `state` argument is `done`7741 returns just the done todo7742Projects::Ci::DailyBuildGroupReportResultsController7743 GET index7744 when format is JSON7745 behaves like JSON results7746 serves the results in JSON7747 when given date range spans more than 90 days7748 limits the result to 90 days from the given start_date7749 behaves like validating param_type7750 when given param_type is invalid7751 responds with 422 error7752 behaves like ensuring policy7753 when user is not allowed to read build report results7754 responds with 404 error7755 when format is CSV7756 behaves like CSV results7757 serves the results in CSV7758 when given date range spans more than 90 days7759 limits the result to 90 days from the given start_date7760 behaves like validating param_type7761 when given param_type is invalid7762 responds with 422 error7763 behaves like ensuring policy7764 when user is not allowed to read build report results7765 responds with 404 error7766API::PersonalAccessTokens7767 GET /personal_access_tokens7768 logged in as an Administrator7769 returns all PATs by default7770 filtered with user_id parameter7771 returns only PATs belonging to that user7772 logged in as a non-Administrator7773 returns all PATs belonging to the signed-in user7774 filtered with user_id parameter7775 returns PATs belonging to the specific user7776 is unauthorized if filtered by a user other than current_user7777 not authenticated7778 is forbidden7779 DELETE /personal_access_tokens/:id7780 when current_user is an administrator7781 revokes a different users token7782 revokes their own token7783 when current_user is not an administrator7784 fails revokes a different users token7785 revokes their own token7786 cannot revoke impersonation token7787rendering project statistics7788 includes the packages size if the user can read the statistics7789 includes uploads size if the user can read the statistics7790 behaves like a working graphql query7791 returns a successful response7792 when the project is public7793 hides statistics for unauthenticated requests7794Projects::Packages::InfrastructureRegistryController7795 GET #index7796 behaves like returning response status7797 returns ok7798 when the packages registry is not available7799 behaves like returning response status7800 returns not_found7801 GET #show7802 behaves like returning response status7803 returns ok7804 when the packages registry is not available7805 behaves like returning response status7806 returns not_found7807AbuseReportsController7808 GET new7809 when the user has already been deleted7810 redirects the reporter to root_path7811 when the user has already been blocked7812 redirects the reporter to the user's profile7813 POST create7814 with valid attributes7815 saves the abuse report7816 calls notify7817 redirects back to root7818 with invalid attributes7819 redirects back to root7820Groups::ImportsController7821 GET #show7822 when the user has permission to view the group7823 when the import is in progress7824 renders the show template7825 sets the flash notice7826 when the import has failed7827 redirects to the new group path7828 sets a flash error7829 when the import has finished7830 redirects to the group page7831 when there is no import state7832 redirects to the group page7833 when the user does not have permission to view the group7834 returns a 4047835Profiles::PreferencesController7836 GET show7837 renders7838 assigns user7839 PATCH update7840 on successful update7841 responds with success7842 changes the user's preferences7843 on failed update7844 responds with error7845 on invalid dashboard setting7846 responds with error7847 on invalid diffs colors setting7848 responds with error for diffs_deletion_color7849 responds with error for diffs_addition_color7850getting a list of work item types for a project7851 when user has access to the project7852 returns all default work item types7853 behaves like a working graphql query7854 returns a successful response7855 when user doesn't have access to the project7856 does not return the project7857 when the work_items feature flag is disabled7858 returns null7859getting Alert Management Alert counts by status7860 with alert data7861 without project permissions7862 is expected to equal nil7863 behaves like a working graphql query7864 returns a successful response7865 with project permissions7866 returns the correct counts for each status7867 behaves like a working graphql query7868 returns a successful response7869 with search criteria7870 returns the correct counts for each status7871 behaves like a working graphql query7872 returns a successful response7873Deleting Sidekiq jobs7874 when the user is not an admin7875 behaves like a mutation that returns top-level errors7876 is expected to contain exactly "You must be an admin to use this mutation"7877 when the user is an admin7878 valid request7879 returns info about the deleted jobs7880 when no required params are provided7881 behaves like a mutation that returns errors in the response7882 is expected to contain exactly "No metadata provided"7883 when the queue does not exist7884 behaves like a mutation that returns top-level errors7885 is expected to contain exactly "Queue authorized_projects_2 not found"7886Delete a work item7887 when the user is not allowed to delete a work item7888 behaves like a mutation that returns a top-level access error7889 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"7890 when user has permissions to delete a work item7891DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7892DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.7893 deletes the work item7894 when the work_items feature flag is disabled7895 does not delete the work item7896Update Environment Canary Ingress7897 when kubernetes accepted the patch request7898 updates successfully7899Projects::Packages::PackagesController7900 GET #index7901 behaves like returning response status7902 returns ok7903 GET #show7904 behaves like returning response status7905 returns ok7906Groups::PackagesController7907 GET #index7908 behaves like returning response status7909 returns ok7910 GET #show7911 behaves like returning response status7912 returns ok7913Project noteable notes7914 #index7915 does not set a Gitlab::EtagCaching ETag if there is a note7916 sets a Gitlab::EtagCaching ETag if there is no note7917Projects::Metrics::Dashboards::BuilderController7918 POST /:namespace/:project/-/metrics/dashboards/builder7919 as anonymous user7920 redirects user to sign in page7921 as user with guest access7922 returns not found7923 as logged in user7924 valid yaml panel is supplied7925 returns success7926 invalid yaml panel is supplied7927 returns unprocessable entity7928 invalid panel_yaml is not a yaml string7929 returns unprocessable entity7930getting a list of work item types for a group7931 when user has access to the group7932 returns all default work item types7933 behaves like a working graphql query7934 returns a successful response7935 when user doesn't have acces to the group7936 does not return the group7937 when the work_items feature flag is disabled7938 returns null7939getting Alert Management Alert Assignees7940 with self-managed prometheus payload7941 includes the correct metrics dashboard url7942 with gitlab-managed prometheus payload7943 includes the correct metrics dashboard url7944Groups::AvatarsController7945/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil7946 removes avatar from DB calling destroy7947/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil7948 works when external authorization service is enabled7949Create a new cluster agent token7950 without user permissions7951 does not create a token7952 behaves like a mutation that returns top-level errors7953 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"7954 with project permissions7955 creates a new token7956 returns token information7957Projects::Integrations::ShimosController7958 GET #show7959 when Shimo integration is inactive7960 returns 404 status7961 when Shimo integration is active7962 renders the "show" template7963Oauth::AuthorizedApplicationsController7964 includes Two-factor enforcement concern7965 GET #index7966 responds with 4047967 DELETE #destroy7968 revokes both access grants and tokens7969Admin::CohortsController7970 GET #index7971 behaves like tracking unique visits7972 tracks unique visit if the format is HTML7973 tracks unique visit if DNT is not enabled7974 does not track unique visit if DNT is enabled7975 does not track unique visit if the format is JSON7976JiraConnect::BranchesController7977 #new7978 when logged in7979 assigns the suggested branch name7980 ignores missing summary7981 does not set a branch name if key is not passed7982 when not logged in7983 redirects to the login page7984Query.project(fullPath).pipelines.jobs.artifacts7985 returns the fields for the artifacts7986Projects::PipelinesSettingsController7987 GET show7988 redirects with 302 status code7989Profiles::AvatarsController7990/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil7991 removes avatar from DB by calling destroy7992RunnerSetupController7993 GET /-/runner_setup/platforms7994 renders the platforms7995Knapsack report was generated. Preview:7996{7997 "spec/requests/api/nuget_group_packages_spec.rb": 271.91690706400004,7998 "spec/requests/api/repositories_spec.rb": 225.8385190099998,7999 "spec/requests/api/pypi_packages_spec.rb": 101.96834612999919,8000 "spec/requests/api/discussions_spec.rb": 129.84373375499854,8001 "spec/controllers/admin/clusters_controller_spec.rb": 89.26680446799946,8002 "spec/controllers/boards/issues_controller_spec.rb": 102.71547555299912,8003 "spec/requests/api/group_packages_spec.rb": 86.78540038000028,8004 "spec/requests/api/ci/runner/jobs_artifacts_spec.rb": 71.58372990099997,8005 "spec/requests/api/graphql/issue/issue_spec.rb": 31.358350864000386,8006 "spec/requests/api/helm_packages_spec.rb": 33.15242275200035,8007 "spec/requests/api/ci/jobs_spec.rb": 42.04470553400097,8008 "spec/mailers/emails/profile_spec.rb": 20.934854231998543,8009 "spec/controllers/projects/merge_requests/creations_controller_spec.rb": 32.627505993999875,8010 "spec/requests/api/pages/internal_access_spec.rb": 27.606017164998775,8011 "spec/requests/api/settings_spec.rb": 26.562126679000357,8012 "spec/requests/api/project_import_spec.rb": 25.068983435001428,8013 "spec/requests/api/graphql/group/packages_spec.rb": 21.126410680000845,8014 "spec/controllers/projects/snippets_controller_spec.rb": 19.9277226610011,8015 "spec/requests/api/graphql/project/merge_request_spec.rb": 19.036069485999178,8016 "spec/controllers/projects/labels_controller_spec.rb": 21.45321691100071,8017 "spec/requests/api/environments_spec.rb": 12.843415414999981,8018 "spec/controllers/dashboard/projects_controller_spec.rb": 15.880977074999464,8019 "spec/requests/api/graphql/ci/pipelines_spec.rb": 18.63009035399955,8020 "spec/requests/api/error_tracking/project_settings_spec.rb": 14.617859166999551,8021 "spec/controllers/dashboard/milestones_controller_spec.rb": 16.800245320000613,8022 "spec/requests/api/suggestions_spec.rb": 14.151223452001432,8023 "spec/controllers/groups/boards_controller_spec.rb": 8.15803557900108,8024 "spec/mailers/emails/projects_spec.rb": 5.892153146000055,8025 "spec/controllers/admin/projects_controller_spec.rb": 11.089724421999563,8026 "spec/requests/api/graphql/ci/runner_spec.rb": 6.68337109300046,8027 "spec/controllers/concerns/group_tree_spec.rb": 9.14582147100009,8028 "spec/mailers/devise_mailer_spec.rb": 5.017003529001158,8029 "spec/requests/projects/issue_links_controller_spec.rb": 10.531820128999243,8030 "spec/requests/api/graphql/mutations/container_repository/destroy_tags_spec.rb": 4.209111263999148,8031 "spec/requests/projects/google_cloud/gcp_regions_controller_spec.rb": 4.87402723500054,8032 "spec/requests/api/graphql/packages/pypi_spec.rb": 7.979373893000229,8033 "spec/requests/api/graphql/project/milestones_spec.rb": 4.438591238000299,8034 "spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb": 7.20176079599878,8035 "spec/controllers/projects/protected_branches_controller_spec.rb": 5.939018807001048,8036 "spec/controllers/groups/settings/ci_cd_controller_spec.rb": 5.498410510999747,8037 "spec/controllers/projects/alerting/notifications_controller_spec.rb": 3.5557153329991706,8038 "spec/requests/api/graphql/mutations/work_items/create_from_task_spec.rb": 4.427457568999671,8039 "spec/requests/api/notification_settings_spec.rb": 6.1216044450011395,8040 "spec/controllers/projects/service_desk_controller_spec.rb": 3.585244509999029,8041 "spec/requests/api/graphql/mutations/todos/mark_all_done_spec.rb": 4.1919602480011235,8042 "spec/requests/api/graphql/project/issue/notes_spec.rb": 5.039757235999787,8043 "spec/controllers/concerns/confirm_email_warning_spec.rb": 2.187543846999688,8044 "spec/controllers/projects/incidents_controller_spec.rb": 2.6510136519991647,8045 "spec/requests/api/graphql/group/milestones_spec.rb": 4.879247965000104,8046 "spec/requests/api/graphql/group/labels_query_spec.rb": 1.708240134999869,8047 "spec/requests/api/graphql/current_user_todos_spec.rb": 2.3909719429993856,8048 "spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb": 3.6012280579998333,8049 "spec/requests/api/personal_access_tokens_spec.rb": 2.7119993750002322,8050 "spec/requests/api/graphql/project/project_statistics_spec.rb": 3.467228534998867,8051 "spec/controllers/projects/packages/infrastructure_registry_controller_spec.rb": 1.575107211001523,8052 "spec/requests/abuse_reports_controller_spec.rb": 2.674287768000795,8053 "spec/controllers/groups/imports_controller_spec.rb": 2.2841428659994563,8054 "spec/controllers/profiles/preferences_controller_spec.rb": 1.6438353020002978,8055 "spec/requests/api/graphql/project/work_item_types_spec.rb": 1.357123727999351,8056 "spec/requests/api/graphql/project/alert_management/alert_status_counts_spec.rb": 2.2446367599986843,8057 "spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb": 1.0542765440004587,8058 "spec/requests/api/graphql/mutations/work_items/delete_spec.rb": 2.0328073460004816,8059 "spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb": 1.1146141660010471,8060 "spec/controllers/projects/packages/packages_controller_spec.rb": 0.508159199000147,8061 "spec/controllers/groups/packages_controller_spec.rb": 0.2908141749994684,8062 "spec/requests/projects/noteable_notes_spec.rb": 1.2387643109996134,8063 "spec/requests/projects/metrics/dashboards/builder_spec.rb": 1.2960985749996325,8064 "spec/requests/api/graphql/group/work_item_types_spec.rb": 1.1009951280011592,8065 "spec/requests/api/graphql/project/alert_management/alert/metrics_dashboard_url_spec.rb": 1.591930668999339,8066 "spec/controllers/groups/avatars_controller_spec.rb": 1.0656067620002432,8067 "spec/requests/api/graphql/mutations/clusters/agent_tokens/agent_tokens/create_spec.rb": 1.4236267090000183,8068 "spec/requests/projects/integrations/shimos_controller_spec.rb": 1.2829137960015942,8069 "spec/controllers/oauth/authorized_applications_controller_spec.rb": 0.6940570860006119,8070 "spec/controllers/admin/cohorts_controller_spec.rb": 1.0556530539997766,8071 "spec/controllers/jira_connect/branches_controller_spec.rb": 0.39576462200056994,8072 "spec/requests/api/graphql/ci/job_artifacts_spec.rb": 0.7108687050003937,8073 "spec/controllers/projects/pipelines_settings_controller_spec.rb": 0.7651252180003212,8074 "spec/controllers/profiles/avatars_controller_spec.rb": 0.27052842699959,8075 "spec/requests/runner_setup_controller_spec.rb": 0.3619091170003238076}8077Knapsack global time execution for tests: 27m 50s8078Pending: (Failures listed here are expected and do not affect your suite's status)8079 1) getting merge request information nested in a project contains merge request information8080 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8081 # ./spec/requests/api/graphql/project/merge_request_spec.rb:328082 2) getting merge request information nested in a project includes a web_url8083 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8084 # ./spec/requests/api/graphql/project/merge_request_spec.rb:398085 3) getting merge request information nested in a project behaves like when requesting information about MR interactions scalability when selecting all fields behaves like scalable query for interaction fields does not suffer from N+18087 Failure/Error: expect { post_graphql(query) }.not_to exceed_query_limit(baseline)8088 Expected a maximum of 19 queries, got 25:8089 Query Diff:8090 -----------8091 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...8092 -- (expected: 0, got: 1)8093 WHERE "project_authorizations"."project_id" = 867 AND "project_authorizations"."user_id" = 1883 GROUP BY "project_authorizations"."user_id"8094 -- (expected: 0, got: 1)8095 WHERE "project_authorizations"."project_id" = 867 AND "project_authorizations"."user_id" = 1882 GROUP BY "project_authorizations"."user_id"8096 -- (expected: 0, got: 1)8097 WHERE "project_authorizations"."project_id" = 867 AND "project_authorizations"."user_id" = 1881 GROUP BY "project_authorizations"."user_id"8098 SELECT 1 AS one FROM "users"...8099 -- (expected: 0, got: 1)8100 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 53 AND "users"."id" = 1883 LIMIT 18101 -- (expected: 0, got: 1)8102 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 53 AND "users"."id" = 1882 LIMIT 18103 -- (expected: 0, got: 1)8104 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 53 AND "users"."id" = 1881 LIMIT 18105 Shared Example Group: "scalable query for interaction fields" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4588106 Shared Example Group: "when requesting information about MR interactions" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4638107 # ./spec/requests/api/graphql/project/merge_request_spec.rb:431:in `block (5 levels) in <top (required)>'8108 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'8109 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'8110 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'8111 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'8112 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'8113 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'8114 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'8115 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8116 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'8117 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8118 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8119 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8120 4) getting merge request information nested in a project behaves like when requesting information about MR interactions scalability when selecting all fields behaves like scalable query for interaction fields does not suffer from N+18122 Failure/Error: expect { post_graphql(query) }.not_to exceed_query_limit(baseline)8123 Expected a maximum of 19 queries, got 25:8124 Query Diff:8125 -----------8126 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...8127 -- (expected: 0, got: 1)8128 WHERE "project_authorizations"."project_id" = 867 AND "project_authorizations"."user_id" = 1887 GROUP BY "project_authorizations"."user_id"8129 -- (expected: 0, got: 1)8130 WHERE "project_authorizations"."project_id" = 867 AND "project_authorizations"."user_id" = 1886 GROUP BY "project_authorizations"."user_id"8131 -- (expected: 0, got: 1)8132 WHERE "project_authorizations"."project_id" = 867 AND "project_authorizations"."user_id" = 1885 GROUP BY "project_authorizations"."user_id"8133 SELECT 1 AS one FROM "users"...8134 -- (expected: 0, got: 1)8135 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 53 AND "users"."id" = 1887 LIMIT 18136 -- (expected: 0, got: 1)8137 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 53 AND "users"."id" = 1886 LIMIT 18138 -- (expected: 0, got: 1)8139 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 53 AND "users"."id" = 1885 LIMIT 18140 Shared Example Group: "scalable query for interaction fields" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4588141 Shared Example Group: "when requesting information about MR interactions" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4738142 # ./spec/requests/api/graphql/project/merge_request_spec.rb:431:in `block (5 levels) in <top (required)>'8143 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'8144 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'8145 # ./spec/spec_helper.rb:414:in `block (2 levels) in <top (required)>'8146 # ./spec/spec_helper.rb:410:in `block (3 levels) in <top (required)>'8147 # ./lib/gitlab/application_context.rb:48:in `with_raw_context'8148 # ./spec/spec_helper.rb:410:in `block (2 levels) in <top (required)>'8149 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'8150 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8151 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'8152 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8153 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8154 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8155Finished in 27 minutes 56 seconds (files took 1 minute 26.57 seconds to load)81562748 examples, 0 failures, 4 pending8157RSpec exited with 0.8158No examples to retry, congrats!8160Not uploading cache ruby-gems-bullseye-9-non_protected due to policy8161Not uploading cache gitaly-ruby-gems-bullseye-9-non_protected due to policy8163Uploading artifacts...8164coverage/: found 5 matching files and directories 8165crystalball/: found 2 matching files and directories 8166deprecations/: found 9 matching files and directories 8167knapsack/: found 3 matching files and directories 8168rspec/: found 9 matching files and directories 8169WARNING: tmp/capybara/: no matching files 8170log/*.log: found 17 matching files and directories 8171WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2391235431/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8172WARNING: Retrying... context=artifacts-uploader error=request redirected8173Uploading artifacts as "archive" to coordinator... 201 Created id=2391235431 responseStatus=201 Created token=mnzt8PZX8174Uploading artifacts...8175rspec/junit_rspec.xml: found 1 matching files and directories 8176WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2391235431/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8177WARNING: Retrying... context=artifacts-uploader error=request redirected8178Uploading artifacts as "junit" to coordinator... 201 Created id=2391235431 responseStatus=201 Created token=mnzt8PZX8180Job succeeded