rspec integration pg14 10/12
Passed Started
by
@himkp

Himanshu Kapoor
1Using jwt 2.5.02Using app_store_connect 0.29.03Using arr-pm 0.0.124Using faraday_middleware 1.2.05Using multi_json 1.14.16Using faraday_middleware-multi_json 0.0.67Using multi_xml 0.6.08Using hashie 5.0.09Using version_gem 1.1.010Using snaky_hash 2.0.011Using oauth2 2.0.912Using asana 0.10.1313Using asciidoctor 2.0.1814Using asciidoctor-include-ext 0.4.015Using asciidoctor-kroki 0.8.016Using asciidoctor-plantuml 0.0.1617Using ast 2.4.218Using atlassian-jwt 0.2.119Using encryptor 3.0.020Using attr_encrypted 3.2.4 from source at `vendor/gems/attr_encrypted`21Using attr_required 1.0.122Using execjs 2.8.123Using autoprefixer-rails 10.2.5.124Using awesome_print 1.9.225Using awrence 1.2.126Using aws-eventstream 1.2.027Using aws-partitions 1.761.028Using aws-sigv4 1.5.129Using jmespath 1.6.230Using aws-sdk-core 3.174.031Using aws-sdk-cloudformation 1.41.032Using aws-sdk-kms 1.64.033Using aws-sdk-s3 1.123.134Using dumb_delegator 1.0.035Using thread_safe 0.3.636Using descendants_tracker 0.0.437Using ice_nine 0.11.238Using axiom-types 0.1.139Using coercible 1.0.040Using virtus 2.0.041Using axe-core-api 4.6.042Using axe-core-rspec 4.6.043Using connection_pool 2.3.044Using net-http-persistent 4.0.145Using azure-storage-common 2.0.446Using azure-storage-blob 2.0.347Using babosa 2.0.048Using base32 0.3.249Using batch-loader 2.0.150Using bcrypt 3.1.1651Using benchmark-ips 2.11.052Using benchmark-malloc 0.2.053Using memory_profiler 1.0.154Using benchmark-memory 0.2.055Using benchmark-perf 0.6.056Using benchmark-trend 0.4.057Using bindata 2.4.1158Using debug_inspector 1.1.059Using binding_of_caller 1.0.060Using msgpack 1.5.461Using bootsnap 1.16.062Using browser 5.3.163Using uniform_notifier 1.16.064Using bullet 7.0.265Using bundler 2.4.1366Using thor 1.2.167Using bundler-audit 0.7.0.168Using bundler-checksum 0.1.0 from source at `vendor/gems/bundler-checksum` and installing its executables69Using byebug 11.1.370Using matrix 0.4.271Using regexp_parser 2.6.072Using xpath 3.2.073Using capybara 3.39.174Using launchy 2.5.075Using capybara-screenshot 1.0.2676Using ssrf_filter 1.0.877Using carrierwave 1.3.378Using cbor 0.5.9.679Using rbtree 0.4.680Using set 1.0.181Using sorted_set 1.0.382Using character_set 1.4.183Using charlock_holmes 0.7.784Using chef-utils 16.10.1785Using fuzzyurl 0.9.086Using tomlrb 1.3.087Using mixlib-config 3.0.988Using mixlib-shellout 3.2.589Using chef-config 16.10.1790Using chunky_png 1.3.591Using circuitbox 2.0.092Using citrus 3.0.293Using claide 1.1.094Using colored2 3.1.295Using cork 0.3.096Using nap 1.1.097Using open4 1.3.498Using claide-plugins 0.9.299Using google-protobuf 3.23.2 (x86_64-linux)100Using googleapis-common-protos-types 1.5.0101Using grpc 1.55.0 (x86_64-linux)102Using googleapis-common-protos 1.4.0103Using memoist 0.16.2104Using os 1.1.4105Using signet 0.17.0106Using googleauth 1.3.0107Using gapic-common 0.18.0108Using google-cloud-errors 1.3.0109Using google-cloud-profiler-v2 0.4.0110Using stackprof 0.2.25111Using cloud_profiler_agent 0.0.1.pre from source at `vendor/gems/cloud_profiler_agent`112Using coderay 1.1.3113Using commonmarker 0.23.9114Using openssl 3.1.0115Using openssl-signature_algorithm 1.3.0116Using cose 1.3.0117Using i18n_data 0.13.1118Using sixarm_ruby_unaccent 1.2.0119Using countries 4.0.1120Using safe_yaml 1.0.4121Using crack 0.4.3122Using creole 0.5.0123Using rchardet 1.8.0124Using git 1.11.0125Using crystalball 0.7.0126Using css_parser 1.14.0127Using cvss-suite 3.0.1128Using faraday-http-cache 2.5.0129Using kramdown 2.3.2130Using kramdown-parser-gfm 1.1.0131Using no_proxy_fix 0.1.2132Using sawyer 0.9.2133Using octokit 4.25.1134Using unicode-display_width 2.4.2135Using terminal-table 3.0.2136Using danger 8.6.1137Using httparty 0.20.0138Using gitlab 4.19.0139Using danger-gitlab 8.0.0140Using database_cleaner 1.7.0141Using dead_end 3.1.1142Using html-pipeline 2.14.3143Using deckar01-task_list 2.3.2144Using declarative 0.0.20145Using declarative_policy 1.1.0146Using deprecation_toolkit 1.5.1147Using ffi 1.15.5148Using get_process_mem 0.2.7149Using heapy 0.2.0150Using mini_histogram 0.3.1151Using ruby-statistics 3.0.0152Using derailed_benchmarks 2.1.2153Using devfile 0.0.18.pre.alpha1 (x86_64-linux)154Using device_detector 1.0.0155Using orm_adapter 0.5.0156Using method_source 1.0.0157Using railties 6.1.7.2158Using responders 3.0.0159Using warden 1.2.9160Using devise 4.8.1161Using rotp 6.2.0162Using devise-two-factor 4.0.2163Using devise-pbkdf2-encryptable 0.0.0 from source at `vendor/gems/devise-pbkdf2-encryptable`164Using diff-lcs 1.5.0165Using diff_match_patch 0.1.0166Using diffy 3.4.2167Using digest-crc 0.6.4168Using discordrb-webhooks 3.4.2169Using docile 1.4.0170Using doorkeeper 5.6.6171Using doorkeeper-openid_connect 1.8.7172Using dotenv 2.7.6173Using dry-core 0.5.0174Using dry-configurable 0.12.0175Using dry-container 0.7.2176Using dry-equalizer 0.3.0177Using dry-inflector 0.2.0178Using dry-logic 1.1.0179Using dry-types 1.4.0180Using duo_api 1.3.0181Using ecma-re-validator 0.3.0182Using ed25519 1.3.0183Using elasticsearch-api 7.13.3184Using elasticsearch-transport 7.13.3185Using elasticsearch 7.13.3186Using elasticsearch-model 7.2.0187Using elasticsearch-rails 7.2.1188Using email_reply_trimmer 0.1.6189Using htmlentities 4.3.4190Using email_spec 2.2.0191Using ethon 0.15.0192Using typhoeus 1.4.0193Using error_tracking_open_api 1.0.0 from source at `vendor/gems/error_tracking_open_api`194Using escape_utils 1.2.1195Using et-orbi 1.2.7196Using excon 0.99.0197Using parslet 1.8.2198Using expgen 0.1.1199Using expression_parser 0.9.0200Using extended-markdown-filter 0.6.0201Using factory_bot 6.2.0202Using factory_bot_rails 6.2.0203Using faraday-cookie_jar 0.0.7204Using faraday_middleware-aws-sigv4 0.3.0205Using fast_blank 1.0.0206Using fast_gettext 2.3.0207Using ffaker 2.10.0208Using ffi-compiler 1.0.1209Using libyajl2 1.2.0210Using ffi-yajl 2.3.4211Using filelock 1.1.1212Using find_a_port 1.0.1213Using flipper 0.25.0214Using flipper-active_record 0.25.0215Using flipper-active_support_cache_store 0.25.0216Using formatador 0.2.5217Using fog-core 2.1.0218Using fog-json 1.2.0219Using ipaddress 0.8.3220Using xml-simple 1.1.9221Using fog-aliyun 0.4.0222Using fog-xml 0.1.3223Using fog-aws 3.18.0224Using httpclient 2.8.3225Using trailblazer-option 0.1.2226Using uber 0.1.0227Using representable 3.2.0228Using retriable 3.1.2229Using webrick 1.8.1230Using google-apis-core 0.10.0231Using google-apis-compute_v1 0.57.0232Using google-apis-dns_v1 0.28.0233Using google-apis-iamcredentials_v1 0.15.0234Using google-apis-monitoring_v3 0.37.0235Using google-apis-pubsub_v1 0.30.0236Using google-apis-sqladmin_v1beta4 0.41.0237Using google-apis-storage_v1 0.19.0238Using google-cloud-env 1.6.0239Using fog-google 1.19.0240Using fog-local 0.8.0241Using raabro 1.4.0242Using fugit 1.8.1243Using rspec-support 3.12.0244Using rspec-core 3.12.0245Using ruby-progressbar 1.11.0246Using fuubar 2.2.0247Using gemoji 3.0.1248Using locale 2.1.3249Using text 1.3.1250Using gettext 3.3.6251Using gettext_i18n_rails 1.8.0252Using json 2.6.3253Using po_to_json 1.0.1254Using sprockets 3.7.2255Using sprockets-rails 3.4.2256Using rails 6.1.7.2257Using gettext_i18n_rails_js 1.3.0258Using gitaly 16.1.0.pre.rc1259Using numerizer 0.2.0260Using gitlab-chronic 0.10.5261Using gitlab-dangerfiles 3.10.0262Using request_store 1.5.1263Using gitlab-experiment 0.7.1264Using timeliness 0.3.10265Using ms_rest 0.7.6266Using ms_rest_azure 0.12.0267Using gitlab-fog-azure-rm 1.7.0268Using opentracing 0.5.0269Using thrift 0.16.0270Using jaeger-client 1.1.0271Using pg_query 4.2.1272Using redis 4.8.0273Using gitlab-labkit 0.33.0274Using gitlab-license 2.3.0275Using gitlab-mail_room 0.0.23276Using gitlab-markup 1.9.0277Using gitlab-net-dns 0.9.2278Using sidekiq 6.5.7279Using gitlab-sidekiq-fetcher 0.9.0 from source at `vendor/gems/sidekiq-reliable-fetch`280Using parallel 1.22.1281Using parser 3.2.0.0282Using rainbow 3.1.1283Using rubocop-ast 1.24.1284Using rubocop 1.43.0285Using rubocop-graphql 0.19.0286Using rubocop-performance 1.16.0287Using rubocop-rails 2.17.4288Using rubocop-capybara 2.17.0289Using rubocop-rspec 2.18.1290Using gitlab-styles 10.0.0291Using gitlab_chronic_duration 0.10.6.2292Using net-ldap 0.18.0293Using rack-protection 2.2.2294Using omniauth 2.1.0295Using pyu-ruby-sasl 0.0.3.3296Using rubyntlm 0.6.3297Using gitlab_omniauth-ldap 2.2.0298Using gon 6.4.0299Using google-apis-androidpublisher_v3 0.34.0300Using google-apis-cloudbilling_v1 0.21.0301Using google-apis-cloudresourcemanager_v1 0.31.0302Using google-apis-container_v1 0.43.0303Using google-apis-container_v1beta1 0.43.0304Using google-apis-iam_v1 0.36.0305Using google-apis-serviceusage_v1 0.28.0306Using google-cloud-core 1.6.0307Using google-cloud-storage 1.44.0308Using mini_portile2 2.8.2309Using gpgme 2.0.22310Using mustermann 1.1.1311Using mustermann-grape 1.0.1312Using rack-accept 0.4.5313Using grape 1.5.2314Using grape-entity 0.10.0315Using grape-path-helpers 1.7.1316Using grape-swagger 1.6.1317Using grape-swagger-entity 0.5.1318Using grape_logging 1.8.4319Using graphiql-rails 1.8.0320Using graphql-client 0.17.0321Using graphlient 0.5.0322Using graphlyte 1.0.0323Using rb-fsevent 0.11.2324Using rb-inotify 0.10.1325Using sass-listen 4.0.0326Using sass 3.5.5327Using graphql-docs 2.1.0328Using gssapi 1.3.1329Using listen 3.7.1330Using lumberjack 1.2.7331Using nenv 0.3.0332Using shellany 0.0.1333Using notiffany 0.1.3334Using pry 0.14.2335Using guard 2.16.2336Using guard-compat 1.2.1337Using rspec-expectations 3.12.2338Using rspec-mocks 3.12.3339Using rspec 3.12.0340Using guard-rspec 4.7.3341Using temple 0.8.2342Using tilt 2.0.11343Using haml 5.2.2344Using sysexits 1.2.0345Using haml_lint 0.40.1346Using hamlit 2.15.0347Using hana 1.3.7348Using hangouts-chat 0.0.5349Using hashdiff 1.0.1350Using health_check 3.1.0351Using html2text 0.2.0352Using http-form_data 2.3.0353Using llhttp-ffi 0.4.0354Using http 5.1.1355Using ice_cube 0.16.4356Using icalendar 2.8.0357Using imagen 0.1.8358Using invisible_captcha 2.0.0359Using ipaddr 1.2.5360Using oj 3.13.23361Using ipynbdiff 0.4.7 from source at `vendor/gems/ipynbdiff`362Using oauth 0.5.6363Using jira-ruby 2.1.4364Using regexp_property_values 1.0.0365Using js_regex 3.8.0366Using json-jwt 1.15.3367Using uri_template 0.7.0368Using json_schemer 0.2.18369Using jsonpath 1.1.2370Using kaminari-core 1.2.2371Using kaminari-actionview 1.2.2372Using kaminari-activerecord 1.2.2373Using kaminari 1.2.2374Using kas-grpc 0.1.0375Using knapsack 1.21.1376Using recursive-open-struct 1.1.3377Using kubeclient 4.11.0378Using rubyzip 2.3.2379Using with_env 1.1.0380Using license_finder 7.0.1381Using reverse_markdown 1.4.0382Using rugged 1.5.1383Using licensee 9.15.2384Using lockbox 1.1.1385Using lograge 0.11.2386Using lru_redux 1.1.0387Using mail-smtp_pool 0.1.0 from source at `vendor/gems/mail-smtp_pool`388Using marginalia 1.11.1389Using microsoft_graph_mailer 0.1.0 from source at `vendor/gems/microsoft_graph_mailer`390Using mini_magick 4.10.1391Using mixlib-cli 2.1.8392Using mixlib-log 3.0.9393Using murmurhash3 0.1.7394Using neighbor 0.2.3395Using uri 0.12.1396Using net-http 0.1.1397Using net-ntp 2.1.3398Using net-ssh 6.0.0399Using net-scp 3.0.0400Using plist 3.6.0401Using train-core 3.4.9402Using wmi-lite 1.0.5403Using ohai 17.9.0404Using oj-introspect 0.7.2405Using omniauth-oauth2 1.8.0406Using omniauth-alicloud 2.0.1407Using omniauth-atlassian-oauth2 0.2.0408Using omniauth-auth0 3.1.0409Using omniauth-azure-activedirectory-v2 2.0.0410Using omniauth-azure-oauth2 0.0.10 from source at `vendor/gems/omniauth-azure-oauth2`411Using omniauth-dingtalk-oauth2 1.0.1412Using omniauth-facebook 4.0.0413Using omniauth-github 2.0.1414Using omniauth-gitlab 4.0.0 from source at `vendor/gems/omniauth-gitlab`415Using omniauth-google-oauth2 1.1.1416Using omniauth-oauth 1.2.0417Using omniauth-oauth2-generic 0.2.8418Using omniauth-salesforce 1.0.5 from source at `vendor/gems/omniauth-salesforce`419Using ruby-saml 1.15.0420Using omniauth-saml 2.1.0421Using omniauth-shibboleth-redux 2.0.0422Using omniauth-twitter 1.4.0423Using omniauth_crowd 2.4.0 from source at `vendor/gems/omniauth_crowd`424Using rack-oauth2 1.21.3425Using swd 1.3.0426Using validate_email 0.1.6427Using validate_url 1.0.15428Using webfinger 1.2.0429Using openid_connect 1.3.0430Using omniauth_openid_connect 0.6.1431Using optimist 3.0.1432Using rubypants 0.2.0433Using org-ruby 0.9.12434Using pact-support 1.18.1435Using sync 0.5.0436Using tins 1.31.1437Using term-ansicolor 1.7.1438Using pact-mock_service 3.10.0439Using pact 1.63.0440Using tty-color 0.6.0441Using pastel 0.8.0442Using peek 1.1.0443Using png_quantizator 0.2.1444Using premailer 1.16.0445Using premailer-rails 1.10.3446Using unparser 0.6.7447Using proc_to_ast 0.1.0448Using rb_sys 0.9.75449Using prometheus-client-mmap 0.24.3 (x86_64-linux)450Using pry-byebug 3.10.1451Using pry-rails 0.3.9452Using rouge 4.1.2453Using strings-ansi 0.2.0454Using unicode_utils 1.4.0455Using strings 0.2.1456Using tty-screen 0.8.1457Using tty-markdown 0.7.2458Using tty-cursor 0.7.1459Using wisper 2.0.1460Using tty-reader 0.9.0461Using tty-prompt 0.23.1462Using pry-shell 0.6.1463Using puma 6.3.0464Using rack-attack 6.6.1465Using rack-cors 1.1.1466Using rack-proxy 0.7.6467Using rack-timeout 0.6.3468Using rails-controller-testing 1.0.5469Using rails-i18n 7.0.3470Using rbtrace 0.4.14471Using rdoc 6.3.2472Using re2 1.6.0473Using recaptcha 5.12.3474Using redis-store 1.9.1475Using redis-rack 2.1.4476Using redis-actionpack 5.3.0477Using redis-namespace 1.9.0478Using rinku 2.0.0479Using rqrcode 0.7.0480Using rqrcode-rails3 0.1.7481Using rspec-benchmark 0.6.0482Using rspec-parameterized-core 1.0.0483Using rspec-parameterized-table_syntax 1.0.0484Using rspec-parameterized 1.0.0485Using rspec-rails 6.0.1486Using rspec-retry 0.6.2487Using rspec_junit_formatter 0.6.0488Using sqlite3 1.6.0 (x86_64-linux)489Using rspec_profiling 0.0.6490Using ruby-fogbugz 0.3.0491Using ruby-magic 0.6.0492Using ruby-openai 3.7.0493Using sexp_processor 4.16.1494Using ruby_parser 3.20.0495Using safety_net_attestation 0.4.0496Using sanitize 6.0.0497Using sassc 2.4.0498Using sassc-rails 2.1.0499Using sd_notify 0.1.1500Using seed-fu 2.3.7501Using websocket 1.2.9502Using selenium-webdriver 4.9.0503Using tty-command 0.10.1504Using semver_dialects 1.2.1505Using sentry-ruby 5.8.0506Using sentry-rails 5.8.0507Using sentry-raven 3.1.2508Using sentry-sidekiq 5.8.0509Using shoulda-matchers 5.1.0510Using sidekiq-cron 1.8.0511Using sigdump 0.2.4512Using simple_po_parser 1.1.6513Using simplecov-html 0.12.3514Using simplecov_json_formatter 0.1.4515Using simplecov 0.21.2516Using simplecov-cobertura 1.3.1517Using simplecov-lcov 0.8.0518Using slack-messenger 2.3.4519Using snowplow-tracker 0.8.0520Using spamcheck 1.3.0521Using spring 4.1.0522Using spring-commands-rspec 1.0.4523Using ssh_data 1.3.0524Using state_machines 0.5.0525Using state_machines-activemodel 0.8.0526Using state_machines-activerecord 0.8.0527Using sys-filesystem 1.4.3528Using tanuki_emoji 0.6.0529Using telesign 2.2.4530Using telesignenterprise 2.2.2531Using terser 1.0.2532Using test-prof 1.2.1533Using test_file_finder 0.1.4534Using timfel-krb5-auth 0.8.3535Using toml-rb 2.2.0536Using tpm-key_attestation 0.12.0537Using truncato 0.7.12538Using undercover 0.4.5539Using unleash 3.2.2540Using valid_email 0.1.3541Using validates_hostname 1.0.11542Using version_sorter 2.3.0543Using view_component 2.82.0544Using vmstat 2.3.0545Using warning 1.3.0546Using webauthn 3.0.0547Using webmock 3.18.1548Using wikicloth 0.8.1549Using yajl-ruby 1.4.3550Bundle complete! 309 Gemfile dependencies, 626 gems now installed.551Gems in the groups 'production' and 'development' were not installed.552Bundled gems are installed into `./vendor`5532 installed gems you directly depend on are looking for funding.554 Run `bundle fund` for details555==> 'bundle install --jobs=$(nproc) --retry=3 ' succeeded in 1 seconds.556$ bundle pristine pg557Patching bundler with bundler-checksum...558Installing pg 1.5.3 with native extensions559==> 'bundle pristine pg' succeeded in 12 seconds.560Using decomposed database config (config/database.yml.decomposed-postgresql)561Geo DB won't be set up.562Embedding DB won't be set up.578$ source ./scripts/rspec_helpers.sh579$ run_timed_command "gem install knapsack --no-document"580$ gem install knapsack --no-document581Successfully installed knapsack-4.0.05821 gem installed583==> 'gem install knapsack --no-document' succeeded in 1 seconds.584$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"586$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"591$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"592$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"593SKIP_FLAKY_TESTS_AUTOMATICALLY: 594RETRY_FAILED_TESTS_IN_NEW_PROCESS: true595KNAPSACK_GENERATE_REPORT: true596FLAKY_RSPEC_GENERATE_REPORT: true597KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb598KNAPSACK_LOG_LEVEL: debug599KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg14_10_12_report.json600FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json601FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg14_10_12_report.json602NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg14_10_12_report.json603SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_integration_pg14_10_12.txt604CRYSTALBALL: 605RSPEC_TESTS_MAPPING_ENABLED: 606RSPEC_TESTS_FILTER_FILE: 607Knapsack report generator started!608warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.610WARNING: Shared example group 'returns a valid json search response' has been previously defined at:611 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327612...and you are now defining it at:613 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327614The new definition will overwrite the original one.615WARNING: Shared example group 'returns a valid json search response' has been previously defined at:616 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327617...and you are now defining it at:618 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327619The new definition will overwrite the original one.620WARNING: Shared example group 'returns a valid json search response' has been previously defined at:621 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327622...and you are now defining it at:623 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327624The new definition will overwrite the original one.625WARNING: Shared example group 'returns a valid json search response' has been previously defined at:626 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327627...and you are now defining it at:628 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327629The new definition will overwrite the original one.630WARNING: Shared example group 'returns a valid json search response' has been previously defined at:631 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327632...and you are now defining it at:633 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:327634The new definition will overwrite the original one.635WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:636 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238637...and you are now defining it at:638 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238639The new definition will overwrite the original one.640WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:641 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238642...and you are now defining it at:643 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238644The new definition will overwrite the original one.645WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:646 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238647...and you are now defining it at:648 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238649The new definition will overwrite the original one.650WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:651 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238652...and you are now defining it at:653 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238654The new definition will overwrite the original one.655WARNING: Shared example group 'returns a valid nuget download versions json response' has been previously defined at:656 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238657...and you are now defining it at:658 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb:238659The new definition will overwrite the original one.660WARNING: Shared example group 'creating pypi package files' has been previously defined at:661 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4662...and you are now defining it at:663 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4664The new definition will overwrite the original one.665WARNING: Shared example group 'creating pypi package files' has been previously defined at:666 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4667...and you are now defining it at:668 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4669The new definition will overwrite the original one.670WARNING: Shared example group 'creating pypi package files' has been previously defined at:671 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4672...and you are now defining it at:673 /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/pypi_packages_shared_examples.rb:4674The new definition will overwrite the original one.675Run options: exclude {:quarantine=>true, :level=>"background_migration"}676Test environment set up in 0.53296984 seconds677API::NugetProjectPackages678 GET /api/v4/projects/:id/packages/nuget679 behaves like handling nuget service requests680 with valid target681 personal token682 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success683 behaves like process nuget service index request684 for user type developer685 returns a valid json response686 behaves like returning response status687 returns success688 behaves like a package tracking event689 creates a gitlab tracking event cli_metadata690 with invalid format691 behaves like rejects nuget packages access692 for user type anonymous693 behaves like returning response status694 returns not_found695 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success696 behaves like process nuget service index request697 for user type guest698 returns a valid json response699 behaves like returning response status700 returns success701 behaves like a package tracking event702 creates a gitlab tracking event cli_metadata703 with invalid format704 behaves like rejects nuget packages access705 for user type anonymous706 behaves like returning response status707 returns not_found708 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized709 behaves like rejects nuget packages access710 for user type developer711 has the correct response header712 behaves like returning response status713 returns unauthorized714 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized715 behaves like rejects nuget packages access716 for user type guest717 has the correct response header718 behaves like returning response status719 returns unauthorized720 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success721 behaves like process nuget service index request722 for user type developer723 returns a valid json response724 behaves like returning response status725 returns success726 behaves like a package tracking event727 creates a gitlab tracking event cli_metadata728 with invalid format729 behaves like rejects nuget packages access730 for user type anonymous731 behaves like returning response status732 returns not_found733 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success734 behaves like process nuget service index request735 for user type guest736 returns a valid json response737 behaves like returning response status738 returns success739 behaves like a package tracking event740 creates a gitlab tracking event cli_metadata741 with invalid format742 behaves like rejects nuget packages access743 for user type anonymous744 behaves like returning response status745 returns not_found746 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized747 behaves like rejects nuget packages access748 for user type developer749 has the correct response header750 behaves like returning response status751 returns unauthorized752 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized753 behaves like rejects nuget packages access754 for user type guest755 has the correct response header756 behaves like returning response status757 returns unauthorized758 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success759 behaves like process nuget service index request760 for user type anonymous761 returns a valid json response762 behaves like returning response status763 returns success764 behaves like a package tracking event765 creates a gitlab tracking event cli_metadata766 with invalid format767 behaves like rejects nuget packages access768 for user type anonymous769 behaves like returning response status770 returns not_found771 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success772 behaves like process nuget service index request773 for user type developer774 returns a valid json response775 behaves like returning response status776 returns success777 behaves like a package tracking event778 creates a gitlab tracking event cli_metadata779 with invalid format780 behaves like rejects nuget packages access781 for user type anonymous782 behaves like returning response status783 returns not_found784 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden785 behaves like rejects nuget packages access786 for user type guest787 behaves like returning response status788 returns forbidden789 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized790 behaves like rejects nuget packages access791 for user type developer792 has the correct response header793 behaves like returning response status794 returns unauthorized795 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized796 behaves like rejects nuget packages access797 for user type guest798 has the correct response header799 behaves like returning response status800 returns unauthorized801 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found802 behaves like rejects nuget packages access803 for user type developer804 behaves like returning response status805 returns not_found806 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found807 behaves like rejects nuget packages access808 for user type guest809 behaves like returning response status810 returns not_found811 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized812 behaves like rejects nuget packages access813 for user type developer814 has the correct response header815 behaves like returning response status816 returns unauthorized817 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized818 behaves like rejects nuget packages access819 for user type guest820 has the correct response header821 behaves like returning response status822 returns unauthorized823 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized824 behaves like rejects nuget packages access825 for user type anonymous826 has the correct response header827 behaves like returning response status828 returns unauthorized829 with job token830 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success831 behaves like process nuget service index request832 for user type developer833 returns a valid json response834 behaves like returning response status835 returns success836 behaves like a package tracking event837 creates a gitlab tracking event cli_metadata838 with invalid format839 behaves like rejects nuget packages access840 for user type anonymous841 behaves like returning response status842 returns not_found843 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success844 behaves like process nuget service index request845 for user type guest846 returns a valid json response847 behaves like returning response status848 returns success849 behaves like a package tracking event850 creates a gitlab tracking event cli_metadata851 with invalid format852 behaves like rejects nuget packages access853 for user type anonymous854 behaves like returning response status855 returns not_found856 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized857 behaves like rejects nuget packages access858 for user type developer859 has the correct response header860 behaves like returning response status861 returns unauthorized862 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized863 behaves like rejects nuget packages access864 for user type guest865 has the correct response header866 behaves like returning response status867 returns unauthorized868 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success869 behaves like process nuget service index request870 for user type developer871 returns a valid json response872 behaves like returning response status873 returns success874 behaves like a package tracking event875 creates a gitlab tracking event cli_metadata876 with invalid format877 behaves like rejects nuget packages access878 for user type anonymous879 behaves like returning response status880 returns not_found881 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success882 behaves like process nuget service index request883 for user type guest884 returns a valid json response885 behaves like returning response status886 returns success887 behaves like a package tracking event888 creates a gitlab tracking event cli_metadata889 with invalid format890 behaves like rejects nuget packages access891 for user type anonymous892 behaves like returning response status893 returns not_found894 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized895 behaves like rejects nuget packages access896 for user type developer897 has the correct response header898 behaves like returning response status899 returns unauthorized900 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized901 behaves like rejects nuget packages access902 for user type guest903 has the correct response header904 behaves like returning response status905 returns unauthorized906 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success907 behaves like process nuget service index request908 for user type anonymous909 returns a valid json response910 behaves like returning response status911 returns success912 behaves like a package tracking event913 creates a gitlab tracking event cli_metadata914 with invalid format915 behaves like rejects nuget packages access916 for user type anonymous917 behaves like returning response status918 returns not_found919 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget service index request", expected_status: :success920 behaves like process nuget service index request921 for user type developer922 returns a valid json response923 behaves like returning response status924 returns success925 behaves like a package tracking event926 creates a gitlab tracking event cli_metadata927 with invalid format928 behaves like rejects nuget packages access929 for user type anonymous930 behaves like returning response status931 returns not_found932 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden933 behaves like rejects nuget packages access934 for user type guest935 behaves like returning response status936 returns forbidden937 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized938 behaves like rejects nuget packages access939 for user type developer940 has the correct response header941 behaves like returning response status942 returns unauthorized943 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized944 behaves like rejects nuget packages access945 for user type guest946 has the correct response header947 behaves like returning response status948 returns unauthorized949 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found950 behaves like rejects nuget packages access951 for user type developer952 behaves like returning response status953 returns not_found954 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found955 behaves like rejects nuget packages access956 for user type guest957 behaves like returning response status958 returns not_found959 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized960 behaves like rejects nuget packages access961 for user type developer962 has the correct response header963 behaves like returning response status964 returns unauthorized965 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized966 behaves like rejects nuget packages access967 for user type guest968 has the correct response header969 behaves like returning response status970 returns unauthorized971 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized972 behaves like rejects nuget packages access973 for user type anonymous974 has the correct response header975 behaves like returning response status976 returns unauthorized977 behaves like deploy token for package GET requests978 with deploy token headers979 valid token980 behaves like returning response status981 returns success982 invalid token983 behaves like returning response status984 returns unauthorized985 behaves like rejects nuget access with unknown target id986 with an unknown target987 as anonymous988 behaves like rejects nuget packages access989 for user type anonymous990 has the correct response header991 behaves like returning response status992 returns unauthorized993 as authenticated user994 behaves like rejects nuget packages access995 for user type anonymous996 behaves like returning response status997 returns not_found998 behaves like rejects nuget access with invalid target id999 with a target id with invalid integers1000 id: "/../", status: :bad_request1001 behaves like rejects nuget packages access1002 for user type anonymous1003 behaves like returning response status1004 returns bad_request1005 id: "", status: :not_found1006 behaves like rejects nuget packages access1007 for user type anonymous1008 behaves like returning response status1009 returns not_found1010 id: "%20", status: :bad_request1011 behaves like rejects nuget packages access1012 for user type anonymous1013 behaves like returning response status1014 returns bad_request1015 id: "%2e%2e%2f", status: :bad_request1016 behaves like rejects nuget packages access1017 for user type anonymous1018 behaves like returning response status1019 returns bad_request1020 id: "NaN", status: :bad_request1021 behaves like rejects nuget packages access1022 for user type anonymous1023 behaves like returning response status1024 returns bad_request1025 id: 1253, status: :unauthorized1026 behaves like rejects nuget packages access1027 for user type anonymous1028 has the correct response header1029 behaves like returning response status1030 returns unauthorized1031 id: "anything25", status: :bad_request1032 behaves like rejects nuget packages access1033 for user type anonymous1034 behaves like returning response status1035 returns bad_request1036 behaves like accept get request on private project with access to package registry for everyone1037 behaves like returning response status1038 returns ok1039 GET /api/v4/projects/:id/packages/nuget/metadata/*package_name/index1040 behaves like handling nuget metadata requests with package name1041 with valid target1042 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1043 behaves like process nuget metadata request at package name level1044 for user type developer1045 behaves like returning response status1046 returns success1047 behaves like returning nuget metadata json response with json schema1048 returns a valid json response1049 with invalid format1050 behaves like rejects nuget packages access1051 for user type anonymous1052 behaves like returning response status1053 returns not_found1054 with lower case package name1055 behaves like returning response status1056 returns success1057 behaves like returning nuget metadata json response with json schema1058 returns a valid json response1059 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1060 behaves like process nuget metadata request at package name level1061 for user type guest1062 behaves like returning response status1063 returns success1064 behaves like returning nuget metadata json response with json schema1065 returns a valid json response1066 with invalid format1067 behaves like rejects nuget packages access1068 for user type anonymous1069 behaves like returning response status1070 returns not_found1071 with lower case package name1072 behaves like returning response status1073 returns success1074 behaves like returning nuget metadata json response with json schema1075 returns a valid json response1076 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1077 behaves like rejects nuget packages access1078 for user type developer1079 has the correct response header1080 behaves like returning response status1081 returns unauthorized1082 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1083 behaves like rejects nuget packages access1084 for user type guest1085 has the correct response header1086 behaves like returning response status1087 returns unauthorized1088 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1089 behaves like process nuget metadata request at package name level1090 for user type developer1091 behaves like returning response status1092 returns success1093 behaves like returning nuget metadata json response with json schema1094 returns a valid json response1095 with invalid format1096 behaves like rejects nuget packages access1097 for user type anonymous1098 behaves like returning response status1099 returns not_found1100 with lower case package name1101 behaves like returning response status1102 returns success1103 behaves like returning nuget metadata json response with json schema1104 returns a valid json response1105 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1106 behaves like process nuget metadata request at package name level1107 for user type guest1108 behaves like returning response status1109 returns success1110 behaves like returning nuget metadata json response with json schema1111 returns a valid json response1112 with invalid format1113 behaves like rejects nuget packages access1114 for user type anonymous1115 behaves like returning response status1116 returns not_found1117 with lower case package name1118 behaves like returning response status1119 returns success1120 behaves like returning nuget metadata json response with json schema1121 returns a valid json response1122 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1123 behaves like rejects nuget packages access1124 for user type developer1125 has the correct response header1126 behaves like returning response status1127 returns unauthorized1128 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1129 behaves like rejects nuget packages access1130 for user type guest1131 has the correct response header1132 behaves like returning response status1133 returns unauthorized1134 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1135 behaves like process nuget metadata request at package name level1136 for user type anonymous1137 behaves like returning response status1138 returns success1139 behaves like returning nuget metadata json response with json schema1140 returns a valid json response1141 with invalid format1142 behaves like rejects nuget packages access1143 for user type anonymous1144 behaves like returning response status1145 returns not_found1146 with lower case package name1147 behaves like returning response status1148 returns success1149 behaves like returning nuget metadata json response with json schema1150 returns a valid json response1151 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget metadata request at package name level", expected_status: :success1152 behaves like process nuget metadata request at package name level1153 for user type developer1154 behaves like returning response status1155 returns success1156 behaves like returning nuget metadata json response with json schema1157 returns a valid json response1158 with invalid format1159 behaves like rejects nuget packages access1160 for user type anonymous1161 behaves like returning response status1162 returns not_found1163 with lower case package name1164 behaves like returning response status1165 returns success1166 behaves like returning nuget metadata json response with json schema1167 returns a valid json response1168 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1169 behaves like rejects nuget packages access1170 for user type guest1171 behaves like returning response status1172 returns forbidden1173 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1174 behaves like rejects nuget packages access1175 for user type developer1176 has the correct response header1177 behaves like returning response status1178 returns unauthorized1179 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1180 behaves like rejects nuget packages access1181 for user type guest1182 has the correct response header1183 behaves like returning response status1184 returns unauthorized1185 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1186 behaves like rejects nuget packages access1187 for user type developer1188 behaves like returning response status1189 returns not_found1190 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1191 behaves like rejects nuget packages access1192 for user type guest1193 behaves like returning response status1194 returns not_found1195 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1196 behaves like rejects nuget packages access1197 for user type developer1198 has the correct response header1199 behaves like returning response status1200 returns unauthorized1201 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1202 behaves like rejects nuget packages access1203 for user type guest1204 has the correct response header1205 behaves like returning response status1206 returns unauthorized1207 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1208 behaves like rejects nuget packages access1209 for user type anonymous1210 has the correct response header1211 behaves like returning response status1212 returns unauthorized1213 behaves like deploy token for package GET requests1214 with deploy token headers1215 valid token1216 behaves like returning response status1217 returns success1218 invalid token1219 behaves like returning response status1220 returns unauthorized1221 behaves like rejects nuget access with unknown target id1222 with an unknown target1223 as anonymous1224 behaves like rejects nuget packages access1225 for user type anonymous1226 has the correct response header1227 behaves like returning response status1228 returns unauthorized1229 as authenticated user1230 behaves like rejects nuget packages access1231 for user type anonymous1232 behaves like returning response status1233 returns not_found1234 behaves like rejects nuget access with invalid target id1235 with a target id with invalid integers1236 id: "/../", status: :bad_request1237 behaves like rejects nuget packages access1238 for user type anonymous1239 behaves like returning response status1240 returns bad_request1241 id: "", status: :not_found1242 behaves like rejects nuget packages access1243 for user type anonymous1244 behaves like returning response status1245 returns not_found1246 id: "%20", status: :bad_request1247 behaves like rejects nuget packages access1248 for user type anonymous1249 behaves like returning response status1250 returns bad_request1251 id: "%2e%2e%2f", status: :bad_request1252 behaves like rejects nuget packages access1253 for user type anonymous1254 behaves like returning response status1255 returns bad_request1256 id: "NaN", status: :bad_request1257 behaves like rejects nuget packages access1258 for user type anonymous1259 behaves like returning response status1260 returns bad_request1261 id: 1253, status: :unauthorized1262 behaves like rejects nuget packages access1263 for user type anonymous1264 has the correct response header1265 behaves like returning response status1266 returns unauthorized1267 id: "anything25", status: :bad_request1268 behaves like rejects nuget packages access1269 for user type anonymous1270 behaves like returning response status1271 returns bad_request1272 behaves like accept get request on private project with access to package registry for everyone1273 behaves like returning response status1274 returns ok1275 GET /api/v4/projects/:id/packages/nuget/metadata/*package_name/*package_version1276 behaves like handling nuget metadata requests with package name and package version1277 with valid target1278 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: :success1279 behaves like process nuget metadata request at package name and package version level1280 for user type developer1281 behaves like returning response status1282 returns success1283 behaves like returning nuget metadata json response with json schema1284 returns a valid json response1285 with invalid format1286 behaves like rejects nuget packages access1287 for user type anonymous1288 behaves like returning response status1289 returns not_found1290 with lower case package name1291 behaves like returning response status1292 returns success1293 behaves like returning nuget metadata json response with json schema1294 returns a valid json response1295 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: :success1296 behaves like process nuget metadata request at package name and package version level1297 for user type guest1298 behaves like returning response status1299 returns success1300 behaves like returning nuget metadata json response with json schema1301 returns a valid json response1302 with invalid format1303 behaves like rejects nuget packages access1304 for user type anonymous1305 behaves like returning response status1306 returns not_found1307 with lower case package name1308 behaves like returning response status1309 returns success1310 behaves like returning nuget metadata json response with json schema1311 returns a valid json response1312 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1313 behaves like rejects nuget packages access1314 for user type developer1315 has the correct response header1316 behaves like returning response status1317 returns unauthorized1318 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1319 behaves like rejects nuget packages access1320 for user type guest1321 has the correct response header1322 behaves like returning response status1323 returns unauthorized1324 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: :success1325 behaves like process nuget metadata request at package name and package version level1326 for user type developer1327 behaves like returning response status1328 returns success1329 behaves like returning nuget metadata json response with json schema1330 returns a valid json response1331 with invalid format1332 behaves like rejects nuget packages access1333 for user type anonymous1334 behaves like returning response status1335 returns not_found1336 with lower case package name1337 behaves like returning response status1338 returns success1339 behaves like returning nuget metadata json response with json schema1340 returns a valid json response1341 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: :success1342 behaves like process nuget metadata request at package name and package version level1343 for user type guest1344 behaves like returning response status1345 returns success1346 behaves like returning nuget metadata json response with json schema1347 returns a valid json response1348 with invalid format1349 behaves like rejects nuget packages access1350 for user type anonymous1351 behaves like returning response status1352 returns not_found1353 with lower case package name1354 behaves like returning response status1355 returns success1356 behaves like returning nuget metadata json response with json schema1357 returns a valid json response1358 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1359 behaves like rejects nuget packages access1360 for user type developer1361 has the correct response header1362 behaves like returning response status1363 returns unauthorized1364 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1365 behaves like rejects nuget packages access1366 for user type guest1367 has the correct response header1368 behaves like returning response status1369 returns unauthorized1370 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget metadata request at package name and package version level", expected_status: :success1371 behaves like process nuget metadata request at package name and package version level1372 for user type anonymous1373 behaves like returning response status1374 returns success1375 behaves like returning nuget metadata json response with json schema1376 returns a valid json response1377 with invalid format1378 behaves like rejects nuget packages access1379 for user type anonymous1380 behaves like returning response status1381 returns not_found1382 with lower case package name1383 behaves like returning response status1384 returns success1385 behaves like returning nuget metadata json response with json schema1386 returns a valid json response1387 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: :success1388 behaves like process nuget metadata request at package name and package version level1389 for user type developer1390 behaves like returning response status1391 returns success1392 behaves like returning nuget metadata json response with json schema1393 returns a valid json response1394 with invalid format1395 behaves like rejects nuget packages access1396 for user type anonymous1397 behaves like returning response status1398 returns not_found1399 with lower case package name1400 behaves like returning response status1401 returns success1402 behaves like returning nuget metadata json response with json schema1403 returns a valid json response1404 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1405 behaves like rejects nuget packages access1406 for user type guest1407 behaves like returning response status1408 returns forbidden1409 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1410 behaves like rejects nuget packages access1411 for user type developer1412 has the correct response header1413 behaves like returning response status1414 returns unauthorized1415 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1416 behaves like rejects nuget packages access1417 for user type guest1418 has the correct response header1419 behaves like returning response status1420 returns unauthorized1421 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1422 behaves like rejects nuget packages access1423 for user type developer1424 behaves like returning response status1425 returns not_found1426 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1427 behaves like rejects nuget packages access1428 for user type guest1429 behaves like returning response status1430 returns not_found1431 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1432 behaves like rejects nuget packages access1433 for user type developer1434 has the correct response header1435 behaves like returning response status1436 returns unauthorized1437 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1438 behaves like rejects nuget packages access1439 for user type guest1440 has the correct response header1441 behaves like returning response status1442 returns unauthorized1443 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1444 behaves like rejects nuget packages access1445 for user type anonymous1446 has the correct response header1447 behaves like returning response status1448 returns unauthorized1449 behaves like deploy token for package GET requests1450 with deploy token headers1451 valid token1452 behaves like returning response status1453 returns success1454 invalid token1455 behaves like returning response status1456 returns unauthorized1457 behaves like rejects nuget access with unknown target id1458 with an unknown target1459 as anonymous1460 behaves like rejects nuget packages access1461 for user type anonymous1462 has the correct response header1463 behaves like returning response status1464 returns unauthorized1465 as authenticated user1466 behaves like rejects nuget packages access1467 for user type anonymous1468 behaves like returning response status1469 returns not_found1470 behaves like rejects nuget access with invalid target id1471 with a target id with invalid integers1472 id: "/../", status: :bad_request1473 behaves like rejects nuget packages access1474 for user type anonymous1475 behaves like returning response status1476 returns bad_request1477 id: "", status: :not_found1478 behaves like rejects nuget packages access1479 for user type anonymous1480 behaves like returning response status1481 returns not_found1482 id: "%20", status: :bad_request1483 behaves like rejects nuget packages access1484 for user type anonymous1485 behaves like returning response status1486 returns bad_request1487 id: "%2e%2e%2f", status: :bad_request1488 behaves like rejects nuget packages access1489 for user type anonymous1490 behaves like returning response status1491 returns bad_request1492 id: "NaN", status: :bad_request1493 behaves like rejects nuget packages access1494 for user type anonymous1495 behaves like returning response status1496 returns bad_request1497 id: 1253, status: :unauthorized1498 behaves like rejects nuget packages access1499 for user type anonymous1500 has the correct response header1501 behaves like returning response status1502 returns unauthorized1503 id: "anything25", status: :bad_request1504 behaves like rejects nuget packages access1505 for user type anonymous1506 behaves like returning response status1507 returns bad_request1508 behaves like accept get request on private project with access to package registry for everyone1509 behaves like returning response status1510 returns ok1511 GET /api/v4/projects/:id/packages/nuget/query1512 behaves like handling nuget search requests1513 with valid target1514 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1515 behaves like process nuget search request1516 for user type developer1517 behaves like returns a valid json search response1518 returns a valid json response1519 behaves like returning response status1520 returns success1521 behaves like a package tracking event1522 creates a gitlab tracking event search_package1523 with skip set to 21524 behaves like returns a valid json search response1525 returns a valid json response1526 behaves like returning response status1527 returns success1528 with take set to 21529 behaves like returns a valid json search response1530 returns a valid json response1531 behaves like returning response status1532 returns success1533 without prereleases1534 behaves like returns a valid json search response1535 returns a valid json response1536 behaves like returning response status1537 returns success1538 with empty search term1539 behaves like returns a valid json search response1540 returns a valid json response1541 behaves like returning response status1542 returns success1543 with nil search term1544 behaves like returns a valid json search response1545 returns a valid json response1546 behaves like returning response status1547 returns success1548 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1549 behaves like process nuget search request1550 for user type guest1551 behaves like returns a valid json search response1552 returns a valid json response1553 behaves like returning response status1554 returns success1555 behaves like a package tracking event1556 creates a gitlab tracking event search_package1557 with skip set to 21558 behaves like returns a valid json search response1559 returns a valid json response1560 behaves like returning response status1561 returns success1562 with take set to 21563 behaves like returns a valid json search response1564 returns a valid json response1565 behaves like returning response status1566 returns success1567 without prereleases1568 behaves like returns a valid json search response1569 returns a valid json response1570 behaves like returning response status1571 returns success1572 with empty search term1573 behaves like returns a valid json search response1574 returns a valid json response1575 behaves like returning response status1576 returns success1577 with nil search term1578 behaves like returns a valid json search response1579 returns a valid json response1580 behaves like returning response status1581 returns success1582 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1583 behaves like rejects nuget packages access1584 for user type developer1585 has the correct response header1586 behaves like returning response status1587 returns unauthorized1588 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1589 behaves like rejects nuget packages access1590 for user type guest1591 has the correct response header1592 behaves like returning response status1593 returns unauthorized1594 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1595 behaves like process nuget search request1596 for user type developer1597 behaves like returns a valid json search response1598 returns a valid json response1599 behaves like returning response status1600 returns success1601 behaves like a package tracking event1602 creates a gitlab tracking event search_package1603 with skip set to 21604 behaves like returns a valid json search response1605 returns a valid json response1606 behaves like returning response status1607 returns success1608 with take set to 21609 behaves like returns a valid json search response1610 returns a valid json response1611 behaves like returning response status1612 returns success1613 without prereleases1614 behaves like returns a valid json search response1615 returns a valid json response1616 behaves like returning response status1617 returns success1618 with empty search term1619 behaves like returns a valid json search response1620 returns a valid json response1621 behaves like returning response status1622 returns success1623 with nil search term1624 behaves like returns a valid json search response1625 returns a valid json response1626 behaves like returning response status1627 returns success1628 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1629 behaves like process nuget search request1630 for user type guest1631 behaves like returns a valid json search response1632 returns a valid json response1633 behaves like returning response status1634 returns success1635 behaves like a package tracking event1636 creates a gitlab tracking event search_package1637 with skip set to 21638 behaves like returns a valid json search response1639 returns a valid json response1640 behaves like returning response status1641 returns success1642 with take set to 21643 behaves like returns a valid json search response1644 returns a valid json response1645 behaves like returning response status1646 returns success1647 without prereleases1648 behaves like returns a valid json search response1649 returns a valid json response1650 behaves like returning response status1651 returns success1652 with empty search term1653 behaves like returns a valid json search response1654 returns a valid json response1655 behaves like returning response status1656 returns success1657 with nil search term1658 behaves like returns a valid json search response1659 returns a valid json response1660 behaves like returning response status1661 returns success1662 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1663 behaves like rejects nuget packages access1664 for user type developer1665 has the correct response header1666 behaves like returning response status1667 returns unauthorized1668 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1669 behaves like rejects nuget packages access1670 for user type guest1671 has the correct response header1672 behaves like returning response status1673 returns unauthorized1674 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1675 behaves like process nuget search request1676 for user type anonymous1677 behaves like returns a valid json search response1678 returns a valid json response1679 behaves like returning response status1680 returns success1681 behaves like a package tracking event1682 creates a gitlab tracking event search_package1683 with skip set to 21684 behaves like returns a valid json search response1685 returns a valid json response1686 behaves like returning response status1687 returns success1688 with take set to 21689 behaves like returns a valid json search response1690 returns a valid json response1691 behaves like returning response status1692 returns success1693 without prereleases1694 behaves like returns a valid json search response1695 returns a valid json response1696 behaves like returning response status1697 returns success1698 with empty search term1699 behaves like returns a valid json search response1700 returns a valid json response1701 behaves like returning response status1702 returns success1703 with nil search term1704 behaves like returns a valid json search response1705 returns a valid json response1706 behaves like returning response status1707 returns success1708 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget search request", expected_status: :success1709 behaves like process nuget search request1710 for user type developer1711 behaves like returns a valid json search response1712 returns a valid json response1713 behaves like returning response status1714 returns success1715 behaves like a package tracking event1716 creates a gitlab tracking event search_package1717 with skip set to 21718 behaves like returns a valid json search response1719 returns a valid json response1720 behaves like returning response status1721 returns success1722 with take set to 21723 behaves like returns a valid json search response1724 returns a valid json response1725 behaves like returning response status1726 returns success1727 without prereleases1728 behaves like returns a valid json search response1729 returns a valid json response1730 behaves like returning response status1731 returns success1732 with empty search term1733 behaves like returns a valid json search response1734 returns a valid json response1735 behaves like returning response status1736 returns success1737 with nil search term1738 behaves like returns a valid json search response1739 returns a valid json response1740 behaves like returning response status1741 returns success1742 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1743 behaves like rejects nuget packages access1744 for user type guest1745 behaves like returning response status1746 returns forbidden1747 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1748 behaves like rejects nuget packages access1749 for user type developer1750 has the correct response header1751 behaves like returning response status1752 returns unauthorized1753 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1754 behaves like rejects nuget packages access1755 for user type guest1756 has the correct response header1757 behaves like returning response status1758 returns unauthorized1759 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1760 behaves like rejects nuget packages access1761 for user type developer1762 behaves like returning response status1763 returns not_found1764 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1765 behaves like rejects nuget packages access1766 for user type guest1767 behaves like returning response status1768 returns not_found1769 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1770 behaves like rejects nuget packages access1771 for user type developer1772 has the correct response header1773 behaves like returning response status1774 returns unauthorized1775 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1776 behaves like rejects nuget packages access1777 for user type guest1778 has the correct response header1779 behaves like returning response status1780 returns unauthorized1781 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1782 behaves like rejects nuget packages access1783 for user type anonymous1784 has the correct response header1785 behaves like returning response status1786 returns unauthorized1787 behaves like deploy token for package GET requests1788 with deploy token headers1789 valid token1790 behaves like returning response status1791 returns success1792 invalid token1793 behaves like returning response status1794 returns unauthorized1795 behaves like rejects nuget access with unknown target id1796 with an unknown target1797 as anonymous1798 behaves like rejects nuget packages access1799 for user type anonymous1800 has the correct response header1801 behaves like returning response status1802 returns unauthorized1803 as authenticated user1804 behaves like rejects nuget packages access1805 for user type anonymous1806 behaves like returning response status1807 returns not_found1808 behaves like rejects nuget access with invalid target id1809 with a target id with invalid integers1810 id: "/../", status: :bad_request1811 behaves like rejects nuget packages access1812 for user type anonymous1813 behaves like returning response status1814 returns bad_request1815 id: "", status: :not_found1816 behaves like rejects nuget packages access1817 for user type anonymous1818 behaves like returning response status1819 returns not_found1820 id: "%20", status: :bad_request1821 behaves like rejects nuget packages access1822 for user type anonymous1823 behaves like returning response status1824 returns bad_request1825 id: "%2e%2e%2f", status: :bad_request1826 behaves like rejects nuget packages access1827 for user type anonymous1828 behaves like returning response status1829 returns bad_request1830 id: "NaN", status: :bad_request1831 behaves like rejects nuget packages access1832 for user type anonymous1833 behaves like returning response status1834 returns bad_request1835 id: 1253, status: :unauthorized1836 behaves like rejects nuget packages access1837 for user type anonymous1838 has the correct response header1839 behaves like returning response status1840 returns unauthorized1841 id: "anything25", status: :bad_request1842 behaves like rejects nuget packages access1843 for user type anonymous1844 behaves like returning response status1845 returns bad_request1846 behaves like accept get request on private project with access to package registry for everyone1847 behaves like returning response status1848 returns ok1849 GET /api/v4/projects/:id/packages/nuget/download/*package_name/index1850 with valid target1851 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1852 behaves like process nuget download versions request1853 for user type developer1854 behaves like returning response status1855 returns success1856 behaves like returns a valid nuget download versions json response1857 returns a valid json response1858 with invalid format1859 behaves like rejects nuget packages access1860 for user type anonymous1861 behaves like returning response status1862 returns not_found1863 with lower case package name1864 behaves like returning response status1865 returns success1866 behaves like returns a valid nuget download versions json response1867 returns a valid json response1868 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1869 behaves like process nuget download versions request1870 for user type guest1871 behaves like returning response status1872 returns success1873 behaves like returns a valid nuget download versions json response1874 returns a valid json response1875 with invalid format1876 behaves like rejects nuget packages access1877 for user type anonymous1878 behaves like returning response status1879 returns not_found1880 with lower case package name1881 behaves like returning response status1882 returns success1883 behaves like returns a valid nuget download versions json response1884 returns a valid json response1885 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1886 behaves like rejects nuget packages access1887 for user type developer1888 has the correct response header1889 behaves like returning response status1890 returns unauthorized1891 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1892 behaves like rejects nuget packages access1893 for user type guest1894 has the correct response header1895 behaves like returning response status1896 returns unauthorized1897 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1898 behaves like process nuget download versions request1899 for user type developer1900 behaves like returning response status1901 returns success1902 behaves like returns a valid nuget download versions json response1903 returns a valid json response1904 with invalid format1905 behaves like rejects nuget packages access1906 for user type anonymous1907 behaves like returning response status1908 returns not_found1909 with lower case package name1910 behaves like returning response status1911 returns success1912 behaves like returns a valid nuget download versions json response1913 returns a valid json response1914 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1915 behaves like process nuget download versions request1916 for user type guest1917 behaves like returning response status1918 returns success1919 behaves like returns a valid nuget download versions json response1920 returns a valid json response1921 with invalid format1922 behaves like rejects nuget packages access1923 for user type anonymous1924 behaves like returning response status1925 returns not_found1926 with lower case package name1927 behaves like returning response status1928 returns success1929 behaves like returns a valid nuget download versions json response1930 returns a valid json response1931 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1932 behaves like rejects nuget packages access1933 for user type developer1934 has the correct response header1935 behaves like returning response status1936 returns unauthorized1937 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1938 behaves like rejects nuget packages access1939 for user type guest1940 has the correct response header1941 behaves like returning response status1942 returns unauthorized1943 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1944 behaves like process nuget download versions request1945 for user type anonymous1946 behaves like returning response status1947 returns success1948 behaves like returns a valid nuget download versions json response1949 returns a valid json response1950 with invalid format1951 behaves like rejects nuget packages access1952 for user type anonymous1953 behaves like returning response status1954 returns not_found1955 with lower case package name1956 behaves like returning response status1957 returns success1958 behaves like returns a valid nuget download versions json response1959 returns a valid json response1960 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download versions request", expected_status: :success1961 behaves like process nuget download versions request1962 for user type developer1963 behaves like returning response status1964 returns success1965 behaves like returns a valid nuget download versions json response1966 returns a valid json response1967 with invalid format1968 behaves like rejects nuget packages access1969 for user type anonymous1970 behaves like returning response status1971 returns not_found1972 with lower case package name1973 behaves like returning response status1974 returns success1975 behaves like returns a valid nuget download versions json response1976 returns a valid json response1977 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden1978 behaves like rejects nuget packages access1979 for user type guest1980 behaves like returning response status1981 returns forbidden1982 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1983 behaves like rejects nuget packages access1984 for user type developer1985 has the correct response header1986 behaves like returning response status1987 returns unauthorized1988 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized1989 behaves like rejects nuget packages access1990 for user type guest1991 has the correct response header1992 behaves like returning response status1993 returns unauthorized1994 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found1995 behaves like rejects nuget packages access1996 for user type developer1997 behaves like returning response status1998 returns not_found1999 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2000 behaves like rejects nuget packages access2001 for user type guest2002 behaves like returning response status2003 returns not_found2004 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2005 behaves like rejects nuget packages access2006 for user type developer2007 has the correct response header2008 behaves like returning response status2009 returns unauthorized2010 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2011 behaves like rejects nuget packages access2012 for user type guest2013 has the correct response header2014 behaves like returning response status2015 returns unauthorized2016 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2017 behaves like rejects nuget packages access2018 for user type anonymous2019 has the correct response header2020 behaves like returning response status2021 returns unauthorized2022 behaves like deploy token for package GET requests2023 with deploy token headers2024 valid token2025 behaves like returning response status2026 returns success2027 invalid token2028 behaves like returning response status2029 returns unauthorized2030 behaves like rejects nuget access with unknown target id2031 with an unknown target2032 as anonymous2033 behaves like rejects nuget packages access2034 for user type anonymous2035 has the correct response header2036 behaves like returning response status2037 returns unauthorized2038 as authenticated user2039 behaves like rejects nuget packages access2040 for user type anonymous2041 behaves like returning response status2042 returns not_found2043 behaves like rejects nuget access with invalid target id2044 with a target id with invalid integers2045 id: "/../", status: :bad_request2046 behaves like rejects nuget packages access2047 for user type anonymous2048 behaves like returning response status2049 returns bad_request2050 id: "", status: :not_found2051 behaves like rejects nuget packages access2052 for user type anonymous2053 behaves like returning response status2054 returns not_found2055 id: "%20", status: :bad_request2056 behaves like rejects nuget packages access2057 for user type anonymous2058 behaves like returning response status2059 returns bad_request2060 id: "%2e%2e%2f", status: :bad_request2061 behaves like rejects nuget packages access2062 for user type anonymous2063 behaves like returning response status2064 returns bad_request2065 id: "NaN", status: :bad_request2066 behaves like rejects nuget packages access2067 for user type anonymous2068 behaves like returning response status2069 returns bad_request2070 id: 1253, status: :unauthorized2071 behaves like rejects nuget packages access2072 for user type anonymous2073 has the correct response header2074 behaves like returning response status2075 returns unauthorized2076 id: "anything25", status: :bad_request2077 behaves like rejects nuget packages access2078 for user type anonymous2079 behaves like returning response status2080 returns bad_request2081 behaves like accept get request on private project with access to package registry for everyone2082 behaves like returning response status2083 returns ok2084 GET /api/v4/projects/:id/packages/nuget/download/*package_name/*package_version/*package_filename2085 with valid target2086 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2087 behaves like process nuget download content request2088 for user type developer2089 returns a valid package archive2090 behaves like returning response status2091 returns success2092 behaves like a package tracking event2093 creates a gitlab tracking event pull_package2094 behaves like bumping the package last downloaded at field2095 bumps last_downloaded_at2096 with invalid format2097 behaves like rejects nuget packages access2098 for user type anonymous2099 behaves like returning response status2100 returns not_found2101 with symbol package2102 returns a valid package archive2103 behaves like a package tracking event2104 creates a gitlab tracking event pull_symbol_package2105 behaves like bumping the package last downloaded at field2106 bumps last_downloaded_at2107 with lower case package name2108 returns a valid package archive2109 behaves like returning response status2110 returns success2111 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2112 behaves like process nuget download content request2113 for user type guest2114 returns a valid package archive2115 behaves like returning response status2116 returns success2117 behaves like a package tracking event2118 creates a gitlab tracking event pull_package2119 behaves like bumping the package last downloaded at field2120 bumps last_downloaded_at2121 with invalid format2122 behaves like rejects nuget packages access2123 for user type anonymous2124 behaves like returning response status2125 returns not_found2126 with symbol package2127 returns a valid package archive2128 behaves like a package tracking event2129 creates a gitlab tracking event pull_symbol_package2130 behaves like bumping the package last downloaded at field2131 bumps last_downloaded_at2132 with lower case package name2133 returns a valid package archive2134 behaves like returning response status2135 returns success2136 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2137 behaves like rejects nuget packages access2138 for user type developer2139 has the correct response header2140 behaves like returning response status2141 returns unauthorized2142 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2143 behaves like rejects nuget packages access2144 for user type guest2145 has the correct response header2146 behaves like returning response status2147 returns unauthorized2148 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2149 behaves like process nuget download content request2150 for user type developer2151 returns a valid package archive2152 behaves like returning response status2153 returns success2154 behaves like a package tracking event2155 creates a gitlab tracking event pull_package2156 behaves like bumping the package last downloaded at field2157 bumps last_downloaded_at2158 with invalid format2159 behaves like rejects nuget packages access2160 for user type anonymous2161 behaves like returning response status2162 returns not_found2163 with symbol package2164 returns a valid package archive2165 behaves like a package tracking event2166 creates a gitlab tracking event pull_symbol_package2167 behaves like bumping the package last downloaded at field2168 bumps last_downloaded_at2169 with lower case package name2170 returns a valid package archive2171 behaves like returning response status2172 returns success2173 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2174 behaves like process nuget download content request2175 for user type guest2176 returns a valid package archive2177 behaves like returning response status2178 returns success2179 behaves like a package tracking event2180 creates a gitlab tracking event pull_package2181 behaves like bumping the package last downloaded at field2182 bumps last_downloaded_at2183 with invalid format2184 behaves like rejects nuget packages access2185 for user type anonymous2186 behaves like returning response status2187 returns not_found2188 with symbol package2189 returns a valid package archive2190 behaves like a package tracking event2191 creates a gitlab tracking event pull_symbol_package2192 behaves like bumping the package last downloaded at field2193 bumps last_downloaded_at2194 with lower case package name2195 returns a valid package archive2196 behaves like returning response status2197 returns success2198 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2199 behaves like rejects nuget packages access2200 for user type developer2201 has the correct response header2202 behaves like returning response status2203 returns unauthorized2204 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2205 behaves like rejects nuget packages access2206 for user type guest2207 has the correct response header2208 behaves like returning response status2209 returns unauthorized2210 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2211 behaves like process nuget download content request2212 for user type anonymous2213 returns a valid package archive2214 behaves like returning response status2215 returns success2216 behaves like a package tracking event2217 creates a gitlab tracking event pull_package2218 behaves like bumping the package last downloaded at field2219 bumps last_downloaded_at2220 with invalid format2221 behaves like rejects nuget packages access2222 for user type anonymous2223 behaves like returning response status2224 returns not_found2225 with symbol package2226 returns a valid package archive2227 behaves like a package tracking event2228 creates a gitlab tracking event pull_symbol_package2229 behaves like bumping the package last downloaded at field2230 bumps last_downloaded_at2231 with lower case package name2232 returns a valid package archive2233 behaves like returning response status2234 returns success2235 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget download content request", expected_status: :success2236 behaves like process nuget download content request2237 for user type developer2238 returns a valid package archive2239 behaves like returning response status2240 returns success2241 behaves like a package tracking event2242 creates a gitlab tracking event pull_package2243 behaves like bumping the package last downloaded at field2244 bumps last_downloaded_at2245 with invalid format2246 behaves like rejects nuget packages access2247 for user type anonymous2248 behaves like returning response status2249 returns not_found2250 with symbol package2251 returns a valid package archive2252 behaves like a package tracking event2253 creates a gitlab tracking event pull_symbol_package2254 behaves like bumping the package last downloaded at field2255 bumps last_downloaded_at2256 with lower case package name2257 returns a valid package archive2258 behaves like returning response status2259 returns success2260 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2261 behaves like rejects nuget packages access2262 for user type guest2263 behaves like returning response status2264 returns forbidden2265 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2266 behaves like rejects nuget packages access2267 for user type developer2268 has the correct response header2269 behaves like returning response status2270 returns unauthorized2271 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2272 behaves like rejects nuget packages access2273 for user type guest2274 has the correct response header2275 behaves like returning response status2276 returns unauthorized2277 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2278 behaves like rejects nuget packages access2279 for user type developer2280 behaves like returning response status2281 returns not_found2282 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2283 behaves like rejects nuget packages access2284 for user type guest2285 behaves like returning response status2286 returns not_found2287 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2288 behaves like rejects nuget packages access2289 for user type developer2290 has the correct response header2291 behaves like returning response status2292 returns unauthorized2293 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2294 behaves like rejects nuget packages access2295 for user type guest2296 has the correct response header2297 behaves like returning response status2298 returns unauthorized2299 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2300 behaves like rejects nuget packages access2301 for user type anonymous2302 has the correct response header2303 behaves like returning response status2304 returns unauthorized2305 behaves like accept get request on private project with access to package registry for everyone2306 behaves like returning response status2307 returns ok2308 behaves like deploy token for package GET requests2309 with deploy token headers2310 valid token2311 behaves like returning response status2312 returns success2313 invalid token2314 behaves like returning response status2315 returns unauthorized2316 behaves like rejects nuget access with unknown target id2317 with an unknown target2318 as anonymous2319 behaves like rejects nuget packages access2320 for user type anonymous2321 has the correct response header2322 behaves like returning response status2323 returns unauthorized2324 as authenticated user2325 behaves like rejects nuget packages access2326 for user type anonymous2327 behaves like returning response status2328 returns not_found2329 behaves like rejects nuget access with invalid target id2330 with a target id with invalid integers2331 id: "/../", status: :bad_request2332 behaves like rejects nuget packages access2333 for user type anonymous2334 behaves like returning response status2335 returns bad_request2336 id: "", status: :not_found2337 behaves like rejects nuget packages access2338 for user type anonymous2339 behaves like returning response status2340 returns not_found2341 id: "%20", status: :bad_request2342 behaves like rejects nuget packages access2343 for user type anonymous2344 behaves like returning response status2345 returns bad_request2346 id: "%2e%2e%2f", status: :bad_request2347 behaves like rejects nuget packages access2348 for user type anonymous2349 behaves like returning response status2350 returns bad_request2351 id: "NaN", status: :bad_request2352 behaves like rejects nuget packages access2353 for user type anonymous2354 behaves like returning response status2355 returns bad_request2356 id: 1253, status: :unauthorized2357 behaves like rejects nuget packages access2358 for user type anonymous2359 has the correct response header2360 behaves like returning response status2361 returns unauthorized2362 id: "anything25", status: :bad_request2363 behaves like rejects nuget packages access2364 for user type anonymous2365 behaves like returning response status2366 returns bad_request2367 PUT /api/v4/projects/:id/packages/nuget/authorize2368 behaves like nuget authorize upload endpoint2369 with valid project2370 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2371 behaves like process nuget workhorse authorization2372 for user type developer2373 has the proper content type2374 behaves like returning response status2375 returns success2376 with a request that bypassed gitlab-workhorse2377 behaves like returning response status2378 returns forbidden2379 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2380 behaves like rejects nuget packages access2381 for user type guest2382 behaves like returning response status2383 returns forbidden2384 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2385 behaves like rejects nuget packages access2386 for user type developer2387 has the correct response header2388 behaves like returning response status2389 returns unauthorized2390 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2391 behaves like rejects nuget packages access2392 for user type guest2393 has the correct response header2394 behaves like returning response status2395 returns unauthorized2396 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2397 behaves like rejects nuget packages access2398 for user type developer2399 behaves like returning response status2400 returns forbidden2401 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2402 behaves like rejects nuget packages access2403 for user type guest2404 behaves like returning response status2405 returns forbidden2406 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2407 behaves like rejects nuget packages access2408 for user type developer2409 has the correct response header2410 behaves like returning response status2411 returns unauthorized2412 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2413 behaves like rejects nuget packages access2414 for user type guest2415 has the correct response header2416 behaves like returning response status2417 returns unauthorized2418 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2419 behaves like rejects nuget packages access2420 for user type anonymous2421 has the correct response header2422 behaves like returning response status2423 returns unauthorized2424 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2425 behaves like process nuget workhorse authorization2426 for user type developer2427 has the proper content type2428 behaves like returning response status2429 returns success2430 with a request that bypassed gitlab-workhorse2431 behaves like returning response status2432 returns forbidden2433 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2434 behaves like rejects nuget packages access2435 for user type guest2436 behaves like returning response status2437 returns forbidden2438 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2439 behaves like rejects nuget packages access2440 for user type developer2441 has the correct response header2442 behaves like returning response status2443 returns unauthorized2444 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2445 behaves like rejects nuget packages access2446 for user type guest2447 has the correct response header2448 behaves like returning response status2449 returns unauthorized2450 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2451 behaves like rejects nuget packages access2452 for user type developer2453 behaves like returning response status2454 returns not_found2455 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2456 behaves like rejects nuget packages access2457 for user type guest2458 behaves like returning response status2459 returns not_found2460 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2461 behaves like rejects nuget packages access2462 for user type developer2463 has the correct response header2464 behaves like returning response status2465 returns unauthorized2466 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2467 behaves like rejects nuget packages access2468 for user type guest2469 has the correct response header2470 behaves like returning response status2471 returns unauthorized2472 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2473 behaves like rejects nuget packages access2474 for user type anonymous2475 has the correct response header2476 behaves like returning response status2477 returns unauthorized2478 behaves like deploy token for package uploads2479 with deploy token headers2480 valid token2481 behaves like returning response status2482 returns success2483 invalid token2484 behaves like returning response status2485 returns unauthorized2486 behaves like job token for package uploads2487 with job token headers2488 valid token2489 behaves like returning response status2490 returns success2491 invalid token2492 behaves like returning response status2493 returns unauthorized2494 invalid user2495 behaves like returning response status2496 returns unauthorized2497 behaves like rejects nuget access with unknown target id2498 with an unknown target2499 as anonymous2500 behaves like rejects nuget packages access2501 for user type anonymous2502 has the correct response header2503 behaves like returning response status2504 returns unauthorized2505 as authenticated user2506 behaves like rejects nuget packages access2507 for user type anonymous2508 behaves like returning response status2509 returns not_found2510 behaves like rejects nuget access with invalid target id2511 with a target id with invalid integers2512 id: "/../", status: :bad_request2513 behaves like rejects nuget packages access2514 for user type anonymous2515 behaves like returning response status2516 returns bad_request2517 id: "", status: :not_found2518 behaves like rejects nuget packages access2519 for user type anonymous2520 behaves like returning response status2521 returns not_found2522 id: "%20", status: :bad_request2523 behaves like rejects nuget packages access2524 for user type anonymous2525 behaves like returning response status2526 returns bad_request2527 id: "%2e%2e%2f", status: :bad_request2528 behaves like rejects nuget packages access2529 for user type anonymous2530 behaves like returning response status2531 returns bad_request2532 id: "NaN", status: :bad_request2533 behaves like rejects nuget packages access2534 for user type anonymous2535 behaves like returning response status2536 returns bad_request2537 id: 1253, status: :unauthorized2538 behaves like rejects nuget packages access2539 for user type anonymous2540 has the correct response header2541 behaves like returning response status2542 returns unauthorized2543 id: "anything25", status: :bad_request2544 behaves like rejects nuget packages access2545 for user type anonymous2546 behaves like returning response status2547 returns bad_request2548 PUT /api/v4/projects/:id/packages/nuget2549 behaves like nuget upload endpoint2550 with valid project2551 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget upload", expected_status: :created2552 behaves like process nuget upload2553 for user type developer2554 with object storage disabled2555 without a file from workhorse2556 behaves like returning response status2557 returns bad_request2558 with correct params2559 behaves like package workhorse uploads2560 without a workhorse header2561 logs an error2562 behaves like returning response status2563 returns forbidden2564 behaves like creates nuget package files2565 creates package files2566 behaves like a package tracking event2567 creates a gitlab tracking event push_package2568 with object storage enabled2569 and direct upload enabled2570 behaves like creates nuget package files2571 creates package files2572 with invalid remote_id: 1231232573 behaves like returning response status2574 returns forbidden2575 with invalid remote_id: ../../1231232576 behaves like returning response status2577 returns forbidden2578 with crafted package.path param2579 does not create a package file2580 behaves like returning response status2581 returns bad_request2582 and direct upload disabled2583 behaves like creates nuget package files2584 creates package files2585 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2586 behaves like rejects nuget packages access2587 for user type guest2588 behaves like returning response status2589 returns forbidden2590 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2591 behaves like rejects nuget packages access2592 for user type developer2593 has the correct response header2594 behaves like returning response status2595 returns unauthorized2596 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2597 behaves like rejects nuget packages access2598 for user type guest2599 has the correct response header2600 behaves like returning response status2601 returns unauthorized2602 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2603 behaves like rejects nuget packages access2604 for user type developer2605 behaves like returning response status2606 returns forbidden2607 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2608 behaves like rejects nuget packages access2609 for user type guest2610 behaves like returning response status2611 returns forbidden2612 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2613 behaves like rejects nuget packages access2614 for user type developer2615 has the correct response header2616 behaves like returning response status2617 returns unauthorized2618 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2619 behaves like rejects nuget packages access2620 for user type guest2621 has the correct response header2622 behaves like returning response status2623 returns unauthorized2624 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2625 behaves like rejects nuget packages access2626 for user type anonymous2627 has the correct response header2628 behaves like returning response status2629 returns unauthorized2630 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget upload", expected_status: :created2631 behaves like process nuget upload2632 for user type developer2633 with object storage disabled2634 without a file from workhorse2635 behaves like returning response status2636 returns bad_request2637 with correct params2638 behaves like package workhorse uploads2639 without a workhorse header2640 logs an error2641 behaves like returning response status2642 returns forbidden2643 behaves like creates nuget package files2644 creates package files2645 behaves like a package tracking event2646 creates a gitlab tracking event push_package2647 with object storage enabled2648 and direct upload enabled2649 behaves like creates nuget package files2650 creates package files2651 with invalid remote_id: 1231232652 behaves like returning response status2653 returns forbidden2654 with invalid remote_id: ../../1231232655 behaves like returning response status2656 returns forbidden2657 with crafted package.path param2658 does not create a package file2659 behaves like returning response status2660 returns bad_request2661 and direct upload disabled2662 behaves like creates nuget package files2663 creates package files2664 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2665 behaves like rejects nuget packages access2666 for user type guest2667 behaves like returning response status2668 returns forbidden2669 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2670 behaves like rejects nuget packages access2671 for user type developer2672 has the correct response header2673 behaves like returning response status2674 returns unauthorized2675 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2676 behaves like rejects nuget packages access2677 for user type guest2678 has the correct response header2679 behaves like returning response status2680 returns unauthorized2681 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2682 behaves like rejects nuget packages access2683 for user type developer2684 behaves like returning response status2685 returns not_found2686 visibility_level: "PRIVATE", user_role: :guest, 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 guest2689 behaves like returning response status2690 returns not_found2691 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2692 behaves like rejects nuget packages access2693 for user type developer2694 has the correct response header2695 behaves like returning response status2696 returns unauthorized2697 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2698 behaves like rejects nuget packages access2699 for user type guest2700 has the correct response header2701 behaves like returning response status2702 returns unauthorized2703 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2704 behaves like rejects nuget packages access2705 for user type anonymous2706 has the correct response header2707 behaves like returning response status2708 returns unauthorized2709 behaves like deploy token for package uploads2710 with deploy token headers2711 valid token2712 behaves like returning response status2713 returns success2714 invalid token2715 behaves like returning response status2716 returns unauthorized2717 behaves like job token for package uploads2718 with job token headers2719 valid token2720 creates a package with build info2721 behaves like returning response status2722 returns success2723 invalid token2724 behaves like returning response status2725 returns unauthorized2726 invalid user2727 behaves like returning response status2728 returns unauthorized2729 behaves like rejects nuget access with unknown target id2730 with an unknown target2731 as anonymous2732 behaves like rejects nuget packages access2733 for user type anonymous2734 has the correct response header2735 behaves like returning response status2736 returns unauthorized2737 as authenticated user2738 behaves like rejects nuget packages access2739 for user type anonymous2740 behaves like returning response status2741 returns not_found2742 behaves like rejects nuget access with invalid target id2743 with a target id with invalid integers2744 id: "/../", status: :bad_request2745 behaves like rejects nuget packages access2746 for user type anonymous2747 behaves like returning response status2748 returns bad_request2749 id: "", status: :not_found2750 behaves like rejects nuget packages access2751 for user type anonymous2752 behaves like returning response status2753 returns not_found2754 id: "%20", status: :bad_request2755 behaves like rejects nuget packages access2756 for user type anonymous2757 behaves like returning response status2758 returns bad_request2759 id: "%2e%2e%2f", status: :bad_request2760 behaves like rejects nuget packages access2761 for user type anonymous2762 behaves like returning response status2763 returns bad_request2764 id: "NaN", status: :bad_request2765 behaves like rejects nuget packages access2766 for user type anonymous2767 behaves like returning response status2768 returns bad_request2769 id: 1253, status: :unauthorized2770 behaves like rejects nuget packages access2771 for user type anonymous2772 has the correct response header2773 behaves like returning response status2774 returns unauthorized2775 id: "anything25", status: :bad_request2776 behaves like rejects nuget packages access2777 for user type anonymous2778 behaves like returning response status2779 returns bad_request2780 file size above maximum limit2781 behaves like returning response status2782 returns bad_request2783 PUT /api/v4/projects/:id/packages/nuget/symbolpackage/authorize2784 behaves like nuget authorize upload endpoint2785 with valid project2786 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2787 behaves like process nuget workhorse authorization2788 for user type developer2789 has the proper content type2790 behaves like returning response status2791 returns success2792 with a request that bypassed gitlab-workhorse2793 behaves like returning response status2794 returns forbidden2795 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2796 behaves like rejects nuget packages access2797 for user type guest2798 behaves like returning response status2799 returns forbidden2800 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2801 behaves like rejects nuget packages access2802 for user type developer2803 has the correct response header2804 behaves like returning response status2805 returns unauthorized2806 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2807 behaves like rejects nuget packages access2808 for user type guest2809 has the correct response header2810 behaves like returning response status2811 returns unauthorized2812 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2813 behaves like rejects nuget packages access2814 for user type developer2815 behaves like returning response status2816 returns forbidden2817 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2818 behaves like rejects nuget packages access2819 for user type guest2820 behaves like returning response status2821 returns forbidden2822 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2823 behaves like rejects nuget packages access2824 for user type developer2825 has the correct response header2826 behaves like returning response status2827 returns unauthorized2828 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2829 behaves like rejects nuget packages access2830 for user type guest2831 has the correct response header2832 behaves like returning response status2833 returns unauthorized2834 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2835 behaves like rejects nuget packages access2836 for user type anonymous2837 has the correct response header2838 behaves like returning response status2839 returns unauthorized2840 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget workhorse authorization", expected_status: :success2841 behaves like process nuget workhorse authorization2842 for user type developer2843 has the proper content type2844 behaves like returning response status2845 returns success2846 with a request that bypassed gitlab-workhorse2847 behaves like returning response status2848 returns forbidden2849 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden2850 behaves like rejects nuget packages access2851 for user type guest2852 behaves like returning response status2853 returns forbidden2854 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2855 behaves like rejects nuget packages access2856 for user type developer2857 has the correct response header2858 behaves like returning response status2859 returns unauthorized2860 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2861 behaves like rejects nuget packages access2862 for user type guest2863 has the correct response header2864 behaves like returning response status2865 returns unauthorized2866 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2867 behaves like rejects nuget packages access2868 for user type developer2869 behaves like returning response status2870 returns not_found2871 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found2872 behaves like rejects nuget packages access2873 for user type guest2874 behaves like returning response status2875 returns not_found2876 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2877 behaves like rejects nuget packages access2878 for user type developer2879 has the correct response header2880 behaves like returning response status2881 returns unauthorized2882 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2883 behaves like rejects nuget packages access2884 for user type guest2885 has the correct response header2886 behaves like returning response status2887 returns unauthorized2888 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized2889 behaves like rejects nuget packages access2890 for user type anonymous2891 has the correct response header2892 behaves like returning response status2893 returns unauthorized2894 behaves like deploy token for package uploads2895 with deploy token headers2896 valid token2897 behaves like returning response status2898 returns success2899 invalid token2900 behaves like returning response status2901 returns unauthorized2902 behaves like job token for package uploads2903 with job token headers2904 valid token2905 behaves like returning response status2906 returns success2907 invalid token2908 behaves like returning response status2909 returns unauthorized2910 invalid user2911 behaves like returning response status2912 returns unauthorized2913 behaves like rejects nuget access with unknown target id2914 with an unknown target2915 as anonymous2916 behaves like rejects nuget packages access2917 for user type anonymous2918 has the correct response header2919 behaves like returning response status2920 returns unauthorized2921 as authenticated user2922 behaves like rejects nuget packages access2923 for user type anonymous2924 behaves like returning response status2925 returns not_found2926 behaves like rejects nuget access with invalid target id2927 with a target id with invalid integers2928 id: "/../", status: :bad_request2929 behaves like rejects nuget packages access2930 for user type anonymous2931 behaves like returning response status2932 returns bad_request2933 id: "", status: :not_found2934 behaves like rejects nuget packages access2935 for user type anonymous2936 behaves like returning response status2937 returns not_found2938 id: "%20", status: :bad_request2939 behaves like rejects nuget packages access2940 for user type anonymous2941 behaves like returning response status2942 returns bad_request2943 id: "%2e%2e%2f", status: :bad_request2944 behaves like rejects nuget packages access2945 for user type anonymous2946 behaves like returning response status2947 returns bad_request2948 id: "NaN", status: :bad_request2949 behaves like rejects nuget packages access2950 for user type anonymous2951 behaves like returning response status2952 returns bad_request2953 id: 1253, status: :unauthorized2954 behaves like rejects nuget packages access2955 for user type anonymous2956 has the correct response header2957 behaves like returning response status2958 returns unauthorized2959 id: "anything25", status: :bad_request2960 behaves like rejects nuget packages access2961 for user type anonymous2962 behaves like returning response status2963 returns bad_request2964 PUT /api/v4/projects/:id/packages/nuget/symbolpackage2965 behaves like nuget upload endpoint2966 with valid project2967 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget upload", expected_status: :created2968 behaves like process nuget upload2969 for user type developer2970 with object storage disabled2971 without a file from workhorse2972 behaves like returning response status2973 returns bad_request2974 with correct params2975 behaves like package workhorse uploads2976 without a workhorse header2977 logs an error2978 behaves like returning response status2979 returns forbidden2980 behaves like creates nuget package files2981 creates package files2982 behaves like a package tracking event2983 creates a gitlab tracking event push_symbol_package2984 with object storage enabled2985 and direct upload enabled2986 behaves like creates nuget package files2987 creates package files2988 with invalid remote_id: 1231232989 behaves like returning response status2990 returns forbidden2991 with invalid remote_id: ../../1231232992 behaves like returning response status2993 returns forbidden2994 with crafted package.path param2995 does not create a package file2996 behaves like returning response status2997 returns bad_request2998 and direct upload disabled2999 behaves like creates nuget package files3000 creates package files3001 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3002 behaves like rejects nuget packages access3003 for user type guest3004 behaves like returning response status3005 returns forbidden3006 visibility_level: "PUBLIC", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3007 behaves like rejects nuget packages access3008 for user type developer3009 has the correct response header3010 behaves like returning response status3011 returns unauthorized3012 visibility_level: "PUBLIC", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3013 behaves like rejects nuget packages access3014 for user type guest3015 has the correct response header3016 behaves like returning response status3017 returns unauthorized3018 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3019 behaves like rejects nuget packages access3020 for user type developer3021 behaves like returning response status3022 returns forbidden3023 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3024 behaves like rejects nuget packages access3025 for user type guest3026 behaves like returning response status3027 returns forbidden3028 visibility_level: "PUBLIC", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3029 behaves like rejects nuget packages access3030 for user type developer3031 has the correct response header3032 behaves like returning response status3033 returns unauthorized3034 visibility_level: "PUBLIC", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3035 behaves like rejects nuget packages access3036 for user type guest3037 has the correct response header3038 behaves like returning response status3039 returns unauthorized3040 visibility_level: "PUBLIC", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3041 behaves like rejects nuget packages access3042 for user type anonymous3043 has the correct response header3044 behaves like returning response status3045 returns unauthorized3046 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: true, shared_examples_name: "process nuget upload", expected_status: :created3047 behaves like process nuget upload3048 for user type developer3049 with object storage disabled3050 without a file from workhorse3051 behaves like returning response status3052 returns bad_request3053 with correct params3054 behaves like package workhorse uploads3055 without a workhorse header3056 logs an error3057 behaves like returning response status3058 returns forbidden3059 behaves like creates nuget package files3060 creates package files3061 behaves like a package tracking event3062 creates a gitlab tracking event push_symbol_package3063 with object storage enabled3064 and direct upload enabled3065 behaves like creates nuget package files3066 creates package files3067 with invalid remote_id: 1231233068 behaves like returning response status3069 returns forbidden3070 with invalid remote_id: ../../1231233071 behaves like returning response status3072 returns forbidden3073 with crafted package.path param3074 does not create a package file3075 behaves like returning response status3076 returns bad_request3077 and direct upload disabled3078 behaves like creates nuget package files3079 creates package files3080 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :forbidden3081 behaves like rejects nuget packages access3082 for user type guest3083 behaves like returning response status3084 returns forbidden3085 visibility_level: "PRIVATE", user_role: :developer, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3086 behaves like rejects nuget packages access3087 for user type developer3088 has the correct response header3089 behaves like returning response status3090 returns unauthorized3091 visibility_level: "PRIVATE", user_role: :guest, member: true, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3092 behaves like rejects nuget packages access3093 for user type guest3094 has the correct response header3095 behaves like returning response status3096 returns unauthorized3097 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3098 behaves like rejects nuget packages access3099 for user type developer3100 behaves like returning response status3101 returns not_found3102 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :not_found3103 behaves like rejects nuget packages access3104 for user type guest3105 behaves like returning response status3106 returns not_found3107 visibility_level: "PRIVATE", user_role: :developer, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3108 behaves like rejects nuget packages access3109 for user type developer3110 has the correct response header3111 behaves like returning response status3112 returns unauthorized3113 visibility_level: "PRIVATE", user_role: :guest, member: false, user_token: false, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3114 behaves like rejects nuget packages access3115 for user type guest3116 has the correct response header3117 behaves like returning response status3118 returns unauthorized3119 visibility_level: "PRIVATE", user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejects nuget packages access", expected_status: :unauthorized3120 behaves like rejects nuget packages access3121 for user type anonymous3122 has the correct response header3123 behaves like returning response status3124 returns unauthorized3125 behaves like deploy token for package uploads3126 with deploy token headers3127 valid token3128 behaves like returning response status3129 returns success3130 invalid token3131 behaves like returning response status3132 returns unauthorized3133 behaves like job token for package uploads3134 with job token headers3135 valid token3136 creates a package with build info3137 behaves like returning response status3138 returns success3139 invalid token3140 behaves like returning response status3141 returns unauthorized3142 invalid user3143 behaves like returning response status3144 returns unauthorized3145 behaves like rejects nuget access with unknown target id3146 with an unknown target3147 as anonymous3148 behaves like rejects nuget packages access3149 for user type anonymous3150 has the correct response header3151 behaves like returning response status3152 returns unauthorized3153 as authenticated user3154 behaves like rejects nuget packages access3155 for user type anonymous3156 behaves like returning response status3157 returns not_found3158 behaves like rejects nuget access with invalid target id3159 with a target id with invalid integers3160 id: "/../", status: :bad_request3161 behaves like rejects nuget packages access3162 for user type anonymous3163 behaves like returning response status3164 returns bad_request3165 id: "", status: :not_found3166 behaves like rejects nuget packages access3167 for user type anonymous3168 behaves like returning response status3169 returns not_found3170 id: "%20", status: :bad_request3171 behaves like rejects nuget packages access3172 for user type anonymous3173 behaves like returning response status3174 returns bad_request3175 id: "%2e%2e%2f", status: :bad_request3176 behaves like rejects nuget packages access3177 for user type anonymous3178 behaves like returning response status3179 returns bad_request3180 id: "NaN", status: :bad_request3181 behaves like rejects nuget packages access3182 for user type anonymous3183 behaves like returning response status3184 returns bad_request3185 id: 1253, status: :unauthorized3186 behaves like rejects nuget packages access3187 for user type anonymous3188 has the correct response header3189 behaves like returning response status3190 returns unauthorized3191 id: "anything25", status: :bad_request3192 behaves like rejects nuget packages access3193 for user type anonymous3194 behaves like returning response status3195 returns bad_request3196 file size above maximum limit3197 behaves like returning response status3198 returns bad_request3199API::Integrations3200 GET /projects/:id/integrations3201 returns authentication error when unauthenticated3202 returns error when authenticated but user is not a project owner3203 with integrations3204 returns a list of all active integrations3205 integration: "apple_app_store"3206 PUT /projects/:id/integrations/apple-app-store3207 updates apple_app_store settings and returns the correct fields3208 returns if required fields missing3209 DELETE /projects/:id/integrations/apple-app-store3210 deletes apple_app_store3211 GET /projects/:id/integrations/apple-app-store3212 returns authentication error when unauthenticated3213 returns all properties of active integration apple_app_store, except password fields3214 returns all properties of inactive integration apple_app_store, except password fields3215 returns not found if integration does not exist3216 returns not found if integration exists but is in `Project#disabled_integrations`3217 returns error when authenticated but not a project owner3218 integration: "asana"3219 PUT /projects/:id/integrations/asana3220 updates asana settings and returns the correct fields3221 returns if required fields missing3222 DELETE /projects/:id/integrations/asana3223 deletes asana3224 GET /projects/:id/integrations/asana3225 returns authentication error when unauthenticated3226 returns all properties of active integration asana, except password fields3227 returns all properties of inactive integration asana, except password fields3228 returns not found if integration does not exist3229 returns not found if integration exists but is in `Project#disabled_integrations`3230 returns error when authenticated but not a project owner3231 integration: "assembla"3232 PUT /projects/:id/integrations/assembla3233 updates assembla settings and returns the correct fields3234 returns if required fields missing3235 DELETE /projects/:id/integrations/assembla3236 deletes assembla3237 GET /projects/:id/integrations/assembla3238 returns authentication error when unauthenticated3239 returns all properties of active integration assembla, except password fields3240 returns all properties of inactive integration assembla, except password fields3241 returns not found if integration does not exist3242 returns not found if integration exists but is in `Project#disabled_integrations`3243 returns error when authenticated but not a project owner3244 integration: "bamboo"3245 PUT /projects/:id/integrations/bamboo3246 updates bamboo settings and returns the correct fields3247 returns if required fields missing3248 DELETE /projects/:id/integrations/bamboo3249 deletes bamboo3250 GET /projects/:id/integrations/bamboo3251 returns authentication error when unauthenticated3252 returns all properties of active integration bamboo, except password fields3253 returns all properties of inactive integration bamboo, except password fields3254 returns not found if integration does not exist3255 returns not found if integration exists but is in `Project#disabled_integrations`3256 returns error when authenticated but not a project owner3257 integration: "bugzilla"3258 PUT /projects/:id/integrations/bugzilla3259 updates bugzilla settings and returns the correct fields3260 returns if required fields missing3261 DELETE /projects/:id/integrations/bugzilla3262 deletes bugzilla3263 GET /projects/:id/integrations/bugzilla3264 returns authentication error when unauthenticated3265 returns all properties of active integration bugzilla, except password fields3266 returns all properties of inactive integration bugzilla, except password fields3267 returns not found if integration does not exist3268 returns not found if integration exists but is in `Project#disabled_integrations`3269 returns error when authenticated but not a project owner3270 integration: "buildkite"3271 PUT /projects/:id/integrations/buildkite3272 updates buildkite settings and returns the correct fields3273 returns if required fields missing3274 DELETE /projects/:id/integrations/buildkite3275 deletes buildkite3276 GET /projects/:id/integrations/buildkite3277 returns authentication error when unauthenticated3278 returns all properties of active integration buildkite, except password fields3279 returns all properties of inactive integration buildkite, except password fields3280 returns not found if integration does not exist3281 returns not found if integration exists but is in `Project#disabled_integrations`3282 returns error when authenticated but not a project owner3283 integration: "campfire"3284 PUT /projects/:id/integrations/campfire3285 updates campfire settings and returns the correct fields3286 returns if required fields missing3287 DELETE /projects/:id/integrations/campfire3288 deletes campfire3289 GET /projects/:id/integrations/campfire3290 returns authentication error when unauthenticated3291 returns all properties of active integration campfire, except password fields3292 returns all properties of inactive integration campfire, except password fields3293 returns not found if integration does not exist3294 returns not found if integration exists but is in `Project#disabled_integrations`3295 returns error when authenticated but not a project owner3296 integration: "clickup"3297 PUT /projects/:id/integrations/clickup3298 updates clickup settings and returns the correct fields3299 returns if required fields missing3300 DELETE /projects/:id/integrations/clickup3301 deletes clickup3302 GET /projects/:id/integrations/clickup3303 returns authentication error when unauthenticated3304 returns all properties of active integration clickup, except password fields3305 returns all properties of inactive integration clickup, except password fields3306 returns not found if integration does not exist3307 returns not found if integration exists but is in `Project#disabled_integrations`3308 returns error when authenticated but not a project owner3309 integration: "confluence"3310 PUT /projects/:id/integrations/confluence3311 updates confluence settings and returns the correct fields3312 returns if required fields missing3313 DELETE /projects/:id/integrations/confluence3314 deletes confluence3315 GET /projects/:id/integrations/confluence3316 returns authentication error when unauthenticated3317 returns all properties of active integration confluence, except password fields3318 returns all properties of inactive integration confluence, except password fields3319 returns not found if integration does not exist3320 returns not found if integration exists but is in `Project#disabled_integrations`3321 returns error when authenticated but not a project owner3322 integration: "custom_issue_tracker"3323 PUT /projects/:id/integrations/custom-issue-tracker3324 updates custom_issue_tracker settings and returns the correct fields3325 returns if required fields missing3326 DELETE /projects/:id/integrations/custom-issue-tracker3327 deletes custom_issue_tracker3328 GET /projects/:id/integrations/custom-issue-tracker3329 returns authentication error when unauthenticated3330 returns all properties of active integration custom_issue_tracker, except password fields3331 returns all properties of inactive integration custom_issue_tracker, except password fields3332 returns not found if integration does not exist3333 returns not found if integration exists but is in `Project#disabled_integrations`3334 returns error when authenticated but not a project owner3335 integration: "datadog"3336 PUT /projects/:id/integrations/datadog3337 updates datadog settings and returns the correct fields3338 returns if required fields missing3339 DELETE /projects/:id/integrations/datadog3340 deletes datadog3341 GET /projects/:id/integrations/datadog3342 returns authentication error when unauthenticated3343 returns all properties of active integration datadog, except password fields3344 returns all properties of inactive integration datadog, except password fields3345 returns not found if integration does not exist3346 returns not found if integration exists but is in `Project#disabled_integrations`3347 returns error when authenticated but not a project owner3348 integration: "discord"3349 PUT /projects/:id/integrations/discord3350 updates discord settings and returns the correct fields3351 returns if required fields missing3352 DELETE /projects/:id/integrations/discord3353 deletes discord3354 GET /projects/:id/integrations/discord3355 returns authentication error when unauthenticated3356 returns all properties of active integration discord, except password fields3357 returns all properties of inactive integration discord, except password fields3358 returns not found if integration does not exist3359 returns not found if integration exists but is in `Project#disabled_integrations`3360 returns error when authenticated but not a project owner3361 integration: "drone_ci"3362 PUT /projects/:id/integrations/drone-ci3363 updates drone_ci settings and returns the correct fields3364 returns if required fields missing3365 DELETE /projects/:id/integrations/drone-ci3366 deletes drone_ci3367 GET /projects/:id/integrations/drone-ci3368 returns authentication error when unauthenticated3369 returns all properties of active integration drone_ci, except password fields3370 returns all properties of inactive integration drone_ci, except password fields3371 returns not found if integration does not exist3372 returns not found if integration exists but is in `Project#disabled_integrations`3373 returns error when authenticated but not a project owner3374 integration: "emails_on_push"3375 PUT /projects/:id/integrations/emails-on-push3376 updates emails_on_push settings and returns the correct fields3377 returns if required fields missing3378 DELETE /projects/:id/integrations/emails-on-push3379 deletes emails_on_push3380 GET /projects/:id/integrations/emails-on-push3381 returns authentication error when unauthenticated3382 returns all properties of active integration emails_on_push, except password fields3383 returns all properties of inactive integration emails_on_push, except password fields3384 returns not found if integration does not exist3385 returns not found if integration exists but is in `Project#disabled_integrations`3386 returns error when authenticated but not a project owner3387 integration: "ewm"3388 PUT /projects/:id/integrations/ewm3389 updates ewm settings and returns the correct fields3390 returns if required fields missing3391 DELETE /projects/:id/integrations/ewm3392 deletes ewm3393 GET /projects/:id/integrations/ewm3394 returns authentication error when unauthenticated3395 returns all properties of active integration ewm, except password fields3396 returns all properties of inactive integration ewm, except password fields3397 returns not found if integration does not exist3398 returns not found if integration exists but is in `Project#disabled_integrations`3399 returns error when authenticated but not a project owner3400 integration: "external_wiki"3401 PUT /projects/:id/integrations/external-wiki3402 updates external_wiki settings and returns the correct fields3403 returns if required fields missing3404 DELETE /projects/:id/integrations/external-wiki3405 deletes external_wiki3406 GET /projects/:id/integrations/external-wiki3407 returns authentication error when unauthenticated3408 returns all properties of active integration external_wiki, except password fields3409 returns all properties of inactive integration external_wiki, except password fields3410 returns not found if integration does not exist3411 returns not found if integration exists but is in `Project#disabled_integrations`3412 returns error when authenticated but not a project owner3413 integration: "github"3414 PUT /projects/:id/integrations/github3415 updates github settings and returns the correct fields3416 returns if required fields missing3417 DELETE /projects/:id/integrations/github3418 deletes github3419 GET /projects/:id/integrations/github3420 returns authentication error when unauthenticated3421 returns all properties of active integration github, except password fields3422 returns all properties of inactive integration github, except password fields3423 returns not found if integration does not exist3424 returns not found if integration exists but is in `Project#disabled_integrations`3425 returns error when authenticated but not a project owner3426 integration: "google_play"3427 PUT /projects/:id/integrations/google-play3428 updates google_play settings and returns the correct fields3429 returns if required fields missing3430 DELETE /projects/:id/integrations/google-play3431 deletes google_play3432 GET /projects/:id/integrations/google-play3433 returns authentication error when unauthenticated3434 returns all properties of active integration google_play, except password fields3435 returns all properties of inactive integration google_play, except password fields3436 returns not found if integration does not exist3437 returns not found if integration exists but is in `Project#disabled_integrations`3438 returns error when authenticated but not a project owner3439 integration: "hangouts_chat"3440 PUT /projects/:id/integrations/hangouts-chat3441 updates hangouts_chat settings and returns the correct fields3442 returns if required fields missing3443 DELETE /projects/:id/integrations/hangouts-chat3444 deletes hangouts_chat3445 GET /projects/:id/integrations/hangouts-chat3446 returns authentication error when unauthenticated3447 returns all properties of active integration hangouts_chat, except password fields3448 returns all properties of inactive integration hangouts_chat, except password fields3449 returns not found if integration does not exist3450 returns not found if integration exists but is in `Project#disabled_integrations`3451 returns error when authenticated but not a project owner3452 integration: "harbor"3453 PUT /projects/:id/integrations/harbor3454 updates harbor settings and returns the correct fields3455 returns if required fields missing3456 DELETE /projects/:id/integrations/harbor3457 deletes harbor3458 GET /projects/:id/integrations/harbor3459 returns authentication error when unauthenticated3460 returns all properties of active integration harbor, except password fields3461 returns all properties of inactive integration harbor, except password fields3462 returns not found if integration does not exist3463 returns not found if integration exists but is in `Project#disabled_integrations`3464 returns error when authenticated but not a project owner3465 integration: "irker"3466 PUT /projects/:id/integrations/irker3467 updates irker settings and returns the correct fields3468 returns if required fields missing3469 DELETE /projects/:id/integrations/irker3470 deletes irker3471 GET /projects/:id/integrations/irker3472 returns authentication error when unauthenticated3473 returns all properties of active integration irker, except password fields3474 returns all properties of inactive integration irker, except password fields3475 returns not found if integration does not exist3476 returns not found if integration exists but is in `Project#disabled_integrations`3477 returns error when authenticated but not a project owner3478 integration: "jenkins"3479 PUT /projects/:id/integrations/jenkins3480 updates jenkins settings and returns the correct fields3481 returns if required fields missing3482 DELETE /projects/:id/integrations/jenkins3483 deletes jenkins3484 GET /projects/:id/integrations/jenkins3485 returns authentication error when unauthenticated3486 returns all properties of active integration jenkins, except password fields3487 returns all properties of inactive integration jenkins, except password fields3488 returns not found if integration does not exist3489 returns not found if integration exists but is in `Project#disabled_integrations`3490 returns error when authenticated but not a project owner3491 integration: "jira"3492 PUT /projects/:id/integrations/jira3493 updates jira settings and returns the correct fields3494 returns if required fields missing3495 DELETE /projects/:id/integrations/jira3496 deletes jira3497 GET /projects/:id/integrations/jira3498 returns authentication error when unauthenticated3499 returns all properties of active integration jira, except password fields3500 returns all properties of inactive integration jira, except password fields3501 returns not found if integration does not exist3502 returns not found if integration exists but is in `Project#disabled_integrations`3503 returns error when authenticated but not a project owner3504 integration: "mattermost"3505 PUT /projects/:id/integrations/mattermost3506 updates mattermost settings and returns the correct fields3507 returns if required fields missing3508 DELETE /projects/:id/integrations/mattermost3509 deletes mattermost3510 GET /projects/:id/integrations/mattermost3511 returns authentication error when unauthenticated3512 returns all properties of active integration mattermost, except password fields3513 returns all properties of inactive integration mattermost, except password fields3514 returns not found if integration does not exist3515 returns not found if integration exists but is in `Project#disabled_integrations`3516 returns error when authenticated but not a project owner3517 integration: "mattermost_slash_commands"3518 PUT /projects/:id/integrations/mattermost-slash-commands3519 updates mattermost_slash_commands settings and returns the correct fields3520 returns if required fields missing3521 DELETE /projects/:id/integrations/mattermost-slash-commands3522 deletes mattermost_slash_commands3523 GET /projects/:id/integrations/mattermost-slash-commands3524 returns authentication error when unauthenticated3525 returns all properties of active integration mattermost_slash_commands, except password fields3526 returns all properties of inactive integration mattermost_slash_commands, except password fields3527 returns not found if integration does not exist3528 returns not found if integration exists but is in `Project#disabled_integrations`3529 returns error when authenticated but not a project owner3530 integration: "microsoft_teams"3531 PUT /projects/:id/integrations/microsoft-teams3532 updates microsoft_teams settings and returns the correct fields3533 returns if required fields missing3534 DELETE /projects/:id/integrations/microsoft-teams3535 deletes microsoft_teams3536 GET /projects/:id/integrations/microsoft-teams3537 returns authentication error when unauthenticated3538 returns all properties of active integration microsoft_teams, except password fields3539 returns all properties of inactive integration microsoft_teams, except password fields3540 returns not found if integration does not exist3541 returns not found if integration exists but is in `Project#disabled_integrations`3542 returns error when authenticated but not a project owner3543 integration: "mock_ci"3544 PUT /projects/:id/integrations/mock-ci3545 updates mock_ci settings and returns the correct fields3546 returns if required fields missing3547 DELETE /projects/:id/integrations/mock-ci3548 deletes mock_ci3549 GET /projects/:id/integrations/mock-ci3550 returns authentication error when unauthenticated3551 returns all properties of active integration mock_ci, except password fields3552 returns all properties of inactive integration mock_ci, except password fields3553 returns not found if integration does not exist3554 returns not found if integration exists but is in `Project#disabled_integrations`3555 returns error when authenticated but not a project owner3556 integration: "mock_monitoring"3557 PUT /projects/:id/integrations/mock-monitoring3558 updates mock_monitoring settings and returns the correct fields3559 returns if required fields missing3560 DELETE /projects/:id/integrations/mock-monitoring3561 deletes mock_monitoring3562 GET /projects/:id/integrations/mock-monitoring3563 returns authentication error when unauthenticated3564 returns all properties of active integration mock_monitoring, except password fields3565 returns all properties of inactive integration mock_monitoring, except password fields3566 returns not found if integration does not exist3567 returns not found if integration exists but is in `Project#disabled_integrations`3568 returns error when authenticated but not a project owner3569 integration: "packagist"3570 PUT /projects/:id/integrations/packagist3571 updates packagist settings and returns the correct fields3572 returns if required fields missing3573 DELETE /projects/:id/integrations/packagist3574 deletes packagist3575 GET /projects/:id/integrations/packagist3576 returns authentication error when unauthenticated3577 returns all properties of active integration packagist, except password fields3578 returns all properties of inactive integration packagist, except password fields3579 returns not found if integration does not exist3580 returns not found if integration exists but is in `Project#disabled_integrations`3581 returns error when authenticated but not a project owner3582 integration: "pipelines_email"3583 PUT /projects/:id/integrations/pipelines-email3584 updates pipelines_email settings and returns the correct fields3585 returns if required fields missing3586 DELETE /projects/:id/integrations/pipelines-email3587 deletes pipelines_email3588 GET /projects/:id/integrations/pipelines-email3589 returns authentication error when unauthenticated3590 returns all properties of active integration pipelines_email, except password fields3591 returns all properties of inactive integration pipelines_email, except password fields3592 returns not found if integration does not exist3593 returns not found if integration exists but is in `Project#disabled_integrations`3594 returns error when authenticated but not a project owner3595 integration: "pivotaltracker"3596 PUT /projects/:id/integrations/pivotaltracker3597 updates pivotaltracker settings and returns the correct fields3598 returns if required fields missing3599 DELETE /projects/:id/integrations/pivotaltracker3600 deletes pivotaltracker3601 GET /projects/:id/integrations/pivotaltracker3602 returns authentication error when unauthenticated3603 returns all properties of active integration pivotaltracker, except password fields3604 returns all properties of inactive integration pivotaltracker, except password fields3605 returns not found if integration does not exist3606 returns not found if integration exists but is in `Project#disabled_integrations`3607 returns error when authenticated but not a project owner3608 integration: "prometheus"3609 PUT /projects/:id/integrations/prometheus3610 updates prometheus settings and returns the correct fields3611 returns if required fields missing3612 DELETE /projects/:id/integrations/prometheus3613 deletes prometheus3614 GET /projects/:id/integrations/prometheus3615 returns authentication error when unauthenticated3616 returns all properties of active integration prometheus, except password fields3617 returns all properties of inactive integration prometheus, except password fields3618 returns not found if integration does not exist3619 returns not found if integration exists but is in `Project#disabled_integrations`3620 returns error when authenticated but not a project owner3621 integration: "pumble"3622 PUT /projects/:id/integrations/pumble3623 updates pumble settings and returns the correct fields3624 returns if required fields missing3625 DELETE /projects/:id/integrations/pumble3626 deletes pumble3627 GET /projects/:id/integrations/pumble3628 returns authentication error when unauthenticated3629 returns all properties of active integration pumble, except password fields3630 returns all properties of inactive integration pumble, except password fields3631 returns not found if integration does not exist3632 returns not found if integration exists but is in `Project#disabled_integrations`3633 returns error when authenticated but not a project owner3634 integration: "pushover"3635 PUT /projects/:id/integrations/pushover3636 updates pushover settings and returns the correct fields3637 returns if required fields missing3638 DELETE /projects/:id/integrations/pushover3639 deletes pushover3640 GET /projects/:id/integrations/pushover3641 returns authentication error when unauthenticated3642 returns all properties of active integration pushover, except password fields3643 returns all properties of inactive integration pushover, except password fields3644 returns not found if integration does not exist3645 returns not found if integration exists but is in `Project#disabled_integrations`3646 returns error when authenticated but not a project owner3647 integration: "redmine"3648 PUT /projects/:id/integrations/redmine3649 updates redmine settings and returns the correct fields3650 returns if required fields missing3651 DELETE /projects/:id/integrations/redmine3652 deletes redmine3653 GET /projects/:id/integrations/redmine3654 returns authentication error when unauthenticated3655 returns all properties of active integration redmine, except password fields3656 returns all properties of inactive integration redmine, except password fields3657 returns not found if integration does not exist3658 returns not found if integration exists but is in `Project#disabled_integrations`3659 returns error when authenticated but not a project owner3660 integration: "slack"3661 PUT /projects/:id/integrations/slack3662 updates slack settings and returns the correct fields3663 returns if required fields missing3664 DELETE /projects/:id/integrations/slack3665 deletes slack3666 GET /projects/:id/integrations/slack3667 returns authentication error when unauthenticated3668 returns all properties of active integration slack, except password fields3669 returns all properties of inactive integration slack, except password fields3670 returns not found if integration does not exist3671 returns not found if integration exists but is in `Project#disabled_integrations`3672 returns error when authenticated but not a project owner3673 integration: "slack_slash_commands"3674 PUT /projects/:id/integrations/slack-slash-commands3675 updates slack_slash_commands settings and returns the correct fields3676 returns if required fields missing3677 DELETE /projects/:id/integrations/slack-slash-commands3678 deletes slack_slash_commands3679 GET /projects/:id/integrations/slack-slash-commands3680 returns authentication error when unauthenticated3681 returns all properties of active integration slack_slash_commands, except password fields3682 returns all properties of inactive integration slack_slash_commands, except password fields3683 returns not found if integration does not exist3684 returns not found if integration exists but is in `Project#disabled_integrations`3685 returns error when authenticated but not a project owner3686 integration: "squash_tm"3687 PUT /projects/:id/integrations/squash-tm3688 updates squash_tm settings and returns the correct fields3689 returns if required fields missing3690 DELETE /projects/:id/integrations/squash-tm3691 deletes squash_tm3692 GET /projects/:id/integrations/squash-tm3693 returns authentication error when unauthenticated3694 returns all properties of active integration squash_tm, except password fields3695 returns all properties of inactive integration squash_tm, except password fields3696 returns not found if integration does not exist3697 returns not found if integration exists but is in `Project#disabled_integrations`3698 returns error when authenticated but not a project owner3699 integration: "teamcity"3700 PUT /projects/:id/integrations/teamcity3701 updates teamcity settings and returns the correct fields3702 returns if required fields missing3703 DELETE /projects/:id/integrations/teamcity3704 deletes teamcity3705 GET /projects/:id/integrations/teamcity3706 returns authentication error when unauthenticated3707 returns all properties of active integration teamcity, except password fields3708 returns all properties of inactive integration teamcity, except password fields3709 returns not found if integration does not exist3710 returns not found if integration exists but is in `Project#disabled_integrations`3711 returns error when authenticated but not a project owner3712 integration: "unify_circuit"3713 PUT /projects/:id/integrations/unify-circuit3714 updates unify_circuit settings and returns the correct fields3715 returns if required fields missing3716 DELETE /projects/:id/integrations/unify-circuit3717 deletes unify_circuit3718 GET /projects/:id/integrations/unify-circuit3719 returns authentication error when unauthenticated3720 returns all properties of active integration unify_circuit, except password fields3721 returns all properties of inactive integration unify_circuit, except password fields3722 returns not found if integration does not exist3723 returns not found if integration exists but is in `Project#disabled_integrations`3724 returns error when authenticated but not a project owner3725 integration: "webex_teams"3726 PUT /projects/:id/integrations/webex-teams3727 updates webex_teams settings and returns the correct fields3728 returns if required fields missing3729 DELETE /projects/:id/integrations/webex-teams3730 deletes webex_teams3731 GET /projects/:id/integrations/webex-teams3732 returns authentication error when unauthenticated3733 returns all properties of active integration webex_teams, except password fields3734 returns all properties of inactive integration webex_teams, except password fields3735 returns not found if integration does not exist3736 returns not found if integration exists but is in `Project#disabled_integrations`3737 returns error when authenticated but not a project owner3738 integration: "youtrack"3739 PUT /projects/:id/integrations/youtrack3740 updates youtrack settings and returns the correct fields3741 returns if required fields missing3742 DELETE /projects/:id/integrations/youtrack3743 deletes youtrack3744 GET /projects/:id/integrations/youtrack3745 returns authentication error when unauthenticated3746 returns all properties of active integration youtrack, except password fields3747 returns all properties of inactive integration youtrack, except password fields3748 returns not found if integration does not exist3749 returns not found if integration exists but is in `Project#disabled_integrations`3750 returns error when authenticated but not a project owner3751 POST /projects/:id/integrations/:slug/trigger3752 Mattermost integration3753 when no integration is available3754 returns a not found message3755 when the integration exists3756 when the integration is not active3757 when the integration is inactive3758 when the integration is active3759 returns status 2003760 when the project can not be found3761 returns a generic 4043762 Slack Integration3763 returns status 2003764 Mattermost integration3765 accepts a username for update3766 Microsoft Teams integration3767 accepts branches_to_be_notified for update3768 accepts notify_only_broken_pipelines for update3769 Hangouts Chat integration3770 accepts branches_to_be_notified for update3771 only requires the webhook param3772 Jira integration3773 returns the jira_issue_transition_id for get request3774 returns the jira_issue_transition_id for put request3775 Pipelines Email Integration3776 notify_only_broken_pipelines property was saved as a string3777 returns boolean values for notify_only_broken_pipelines3778 GET /projects/:id/services3779 returns authentication error when unauthenticated3780 returns error when authenticated but user is not a project owner3781 with integrations3782 returns a list of all active integrations3783 integration: "apple_app_store"3784 PUT /projects/:id/services/apple-app-store3785 updates apple_app_store settings and returns the correct fields3786 returns if required fields missing3787 DELETE /projects/:id/services/apple-app-store3788 deletes apple_app_store3789 GET /projects/:id/services/apple-app-store3790 returns authentication error when unauthenticated3791 returns all properties of active integration apple_app_store, except password fields3792 returns all properties of inactive integration apple_app_store, except password fields3793 returns not found if integration does not exist3794 returns not found if integration exists but is in `Project#disabled_integrations`3795 returns error when authenticated but not a project owner3796 integration: "asana"3797 PUT /projects/:id/services/asana3798 updates asana settings and returns the correct fields3799 returns if required fields missing3800 DELETE /projects/:id/services/asana3801 deletes asana3802 GET /projects/:id/services/asana3803 returns authentication error when unauthenticated3804 returns all properties of active integration asana, except password fields3805 returns all properties of inactive integration asana, except password fields3806 returns not found if integration does not exist3807 returns not found if integration exists but is in `Project#disabled_integrations`3808 returns error when authenticated but not a project owner3809 integration: "assembla"3810 PUT /projects/:id/services/assembla3811 updates assembla settings and returns the correct fields3812 returns if required fields missing3813 DELETE /projects/:id/services/assembla3814 deletes assembla3815 GET /projects/:id/services/assembla3816 returns authentication error when unauthenticated3817 returns all properties of active integration assembla, except password fields3818 returns all properties of inactive integration assembla, except password fields3819 returns not found if integration does not exist3820 returns not found if integration exists but is in `Project#disabled_integrations`3821 returns error when authenticated but not a project owner3822 integration: "bamboo"3823 PUT /projects/:id/services/bamboo3824 updates bamboo settings and returns the correct fields3825 returns if required fields missing3826 DELETE /projects/:id/services/bamboo3827 deletes bamboo3828 GET /projects/:id/services/bamboo3829 returns authentication error when unauthenticated3830 returns all properties of active integration bamboo, except password fields3831 returns all properties of inactive integration bamboo, except password fields3832 returns not found if integration does not exist3833 returns not found if integration exists but is in `Project#disabled_integrations`3834 returns error when authenticated but not a project owner3835 integration: "bugzilla"3836 PUT /projects/:id/services/bugzilla3837 updates bugzilla settings and returns the correct fields3838 returns if required fields missing3839 DELETE /projects/:id/services/bugzilla3840 deletes bugzilla3841 GET /projects/:id/services/bugzilla3842 returns authentication error when unauthenticated3843 returns all properties of active integration bugzilla, except password fields3844 returns all properties of inactive integration bugzilla, except password fields3845 returns not found if integration does not exist3846 returns not found if integration exists but is in `Project#disabled_integrations`3847 returns error when authenticated but not a project owner3848 integration: "buildkite"3849 PUT /projects/:id/services/buildkite3850 updates buildkite settings and returns the correct fields3851 returns if required fields missing3852 DELETE /projects/:id/services/buildkite3853 deletes buildkite3854 GET /projects/:id/services/buildkite3855 returns authentication error when unauthenticated3856 returns all properties of active integration buildkite, except password fields3857 returns all properties of inactive integration buildkite, except password fields3858 returns not found if integration does not exist3859 returns not found if integration exists but is in `Project#disabled_integrations`3860 returns error when authenticated but not a project owner3861 integration: "campfire"3862 PUT /projects/:id/services/campfire3863 updates campfire settings and returns the correct fields3864 returns if required fields missing3865 DELETE /projects/:id/services/campfire3866 deletes campfire3867 GET /projects/:id/services/campfire3868 returns authentication error when unauthenticated3869 returns all properties of active integration campfire, except password fields3870 returns all properties of inactive integration campfire, except password fields3871 returns not found if integration does not exist3872 returns not found if integration exists but is in `Project#disabled_integrations`3873 returns error when authenticated but not a project owner3874 integration: "clickup"3875 PUT /projects/:id/services/clickup3876 updates clickup settings and returns the correct fields3877 returns if required fields missing3878 DELETE /projects/:id/services/clickup3879 deletes clickup3880 GET /projects/:id/services/clickup3881 returns authentication error when unauthenticated3882 returns all properties of active integration clickup, except password fields3883 returns all properties of inactive integration clickup, except password fields3884 returns not found if integration does not exist3885 returns not found if integration exists but is in `Project#disabled_integrations`3886 returns error when authenticated but not a project owner3887 integration: "confluence"3888 PUT /projects/:id/services/confluence3889 updates confluence settings and returns the correct fields3890 returns if required fields missing3891 DELETE /projects/:id/services/confluence3892 deletes confluence3893 GET /projects/:id/services/confluence3894 returns authentication error when unauthenticated3895 returns all properties of active integration confluence, except password fields3896 returns all properties of inactive integration confluence, except password fields3897 returns not found if integration does not exist3898 returns not found if integration exists but is in `Project#disabled_integrations`3899 returns error when authenticated but not a project owner3900 integration: "custom_issue_tracker"3901 PUT /projects/:id/services/custom-issue-tracker3902 updates custom_issue_tracker settings and returns the correct fields3903 returns if required fields missing3904 DELETE /projects/:id/services/custom-issue-tracker3905 deletes custom_issue_tracker3906 GET /projects/:id/services/custom-issue-tracker3907 returns authentication error when unauthenticated3908 returns all properties of active integration custom_issue_tracker, except password fields3909 returns all properties of inactive integration custom_issue_tracker, except password fields3910 returns not found if integration does not exist3911 returns not found if integration exists but is in `Project#disabled_integrations`3912 returns error when authenticated but not a project owner3913 integration: "datadog"3914 PUT /projects/:id/services/datadog3915 updates datadog settings and returns the correct fields3916 returns if required fields missing3917 DELETE /projects/:id/services/datadog3918 deletes datadog3919 GET /projects/:id/services/datadog3920 returns authentication error when unauthenticated3921 returns all properties of active integration datadog, except password fields3922 returns all properties of inactive integration datadog, except password fields3923 returns not found if integration does not exist3924 returns not found if integration exists but is in `Project#disabled_integrations`3925 returns error when authenticated but not a project owner3926 integration: "discord"3927 PUT /projects/:id/services/discord3928 updates discord settings and returns the correct fields3929 returns if required fields missing3930 DELETE /projects/:id/services/discord3931 deletes discord3932 GET /projects/:id/services/discord3933 returns authentication error when unauthenticated3934 returns all properties of active integration discord, except password fields3935 returns all properties of inactive integration discord, except password fields3936 returns not found if integration does not exist3937 returns not found if integration exists but is in `Project#disabled_integrations`3938 returns error when authenticated but not a project owner3939 integration: "drone_ci"3940 PUT /projects/:id/services/drone-ci3941 updates drone_ci settings and returns the correct fields3942 returns if required fields missing3943 DELETE /projects/:id/services/drone-ci3944 deletes drone_ci3945 GET /projects/:id/services/drone-ci3946 returns authentication error when unauthenticated3947 returns all properties of active integration drone_ci, except password fields3948 returns all properties of inactive integration drone_ci, except password fields3949 returns not found if integration does not exist3950 returns not found if integration exists but is in `Project#disabled_integrations`3951 returns error when authenticated but not a project owner3952 integration: "emails_on_push"3953 PUT /projects/:id/services/emails-on-push3954 updates emails_on_push settings and returns the correct fields3955 returns if required fields missing3956 DELETE /projects/:id/services/emails-on-push3957 deletes emails_on_push3958 GET /projects/:id/services/emails-on-push3959 returns authentication error when unauthenticated3960 returns all properties of active integration emails_on_push, except password fields3961 returns all properties of inactive integration emails_on_push, except password fields3962 returns not found if integration does not exist3963 returns not found if integration exists but is in `Project#disabled_integrations`3964 returns error when authenticated but not a project owner3965 integration: "ewm"3966 PUT /projects/:id/services/ewm3967 updates ewm settings and returns the correct fields3968 returns if required fields missing3969 DELETE /projects/:id/services/ewm3970 deletes ewm3971 GET /projects/:id/services/ewm3972 returns authentication error when unauthenticated3973 returns all properties of active integration ewm, except password fields3974 returns all properties of inactive integration ewm, except password fields3975 returns not found if integration does not exist3976 returns not found if integration exists but is in `Project#disabled_integrations`3977 returns error when authenticated but not a project owner3978 integration: "external_wiki"3979 PUT /projects/:id/services/external-wiki3980 updates external_wiki settings and returns the correct fields3981 returns if required fields missing3982 DELETE /projects/:id/services/external-wiki3983 deletes external_wiki3984 GET /projects/:id/services/external-wiki3985 returns authentication error when unauthenticated3986 returns all properties of active integration external_wiki, except password fields3987 returns all properties of inactive integration external_wiki, except password fields3988 returns not found if integration does not exist3989 returns not found if integration exists but is in `Project#disabled_integrations`3990 returns error when authenticated but not a project owner3991 integration: "github"3992 PUT /projects/:id/services/github3993 updates github settings and returns the correct fields3994 returns if required fields missing3995 DELETE /projects/:id/services/github3996 deletes github3997 GET /projects/:id/services/github3998 returns authentication error when unauthenticated3999 returns all properties of active integration github, except password fields4000 returns all properties of inactive integration github, except password fields4001 returns not found if integration does not exist4002 returns not found if integration exists but is in `Project#disabled_integrations`4003 returns error when authenticated but not a project owner4004 integration: "google_play"4005 PUT /projects/:id/services/google-play4006 updates google_play settings and returns the correct fields4007 returns if required fields missing4008 DELETE /projects/:id/services/google-play4009 deletes google_play4010 GET /projects/:id/services/google-play4011 returns authentication error when unauthenticated4012 returns all properties of active integration google_play, except password fields4013 returns all properties of inactive integration google_play, except password fields4014 returns not found if integration does not exist4015 returns not found if integration exists but is in `Project#disabled_integrations`4016 returns error when authenticated but not a project owner4017 integration: "hangouts_chat"4018 PUT /projects/:id/services/hangouts-chat4019 updates hangouts_chat settings and returns the correct fields4020 returns if required fields missing4021 DELETE /projects/:id/services/hangouts-chat4022 deletes hangouts_chat4023 GET /projects/:id/services/hangouts-chat4024 returns authentication error when unauthenticated4025 returns all properties of active integration hangouts_chat, except password fields4026 returns all properties of inactive integration hangouts_chat, except password fields4027 returns not found if integration does not exist4028 returns not found if integration exists but is in `Project#disabled_integrations`4029 returns error when authenticated but not a project owner4030 integration: "harbor"4031 PUT /projects/:id/services/harbor4032 updates harbor settings and returns the correct fields4033 returns if required fields missing4034 DELETE /projects/:id/services/harbor4035 deletes harbor4036 GET /projects/:id/services/harbor4037 returns authentication error when unauthenticated4038 returns all properties of active integration harbor, except password fields4039 returns all properties of inactive integration harbor, except password fields4040 returns not found if integration does not exist4041 returns not found if integration exists but is in `Project#disabled_integrations`4042 returns error when authenticated but not a project owner4043 integration: "irker"4044 PUT /projects/:id/services/irker4045 updates irker settings and returns the correct fields4046 returns if required fields missing4047 DELETE /projects/:id/services/irker4048 deletes irker4049 GET /projects/:id/services/irker4050 returns authentication error when unauthenticated4051 returns all properties of active integration irker, except password fields4052 returns all properties of inactive integration irker, except password fields4053 returns not found if integration does not exist4054 returns not found if integration exists but is in `Project#disabled_integrations`4055 returns error when authenticated but not a project owner4056 integration: "jenkins"4057 PUT /projects/:id/services/jenkins4058 updates jenkins settings and returns the correct fields4059 returns if required fields missing4060 DELETE /projects/:id/services/jenkins4061 deletes jenkins4062 GET /projects/:id/services/jenkins4063 returns authentication error when unauthenticated4064 returns all properties of active integration jenkins, except password fields4065 returns all properties of inactive integration jenkins, except password fields4066 returns not found if integration does not exist4067 returns not found if integration exists but is in `Project#disabled_integrations`4068 returns error when authenticated but not a project owner4069 integration: "jira"4070 PUT /projects/:id/services/jira4071 updates jira settings and returns the correct fields4072 returns if required fields missing4073 DELETE /projects/:id/services/jira4074 deletes jira4075 GET /projects/:id/services/jira4076 returns authentication error when unauthenticated4077 returns all properties of active integration jira, except password fields4078 returns all properties of inactive integration jira, except password fields4079 returns not found if integration does not exist4080 returns not found if integration exists but is in `Project#disabled_integrations`4081 returns error when authenticated but not a project owner4082 integration: "mattermost"4083 PUT /projects/:id/services/mattermost4084 updates mattermost settings and returns the correct fields4085 returns if required fields missing4086 DELETE /projects/:id/services/mattermost4087 deletes mattermost4088 GET /projects/:id/services/mattermost4089 returns authentication error when unauthenticated4090 returns all properties of active integration mattermost, except password fields4091 returns all properties of inactive integration mattermost, except password fields4092 returns not found if integration does not exist4093 returns not found if integration exists but is in `Project#disabled_integrations`4094 returns error when authenticated but not a project owner4095 integration: "mattermost_slash_commands"4096 PUT /projects/:id/services/mattermost-slash-commands4097 updates mattermost_slash_commands settings and returns the correct fields4098 returns if required fields missing4099 DELETE /projects/:id/services/mattermost-slash-commands4100 deletes mattermost_slash_commands4101 GET /projects/:id/services/mattermost-slash-commands4102 returns authentication error when unauthenticated4103 returns all properties of active integration mattermost_slash_commands, except password fields4104 returns all properties of inactive integration mattermost_slash_commands, except password fields4105 returns not found if integration does not exist4106 returns not found if integration exists but is in `Project#disabled_integrations`4107 returns error when authenticated but not a project owner4108 integration: "microsoft_teams"4109 PUT /projects/:id/services/microsoft-teams4110 updates microsoft_teams settings and returns the correct fields4111 returns if required fields missing4112 DELETE /projects/:id/services/microsoft-teams4113 deletes microsoft_teams4114 GET /projects/:id/services/microsoft-teams4115 returns authentication error when unauthenticated4116 returns all properties of active integration microsoft_teams, except password fields4117 returns all properties of inactive integration microsoft_teams, except password fields4118 returns not found if integration does not exist4119 returns not found if integration exists but is in `Project#disabled_integrations`4120 returns error when authenticated but not a project owner4121 integration: "mock_ci"4122 PUT /projects/:id/services/mock-ci4123 updates mock_ci settings and returns the correct fields4124 returns if required fields missing4125 DELETE /projects/:id/services/mock-ci4126 deletes mock_ci4127 GET /projects/:id/services/mock-ci4128 returns authentication error when unauthenticated4129 returns all properties of active integration mock_ci, except password fields4130 returns all properties of inactive integration mock_ci, except password fields4131 returns not found if integration does not exist4132 returns not found if integration exists but is in `Project#disabled_integrations`4133 returns error when authenticated but not a project owner4134 integration: "mock_monitoring"4135 PUT /projects/:id/services/mock-monitoring4136 updates mock_monitoring settings and returns the correct fields4137 returns if required fields missing4138 DELETE /projects/:id/services/mock-monitoring4139 deletes mock_monitoring4140 GET /projects/:id/services/mock-monitoring4141 returns authentication error when unauthenticated4142 returns all properties of active integration mock_monitoring, except password fields4143 returns all properties of inactive integration mock_monitoring, except password fields4144 returns not found if integration does not exist4145 returns not found if integration exists but is in `Project#disabled_integrations`4146 returns error when authenticated but not a project owner4147 integration: "packagist"4148 PUT /projects/:id/services/packagist4149 updates packagist settings and returns the correct fields4150 returns if required fields missing4151 DELETE /projects/:id/services/packagist4152 deletes packagist4153 GET /projects/:id/services/packagist4154 returns authentication error when unauthenticated4155 returns all properties of active integration packagist, except password fields4156 returns all properties of inactive integration packagist, except password fields4157 returns not found if integration does not exist4158 returns not found if integration exists but is in `Project#disabled_integrations`4159 returns error when authenticated but not a project owner4160 integration: "pipelines_email"4161 PUT /projects/:id/services/pipelines-email4162 updates pipelines_email settings and returns the correct fields4163 returns if required fields missing4164 DELETE /projects/:id/services/pipelines-email4165 deletes pipelines_email4166 GET /projects/:id/services/pipelines-email4167 returns authentication error when unauthenticated4168 returns all properties of active integration pipelines_email, except password fields4169 returns all properties of inactive integration pipelines_email, except password fields4170 returns not found if integration does not exist4171 returns not found if integration exists but is in `Project#disabled_integrations`4172 returns error when authenticated but not a project owner4173 integration: "pivotaltracker"4174 PUT /projects/:id/services/pivotaltracker4175 updates pivotaltracker settings and returns the correct fields4176 returns if required fields missing4177 DELETE /projects/:id/services/pivotaltracker4178 deletes pivotaltracker4179 GET /projects/:id/services/pivotaltracker4180 returns authentication error when unauthenticated4181 returns all properties of active integration pivotaltracker, except password fields4182 returns all properties of inactive integration pivotaltracker, except password fields4183 returns not found if integration does not exist4184 returns not found if integration exists but is in `Project#disabled_integrations`4185 returns error when authenticated but not a project owner4186 integration: "prometheus"4187 PUT /projects/:id/services/prometheus4188 updates prometheus settings and returns the correct fields4189 returns if required fields missing4190 DELETE /projects/:id/services/prometheus4191 deletes prometheus4192 GET /projects/:id/services/prometheus4193 returns authentication error when unauthenticated4194 returns all properties of active integration prometheus, except password fields4195 returns all properties of inactive integration prometheus, except password fields4196 returns not found if integration does not exist4197 returns not found if integration exists but is in `Project#disabled_integrations`4198 returns error when authenticated but not a project owner4199 integration: "pumble"4200 PUT /projects/:id/services/pumble4201 updates pumble settings and returns the correct fields4202 returns if required fields missing4203 DELETE /projects/:id/services/pumble4204 deletes pumble4205 GET /projects/:id/services/pumble4206 returns authentication error when unauthenticated4207 returns all properties of active integration pumble, except password fields4208 returns all properties of inactive integration pumble, except password fields4209 returns not found if integration does not exist4210 returns not found if integration exists but is in `Project#disabled_integrations`4211 returns error when authenticated but not a project owner4212 integration: "pushover"4213 PUT /projects/:id/services/pushover4214 updates pushover settings and returns the correct fields4215 returns if required fields missing4216 DELETE /projects/:id/services/pushover4217 deletes pushover4218 GET /projects/:id/services/pushover4219 returns authentication error when unauthenticated4220 returns all properties of active integration pushover, except password fields4221 returns all properties of inactive integration pushover, except password fields4222 returns not found if integration does not exist4223 returns not found if integration exists but is in `Project#disabled_integrations`4224 returns error when authenticated but not a project owner4225 integration: "redmine"4226 PUT /projects/:id/services/redmine4227 updates redmine settings and returns the correct fields4228 returns if required fields missing4229 DELETE /projects/:id/services/redmine4230 deletes redmine4231 GET /projects/:id/services/redmine4232 returns authentication error when unauthenticated4233 returns all properties of active integration redmine, except password fields4234 returns all properties of inactive integration redmine, except password fields4235 returns not found if integration does not exist4236 returns not found if integration exists but is in `Project#disabled_integrations`4237 returns error when authenticated but not a project owner4238 integration: "slack"4239 PUT /projects/:id/services/slack4240 updates slack settings and returns the correct fields4241 returns if required fields missing4242 DELETE /projects/:id/services/slack4243 deletes slack4244 GET /projects/:id/services/slack4245 returns authentication error when unauthenticated4246 returns all properties of active integration slack, except password fields4247 returns all properties of inactive integration slack, except password fields4248 returns not found if integration does not exist4249 returns not found if integration exists but is in `Project#disabled_integrations`4250 returns error when authenticated but not a project owner4251 integration: "slack_slash_commands"4252 PUT /projects/:id/services/slack-slash-commands4253 updates slack_slash_commands settings and returns the correct fields4254 returns if required fields missing4255 DELETE /projects/:id/services/slack-slash-commands4256 deletes slack_slash_commands4257 GET /projects/:id/services/slack-slash-commands4258 returns authentication error when unauthenticated4259 returns all properties of active integration slack_slash_commands, except password fields4260 returns all properties of inactive integration slack_slash_commands, except password fields4261 returns not found if integration does not exist4262 returns not found if integration exists but is in `Project#disabled_integrations`4263 returns error when authenticated but not a project owner4264 integration: "squash_tm"4265 PUT /projects/:id/services/squash-tm4266 updates squash_tm settings and returns the correct fields4267 returns if required fields missing4268 DELETE /projects/:id/services/squash-tm4269 deletes squash_tm4270 GET /projects/:id/services/squash-tm4271 returns authentication error when unauthenticated4272 returns all properties of active integration squash_tm, except password fields4273 returns all properties of inactive integration squash_tm, except password fields4274 returns not found if integration does not exist4275 returns not found if integration exists but is in `Project#disabled_integrations`4276 returns error when authenticated but not a project owner4277 integration: "teamcity"4278 PUT /projects/:id/services/teamcity4279 updates teamcity settings and returns the correct fields4280 returns if required fields missing4281 DELETE /projects/:id/services/teamcity4282 deletes teamcity4283 GET /projects/:id/services/teamcity4284 returns authentication error when unauthenticated4285 returns all properties of active integration teamcity, except password fields4286 returns all properties of inactive integration teamcity, except password fields4287 returns not found if integration does not exist4288 returns not found if integration exists but is in `Project#disabled_integrations`4289 returns error when authenticated but not a project owner4290 integration: "unify_circuit"4291 PUT /projects/:id/services/unify-circuit4292 updates unify_circuit settings and returns the correct fields4293 returns if required fields missing4294 DELETE /projects/:id/services/unify-circuit4295 deletes unify_circuit4296 GET /projects/:id/services/unify-circuit4297 returns authentication error when unauthenticated4298 returns all properties of active integration unify_circuit, except password fields4299 returns all properties of inactive integration unify_circuit, except password fields4300 returns not found if integration does not exist4301 returns not found if integration exists but is in `Project#disabled_integrations`4302 returns error when authenticated but not a project owner4303 integration: "webex_teams"4304 PUT /projects/:id/services/webex-teams4305 updates webex_teams settings and returns the correct fields4306 returns if required fields missing4307 DELETE /projects/:id/services/webex-teams4308 deletes webex_teams4309 GET /projects/:id/services/webex-teams4310 returns authentication error when unauthenticated4311 returns all properties of active integration webex_teams, except password fields4312 returns all properties of inactive integration webex_teams, except password fields4313 returns not found if integration does not exist4314 returns not found if integration exists but is in `Project#disabled_integrations`4315 returns error when authenticated but not a project owner4316 integration: "youtrack"4317 PUT /projects/:id/services/youtrack4318 updates youtrack settings and returns the correct fields4319 returns if required fields missing4320 DELETE /projects/:id/services/youtrack4321 deletes youtrack4322 GET /projects/:id/services/youtrack4323 returns authentication error when unauthenticated4324 returns all properties of active integration youtrack, except password fields4325 returns all properties of inactive integration youtrack, except password fields4326 returns not found if integration does not exist4327 returns not found if integration exists but is in `Project#disabled_integrations`4328 returns error when authenticated but not a project owner4329 POST /projects/:id/services/:slug/trigger4330 Mattermost integration4331 when no integration is available4332 returns a not found message4333 when the integration exists4334 when the integration is not active4335 when the integration is inactive4336 when the integration is active4337 returns status 2004338 when the project can not be found4339 returns a generic 4044340 Slack Integration4341 returns status 2004342 Mattermost integration4343 accepts a username for update4344 Microsoft Teams integration4345 accepts branches_to_be_notified for update4346 accepts notify_only_broken_pipelines for update4347 Hangouts Chat integration4348 accepts branches_to_be_notified for update4349 only requires the webhook param4350 Jira integration4351 returns the jira_issue_transition_id for get request4352 returns the jira_issue_transition_id for put request4353 Pipelines Email Integration4354 notify_only_broken_pipelines property was saved as a string4355 returns boolean values for notify_only_broken_pipelines4356 POST /slack/trigger4357 returns status 2004358 returns status 404 when token is invalid4359API::PypiPackages4360 simple index API endpoint4361 GET /api/v4/groups/:id/-/packages/pypi/simple4362 behaves like pypi simple index API endpoint4363 with valid project4364 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4365 behaves like PyPI package index4366 for user type developer4367 returns the package index4368 behaves like returning response status4369 returns success4370 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4371 behaves like PyPI package index4372 for user type guest4373 returns the package index4374 behaves like returning response status4375 returns success4376 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4377 behaves like PyPI package index4378 for user type developer4379 returns the package index4380 behaves like returning response status4381 returns success4382 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4383 behaves like PyPI package index4384 for user type guest4385 returns the package index4386 behaves like returning response status4387 returns success4388 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4389 behaves like PyPI package index4390 for user type developer4391 returns the package index4392 behaves like returning response status4393 returns success4394 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4395 behaves like PyPI package index4396 for user type guest4397 returns the package index4398 behaves like returning response status4399 returns success4400 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4401 behaves like PyPI package index4402 for user type developer4403 returns the package index4404 behaves like returning response status4405 returns success4406 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4407 behaves like PyPI package index4408 for user type guest4409 returns the package index4410 behaves like returning response status4411 returns success4412 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4413 behaves like PyPI package index4414 for user type anonymous4415 returns the package index4416 behaves like returning response status4417 returns success4418 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4419 behaves like PyPI package index4420 for user type developer4421 returns the package index4422 behaves like returning response status4423 returns success4424 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4425 behaves like process PyPI api request4426 for user type guest4427 behaves like returning response status4428 returns forbidden4429 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4430 behaves like process PyPI api request4431 for user type developer4432 behaves like returning response status4433 returns unauthorized4434 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4435 behaves like process PyPI api request4436 for user type guest4437 behaves like returning response status4438 returns unauthorized4439 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4440 behaves like process PyPI api request4441 for user type developer4442 behaves like returning response status4443 returns not_found4444 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4445 behaves like process PyPI api request4446 for user type guest4447 behaves like returning response status4448 returns not_found4449 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4450 behaves like process PyPI api request4451 for user type developer4452 behaves like returning response status4453 returns unauthorized4454 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4455 behaves like process PyPI api request4456 for user type guest4457 behaves like returning response status4458 returns unauthorized4459 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4460 behaves like process PyPI api request4461 for user type anonymous4462 behaves like returning response status4463 returns unauthorized4464 behaves like rejects PyPI access with unknown group id4465 with an unknown project4466 behaves like unknown PyPI scope id4467 as anonymous4468 behaves like process PyPI api request4469 for user type anonymous4470 behaves like returning response status4471 returns not_found4472 as authenticated user4473 behaves like process PyPI api request4474 for user type anonymous4475 behaves like returning response status4476 returns not_found4477 deploy tokens4478 behaves like deploy token for package GET requests4479 with deploy token headers4480 valid token4481 behaves like returning response status4482 returns success4483 invalid token4484 behaves like returning response status4485 returns unauthorized4486 with group path as id4487 behaves like deploy token for package GET requests4488 with deploy token headers4489 valid token4490 behaves like returning response status4491 returns success4492 invalid token4493 behaves like returning response status4494 returns unauthorized4495 job token4496 behaves like job token for package GET requests4497 with job token headers4498 valid token4499 behaves like returning response status4500 returns success4501 invalid token4502 behaves like returning response status4503 returns unauthorized4504 invalid user4505 behaves like returning response status4506 returns unauthorized4507 behaves like a pypi user namespace endpoint4508 visibility_level: :public, user_role: :owner, expected_status: :not_found4509 behaves like returning response status4510 returns not_found4511 visibility_level: :private, user_role: :owner, expected_status: :not_found4512 behaves like returning response status4513 returns not_found4514 visibility_level: :public, user_role: :external, expected_status: :not_found4515 behaves like returning response status4516 returns not_found4517 visibility_level: :private, user_role: :external, expected_status: :not_found4518 behaves like returning response status4519 returns not_found4520 visibility_level: :public, user_role: :anonymous, expected_status: :not_found4521 behaves like returning response status4522 returns not_found4523 visibility_level: :private, user_role: :anonymous, expected_status: :not_found4524 behaves like returning response status4525 returns not_found4526 GET /api/v4/projects/:id/packages/pypi/simple4527 behaves like pypi simple index API endpoint4528 with valid project4529 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4530 behaves like PyPI package index4531 for user type developer4532 returns the package index4533 behaves like returning response status4534 returns success4535 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4536 behaves like PyPI package index4537 for user type guest4538 returns the package index4539 behaves like returning response status4540 returns success4541 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4542 behaves like PyPI package index4543 for user type developer4544 returns the package index4545 behaves like returning response status4546 returns success4547 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4548 behaves like PyPI package index4549 for user type guest4550 returns the package index4551 behaves like returning response status4552 returns success4553 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4554 behaves like PyPI package index4555 for user type developer4556 returns the package index4557 behaves like returning response status4558 returns success4559 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4560 behaves like PyPI package index4561 for user type guest4562 returns the package index4563 behaves like returning response status4564 returns success4565 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4566 behaves like PyPI package index4567 for user type developer4568 returns the package index4569 behaves like returning response status4570 returns success4571 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package index", expected_status: :success4572 behaves like PyPI package index4573 for user type guest4574 returns the package index4575 behaves like returning response status4576 returns success4577 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4578 behaves like PyPI package index4579 for user type anonymous4580 returns the package index4581 behaves like returning response status4582 returns success4583 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package index", expected_status: :success4584 behaves like PyPI package index4585 for user type developer4586 returns the package index4587 behaves like returning response status4588 returns success4589 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4590 behaves like process PyPI api request4591 for user type guest4592 behaves like returning response status4593 returns forbidden4594 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4595 behaves like process PyPI api request4596 for user type developer4597 behaves like returning response status4598 returns unauthorized4599 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4600 behaves like process PyPI api request4601 for user type guest4602 behaves like returning response status4603 returns unauthorized4604 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4605 behaves like process PyPI api request4606 for user type developer4607 behaves like returning response status4608 returns not_found4609 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4610 behaves like process PyPI api request4611 for user type guest4612 behaves like returning response status4613 returns not_found4614 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4615 behaves like process PyPI api request4616 for user type developer4617 behaves like returning response status4618 returns unauthorized4619 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4620 behaves like process PyPI api request4621 for user type guest4622 behaves like returning response status4623 returns unauthorized4624 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4625 behaves like process PyPI api request4626 for user type anonymous4627 behaves like returning response status4628 returns unauthorized4629 behaves like rejects PyPI access with unknown project id4630 with an unknown project4631 behaves like unknown PyPI scope id4632 as anonymous4633 behaves like process PyPI api request4634 for user type anonymous4635 behaves like returning response status4636 returns not_found4637 as authenticated user4638 behaves like process PyPI api request4639 for user type anonymous4640 behaves like returning response status4641 returns not_found4642 behaves like deploy token for package GET requests4643 with deploy token headers4644 valid token4645 behaves like returning response status4646 returns success4647 invalid token4648 behaves like returning response status4649 returns unauthorized4650 behaves like job token for package GET requests4651 with job token headers4652 valid token4653 behaves like returning response status4654 returns success4655 invalid token4656 behaves like returning response status4657 returns unauthorized4658 invalid user4659 behaves like returning response status4660 returns unauthorized4661 behaves like allow access for everyone with public package_registry_access_level4662 with private project but public access to package registry4663 as non-member user4664 behaves like returning response status4665 returns success4666 as anonymous4667 behaves like returning response status4668 returns success4669 with project path as id4670 behaves like deploy token for package GET requests4671 with deploy token headers4672 valid token4673 behaves like returning response status4674 returns success4675 invalid token4676 behaves like returning response status4677 returns unauthorized4678 simple package API endpoint4679 GET /api/v4/groups/:id/-/packages/pypi/simple/:package_name4680 behaves like pypi simple API endpoint4681 with valid project4682 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4683 behaves like PyPI package versions4684 for user type developer4685 returns the package listing4686 behaves like returning response status4687 returns success4688 behaves like a package tracking event4689 creates a gitlab tracking event list_package4690 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4691 behaves like PyPI package versions4692 for user type guest4693 returns the package listing4694 behaves like returning response status4695 returns success4696 behaves like a package tracking event4697 creates a gitlab tracking event list_package4698 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4699 behaves like PyPI package versions4700 for user type developer4701 returns the package listing4702 behaves like returning response status4703 returns success4704 behaves like a package tracking event4705 creates a gitlab tracking event list_package4706 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4707 behaves like PyPI package versions4708 for user type guest4709 returns the package listing4710 behaves like returning response status4711 returns success4712 behaves like a package tracking event4713 creates a gitlab tracking event list_package4714 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4715 behaves like PyPI package versions4716 for user type developer4717 returns the package listing4718 behaves like returning response status4719 returns success4720 behaves like a package tracking event4721 creates a gitlab tracking event list_package4722 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4723 behaves like PyPI package versions4724 for user type guest4725 returns the package listing4726 behaves like returning response status4727 returns success4728 behaves like a package tracking event4729 creates a gitlab tracking event list_package4730 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4731 behaves like PyPI package versions4732 for user type developer4733 returns the package listing4734 behaves like returning response status4735 returns success4736 behaves like a package tracking event4737 creates a gitlab tracking event list_package4738 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4739 behaves like PyPI package versions4740 for user type guest4741 returns the package listing4742 behaves like returning response status4743 returns success4744 behaves like a package tracking event4745 creates a gitlab tracking event list_package4746 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4747 behaves like PyPI package versions4748 for user type anonymous4749 returns the package listing4750 behaves like returning response status4751 returns success4752 behaves like a package tracking event4753 creates a gitlab tracking event list_package4754 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4755 behaves like PyPI package versions4756 for user type developer4757 returns the package listing4758 behaves like returning response status4759 returns success4760 behaves like a package tracking event4761 creates a gitlab tracking event list_package4762 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4763 behaves like process PyPI api request4764 for user type guest4765 behaves like returning response status4766 returns forbidden4767 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4768 behaves like process PyPI api request4769 for user type developer4770 behaves like returning response status4771 returns unauthorized4772 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4773 behaves like process PyPI api request4774 for user type guest4775 behaves like returning response status4776 returns unauthorized4777 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4778 behaves like process PyPI api request4779 for user type developer4780 behaves like returning response status4781 returns not_found4782 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4783 behaves like process PyPI api request4784 for user type guest4785 behaves like returning response status4786 returns not_found4787 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4788 behaves like process PyPI api request4789 for user type developer4790 behaves like returning response status4791 returns unauthorized4792 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4793 behaves like process PyPI api request4794 for user type guest4795 behaves like returning response status4796 returns unauthorized4797 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4798 behaves like process PyPI api request4799 for user type anonymous4800 behaves like returning response status4801 returns unauthorized4802 with a normalized package name4803 behaves like PyPI package versions4804 for user type developer4805 returns the package listing4806 behaves like returning response status4807 returns success4808 behaves like a package tracking event4809 creates a gitlab tracking event list_package4810 package request forward4811 forward: true, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success4812 behaves like PyPI package versions4813 for user type reporter4814 returns the package listing4815 behaves like returning response status4816 returns success4817 behaves like a package tracking event4818 creates a gitlab tracking event list_package4819 forward: true, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :redirect4820 behaves like process PyPI api request4821 for user type reporter4822 behaves like returning response status4823 returns redirect4824 forward: false, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success4825 behaves like PyPI package versions4826 for user type reporter4827 returns the package listing4828 behaves like returning response status4829 returns success4830 behaves like a package tracking event4831 creates a gitlab tracking event list_package4832 forward: false, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :not_found4833 behaves like process PyPI api request4834 for user type reporter4835 behaves like returning response status4836 returns not_found4837 behaves like rejects PyPI access with unknown group id4838 with an unknown project4839 behaves like unknown PyPI scope id4840 as anonymous4841 behaves like process PyPI api request4842 for user type anonymous4843 behaves like returning response status4844 returns not_found4845 as authenticated user4846 behaves like process PyPI api request4847 for user type anonymous4848 behaves like returning response status4849 returns not_found4850 deploy tokens4851 behaves like deploy token for package GET requests4852 with deploy token headers4853 valid token4854 behaves like returning response status4855 returns success4856 invalid token4857 behaves like returning response status4858 returns unauthorized4859 with group path as id4860 behaves like deploy token for package GET requests4861 with deploy token headers4862 valid token4863 behaves like returning response status4864 returns success4865 invalid token4866 behaves like returning response status4867 returns unauthorized4868 job token4869 behaves like job token for package GET requests4870 with job token headers4871 valid token4872 behaves like returning response status4873 returns success4874 invalid token4875 behaves like returning response status4876 returns unauthorized4877 invalid user4878 behaves like returning response status4879 returns unauthorized4880 behaves like a pypi user namespace endpoint4881 visibility_level: :public, user_role: :owner, expected_status: :not_found4882 behaves like returning response status4883 returns not_found4884 visibility_level: :private, user_role: :owner, expected_status: :not_found4885 behaves like returning response status4886 returns not_found4887 visibility_level: :public, user_role: :external, expected_status: :not_found4888 behaves like returning response status4889 returns not_found4890 visibility_level: :private, user_role: :external, expected_status: :not_found4891 behaves like returning response status4892 returns not_found4893 visibility_level: :public, user_role: :anonymous, expected_status: :not_found4894 behaves like returning response status4895 returns not_found4896 visibility_level: :private, user_role: :anonymous, expected_status: :not_found4897 behaves like returning response status4898 returns not_found4899 GET /api/v4/projects/:id/packages/pypi/simple/:package_name4900 behaves like pypi simple API endpoint4901 with valid project4902 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4903 behaves like PyPI package versions4904 for user type developer4905 returns the package listing4906 behaves like returning response status4907 returns success4908 behaves like a package tracking event4909 creates a gitlab tracking event list_package4910 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4911 behaves like PyPI package versions4912 for user type guest4913 returns the package listing4914 behaves like returning response status4915 returns success4916 behaves like a package tracking event4917 creates a gitlab tracking event list_package4918 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4919 behaves like PyPI package versions4920 for user type developer4921 returns the package listing4922 behaves like returning response status4923 returns success4924 behaves like a package tracking event4925 creates a gitlab tracking event list_package4926 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4927 behaves like PyPI package versions4928 for user type guest4929 returns the package listing4930 behaves like returning response status4931 returns success4932 behaves like a package tracking event4933 creates a gitlab tracking event list_package4934 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4935 behaves like PyPI package versions4936 for user type developer4937 returns the package listing4938 behaves like returning response status4939 returns success4940 behaves like a package tracking event4941 creates a gitlab tracking event list_package4942 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4943 behaves like PyPI package versions4944 for user type guest4945 returns the package listing4946 behaves like returning response status4947 returns success4948 behaves like a package tracking event4949 creates a gitlab tracking event list_package4950 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4951 behaves like PyPI package versions4952 for user type developer4953 returns the package listing4954 behaves like returning response status4955 returns success4956 behaves like a package tracking event4957 creates a gitlab tracking event list_package4958 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package versions", expected_status: :success4959 behaves like PyPI package versions4960 for user type guest4961 returns the package listing4962 behaves like returning response status4963 returns success4964 behaves like a package tracking event4965 creates a gitlab tracking event list_package4966 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4967 behaves like PyPI package versions4968 for user type anonymous4969 returns the package listing4970 behaves like returning response status4971 returns success4972 behaves like a package tracking event4973 creates a gitlab tracking event list_package4974 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package versions", expected_status: :success4975 behaves like PyPI package versions4976 for user type developer4977 returns the package listing4978 behaves like returning response status4979 returns success4980 behaves like a package tracking event4981 creates a gitlab tracking event list_package4982 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden4983 behaves like process PyPI api request4984 for user type guest4985 behaves like returning response status4986 returns forbidden4987 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4988 behaves like process PyPI api request4989 for user type developer4990 behaves like returning response status4991 returns unauthorized4992 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized4993 behaves like process PyPI api request4994 for user type guest4995 behaves like returning response status4996 returns unauthorized4997 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found4998 behaves like process PyPI api request4999 for user type developer5000 behaves like returning response status5001 returns not_found5002 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found5003 behaves like process PyPI api request5004 for user type guest5005 behaves like returning response status5006 returns not_found5007 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5008 behaves like process PyPI api request5009 for user type developer5010 behaves like returning response status5011 returns unauthorized5012 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5013 behaves like process PyPI api request5014 for user type guest5015 behaves like returning response status5016 returns unauthorized5017 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5018 behaves like process PyPI api request5019 for user type anonymous5020 behaves like returning response status5021 returns unauthorized5022 with a normalized package name5023 behaves like PyPI package versions5024 for user type developer5025 returns the package listing5026 behaves like returning response status5027 returns success5028 behaves like a package tracking event5029 creates a gitlab tracking event list_package5030 package request forward5031 forward: true, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success5032 behaves like PyPI package versions5033 for user type reporter5034 returns the package listing5035 behaves like returning response status5036 returns success5037 behaves like a package tracking event5038 creates a gitlab tracking event list_package5039 forward: true, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :redirect5040 behaves like process PyPI api request5041 for user type reporter5042 behaves like returning response status5043 returns redirect5044 forward: false, package_in_project: true, shared_examples_name: "PyPI package versions", expected_status: :success5045 behaves like PyPI package versions5046 for user type reporter5047 returns the package listing5048 behaves like returning response status5049 returns success5050 behaves like a package tracking event5051 creates a gitlab tracking event list_package5052 forward: false, package_in_project: false, shared_examples_name: "process PyPI api request", expected_status: :not_found5053 behaves like process PyPI api request5054 for user type reporter5055 behaves like returning response status5056 returns not_found5057 behaves like rejects PyPI access with unknown project id5058 with an unknown project5059 behaves like unknown PyPI scope id5060 as anonymous5061 behaves like process PyPI api request5062 for user type anonymous5063 behaves like returning response status5064 returns not_found5065 as authenticated user5066 behaves like process PyPI api request5067 for user type anonymous5068 behaves like returning response status5069 returns not_found5070 behaves like deploy token for package GET requests5071 with deploy token headers5072 valid token5073 behaves like returning response status5074 returns success5075 invalid token5076 behaves like returning response status5077 returns unauthorized5078 behaves like job token for package GET requests5079 with job token headers5080 valid token5081 behaves like returning response status5082 returns success5083 invalid token5084 behaves like returning response status5085 returns unauthorized5086 invalid user5087 behaves like returning response status5088 returns unauthorized5089 behaves like allow access for everyone with public package_registry_access_level5090 with private project but public access to package registry5091 as non-member user5092 behaves like returning response status5093 returns success5094 as anonymous5095 behaves like returning response status5096 returns success5097 with project path as id5098 behaves like deploy token for package GET requests5099 with deploy token headers5100 valid token5101 behaves like returning response status5102 returns success5103 invalid token5104 behaves like returning response status5105 returns unauthorized5106 POST /api/v4/projects/:id/packages/pypi/authorize5107 with valid project5108 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :success5109 behaves like process PyPI api request5110 for user type developer5111 behaves like returning response status5112 returns success5113 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5114 behaves like process PyPI api request5115 for user type guest5116 behaves like returning response status5117 returns forbidden5118 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5119 behaves like process PyPI api request5120 for user type developer5121 behaves like returning response status5122 returns unauthorized5123 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5124 behaves like process PyPI api request5125 for user type guest5126 behaves like returning response status5127 returns unauthorized5128 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5129 behaves like process PyPI api request5130 for user type developer5131 behaves like returning response status5132 returns forbidden5133 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5134 behaves like process PyPI api request5135 for user type guest5136 behaves like returning response status5137 returns forbidden5138 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5139 behaves like process PyPI api request5140 for user type developer5141 behaves like returning response status5142 returns unauthorized5143 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5144 behaves like process PyPI api request5145 for user type guest5146 behaves like returning response status5147 returns unauthorized5148 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5149 behaves like process PyPI api request5150 for user type anonymous5151 behaves like returning response status5152 returns unauthorized5153 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :success5154 behaves like process PyPI api request5155 for user type developer5156 behaves like returning response status5157 returns success5158 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5159 behaves like process PyPI api request5160 for user type guest5161 behaves like returning response status5162 returns forbidden5163 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5164 behaves like process PyPI api request5165 for user type developer5166 behaves like returning response status5167 returns unauthorized5168 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5169 behaves like process PyPI api request5170 for user type guest5171 behaves like returning response status5172 returns unauthorized5173 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found5174 behaves like process PyPI api request5175 for user type developer5176 behaves like returning response status5177 returns not_found5178 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found5179 behaves like process PyPI api request5180 for user type guest5181 behaves like returning response status5182 returns not_found5183 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5184 behaves like process PyPI api request5185 for user type developer5186 behaves like returning response status5187 returns unauthorized5188 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5189 behaves like process PyPI api request5190 for user type guest5191 behaves like returning response status5192 returns unauthorized5193 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5194 behaves like process PyPI api request5195 for user type anonymous5196 behaves like returning response status5197 returns unauthorized5198 behaves like deploy token for package uploads5199 with deploy token headers5200 valid token5201 behaves like returning response status5202 returns success5203 invalid token5204 behaves like returning response status5205 returns unauthorized5206 behaves like job token for package uploads5207 with job token headers5208 valid token5209 behaves like returning response status5210 returns success5211 invalid token5212 behaves like returning response status5213 returns unauthorized5214 invalid user5215 behaves like returning response status5216 returns unauthorized5217 behaves like rejects PyPI access with unknown project id5218 with an unknown project5219 behaves like unknown PyPI scope id5220 as anonymous5221 behaves like process PyPI api request5222 for user type anonymous5223 behaves like returning response status5224 returns not_found5225 as authenticated user5226 behaves like process PyPI api request5227 for user type anonymous5228 behaves like returning response status5229 returns not_found5230 POST /api/v4/projects/:id/packages/pypi5231 with valid project5232 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package creation", expected_status: :created5233 behaves like PyPI package creation5234 for user type developer5235 behaves like creating pypi package files5236 creates package files5237 with a pre-existing file5238 rejects the duplicated file5239 with object storage disabled5240 without a file from workhorse5241 behaves like returning response status5242 returns bad_request5243 with correct params5244 behaves like package workhorse uploads5245 without a workhorse header5246 logs an error5247 behaves like returning response status5248 returns forbidden5249 behaves like creating pypi package files5250 creates package files5251 behaves like a package tracking event5252 creates a gitlab tracking event push_package5253 with object storage enabled5254 and direct upload enabled5255 behaves like creating pypi package files5256 creates package files5257 with invalid remote_id: 1231235258 behaves like returning response status5259 returns forbidden5260 with invalid remote_id: ../../1231235261 behaves like returning response status5262 returns forbidden5263 and direct upload disabled5264 behaves like creating pypi package files5265 creates package files5266 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5267 behaves like process PyPI api request5268 for user type guest5269 behaves like returning response status5270 returns forbidden5271 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5272 behaves like process PyPI api request5273 for user type developer5274 behaves like returning response status5275 returns unauthorized5276 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5277 behaves like process PyPI api request5278 for user type guest5279 behaves like returning response status5280 returns unauthorized5281 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5282 behaves like process PyPI api request5283 for user type developer5284 behaves like returning response status5285 returns forbidden5286 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5287 behaves like process PyPI api request5288 for user type guest5289 behaves like returning response status5290 returns forbidden5291 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5292 behaves like process PyPI api request5293 for user type developer5294 behaves like returning response status5295 returns unauthorized5296 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5297 behaves like process PyPI api request5298 for user type guest5299 behaves like returning response status5300 returns unauthorized5301 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5302 behaves like process PyPI api request5303 for user type anonymous5304 behaves like returning response status5305 returns unauthorized5306 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :created5307 behaves like process PyPI api request5308 for user type developer5309 behaves like returning response status5310 returns created5311 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :forbidden5312 behaves like process PyPI api request5313 for user type guest5314 behaves like returning response status5315 returns forbidden5316 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5317 behaves like process PyPI api request5318 for user type developer5319 behaves like returning response status5320 returns unauthorized5321 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5322 behaves like process PyPI api request5323 for user type guest5324 behaves like returning response status5325 returns unauthorized5326 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found5327 behaves like process PyPI api request5328 for user type developer5329 behaves like returning response status5330 returns not_found5331 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :not_found5332 behaves like process PyPI api request5333 for user type guest5334 behaves like returning response status5335 returns not_found5336 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5337 behaves like process PyPI api request5338 for user type developer5339 behaves like returning response status5340 returns unauthorized5341 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5342 behaves like process PyPI api request5343 for user type guest5344 behaves like returning response status5345 returns unauthorized5346 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "process PyPI api request", expected_status: :unauthorized5347 behaves like process PyPI api request5348 for user type anonymous5349 behaves like returning response status5350 returns unauthorized5351 without requires_python5352 behaves like PyPI package creation5353 for user type developer5354 behaves like creating pypi package files5355 creates package files5356 with a pre-existing file5357 rejects the duplicated file5358 with object storage disabled5359 without a file from workhorse5360 behaves like returning response status5361 returns bad_request5362 with correct params5363 behaves like package workhorse uploads5364 without a workhorse header5365 logs an error5366 behaves like returning response status5367 returns forbidden5368 behaves like creating pypi package files5369 creates package files5370 behaves like a package tracking event5371 creates a gitlab tracking event push_package5372 with object storage enabled5373 and direct upload enabled5374 behaves like creating pypi package files5375 creates package files5376 with invalid remote_id: 1231235377 behaves like returning response status5378 returns forbidden5379 with invalid remote_id: ../../1231235380 behaves like returning response status5381 returns forbidden5382 and direct upload disabled5383 behaves like creating pypi package files5384 creates package files5385 with FIPS mode5386 behaves like PyPI package creation5387 for user type developer5388 behaves like creating pypi package files5389 creates package files5390 with a pre-existing file5391 rejects the duplicated file5392 with object storage disabled5393 without a file from workhorse5394 behaves like returning response status5395 returns bad_request5396 with correct params5397 behaves like package workhorse uploads5398 without a workhorse header5399 logs an error5400 behaves like returning response status5401 returns forbidden5402 behaves like creating pypi package files5403 creates package files5404 behaves like a package tracking event5405 creates a gitlab tracking event push_package5406 with object storage enabled5407 and direct upload enabled5408 behaves like creating pypi package files5409 creates package files5410 with invalid remote_id: 1231235411 behaves like returning response status5412 returns forbidden5413 with invalid remote_id: ../../1231235414 behaves like returning response status5415 returns forbidden5416 and direct upload disabled5417 behaves like creating pypi package files5418 creates package files5419 without sha256_digest5420 behaves like PyPI package creation5421 for user type developer5422 behaves like creating pypi package files5423 creates package files5424 with a pre-existing file5425 rejects the duplicated file5426 with object storage disabled5427 without a file from workhorse5428 behaves like returning response status5429 returns bad_request5430 with correct params5431 behaves like package workhorse uploads5432 without a workhorse header5433 logs an error5434 behaves like returning response status5435 returns forbidden5436 behaves like creating pypi package files5437 creates package files5438 behaves like a package tracking event5439 creates a gitlab tracking event push_package5440 with object storage enabled5441 and direct upload enabled5442 behaves like creating pypi package files5443 creates package files5444 with invalid remote_id: 1231235445 behaves like returning response status5446 returns forbidden5447 with invalid remote_id: ../../1231235448 behaves like returning response status5449 returns forbidden5450 and direct upload disabled5451 behaves like creating pypi package files5452 creates package files5453 with FIPS mode5454 returns 422 and does not create a package5455 with required_python too big5456 behaves like process PyPI api request5457 for user type developer5458 behaves like returning response status5459 returns bad_request5460 with an invalid package5461 behaves like returning response status5462 returns bad_request5463 with an invalid sha2565464 behaves like returning response status5465 returns bad_request5466 behaves like deploy token for package uploads5467 with deploy token headers5468 valid token5469 behaves like returning response status5470 returns success5471 invalid token5472 behaves like returning response status5473 returns unauthorized5474 behaves like job token for package uploads5475 with job token headers5476 valid token5477 creates a package with build info5478 behaves like returning response status5479 returns success5480 invalid token5481 behaves like returning response status5482 returns unauthorized5483 invalid user5484 behaves like returning response status5485 returns unauthorized5486 behaves like rejects PyPI access with unknown project id5487 with an unknown project5488 behaves like unknown PyPI scope id5489 as anonymous5490 behaves like process PyPI api request5491 for user type anonymous5492 behaves like returning response status5493 returns not_found5494 as authenticated user5495 behaves like process PyPI api request5496 for user type anonymous5497 behaves like returning response status5498 returns not_found5499 file size above maximum limit5500 behaves like returning response status5501 returns bad_request5502 with existing package5503 does not create a new package5504 marked as pending_destruction5505 does create a new package5506 file download endpoint5507 GET /api/v4/groups/:id/-/packages/pypi/files/:sha256/*file_identifier5508 behaves like pypi file download endpoint5509 with valid project5510 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5511 behaves like PyPI package download5512 for user type developer5513 returns the package listing5514 behaves like returning response status5515 returns success5516 behaves like a package tracking event5517 creates a gitlab tracking event pull_package5518 behaves like bumping the package last downloaded at field5519 bumps last_downloaded_at5520 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5521 behaves like PyPI package download5522 for user type guest5523 returns the package listing5524 behaves like returning response status5525 returns success5526 behaves like a package tracking event5527 creates a gitlab tracking event pull_package5528 behaves like bumping the package last downloaded at field5529 bumps last_downloaded_at5530 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5531 behaves like PyPI package download5532 for user type developer5533 returns the package listing5534 behaves like returning response status5535 returns success5536 behaves like a package tracking event5537 creates a gitlab tracking event pull_package5538 behaves like bumping the package last downloaded at field5539 bumps last_downloaded_at5540 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5541 behaves like PyPI package download5542 for user type guest5543 returns the package listing5544 behaves like returning response status5545 returns success5546 behaves like a package tracking event5547 creates a gitlab tracking event pull_package5548 behaves like bumping the package last downloaded at field5549 bumps last_downloaded_at5550 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5551 behaves like PyPI package download5552 for user type developer5553 returns the package listing5554 behaves like returning response status5555 returns success5556 behaves like a package tracking event5557 creates a gitlab tracking event pull_package5558 behaves like bumping the package last downloaded at field5559 bumps last_downloaded_at5560 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5561 behaves like PyPI package download5562 for user type guest5563 returns the package listing5564 behaves like returning response status5565 returns success5566 behaves like a package tracking event5567 creates a gitlab tracking event pull_package5568 behaves like bumping the package last downloaded at field5569 bumps last_downloaded_at5570 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5571 behaves like PyPI package download5572 for user type developer5573 returns the package listing5574 behaves like returning response status5575 returns success5576 behaves like a package tracking event5577 creates a gitlab tracking event pull_package5578 behaves like bumping the package last downloaded at field5579 bumps last_downloaded_at5580 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5581 behaves like PyPI package download5582 for user type guest5583 returns the package listing5584 behaves like returning response status5585 returns success5586 behaves like a package tracking event5587 creates a gitlab tracking event pull_package5588 behaves like bumping the package last downloaded at field5589 bumps last_downloaded_at5590 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5591 behaves like PyPI package download5592 for user type anonymous5593 returns the package listing5594 behaves like returning response status5595 returns success5596 behaves like a package tracking event5597 creates a gitlab tracking event pull_package5598 behaves like bumping the package last downloaded at field5599 bumps last_downloaded_at5600 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5601 behaves like PyPI package download5602 for user type developer5603 returns the package listing5604 behaves like returning response status5605 returns success5606 behaves like a package tracking event5607 creates a gitlab tracking event pull_package5608 behaves like bumping the package last downloaded at field5609 bumps last_downloaded_at5610 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "rejected package download", expected_status: :forbidden5611 behaves like rejected package download5612 for user type guest5613 behaves like returning response status5614 returns forbidden5615 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5616 behaves like rejected package download5617 for user type developer5618 behaves like returning response status5619 returns unauthorized5620 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5621 behaves like rejected package download5622 for user type guest5623 behaves like returning response status5624 returns unauthorized5625 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :not_found5626 behaves like rejected package download5627 for user type developer5628 behaves like returning response status5629 returns not_found5630 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :not_found5631 behaves like rejected package download5632 for user type guest5633 behaves like returning response status5634 returns not_found5635 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5636 behaves like rejected package download5637 for user type developer5638 behaves like returning response status5639 returns unauthorized5640 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5641 behaves like rejected package download5642 for user type guest5643 behaves like returning response status5644 returns unauthorized5645 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :unauthorized5646 behaves like rejected package download5647 for user type anonymous5648 behaves like returning response status5649 returns unauthorized5650 with deploy token headers5651 valid token5652 behaves like returning response status5653 returns success5654 invalid token5655 behaves like returning response status5656 returns success5657 with job token headers5658 valid token5659 behaves like returning response status5660 returns success5661 invalid token5662 behaves like returning response status5663 returns unauthorized5664 invalid user5665 behaves like returning response status5666 returns success5667 behaves like rejects PyPI access with unknown group id5668 with an unknown project5669 behaves like unknown PyPI scope id5670 as anonymous5671 behaves like process PyPI api request5672 for user type anonymous5673 behaves like returning response status5674 returns not_found5675 as authenticated user5676 behaves like process PyPI api request5677 for user type anonymous5678 behaves like returning response status5679 returns not_found5680 behaves like a pypi user namespace endpoint5681 visibility_level: :public, user_role: :owner, expected_status: :not_found5682 behaves like returning response status5683 returns not_found5684 visibility_level: :private, user_role: :owner, expected_status: :not_found5685 behaves like returning response status5686 returns not_found5687 visibility_level: :public, user_role: :external, expected_status: :not_found5688 behaves like returning response status5689 returns not_found5690 visibility_level: :private, user_role: :external, expected_status: :not_found5691 behaves like returning response status5692 returns not_found5693 visibility_level: :public, user_role: :anonymous, expected_status: :not_found5694 behaves like returning response status5695 returns not_found5696 visibility_level: :private, user_role: :anonymous, expected_status: :not_found5697 behaves like returning response status5698 returns not_found5699 GET /api/v4/projects/:id/packages/pypi/files/:sha256/*file_identifier5700 behaves like pypi file download endpoint5701 with valid project5702 visibility_level: :public, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5703 behaves like PyPI package download5704 for user type developer5705 returns the package listing5706 behaves like returning response status5707 returns success5708 behaves like a package tracking event5709 creates a gitlab tracking event pull_package5710 behaves like bumping the package last downloaded at field5711 bumps last_downloaded_at5712 visibility_level: :public, user_role: :guest, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5713 behaves like PyPI package download5714 for user type guest5715 returns the package listing5716 behaves like returning response status5717 returns success5718 behaves like a package tracking event5719 creates a gitlab tracking event pull_package5720 behaves like bumping the package last downloaded at field5721 bumps last_downloaded_at5722 visibility_level: :public, user_role: :developer, member: true, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5723 behaves like PyPI package download5724 for user type developer5725 returns the package listing5726 behaves like returning response status5727 returns success5728 behaves like a package tracking event5729 creates a gitlab tracking event pull_package5730 behaves like bumping the package last downloaded at field5731 bumps last_downloaded_at5732 visibility_level: :public, user_role: :guest, member: true, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5733 behaves like PyPI package download5734 for user type guest5735 returns the package listing5736 behaves like returning response status5737 returns success5738 behaves like a package tracking event5739 creates a gitlab tracking event pull_package5740 behaves like bumping the package last downloaded at field5741 bumps last_downloaded_at5742 visibility_level: :public, user_role: :developer, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5743 behaves like PyPI package download5744 for user type developer5745 returns the package listing5746 behaves like returning response status5747 returns success5748 behaves like a package tracking event5749 creates a gitlab tracking event pull_package5750 behaves like bumping the package last downloaded at field5751 bumps last_downloaded_at5752 visibility_level: :public, user_role: :guest, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5753 behaves like PyPI package download5754 for user type guest5755 returns the package listing5756 behaves like returning response status5757 returns success5758 behaves like a package tracking event5759 creates a gitlab tracking event pull_package5760 behaves like bumping the package last downloaded at field5761 bumps last_downloaded_at5762 visibility_level: :public, user_role: :developer, member: false, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5763 behaves like PyPI package download5764 for user type developer5765 returns the package listing5766 behaves like returning response status5767 returns success5768 behaves like a package tracking event5769 creates a gitlab tracking event pull_package5770 behaves like bumping the package last downloaded at field5771 bumps last_downloaded_at5772 visibility_level: :public, user_role: :guest, member: false, user_token: false, shared_examples_name: "PyPI package download", expected_status: :success5773 behaves like PyPI package download5774 for user type guest5775 returns the package listing5776 behaves like returning response status5777 returns success5778 behaves like a package tracking event5779 creates a gitlab tracking event pull_package5780 behaves like bumping the package last downloaded at field5781 bumps last_downloaded_at5782 visibility_level: :public, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5783 behaves like PyPI package download5784 for user type anonymous5785 returns the package listing5786 behaves like returning response status5787 returns success5788 behaves like a package tracking event5789 creates a gitlab tracking event pull_package5790 behaves like bumping the package last downloaded at field5791 bumps last_downloaded_at5792 visibility_level: :private, user_role: :developer, member: true, user_token: true, shared_examples_name: "PyPI package download", expected_status: :success5793 behaves like PyPI package download5794 for user type developer5795 returns the package listing5796 behaves like returning response status5797 returns success5798 behaves like a package tracking event5799 creates a gitlab tracking event pull_package5800 behaves like bumping the package last downloaded at field5801 bumps last_downloaded_at5802 visibility_level: :private, user_role: :guest, member: true, user_token: true, shared_examples_name: "rejected package download", expected_status: :forbidden5803 behaves like rejected package download5804 for user type guest5805 behaves like returning response status5806 returns forbidden5807 visibility_level: :private, user_role: :developer, member: true, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5808 behaves like rejected package download5809 for user type developer5810 behaves like returning response status5811 returns unauthorized5812 visibility_level: :private, user_role: :guest, member: true, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5813 behaves like rejected package download5814 for user type guest5815 behaves like returning response status5816 returns unauthorized5817 visibility_level: :private, user_role: :developer, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :not_found5818 behaves like rejected package download5819 for user type developer5820 behaves like returning response status5821 returns not_found5822 visibility_level: :private, user_role: :guest, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :not_found5823 behaves like rejected package download5824 for user type guest5825 behaves like returning response status5826 returns not_found5827 visibility_level: :private, user_role: :developer, member: false, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5828 behaves like rejected package download5829 for user type developer5830 behaves like returning response status5831 returns unauthorized5832 visibility_level: :private, user_role: :guest, member: false, user_token: false, shared_examples_name: "rejected package download", expected_status: :unauthorized5833 behaves like rejected package download5834 for user type guest5835 behaves like returning response status5836 returns unauthorized5837 visibility_level: :private, user_role: :anonymous, member: false, user_token: true, shared_examples_name: "rejected package download", expected_status: :unauthorized5838 behaves like rejected package download5839 for user type anonymous5840 behaves like returning response status5841 returns unauthorized5842 with deploy token headers5843 valid token5844 behaves like returning response status5845 returns success5846 invalid token5847 behaves like returning response status5848 returns success5849 with job token headers5850 valid token5851 behaves like returning response status5852 returns success5853 invalid token5854 behaves like returning response status5855 returns unauthorized5856 invalid user5857 behaves like returning response status5858 returns success5859 behaves like rejects PyPI access with unknown project id5860 with an unknown project5861 behaves like unknown PyPI scope id5862 as anonymous5863 behaves like process PyPI api request5864 for user type anonymous5865 behaves like returning response status5866 returns not_found5867 as authenticated user5868 behaves like process PyPI api request5869 for user type anonymous5870 behaves like returning response status5871 returns not_found5872 behaves like allow access for everyone with public package_registry_access_level5873 with private project but public access to package registry5874 as non-member user5875 behaves like returning response status5876 returns success5877 as anonymous5878 behaves like returning response status5879 returns success5880Projects::IssuesController5881 GET #index5882 external issue tracker5883 when GitLab issues disabled5884 returns 404 status5885 when GitLab issues enabled5886 renders the "index" template5887 when project has moved5888 redirects to the new issue tracker from the old one5889 redirects from an old issue correctly5890 internal issue tracker5891 returns index5892 returns 301 if request path doesn't match project path5893 returns 404 when issues are disabled5894 behaves like set sort order from user preference5895 #set_sort_order_from_user_preference5896 when database is in read-only mode5897 does not update user preference5898 when database is not in read-only mode5899 updates user preference5900 pagination5901 redirects to last page when out of bounds on non-html requests5902 external authorization5903 behaves like unauthorized when external service denies access5904 allows access when the authorization service allows it5905 allows access when the authorization service denies it5906 GET #show5907 issue email participants5908 when issue is confidential5909 returns issue email participants5910 when issue is not confidential5911 returns empty email participants5912 when issue is not a task and work items feature flag is enabled5913 does not redirect to work items route5914 when issue is of type task5915 show action5916 behaves like redirects to show work item page5917 redirects to work item page using iid5918 edit action5919 behaves like redirects to show work item page5920 redirects to work item page using iid5921 update action5922 behaves like redirects to show work item page5923 redirects to work item page using iid5924 GET #new5925 redirects to signin if not logged in5926 internal issue tracker5927 builds a new issue5928 fills in an issue for a merge request5929 fills in an issue for a discussion5930 conf_value: true, conf_result: true5931 sets the confidential flag to the expected value5932 conf_value: "true", conf_result: true5933 sets the confidential flag to the expected value5934 conf_value: "TRUE", conf_result: true5935 sets the confidential flag to the expected value5936 conf_value: false, conf_result: false5937 sets the confidential flag to the expected value5938 conf_value: "false", conf_result: false5939 sets the confidential flag to the expected value5940 conf_value: "FALSE", conf_result: false5941 sets the confidential flag to the expected value5942 setting issue type5943 is expected to eq "issue"5944 incident issue5945 is expected to eq "incident"5946 external issue tracker5947 when GitLab issues disabled5948 returns 404 status5949 when GitLab issues enabled5950 renders the "new" template5951 #related_branches5952 the current user cannot read code5953 prevents access5954 there are no related branches5955 assigns empty arrays5956 there are related branches5957 finds and assigns the appropriate branch information5958 Redirect after sign in5959 with a JSON request5960 does not store the visited URL5961 with an HTML request5962 stores the visited URL5963 POST #move5964 when moving issue to another private project5965 when user has access to move issue5966 moves issue to another project5967 when user does not have access to move issue5968 responds with 4045969 PUT #reorder5970 when user has access5971 with valid params5972 reorders issues and returns a successful 200 response5973 with invalid params5974 returns a unprocessable entity 422 response for invalid move ids5975 returns a not found 404 response for invalid issue id5976 returns a unprocessable entity 422 response for issues not in group5977 with unauthorized user5978 responds with 4045979 PUT #update5980 when user has access to update issue5981 updates the issue5982 with issue_type param5983 permits the parameter5984 when an issue is identified as spam5985 when allow_possible_spam application setting is false5986 renders json with spam_action_response_fields5987 when allow_possible_spam application setting is true5988 updates the issue5989 when user does not have access to update issue5990 responds with 4045991 GET #realtime_changes5992 when an issue was edited5993 returns last edited time5994 when an issue was edited by a deleted user5995 returns 2005996 when getting the changes5997 returns the necessary data5998 Confidential Issues5999 PUT #update6000 behaves like restricted action6001 returns 404 for guests6002 returns 404 for non project members6003 returns 404 for project members with guest role6004 returns 200 for author6005 returns 200 for assignee6006 returns 200 for project members6007 when admin mode is enabled6008 returns 200 for admin6009 when admin mode is disabled6010 returns 404 for admin (PENDING: Temporarily skipped with xit)6011 behaves like update invalid issuable6012 when updating causes conflicts6013 renders edit when format is html6014 renders json error message when format is json6015 when updating an invalid issuable6016 renders edit when merge request is invalid6017 changing the assignee6018 limits the attributes exposed on the assignee6019 Recaptcha is enabled6020 when SpamVerdictService allows the issue6021 normally updates the issue6022 when an issue is identified as spam6023 when recaptcha is not verified6024 when allow_possible_spam application setting is false6025 rejects an issue recognized as spam6026 rejects an issue recognized as a spam when reCAPTCHA disabled6027 creates a spam log6028 renders properly6029 renders spam_action_response_fields json response6030 when allow_possible_spam application setting is true6031 updates the issue recognized as spam6032 creates a spam log6033 returns 200 status6034 when recaptcha is verified6035 returns 200 status6036 accepts an issue after reCAPTCHA is verified6037 marks spam log as recaptcha_verified6038 does not mark spam log as recaptcha_verified when it does not belong to current_user6039 GET #show6040 avoids (most) N+1s loading labels6041 logs the view with Gitlab::Search::RecentIssues6042 behaves like restricted action6043 returns 404 for guests6044 returns 404 for non project members6045 returns 404 for project members with guest role6046 returns 200 for author6047 returns 200 for assignee6048 returns 200 for project members6049 when admin mode is enabled6050 returns 200 for admin6051 when admin mode is disabled6052 returns 404 for admin (PENDING: Temporarily skipped with xit)6053 when not logged in6054 does not log the view with Gitlab::Search::RecentIssues6055 GET #realtime_changes6056 behaves like restricted action6057 returns 404 for guests6058 returns 404 for non project members6059 returns 404 for project members with guest role6060 returns 200 for author6061 returns 200 for assignee6062 returns 200 for project members6063 when admin mode is enabled6064 returns 200 for admin6065 when admin mode is disabled6066 returns 404 for admin (PENDING: Temporarily skipped with xit)6067 GET #edit6068 behaves like restricted action6069 returns 404 for guests6070 returns 404 for non project members6071 returns 404 for project members with guest role6072 returns 200 for author6073 returns 200 for assignee6074 returns 200 for project members6075 when admin mode is enabled6076 returns 200 for admin6077 when admin mode is disabled6078 returns 404 for admin (PENDING: Temporarily skipped with xit)6079 PUT #update6080 behaves like restricted action6081 returns 404 for guests6082 returns 404 for non project members6083 returns 404 for project members with guest role6084 returns 302 for author6085 returns 302 for assignee6086 returns 302 for project members6087 when admin mode is enabled6088 returns 302 for admin6089 when admin mode is disabled6090 returns 404 for admin (PENDING: Temporarily skipped with xit)6091 POST #create6092 creates the issue successfully6093 when creating an incident6094 sets the correct issue_type6095 when trying to create a task6096 defaults to issue type6097 when trying to create a objective6098 defaults to issue type6099 when trying to create a key_result6100 defaults to issue type6101 when create service return an unrecoverable error with http_status6102 renders 403 and logs the error6103 when no render method is found for the returned http_status6104 renders 404 and logs the error6105 resolving discussions in MergeRequest6106 creates an issue for the project6107 doesn't overwrite given params6108 resolves the discussion in the merge_request6109 sets a flash message6110 resolving a single discussion6111 resolves a single discussion6112 sets a flash message that one discussion was resolved6113 Recaptcha is enabled6114 when SpamVerdictService allows the issue6115 creates an issue6116 when an issue is identified as spam and requires recaptcha6117 when captcha is not verified6118 when allow_possible_spam application setting is false6119 rejects an issue recognized as spam6120 creates a spam log6121 does not create an issue when it is not valid6122 does not create an issue when reCAPTCHA is not enabled6123 when allow_possible_spam application setting is true6124 creates an issue recognized as spam6125 creates a spam log6126 does not create an issue when it is not valid6127 when Recaptcha is verified6128 accepts an issue after reCAPTCHA is verified6129 marks spam log as recaptcha_verified6130 does not mark spam log as recaptcha_verified when it does not belong to current_user6131 user agent details are saved6132 creates a user agent detail6133 when description has quick actions6134 can add spent time6135 can set the time estimate6136 when created from sentry error6137 creates an issue6138 creates a sentry issue6139 when the endpoint receives requests above the limit6140 when issue creation limits imposed6141 prevents from creating more issues6142 logs the event on auth.log6143 setting issue type6144 is expected to eq "issue"6145 incident issue6146 is expected to eq "incident"6147 POST #mark_as_spam6148 properly submits to Akismet6149 updates issue6150 DELETE #destroy6151 when the user is a developer6152 does not delete the issue, returning :not_found6153 when the user is owner6154 deletes the issue6155 prevents deletion if destroy_confirm is not set6156 prevents deletion in JSON format if destroy_confirm is not set6157 POST #toggle_award_emoji6158 toggles the award emoji6159 removes the already awarded emoji6160 marks Todos on the Issue as done6161 POST create_merge_request6162 creates a new merge request6163 render merge request as json6164 is not available when the project is archived6165 is not available for users who cannot create merge requests6166 invalid branch name6167 is unprocessable6168 target_project_id is set6169 creates a new merge request6170 POST #import_csv6171 unauthorized6172 returns 404 for guests6173 returns 404 for project members with reporter role6174 authorized6175 when upload proceeds correctly6176 returns 302 for project members with developer role6177 enqueues an import job6178 when upload fails6179 shows error when upload fails6180 POST export_csv6181 when logged in6182 allows CSV export6183 when not logged in6184 redirects to the sign in page6185 GET service_desk6186 adds an author filter for the support bot user6187 does not allow any other author to be set6188 supports other filters6189 allows an assignee to be specified by id6190 GET #discussions6191 when authenticated6192 returns discussion json6193 renders the author status html if there is a status6194 does not cause an extra query for the status6196 behaves like discussions provider6197 returns the expected discussions6198 when user is setting notes filters6199 behaves like issuable notes filter6200 sets discussion filter6201 expires notes e-tag cache for issuable if filter changed6202 does not expires notes e-tag cache for issuable if filter did not change6203 does not set notes filter when database is in read-only mode6204 does not set notes filter when persist_filter param is false6205 returns only user comments6206 returns only activity notes6207 when filter is set to "only_comments"6208 does not merge label event notes6209 with cross-reference system note6210 filters notes that the user should not see6211 does not result in N+1 queries6212 private project6213 user is allowed access6214 displays all available notes6215 user is a guest6216 does not display notes w/type listed in TYPES_RESTRICTED_BY_ACCESS_LEVEL6217 GET #designs6218 when project has moved6219 redirects from an old issue/designs correctly6220API::Ci::Triggers6221 POST /projects/:project_id/trigger/pipeline6222 Handles errors6223 returns bad request if token is missing6224 returns not found if project is not found6225 Have a commit6226 creates pipeline6227 stores payload as a variable6228 returns bad request with no pipeline created if there's no commit for that ref6229 Validates variables6230 validates variables to be a hash6231 validates variables needs to be a map of key-valued strings6232 creates trigger request with variables6233 when triggering a pipeline from a trigger token6234 does not leak the presence of project when token is for different project6235 creates builds from the ref given in the URL, not in the body6236 when ref contains a dot6237 creates builds from the ref given in the URL, not in the body6238 adding arguments to the application context6239 when triggering a pipeline from a trigger token6240 behaves like storing arguments in the application context for the API6241 places the expected params in the application context6242 behaves like not executing any extra queries for the application context6243 does not execute more queries than without adding anything to the application context6244 when triggered from another running job6245 when other job is triggered by a user6246 behaves like storing arguments in the application context for the API6247 places the expected params in the application context6248 behaves like not executing any extra queries for the application context6249 does not execute more queries than without adding anything to the application context6250 when other job is triggered by a runner6251 behaves like storing arguments in the application context for the API6252 places the expected params in the application context6253 behaves like not executing any extra queries for the application context6254 does not execute more queries than without adding anything to the application context6255 when is triggered by a pipeline hook6256 does not create a new pipeline6257 GET /projects/:id/triggers6258 authenticated user who can access triggers6259 returns a list of triggers with tokens exposed correctly6260 authenticated user with invalid permissions6261 does not return triggers list6262 unauthenticated user6263 does not return triggers list6264 GET /projects/:id/triggers/:trigger_id6265 authenticated user with valid permissions6266 returns trigger details6267 responds with 404 Not Found if requesting non-existing trigger6268 authenticated user with invalid permissions6269 does not return triggers list6270 unauthenticated user6271 does not return triggers list6272 POST /projects/:id/triggers6273 authenticated user with valid permissions6274 with required parameters6275 creates trigger6276 without required parameters6277 does not create trigger6278 authenticated user with invalid permissions6279 does not create trigger6280 unauthenticated user6281 does not create trigger6282 PUT /projects/:id/triggers/:trigger_id6283 user is maintainer of the project6284 the trigger belongs to user6285 updates description6286 the trigger does not belong to user6287 does not update trigger6288 user is developer of the project6289 the trigger belongs to user6290 does not update trigger6291 the trigger does not belong to user6292 does not update trigger6293 unauthenticated user6294 does not update trigger6295 DELETE /projects/:id/triggers/:trigger_id6296 authenticated user with valid permissions6297 deletes trigger6298 responds with 404 Not Found if requesting non-existing trigger6299 behaves like 412 response6300 for a modified resource6301 returns 412 with a JSON error6302 for an unmodified resource6303 returns 204 with an empty body6304 authenticated user with invalid permissions6305 does not delete trigger6306 unauthenticated user6307 does not delete trigger6308API::Ci::Runner6309 /api/v4/jobs6310 POST /api/v4/jobs/request6311 behaves like runner migrations backoff6312 when executing locking database migrations6313 returns 429 error6314 with runner_migrations_backoff disabled6315 does not return 4296316 when no token is provided6317 returns 400 error6318 when invalid token is provided6319 returns 403 error6320 when valid token is provided6321 when Runner is not active6322 returns 204 error6323 when system_id parameter is specified6324 when ci_runner_machines with same system_xid does not exist6325 creates respective ci_runner_machines record6326 when ci_runner_machines with same system_xid already exists6327 does not create new ci_runner_machines record6328 updates the contacted_at field6329 when jobs are finished6330 behaves like no jobs available6331 when runner sends version in User-Agent6332 for stable version6333 gives 204 and set X-GitLab-Last-Update6334 when last_update is up-to-date6335 gives 204 and set the same X-GitLab-Last-Update6336 when last_update is outdated6337 gives 204 and set a new X-GitLab-Last-Update6338 when beta version is sent6339 is expected to respond with numeric status code no_content6340 when pre-9-0 version is sent6341 is expected to respond with numeric status code no_content6342 when pre-9-0 beta version is sent6343 is expected to respond with numeric status code no_content6344 when other projects have pending jobs6345 behaves like no jobs available6346 when runner sends version in User-Agent6347 for stable version6348 gives 204 and set X-GitLab-Last-Update6349 when last_update is up-to-date6350 gives 204 and set the same X-GitLab-Last-Update6351 when last_update is outdated6352 gives 204 and set a new X-GitLab-Last-Update6353 when beta version is sent6354 is expected to respond with numeric status code no_content6355 when pre-9-0 version is sent6356 is expected to respond with numeric status code no_content6357 when pre-9-0 beta version is sent6358 is expected to respond with numeric status code no_content6359 when shared runner requests job for project without shared_runners_enabled6360 behaves like no jobs available6361 when runner sends version in User-Agent6362 for stable version6363 gives 204 and set X-GitLab-Last-Update6364 when last_update is up-to-date6365 gives 204 and set the same X-GitLab-Last-Update6366 when last_update is outdated6367 gives 204 and set a new X-GitLab-Last-Update6368 when beta version is sent6369 is expected to respond with numeric status code no_content6370 when pre-9-0 version is sent6371 is expected to respond with numeric status code no_content6372 when pre-9-0 beta version is sent6373 is expected to respond with numeric status code no_content6374 when there is a pending job6375 picks a job6376 creates persistent ref6377 updates runner info6378 sets the runner's config6379 sets the runner's ip_address6380 handles multiple X-Forwarded-For addresses6381 when job is made for tag6382 sets branch as ref_type6383 when GIT_DEPTH is specified6384 specifies refspecs6385 when a Gitaly exception is thrown during response6386 fails the job as a scheduler failure6387 when GIT_DEPTH is not specified and there is no default git depth for the project6388 specifies refspecs6389 when job is made for branch6390 sets tag as ref_type6391 when GIT_DEPTH is specified6392 specifies refspecs6393 when GIT_DEPTH is not specified and there is no default git depth for the project6394 specifies refspecs6395 when job is for a release6396 when `multi_build_steps` is passed by the runner6397 exposes release info6398 when `multi_build_steps` is not passed by the runner6399 drops the job6400 when job is made for merge request6401 sets branch as ref_type6402 when GIT_DEPTH is specified6403 returns the overwritten git depth for merge request refspecs6404 when info parameter 'version' is present6405 updates provided Runner's parameter6406 when info parameter 'revision' is present6407 updates provided Runner's parameter6408 when info parameter 'platform' is present6409 updates provided Runner's parameter6410 when info parameter 'architecture' is present6411 updates provided Runner's parameter6412 when concurrently updating a job6413 returns a conflict6414 when project and pipeline have multiple jobs6415 returns dependent jobs with the token of the test job6416 preloading job_artifacts_archive6417 queries the ci_job_artifacts table once only6418 queries the ci_builds table five times6419 when pipeline have jobs with artifacts6420 returns dependent jobs with the token of the test job6421 when explicit dependencies are defined6422 returns dependent jobs with the token of the test job6423 when dependencies is an empty array6424 returns an empty array6425 when job has no tags6426 when runner is allowed to pick untagged jobs6427 picks job6428 when runner is not allowed to pick untagged jobs6429 behaves like no jobs available6430 when runner sends version in User-Agent6431 for stable version6432 gives 204 and set X-GitLab-Last-Update6433 when last_update is up-to-date6434 gives 204 and set the same X-GitLab-Last-Update6435 when last_update is outdated6436 gives 204 and set a new X-GitLab-Last-Update6437 when beta version is sent6438 is expected to respond with numeric status code no_content6439 when pre-9-0 version is sent6440 is expected to respond with numeric status code no_content6441 when pre-9-0 beta version is sent6442 is expected to respond with numeric status code no_content6443 when job has code coverage report6444 returns job with the correct artifact specification6445 when triggered job is available6446 when variables are stored in pipeline_variables6447 behaves like expected variables behavior6448 returns variables for triggers6449 registry credentials support6450 when registry is enabled6451 sends registry credentials key6452 when registry is disabled6453 does not send registry credentials6454 timeout support6455 when project specifies job timeout6456 contains info about timeout taken from project6457 when runner specifies lower timeout6458 contains info about timeout overridden by runner6459 when runner specifies bigger timeout6460 contains info about timeout not overridden by runner6461 port support6462 when job image has ports6463 returns the image ports6464 when job services settings has ports6465 returns the service ports6466 when image has pull_policy6467 returns the image with pull policy6468 when service has pull_policy6469 returns the service with pull policy6470 a job with excluded artifacts6471 does not expose excluded paths when these are empty6472 when excluded paths are defined6473 when a runner supports this feature6474 exposes excluded paths6475 when a runner does not support this feature6476 does not expose the build at all6477 setting the application context6478 when triggered by a user6479 behaves like storing arguments in the application context for the API6480 places the expected params in the application context6481 behaves like not executing any extra queries for the application context6482 does not execute more queries than without adding anything to the application context6483 when the runner is of project type6484 behaves like storing arguments in the application context for the API6485 places the expected params in the application context6486 behaves like not executing any extra queries for the application context6487 does not execute more queries than without adding anything to the application context6488 when the runner is of group type6489 behaves like storing arguments in the application context for the API6490 places the expected params in the application context6491 behaves like not executing any extra queries for the application context6492 does not execute more queries than without adding anything to the application context6493 with session url set to local URL6494 with allow_local_requests_from_web_hooks_and_services? stubbed6495 as returning true6496 creates a new session6497 as returning false6498 returns :unprocessable_entity status code6499 for web-ide job6500 when runner has matching tag6501 successfully picks job6502 when runner does not have matching tags6503 does not pick a job6504API::MlModelPackages6505 # order random6506 PUT /api/v4/projects/:id/packages/ml_models/:package_name/:package_version/:file_name/authorize6507 user access6508 visibility: :public, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: true, expected_status: :success6509 is expected to respond with numeric status code success6510 visibility: :public, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: true, expected_status: :forbidden6511 is expected to respond with numeric status code forbidden6512 visibility: :public, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6513 is expected to respond with numeric status code unauthorized6514 visibility: :public, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6515 is expected to respond with numeric status code unauthorized6516 visibility: :public, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :forbidden6517 is expected to respond with numeric status code forbidden6518 visibility: :public, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :forbidden6519 is expected to respond with numeric status code forbidden6520 visibility: :public, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6521 is expected to respond with numeric status code unauthorized6522 visibility: :public, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6523 is expected to respond with numeric status code unauthorized6524 visibility: :public, user_role: :anonymous, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :unauthorized6525 is expected to respond with numeric status code unauthorized6526 visibility: :private, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: true, expected_status: :success6527 is expected to respond with numeric status code success6528 visibility: :private, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: true, expected_status: :forbidden6529 is expected to respond with numeric status code forbidden6530 visibility: :private, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6531 is expected to respond with numeric status code unauthorized6532 visibility: :private, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6533 is expected to respond with numeric status code unauthorized6534 visibility: :private, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :not_found6535 is expected to respond with numeric status code not_found6536 visibility: :private, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :not_found6537 is expected to respond with numeric status code not_found6538 visibility: :private, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6539 is expected to respond with numeric status code unauthorized6540 visibility: :private, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6541 is expected to respond with numeric status code unauthorized6542 visibility: :private, user_role: :anonymous, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :unauthorized6543 is expected to respond with numeric status code unauthorized6544 visibility: :public, user_role: :developer, member: true, token_type: :job_token, valid_token: true, expected_status: :success6545 is expected to respond with numeric status code success6546 visibility: :public, user_role: :guest, member: true, token_type: :job_token, valid_token: true, expected_status: :forbidden6547 is expected to respond with numeric status code forbidden6548 visibility: :public, user_role: :developer, member: true, token_type: :job_token, valid_token: false, expected_status: :unauthorized6549 is expected to respond with numeric status code unauthorized6550 visibility: :public, user_role: :guest, member: true, token_type: :job_token, valid_token: false, expected_status: :unauthorized6551 is expected to respond with numeric status code unauthorized6552 visibility: :public, user_role: :developer, member: false, token_type: :job_token, valid_token: true, expected_status: :forbidden6553 is expected to respond with numeric status code forbidden6554 visibility: :public, user_role: :guest, member: false, token_type: :job_token, valid_token: true, expected_status: :forbidden6555 is expected to respond with numeric status code forbidden6556 visibility: :public, user_role: :developer, member: false, token_type: :job_token, valid_token: false, expected_status: :unauthorized6557 is expected to respond with numeric status code unauthorized6558 visibility: :public, user_role: :guest, member: false, token_type: :job_token, valid_token: false, expected_status: :unauthorized6559 is expected to respond with numeric status code unauthorized6560 visibility: :private, user_role: :developer, member: true, token_type: :job_token, valid_token: true, expected_status: :success6561 is expected to respond with numeric status code success6562 visibility: :private, user_role: :guest, member: true, token_type: :job_token, valid_token: true, expected_status: :forbidden6563 is expected to respond with numeric status code forbidden6564 visibility: :private, user_role: :developer, member: true, token_type: :job_token, valid_token: false, expected_status: :unauthorized6565 is expected to respond with numeric status code unauthorized6566 visibility: :private, user_role: :guest, member: true, token_type: :job_token, valid_token: false, expected_status: :unauthorized6567 is expected to respond with numeric status code unauthorized6568 visibility: :private, user_role: :developer, member: false, token_type: :job_token, valid_token: true, expected_status: :not_found6569 is expected to respond with numeric status code not_found6570 visibility: :private, user_role: :guest, member: false, token_type: :job_token, valid_token: true, expected_status: :not_found6571 is expected to respond with numeric status code not_found6572 visibility: :private, user_role: :developer, member: false, token_type: :job_token, valid_token: false, expected_status: :unauthorized6573 is expected to respond with numeric status code unauthorized6574 visibility: :private, user_role: :guest, member: false, token_type: :job_token, valid_token: false, expected_status: :unauthorized6575 is expected to respond with numeric status code unauthorized6576 visibility: :public, user_role: :developer, member: true, token_type: :deploy_token, valid_token: true, expected_status: :success6577 is expected to respond with numeric status code success6578 visibility: :public, user_role: :developer, member: true, token_type: :deploy_token, valid_token: false, expected_status: :unauthorized6579 is expected to respond with numeric status code unauthorized6580 visibility: :private, user_role: :developer, member: true, token_type: :deploy_token, valid_token: true, expected_status: :success6581 is expected to respond with numeric status code success6582 visibility: :private, user_role: :developer, member: true, token_type: :deploy_token, valid_token: false, expected_status: :unauthorized6583 is expected to respond with numeric status code unauthorized6584 behaves like Endpoint not found if read_model_registry not available6585 when read_model_registry disabled for current project6586 is not found6587 application security6588 param_name: :package_name, param_value: "my-package/../"6589 rejects malicious request6590 param_name: :package_name, param_value: "my-package%2f%2e%2e%2f"6591 rejects malicious request6592 param_name: :file_name, param_value: "../.ssh%2fauthorized_keys"6593 rejects malicious request6594 param_name: :file_name, param_value: "%2e%2e%2f.ssh%2fauthorized_keys"6595 rejects malicious request6596 PUT /api/v4/projects/:id/packages/ml_models/:package_name/:package_version/:file_name6597 success6598 creates a new package6599 user access6600 visibility: :public, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: true, expected_status: :success6601 behaves like process ml model package upload6602 with object storage disabled6603 without a file from workhorse6604 behaves like returning response status6605 returns bad_request6606 with correct params6607 behaves like package workhorse uploads6608 without a workhorse header6609 logs an error6610 behaves like returning response status6611 returns forbidden6612 behaves like creates model experiments package files6613 creates package files6614 returns bad request if package creation fails6615 when file is too large6616 is bad request6617 with object storage enabled6618 and direct upload enabled6619 behaves like creates model experiments package files6620 creates package files6621 returns bad request if package creation fails6622 when file is too large6623 is bad request6624 with invalid remote_id: 1231236625 is expected to respond with numeric status code forbidden6626 with invalid remote_id: ../../1231236627 is expected to respond with numeric status code forbidden6628 and direct upload disabled6629 behaves like creates model experiments package files6630 creates package files6631 returns bad request if package creation fails6632 when file is too large6633 is bad request6634 visibility: :public, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: true, expected_status: :forbidden6635 is expected to respond with numeric status code forbidden6636 visibility: :public, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6637 is expected to respond with numeric status code unauthorized6638 visibility: :public, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6639 is expected to respond with numeric status code unauthorized6640 visibility: :public, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :forbidden6641 is expected to respond with numeric status code forbidden6642 visibility: :public, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :forbidden6643 is expected to respond with numeric status code forbidden6644 visibility: :public, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6645 is expected to respond with numeric status code unauthorized6646 visibility: :public, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6647 is expected to respond with numeric status code unauthorized6648 visibility: :public, user_role: :anonymous, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :unauthorized6649 is expected to respond with numeric status code unauthorized6650 visibility: :private, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: true, expected_status: :success6651 behaves like process ml model package upload6652 with object storage disabled6653 without a file from workhorse6654 behaves like returning response status6655 returns bad_request6656 with correct params6657 behaves like package workhorse uploads6658 without a workhorse header6659 logs an error6660 behaves like returning response status6661 returns forbidden6662 behaves like creates model experiments package files6663 creates package files6664 returns bad request if package creation fails6665 when file is too large6666 is bad request6667 with object storage enabled6668 and direct upload enabled6669 behaves like creates model experiments package files6670 creates package files6671 returns bad request if package creation fails6672 when file is too large6673 is bad request6674 with invalid remote_id: 1231236675 is expected to respond with numeric status code forbidden6676 with invalid remote_id: ../../1231236677 is expected to respond with numeric status code forbidden6678 and direct upload disabled6679 behaves like creates model experiments package files6680 creates package files6681 returns bad request if package creation fails6682 when file is too large6683 is bad request6684 visibility: :private, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: true, expected_status: :forbidden6685 is expected to respond with numeric status code forbidden6686 visibility: :private, user_role: :developer, member: true, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6687 is expected to respond with numeric status code unauthorized6688 visibility: :private, user_role: :guest, member: true, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6689 is expected to respond with numeric status code unauthorized6690 visibility: :private, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :not_found6691 is expected to respond with numeric status code not_found6692 visibility: :private, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :not_found6693 is expected to respond with numeric status code not_found6694 visibility: :private, user_role: :developer, member: false, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6695 is expected to respond with numeric status code unauthorized6696 visibility: :private, user_role: :guest, member: false, token_type: :personal_access_token, valid_token: false, expected_status: :unauthorized6697 is expected to respond with numeric status code unauthorized6698 visibility: :private, user_role: :anonymous, member: false, token_type: :personal_access_token, valid_token: true, expected_status: :unauthorized6699 is expected to respond with numeric status code unauthorized6700 visibility: :public, user_role: :developer, member: true, token_type: :job_token, valid_token: true, expected_status: :success6701 behaves like process ml model package upload6702 with object storage disabled6703 without a file from workhorse6704 behaves like returning response status6705 returns bad_request6706 with correct params6707 behaves like package workhorse uploads6708 without a workhorse header6709 logs an error6710 behaves like returning response status6711 returns forbidden6712 behaves like creates model experiments package files6713 creates package files6714 returns bad request if package creation fails6715 when file is too large6716 is bad request6717 with object storage enabled6718 and direct upload enabled6719 behaves like creates model experiments package files6720 creates package files6721 returns bad request if package creation fails6722 when file is too large6723 is bad request6724 with invalid remote_id: 1231236725 is expected to respond with numeric status code forbidden6726 with invalid remote_id: ../../1231236727 is expected to respond with numeric status code forbidden6728 and direct upload disabled6729 behaves like creates model experiments package files6730 creates package files6731 returns bad request if package creation fails6732 when file is too large6733 is bad request6734 visibility: :public, user_role: :guest, member: true, token_type: :job_token, valid_token: true, expected_status: :forbidden6735 is expected to respond with numeric status code forbidden6736 visibility: :public, user_role: :developer, member: true, token_type: :job_token, valid_token: false, expected_status: :unauthorized6737 is expected to respond with numeric status code unauthorized6738 visibility: :public, user_role: :guest, member: true, token_type: :job_token, valid_token: false, expected_status: :unauthorized6739 is expected to respond with numeric status code unauthorized6740 visibility: :public, user_role: :developer, member: false, token_type: :job_token, valid_token: true, expected_status: :forbidden6741 is expected to respond with numeric status code forbidden6742 visibility: :public, user_role: :guest, member: false, token_type: :job_token, valid_token: true, expected_status: :forbidden6743 is expected to respond with numeric status code forbidden6744 visibility: :public, user_role: :developer, member: false, token_type: :job_token, valid_token: false, expected_status: :unauthorized6745 is expected to respond with numeric status code unauthorized6746 visibility: :public, user_role: :guest, member: false, token_type: :job_token, valid_token: false, expected_status: :unauthorized6747 is expected to respond with numeric status code unauthorized6748 visibility: :private, user_role: :developer, member: true, token_type: :job_token, valid_token: true, expected_status: :success6749 behaves like process ml model package upload6750 with object storage disabled6751 without a file from workhorse6752 behaves like returning response status6753 returns bad_request6754 with correct params6755 behaves like package workhorse uploads6756 without a workhorse header6757 logs an error6758 behaves like returning response status6759 returns forbidden6760 behaves like creates model experiments package files6761 creates package files6762 returns bad request if package creation fails6763 when file is too large6764 is bad request6765 with object storage enabled6766 and direct upload enabled6767 behaves like creates model experiments package files6768 creates package files6769 returns bad request if package creation fails6770 when file is too large6771 is bad request6772 with invalid remote_id: 1231236773 is expected to respond with numeric status code forbidden6774 with invalid remote_id: ../../1231236775 is expected to respond with numeric status code forbidden6776 and direct upload disabled6777 behaves like creates model experiments package files6778 creates package files6779 returns bad request if package creation fails6780 when file is too large6781 is bad request6782 visibility: :private, user_role: :guest, member: true, token_type: :job_token, valid_token: true, expected_status: :forbidden6783 is expected to respond with numeric status code forbidden6784 visibility: :private, user_role: :developer, member: true, token_type: :job_token, valid_token: false, expected_status: :unauthorized6785 is expected to respond with numeric status code unauthorized6786 visibility: :private, user_role: :guest, member: true, token_type: :job_token, valid_token: false, expected_status: :unauthorized6787 is expected to respond with numeric status code unauthorized6788 visibility: :private, user_role: :developer, member: false, token_type: :job_token, valid_token: true, expected_status: :not_found6789 is expected to respond with numeric status code not_found6790 visibility: :private, user_role: :guest, member: false, token_type: :job_token, valid_token: true, expected_status: :not_found6791 is expected to respond with numeric status code not_found6792 visibility: :private, user_role: :developer, member: false, token_type: :job_token, valid_token: false, expected_status: :unauthorized6793 is expected to respond with numeric status code unauthorized6794 visibility: :private, user_role: :guest, member: false, token_type: :job_token, valid_token: false, expected_status: :unauthorized6795 is expected to respond with numeric status code unauthorized6796 visibility: :public, user_role: :developer, member: true, token_type: :deploy_token, valid_token: true, expected_status: :success6797 behaves like process ml model package upload6798 with object storage disabled6799 without a file from workhorse6800 behaves like returning response status6801 returns bad_request6802 with correct params6803 behaves like package workhorse uploads6804 without a workhorse header6805 logs an error6806 behaves like returning response status6807 returns forbidden6808 behaves like creates model experiments package files6809 creates package files6810 returns bad request if package creation fails6811 when file is too large6812 is bad request6813 with object storage enabled6814 and direct upload enabled6815 behaves like creates model experiments package files6816 creates package files6817 returns bad request if package creation fails6818 when file is too large6819 is bad request6820 with invalid remote_id: 1231236821 is expected to respond with numeric status code forbidden6822 with invalid remote_id: ../../1231236823 is expected to respond with numeric status code forbidden6824 and direct upload disabled6825 behaves like creates model experiments package files6826 creates package files6827 returns bad request if package creation fails6828 when file is too large6829 is bad request6830 visibility: :public, user_role: :developer, member: true, token_type: :deploy_token, valid_token: false, expected_status: :unauthorized6831 is expected to respond with numeric status code unauthorized6832 visibility: :private, user_role: :developer, member: true, token_type: :deploy_token, valid_token: true, expected_status: :success6833 behaves like process ml model package upload6834 with object storage disabled6835 without a file from workhorse6836 behaves like returning response status6837 returns bad_request6838 with correct params6839 behaves like package workhorse uploads6840 without a workhorse header6841 logs an error6842 behaves like returning response status6843 returns forbidden6844 behaves like creates model experiments package files6845 creates package files6846 returns bad request if package creation fails6847 when file is too large6848 is bad request6849 with object storage enabled6850 and direct upload enabled6851 behaves like creates model experiments package files6852 creates package files6853 returns bad request if package creation fails6854 when file is too large6855 is bad request6856 with invalid remote_id: 1231236857 is expected to respond with numeric status code forbidden6858 with invalid remote_id: ../../1231236859 is expected to respond with numeric status code forbidden6860 and direct upload disabled6861 behaves like creates model experiments package files6862 creates package files6863 returns bad request if package creation fails6864 when file is too large6865 is bad request6866 visibility: :private, user_role: :developer, member: true, token_type: :deploy_token, valid_token: false, expected_status: :unauthorized6867 is expected to respond with numeric status code unauthorized6868 behaves like Endpoint not found if read_model_registry not available6869 when read_model_registry disabled for current project6870 is not found6871getting an issue list for a project6872 behaves like graphql issue list request spec6873 includes a web_url6874 includes discussion locked6875 behaves like a working graphql query6876 returns a successful response6877 filters6878 when filtering by assignees6879 when both assignee_username filters are provided6880 returns a mutually exclusive param error6881 when filtering by a negated argument6882 returns correctly filtered issues6883 when filtering by unioned arguments6884 when filtering by assignees6885 returns correctly filtered issues6886 when filtering by labels6887 returns correctly filtered issues6888 when argument is blank6889 does not raise an error6890 when feature flag is disabled6891 returns an error6892 when filtering by a blank negated argument6893 does not raise an error6894 when filtering by reaction emoji6895 value: "thumbsup", issue_list: lazy { voted_issues }6896 returns correctly filtered issues6897 value: "ANY", issue_list: lazy { voted_issues }6898 returns correctly filtered issues6899 value: "any", issue_list: lazy { voted_issues }6900 returns correctly filtered issues6901 value: "AnY", issue_list: lazy { voted_issues }6902 returns correctly filtered issues6903 value: "NONE", issue_list: lazy { no_award_issues }6904 returns correctly filtered issues6905 value: "thumbsdown", issue_list: lazy { [] }6906 returns correctly filtered issues6907 when filtering by search6908 behaves like query with a search term6909 returns only matching issuables6910 when filtering by confidentiality6911 when fetching confidential issues6912 returns only confidential issues6913 when user cannot see confidential issues6914 returns an empty list6915 when fetching non-confidential issues6916 returns only non-confidential issues6917 when user cannot see confidential issues6918 returns an empty list6919 sorting and pagination6920 when sorting by severity6921 when ascending6922 behaves like sorted paginated query6923 behaves like requires variables6924 shared example requires variables to be set6926 when sorting6927 sorts correctly6928 when paginating6929 paginates correctly6930 when descending6931 behaves like sorted paginated query6932 behaves like requires variables6933 shared example requires variables to be set6935 when sorting6936 sorts correctly6937 when paginating6938 paginates correctly6939 when sorting by priority6940 when ascending6941 behaves like sorted paginated query6942 behaves like requires variables6943 shared example requires variables to be set6945 when sorting6946 sorts correctly6947 when paginating6948 paginates correctly6949 when descending6950 behaves like sorted paginated query6951 behaves like requires variables6952 shared example requires variables to be set6954 when sorting6955 sorts correctly6956 when paginating6957 paginates correctly6958 when sorting by due date6959 when ascending6960 behaves like sorted paginated query6961 behaves like requires variables6962 shared example requires variables to be set6964 when sorting6965 sorts correctly6966 when paginating6967 paginates correctly6968 when descending6969 behaves like sorted paginated query6970 behaves like requires variables6971 shared example requires variables to be set6973 when sorting6974 sorts correctly6975 when paginating6976 paginates correctly6977 when sorting by relative position6978 when ascending6979 behaves like sorted paginated query6980 behaves like requires variables6981 shared example requires variables to be set6983 when sorting6984 sorts correctly6985 when paginating6986 paginates correctly6987 when last and sort params are present6988 fetches last elements without error6989 when sorting by label priority6990 when ascending6991 behaves like sorted paginated query6992 behaves like requires variables6993 shared example requires variables to be set6995 when sorting6996 sorts correctly6997 when paginating6998 paginates correctly6999 when descending7000 behaves like sorted paginated query7001 behaves like requires variables7002 shared example requires variables to be set7004 when sorting7005 sorts correctly7006 when paginating7007 paginates correctly7008 when sorting by milestone due date7009 when ascending7010 behaves like sorted paginated query7011 behaves like requires variables7012 shared example requires variables to be set7014 when sorting7015 sorts correctly7016 when paginating7017 paginates correctly7018 when descending7019 behaves like sorted paginated query7020 behaves like requires variables7021 shared example requires variables to be set7023 when sorting7024 sorts correctly7025 when paginating7026 paginates correctly7027 N+1 query checks7028 when requesting `user_notes_count` and `user_discussions_count`7029 prevents N+1 queries7030 when requesting `merge_requests_count`7031 prevents N+1 queries7032 when requesting `timelogs`7033 prevents N+1 queries7034 when requesting `closed_as_duplicate_of`7035 prevents N+1 queries7036 when award emoji votes7037 prevents N+1 queries7038 when requesting participants7039 prevents N+1 queries7040 when requesting labels7041 prevents N+1 queries7042 when confidential issues exist7043 when user can see confidential issues7044 includes confidential issues7045 when user cannot see confidential issues7046 does not include confidential issues7047 when limiting the number of results7048 is expected to check permissions on the first issue only7049 behaves like a working graphql query7050 returns a successful response7051 only returns N issues7052 when no limit is provided7053 returns all issues7054 when the user does not have access to the issue7055 returns no issues7056 when fetching escalation status7057 returns the escalation status values7058 avoids N+1 queries7059 when fetching alert management alert7060 avoids N+1 queries7061 returns the alert data7062 returns the alerts data7063 when fetching customer_relations_contacts7064 avoids N+1 queries7065 when fetching labels7066 avoids N+1 queries7067 when fetching assignees7068 avoids N+1 queries7069 when selecting `related_merge_requests`7070 limits the field to 1 execution7071API::Invitations7072 POST /projects/:id/invitations7073 does not exceed expected queries count for emails7074 does not exceed expected queries count for user_ids7075 does not exceed expected queries count with secondary emails7076 behaves like POST /:source_type/:id/invitations7077 with :source_type == projects7078 updates an already existing active member7079 returns 400 when the invite params of email and user_id are not sent7080 returns 400 when the email is blank7081 returns 400 when the user_id is blank7082 returns 400 when the email list is not a valid format7083 returns 400 when the comma-separated email list is not a valid format7084 returns 400 when access_level is not given7085 returns 400 when access_level is not valid7086 behaves like a 404 response when source is private7087 returns 4047088 when authenticated as a non-member or member with insufficient membership management rights7089 when the user does not have rights to manage members7090 as a access_requester7091 behaves like a 403 response when user does not have rights to manage members of a specific access level7092 returns 4037093 as a stranger7094 behaves like a 403 response when user does not have rights to manage members of a specific access level7095 returns 4037096 as a developer7097 behaves like a 403 response when user does not have rights to manage members of a specific access level7098 returns 4037099 when the user has the rights to manage members but tries to manage members with a higher access level7100 when an invitee is added as OWNER7101 behaves like a 403 response when user does not have rights to manage members of a specific access level7102 returns 4037103 when an access_requester is added as OWNER7104 behaves like a 403 response when user does not have rights to manage members of a specific access level7105 returns 4037106 when authenticated as a maintainer/owner7107 adds a new member by email7108 adds a new member by confirmed primary email7109 adds a new member by unconfirmed primary email7110 adds a new member by confirmed secondary email7111 adds a new member as an invite for unconfirmed secondary email7112 adds a new member by user_id7113 adds new members with email and user_id7114 invites a list of new email addresses7115 invites a list of new email addresses and user ids7116 and new member is already a requester7117 transforms the requester into a proper member7118 when invitee is already an invited member7119 updates the member for that email7120 access levels7121 does not create the member if group level is higher7122 creates the member if group level is lower7123 access expiry date7124 when set to a date in the past7125 does not create a member7126 when set to a date in the future7127 invites a member7128 with tasks_to_be_done and tasks_project_id in the params7129 when there is 1 invitation7130 creates a member_task with the tasks_to_be_done and the project7131 when there are multiple invitations7132 creates a member_task with the tasks_to_be_done and the project7133 with invite_source considerations7134 tracks the invite source as api7135 tracks the invite source from params7136 when adding project bot7137 returns error7138 POST /groups/:id/invitations7139 does not exceed expected queries count for emails7140 does not exceed expected queries count for secondary emails7141 behaves like POST /:source_type/:id/invitations7142 with :source_type == groups7143 updates an already existing active member7144 returns 400 when the invite params of email and user_id are not sent7145 returns 400 when the email is blank7146 returns 400 when the user_id is blank7147 returns 400 when the email list is not a valid format7148 returns 400 when the comma-separated email list is not a valid format7149 returns 400 when access_level is not given7150 returns 400 when access_level is not valid7151 behaves like a 404 response when source is private7152 returns 4047153 when authenticated as a non-member or member with insufficient membership management rights7154 when the user does not have rights to manage members7155 as a access_requester7156 behaves like a 403 response when user does not have rights to manage members of a specific access level7157 returns 4037158 as a stranger7159 behaves like a 403 response when user does not have rights to manage members of a specific access level7160 returns 4037161 as a developer7162 behaves like a 403 response when user does not have rights to manage members of a specific access level7163 returns 4037164 when the user has the rights to manage members but tries to manage members with a higher access level7165 when an invitee is added as OWNER7166 behaves like a 403 response when user does not have rights to manage members of a specific access level7167 returns 4037168 when an access_requester is added as OWNER7169 behaves like a 403 response when user does not have rights to manage members of a specific access level7170 returns 4037171 when authenticated as a maintainer/owner7172 adds a new member by email7173 adds a new member by confirmed primary email7174 adds a new member by unconfirmed primary email7175 adds a new member by confirmed secondary email7176 adds a new member as an invite for unconfirmed secondary email7177 adds a new member by user_id7178 adds new members with email and user_id7179 invites a list of new email addresses7180 invites a list of new email addresses and user ids7181 and new member is already a requester7182 transforms the requester into a proper member7183 when invitee is already an invited member7184 updates the member for that email7185 access levels7186 does not create the member if group level is higher7187 creates the member if group level is lower7188 access expiry date7189 when set to a date in the past7190 does not create a member7191 when set to a date in the future7192 invites a member7193 with tasks_to_be_done and tasks_project_id in the params7194 when there is 1 invitation7195 creates a member_task with the tasks_to_be_done and the project7196 when there are multiple invitations7197 creates a member_task with the tasks_to_be_done and the project7198 with invite_source considerations7199 tracks the invite source as api7200 tracks the invite source from params7201 when adding project bot7202 returns error7203 GET /projects/:id/invitations7204 behaves like GET /:source_type/:id/invitations7205 with :source_type == projects7206 does not find confirmed members7207 finds all members with no query string specified7208 finds the invitation by invite_email with query string7209 behaves like a 404 response when source is private7210 returns 4047211 when authenticated as a maintainer7212 returns 2007213 as a access_requester7214 behaves like a 403 response when user does not have rights to manage members of a specific access level7215 returns 4037216 as a stranger7217 behaves like a 403 response when user does not have rights to manage members of a specific access level7218 returns 4037219 as a developer7220 behaves like a 403 response when user does not have rights to manage members of a specific access level7221 returns 4037222 GET /groups/:id/invitations7223 behaves like GET /:source_type/:id/invitations7224 with :source_type == groups7225 does not find confirmed members7226 finds all members with no query string specified7227 finds the invitation by invite_email with query string7228 behaves like a 404 response when source is private7229 returns 4047230 when authenticated as a maintainer7231 returns 2007232 as a access_requester7233 behaves like a 403 response when user does not have rights to manage members of a specific access level7234 returns 4037235 as a stranger7236 behaves like a 403 response when user does not have rights to manage members of a specific access level7237 returns 4037238 as a developer7239 behaves like a 403 response when user does not have rights to manage members of a specific access level7240 returns 4037241 DELETE /projects/:id/inviations/:email7242 behaves like DELETE /:source_type/:id/invitations/:email7243 with :source_type == projects7244 returns 404 if member does not exist7245 returns 422 for a valid request if the resource was not destroyed7246 behaves like a 404 response when source is private7247 returns 4047248 when authenticated as a non-member or member with insufficient rights7249 when the user does not have rights to manage members7250 as a access_requester7251 behaves like a 403 response when user does not have rights to manage members of a specific access level7252 returns 4037253 as a stranger7254 behaves like a 403 response when user does not have rights to manage members of a specific access level7255 returns 4037256 when authenticated as a member and deleting themself7257 does not delete the member7258 when authenticated as a maintainer/owner7259 deletes the member and returns 204 with no content7260 when MAINTAINER tries to remove invitation of an OWNER7261 behaves like a 403 response when user does not have rights to manage members of a specific access level7262 returns 4037263 DELETE /groups/:id/inviations/:email7264 behaves like DELETE /:source_type/:id/invitations/:email7265 with :source_type == groups7266 returns 404 if member does not exist7267 returns 422 for a valid request if the resource was not destroyed7268 behaves like a 404 response when source is private7269 returns 4047270 when authenticated as a non-member or member with insufficient rights7271 when the user does not have rights to manage members7272 as a access_requester7273 behaves like a 403 response when user does not have rights to manage members of a specific access level7274 returns 4037275 as a stranger7276 behaves like a 403 response when user does not have rights to manage members of a specific access level7277 returns 4037278 when authenticated as a member and deleting themself7279 does not delete the member7280 when authenticated as a maintainer/owner7281 deletes the member and returns 204 with no content7282 when MAINTAINER tries to remove invitation of an OWNER7283 behaves like a 403 response when user does not have rights to manage members of a specific access level7284 returns 4037285 PUT /projects/:id/invitations7286 behaves like PUT /:source_type/:id/invitations/:email7287 with :source_type == projects7288 behaves like a 404 response when source is private7289 returns 4047290 when authenticated as a non-member or member with insufficient rights7291 when the user does not have rights to manage members7292 as a access_requester7293 behaves like a 403 response when user does not have rights to manage members of a specific access level7294 returns 4037295 as a stranger7296 behaves like a 403 response when user does not have rights to manage members of a specific access level7297 returns 4037298 when authenticated as a maintainer/owner7299 returns 409 if member does not exist7300 returns 400 when access_level is not given and there are no other params7301 returns 400 when access level is not valid7302 updating access level7303 updates the invitation7304 MAINTAINER tries to update access level to OWNER7305 behaves like a 403 response when user does not have rights to manage members of a specific access level7306 returns 4037307 updating access expiry date7308 when set to a date in the past7309 does not update the member7310 when set to a date in the future7311 updates the member7312 PUT /groups/:id/invitations7313 behaves like PUT /:source_type/:id/invitations/:email7314 with :source_type == groups7315 behaves like a 404 response when source is private7316 returns 4047317 when authenticated as a non-member or member with insufficient rights7318 when the user does not have rights to manage members7319 as a access_requester7320 behaves like a 403 response when user does not have rights to manage members of a specific access level7321 returns 4037322 as a stranger7323 behaves like a 403 response when user does not have rights to manage members of a specific access level7324 returns 4037325 when authenticated as a maintainer/owner7326 returns 409 if member does not exist7327 returns 400 when access_level is not given and there are no other params7328 returns 400 when access level is not valid7329 updating access level7330 updates the invitation7331 MAINTAINER tries to update access level to OWNER7332 behaves like a 403 response when user does not have rights to manage members of a specific access level7333 returns 4037334 updating access expiry date7335 when set to a date in the past7336 does not update the member7337 when set to a date in the future7338 updates the member7339Query.project(fullPath).release(tagName)7340 ensures that the correct data is returned based on the project's visibility and the user's access level7341 when the project is private7342 when the user is not logged in7343 behaves like no access to the release field7344 repository-related fields7345 returns nil7346 when the user has Guest permissions7347 behaves like restricted access to release fields7348 scalar fields7349 finds all release data7350 milestones7351 finds milestones associated to a release7352 author7353 finds the author of the release7354 commit7355 restricts commit associated with the release7356 assets7357 count7358 returns non source release links count7359 links7360 finds all non source release links7361 sources7362 restricts release sources7363 links7364 finds only selfUrl7365 evidences7366 restricts all evidence fields7367 behaves like no access to editUrl7368 does not return editUrl7369 when the user has Reporter permissions7370 behaves like full access to the release field7371 scalar fields7372 finds all release data7373 milestones7374 finds all milestones associated to a release7375 author7376 finds the author of the release7377 commit7378 finds the commit associated with the release7379 assets7380 count7381 returns the number of assets associated to the release7382 links7383 finds all release links7384 sources7385 finds all release sources7386 links7387 finds all release links7388 evidences7389 finds all evidence fields7390 behaves like no access to editUrl7391 does not return editUrl7392 when the user has Developer permissions7393 behaves like full access to the release field7394 scalar fields7395 finds all release data7396 milestones7397 finds all milestones associated to a release7398 author7399 finds the author of the release7400 commit7401 finds the commit associated with the release7402 assets7403 count7404 returns the number of assets associated to the release7405 links7406 finds all release links7407 sources7408 finds all release sources7409 links7410 finds all release links7411 evidences7412 finds all evidence fields7413 behaves like access to editUrl7414 returns editUrl7415 when the project is public7416 when the user is not logged in7417 behaves like full access to the release field7418 scalar fields7419 finds all release data7420 milestones7421 finds all milestones associated to a release7422 author7423 finds the author of the release7424 commit7425 finds the commit associated with the release7426 assets7427 count7428 returns the number of assets associated to the release7429 links7430 finds all release links7431 sources7432 finds all release sources7433 links7434 finds all release links7435 evidences7436 finds all evidence fields7437 behaves like no access to editUrl7438 does not return editUrl7439 when the user has Guest permissions7440 behaves like full access to the release field7441 scalar fields7442 finds all release data7443 milestones7444 finds all milestones associated to a release7445 author7446 finds the author of the release7447 commit7448 finds the commit associated with the release7449 assets7450 count7451 returns the number of assets associated to the release7452 links7453 finds all release links7454 sources7455 finds all release sources7456 links7457 finds all release links7458 evidences7459 finds all evidence fields7460 behaves like no access to editUrl7461 does not return editUrl7462 when the user has Reporter permissions7463 behaves like full access to the release field7464 scalar fields7465 finds all release data7466 milestones7467 finds all milestones associated to a release7468 author7469 finds the author of the release7470 commit7471 finds the commit associated with the release7472 assets7473 count7474 returns the number of assets associated to the release7475 links7476 finds all release links7477 sources7478 finds all release sources7479 links7480 finds all release links7481 evidences7482 finds all evidence fields7483 behaves like no access to editUrl7484 does not return editUrl7485 when the user has Reporter permissions7486 behaves like full access to the release field7487 scalar fields7488 finds all release data7489 milestones7490 finds all milestones associated to a release7491 author7492 finds the author of the release7493 commit7494 finds the commit associated with the release7495 assets7496 count7497 returns the number of assets associated to the release7498 links7499 finds all release links7500 sources7501 finds all release sources7502 links7503 finds all release links7504 evidences7505 finds all evidence fields7506 when the user has Developer permissions7507 behaves like full access to the release field7508 scalar fields7509 finds all release data7510 milestones7511 finds all milestones associated to a release7512 author7513 finds the author of the release7514 commit7515 finds the commit associated with the release7516 assets7517 count7518 returns the number of assets associated to the release7519 links7520 finds all release links7521 sources7522 finds all release sources7523 links7524 finds all release links7525 evidences7526 finds all evidence fields7527 behaves like access to editUrl7528 returns editUrl7529 upcoming release7530 future release7531 finds all release data7532 past release7533 finds all release data7534 milestone order7535 behaves like correct release milestone order7536 due_date7537 when both milestones have a due_date7538 behaves like correct sort order7539 sorts milestonee_1 before milestone_27540 when one milestone does not have a due_date7541 behaves like correct sort order7542 sorts milestonee_1 before milestone_27543 start_date7544 when both milestones have a start_date7545 behaves like correct sort order7546 sorts milestonee_1 before milestone_27547 when one milestone does not have a start_date7548 behaves like correct sort order7549 sorts milestonee_1 before milestone_27550 title7551 behaves like correct sort order7552 sorts milestonee_1 before milestone_27553Updating a Snippet7554 PersonalSnippet7555 behaves like graphql update actions7556 when the user does not have permission7557 does not update the Snippet7558 behaves like a mutation that returns top-level errors7559 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"7560 when the user has permission7561 updates the snippet record7562 updates the Snippet7563 when there are ActiveRecord validation errors7564 does not update the Snippet7565 returns the Snippet with its original values7566 behaves like a mutation that returns errors in the response7567 is expected to contain exactly "Title can't be blank"7568 behaves like when the snippet is not found7569 behaves like a mutation that returns top-level errors7570 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"7571 behaves like snippet edit usage data counters7572 when user is sessionless7573 does not track usage data actions7574 when user is not sessionless7575 tracks usage data actions7576 when mutation result raises an error7577 does not track usage data actions7578 behaves like has spam protection7579 #check_spam_action_response!7580 when the object is spam (DISALLOW)7581 and no CAPTCHA is available7582 behaves like disallow response7583 informs the client that the request was denied as spam7584 and a CAPTCHA is required7585 behaves like disallow response7586 informs the client that the request was denied as spam7587 when the object is not spam (CONDITIONAL ALLOW)7588 and no CAPTCHA is required7589 does not return a top-level error7590 and a CAPTCHA is required7591 informs the client that the request may be retried after solving the CAPTCHA7592 ProjectSnippet7593 when the author is not a member of the project7594 returns an an error7595 when the author is a member of the project7596 behaves like graphql update actions7597 when the user does not have permission7598 does not update the Snippet7599 behaves like a mutation that returns top-level errors7600 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"7601 when the user has permission7602 updates the snippet record7603 updates the Snippet7604 when there are ActiveRecord validation errors7605 does not update the Snippet7606 returns the Snippet with its original values7607 behaves like a mutation that returns errors in the response7608 is expected to contain exactly "Title can't be blank"7609 when the snippet project feature is disabled7610 returns an an error7611 behaves like snippet edit usage data counters7612 when user is sessionless7613 does not track usage data actions7614 when user is not sessionless7615 tracks usage data actions7616 when mutation result raises an error7617 does not track usage data actions7618 behaves like has spam protection7619 #check_spam_action_response!7620 when the object is spam (DISALLOW)7621 and no CAPTCHA is available7622 behaves like disallow response7623 informs the client that the request was denied as spam7624 and a CAPTCHA is required7625 behaves like disallow response7626 informs the client that the request was denied as spam7627 when the object is not spam (CONDITIONAL ALLOW)7628 and no CAPTCHA is required7629 does not return a top-level error7630 and a CAPTCHA is required7631 informs the client that the request may be retried after solving the CAPTCHA7632 when not sessionless7633 behaves like Snowplow event tracking with RedisHLL context7634 behaves like Snowplow event tracking7635 is emitted7636 behaves like when the snippet is not found7637 behaves like a mutation that returns top-level errors7638 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"7639API::ProjectMilestones7640 behaves like group and project milestones7641 GET /projects/:id/milestones7642 returns milestones list7643 returns a 401 error if user not authenticated7644 returns an array of active milestones7645 returns an array of closed milestones7646 returns an array of milestones specified by iids7647 does not return any milestone if none found7648 returns a milestone by iids array7649 returns a milestone by title7650 returns a milestone by searching for title7651 returns a milestones by searching for description7652 GET /projects/:id/milestones/:milestone_id7653 returns a milestone by id7654 returns 401 error if user not authenticated7655 returns a 404 error if milestone id not found7656 POST /projects/:id/milestones7657 creates a new milestone7658 creates a new milestone with description and dates7659 returns a 400 error if title is missing7660 returns a 400 error if params are invalid (duplicate title)7661 creates a new milestone with reserved html characters7662 PUT /projects/:id/milestones/:milestone_id7663 updates a milestone7664 removes a due date if nil is passed7665 returns a 404 error if milestone id not found7666 closes milestone7667 updates milestone with only start date7668 DELETE /projects/:id/milestones/:milestone_id7669 rejects a member with guest access from deleting a milestone7670 deletes the milestone when the user has reporter access to the project7671 GET /projects/:id/milestones/:milestone_id/issues7672 returns issues for a particular milestone7673 returns issues sorted by label priority7674 matches V4 response schema for a list of issues7675 returns a 401 error if user not authenticated7676 confidential issues7677 returns confidential issues to team members7678 does not return confidential issues to team members with guest role7679 does not return confidential issues to regular users7680 returns issues ordered by label priority7681 GET /projects/:id/milestones/:milestone_id/merge_requests7682 returns merge_requests for a particular milestone7683 returns merge_requests sorted by label priority7684 returns a 404 error if milestone id not found7685 returns a 404 if the user has no access to the milestone7686 returns a 401 error if user not authenticated7687 returns merge_requests ordered by position asc7688 GET /projects/:id/milestones7689 when project parent is a namespace7690 behaves like listing all milestones7691 returns correct list of milestones7692 when include_parent_milestones is true7693 behaves like listing all milestones7694 returns correct list of milestones7695 when project parent is a group7696 when include_parent_milestones is true7697 behaves like listing all milestones7698 returns correct list of milestones7699 when iids param is present7700 behaves like listing all milestones7701 returns correct list of milestones7702 when user is not a member of the private project7703 returns a 404 error7704 when updated_before param is present7705 behaves like listing all milestones7706 returns correct list of milestones7707 when updated_after param is present7708 behaves like listing all milestones7709 returns correct list of milestones7710 when updated_before param is present7711 behaves like listing all milestones7712 returns correct list of milestones7713 when updated_after param is present7714 behaves like listing all milestones7715 returns correct list of milestones7716 DELETE /projects/:id/milestones/:milestone_id7717 returns 404 response when the project does not exist7718 returns 404 response when the milestone does not exist7719 returns 404 from guest user deleting a milestone7720 PUT /projects/:id/milestones/:milestone_id to test observer on close7721 creates an activity event when a milestone is closed7722 POST /projects/:id/milestones/:milestone_id/promote7723 when user does not have permission to promote milestone7724 returns 4037725 when user has permission7726 returns 2007727 returns 200 for closed milestone7728 when no such resource7729 returns 404 response when the project does not exist7730 returns 404 response when the milestone does not exist7731 when project does not belong to group7732 returns 4037733Creation of a new release7734 when the current user has access to create releases7735 when all available mutation arguments are provided7736 returns the new release data7737 behaves like no errors7738 returns no errors7739 when only the required mutation arguments are provided7740 returns the new release data7741 behaves like no errors7742 returns no errors7743 when the provided tag already exists7744 does not create a new tag7745 behaves like no errors7746 returns no errors7747 when the provided tag does not already exist7748 creates a new lightweight tag7749 behaves like no errors7750 returns no errors7751 and tag_message is provided7752 creates a new annotated tag with the message7753 behaves like no errors7754 returns no errors7755 when a local timezone is provided for releasedAt7756 returns the correct releasedAt date in UTC7757 behaves like no errors7758 returns no errors7759 when no releasedAt is provided7760 sets releasedAt to the current time7761 behaves like no errors7762 returns no errors7763 when a release asset doesn't include an explicit linkType7764 defaults the linkType to OTHER7765 behaves like no errors7766 returns no errors7767 when a release asset doesn't include a directAssetPath7768 returns the provided url as the directAssetUrl7769 behaves like no errors7770 returns no errors7771 empty milestones7772 when the milestones parameter is not provided7773 behaves like no associated milestones7774 creates a release with no associated milestones7775 behaves like no errors7776 returns no errors7777 when the milestones parameter is null7778 behaves like no associated milestones7779 creates a release with no associated milestones7780 behaves like no errors7781 returns no errors7782 when the milestones parameter is an empty array7783 behaves like no associated milestones7784 creates a release with no associated milestones7785 behaves like no errors7786 returns no errors7787 validation7788 when a release is already associated to the specified tag7789 behaves like errors-as-data with message7790 returns an error-as-data with message7791 when a provided milestone doesn't exist7792 behaves like errors-as-data with message7793 returns an error-as-data with message7794 when a provided milestone belongs to a different project than the release7795 behaves like errors-as-data with message7796 returns an error-as-data with message7797 when two release assets share the same name7798 behaves like errors-as-data with message7799 returns an error-as-data with message7800 when two release assets share the same URL7801 behaves like errors-as-data with message7802 returns an error-as-data with message7803 when the provided tag name is HEAD7804 behaves like errors-as-data with message7805 returns an error-as-data with message7806 when the provided tag name is empty7807 behaves like errors-as-data with message7808 returns an error-as-data with message7809 when the provided tag doesn't already exist, and no ref parameter was provided7810 behaves like errors-as-data with message7811 returns an error-as-data with message7812 when the current user doesn't have access to create releases7813 when the current user is a Reporter7814 behaves like top-level error with message7815 returns a top-level error with message7816 when the current user is a Guest7817 behaves like top-level error with message7818 returns a top-level error with message7819 when the current user is a public user7820 behaves like top-level error with message7821 returns a top-level error with message7822API::Ci::Runner7823 /api/v4/jobs7824 artifacts7825 POST /api/v4/jobs/:id/artifacts/authorize7826 reject requests that did not go through gitlab-workhorse7827 when using token as parameter7828 and the artifact is too large7829 behaves like rejecting artifacts that are too large7830 based on plan limit setting7831 behaves like failed request7832 responds with payload too large error7833 based on application setting7834 behaves like failed request7835 responds with payload too large error7836 based on root namespace setting7837 behaves like failed request7838 responds with payload too large error7839 based on child namespace setting7840 behaves like failed request7841 responds with payload too large error7842 based on project setting7843 behaves like failed request7844 responds with payload too large error7845 posting artifacts to running job7846 doesn't update runner info7847 behaves like API::CI::Runner application context metadata7848 contains correct context metadata7849 behaves like runner migrations backoff7850 when executing locking database migrations7851 returns 429 error7852 with runner_migrations_backoff disabled7853 does not return 4297854 when using local storage7855 behaves like authorizes local file7856 succeeds7857 when using remote storage7858 when direct upload is enabled7859 succeeds7860 when ci_artifacts_upload_to_final_location flag is disabled7861 does not skip delete7862 when direct upload is disabled7863 behaves like authorizes local file7864 succeeds7865 when job does not exist anymore7866 returns 403 Forbidden7867 when using token as header7868 authorizes posting artifacts to running job7869 fails to post too large artifact7870 when using runners token7871 fails to authorize artifacts posting7872 authorization token is invalid7873 responds with forbidden7874 authorize uploading of an lsif artifact7875 adds ProcessLsif header7876 tracks code_intelligence usage ping7877 POST /api/v4/jobs/:id/artifacts7878 doesn't update runner info7879 behaves like API::CI::Runner application context metadata7880 contains correct context metadata7881 behaves like runner migrations backoff7882 when executing locking database migrations7883 returns 429 error7884 with runner_migrations_backoff disabled7885 does not return 4297886 when the artifact is too large7887 behaves like rejecting artifacts that are too large7888 based on plan limit setting7889 behaves like failed request7890 responds with payload too large error7891 based on application setting7892 behaves like failed request7893 responds with payload too large error7894 based on root namespace setting7895 behaves like failed request7896 responds with payload too large error7897 based on child namespace setting7898 behaves like failed request7899 responds with payload too large error7900 based on project setting7901 behaves like failed request7902 responds with payload too large error7903 when artifacts are being stored inside of tmp path7904 when job has been erased7905 responds with forbidden7906 when job does not exist anymore7907 returns 403 Forbidden7908 when job is running7909 when uses accelerated file post7910 for file stored locally7911 behaves like successful artifacts upload7912 updates successfully7913 for file stored remotely7914 when uploaded file has matching pending remote upload to its final location7915 behaves like successful artifacts upload7916 updates successfully7917 when uploaded file is uploaded to temporary location7918 and matching temporary remote_id is used7919 behaves like successful artifacts upload7920 updates successfully7921 and invalid remote_id is used7922 responds with internal server error7923 when using runners token7924 responds with forbidden7925 when artifacts post request does not contain file7926 fails to post artifacts without file7927 GitLab Workhorse is not configured7928 fails to post artifacts without GitLab-Workhorse7929 Is missing GitLab Workhorse token headers7930 fails to post artifacts without GitLab-Workhorse7931 when setting an expire date7932 when an expire_in is given7933 updates when specified7934 when no expire_in is given7935 ignores if not specified7936 with application default7937 when default is 5 days7938 sets to application default7939 when default is 07940 does not set expire_in7941 when value is never7942 does not set expire_in7943 posts artifacts file and metadata file7944 when posts data accelerated by workhorse is correct7945 stores artifacts and artifacts metadata7946 with a malicious file.path param7947 rejects the request7948 when workhorse header is missing7949 rejects the request7950 when there is no artifacts file in post data7951 is expected to respond with bad request7952 does not store metadata7953 when access level is private7954 sets job artifact access level to private7955 when access level is public7956 sets job artifact access level to public7957 when access level is unknown7958 sets job artifact access level to public7959 when artifact_type is archive7960 when artifact_format is zip7961 stores junit test report7962 behaves like storing arguments in the application context7963 places the expected params in the application context7964 behaves like not executing any extra queries for the application context7965 does not execute more queries than without adding anything to the application context7966 when artifact_format is gzip7967 returns an error7968 when artifact_type is junit7969 when artifact_format is gzip7970 stores junit test report7971 when artifact_format is raw7972 returns an error7973 when artifact_type is metrics_referee7974 when artifact_format is gzip7975 stores metrics_referee data7976 when artifact_format is raw7977 returns an error7978 when artifact_type is network_referee7979 when artifact_format is gzip7980 stores network_referee data7981 when artifact_format is raw7982 returns an error7983 when artifact_type is dotenv7984 when artifact_format is gzip7985 stores dotenv file7986 parses dotenv file7987 when parse error happens7988 returns an error7989 when artifact_format is raw7990 returns an error7991 when artifacts already exist for the job7992 when sha256 is the same of the existing artifact7993 ignores the new artifact7994 when sha256 is different than the existing artifact7995 logs and returns an error7996 when object storage throws errors7997 does not store artifacts7998 when artifacts are being stored outside of tmp path7999 fails to post artifacts for outside of tmp path8000 GET /api/v4/jobs/:id/artifacts8001 doesn't update runner info8002 behaves like API::CI::Runner application context metadata8003 contains correct context metadata8004 behaves like runner migrations backoff8005 when executing locking database migrations8006 returns 429 error8007 with runner_migrations_backoff disabled8008 does not return 4298009 when job has artifacts8010 when using job token8011 behaves like successful artifact download8012 when artifacts are stored locally8013 downloads artifacts8014 when artifacts are stored remotely8015 when proxy download is being used8016 uses workhorse send-url8017 when direct download is being used8018 receives redirect for downloading artifacts8019 when the job is no longer running8020 behaves like unauthorized request8021 responds with unauthorized8022 when using token belonging to the dependent job8023 behaves like successful artifact download8024 when artifacts are stored locally8025 downloads artifacts8026 when artifacts are stored remotely8027 when proxy download is being used8028 uses workhorse send-url8029 when direct download is being used8030 receives redirect for downloading artifacts8031 when the dependent job is no longer running8032 behaves like unauthorized request8033 responds with unauthorized8034 when using token belonging to another job created by another project member8035 behaves like successful artifact download8036 when artifacts are stored locally8037 downloads artifacts8038 when artifacts are stored remotely8039 when proxy download is being used8040 uses workhorse send-url8041 when direct download is being used8042 receives redirect for downloading artifacts8043 when using token belonging to a pending dependent job8044 behaves like unauthorized request8045 responds with unauthorized8046 when using a token from a cross pipeline build8047 behaves like successful artifact download8048 when artifacts are stored locally8049 downloads artifacts8050 when artifacts are stored remotely8051 when proxy download is being used8052 uses workhorse send-url8053 when direct download is being used8054 receives redirect for downloading artifacts8055 when using a token from an unrelated project8056 responds with forbidden8057 when using runnners token8058 behaves like unauthorized request8059 responds with unauthorized8060 when using an invalid token8061 behaves like unauthorized request8062 responds with unauthorized8063 when job does not have artifacts8064 responds with not found8065 when job does not exist anymore8066 responds with 403 Forbidden8067ApplicationController8068 #check_password_expiration8069 redirects if the user is over their password expiry8070 does not redirect if the user is under their password expiry8071 does not redirect if the user is over their password expiry but they are an ldap user8072 does not redirect if the user is over their password expiry but password authentication is disabled for the web interface8073 #add_gon_variables8074 with html format8075 behaves like setting gon variables8076 sets gon variables8077 with json format8078 behaves like not setting gon variables8079 does not set gon variables8080 with atom format8081 behaves like not setting gon variables8082 does not set gon variables8083 session expiration8084 authenticated user8085 does not set the expire_after option8086 unauthenticated user8087 sets the expire_after option8088 response format8089 when format is handled8090 returns 200 response8091 when format is not handled8092 returns 404 response8093 #route_not_found8094 renders 404 if authenticated8095 renders 404 if client is a search engine crawler8096 redirects to login page if not authenticated8097 redirects if unauthenticated and request format is unknown8098 #set_page_title_header8099 URI encodes UTF-8 characters in the title8100 two-factor authentication8101 #check_two_factor_requirement8102 does not redirect if user has temporary oauth email8103 does not redirect if 2FA is not required8104 does not redirect if user is not logged in8105 does not redirect if user has 2FA enabled8106 does not redirect if 2FA setup can be skipped8107 redirects to 2FA setup otherwise8108 #two_factor_authentication_required?8109 returns false if no 2FA requirement is present8110 returns true if a 2FA requirement is set in the application settings8111 returns true if a 2FA requirement is set on the user8112 #two_factor_grace_period8113 returns the grace period from the application settings8114 with a 2FA requirement set on the user8115 returns the user grace period if lower than the application grace period8116 returns the application grace period if lower than the user grace period8117 #two_factor_grace_period_expired?8118 returns false if the user has not started their grace period yet8119 with grace period started8120 returns true if the grace period has expired8121 returns false if the grace period is still active8122 #two_factor_skippable8123 returns false if 2FA is not required8124 returns false if the user has already enabled 2FA8125 returns false if the 2FA grace period has expired8126 returns true otherwise8127 #skip_two_factor?8128 returns false if 2FA setup was not skipped8129 with 2FA setup skipped8130 returns false if the grace period has expired8131 returns true if the grace period is still active8132 deactivated user8133 signs out a deactivated user8134 terms8135 does not query more when terms are enforced8136 when terms are enforced8137 redirects if the user did not accept the terms8138 does not redirect when the user accepted terms8139 #append_info_to_payload8140 does not log errors with a 200 response8141 does log correlation id8142 adds context metadata to the payload8143 logs response length8144 urgency information8145 adds default urgency information to the payload8146 adds customized urgency information to the payload8147 with log_response_length disabled8148 logs response length8149 #access_denied8150 renders a 404 without a message8151 renders a 403 when a message is passed to access denied8152 renders a status passed to access denied8153 when invalid UTF-8 parameters are received8154 html8155 renders 4128156 js8157 renders 4128158 X-GitLab-Custom-Error header8159 given a 422 error page8160 sets a custom header8161 given a 500 error page8162 sets a custom header8163 given a 200 success page8164 does not set a custom header8165 given a json response8166 sets a custom header8167 for html request8168 sets a custom header8169 for 200 response8170 does not set a custom header8171 control headers8172 sets the default headers8173 #stream_csv_headers8174 sets no-cache headers8175 sets stream headers8176 sets the csv specific headers8177 Gitlab::Session8178 is set on web requests8179 with sessionless user8180 is not set8181 #current_user_mode8182 with a regular user8183 admin mode is not set8184 with an admin user8185 admin mode is not set8186 that re-authenticated8187 admin mode is set8188 #required_signup_info8189 user with required role8190 is expected to redirect to "/users/sign_up/welcome"8191 user without a required role8192 is expected not to redirect to "/users/sign_up/welcome"8193 rescue_from Gitlab::Auth::IpBlocked8194 returns a 403 and logs the request8195 #set_current_context8196 does not break anything when no group or project method is defined8197 sets the username in the context when signed in8198 sets the group if it was available8199 sets the project if one was available8200 sets the caller_id as controller#action8201 sets the feature_category as defined in the controller8202 assigns the context to a variable for logging8203 assigns the context when the action caused an error8204 .endpoint_id_for_action8205 returns an expected endpoint id8206 #current_user8207 when being impersonated8208 returns a User with impersonator8209 when not being impersonated8210 returns a User8211 locale8212 sets user's locale8213 setting permissions-policy header8214 with FloC enabled8215 does not set the Permissions-Policy header8216 with FloC disabled8217 sets the Permissions-Policy header8218 sets the Permissions-Policy header even when redirected before_action8219 when Gitlab::Git::ResourceExhaustedError exception is raised8220 returns a plaintext error response with 503 status8221API::GroupMilestones8222 behaves like group and project milestones8223 GET /groups/:id/milestones8224 returns milestones list8225 returns a 401 error if user not authenticated8226 returns an array of active milestones8227 returns an array of closed milestones8228 returns an array of milestones specified by iids8229 does not return any milestone if none found8230 returns a milestone by iids array8231 returns a milestone by title8232 returns a milestone by searching for title8233 returns a milestones by searching for description8234 GET /groups/:id/milestones/:milestone_id8235 returns a milestone by id8236 returns 401 error if user not authenticated8237 returns a 404 error if milestone id not found8238 POST /groups/:id/milestones8239 creates a new milestone8240 creates a new milestone with description and dates8241 returns a 400 error if title is missing8242 returns a 400 error if params are invalid (duplicate title)8243 creates a new milestone with reserved html characters8244 PUT /groups/:id/milestones/:milestone_id8245 updates a milestone8246 removes a due date if nil is passed8247 returns a 404 error if milestone id not found8248 closes milestone8249 updates milestone with only start date8250 DELETE /groups/:id/milestones/:milestone_id8251 rejects a member with guest access from deleting a milestone8252 deletes the milestone when the user has reporter access to the project8253 GET /groups/:id/milestones/:milestone_id/issues8254 returns issues for a particular milestone8255 returns issues sorted by label priority8256 matches V4 response schema for a list of issues8257 returns a 401 error if user not authenticated8258 confidential issues8259 returns confidential issues to team members8260 does not return confidential issues to team members with guest role8261 does not return confidential issues to regular users8262 returns issues ordered by label priority8263 GET /groups/:id/milestones/:milestone_id/merge_requests8264 returns merge_requests for a particular milestone8265 returns merge_requests sorted by label priority8266 returns a 404 error if milestone id not found8267 returns a 404 if the user has no access to the milestone8268 returns a 401 error if user not authenticated8269 returns merge_requests ordered by position asc8270 GET /groups/:id/milestones8271 when include_parent_milestones is true8272 when user has access to ancestor groups8273 behaves like listing all milestones8274 returns correct list of milestones8275 when iids param is present8276 behaves like listing all milestones8277 returns correct list of milestones8278 when updated_before param is present8279 behaves like listing all milestones8280 returns correct list of milestones8281 when updated_after param is present8282 behaves like listing all milestones8283 returns correct list of milestones8284 when user has no access to ancestor groups8285 behaves like listing all milestones8286 returns correct list of milestones8287 when updated_before param is present8288 behaves like listing all milestones8289 returns correct list of milestones8290 when updated_after param is present8291 behaves like listing all milestones8292 returns correct list of milestones8293 GET /groups/:id/milestones/:milestone_id/issues8294 returns multiple issues without performing N + 18295API::GoProxy8296 GET /projects/:id/packages/go/*module_name/@v/list8297 for the root module8298 behaves like a module version list resource8299 returns v1.0.1, v1.0.2, v1.0.38300 for the package8301 behaves like a module version list resource8302 returns nothing8303 for the submodule8304 behaves like a module version list resource8305 returns v1.0.38306 for the root module v28307 behaves like a module version list resource8308 returns v2.0.08309 with a URL encoded relative path component8310 behaves like a missing module version list resource8311 behaves like an unavailable resource8312 returns not found8313 with the feature disabled8314 behaves like a missing module version list resource8315 behaves like an unavailable resource8316 returns not found8317 GET /projects/:id/packages/go/*module_name/@v/:module_version.info8318 with the root module v1.0.18319 behaves like a module version information resource8320 returns information for v1.0.18321 with the submodule v1.0.38322 behaves like a module version information resource8323 returns information for v1.0.38324 with the root module v2.0.08325 behaves like a module version information resource8326 returns information for v2.0.08327 with an invalid path8328 behaves like a missing module version information resource8329 behaves like an unavailable resource8330 returns not found8331 with an invalid version8332 behaves like a missing module version information resource8333 behaves like an unavailable resource8334 returns not found8335 with a pseudo-version for v18336 behaves like a module pseudo-version information resource8337 returns information for v1.0.4-0.yyyymmddhhmmss-abcdefabcdef8338 with a pseudo-version for v28339 behaves like a module pseudo-version information resource8340 returns information for v2.0.0-yyyymmddhhmmss-abcdefabcdef8341 with a pseudo-version with an invalid timestamp8342 behaves like a missing module pseudo-version information resource8343 behaves like an unavailable resource8344 returns not found8345 with a pseudo-version with an invalid commit sha8346 behaves like a missing module pseudo-version information resource8347 behaves like an unavailable resource8348 returns not found8349 with a pseudo-version with a short commit sha8350 behaves like a missing module pseudo-version information resource8351 behaves like an unavailable resource8352 returns not found8353 GET /projects/:id/packages/go/*module_name/@v/:module_version.mod8354 with the root module v1.0.18355 behaves like a module file resource8356 returns /go.mod from the repo8357 with the submodule v1.0.38358 behaves like a module file resource8359 returns /mod/go.mod from the repo8360 with the root module v2.0.08361 behaves like a module file resource8362 returns /v2/go.mod from the repo8363 with an invalid path8364 behaves like a missing module file resource8365 behaves like an unavailable resource8366 returns not found8367 with an invalid version8368 behaves like a missing module file resource8369 behaves like an unavailable resource8370 returns not found8371 GET /projects/:id/packages/go/*module_name/@v/:module_version.zip8372 with the root module v1.0.18373 behaves like a module archive resource8374 returns an archive of / @ v1.0.1 from the repo8375 with the root module v1.0.28376 behaves like a module archive resource8377 returns an archive of / @ v1.0.2 from the repo8378 with the root module v1.0.38379 behaves like a module archive resource8380 returns an archive of / @ v1.0.3 from the repo8381 with the submodule v1.0.38382 behaves like a module archive resource8383 returns an archive of /mod @ v1.0.3 from the repo8384 with the root module v2.0.08385 behaves like a module archive resource8386 returns an archive of /v2 @ v2.0.0 from the repo8387 with an invalid module directive8388 GET /projects/:id/packages/go/*module_name/@v/list8389 with a completely wrong directive for v18390 behaves like a module version list resource8391 returns nothing8392 with a directive omitting the suffix for v28393 behaves like a module version list resource8394 returns nothing8395 GET /projects/:id/packages/go/*module_name/@v/:module_version.info8396 with a completely wrong directive for v18397 behaves like a missing module version information resource8398 behaves like an unavailable resource8399 returns not found8400 with a directive omitting the suffix for v28401 behaves like a missing module version information resource8402 behaves like an unavailable resource8403 returns not found8404 with a case sensitive project and versions8405 GET /projects/:id/packages/go/*module_name/@v/list8406 with a case encoded path8407 behaves like a module version list resource8408 returns v1.0.1-prerelease, v1.0.1-Prerelease8409 without a case encoded path8410 behaves like a missing module version list resource8411 behaves like an unavailable resource8412 returns not found8413 GET /projects/:id/packages/go/*module_name/@v/:module_version.info8414 with a case encoded path8415 behaves like a module version information resource8416 returns information for v1.0.1-Prerelease8417 without a case encoded path8418 behaves like a module version information resource8419 returns information for v1.0.1-prerelease8420 with a private project8421 GET /projects/:id/packages/go/*module_name/@v/list8422 returns ok with an oauth token8423 returns ok with a job token8424 returns ok with a personal access token8425 returns ok with a personal access token and basic authentication8426 returns unauthorized with a failed job token8427 returns unauthorized with no authentication8428 with access to package registry for everyone8429 behaves like a module version list resource8430 returns v1.0.1, v1.0.2, v1.0.38431 behaves like a module version information resource8432 returns information for v1.0.18433 behaves like a module file resource8434 returns /go.mod from the repo8435 behaves like a module archive resource8436 returns an archive of / @ v1.0.1 from the repo8437 with a public project8438 GET /projects/:id/packages/go/*module_name/@v/list8439 returns ok with no authentication8440 with a non-existent project8441 GET /projects/:id/packages/go/*module_name/@v/list8442 returns not found with a user8443 returns not found with an oauth token8444 returns not found with a job token8445 returns not found with a personal access token8446 returns unauthorized with no authentication8447API::Todos8448 GET /todos8449 avoids N+1 queries8450 when unauthenticated8451 returns authentication error8452 when authenticated8453 returns an array of pending todos for current user8454 when invalid params8455 invalid action8456 returns 4008457 invalid state8458 returns 4008459 invalid type8460 returns 4008461 when current user does not have access to one of the TODO's target8462 filters out unauthorized todos8463 and using the author filter8464 filters based on author_id param8465 and using the type filter8466 filters based on type param8467 and using the state filter8468 filters based on state param8469 and using the project filter8470 filters based on project_id param8471 and using the group filter8472 filters based on project_id param8473 and using the action filter8474 filters based on action param8475 when there is a Design Todo8476 is expected to respond with numeric status code ok8477 avoids N+1 queries8478 includes the Design Todo in the response8479 POST /todos/:id/mark_as_done8480 when unauthenticated8481 returns authentication error8482 when authenticated8483 marks a todo as done8484 updates todos cache8485 returns 404 if the todo does not belong to the current user8486 POST /mark_as_done8487 when unauthenticated8488 returns authentication error8489 when authenticated8490 marks all todos as done8491 updates todos cache8492 POST :id/issuable_type/:issuable_id/todo8493 for an issue8494 returns an error if the issue author does not have access8495 behaves like an issuable8496 creates a todo on an issuable8497 returns 304 there already exist a todo on that issuable8498 returns 404 if the issuable is not found8499 returns an error if the issuable is not accessible8500 for a merge request8501 returns an error if the merge request author does not have access8502 behaves like an issuable8503 creates a todo on an issuable8504 returns 304 there already exist a todo on that issuable8505 returns 404 if the issuable is not found8506 returns an error if the issuable is not accessible8507Adding a DiffNote8508 behaves like a Note mutation when the user does not have permission8509 behaves like a Note mutation that does not create a Note8510 is expected not to change `Note.count`8511 behaves like a mutation that returns top-level errors8512 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"8513 when the user has permission8514 returns the note with the correct position8515 behaves like a Note mutation that creates a Note8516 is expected to change `Note.count` by 18517 add comment to old line8518 behaves like a Note mutation that creates a Note8519 is expected to change `Note.count` by 18520 add a comment with a position without lines8521 behaves like a Note mutation that does not create a Note8522 is expected not to change `Note.count`8523 behaves like a Note mutation when there are active record validation errors8524 returns an empty Note8525 behaves like a Note mutation that does not create a Note8526 is expected not to change `Note.count`8527 behaves like a mutation that returns errors in the response8528 is expected to contain exactly "Error 1" and "Error 2"8529 behaves like a Note mutation when there are rate limit validation errors8530 with rate limiter8531 behaves like a Note mutation that does not create a Note8532 is expected not to change `Note.count`8533 behaves like a mutation that returns top-level errors8534 is expected to contain exactly "This endpoint has been requested too many times. Try again later."8535 when the user is in the allowlist8536 behaves like a Note mutation that creates a Note8537 is expected to change `Note.count` by 18539 behaves like a Note mutation when the given resource id is not for a Noteable8540 behaves like a Note mutation that does not create a Note8541 is expected not to change `Note.count`8542 behaves like a mutation that returns top-level errors8543 is expected to include / does not represent an instance of Noteable/8544 with /merge quick action8545 merges the merge request8546SearchController8547 GET /search8548 for issues scope8549 behaves like an efficient database result8550 avoids N+1 database queries8551 for merge_requests scope8552 behaves like an efficient database result8553 avoids N+1 database queries8554 for projects scope8555 behaves like an efficient database result8556 avoids N+1 database queries8557 for milestones scope8558 behaves like an efficient database result8559 avoids N+1 database queries8560 for users scope8561 behaves like an efficient database result8562 avoids N+1 database queries8563 for notes scope8564 behaves like an efficient database result8565 avoids N+1 database queries8566 for blobs scope8567 avoids N+1 database queries8568 for commits scope8569 avoids N+1 database queries8570 for code search8571 sets scope to blobs if code search literals are used8572 when searching by SHA8573 finds a commit and redirects to its page8574 finds a commit in uppercase and redirects to its page8575 finds a commit with a partial sha and redirects to its page8576 redirects to the commit even if another scope result is returned8577 goes to search results with the force_search_results param set8578 does not redirect if commit sha not found in project8579 does not redirect if not using project scope8580 when user cannot read_code8581 does not redirect8582Groups::RunnersController8583 #index8584 when user is owner8585 renders show with 200 status code8586 tracks the event8587 assigns variables8588 when user is not owner8589 renders a 4048590 does not track the event8591 #new8592 when create_runner_workflow_for_namespace is enabled8593 when user is owner8594 renders new with 200 status code8595 when user is not owner8596 renders a 4048597 when create_runner_workflow_for_namespace is disabled8598 when user is owner8599 renders a 4048600 #register8601 when create_runner_workflow_for_namespace is enabled8602 when user is owner8603 when runner can be registered after creation8604 renders a :register template8605 when runner cannot be registered after creation8606 returns :not_found8607 when user is not owner8608 when runner can be registered after creation8609 returns :not_found8610 when create_runner_workflow_for_namespace is disabled8611 when user is owner8612 returns :not_found8613 #show8614 when user is owner8615 renders show with 200 status code8616 renders show with 200 status code instance runner8617 renders show with 200 status code project runner8618 when user is not owner8619 renders a 4048620 renders a 404 instance runner8621 renders a 404 project runner8622 #edit8623 when user is owner8624 renders edit with 200 status code8625 renders a 404 instance runner8626 renders edit with 200 status code project runner8627 when user is not owner8628 renders a 4048629 renders a 404 project runner8630 #update8631 when user is an owner8632 updates the runner, ticks the queue, and redirects8633 does not update the instance runner8634 updates the project runner, ticks the queue, and redirects project runner8635 when user is not an owner8636 rejects the update and responds 4048637 rejects the update and responds 404 instance runner8638 rejects the update and responds 404 project runner8639Admin::IntegrationsController8640 behaves like Integrations::Actions8641 GET #edit8642 assigns the integration8643 behaves like unknown integration8644 returns 404 Not Found8645 PUT #update8646 updates the integration with the provided params and redirects to the form8647 when sending a password field8648 updates the integration with the password and other params8649 when sending a blank password field8650 ignores the password field and saves the other params8651 behaves like unknown integration8652 returns 404 Not Found8653 PUT #test8654 behaves like unknown integration8655 returns 404 Not Found8656 #edit8657 integration_name: "asana"8658 successfully displays the template8659 integration_name: "assembla"8660 successfully displays the template8661 integration_name: "bamboo"8662 successfully displays the template8663 integration_name: "bugzilla"8664 successfully displays the template8665 integration_name: "buildkite"8666 successfully displays the template8667 integration_name: "campfire"8668 successfully displays the template8669 integration_name: "clickup"8670 successfully displays the template8671 integration_name: "confluence"8672 successfully displays the template8673 integration_name: "custom_issue_tracker"8674 successfully displays the template8675 integration_name: "datadog"8676 successfully displays the template8677 integration_name: "discord"8678 successfully displays the template8679 integration_name: "drone_ci"8680 successfully displays the template8681 integration_name: "emails_on_push"8682 successfully displays the template8683 integration_name: "ewm"8684 successfully displays the template8685 integration_name: "external_wiki"8686 successfully displays the template8687 integration_name: "hangouts_chat"8688 successfully displays the template8689 integration_name: "harbor"8690 successfully displays the template8691 integration_name: "irker"8692 successfully displays the template8693 integration_name: "jira"8694 successfully displays the template8695 integration_name: "mattermost"8696 successfully displays the template8697 integration_name: "mattermost_slash_commands"8698 successfully displays the template8699 integration_name: "microsoft_teams"8700 successfully displays the template8701 integration_name: "mock_ci"8702 successfully displays the template8703 integration_name: "mock_monitoring"8704 successfully displays the template8705 integration_name: "packagist"8706 successfully displays the template8707 integration_name: "pipelines_email"8708 successfully displays the template8709 integration_name: "pivotaltracker"8710 successfully displays the template8711 integration_name: "prometheus"8712 successfully displays the template8713 integration_name: "pumble"8714 successfully displays the template8715 integration_name: "pushover"8716 successfully displays the template8717 integration_name: "redmine"8718 successfully displays the template8719 integration_name: "slack"8720 successfully displays the template8721 integration_name: "slack_slash_commands"8722 successfully displays the template8723 integration_name: "squash_tm"8724 successfully displays the template8725 integration_name: "teamcity"8726 successfully displays the template8727 integration_name: "unify_circuit"8728 successfully displays the template8729 integration_name: "webex_teams"8730 successfully displays the template8731 integration_name: "youtrack"8732 successfully displays the template8733 integration_name: "zentao"8734 successfully displays the template8735 when GitLab.com8736 returns 4048737 #update8738 with valid params8739 updates the integration8740 calls to PropagateIntegrationWorker8741 with invalid params8742 does not update the integration8743 does not call to PropagateIntegrationWorker8744 #reset8745 returns 200 OK8746 deletes the integration and all inheriting integrations8747Projects::Ml::ExperimentsController8748 # order random8749 DELETE #destroy8750 deletes the experiment8751 behaves like 404 if experiment does not exist8752 when experiment does not exist8753 behaves like renders 4048754 renders 4048755 behaves like 404 when model experiments is unavailable8756 when user does not have access8757 behaves like renders 4048758 renders 4048759 GET show8760 html8761 renders the template8762 does not perform N+1 sql queries8763 pagination8764 fetches only MAX_CANDIDATES_PER_PAGE candidates8765 paginates8766 when order by metric8767 paginates8768 search8769 formats and filters the parameters8770 4048771 behaves like 404 if experiment does not exist8772 when experiment does not exist8773 behaves like renders 4048774 renders 4048775 behaves like 404 when model experiments is unavailable8776 when user does not have access8777 behaves like renders 4048778 renders 4048779 csv8780 responds with :ok8781 calls the presenter8782 does not perform N+1 sql queries8783 4048784 behaves like 404 if experiment does not exist8785 when experiment does not exist8786 behaves like renders 4048787 renders 4048788 behaves like 404 when model experiments is unavailable8789 when user does not have access8790 behaves like renders 4048791 renders 4048792 GET index8793 renderering8794 renders the template8795 does not perform N+1 sql queries8796 pagination8797 fetches only MAX_CANDIDATES_PER_PAGE candidates8798 paginates8799 behaves like 404 when model experiments is unavailable8800 when user does not have access8801 behaves like renders 4048802 renders 4048803API::ProjectJobTokenScope8804 # order random8805 DELETE /projects/:id/job_token_scope/allowlist/:target_project_id8806 when unauthenticated user (missing user)8807 for public project8808 does not delete requested project from allowlist8809 when user has no permissions to project8810 responds with 401 forbidden8811 when authenticated user as a developer8812 returns 403 Forbidden8813 when authenticated user as a maintainer8814 for the target project member8815 returns no content and deletes requested project from allowlist8816 when fails to remove target project8817 returns a bad request8818 when user project does not exists8819 responds with 404 Not found8820 when target project does not exists8821 responds with 404 Not found8822 POST /projects/:id/job_token_scope/allowlist8823 when unauthenticated user (missing user)8824 for public project8825 does not return ci cd settings of job token8826 when authenticated user as maintainer8827 returns unauthorized and blank response when invalid auth credentials are given8828 returns created and creates job token scope link8829 returns bad_request and does not create an additional job token scope link8830 returns bad_request when adding the source project8831 returns not_found when project for param `project_id` does not exist8832 returns :bad_request when parameter `project_id` missing8833 returns :bad_request when parameter `project_id` is nil value8834 returns :bad_request when parameter `project_id` is empty value8835 returns :bad_request when parameter `project_id` is float value8836 when authenticated user as developer8837 for private project8838 returns forbidden and no ci cd settings8839 for public project8840 returns forbidden and no ci cd settings8841 GET /projects/:id/job_token_scope/allowlist8842 when unauthenticated user (missing user)8843 for public project8844 does not return ci cd settings of job token8845 when authenticated user as maintainer8846 returns allowlist containing only the source projects8847 returns allowlist of project8848 when authenticated user as developer8849 returns forbidden and no ci cd settings for public project8850 PATCH /projects/:id/job_token_scope8851 when unauthenticated user (missing user)8852 for public project8853 does not return ci cd settings of job token8854 when authenticated user as maintainer8855 returns unauthorized and blank response when invalid auth credentials are given8856 returns no content and updates the ci cd setting `ci_inbound_job_token_scope_enabled`8857 returns bad_request when ::Projects::UpdateService fails8858 returns bad_request when invalid value for parameter is given8859 returns bad_request when invalid parameter given, e.g. truthy value8860 returns bad_request when invalid parameter given, e.g. `nil`8861 returns bad_request and leaves it untouched when unpermitted parameter given8862 returns bad_request when param `outbound_scope_enabled` given8863 when authenticated user as developer8864 returns forbidden and no ci cd settings for public project8865 GET /projects/:id/job_token_scope8866 when unauthenticated user (missing user)8867 for public project8868 does not return ci cd settings of job token8869 when authenticated user as maintainer8870 returns ci cd settings for job token scope8871 returns the correct ci cd settings for job token scope after change8872 returns unauthorized and blank response when invalid auth credentials are given8873 when authenticated user as developer8874 returns forbidden and no ci cd settings for public project8875API::ProjectTemplates8876 GET /projects/:id/templates/:type8877 returns dockerfiles8878 returns gitignores8879 returns gitlab_ci_ymls8880 returns licenses8881 returns issue templates8882 returns merge request templates8883 returns 400 for an unknown template type8884 denies access to an anonymous user on a private project8885 permits access to a developer on a private project8886 behaves like accepts project paths with dots8887 is expected to respond with numeric status code ok8888 GET /projects/:id/templates/licenses8889 returns key and name for the listed licenses8890 behaves like accepts project paths with dots8891 is expected to respond with numeric status code ok8892 GET /projects/:id/templates/:type/:name8893 returns a specific dockerfile8894 returns a specific gitignore8895 returns C++ gitignore8896 returns C++ gitignore for URL-encoded names8897 returns a specific gitlab_ci_yml8898 returns a specific license8899 returns a specific issue template8900 returns a specific merge request template8901 returns 404 for an unknown specific template8902 returns 404 for an unknown issue template8903 returns 404 for an unknown merge request template8904 denies access to an anonymous user on a private project8905 permits access to a developer on a private project8906 behaves like accepts project paths with dots8907 is expected to respond with numeric status code ok8908 behaves like path traversal attempt8909 rejects invalid filenames8910 behaves like path traversal attempt8911 rejects invalid filenames8912 behaves like path traversal attempt8913 rejects invalid filenames8914 behaves like path traversal attempt8915 rejects invalid filenames8916 behaves like path traversal attempt8917 rejects invalid filenames8918 GET /projects/:id/templates/licenses/:key8919 fills placeholders in the license8920 behaves like accepts project paths with dots8921 is expected to respond with numeric status code ok8922API::MergeRequestDiffs MergeRequestDiffs8923 GET /projects/:id/merge_requests/:merge_request_iid/versions8924 returns 200 for a valid merge request8925 returns a 404 when merge_request id is used instead of the iid8926 returns a 404 when merge_request_iid not found8927 when merge request author has only guest access8928 behaves like rejects user from accessing merge request info8929 returns a 403 error8930 GET /projects/:id/merge_requests/:merge_request_iid/versions/:version_id8931 returns a 200 for a valid merge request8932 returns a 404 when merge_request id is used instead of the iid8933 returns a 404 when merge_request version_id is not found8934 returns a 404 when merge_request_iid is not found8935 when merge request author has only guest access8936 behaves like rejects user from accessing merge request info8937 returns a 403 error8938 caching merge request diffs8939 is performed8940API::Metrics::Dashboard::Annotations8941 environment8942 behaves like POST /:source_type/:id/metrics_dashboard/annotations8943 with :source_type == environments8944 with correct permissions8945 with valid parameters8946 creates a new annotation8947 with invalid parameters8948 returns error message8949 with undeclared params8950 filters out undeclared params8951 with special characers in dashboard_path in request body8952 with escaped characters8953 behaves like special characters unescaped8954 unescapes the dashboard_path8955 with unescaped characers8956 behaves like special characters unescaped8957 unescapes the dashboard_path8958 without correct permissions8959 returns error message8960 when metrics dashboard feature is unavailable8961 returns 404 not found8962 group cluster8963 behaves like POST /:source_type/:id/metrics_dashboard/annotations8964 with :source_type == clusters8965 with correct permissions8966 with valid parameters8967 creates a new annotation8968 with invalid parameters8969 returns error message8970 with undeclared params8971 filters out undeclared params8972 with special characers in dashboard_path in request body8973 with escaped characters8974 behaves like special characters unescaped8975 unescapes the dashboard_path8976 with unescaped characers8977 behaves like special characters unescaped8978 unescapes the dashboard_path8979 without correct permissions8980 returns error message8981 when metrics dashboard feature is unavailable8982 returns 404 not found8983 project cluster8984 behaves like POST /:source_type/:id/metrics_dashboard/annotations8985 with :source_type == clusters8986 with correct permissions8987 with valid parameters8988 creates a new annotation8989 with invalid parameters8990 returns error message8991 with undeclared params8992 filters out undeclared params8993 with special characers in dashboard_path in request body8994 with escaped characters8995 behaves like special characters unescaped8996 unescapes the dashboard_path8997 with unescaped characers8998 behaves like special characters unescaped8999 unescapes the dashboard_path9000 without correct permissions9001 returns error message9002 when metrics dashboard feature is unavailable9003 returns 404 not found9004Gitlab::SidekiqCluster::CLI9005 #run9006 without any arguments9007 raises CommandError9008 with arguments9009 starts the Sidekiq workers9010 allows the special * selector9011 raises an error when the arguments contain newlines9012 with --negate flag9013 starts Sidekiq workers for all queues in all_queues.yml except the ones in argv9014 with --max-concurrency flag9015 starts Sidekiq workers for specified queues with a max concurrency9016 with --min-concurrency flag9017 starts Sidekiq workers for specified queues with a min concurrency9018 with --timeout flag9019 when given9020 when not given9021 with --list-queues flag9022 errors when given --list-queues and --dryrun9023 prints out a list of queues in alphabetical order9024 queue namespace expansion9025 starts Sidekiq workers for all queues in all_queues.yml with a namespace in argv9026 with --queue-selector9027 expands multiple queue groups correctly9028 allows the special * selector9029 errors when the selector matches no queues9030 errors on an invalid query multiple queue groups correctly9031 memory-bound queues9032 expands queues by attributes9033 works when negated9034 memory- or CPU-bound queues9035 expands queues by attributes9036 works when negated9037 high urgency CI queues9038 expands queues by attributes9039 works when negated9040 CPU-bound high urgency CI queues9041 expands queues by attributes9042 works when negated9043 CPU-bound high urgency non-CI queues9044 expands queues by attributes9045 works when negated9046 CI and SCM queues9047 expands queues by attributes9048 works when negated9049 with routing rules specified9050 starts Sidekiq workers only for given queues without any additional DEFAULT_QUEUES9051 with sidekiq settings not specified9052 does not throw an error9053 starts Sidekiq workers with given queues, and additional default and mailers queues (DEFAULT_QUEUES)9054 metrics server9055 starting the server9056 without --dryrun9057 wipes the metrics directory before starting workers9058 when sidekiq_exporter is not set up9059 does not start a sidekiq metrics server9060 with missing sidekiq_exporter setting9061 does not start a sidekiq metrics server9062 does not throw an error9063 when sidekiq_exporter is disabled9064 does not start a sidekiq metrics server9065 when sidekiq_exporter is enabled9066 starts the metrics server9067 when a PID is specified9068 writes the PID to a file9069 when no PID is specified9070 does not write a PID9071 with --dryrun set9072 does not start the server9073 supervising the cluster9074 stops the entire process cluster if one of the workers has been terminated9075 restarts the metrics server when it is down9076 when one of the workers has been terminated gracefully9077 stops the entire process cluster9078 when one of the workers has failed9079 stops the entire process cluster and exits with a non-zero code9080Git LFS File Locking API9081 Create File Lock endpoint9082 when user does not have download permission9083 returns a 404 response9084 when user does not have upload permission9085 returns a 403 response9086 with an existent lock9087 return an error message9088 returns the existen lock9089 without an existent lock9090 creates the lock9091 Listing File Locks endpoint9092 returns the list of locked files9093 when user does not have download permission9094 returns a 404 response9095 when user does not have upload permission9096 returns a 403 response9097 List File Locks for verification endpoint9098 returns the list of locked files grouped by owner9099 when user does not have download permission9100 returns a 404 response9101 when user does not have upload permission9102 returns a 403 response9103 Delete File Lock endpoint9104 when user does not have download permission9105 returns a 404 response9106 when user does not have upload permission9107 returns a 403 response9108 with an existent lock9109 deletes the lock9110 returns the deleted lock9111 when a maintainer uses force9112 deletes the lock9113getting container repositories in a group9114 returns the total count of container repositories9115 behaves like a working graphql query9116 returns a successful response9117 with different permissions9118 group_visibility: :private, role: :maintainer, access_granted: true, can_delete: true9119 return the proper response9120 group_visibility: :private, role: :developer, access_granted: true, can_delete: true9121 return the proper response9122 group_visibility: :private, role: :reporter, access_granted: true, can_delete: false9123 return the proper response9124 group_visibility: :private, role: :guest, access_granted: false, can_delete: false9125 return the proper response9126 group_visibility: :private, role: :anonymous, access_granted: false, can_delete: false9127 return the proper response9128 group_visibility: :public, role: :maintainer, access_granted: true, can_delete: true9129 return the proper response9130 group_visibility: :public, role: :developer, access_granted: true, can_delete: true9131 return the proper response9132 group_visibility: :public, role: :reporter, access_granted: true, can_delete: false9133 return the proper response9134 group_visibility: :public, role: :guest, access_granted: false, can_delete: false9135 return the proper response9136 group_visibility: :public, role: :anonymous, access_granted: false, can_delete: false9137 return the proper response9138 limiting the number of repositories9139 only returns N repositories9140 filter by name9141 returns the searched container repository9142 behaves like handling graphql network errors with the container registry9143 returns a connection error9144 behaves like not hitting graphql network errors with the container registry9145 does not return any error9146get board lists9147 for a project9148 behaves like group and project board lists query9149 when the user does not have access to the board9150 returns nil9151 when user can read the board9152 sorting and pagination9153 when using default sorting9154 when ascending9155 behaves like sorted paginated query9156 behaves like requires variables9157 shared example requires variables to be set9159 when sorting9160 sorts correctly9161 when paginating9162 paginates correctly9163 when querying for a single list9164 returns the correct list with issue count for matching issue filters9165 when filtering by a unioned argument9166 returns correctly filtered issues9167 when feature flag is disabled9168 returns an error9169 for a group9170 behaves like group and project board lists query9171 when the user does not have access to the board9172 returns nil9173 when user can read the board9174 sorting and pagination9175 when using default sorting9176 when ascending9177 behaves like sorted paginated query9178 behaves like requires variables9179 shared example requires variables to be set9181 when sorting9182 sorts correctly9183 when paginating9184 paginates correctly9185 when querying for a single list9186 returns the correct list with issue count for matching issue filters9187 when filtering by a unioned argument9188 returns correctly filtered issues9189 when feature flag is disabled9190 returns an error9191getting dependency proxy manifests in a group9192 returns the total count of manifests9193 behaves like a working graphql query9194 returns a successful response9195 with different permissions9196 group_visibility: :private, role: :maintainer, access_granted: true9197 return the proper response9198 group_visibility: :private, role: :developer, access_granted: true9199 return the proper response9200 group_visibility: :private, role: :reporter, access_granted: true9201 return the proper response9202 group_visibility: :private, role: :guest, access_granted: true9203 return the proper response9204 group_visibility: :private, role: :anonymous, access_granted: false9205 return the proper response9206 group_visibility: :public, role: :maintainer, access_granted: true9207 return the proper response9208 group_visibility: :public, role: :developer, access_granted: true9209 return the proper response9210 group_visibility: :public, role: :reporter, access_granted: true9211 return the proper response9212 group_visibility: :public, role: :guest, access_granted: true9213 return the proper response9214 group_visibility: :public, role: :anonymous, access_granted: false9215 return the proper response9216 limiting the number of manifests9217 only returns N manifests9218 sorting and pagination9219 with default sorting9220 behaves like sorted paginated query9221 behaves like requires variables9222 shared example requires variables to be set9224 when sorting9225 sorts correctly9226 when paginating9227 paginates correctly9228Projects::GoogleCloud::DeploymentsController9229 Routes must be restricted behind Google OAuth29230 when a public request is made9231 returns not found on GET request9232 when unauthorized members make requests9233 returns not found on GET request9234 when authorized members make requests9235 redirects on GET request9236 Authorized GET project/-/google_cloud/deployments9237 renders template9238 Authorized GET project/-/google_cloud/deployments/cloud_run9239 when enable service fails9240 redirects to google cloud deployments and tracks event on enable service error9241 shows a flash alert9242 when enable service raises an error9243 redirects to google cloud deployments with error9244 shows a flash warning9245 GCP_PROJECT_IDs are defined9246 redirects to create merge request form9247 when generate pipeline service fails9248 redirects to google_cloud deployments and tracks event on generate pipeline error9249 shows a flash alert9250 Authorized GET project/-/google_cloud/deployments/cloud_storage9251 renders placeholder9252Destroying a container repository9253 post graphql mutation9254 with valid id9255 user_role: :maintainer, shared_examples_name: "destroying the container repository"9256 behaves like destroying the container repository9257 marks the container repository as delete_scheduled9258 behaves like returning response status9259 returns success9260 user_role: :developer, shared_examples_name: "destroying the container repository"9261 behaves like destroying the container repository9262 marks the container repository as delete_scheduled9263 behaves like returning response status9264 returns success9265 user_role: :reporter, shared_examples_name: "denying the mutation request"9266 behaves like denying the mutation request9267 does not destroy the container repository9268 behaves like returning response status9269 returns success9270 user_role: :guest, shared_examples_name: "denying the mutation request"9271 behaves like denying the mutation request9272 does not destroy the container repository9273 behaves like returning response status9274 returns success9275 user_role: :anonymous, shared_examples_name: "denying the mutation request"9276 behaves like denying the mutation request9277 does not destroy the container repository9278 behaves like returning response status9279 returns success9280 with invalid id9281 behaves like denying the mutation request9282 does not destroy the container repository9283 behaves like returning response status9284 returns success9285Query.project(fullPath).commitReferences(commitSha)9286 # order random9287 with containing refs9288 with path Query.project(fullPath).commitReferences(commitSha).containingTags9289 without excludeTipped argument9290 returns tags names containing the commit9291 with excludeTipped argument9292 returns tags names containing the commit without the tipped tags9293 with limit of 29294 returns the right amount of refs9295 with limit of -29296 casts an argument error "limit must be greater then 0"9297 with limit of 10019298 casts an argument error "limit must be greater then 0"9299 with path Query.project(fullPath).commitReferences(commitSha).containingBranches9300 without excludeTipped argument9301 returns branch names containing the commit9302 with excludeTipped argument9303 returns branch names containing the commit without the tipped branch9304 with limit of 29305 returns the right amount of refs9306 with limit of -29307 casts an argument error "limit must be greater then 0"9308 with limit of 10019309 casts an argument error "limit must be greater then 0"9310 with tipping refs9311 with path Query.project(fullPath).commitReferences(commitSha).tippingTags9312 with authorized user9313 returns tags names tipping the commit9314 with limit of 29315 returns the right amount of refs9316 with limit of -29317 casts an argument error "limit must be greater then 0"9318 with limit of 10019319 casts an argument error "limit must be greater then 0"9320 with path Query.project(fullPath).commitReferences(commitSha).tippingBranches9321 returns branches names tipping the commit9322 with limit of 29323 returns the right amount of refs9324 with limit of -29325 casts an argument error "limit must be greater then 0"9326 with limit of 10019327 casts an argument error "limit must be greater then 0"9328 the path commitReferences should return nil9329 when commit does not exist9330 commitReferences returns nil9331 when sha length is incorrect9332 commitReferences returns nil9333 when user is not authorized9334 commitReferences returns nil9335Projects::Settings::RepositoryController9336 GET show9337 renders show with 200 status code9338 PUT cleanup9339 enqueues a project cleanup9340 when project cleanup returns an error9341 shows an error9342 POST create_deploy_token9343 a good request9344 creates the deploy token9345 a bad request9346 does not create the deploy token9347 an invalid request9348 raises a validation error9349 PUT update9350 when updating default branch9351 with a good request9352 updates default branch and redirect to project_settings_repository_path9353 with a bad input9354 does not update default branch and shows an alert9355 when updating branch names template from issues9356 with a good request9357 updates issue_branch_template and redirect to project_settings_repository_path9358 with a bad input9359 updates issue_branch_template and redirect to project_settings_repository_path9360API::Ci::ResourceGroups9361 GET /projects/:id/resource_groups9362 returns all resource groups for this project9363 when user is reporter9364 returns forbidden9365 GET /projects/:id/resource_groups/:key9366 returns a resource group9367 when resource group key contains multiple dots9368 returns the resource group9369 when resource group key contains a slash9370 returns the resource group9371 when user is reporter9372 returns forbidden9373 when there is no corresponding resource group9374 returns not found9375 GET /projects/:id/resource_groups/:key/upcoming_jobs9376 returns upcoming jobs of resource group9377 when resource group key contains a slash9378 returns the resource group9379 when user is reporter9380 returns forbidden9381 when there is no corresponding resource group9382 returns not found9383 PUT /projects/:id/resource_groups/:key9384 changes the process mode of a resource group9385 with invalid parameter9386 returns bad request9387 when user is reporter9388 returns forbidden9389 when there is no corresponding resource group9390 returns not found9391Query.runners9392 Query.runners9393 runner_type is INSTANCE_TYPE and status is ACTIVE9394 behaves like a working graphql query returning expected runner9395 returns expected runner9396 does not execute more queries per runner9397 behaves like a working graphql query9398 returns a successful response9399 runner_type is PROJECT_TYPE and status is NEVER_CONTACTED9400 behaves like a working graphql query returning expected runner9401 returns expected runner9402 does not execute more queries per runner9403 behaves like a working graphql query9404 returns a successful response9405 pagination9406 when sorted by contacted_at ascending9407 behaves like sorted paginated query9408 behaves like requires variables9409 shared example requires variables to be set9411 when sorting9412 sorts correctly9413 when paginating9414 paginates correctly9415 when sorted by created_at9416 behaves like sorted paginated query9417 behaves like requires variables9418 shared example requires variables to be set9420 when sorting9421 sorts correctly9422 when paginating9423 paginates correctly9424Group.runners9425 edges9426 contains custom edge information9427getting incident timeline events9428 # order random9429 returns the correct properties of the incident timeline events9430 returns the correct number of timeline events9431 when timelineEvent tags are linked9432 returns the set tags9433 behaves like a working graphql query9434 returns a successful response9435 when different timeline events are loaded9436 avoids N+1 queries9437 when filtering by id9438 returns a single timeline event9439 behaves like a working graphql query9440 returns a successful response9441 behaves like a working graphql query9442 returns a successful response9443Getting Metrics Dashboard9444 for anonymous user9445 requested dashboard is available9446 returns nil9447 behaves like a working graphql query9448 returns a successful response9449 for user with developer access9450 requested dashboard is available9451 returns metrics dashboard9452 behaves like a working graphql query9453 returns a successful response9454 invalid dashboard9455 returns metrics dashboard9456 empty dashboard9457 returns metrics dashboard9458 metrics dashboard feature is unavailable9459 returns nil9460 behaves like a working graphql query9461 returns a successful response9462 requested dashboard can not be found9463 returns nil9464 behaves like a working graphql query9465 returns a successful response9466Setting assignees of a merge request9467 returns an error if the user is not allowed to update the merge request9468 when the current user does not have permission to add assignees9469 does not change the assignees9470 with assignees already assigned9471 replaces the assignee9472 triggers webhooks9473 when passing an empty list of assignees9474 removes assignee9475 when passing append as true9476 does not replace the assignee in CE9477 when passing remove as true9478 removes the users in the list, while adding none9479API::Ci::Runners9480 /api/v4/runners/reset_registration_token9481 POST /api/v4/runners/reset_registration_token9482 resets runner registration token9483 when unauthenticated9484 behaves like unauthenticated9485 returns 401 error9486 when unauthorized9487 with a non-admin instance member9488 behaves like unauthorized9489 returns 403 error9490 /api/v4/groups/:id/runners/reset_registration_token9491 POST /api/v4/groups/:id/runners/reset_registration_token9492 resets runner registration token9493 when unauthorized9494 when not a group member9495 behaves like not found9496 returns 404 error9497 with a non-admin group member9498 behaves like unauthorized9499 returns 403 error9500 when malformed id is provided9501 behaves like not found9502 returns 404 error9503 /api/v4/projects/:id/runners/reset_registration_token9504 POST /api/v4/projects/:id/runners/reset_registration_token9505 resets runner registration token9506 when unauthorized9507 when not a project member9508 behaves like not found9509 returns 404 error9510 with a non-admin project member9511 behaves like unauthorized9512 returns 403 error9513 when malformed id is provided9514 behaves like not found9515 returns 404 error9516getting milestone listings nested in a project9517 behaves like a working graphql query9518 returns a successful response9519 the user does not have access9520 is nil9521 the user has access9522 behaves like searching with parameters9523 finds the right milestones9524 there are no search params9525 behaves like searching with parameters9526 finds the right milestones9527 the search params do not match anything9528 behaves like searching with parameters9529 finds the right milestones9530 searching by state:closed9531 behaves like searching with parameters9532 finds the right milestones9533 searching by state:active9534 behaves like searching with parameters9535 finds the right milestones9536 searching by title9537 behaves like searching with parameters9538 finds the right milestones9539 searching by search_title9540 behaves like searching with parameters9541 finds the right milestones9542 searching by containing_date9543 behaves like searching with parameters9544 finds the right milestones9545 searching by containing_date = today9546 behaves like searching with parameters9547 finds the right milestones9548 using timeframe argument9549 behaves like searching with parameters9550 finds the right milestones9551 timeframe validations9552 is invalid to invert the timeframe arguments9553 behaves like a working graphql query9554 returns a successful response9555Setting assignees of a merge request9556 returns an error if the user is not allowed to update the merge request9557 reviewer does not exist9558 returns an error9559 reviewer exists9560 does not return an error9561Projects::EnvironmentsController9562 GET #show9563 avoids N+1 queries9564RootController9565 GET index9566 when user is not logged in9567 redirects to the sign-in page9568 when a custom home page URL is defined9569 redirects the user to the custom home page URL9570 with a user9571 who has customized their dashboard setting for starred projects9572 redirects to their starred projects list9573 who has customized their dashboard setting for their own activities9574 redirects to the activity list9575 who has customized their dashboard setting for project activities9576 redirects to the projects activity list9577 who has customized their dashboard setting for starred project activities9578 redirects to their starred projects activity list9579 who has customized their dashboard setting for followed user activities9580 redirects to the followed users activity list9581 who has customized their dashboard setting for groups9582 redirects to their group list9583 who has customized their dashboard setting for todos9584 redirects to their todo list9585 who has customized their dashboard setting for assigned issues9586 redirects to their assigned issues9587 who has customized their dashboard setting for assigned merge requests9588 redirects to their assigned merge requests9589 who uses the default dashboard setting9590 renders the default dashboard9591Starting a Jira Import9592 when the user does not have permission9593 with anonymous user9594 behaves like Jira import does not start9595 does not start the Jira import9596 behaves like a mutation that returns top-level errors9597 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"9598 with user without permissions9599 behaves like Jira import does not start9600 does not start the Jira import9601 behaves like a mutation that returns top-level errors9602 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"9603 when the user has permission9604 with project9605 when the project path is invalid9606 returns an an error9607 when project has no Jira integration9608 behaves like a mutation that returns errors in the response9609 is expected to contain exactly "Jira integration not configured."9610 when when project has Jira integration9611 when issues feature are disabled9612 behaves like a mutation that returns errors in the response9613 is expected to contain exactly "Cannot import because issues are not available in this project."9614 when jira_project_key not provided9615 behaves like a mutation that returns errors in the response9616 is expected to contain exactly "Unable to find Jira project to import data from."9617 when Jira import successfully scheduled9618 schedules a Jira import9619project data transfers9620 # order random9621 when user has enough permissions9622 when data_transfer_monitoring_mock_data is NOT enabled9623 returns real results9624 behaves like a working graphql query9625 returns a successful response9626 when data_transfer_monitoring_mock_data is enabled9627 returns mock results9628 behaves like a working graphql query9629 returns a successful response9630 with anonymous access9631 returns no data9632 behaves like a working graphql query9633 returns a successful response9634 with authorized user but without enough permissions9635 returns empty results9636 behaves like a working graphql query9637 returns a successful response9638RunnersRegistrationTokenReset9639 applied to project9640 resets runner registration token9641 when unauthorized9642 when not a project member9643 behaves like unauthorized9644 returns an error9645 with a non-admin project member9646 behaves like unauthorized9647 returns an error9648 when malformed id is provided9649 returns errors9650 applied to group9651 resets runner registration token9652 when unauthorized9653 when not a group member9654 behaves like unauthorized9655 returns an error9656 with a non-admin group member9657 behaves like unauthorized9658 returns an error9659 when malformed id is provided9660 returns errors9661 applied to instance9662 resets runner registration token9663 when unauthorized9664 behaves like unauthorized9665 returns an error9666 when malformed id is provided9667 returns errors9668getting project fork details9669 # order random9670 when a ref is specified9671 ref: "feature", counts: {"ahead"=>1, "behind"=>29}9672 returns fork details9673 ref: "v1.1.1", counts: {"ahead"=>5, "behind"=>0}9674 returns fork details9675 ref: "7b5160f9bb23a3d58a0accdbe89da13b96b1ece9", counts: {"ahead"=>9, "behind"=>0}9676 returns fork details9677 ref: "non-existent-branch", counts: {"ahead"=>nil, "behind"=>nil}9678 returns fork details9679 when project source is not visible9680 does not return fork details9681 when a user cannot read the code9682 does not return fork details9683 when a project is not a fork9684 does not return fork details9685Setting subscribed status of a merge request9686 behaves like a subscribable resource api9687 when the user is not authorized9688 behaves like a mutation that returns top-level errors9689 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"9690 when user is authorized9691 marks the resource as subscribed9692 when passing subscribe false as input9693 unmarks the resource as subscribed9694GroupUpdate9695 when unauthorized9696 when not a group member9697 behaves like unauthorized9698 returns an error9699 when a non-admin group member9700 behaves like unauthorized9701 returns an error9702 when authorized9703 updates shared runners settings9704 when using DISABLED_WITH_OVERRIDE (deprecated)9705 updates shared runners settings with disabled_and_overridable9706 when bad arguments are provided9707 returns the errors9708moving designs9709 the user is not allowed to move designs9710 returns an error9711 the neighbors do not have positions9712 maintains the correct order in the presence of other unpositioned designs9713 behaves like a successful move9714 does not error, and reports the current order9715 moving a design between two others9716 behaves like a successful move9717 does not error, and reports the current order9718 moving a design to the start9719 behaves like a successful move9720 does not error, and reports the current order9721 moving a design to the end9722 behaves like a successful move9723 does not error, and reports the current order9724Admin::CohortsController9725 GET #index9726 behaves like tracking unique visits9727 tracks unique visit if the format is HTML9728 tracks unique visit if DNT is not enabled9729 does not track unique visit if DNT is enabled9730 does not track unique visit if the format is JSON9731 behaves like Snowplow event tracking with RedisHLL context9732 behaves like Snowplow event tracking9733 is emitted9734getting custom emoji within namespace9735 Query CustomEmoji on Group9736 returns emojis when authorised9737 returns nil custom emoji when the custom_emoji feature flag is disabled9738 returns nil group when unauthorised9739Update Environment9740 # order random9741 when updating external URL9742 updates successfully9743 when url is invalid9744 returns error9745 when updating tier9746 updates successfully9747Groups::Registry::RepositoriesController9748 GET groups/:group_id/-/container_registries.json9749 avoids N+1 queries9750Projects::Analytics::CycleAnalytics::SummaryController9751 GET "show"9752 succeeds9753 when analytics_disabled features are disabled9754 renders 4049755 when user is not part of the project9756 renders 4049757 when filters are applied9758 filters by author username9759 filters by milestone title9760Admin::HooksController9761 POST #create9762 sets all parameters9763 POST #update9764 sets all parameters9765 with an existing token9766 does not change a token9767 DELETE #destroy9768 behaves like Web hook destroyer9769 displays a message about synchronous delete9770 displays a message about async delete9771 displays an error if deletion failed9772getting Alert Management Alert Notes9773 includes expected data9774 returns the notes ordered by createdAt with sufficient content9775 performance9776 avoids N+1 queries9777 for non-system notes9778 includes expected data9779SortingPreference9780 #set_sort_order9781 when user preference contains allowed sorting9782 sets sort order from user_preference9783 when user preference contains weight sorting9784 when user can sort by issue weight9785 sets sort order from user_preference9786 when user cannot sort by issue weight9787 sets default sort order9788 when user preference contains merged date sorting9789 sets default sort order9790 when controller_name is merge_requests9791 behaves like user can sort by merged date9792 sets sort order from user_preference9793 when action_name is merge_requests9794 behaves like user can sort by merged date9795 sets sort order from user_preference9796 #set_sort_order_from_user_preference9797 when sort param given9798 when sorting_field is defined9799 sets user_preference with the right value9800 when no sorting_field is defined on the controller9801 does not touch user_preference9802 when a user sorting preference exists9803 returns the set preference9804 #set_set_order_from_cookie9805 when sort param given9806 sets the cookie with the right values and flags9807 when cookie exists9808 sets the cookie with the right values and flags9809Mutations::Metrics::Dashboard::Annotations::Delete9810 is expected to require graphql authorizations :admin_metrics_dashboard_annotation9811 when the user has permission to delete the annotation9812 with valid params9813 deletes the annotation9814 with invalid params9815 behaves like a mutation that returns top-level errors9816 is expected to contain exactly (include "invalid value for id")9817 when the delete fails9818 returns the error9819 when metrics dashboard feature is unavailable9820 behaves like a mutation that returns top-level errors9821 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"9822 when the user does not have permission to delete the annotation9823 does not delete the annotation9824 behaves like a mutation that returns top-level errors9825 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"9826Setting the escalation status of an incident9827 sets given escalation_policy to the escalation status for the issue9828 when user does not have permission to edit the escalation status9829 behaves like a mutation that returns a top-level access error9830 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"9831 with non-incident issue is provided9832 behaves like a mutation that returns top-level errors9833 is expected to contain exactly "Feature unavailable for provided issue"9834 when status argument is not given9835 behaves like a mutation that returns top-level errors9836 is expected to contain exactly (include "status (Expected value to not be null)")9837 when status argument is invalid9838 behaves like an invalid argument to the mutation9839 behaves like a mutation that returns top-level errors9840 is expected to contain exactly (include "invalid value for status")9841Projects::Settings::IntegrationHookLogsController9842 # order random9843 behaves like WebHooks::HookLogActions9844 GET #show9845 renders a 200 if the hook exists9846 renders a 404 if the hook does not exist9847 POST #retry9848 executes the hook and redirects to the service form9849 renders a 404 if the hook does not exist9850Delete a cluster agent9851 without project permissions9852 does not delete cluster agent9853 behaves like a mutation that returns top-level errors9854 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"9855 with project permissions9856 deletes a cluster agent9857Projects::Aws::ConfigurationController9858 # order random9859 when accessed by unauthorized members9860 returns not found on GET request9861 when accessed by authorized members9862 returns successful9863 when feature flag is disabled9864 renders not found9865Profiles::AvatarsController9866 removes avatar from DB by calling destroy9867TimeTracking::TimelogsController9868 # order random9869 GET #index9870 when user is not logged in9871 responds with a redirect to the login page9872 when user is logged in9873 when global_time_tracking_report FF is enabled9874 responds with the global time tracking page9875 when global_time_tracking_report FF is disable9876 returns a 404 page9877PipelineScheduleDelete9878 # order random9879 when authorized9880 when success9881 is expected to eq []9882 when failure9883 when destroy fails9884 is expected to contain exactly "Failed to remove the pipeline schedule"9885 when pipeline schedule not found9886 is expected to eq "Internal server error: Couldn't find Ci::PipelineSchedule with 'id'=0"9887 when unauthorized9888 returns an error9889IssuableCollections9890 #page_count_for_relation9891 row count is known9892 returns the number of pages9893 row_count is unknown9894 page_param: nil, expected: 29895 returns current page + 1 if the row count is unknown9896 page_param: 1, expected: 29897 returns current page + 1 if the row count is unknown9898 page_param: "1", expected: 29899 returns current page + 1 if the row count is unknown9900 page_param: 2, expected: 39901 returns current page + 1 if the row count is unknown9902 #finder_options9903 scalar params9904 only allows whitelisted params9905 array params9906 only allows whitelisted params9907 search using an issue iid9908 mutates the search into a filter by iid9909Updating an existing HTTP Integration9910 behaves like updating an existing HTTP integration9911 updates the integration9912Mark snippet as spam9913 behaves like when the snippet is not found9914 behaves like a mutation that returns top-level errors9915 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"9916 when the user does not have permission9917 behaves like a mutation that returns top-level errors9918 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"9919 behaves like does not mark the snippet as spam9920 is expected not to change `snippet.reload.user_agent_detail.submitted`9921 when the user has permission9922 when user can not mark snippet as spam9923 behaves like does not mark the snippet as spam9924 is expected not to change `snippet.reload.user_agent_detail.submitted`9925 when user can mark snippet as spam9926 marks snippet as spam9927Delete a work item9928 when the user is not allowed to delete a work item9929 behaves like a mutation that returns a top-level access error9930 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"9931 when user has permissions to delete a work item9932 deletes the work item9933getting project recent issue boards9934 behaves like querying a GraphQL type recent boards9935 Get list of recently visited boards9936 when the request is correct9937 returns recent boards for user successfully9938 behaves like a working graphql query9939 returns a successful response9940 when requests has errors9941 when there are no recently visited boards9942 returns empty result9943PageLimiter9944 #limit_pages9945 max_page: 2, actual_page: 1, result: nil9946 returns the expected result9947 max_page: 2, actual_page: 2, result: nil9948 returns the expected result9949 max_page: 2, actual_page: 3, result: PageLimiter::PageOutOfBoundsError9950 returns the expected result9951 max_page: nil, actual_page: 1, result: PageLimiter::PageLimitNotANumberError9952 returns the expected result9953 max_page: 0, actual_page: 1, result: PageLimiter::PageLimitNotSensibleError9954 returns the expected result9955 max_page: -1, actual_page: 1, result: PageLimiter::PageLimitNotSensibleError9956 returns the expected result9957 #default_page_out_of_bounds_response9958 returns a bad_request header9959 #record_page_limit_interception9960 creates a metric counter9961 increments the counter9962Deletes a release asset link9963 deletes the release asset link and returns the deleted link9964PlanningHierarchy9965 GET #planning_hierarchy9966 renders planning hierarchy9967getting Alert Management Alert Issue9968 with gitlab alert9969 includes the correct alert issue payload data9970 performance9971 with gitlab alert9972 avoids N+1 queries9973Groups::DeployTokensController9974 PUT /groups/:group_path_with_namespace/-/deploy_tokens/:id/revoke9975 invokes the Groups::DeployTokens::RevokeService9976 redirects to group repository settings with correct anchor9977Oauth::AuthorizedApplicationsController9978 includes Two-factor enforcement concern9979 GET #index9980 responds with 4049981 DELETE #destroy9982 revokes both access grants and tokens9983JwksController9984 Endpoints from the parent Doorkeeper::OpenidConnect::DiscoveryController9985 respond successfully9986 GET /-/jwks9987 returns signing keys used to sign CI_JOB_JWT9988 includes the OIDC signing key ID9989 does not leak private key data9990getting Alert Management Alert Assignees9991 includes the correct metrics dashboard url9992User sends malformed strings9993 raises a 400 error with a null byte9994 raises a 400 error with an invalid string9995 raises a 400 error with null bytes in the auth headers9996Admin::Topics::AvatarsController9997 removes avatar from DB by calling destroy9998API::Geo9999 GET /geo/proxy10000 rejects requests that bypassed gitlab-workhorse10001 with valid auth10002 returns empty data10003Knapsack report was generated. Preview:10005 "spec/requests/api/nuget_project_packages_spec.rb": 189.10901494799998,10006 "spec/requests/api/integrations_spec.rb": 193.66790901900004,10007 "spec/requests/api/pypi_packages_spec.rb": 111.66633139999999,10008 "spec/controllers/projects/issues_controller_spec.rb": 89.07231911999997,10009 "spec/requests/api/ci/triggers_spec.rb": 89.50876778999998,10010 "spec/requests/api/ci/runner/jobs_request_post_spec.rb": 67.48014970000008,10011 "spec/requests/api/ml_model_packages_spec.rb": 33.067949590000126,10012 "spec/requests/api/graphql/project/issues_spec.rb": 63.5738968149999,10013 "spec/requests/api/invitations_spec.rb": 31.422081724999998,10014 "spec/requests/api/graphql/project/release_spec.rb": 26.647947506000037,10015 "spec/requests/api/graphql/mutations/snippets/update_spec.rb": 36.12161585700005,10016 "spec/requests/api/project_milestones_spec.rb": 18.21030466100001,10017 "spec/requests/api/graphql/mutations/releases/create_spec.rb": 22.891955126999846,10018 "spec/requests/api/ci/runner/jobs_artifacts_spec.rb": 24.86968941500004,10019 "spec/controllers/application_controller_spec.rb": 21.566017066000086,10020 "spec/requests/api/group_milestones_spec.rb": 17.031601481000052,10021 "spec/requests/api/go_proxy_spec.rb": 14.452346344000034,10022 "spec/requests/api/todos_spec.rb": 21.44865159599999,10023 "spec/requests/api/graphql/mutations/notes/create/diff_note_spec.rb": 25.58497263199979,10024 "spec/requests/search_controller_spec.rb": 21.883152437000035,10025 "spec/controllers/groups/runners_controller_spec.rb": 10.703511972000115,10026 "spec/controllers/admin/integrations_controller_spec.rb": 6.978962935000027,10027 "spec/requests/projects/ml/experiments_controller_spec.rb": 15.223393880999993,10028 "spec/requests/api/project_job_token_scope_spec.rb": 9.747802092000029,10029 "spec/requests/api/project_templates_spec.rb": 8.416425248999985,10030 "spec/requests/api/merge_request_diffs_spec.rb": 13.754905710999992,10031 "spec/requests/api/metrics/dashboard/annotations_spec.rb": 6.610552290999976,10032 "spec/commands/sidekiq_cluster/cli_spec.rb": 2.3032240709999314,10033 "spec/requests/lfs_locks_api_spec.rb": 8.361202405000085,10034 "spec/requests/api/graphql/group/container_repositories_spec.rb": 8.82958224999993,10035 "spec/requests/api/graphql/boards/board_lists_query_spec.rb": 7.135187820999818,10036 "spec/requests/api/graphql/group/dependency_proxy_manifests_spec.rb": 6.122811197000146,10037 "spec/requests/projects/google_cloud/deployments_controller_spec.rb": 6.2875798820000455,10038 "spec/requests/api/graphql/mutations/container_repository/destroy_spec.rb": 6.069105491999835,10039 "spec/requests/api/graphql/project/commit_references_spec.rb": 5.076773863999961,10040 "spec/controllers/projects/settings/repository_controller_spec.rb": 8.253024973000038,10041 "spec/requests/api/ci/resource_groups_spec.rb": 3.5578942229999484,10042 "spec/requests/api/graphql/ci/runners_spec.rb": 6.383120553999788,10043 "spec/requests/api/graphql/project/incident_management/timeline_events_spec.rb": 5.409016002000044,10044 "spec/requests/api/graphql/metrics/dashboard_query_spec.rb": 6.585852976000069,10045 "spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb": 5.510205428000063,10046 "spec/requests/api/ci/runners_reset_registration_token_spec.rb": 4.169570188999842,10047 "spec/requests/api/graphql/project/milestones_spec.rb": 3.9309480089998488,10048 "spec/requests/api/graphql/mutations/merge_requests/reviewer_rereview_spec.rb": 4.959413669000014,10049 "spec/requests/projects/environments_controller_spec.rb": 6.278864587999806,10050 "spec/controllers/root_controller_spec.rb": 2.8913428690000273,10051 "spec/requests/api/graphql/mutations/jira_import/start_spec.rb": 3.351387351000085,10052 "spec/requests/api/graphql/project/data_transfer_spec.rb": 2.432797676000064,10053 "spec/requests/api/graphql/mutations/ci/runners_registration_token/reset_spec.rb": 4.060239433999868,10054 "spec/requests/api/graphql/project/fork_details_spec.rb": 3.2566830250000294,10055 "spec/requests/api/graphql/mutations/merge_requests/set_subscription_spec.rb": 2.056533681000019,10056 "spec/requests/api/graphql/mutations/groups/update_spec.rb": 2.6621119779999844,10057 "spec/requests/api/graphql/mutations/design_management/move_spec.rb": 2.3090895210000326,10058 "spec/controllers/admin/cohorts_controller_spec.rb": 1.1971506739998858,10059 "spec/requests/api/graphql/custom_emoji_query_spec.rb": 3.0640595519998897,10060 "spec/requests/api/graphql/mutations/environments/update_spec.rb": 1.8175094299999728,10061 "spec/requests/groups/registry/repositories_controller_spec.rb": 3.1699263780001274,10062 "spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb": 1.8808352880000712,10063 "spec/controllers/admin/hooks_controller_spec.rb": 1.349112937999962,10064 "spec/requests/api/graphql/project/alert_management/alert/notes_spec.rb": 2.713561714999969,10065 "spec/controllers/concerns/sorting_preference_spec.rb": 1.9816235339999366,10066 "spec/requests/api/graphql/mutations/metrics/dashboard/annotations/delete_spec.rb": 2.511895122999931,10067 "spec/requests/api/graphql/mutations/issues/set_escalation_status_spec.rb": 1.8584652790000291,10068 "spec/requests/projects/settings/integration_hook_logs_controller_spec.rb": 2.1398766870001964,10069 "spec/requests/api/graphql/mutations/clusters/agents/delete_spec.rb": 2.1233987479999996,10070 "spec/requests/projects/aws/configuration_controller_spec.rb": 2.3847153389999676,10071 "spec/controllers/profiles/avatars_controller_spec.rb": 0.47724211100012326,10072 "spec/requests/time_tracking/timelogs_controller_spec.rb": 0.9183572449999247,10073 "spec/requests/api/graphql/mutations/ci/pipeline_schedule_delete_spec.rb": 1.6651567059998342,10074 "spec/controllers/concerns/issuable_collections_spec.rb": 1.3272707790001732,10075 "spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb": 0.8382598670000334,10076 "spec/requests/api/graphql/mutations/snippets/mark_as_spam_spec.rb": 1.5001554230000238,10077 "spec/requests/api/graphql/mutations/work_items/delete_spec.rb": 1.7886158609999256,10078 "spec/requests/api/graphql/project/recent_issue_boards_query_spec.rb": 1.1517185449999943,10079 "spec/controllers/concerns/page_limiter_spec.rb": 0.7429067819998636,10080 "spec/requests/api/graphql/mutations/release_asset_links/delete_spec.rb": 1.7636496620000344,10081 "spec/requests/concerns/planning_hierarchy_spec.rb": 1.2632940910000343,10082 "spec/requests/api/graphql/project/alert_management/alert/issue_spec.rb": 1.2804762610001035,10083 "spec/requests/groups/deploy_tokens_controller_spec.rb": 0.962846023000111,10084 "spec/controllers/oauth/authorized_applications_controller_spec.rb": 0.9693463529999917,10085 "spec/requests/jwks_controller_spec.rb": 0.8233589300000403,10086 "spec/requests/api/graphql/project/alert_management/alert/todos_spec.rb": 0.9107979120001346,10087 "spec/requests/user_sends_malformed_strings_spec.rb": 0.37815226700013227,10088 "spec/controllers/admin/topics/avatars_controller_spec.rb": 0.4680042710001544,10089 "spec/requests/api/geo_spec.rb": 0.373455646000138610091Knapsack global time execution for tests: 22m 46s10092Pending: (Failures listed here are expected and do not affect your suite's status)10093 1) Projects::IssuesController Confidential Issues PUT #update behaves like restricted action when admin mode is disabled returns 404 for admin10094 # Temporarily skipped with xit10095 # ./spec/controllers/projects/issues_controller_spec.rb:80910096 2) Projects::IssuesController Confidential Issues GET #show behaves like restricted action when admin mode is disabled returns 404 for admin10097 # Temporarily skipped with xit10098 # ./spec/controllers/projects/issues_controller_spec.rb:80910099 3) Projects::IssuesController Confidential Issues GET #realtime_changes behaves like restricted action when admin mode is disabled returns 404 for admin10100 # Temporarily skipped with xit10101 # ./spec/controllers/projects/issues_controller_spec.rb:80910102 4) Projects::IssuesController Confidential Issues GET #edit behaves like restricted action when admin mode is disabled returns 404 for admin10103 # Temporarily skipped with xit10104 # ./spec/controllers/projects/issues_controller_spec.rb:80910105 5) Projects::IssuesController Confidential Issues PUT #update behaves like restricted action when admin mode is disabled returns 404 for admin10106 # Temporarily skipped with xit10107 # ./spec/controllers/projects/issues_controller_spec.rb:80910108Finished in 22 minutes 50 seconds (files took 1 minute 25.11 seconds to load)101093808 examples, 0 failures, 5 pending10110Randomized with seed 1248110111[TEST PROF INFO] Time spent in factories: 06:35.413 (28.04% of total time)10112RSpec exited with 0.10113No examples to retry, congrats!10115Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy10117Uploading artifacts...10118coverage/: found 5 matching artifact files and directories 10119crystalball/: found 2 matching artifact files and directories 10120WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 10121knapsack/: found 4 matching artifact files and directories 10122WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 10123rspec/: found 16 matching artifact files and directories 10124WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 10125log/*.log: found 15 matching artifact files and directories 10126WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4440957705/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10127WARNING: Retrying... context=artifacts-uploader error=request redirected10128Uploading artifacts as "archive" to coordinator... 201 Created id=4440957705 responseStatus=201 Created token=64_E4Zit10129Uploading artifacts...10130rspec/rspec-*.xml: found 1 matching artifact files and directories 10131WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4440957705/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10132WARNING: Retrying... context=artifacts-uploader error=request redirected10133Uploading artifacts as "junit" to coordinator... 201 Created id=4440957705 responseStatus=201 Created token=64_E4Zit10135Job succeeded